Skip to content
This repository has been archived by the owner on Feb 7, 2024. It is now read-only.

Commit

Permalink
Release v0.3.1
Browse files Browse the repository at this point in the history
Signed-off-by: Sam Lucidi <[email protected]>
mansam committed Mar 5, 2021
1 parent f21cb40 commit d1c2453
Showing 8 changed files with 434 additions and 35 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
all: fmt check

# Always keep the last released version here
VERSION_REPLACES ?= v0.3.0
VERSION_REPLACES ?= v0.3.1
VERSION ?= v0.0.1
export VERSION := $(VERSION)

4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -17,8 +17,8 @@ TARGET_NAMESPACE=YOUR_DESIRED_NAMESPACE make gen-manifests

Deploy vm-import-operator resources:
```bash
kubectl apply -f https://github.com/kubevirt/vm-import-operator/releases/download/v0.3.0/operator.yaml
kubectl apply -f https://github.com/kubevirt/vm-import-operator/releases/download/v0.3.0/vmimportconfig_cr.yaml
kubectl apply -f https://github.com/kubevirt/vm-import-operator/releases/download/v0.3.1/operator.yaml
kubectl apply -f https://github.com/kubevirt/vm-import-operator/releases/download/v0.3.1/vmimportconfig_cr.yaml
```

# Import virtual machine from oVirt
5 changes: 5 additions & 0 deletions manifests/vm-import-operator/v0.3.1/namespace.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: kubevirt-hyperconverged
209 changes: 209 additions & 0 deletions manifests/vm-import-operator/v0.3.1/operator.yaml
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
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
7 changes: 7 additions & 0 deletions manifests/vm-import-operator/v0.3.1/vmimportconfig_cr.yaml
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
41 changes: 10 additions & 31 deletions version/description
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.
2 changes: 1 addition & 1 deletion version/version.go
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"
)

0 comments on commit d1c2453

Please sign in to comment.