Changes and flow:
* datavolume-controller:
- When clone pvc is requested and smart-clone is applicable -> Create a new VolumeSnapshot.
* Introduced smart-clone-controller:
- Listens to VolumeSnapshot changes and create a new PVC based on the snapshot.
- Upon PVC successful creation, deletes the snapshot for cleaning up.
Change-Id: I369fc92e72edb8a2cf584c8cb916795415f9d6e0
Signed-off-by: Daniel Erez <derez@redhat.com>
Co-authored-by: Fred Rolland <frolland@redhat.com>
Looks like before some of imports used glog package that set all flags
under init() method, but after dependencies code stopped to run glog
init() method on container creation, so we need to set flags from klog
and parse flags in the right order.
This finishes up the last of the golint implementation, with the
addition of the cmd, tests and tools directories we are now running
golint tests on all of the current go source files in the project.
This change adds all the little fixes (mostly just commenting and
naming) and also enables the new diretories in the lint test that we
gate on.
This change just updates the common package to pass golint. Of course
that has some reaching implications into other packages with renaming of
constants.
I've intentionally kept this patch set to the bare minimum for the lint
test, I do think that we should put some effort into our use of
constants (especially those in common.go) in the future.
Ideally we'd declare constants where they're used, and we wouldn't
export them if they don't need to be. There are some in here that
are only used in one or two packages, and that can be cleaned up pretty
easily however it's likely that there might be plans to use them
elsewhere in the future.
[WIP] CDI: expectations and single queue - cloning refactoring
Adding 'expectPodCreate' call before creating target pod
minor change
Adding 'expectPodCreate' call before creating target pod
updating according feedback
Adding cloner unit test
code updates
Signed-off-by: tavni <tavni@redhat.com>
more updates
Signed-off-by: tavni <tavni@redhat.com>
minor change for util_test.go
Signed-off-by: tavni <tavni@redhat.com>
updating unit tests
Signed-off-by: tavni <tavni@redhat.com>
finished unit test for cloning refactoring
Signed-off-by: tavni <tavni@redhat.com>
rebase
Signed-off-by: tavni <tavni@redhat.com>
updating unit test after rebase
Signed-off-by: tavni <tavni@redhat.com>
gofmt errors
Signed-off-by: tavni <tavni@redhat.com>
* Pull in expectations code from kubevirt
Signed-off-by: David Vossel <davidvossel@gmail.com>
* add expectations to datavolume controller
Signed-off-by: David Vossel <davidvossel@gmail.com>
* Refactor importer pod to use single queue and expectations
Signed-off-by: David Vossel <davidvossel@gmail.com>
* update utils tests to use single queue
Signed-off-by: David Vossel <davidvossel@gmail.com>
* re-introduce import controller test suite
Signed-off-by: David Vossel <davidvossel@gmail.com>
* make clone controllers pass after utils refactor
Signed-off-by: David Vossel <davidvossel@gmail.com>
* Use log level constants in cdi controllers
Signed-off-by: David Vossel <davidvossel@gmail.com>
* Remove useless shadow variables in expectations pkg
Signed-off-by: David Vossel <davidvossel@gmail.com>
* required changes to get owner references working with openshift 1.10
Signed-off-by: David Vossel <davidvossel@gmail.com>
* update functional tests to work with importer controller refactor
Signed-off-by: David Vossel <davidvossel@gmail.com>
* Rename AnnImportPVC to LabelImportPvc in order to reflect its use
Signed-off-by: David Vossel <davidvossel@gmail.com>
* Add comment about expectations code
Signed-off-by: David Vossel <davidvossel@gmail.com>
Adds go templated controller manifest
Adds make targets for template generation
Removes hard coded version values
Enables template generation and publishing in CI
* Use bash scripts to handle build workflow in docker containers
Added working docker builder/runner
Added _out to gitignore, stub script files
Added build and test scripts
small tweaks
Remove install opt, no need and create perm issues
Do func test for 'test' recipe, add non-docker option
Added QoL recipe alias, refactored test and build loops
centralized dockerfiles under hack/build/docker, renamed check/pre-check to format
Prefixed cmd/cdi- to main func files, added clean up scipt
simplified controller and importer dockerfiles, removed os/arch from bin name
DOCKER=1 - use docker
Travis and makefile changes
Don't go vet project in 'all' target (error in generated code), finished image builds
Small optimization to cdi-cloner image build
renamed build-images to build-docker; added make image aliases
testing version.sh
travis script calls new make targets, dropped version func (overly engineered for what we need)
deleted shift-tag.sh because it's just bad practice
Fix travis sed command
release :latest on PR merge
* Functional test refactoring
Removed test output files
renamed file vars to reflect purpose
Condensed test table definition, create tmp dir per test iteration
Refactored convertion funcs to write to a given directory, changed datastream test to create a temp dir and pass to file conversion, removed unused func
use randAlpahNum for tmp dir suffix, pepper in debug code
Must copy source file to tmp dir, then gzip/xzip, added debug code, package URL is deforming the file:// path by treating path[0] element as the server root
Fixed xz, gzip, tar, and noop test file generation; added copy of src to test dir if not present
Fixed typo in qemu-img cmd
Removed commented out line
* Added vet make target, updated hack/README
Make recipe call vet recipe
Updated hack/README
Makefile alias fix, clean all bin and _out except .gitignore, reverted 'vet' go_opt behavior
pulled 'vet' references from readme until it is fixed later
Don't delete the entire repo if _out doesn't exist,
* Moved clone script to cmd/ to make build flow smoother, now copy Dockerfiles to respective _out/cmd/* dirs for building container, delete old.Makefile
* Solidify build scripts
Text typos and comment additions
change cp glob to Dockerfile
Added push target to push images to non-kubevirt repo, updated README
Added license blocks, updated README with make vars, deleted empty script files
Added license to Makefile
Tweaked travis.yaml, removed version file (unused)
Fixed source paths
Fixing travis script sourcing
Moved shebang to line 1
Fixed shfmt install
Changed cloner script path in format.sh
Filter our vendor and pkg/client on go vet
Fix shfmt install in container, containerized clean target
Re-added Z opt to bind-mount
removed duplicate source line
Fix shfmt var expansion
formatting
Add non-docker cleanup optino