Commit Graph

138 Commits

Author SHA1 Message Date
Michael Henriksen
fbaee779f7 don't set pvc pod phase as error when import pod is starting for the first time 2019-02-11 09:57:04 -05:00
Michael Henriksen
9039d84750 fix for issue #636: can't create/delete/create the same datavolume 2019-02-06 11:29:45 -05:00
Michael Henriksen
27d6a606a8 cleanup resources made by controller when uninstalling and flush out status 2019-01-16 20:22:14 -05:00
Michael Henriksen
b135463747 operator scaffolding 2019-01-08 16:03:21 -05:00
Michael Henriksen
85d76e0b08 rename datavolumecontroller to core 2019-01-08 15:52:41 -05:00
tavni
c245fe2ae6 Adding DataVolume support for unpacking imported archive
Signed-off-by: tavni <tavni@redhat.com>
2019-01-08 15:10:02 +02:00
tavni
df418652f7 Clone sometimes doesn't add k8s.io/CloneOf annotation to target PVC #560
Signed-off-by: tavni <tavni@redhat.com>
2018-12-20 10:02:17 +02:00
tavni
d724928c8f Host-assisted cloning runs after PVC is already cloned #534
Signed-off-by: tavni <tavni@redhat.com>
2018-11-30 09:42:30 +02:00
Daniel Erez
573374b831 Import vm disk from docker registry
As a user, I want to specify a registry source to pre-populate my PV with a VM disk image.

* Using skopeo[1] cli to copy image from docker registry.
* Extracting image layers (tar files) into data folder.
* Cleaning up .wh. files and remove corresponding files.
* Supporting docker registries such as: docker hub, quay, etc.

[1] https://github.com/containers/skopeo

Change-Id: Ib4e20bb7be842ebaabeb925202402791827edfd3
Signed-off-by: Daniel Erez <derez@redhat.com>
Co-authored-by: Fred Rolland <frolland@redhat.com>
2018-11-29 01:15:01 +02:00
tavni
aebc2b3e87 Add ability to create empty disk images #497
Signed-off-by: tavni <tavni@redhat.com>
2018-11-27 16:15:44 +02:00
Alexander Wels
260d4fa8e0 Automatically resize image to fit the requested PVC.
Combined code from PR#489 and PR#490 by
@gites and
@danielerez
Added some tests and rebased on current master.

Signed-off-by: Alexander Wels <awels@redhat.com>
2018-11-20 15:40:13 -05:00
Alexander Wels
676b4ec133 Fix some flaky tests.
Signed-off-by: Alexander Wels <awels@redhat.com>
2018-11-20 09:23:37 -05:00
j-griffith
cd88a3d8b7 Check orphaned DataVolume PVCs for PODs
This change adds an extra check to deleted Data Volume PVCs and makes
sure that we explicitly delete any associated POD objects that they
owned regardless of their phase.

GH Issue #525
2018-11-17 09:46:26 -07:00
Alexander Wels
70666e5946 Add source and contentType annotations
Signed-off-by: Alexander Wels <awels@redhat.com>
2018-11-14 12:20:26 -05:00
Alexander Wels
c485f39428 Properly label all CDI components.
Signed-off-by: Alexander Wels <awels@redhat.com>
2018-11-01 15:30:56 -04:00
Alexander Wels
edf39e1cc6
Merge branch 'master' into report_progress_cloner 2018-11-01 12:44:31 -04:00
Alexander Wels
40072b631a Report cloning progress in logs and prometheus.
Signed-off-by: Alexander Wels <awels@redhat.com>
2018-11-01 11:09:03 -04:00
Alexander Wels
f8dc6a8b59 Report import progress with prometheus
- Added code report progress with prometheus

Signed-off-by: Alexander Wels <awels@redhat.com>
2018-11-01 08:21:20 -04:00
Alexander Wels
4c762a8bab
Merge branch 'master' into cleaning 2018-11-01 08:07:28 -04:00
Alexander Wels
a5a82aa970 Report import progress with prometheus
- Added code report progress with prometheus

Signed-off-by: Alexander Wels <awels@redhat.com>
2018-10-31 11:26:38 -04:00
tavni
d7dce90bcb Removing unnecessary code and update Const UPLOAD name #506
Signed-off-by: tavni <tavni@redhat.com>
2018-10-28 16:17:28 +02:00
tavni
bc6a7b8474 change the import controller not to have global parameter #504
Signed-off-by: tavni <tavni@redhat.com>
2018-10-25 20:49:04 +03:00
tavni
c7e40ebffd Add structure to hold all CDI importer environment variables #501
Signed-off-by: tavni <tavni@redhat.com>
2018-10-25 13:21:28 +03:00
John Griffith
ceab77dc93
Merge branch 'master' into issue-494 2018-10-20 08:55:08 -06:00
Michael Henriksen
db9e9eb115 force delete upload pod if not completed and pvc deleted 2018-10-18 12:02:55 -04:00
tavni
4db7a28eb5 Import/upload pvc 'cdi.kubevirt.io/storage.pod.phase' annotation value is wrong when import fails. Issue #494
Signed-off-by: tavni <tavni@redhat.com>
2018-10-18 17:47:57 +03:00
irit.go
52453a989a add events to DataVolume controller 2018-10-16 18:01:07 +03:00
tavni
bb7a5bb4b2 Orchestrate upload using a DataVolume
Signed-off-by: tavni <tavni@redhat.com>
2018-10-16 07:40:50 +03:00
j-griffith
537bcd02b0 Update unit and functional tests 2018-10-12 22:07:43 -06:00
j-griffith
371e5c2ba0 Set pod restart policy to "OnFailure" and cleanup
This patch does two things:
1. We modify the restar policy from never to "OnFailure" for the
    Importer (we already did this for Upload, and we don't want to do it yet
    for the Clone pods)
2. Upon succesful completion delete our worker pods
    We're not doing this on failed pods right now because in general an
    admin will likely want to inspect the pod to see why it failed.

The first question someone will likely ask is "well what about a node
failure", well in the case of a node failure for CDI we have a bigger
outstanding issue remaining to figure out how to deal with volume
connections.  We can't just simply reschedule the job.
2018-10-09 08:25:22 -06:00
Michael Henriksen
af654b4fca change *.cert to *.crt to be consistent with tls secrets creaed by kubectl. also made tls optional on uploadproxy. 2018-09-20 09:25:38 -04:00
Michael Henriksen
452e30bca7 add verification to functional test and change to shared pod phase annotation 2018-09-19 14:37:19 -04:00
Michael Henriksen
6c8c32fab8 initial apiserver and upload proxy unit tests 2018-09-19 12:30:46 -04:00
Michael Henriksen
ef00f15e43 fix datavolumes by making sure that upload.cdi.kubevirt.io and cdi.kubevirt.io clients can coexist 2018-09-19 12:30:46 -04:00
Michael Henriksen
5eeee34e83 refactorings from rebase 2018-09-19 12:30:46 -04:00
Michael Henriksen
b806786da1 refactoring and unit tests 2018-09-19 12:30:46 -04:00
Michael Henriksen
762cf6860d api server create explicit key for signing 2018-09-19 12:30:46 -04:00
Michael Henriksen
6ae444d661 have upload controller create cert for upload proxy and configure upload proxy to get key/cert from secret 2018-09-19 12:30:46 -04:00
Michael Henriksen
3d5927d30a incorporate some review comments 2018-09-19 12:30:46 -04:00
Michael Henriksen
fd432593ae don't create UploadTokens for pvcs that don't have the upload annotation or upload server pods are not 'Running' 2018-09-19 12:30:45 -04:00
Michael Henriksen
28d349f660 minor refactoring and fix lint failure 2018-09-19 12:30:45 -04:00
Michael Henriksen
8910df8cee real tls cert validation 2018-09-19 12:30:45 -04:00
Michael Henriksen
62330f2f34 proxy implemented again and disabled signature checking 2018-09-19 12:30:45 -04:00
Michael Henriksen
1cbabdc8cf refactor key/cert storage to just use secrets 2018-09-19 12:30:45 -04:00
Michael Henriksen
59e0af3485 tls for upload server 2018-09-19 12:30:45 -04:00
Michael Henriksen
cd81879806 initial implementation of upload controller and upload server 2018-09-19 12:30:45 -04:00
David Vossel
fe3ee83c63 add UploadToken v1alpha1 and refactor client,lister,informer pkg name to be generic
Signed-off-by: David Vossel <davidvossel@gmail.com>
2018-09-19 12:30:45 -04:00
Alexander Wels
c06a74c50c Add SecretRef for HTTP data source.
Signed-off-by: Alexander Wels <awels@redhat.com>
2018-09-19 07:36:10 -04:00
tavni
ce22c48834 CDI controller code dedupe
Signed-off-by: tavni <tavni@redhat.com>
2018-09-17 19:44:09 +03:00
Alexander Wels
50301653fb <!-- Thanks for sending a pull request! Here are some tips for you:
1. Follow the instructions for writing a release note from k8s: https://git.k8s.io/community/contributors/guide/release-notes.md
-->

**What this PR does / why we need it**:
This PR fixes an issue where the Data Volume Phase was not being updated properly where the source was a PVC instead of HTTP

**Which issue(s) this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close the issue(s) when PR gets merged)*:
Fixes #455

**Special notes for your reviewer**:

**Release note**:
<!--  Write your release note:
1. Enter your extended release note in the below block. If the PR requires additional action from users switching to the new release, include the string "action required".
2. If no release note is required, just write "NONE".
-->
```release-note
NONE
```
**

Signed-off-by: Alexander Wels <awels@redhat.com>
2018-09-14 15:35:21 -04:00