diff --git a/Makefile b/Makefile index aee6de758..9db99cb1c 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ all: fmt check # Always keep the last released version here -VERSION_REPLACES ?= v0.3.7 +VERSION_REPLACES ?= v0.4.0 VERSION ?= v0.0.1 export VERSION := $(VERSION) diff --git a/README.md b/README.md index 1a668a9ff..1bbfd1b5c 100644 --- a/README.md +++ b/README.md @@ -19,8 +19,8 @@ make gen-manifests Deploy vm-import-operator resources: ```bash -kubectl apply -f https://github.com/kubevirt/vm-import-operator/releases/download/v0.3.7/operator.yaml -kubectl apply -f https://github.com/kubevirt/vm-import-operator/releases/download/v0.3.7/vmimportconfig_cr.yaml +kubectl apply -f https://github.com/kubevirt/vm-import-operator/releases/download/v0.4.0/operator.yaml +kubectl apply -f https://github.com/kubevirt/vm-import-operator/releases/download/v0.4.0/vmimportconfig_cr.yaml ``` In order to import you will be required to have: diff --git a/hack/bump-version.sh b/hack/bump-version.sh index 369563088..beb207ac5 100755 --- a/hack/bump-version.sh +++ b/hack/bump-version.sh @@ -16,7 +16,7 @@ bump_major() { } bump_minor() { - bump "s/^.*[.]\(.*\)[.].*$/\1/g" "s/^\(.*\)[.]\(.*\)[.]\(.*\)$/\1.version_part.\3/g" + bump "s/^.*[.]\(.*\)[.].*$/\1/g" "s/^\(.*\)[.]\(.*\)[.]\(.*\)$/\1.version_part.0/g" } bump_patch() { diff --git a/manifests/vm-import-operator/v0.4.0/namespace.yaml b/manifests/vm-import-operator/v0.4.0/namespace.yaml new file mode 100644 index 000000000..fd9fad633 --- /dev/null +++ b/manifests/vm-import-operator/v0.4.0/namespace.yaml @@ -0,0 +1,5 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: kubevirt-hyperconverged diff --git a/manifests/vm-import-operator/v0.4.0/operator.yaml b/manifests/vm-import-operator/v0.4.0/operator.yaml new file mode 100644 index 000000000..000f0bc38 --- /dev/null +++ b/manifests/vm-import-operator/v0.4.0/operator.yaml @@ -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.4.0 + 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.4.0 + - name: CONTROLLER_IMAGE + value: quay.io/kubevirt/vm-import-controller:v0.4.0 + - name: VIRTV2V_IMAGE + value: quay.io/kubevirt/vm-import-virtv2v:v0.4.0 + - name: PULL_POLICY + value: Always + - name: MONITORING_NAMESPACE + value: openshift-monitoring diff --git a/manifests/vm-import-operator/v0.4.0/vm-import-operator.0.4.0.clusterserviceversion.yaml b/manifests/vm-import-operator/v0.4.0/vm-import-operator.0.4.0.clusterserviceversion.yaml new file mode 100644 index 000000000..1355ac056 --- /dev/null +++ b/manifests/vm-import-operator/v0.4.0/vm-import-operator.0.4.0.clusterserviceversion.yaml @@ -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.4.0 + 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.4.0 + - name: CONTROLLER_IMAGE + value: quay.io/kubevirt/vm-import-controller:v0.4.0 + - 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.4.0 + image: quay.io/kubevirt/vm-import-operator:v0.4.0 + 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.7 + selector: + matchLabels: + operated-by: vm-import-operator + version: 0.4.0 diff --git a/manifests/vm-import-operator/v0.4.0/vmimportconfig_cr.yaml b/manifests/vm-import-operator/v0.4.0/vmimportconfig_cr.yaml new file mode 100644 index 000000000..317f7fd65 --- /dev/null +++ b/manifests/vm-import-operator/v0.4.0/vmimportconfig_cr.yaml @@ -0,0 +1,7 @@ +--- +apiVersion: v2v.kubevirt.io/v1beta1 +kind: VMImportConfig +metadata: + name: vm-import-operator-config +spec: + imagePullPolicy: IfNotPresent diff --git a/version/description b/version/description index b86dc542a..ea292d571 100644 --- a/version/description +++ b/version/description @@ -1,5 +1,7 @@ -v0.3.7 +v0.4.0 -Bugs: -* Force gogo/protobuf to 1.3.2 -* Update Kubevirt client-go, update go-toolkit +Features: +* Remove dependency on obsolete Kubevirt config map + +Docs: +* Improve the README diff --git a/version/version.go b/version/version.go index aa198f858..8c8635bcf 100644 --- a/version/version.go +++ b/version/version.go @@ -2,5 +2,5 @@ package version var ( // Version represents the version of the operator - Version = "v0.3.7" + Version = "v0.4.0" )