From 3fec6981f0b1a0514adc01e5d6ac65d13ed46344 Mon Sep 17 00:00:00 2001 From: Matthew Fuller Date: Sat, 13 Feb 2021 00:30:16 +0000 Subject: [PATCH] Define structural schema for VersionsCatalogue Changes the versions catalogue from a VariableCatalogue to a structural schema VersionsCatalogue CRD. Relates-To: #363 Change-Id: I445111356662ab33d9337ddd1537885d5afd094f --- .../airshipctl-base-catalogues/README.md | 6 +- .../versions-airshipctl.yaml | 234 ++++++++++-------- .../airshipctl-schemas/kustomization.yaml | 2 + .../versions-catalogue.yaml | 86 +++++++ .../function/baremetal-operator/README.md | 2 +- .../replacements/versions.yaml | 27 +- .../clusterctl/replacements/versions.yaml | 67 ++--- .../replacements/versions.yaml | 4 +- .../replacements/versions.yaml | 4 +- .../helm-operator/replacements/versions.yaml | 4 +- .../function/hwcc/replacements/versions.yaml | 8 +- manifests/function/k8scontrol/README.md | 2 +- .../k8scontrol/replacements/versions.yaml | 6 +- .../ephemeral/catalogues/cleanup/smp.yaml | 2 +- .../target/catalogues/cleanup/smp.yaml | 2 +- .../catalogues/versions-airshipctl.yaml | 15 +- .../ingress/replacements/versions.yaml | 12 +- 17 files changed, 306 insertions(+), 177 deletions(-) create mode 100644 manifests/function/airshipctl-schemas/kustomization.yaml create mode 100644 manifests/function/airshipctl-schemas/versions-catalogue.yaml diff --git a/manifests/function/airshipctl-base-catalogues/README.md b/manifests/function/airshipctl-base-catalogues/README.md index ddc3407ec..f5cf3d319 100644 --- a/manifests/function/airshipctl-base-catalogues/README.md +++ b/manifests/function/airshipctl-base-catalogues/README.md @@ -13,10 +13,14 @@ patched at the composite, type, or site level to reconfigure the versions. The versions info falls under these keys: -* charts: Helm chart locations and versions +* helm_repositories: Helm chart locations + +* charts: Helm chart names and versions * files: image file (etc) locations and versions +* capi_images: cluster-api container image registries and versions + * images: container image registries and versions * kubernetes: a standalone key for the Kubernetes version to use diff --git a/manifests/function/airshipctl-base-catalogues/versions-airshipctl.yaml b/manifests/function/airshipctl-base-catalogues/versions-airshipctl.yaml index fe14e6c7d..d3e6a879e 100644 --- a/manifests/function/airshipctl-base-catalogues/versions-airshipctl.yaml +++ b/manifests/function/airshipctl-base-catalogues/versions-airshipctl.yaml @@ -1,116 +1,140 @@ # The default versions catalogue for functions hosted in the airshipctl project. # These values can be overridden at the site, type, etc levels as appropriate. apiVersion: airshipit.org/v1alpha1 -kind: VariableCatalogue +kind: VersionsCatalogue metadata: name: versions-airshipctl labels: airshipit.org/deploy-k8s: "false" +spec: + helm_repositories: + ingress-nginx: + url: https://kubernetes.github.io/ingress-nginx -helm_repositories: - ingress-nginx: - url: https://kubernetes.github.io/ingress-nginx -charts: - ingress-nginx: - chart: ingress-nginx - version: 3.5.1 + charts: + ingress-nginx: + chart: ingress-nginx + version: 3.5.1 -files: - k8scontrol: - cluster_controlplane_image: - url: https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img - checksum: 4a6909d1480ac30d676accd7b37ec711 + files: + k8scontrol: + cluster_controlplane_image: + url: https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img + checksum: 4a6909d1480ac30d676accd7b37ec711 -images: - capm3: # Images specific to the camp3 function; etc. - manager: - repository: quay.io/metal3-io - tag: v0.3.2 - auth_proxy: - repository: gcr.io/kubebuilder - tag: v0.4.0 - cacpk: - manager: - repository: us.gcr.io/k8s-artifacts-prod/cluster-api - tag: v0.3.7 - auth_proxy: - repository: gcr.io/kubebuilder - tag: v0.4.1 - cabpk: - manager: - repository: us.gcr.io/k8s-artifacts-prod/cluster-api - tag: v0.3.7 - auth_proxy: - repository: gcr.io/kubebuilder - tag: v0.4.1 - capd: - manager: - repository: gcr.io/k8s-staging-cluster-api - tag: v20201019-v0.3.10-86-gc1647481f - auth_proxy: - repository: gcr.io/kubebuilder - tag: v0.4.0 - capo: - manager: - repository: gcr.io/k8s-staging-capi-openstack - tag: v20200707-v0.3.1 - auth_proxy: - repository: gcr.io/kubebuilder - tag: v0.4.1 - capg: - manager: - repository: gcr.io/k8s-staging-cluster-api-gcp - tag: master - auth_proxy: - repository: gcr.io/kubebuilder - tag: v0.4.1 - capi: - manager: - repository: us.gcr.io/k8s-artifacts-prod/cluster-api - tag: v0.3.7 - auth_proxy: - repository: gcr.io/kubebuilder - tag: v0.4.1 - capz: - manager: - repository: gcr.io/k8s-staging-cluster-api-azure - tag: v0.4.9 - auth_proxy: - repository: gcr.io/kubebuilder - tag: v0.4.1 - baremetal_operator: - ironic: # ironic Deployment - init_bootstrap: centos - init_images: quay.io/airshipit/ipa:latest - dnsmasq: quay.io/metal3-io/ironic:capm3-v0.4.0 - httpd: quay.io/metal3-io/ironic:capm3-v0.4.0 - ironic: quay.io/metal3-io/ironic:capm3-v0.4.0 - ironic_inspector: quay.io/metal3-io/ironic-inspector:capm3-v0.4.0 - metal3_baremetal_operator: # metal3-baremetal-operator Deployment - baremetal_operator: quay.io/metal3-io/baremetal-operator:capm3-v0.4.0 - ironic_proxy: alpine/socat - ironic_inspector_proxy: alpine/socat - calico_v3: - node: # calico-node DaemonSet - upgrade_ipam: calico/cni:v3.15.1 - install_cni: calico/cni:v3.15.1 - flexvol_driver: calico/pod2daemon-flexvol:v3.15.1 - calico_node: calico/node:v3.15.1 - kube_controllers: # calico-kube-controllers Deployment - calico_kube_controllers: calico/kube-controllers:v3.15.1 - hwcc: - manager: # controller-manager Deployment - manager: quay.io/hwcc/airship-hcc:v1 - kube_rbac_proxy: gcr.io/kubebuilder/kube-rbac-proxy:v0.4.1 - helm_operator: - helm_operator: # helm-operator Deployment - helm_operator: docker.io/fluxcd/helm-operator:1.2.0 - flux: - helm_controller: # helm-controller Deployment - manager: ghcr.io/fluxcd/helm-controller:v0.4.3 - source_controller: # source-controller Deployment - manager: ghcr.io/fluxcd/source-controller:v0.5.3 - cert-manager: - repository: "quay.io/jetstack" + capi_images: + capm3: # Images specific to the camp3 function; etc. + manager: + repository: quay.io/metal3-io + tag: v0.3.2 + auth_proxy: + repository: gcr.io/kubebuilder + tag: v0.4.0 + cacpk: + manager: + repository: us.gcr.io/k8s-artifacts-prod/cluster-api + tag: v0.3.7 + auth_proxy: + repository: gcr.io/kubebuilder + tag: v0.4.1 + cabpk: + manager: + repository: us.gcr.io/k8s-artifacts-prod/cluster-api + tag: v0.3.7 + auth_proxy: + repository: gcr.io/kubebuilder + tag: v0.4.1 + capd: + manager: + repository: gcr.io/k8s-staging-cluster-api + tag: v20201019-v0.3.10-86-gc1647481f + auth_proxy: + repository: gcr.io/kubebuilder + tag: v0.4.0 + capo: + manager: + repository: gcr.io/k8s-staging-capi-openstack + tag: v20200707-v0.3.1 + auth_proxy: + repository: gcr.io/kubebuilder + tag: v0.4.1 + capg: + manager: + repository: gcr.io/k8s-staging-cluster-api-gcp + tag: master + auth_proxy: + repository: gcr.io/kubebuilder + tag: v0.4.1 + capi: + manager: + repository: us.gcr.io/k8s-artifacts-prod/cluster-api + tag: v0.3.7 + auth_proxy: + repository: gcr.io/kubebuilder + tag: v0.4.1 + capz: + manager: + repository: gcr.io/k8s-staging-cluster-api-azure + tag: v0.4.9 + auth_proxy: + repository: gcr.io/kubebuilder + tag: v0.4.1 -kubernetes: v1.18.6 + images: + baremetal_operator: + ironic: # ironic Deployment + init_bootstrap: + image: centos + init_images: + image: quay.io/airshipit/ipa:latest + dnsmasq: + image: quay.io/metal3-io/ironic:capm3-v0.4.0 + httpd: + image: quay.io/metal3-io/ironic:capm3-v0.4.0 + ironic: + image: quay.io/metal3-io/ironic:capm3-v0.4.0 + ironic_inspector: + image: quay.io/metal3-io/ironic-inspector:capm3-v0.4.0 + metal3_baremetal_operator: # metal3-baremetal-operator Deployment + baremetal_operator: + image: quay.io/metal3-io/baremetal-operator:capm3-v0.4.0 + ironic_proxy: + image: alpine/socat + ironic_inspector_proxy: + image: alpine/socat + calico_v3: + node: # calico-node DaemonSet + upgrade_ipam: + image: calico/cni:v3.15.1 + install_cni: + image: calico/cni:v3.15.1 + flexvol_driver: + image: calico/pod2daemon-flexvol:v3.15.1 + calico_node: + image: calico/node:v3.15.1 + kube_controllers: # calico-kube-controllers Deployment + calico_kube_controllers: + image: calico/kube-controllers:v3.15.1 + hwcc: + manager: # controller-manager Deployment + manager: + image: quay.io/hwcc/airship-hcc:v1 + kube_rbac_proxy: + image: gcr.io/kubebuilder/kube-rbac-proxy:v0.4.1 + helm_operator: + helm_operator: # helm-operator Deployment + helm_operator: + image: docker.io/fluxcd/helm-operator:1.2.0 + flux: + helm_controller: # helm-controller Deployment + manager: + image: ghcr.io/fluxcd/helm-controller:v0.4.3 + source_controller: # source-controller Deployment + manager: + image: ghcr.io/fluxcd/source-controller:v0.5.3 + cert-manager: + cert-manager: + repository: + image: "quay.io/jetstack" + + kubernetes: v1.18.6 diff --git a/manifests/function/airshipctl-schemas/kustomization.yaml b/manifests/function/airshipctl-schemas/kustomization.yaml new file mode 100644 index 000000000..1623f2868 --- /dev/null +++ b/manifests/function/airshipctl-schemas/kustomization.yaml @@ -0,0 +1,2 @@ +resources: + - versions-catalogue.yaml diff --git a/manifests/function/airshipctl-schemas/versions-catalogue.yaml b/manifests/function/airshipctl-schemas/versions-catalogue.yaml new file mode 100644 index 000000000..44397b6a1 --- /dev/null +++ b/manifests/function/airshipctl-schemas/versions-catalogue.yaml @@ -0,0 +1,86 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + name: versionscatalogues.airshipit.org +spec: + group: airshipit.org + names: + kind: VersionsCatalogue + plural: versionscatalogues + singular: versionscatalogue + scope: Namespaced + versions: + - name: v1alpha1 + served: true + storage: true + schema: + openAPIV3Schema: + type: object + properties: + spec: + type: object + properties: + helm_repositories: + type: object + additionalProperties: + type: object + properties: + url: + type: string + charts: + type: object + additionalProperties: + type: object + properties: + chart: + type: string + version: + type: string + files: + type: object + additionalProperties: # file group + type: object + additionalProperties: # file + type: object + properties: + url: + type: string + checksum: + type: string + capi_images: + type: object + additionalProperties: + type: object + properties: + manager: + type: object + properties: + repository: + type: string + tag: + type: string + auth_proxy: + type: object + properties: + repository: + type: string + tag: + type: string + images: + type: object + additionalProperties: # image groups + type: object + additionalProperties: # Deployments in image group + type: object + additionalProperties: # images in Deployment + type: object + properties: + image: + type: string + # TODO(mfuller): add fields for 'tag' and 'hash' which + # will require a function in the replacement transformer + # to properly concatenate the complete image string, i.e. + # image/name:tag and image/name@sha256:hash + kubernetes: + type: string + diff --git a/manifests/function/baremetal-operator/README.md b/manifests/function/baremetal-operator/README.md index 63839ad48..73aa2d1fd 100644 --- a/manifests/function/baremetal-operator/README.md +++ b/manifests/function/baremetal-operator/README.md @@ -4,7 +4,7 @@ Function: baremetal-operator This function defines a deployment of the Metal3 baremetal-operator, including both the operator itself and Ironic. -Optional: a ``versions-airshipctl`` VariableCatalogue may be used to +Optional: a ``versions-airshipctl`` VersionsCatalogue may be used to override the default container images. A base example for this catalogue can be found in the ``airshipctl-base-catalogues`` function. If using the catalogue, apply the ``replacements/`` entrypoint diff --git a/manifests/function/baremetal-operator/replacements/versions.yaml b/manifests/function/baremetal-operator/replacements/versions.yaml index 58fd855e9..efcb71a37 100644 --- a/manifests/function/baremetal-operator/replacements/versions.yaml +++ b/manifests/function/baremetal-operator/replacements/versions.yaml @@ -12,8 +12,9 @@ replacements: # Container versions for the ironic Deployment - source: objref: + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.baremetal_operator.ironic.init_bootstrap}" + fieldref: "{.spec.images.baremetal_operator.ironic.init_bootstrap.image}" target: objref: kind: Deployment @@ -21,8 +22,9 @@ replacements: fieldrefs: ["{.spec.template.spec.initContainers[?(.name == 'init-bootstrap')].image}"] - source: objref: + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.baremetal_operator.ironic.init_images}" + fieldref: "{.spec.images.baremetal_operator.ironic.init_images.image}" target: objref: kind: Deployment @@ -30,8 +32,9 @@ replacements: fieldrefs: ["{.spec.template.spec.initContainers[?(.name == 'init-images')].image}"] - source: objref: + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.baremetal_operator.ironic.dnsmasq}" + fieldref: "{.spec.images.baremetal_operator.ironic.dnsmasq.image}" target: objref: kind: Deployment @@ -39,8 +42,9 @@ replacements: fieldrefs: ["{.spec.template.spec.containers[?(.name == 'dnsmasq')].image}"] - source: objref: + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.baremetal_operator.ironic.httpd}" + fieldref: "{.spec.images.baremetal_operator.ironic.httpd.image}" target: objref: kind: Deployment @@ -48,8 +52,9 @@ replacements: fieldrefs: ["{.spec.template.spec.containers[?(.name == 'httpd')].image}"] - source: objref: + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.baremetal_operator.ironic.ironic}" + fieldref: "{.spec.images.baremetal_operator.ironic.ironic.image}" target: objref: kind: Deployment @@ -57,8 +62,9 @@ replacements: fieldrefs: ["{.spec.template.spec.containers[?(.name == 'ironic')].image}"] - source: objref: + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.baremetal_operator.ironic.ironic_inspector}" + fieldref: "{.spec.images.baremetal_operator.ironic.ironic_inspector.image}" target: objref: kind: Deployment @@ -67,8 +73,9 @@ replacements: # Container versions for the metal3-baremetal-operator Deployment - source: objref: + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.baremetal_operator.metal3_baremetal_operator.baremetal_operator}" + fieldref: "{.spec.images.baremetal_operator.metal3_baremetal_operator.baremetal_operator.image}" target: objref: kind: Deployment @@ -76,8 +83,9 @@ replacements: fieldrefs: ["{.spec.template.spec.containers[?(.name == 'baremetal-operator')].image}"] - source: objref: + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.baremetal_operator.metal3_baremetal_operator.ironic_proxy}" + fieldref: "{.spec.images.baremetal_operator.metal3_baremetal_operator.ironic_proxy.image}" target: objref: kind: Deployment @@ -85,8 +93,9 @@ replacements: fieldrefs: ["{.spec.template.spec.containers[?(.name == 'ironic-proxy')].image}"] - source: objref: + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.baremetal_operator.metal3_baremetal_operator.ironic_inspector_proxy}" + fieldref: "{.spec.images.baremetal_operator.metal3_baremetal_operator.ironic_inspector_proxy.image}" target: objref: kind: Deployment diff --git a/manifests/function/clusterctl/replacements/versions.yaml b/manifests/function/clusterctl/replacements/versions.yaml index 0a411d80f..275d2184e 100644 --- a/manifests/function/clusterctl/replacements/versions.yaml +++ b/manifests/function/clusterctl/replacements/versions.yaml @@ -11,9 +11,9 @@ replacements: # Replace capm3 versions - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.capm3.manager}" + fieldref: "{.spec.capi_images.capm3.manager}" target: objref: kind: Clusterctl @@ -21,9 +21,9 @@ replacements: fieldrefs: ["{.images.infrastructure-metal3/cluster-api-provider-metal3}"] - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.capm3.auth_proxy}" + fieldref: "{.spec.capi_images.capm3.auth_proxy}" target: objref: kind: Clusterctl @@ -32,9 +32,9 @@ replacements: # Replace cacpk versions - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.cacpk.manager}" + fieldref: "{.spec.capi_images.cacpk.manager}" target: objref: kind: Clusterctl @@ -42,9 +42,9 @@ replacements: fieldrefs: ["{.images.control-plane-kubeadm/kubeadm-control-plane-controller}"] - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.cacpk.auth_proxy}" + fieldref: "{.spec.capi_images.cacpk.auth_proxy}" target: objref: kind: Clusterctl @@ -53,9 +53,9 @@ replacements: # Replace cabpk versions - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.cabpk.manager}" + fieldref: "{.spec.capi_images.cabpk.manager}" target: objref: kind: Clusterctl @@ -63,9 +63,9 @@ replacements: fieldrefs: ["{.images.bootstrap-kubeadm/kubeadm-bootstrap-controller}"] - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.cabpk.auth_proxy}" + fieldref: "{.spec.capi_images.cabpk.auth_proxy}" target: objref: kind: Clusterctl @@ -74,9 +74,9 @@ replacements: # Replace capd versions - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.capd.manager}" + fieldref: "{.spec.capi_images.capd.manager}" target: objref: kind: Clusterctl @@ -84,9 +84,9 @@ replacements: fieldrefs: ["{.images.infrastructure-docker/capd-manager}"] - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.capd.auth_proxy}" + fieldref: "{.spec.capi_images.capd.auth_proxy}" target: objref: kind: Clusterctl @@ -95,9 +95,9 @@ replacements: # Replace capo versions - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.capo.manager}" + fieldref: "{.spec.capi_images.capo.manager}" target: objref: kind: Clusterctl @@ -105,9 +105,9 @@ replacements: fieldrefs: ["{.images.infrastructure-openstack/capi-openstack-controller-amd64}"] - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.capo.auth_proxy}" + fieldref: "{.spec.capi_images.capo.auth_proxy}" target: objref: kind: Clusterctl @@ -116,9 +116,9 @@ replacements: # Replace capg versions - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.capg.manager}" + fieldref: "{.spec.capi_images.capg.manager}" target: objref: kind: Clusterctl @@ -126,9 +126,9 @@ replacements: fieldrefs: ["{.images.infrastructure-gcp/cluster-api-gcp-controller}"] - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.capg.auth_proxy}" + fieldref: "{.spec.capi_images.capg.auth_proxy}" target: objref: kind: Clusterctl @@ -137,9 +137,9 @@ replacements: # Replace capi versions - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.capi.manager}" + fieldref: "{.spec.capi_images.capi.manager}" target: objref: kind: Clusterctl @@ -147,9 +147,9 @@ replacements: fieldrefs: ["{.images.cluster-api/cluster-api-controller}"] - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.capi.auth_proxy}" + fieldref: "{.spec.capi_images.capi.auth_proxy}" target: objref: kind: Clusterctl @@ -159,9 +159,9 @@ replacements: # Replace capz versions - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.capz.manager}" + fieldref: "{.spec.capi_images.capz.manager}" target: objref: kind: Clusterctl @@ -169,9 +169,9 @@ replacements: fieldrefs: ["{.images.infrastructure-azure/cluster-api-azure-controller}"] - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.capz.auth_proxy}" + fieldref: "{.spec.capi_images.capz.auth_proxy}" target: objref: kind: Clusterctl @@ -181,8 +181,9 @@ replacements: # Replace the cert-manager image repository in the Clusterctl - source: objref: + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.images.cert-manager.repository}" + fieldref: "{.spec.capi_images.cert-manager.repository}" target: objref: kind: Clusterctl diff --git a/manifests/function/flux/helm-controller/replacements/versions.yaml b/manifests/function/flux/helm-controller/replacements/versions.yaml index b6df49dbf..fba48fc27 100644 --- a/manifests/function/flux/helm-controller/replacements/versions.yaml +++ b/manifests/function/flux/helm-controller/replacements/versions.yaml @@ -9,9 +9,9 @@ metadata: replacements: - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: images.flux.helm_controller.manager + fieldref: spec.images.flux.helm_controller.manager.image target: objref: kind: Deployment diff --git a/manifests/function/flux/source-controller/replacements/versions.yaml b/manifests/function/flux/source-controller/replacements/versions.yaml index 276639817..1a836b0a3 100644 --- a/manifests/function/flux/source-controller/replacements/versions.yaml +++ b/manifests/function/flux/source-controller/replacements/versions.yaml @@ -9,9 +9,9 @@ metadata: replacements: - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: images.flux.source_controller.manager + fieldref: spec.images.flux.source_controller.manager.image target: objref: kind: Deployment diff --git a/manifests/function/helm-operator/replacements/versions.yaml b/manifests/function/helm-operator/replacements/versions.yaml index 7e29d5047..f9730ea5e 100644 --- a/manifests/function/helm-operator/replacements/versions.yaml +++ b/manifests/function/helm-operator/replacements/versions.yaml @@ -9,9 +9,9 @@ metadata: replacements: - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: images.helm_operator.helm_operator.helm_operator + fieldref: spec.images.helm_operator.helm_operator.helm_operator.image target: objref: kind: Deployment diff --git a/manifests/function/hwcc/replacements/versions.yaml b/manifests/function/hwcc/replacements/versions.yaml index 272fdd852..40880b84f 100644 --- a/manifests/function/hwcc/replacements/versions.yaml +++ b/manifests/function/hwcc/replacements/versions.yaml @@ -9,9 +9,9 @@ metadata: replacements: - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: images.hwcc.manager.manager + fieldref: spec.images.hwcc.manager.manager.image target: objref: kind: Deployment @@ -19,9 +19,9 @@ replacements: fieldrefs: ["spec.template.spec.containers[name=manager].image"] - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: images.hwcc.manager.kube_rbac_proxy + fieldref: spec.images.hwcc.manager.kube_rbac_proxy.image target: objref: kind: Deployment diff --git a/manifests/function/k8scontrol/README.md b/manifests/function/k8scontrol/README.md index 390d8a44e..b3b88b6ff 100644 --- a/manifests/function/k8scontrol/README.md +++ b/manifests/function/k8scontrol/README.md @@ -5,7 +5,7 @@ This function defines a KubeADM and Metal3 control plane, including Cluster, Metal3Cluster, KubeadmControlPlane, and Metal3MachineTemplate resources. -Optional: a ``versions-airshipctl`` VariableCatalogue may be used to +Optional: a ``versions-airshipctl`` VersionsCatalogue may be used to override the default Kubernetes version and controlplane disk image. A base example for this catalogue can be found in the ``airshipctl-base-catalogues`` function. If using the catalogue, apply the ``replacements/`` entrypoint diff --git a/manifests/function/k8scontrol/replacements/versions.yaml b/manifests/function/k8scontrol/replacements/versions.yaml index 27d015a15..2cdde8e71 100644 --- a/manifests/function/k8scontrol/replacements/versions.yaml +++ b/manifests/function/k8scontrol/replacements/versions.yaml @@ -11,8 +11,9 @@ replacements: # Replace the Kubernetes version in the KubeadmControlPlane - source: objref: + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.kubernetes}" + fieldref: "{.spec.kubernetes}" target: objref: kind: KubeadmControlPlane @@ -21,8 +22,9 @@ replacements: # Replace the controlplane disk image in the Metal3MachineTemplate - source: objref: + kind: VersionsCatalogue name: versions-airshipctl - fieldref: "{.files.k8scontrol.cluster_controlplane_image}" + fieldref: "{.spec.files.k8scontrol.cluster_controlplane_image}" target: objref: kind: Metal3MachineTemplate diff --git a/manifests/site/test-site/ephemeral/catalogues/cleanup/smp.yaml b/manifests/site/test-site/ephemeral/catalogues/cleanup/smp.yaml index 5b96bd725..d04903445 100644 --- a/manifests/site/test-site/ephemeral/catalogues/cleanup/smp.yaml +++ b/manifests/site/test-site/ephemeral/catalogues/cleanup/smp.yaml @@ -23,7 +23,7 @@ patches: |- $patch: delete --- apiVersion: airshipit.org/v1alpha1 - kind: VariableCatalogue + kind: VersionsCatalogue metadata: name: versions-airshipctl $patch: delete diff --git a/manifests/site/test-site/target/catalogues/cleanup/smp.yaml b/manifests/site/test-site/target/catalogues/cleanup/smp.yaml index 5b96bd725..d04903445 100644 --- a/manifests/site/test-site/target/catalogues/cleanup/smp.yaml +++ b/manifests/site/test-site/target/catalogues/cleanup/smp.yaml @@ -23,7 +23,7 @@ patches: |- $patch: delete --- apiVersion: airshipit.org/v1alpha1 - kind: VariableCatalogue + kind: VersionsCatalogue metadata: name: versions-airshipctl $patch: delete diff --git a/manifests/site/test-site/target/catalogues/versions-airshipctl.yaml b/manifests/site/test-site/target/catalogues/versions-airshipctl.yaml index cc115ff59..c789395aa 100644 --- a/manifests/site/test-site/target/catalogues/versions-airshipctl.yaml +++ b/manifests/site/test-site/target/catalogues/versions-airshipctl.yaml @@ -1,11 +1,12 @@ # Override default controlplane image location apiVersion: airshipit.org/v1alpha1 -kind: VariableCatalogue +kind: VersionsCatalogue metadata: name: versions-airshipctl -files: - k8scontrol: - # Host the image in a locally served location for CI - cluster_controlplane_image: - url: http://10.23.24.101:80/images/control-plane.qcow2 - checksum: http://10.23.24.101:80/images/control-plane.qcow2.md5sum +spec: + files: + k8scontrol: + # Host the image in a locally served location for CI + cluster_controlplane_image: + url: http://10.23.24.101:80/images/control-plane.qcow2 + checksum: http://10.23.24.101:80/images/control-plane.qcow2.md5sum diff --git a/manifests/type/gating/target/workload/ingress/replacements/versions.yaml b/manifests/type/gating/target/workload/ingress/replacements/versions.yaml index 211433c78..979d46a18 100644 --- a/manifests/type/gating/target/workload/ingress/replacements/versions.yaml +++ b/manifests/type/gating/target/workload/ingress/replacements/versions.yaml @@ -9,9 +9,9 @@ metadata: replacements: - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: helm_repositories.ingress-nginx.url + fieldref: spec.helm_repositories.ingress-nginx.url target: objref: kind: HelmRepository @@ -19,9 +19,9 @@ replacements: fieldrefs: ["spec.url"] - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: charts.ingress-nginx.chart + fieldref: spec.charts.ingress-nginx.chart target: objref: kind: HelmRelease @@ -29,9 +29,9 @@ replacements: fieldrefs: ["spec.chart.spec.chart"] - source: objref: - kind: VariableCatalogue + kind: VersionsCatalogue name: versions-airshipctl - fieldref: charts.ingress-nginx.version + fieldref: spec.charts.ingress-nginx.version target: objref: kind: HelmRelease