Skip to content

Commit

Permalink
Track operator versions as env variables (#584)
Browse files Browse the repository at this point in the history
in HCO deployment to enable upgrade status checks

during upgrade, check each component if its upgrade is done

temporary remove upgrade check for CDI, because of a CDI bug

Signed-off-by: Nahshon Unna-Tsameret <[email protected]>

Co-authored-by: Simone Tiraboschi <[email protected]>
  • Loading branch information
nunnatsa and tiraboschi authored May 28, 2020
1 parent 27167a7 commit 07c3322
Show file tree
Hide file tree
Showing 10 changed files with 566 additions and 151 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ metadata:
categories: OpenShift Optional
certified: "false"
containerImage: quay.io/kubevirt/hyperconverged-cluster-operator:1.1.0
createdAt: "2020-05-27 05:07:37"
createdAt: "2020-05-27 15:33:25"
description: |-
**HyperConverged Cluster Operator** is an Operator pattern for managing multi-operator products.
Specifcally, the HyperConverged Cluster Operator manages the deployment of KubeVirt,
Expand Down Expand Up @@ -1453,6 +1453,20 @@ spec:
- name: MACHINETYPE
- name: HCO_KV_IO_VERSION
value: 1.1.0
- name: KUBEVIRT_VERSION
value: v0.29.2
- name: CDI_VERSION
value: v1.17.0
- name: NETWORK_ADDONS_VERSION
value: 0.37.0
- name: SSP_VERSION
value: v1.0.34
- name: NMO_VERSION
value: v0.5.0
- name: HPPO_VERSION
value: v0.4.3
- name: VM_IMPORT_VERSION
value: v0.0.2
image: quay.io/kubevirt/hyperconverged-cluster-operator:1.1.0
imagePullPolicy: IfNotPresent
name: hyperconverged-cluster-operator
Expand Down
14 changes: 14 additions & 0 deletions deploy/operator.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,20 @@ spec:
- name: MACHINETYPE
- name: HCO_KV_IO_VERSION
value: 1.1.0
- name: KUBEVIRT_VERSION
value: v0.29.2
- name: CDI_VERSION
value: v1.17.0
- name: NETWORK_ADDONS_VERSION
value: 0.37.0
- name: SSP_VERSION
value: v1.0.34
- name: NMO_VERSION
value: v0.5.0
- name: HPPO_VERSION
value: v0.4.3
- name: VM_IMPORT_VERSION
value: v0.0.2
image: quay.io/kubevirt/hyperconverged-cluster-operator:1.1.0
imagePullPolicy: IfNotPresent
name: hyperconverged-cluster-operator
Expand Down
16 changes: 15 additions & 1 deletion hack/build-manifests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ function create_vm_import_csv() {
local dumpCRDsArg="--dump-crds"
local operatorArgs=" \
--csv-version=${CSV_VERSION} \
--operator-version=${tag} \
--operator-version=${VM_IMPORT_VERSION} \
--operator-image=${VM_IMPORT_IMAGE} \
--controller-image=${containerPrefix}/vm-import-controller:${tag} \
--namespace=${OPERATOR_NAMESPACE} \
Expand Down Expand Up @@ -267,6 +267,13 @@ ${PROJECT_ROOT}/tools/manifest-templator/manifest-templator \
--operator-namespace="${OPERATOR_NAMESPACE}" \
--smbios="${SMBIOS}" \
--hco-kv-io-version="${CSV_VERSION}" \
--kubevirt-version="${KUBEVIRT_VERSION}" \
--cdi-version="${CDI_VERSION}" \
--cnao-version="${NETWORK_ADDONS_VERSION}" \
--ssp-version="${SSP_VERSION}" \
--nmo-version="${NMO_VERSION}" \
--hppo-version="${HPPO_VERSION}" \
--vm-import-version="${VM_IMPORT_VERSION}" \
--operator-image="${OPERATOR_IMAGE}"
(cd ${PROJECT_ROOT}/tools/manifest-templator/ && go clean)

Expand All @@ -289,6 +296,13 @@ ${PROJECT_ROOT}/tools/csv-merger/csv-merger \
--crd-display="HyperConverged Cluster Operator" \
--smbios="${SMBIOS}" \
--csv-overrides="$(<${csvOverrides})" \
--kubevirt-version="${KUBEVIRT_VERSION}" \
--cdi-version="${CDI_VERSION}" \
--cnao-version="${NETWORK_ADDONS_VERSION}" \
--ssp-version="${SSP_VERSION}" \
--nmo-version="${NMO_VERSION}" \
--hppo-version="${HPPO_VERSION}" \
--vm-import-version="${VM_IMPORT_VERSION}" \
--operator-image-name="${OPERATOR_IMAGE}" > "${CSV_DIR}/${OPERATOR_NAME}.v${CSV_VERSION}.${CSV_EXT}"

# Copy all CRDs into the CRD and CSV directories
Expand Down
3 changes: 3 additions & 0 deletions pkg/apis/hco/v1alpha1/hyperconverged_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@ type HyperConvergedStatus struct {
}

func (hcs *HyperConvergedStatus) UpdateVersion(name, version string) {
if hcs.Versions == nil {
hcs.Versions = Versions{}
}
hcs.Versions.updateVersion(name, version)
}

Expand Down
42 changes: 36 additions & 6 deletions pkg/components/components.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,11 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

const hcoName = "hyperconverged-cluster-operator"
const (
hcoName = "hyperconverged-cluster-operator"
)

func GetDeployment(namespace, image, imagePullPolicy, conversionContainer, vmwareContainerString, smbios, machinetype, hcoKvIoVersion string) appsv1.Deployment {
func GetDeployment(namespace, image, imagePullPolicy, conversionContainer, vmwareContainerString, smbios, machinetype, hcoKvIoVersion, kubevirtVersion, cdiVersion, cnaoVersion, sspVersion, nmoVersion, hppoVersion, vmImportVersion string) appsv1.Deployment {
return appsv1.Deployment{
TypeMeta: metav1.TypeMeta{
APIVersion: "apps/v1",
Expand All @@ -33,11 +35,11 @@ func GetDeployment(namespace, image, imagePullPolicy, conversionContainer, vmwar
"name": hcoName,
},
},
Spec: GetDeploymentSpec(namespace, image, imagePullPolicy, conversionContainer, vmwareContainerString, smbios, machinetype, hcoKvIoVersion),
Spec: GetDeploymentSpec(namespace, image, imagePullPolicy, conversionContainer, vmwareContainerString, smbios, machinetype, hcoKvIoVersion, kubevirtVersion, cdiVersion, cnaoVersion, sspVersion, nmoVersion, hppoVersion, vmImportVersion),
}
}

func GetDeploymentSpec(namespace, image, imagePullPolicy, conversionContainer, vmwareContainer, smbios, machinetype, hcoKvIoVersion string) appsv1.DeploymentSpec {
func GetDeploymentSpec(namespace, image, imagePullPolicy, conversionContainer, vmwareContainer, smbios, machinetype, hcoKvIoVersion, kubevirtVersion, cdiVersion, cnaoVersion, sspVersion, nmoVersion, hppoVersion, vmImportVersion string) appsv1.DeploymentSpec {
return appsv1.DeploymentSpec{
Replicas: int32Ptr(1),
Selector: &metav1.LabelSelector{
Expand Down Expand Up @@ -122,6 +124,34 @@ func GetDeploymentSpec(namespace, image, imagePullPolicy, conversionContainer, v
Name: util.HcoKvIoVersionName,
Value: hcoKvIoVersion,
},
{
Name: util.KubevirtVersionEnvV,
Value: kubevirtVersion,
},
{
Name: util.CdiVersionEnvV,
Value: cdiVersion,
},
{
Name: util.CnaoVersionEnvV,
Value: cnaoVersion,
},
{
Name: util.SspVersionEnvV,
Value: sspVersion,
},
{
Name: util.NmoVersionEnvV,
Value: nmoVersion,
},
{
Name: util.HppoVersionEnvV,
Value: hppoVersion,
},
{
Name: util.VMImportEnvV,
Value: vmImportVersion,
},
},
},
},
Expand Down Expand Up @@ -633,12 +663,12 @@ func GetOperatorCR() *hcov1alpha1.HyperConverged {
}

// GetInstallStrategyBase returns the basics of an HCO InstallStrategy
func GetInstallStrategyBase(namespace, image, imagePullPolicy, conversionContainer, vmwareContainer, smbios, machinetype, hcoKvIoVersion string) *csvv1alpha1.StrategyDetailsDeployment {
func GetInstallStrategyBase(namespace, image, imagePullPolicy, conversionContainer, vmwareContainer, smbios, machinetype, hcoKvIoVersion, kubevirtVersion, cdiVersion, cnaoVersion, sspVersion, nmoVersion, hppoVersion, vmImportVersion string) *csvv1alpha1.StrategyDetailsDeployment {
return &csvv1alpha1.StrategyDetailsDeployment{
DeploymentSpecs: []csvv1alpha1.StrategyDeploymentSpec{
csvv1alpha1.StrategyDeploymentSpec{
Name: "hco-operator",
Spec: GetDeploymentSpec(namespace, image, imagePullPolicy, conversionContainer, vmwareContainer, smbios, machinetype, hcoKvIoVersion),
Spec: GetDeploymentSpec(namespace, image, imagePullPolicy, conversionContainer, vmwareContainer, smbios, machinetype, hcoKvIoVersion, kubevirtVersion, cdiVersion, cnaoVersion, sspVersion, nmoVersion, hppoVersion, vmImportVersion),
},
},
Permissions: []csvv1alpha1.StrategyDeploymentPermissions{},
Expand Down
Loading

0 comments on commit 07c3322

Please sign in to comment.