This repository has been archived by the owner on Feb 7, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 23
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Sam Lucidi <[email protected]>
Showing
8 changed files
with
434 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
apiVersion: v1 | ||
kind: Namespace | ||
metadata: | ||
name: kubevirt-hyperconverged |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,209 @@ | ||
--- | ||
apiVersion: apiextensions.k8s.io/v1 | ||
kind: CustomResourceDefinition | ||
metadata: | ||
labels: | ||
operator.v2v.kubevirt.io: "" | ||
name: vmimportconfigs.v2v.kubevirt.io | ||
spec: | ||
group: v2v.kubevirt.io | ||
names: | ||
categories: | ||
- all | ||
kind: VMImportConfig | ||
listKind: VMImportConfigList | ||
plural: vmimportconfigs | ||
singular: vmimportconfig | ||
scope: Cluster | ||
versions: | ||
- name: v1beta1 | ||
served: true | ||
storage: true | ||
subresources: | ||
status: {} | ||
schema: | ||
openAPIV3Schema: | ||
description: VMImportConfig is the Schema for the vmimportconfigs API | ||
properties: | ||
apiVersion: | ||
description: APIVersion defines the versioned schema of this representation | ||
of an object | ||
type: string | ||
kind: | ||
description: Kind is a string value representing the REST resource this | ||
object represents | ||
type: string | ||
metadata: | ||
type: object | ||
spec: | ||
description: VMImportConfigSpec defines the desired state of VMImportConfig | ||
properties: | ||
imagePullPolicy: | ||
description: "Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images" | ||
enum: | ||
- Always | ||
- IfNotPresent | ||
- Never | ||
type: string | ||
type: object | ||
status: | ||
description: VMImportConfigStatus defines the observed state of VMImportConfig | ||
properties: | ||
conditions: | ||
description: A list of current conditions of the VMImportConfig resource | ||
items: | ||
properties: | ||
lastHeartbeatTime: | ||
description: Last time the state of the condition was checked | ||
format: date-time | ||
type: string | ||
lastTransitionTime: | ||
description: Last time the state of the condition changed | ||
format: date-time | ||
type: string | ||
message: | ||
description: Message related to the last condition change | ||
type: string | ||
reason: | ||
description: Reason the last condition changed | ||
type: string | ||
status: | ||
description: Current status of the condition, True, False, Unknown | ||
type: string | ||
type: | ||
description: ConditionType is the state of the operator's reconciliation functionality. | ||
type: string | ||
type: object | ||
type: array | ||
observedVersion: | ||
description: The observed version of the VMImportConfig resource | ||
type: string | ||
operatorVersion: | ||
description: The version of the VMImportConfig resource as defined by | ||
the operator | ||
type: string | ||
targetVersion: | ||
description: The desired version of the VMImportConfig resource | ||
type: string | ||
phase: | ||
description: Phase is the current phase of the VMImportConfig deployment | ||
type: string | ||
type: object | ||
type: object | ||
--- | ||
apiVersion: v1 | ||
kind: ServiceAccount | ||
metadata: | ||
name: vm-import-operator | ||
namespace: kubevirt-hyperconverged | ||
|
||
--- | ||
apiVersion: rbac.authorization.k8s.io/v1 | ||
kind: ClusterRole | ||
metadata: | ||
creationTimestamp: null | ||
name: vm-import-operator | ||
rules: | ||
- apiGroups: | ||
- "" | ||
resources: | ||
- pods | ||
- events | ||
- configmaps | ||
- secrets | ||
- serviceaccounts | ||
- services | ||
verbs: | ||
- '*' | ||
- apiGroups: | ||
- apps | ||
resources: | ||
- deployments | ||
- deployments/finalizers | ||
verbs: | ||
- '*' | ||
- apiGroups: | ||
- v2v.kubevirt.io | ||
resources: | ||
- vmimportconfigs | ||
- vmimportconfigs/finalizers | ||
- vmimportconfigs/status | ||
verbs: | ||
- '*' | ||
- apiGroups: | ||
- apiextensions.k8s.io | ||
resources: | ||
- customresourcedefinitions | ||
verbs: | ||
- '*' | ||
- apiGroups: | ||
- rbac.authorization.k8s.io | ||
resources: | ||
- clusterrolebindings | ||
- clusterroles | ||
verbs: | ||
- '*' | ||
- apiGroups: | ||
- monitoring.coreos.com | ||
resources: | ||
- servicemonitors | ||
verbs: | ||
- '*' | ||
--- | ||
kind: ClusterRoleBinding | ||
apiVersion: rbac.authorization.k8s.io/v1 | ||
metadata: | ||
name: vm-import-operator | ||
roleRef: | ||
kind: ClusterRole | ||
name: vm-import-operator | ||
apiGroup: rbac.authorization.k8s.io | ||
subjects: | ||
- kind: ServiceAccount | ||
name: vm-import-operator | ||
namespace: kubevirt-hyperconverged | ||
|
||
--- | ||
apiVersion: apps/v1 | ||
kind: Deployment | ||
metadata: | ||
name: vm-import-operator | ||
namespace: kubevirt-hyperconverged | ||
spec: | ||
replicas: 1 | ||
selector: | ||
matchLabels: | ||
name: vm-import-operator | ||
template: | ||
metadata: | ||
labels: | ||
name: vm-import-operator | ||
spec: | ||
serviceAccountName: vm-import-operator | ||
containers: | ||
- name: vm-import-operator | ||
# Replace this with the built image name | ||
image: quay.io/kubevirt/vm-import-operator:v0.3.1 | ||
command: | ||
- vm-import-operator | ||
imagePullPolicy: Always | ||
env: | ||
- name: WATCH_NAMESPACE | ||
- name: POD_NAME | ||
valueFrom: | ||
fieldRef: | ||
fieldPath: metadata.name | ||
- name: OPERATOR_NAME | ||
value: "vm-import-operator" | ||
- name: DEPLOY_CLUSTER_RESOURCES | ||
value: "true" | ||
- name: OPERATOR_VERSION | ||
value: v0.3.1 | ||
- name: CONTROLLER_IMAGE | ||
value: quay.io/kubevirt/vm-import-controller:v0.3.1 | ||
- name: VIRTV2V_IMAGE | ||
value: quay.io/kubevirt/vm-import-virtv2v:v0.3.1 | ||
- name: PULL_POLICY | ||
value: Always | ||
- name: MONITORING_NAMESPACE | ||
value: openshift-monitoring |
199 changes: 199 additions & 0 deletions
199
manifests/vm-import-operator/v0.3.1/vm-import-operator.0.3.1.clusterserviceversion.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,199 @@ | ||
--- | ||
apiVersion: operators.coreos.com/v1alpha1 | ||
kind: ClusterServiceVersion | ||
metadata: | ||
annotations: | ||
alm-examples: |2- | ||
[ | ||
{ | ||
"apiVersion":"v2v.kubevirt.io/v1beta1", | ||
"kind":"VMImportConfig", | ||
"metadata": { | ||
"name":"vm-import-operator-config" | ||
}, | ||
"spec": { | ||
"imagePullPolicy":"IfNotPresent" | ||
} | ||
} | ||
] | ||
capabilities: Virtual Machine Import | ||
categories: Import,Virtualization, RHV | ||
name: vm-import-operator.0.3.1 | ||
namespace: kubevirt-hyperconverged | ||
spec: | ||
apiservicedefinitions: {} | ||
customresourcedefinitions: | ||
owned: | ||
- description: Represents a virtual machine import config | ||
displayName: Virtual Machine import config | ||
kind: VMImportConfig | ||
name: vmimportconfigs.v2v.kubevirt.io | ||
specDescriptors: | ||
- description: The ImageRegistry to use for vm import. | ||
displayName: ImageRegistry | ||
path: imageRegistry | ||
x-descriptors: | ||
- urn:alm:descriptor:text | ||
- description: The ImageTag to use for vm import. | ||
displayName: ImageTag | ||
path: imageTag | ||
x-descriptors: | ||
- urn:alm:descriptor:text | ||
- description: The ImagePullPolicy to use for vm import. | ||
displayName: ImagePullPolicy | ||
path: imagePullPolicy | ||
x-descriptors: | ||
- urn:alm:descriptor:io.kubernetes:imagePullPolicy | ||
statusDescriptors: | ||
- description: The deployment phase. | ||
displayName: Phase | ||
path: phase | ||
x-descriptors: | ||
- urn:alm:descriptor:io.kubernetes.phase | ||
- description: Explanation for the current status of the vm import deployment. | ||
displayName: Conditions | ||
path: conditions | ||
x-descriptors: | ||
- urn:alm:descriptor:io.kubernetes.conditions | ||
- description: The observed version of the vm import deployment. | ||
displayName: Observed vm import Version | ||
path: observedVersion | ||
x-descriptors: | ||
- urn:alm:descriptor:text | ||
- description: The targeted version of the vm import deployment. | ||
displayName: Target vm import Version | ||
path: targetVersion | ||
x-descriptors: | ||
- urn:alm:descriptor:text | ||
- description: The version of the vm import Operator | ||
displayName: Vm import Operator Version | ||
path: operatorVersion | ||
x-descriptors: | ||
- urn:alm:descriptor:text | ||
version: v1beta1 | ||
description: VM import operator provides ability to import virtual machines from other infrastructure like oVirt/RHV | ||
displayName: VM import operator | ||
install: | ||
spec: | ||
clusterPermissions: | ||
- rules: | ||
- apiGroups: | ||
- "" | ||
resources: | ||
- pods | ||
- events | ||
- configmaps | ||
- secrets | ||
- serviceaccounts | ||
- services | ||
- services/finalizers | ||
verbs: | ||
- '*' | ||
- apiGroups: | ||
- apps | ||
resources: | ||
- deployments | ||
- deployments/finalizers | ||
verbs: | ||
- '*' | ||
- apiGroups: | ||
- v2v.kubevirt.io | ||
resources: | ||
- vmimportconfigs | ||
- vmimportconfigs/finalizers | ||
- vmimportconfigs/status | ||
verbs: | ||
- '*' | ||
- apiGroups: | ||
- apiextensions.k8s.io | ||
resources: | ||
- customresourcedefinitions | ||
verbs: | ||
- '*' | ||
- apiGroups: | ||
- rbac.authorization.k8s.io | ||
resources: | ||
- clusterrolebindings | ||
- clusterroles | ||
verbs: | ||
- '*' | ||
- apiGroups: | ||
- monitoring.coreos.com | ||
resources: | ||
- servicemonitors | ||
verbs: | ||
- '*' | ||
serviceAccountName: vm-import-operator | ||
deployments: | ||
- name: vm-import-operator | ||
spec: | ||
replicas: 1 | ||
selector: | ||
matchLabels: | ||
name: vm-import-operator | ||
operator.v2v.kubevirt.io: "" | ||
strategy: {} | ||
template: | ||
metadata: | ||
labels: | ||
name: vm-import-operator | ||
operator.v2v.kubevirt.io: "" | ||
spec: | ||
containers: | ||
- env: | ||
- name: DEPLOY_CLUSTER_RESOURCES | ||
value: "true" | ||
- name: OPERATOR_VERSION | ||
value: v0.3.1 | ||
- name: CONTROLLER_IMAGE | ||
value: quay.io/kubevirt/vm-import-controller:v0.3.1 | ||
- name: PULL_POLICY | ||
value: Always | ||
- name: WATCH_NAMESPACE | ||
- name: POD_NAME | ||
valueFrom: | ||
fieldRef: | ||
fieldPath: metadata.name | ||
- name: MONITORING_NAMESPACE | ||
value: openshift-monitoring | ||
- name: VIRTV2V_IMAGE | ||
value: quay.io/kubevirt/vm-import-virtv2v:v0.3.1 | ||
image: quay.io/kubevirt/vm-import-operator:v0.3.1 | ||
imagePullPolicy: Always | ||
name: vm-import-operator | ||
resources: {} | ||
securityContext: | ||
runAsNonRoot: true | ||
serviceAccountName: vm-import-operator | ||
strategy: deployment | ||
installModes: | ||
- supported: true | ||
type: OwnNamespace | ||
- supported: true | ||
type: SingleNamespace | ||
- supported: true | ||
type: AllNamespaces | ||
keywords: | ||
- Import | ||
- Virtualization | ||
- oVirt | ||
- RHV | ||
labels: | ||
operated-by: vm-import-operator | ||
links: | ||
- name: VM import operator | ||
url: https://github.com/kubevirt/vm-import-operator/blob/master/README.md | ||
- name: Source Code | ||
url: https://github.com/kubevirt/vm-import-operator | ||
maintainers: | ||
- email: kubevirt-dev@googlegroups.com | ||
name: KubeVirt project | ||
maturity: alpha | ||
provider: | ||
name: KubeVirt project | ||
replaces: 0.3.0 | ||
selector: | ||
matchLabels: | ||
operated-by: vm-import-operator | ||
version: 0.3.1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
--- | ||
apiVersion: v2v.kubevirt.io/v1beta1 | ||
kind: VMImportConfig | ||
metadata: | ||
name: vm-import-operator-config | ||
spec: | ||
imagePullPolicy: IfNotPresent |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,35 +1,14 @@ | ||
v0.3.0 | ||
|
||
Adds support for Warm Import of vSphere VMs. | ||
v0.3.1 | ||
|
||
Features: | ||
* Base Dockerfiles on ubi/go-toolset:1.14.12 | ||
* Update to CDI 1.27.0 | ||
* Add support for Warm Import | ||
* Validate the target VM name | ||
* Pin gorilla/websocket to 1.4.2 | ||
* Replace Kubevirt client with controller-runtime client in tests | ||
* Allow explicit AccessMode mapping in the oVirt provider | ||
* Add optional AccessMode to StorageResourceMappingItem | ||
* Add CreateVMSnapshot to Provider interface | ||
* Add annotation to retain the v2v pod after success | ||
* Propagate network annotations to DataVolumes | ||
|
||
Bugs: | ||
* sigs.k8s.io/controller-runtime/pkg/runtime/* packages are deprecated, and were moved to new pathes. | ||
* Don't stop VM for warm imports until finalization | ||
* Update Network Mapping validation for duplicates | ||
* Fix erroneous test failures caused by lingering resources | ||
* Throw a validation error if a VM with the given name exists | ||
* Requeque when VMI not yet created | ||
* Fix typo in VM validation for NUMA | ||
* vSphere: Gracefully shutdown vSphere VMs | ||
* vSphere: Don't add interfaces for unmapped networks | ||
* vSphere: find a desktop template if there are no server templates | ||
* vSphere: always map machine type to q35 | ||
* vSphere: use VM UUID and disk key to name DataVolumes | ||
* vSphere: should look for a small template for the given OS first | ||
* oVirt: mapper should not set memory limits | ||
* oVirt: use 'scsi' bus for disks with the 'virtio_scsi' type | ||
|
||
Docs: | ||
* Add documentation for Access Mode and Volume Mode | ||
* Add vSphere resource mapping documentation. | ||
* Fix warm import finalization edge case | ||
* Validate that VMWare Tools are present | ||
* Use VMI UID instead of vSphere UUID to name DVs | ||
* Add overhead to requested size when creating DVs | ||
* Fail the import if the target VM is gone | ||
* Mount block devices properly on the virt-v2v container | ||
* Fail import when V2V overlays can't be committed. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,5 +2,5 @@ package version | |
|
||
var ( | ||
// Version represents the version of the operator | ||
Version = "v0.3.0" | ||
Version = "v0.3.1" | ||
) |