diff --git a/images/capi/Makefile b/images/capi/Makefile index 0b9de3469d..269b7adb75 100644 --- a/images/capi/Makefile +++ b/images/capi/Makefile @@ -18,8 +18,9 @@ all: build # A list of the supported distribution/version combinations. Each member -# of BUILD_NAMES must have a corresponding file "config/BUILD_NAME.json". -BUILD_NAMES ?= ova-centos-7 ova-ubuntu-1804 ami-default +# of *_BUILD_NAMES must have a corresponding file "config/*_BUILD_NAME.json". +OVA_BUILD_NAMES ?= ova-centos-7 ova-ubuntu-1804 +AMI_BUILD_NAMES ?= ami-default # The version of Kubernetes to install. KUBE_JSON ?= packer/config/kubernetes.json packer/config/cni.json packer/config/containerd.json @@ -30,20 +31,21 @@ OLD_PACKER_FLAGS := $(PACKER_FLAGS) PACKER_FLAGS := $(foreach f,$(abspath $(PACKER_VAR_FILES)),-var-file="$(f)" ) PACKER_FLAGS += $(OLD_PACKER_FLAGS) -BUILD_TARGETS := $(addprefix build-,$(BUILD_NAMES)) -$(BUILD_TARGETS): - if [[ $@ = build-ova* ]] ; then \ - packer build $(PACKER_FLAGS) -var-file="$(abspath packer/ova/$(subst build-,,$@).json)" packer/ova/packer.json; \ - else \ - packer build $(PACKER_FLAGS) -var-file="$(abspath packer/ami/$(subst build-,,$@).json)" packer/ami/packer.json; \ - fi -.PHONY: $(BUILD_TARGETS) +OVA_BUILD_TARGETS := $(addprefix build-,$(OVA_BUILD_NAMES)) +AMI_BUILD_TARGETS := $(addprefix build-,$(AMI_BUILD_NAMES)) +$(OVA_BUILD_TARGETS): + packer build $(PACKER_FLAGS) -var-file="$(abspath packer/ova/$(subst build-,,$@).json)" packer/ova/packer.json +.PHONY: $(OVA_BUILD_TARGETS) -CLEAN_TARGETS := $(addprefix clean-,$(BUILD_NAMES)) +$(AMI_BUILD_TARGETS): + packer build $(PACKER_FLAGS) -var-file="$(abspath packer/ami/$(subst build-,,$@).json)" packer/ami/packer.json +.PHONY: $(AMI_BUILD_TARGETS) + +CLEAN_TARGETS := $(addprefix clean-,$(OVA_BUILD_NAMES)) $(addprefix clean-,$(AMI_BUILD_NAMES)) $(CLEAN_TARGETS): rm -fr output/$(subst clean-,,$@)* .PHONY: $(CLEAN_TARGETS) -build: $(BUILD_TARGETS) +build: $(OVA_BUILD_TARGETS) $(AMI_BUILD_TARGETS) clean: $(CLEAN_TARGETS) .PHONY: build clean diff --git a/images/capi/README.md b/images/capi/README.md index ceb2773155..ea4f439f04 100644 --- a/images/capi/README.md +++ b/images/capi/README.md @@ -22,7 +22,14 @@ The `packer/config` directory includes several JSON files that define the config | `packer/config/kubernetes.json` | The version of Kubernetes to install | | `packer/config/cni.json` | The version of Kubernetes CNI to install | | `packer/config/containerd.json` | The version of containerd to install | - + +## Kubernetes versions +| Tested Kubernetes Versions | +|---------| +| `1.13.x` | +| `1.14.x` | +| `1.15.x` | + ## Output The OVA images are built and located in `output/BUILD_NAME+kube-KUBERNETES_VERSION` diff --git a/images/capi/ansible/filter_plugins/kube.py b/images/capi/ansible/filter_plugins/kube.py deleted file mode 100644 index 775ba34c52..0000000000 --- a/images/capi/ansible/filter_plugins/kube.py +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright 2018 The Kubernetes Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import re - - -class FilterModule(object): - - def filters(self): - return { - 'kube_platform_version': self.kube_platform_version, - } - - def kube_platform_version(self, version, platform): - if version == "latest": - return version - - match = re.match('(\d+\.\d+.\d+)\-(\d+)', version) - if not match: - raise Exception("Version '%s' does not appear to be a " - "kubernetes version." % version) - sub = match.groups(1)[1] - if len(sub) == 1: - if platform.lower() == "debian": - return "%s-%s" % (match.groups(1)[0], '{:02d}'.format(sub)) - else: - return version - if len(sub) == 2: - if platform.lower() == "redhat": - return "%s-%s" % (match.groups(1)[0], int(sub)) - else: - return version - - raise Exception("Could not parse kubernetes version") diff --git a/images/capi/ansible/roles/kubernetes/tasks/debian.yml b/images/capi/ansible/roles/kubernetes/tasks/debian.yml index 1133fce7da..7904c1c391 100644 --- a/images/capi/ansible/roles/kubernetes/tasks/debian.yml +++ b/images/capi/ansible/roles/kubernetes/tasks/debian.yml @@ -28,7 +28,7 @@ name: "{{ packages }}" vars: packages: - - "kubelet={{ kubernetes_version | kube_platform_version('debian') }}" - - "kubeadm={{ kubernetes_version | kube_platform_version('debian') }}" - - "kubectl={{ kubernetes_version | kube_platform_version('debian') }}" - - "kubernetes-cni={{kubernetes_cni_version | kube_platform_version('debian') }}" + - "kubelet={{ kubernetes_deb_version }}" + - "kubeadm={{ kubernetes_deb_version }}" + - "kubectl={{ kubernetes_deb_version }}" + - "kubernetes-cni={{kubernetes_cni_deb_version }}" diff --git a/images/capi/ansible/roles/kubernetes/tasks/main.yml b/images/capi/ansible/roles/kubernetes/tasks/main.yml index f45f1b6f9e..247ff3c26c 100644 --- a/images/capi/ansible/roles/kubernetes/tasks/main.yml +++ b/images/capi/ansible/roles/kubernetes/tasks/main.yml @@ -13,13 +13,13 @@ # limitations under the License. --- - import_tasks: debian.yml - when: kubernetes_source == "pkg" and ansible_os_family == "Debian" + when: kubernetes_source_type == "pkg" and ansible_os_family == "Debian" - import_tasks: redhat.yml - when: kubernetes_source == "pkg" and ansible_os_family == "RedHat" + when: kubernetes_source_type == "pkg" and ansible_os_family == "RedHat" - import_tasks: url.yml - when: kubernetes_source != "pkg" and kubernetes_cni_source != "pkg" + when: kubernetes_source_type != "pkg" and kubernetes_cni_source_type != "pkg" - name: Ensure that the kubelet is running service: @@ -31,5 +31,15 @@ dest: /etc/kubernetes-version src: etc/kubernetes-version +- name: Create kubeadm config file + template: + dest: /etc/kubeadm.yml + src: etc/kubeadm.yml + - name: Kubeadm pull images - shell: 'kubeadm config images pull --cri-socket="/var/run/containerd/containerd.sock" --kubernetes-version="{{ kubernetes_semver }}"' + shell: 'kubeadm config images pull --config /etc/kubeadm.yml' + +- name: delete kubeadm config + file: + path: /etc/kubeadm.yml + state: absent diff --git a/images/capi/ansible/roles/kubernetes/tasks/redhat.yml b/images/capi/ansible/roles/kubernetes/tasks/redhat.yml index 8cb3365393..3f5eb859c5 100644 --- a/images/capi/ansible/roles/kubernetes/tasks/redhat.yml +++ b/images/capi/ansible/roles/kubernetes/tasks/redhat.yml @@ -28,7 +28,7 @@ lock_timeout: 60 vars: packages: - - "kubelet-{{ kubernetes_version | kube_platform_version('redhat') }}" - - "kubeadm-{{ kubernetes_version | kube_platform_version('redhat') }}" - - "kubectl-{{ kubernetes_version | kube_platform_version('redhat') }}" - - "kubernetes-cni-{{kubernetes_cni_version | kube_platform_version('redhat')}}" + - "kubelet-{{ kubernetes_rpm_version }}" + - "kubeadm-{{ kubernetes_rpm_version }}" + - "kubectl-{{ kubernetes_rpm_version }}" + - "kubernetes-cni-{{kubernetes_cni_rpm_version }}" diff --git a/images/capi/ansible/roles/kubernetes/tasks/url.yml b/images/capi/ansible/roles/kubernetes/tasks/url.yml index 7254913854..a39b418da0 100644 --- a/images/capi/ansible/roles/kubernetes/tasks/url.yml +++ b/images/capi/ansible/roles/kubernetes/tasks/url.yml @@ -32,8 +32,8 @@ - name: Download CNI tarball get_url: - url: "{{ kubernetes_cni_source }}/{{ kubernetes_cni_semver }}/cni-plugins-{{ kubernetes_goarch }}-{{ kubernetes_cni_semver }}.tgz" - checksum: "sha1:{{ kubernetes_cni_source }}/{{ kubernetes_cni_semver }}/cni-plugins-{{ kubernetes_goarch }}-{{ kubernetes_cni_semver }}.tgz.sha1" + url: "{{ kubernetes_cni_http_source }}/{{ kubernetes_cni_semver }}/cni-plugins-{{ kubernetes_goarch }}-{{ kubernetes_cni_semver }}.tgz" + checksum: "sha1:{{ kubernetes_cni_http_source }}/{{ kubernetes_cni_semver }}/cni-plugins-{{ kubernetes_goarch }}-{{ kubernetes_cni_semver }}.tgz.sha1" dest: /tmp/cni.tar.gz mode: 0755 owner: root @@ -52,11 +52,11 @@ - name: Download Kubernetes binaries get_url: - url: "{{ kubernetes_source }}/bin/linux/{{ kubernetes_goarch }}/{{ item }}" + url: "{{ kubernetes_http_source }}/{{ kubernetes_semver }}/bin/linux/{{ kubernetes_goarch }}/{{ item }}" # TODO(akutz) Write a script to separately download the checksum # and verify the associated file using the correct # checksum file format - #checksum: "sha1:{{ kubernetes_source }}/bin/linux/amd64/{{ item }}.sha1" + #checksum: "sha1:{{ kubernetes_http_source }}/bin/linux/amd64/{{ item }}.sha1" dest: "/usr/bin/{{ item }}" mode: 0755 owner: root @@ -65,11 +65,11 @@ - name: Download Kubernetes images get_url: - url: "{{ kubernetes_source }}/bin/linux/{{ kubernetes_goarch }}/{{ item }}" + url: "{{ kubernetes_http_source }}/{{ kubernetes_semver }}/bin/linux/{{ kubernetes_goarch }}/{{ item }}" # TODO(akutz) Write a script to separately download the checksum # and verify the associated file using the correct # checksum file format - #checksum: "sha1:{{ kubernetes_source }}/bin/linux/amd64/{{ item }}.sha1" + #checksum: "sha1:{{ kubernetes_http_source }}/bin/linux/amd64/{{ item }}.sha1" dest: "/tmp/{{ item }}" loop: "{{ kubernetes_imgs }}" diff --git a/images/capi/ansible/roles/kubernetes/templates/etc/kubeadm.yml b/images/capi/ansible/roles/kubernetes/templates/etc/kubeadm.yml new file mode 100644 index 0000000000..705c86befa --- /dev/null +++ b/images/capi/ansible/roles/kubernetes/templates/etc/kubeadm.yml @@ -0,0 +1,9 @@ +apiVersion: kubeadm.k8s.io/v1beta1 +kind: ClusterConfiguration +imageRepository: {{ kubernetes_container_registry }} +kubernetesVersion: {{ kubernetes_semver }} +--- +apiVersion: kubeadm.k8s.io/v1beta1 +kind: InitConfiguration +nodeRegistration: + criSocket: "/var/run/containerd/containerd.sock" \ No newline at end of file diff --git a/images/capi/hack/image-build-ova.py b/images/capi/hack/image-build-ova.py index a657abdc71..e872d7d9f6 100755 --- a/images/capi/hack/image-build-ova.py +++ b/images/capi/hack/image-build-ova.py @@ -71,15 +71,13 @@ def main(): 'ARTIFACT_ID': build['artifact_id'], 'BUILD_TIMESTAMP': build_data['build_timestamp'], 'CAPI_VERSION': build_data['capi_version'], - 'CAPV_VERSION': build_data['capv_version'], - 'CNI_VERSION': build_data['cni_version'], + 'CNI_VERSION': build_data['kubernetes_cni_semver'], 'OS_NAME': build_data['os_name'], 'ISO_CHECKSUM': build_data['iso_checksum'], 'ISO_CHECKSUM_TYPE': build_data['iso_checksum_type'], 'ISO_URL': build_data['iso_url'], 'KUBERNETES_SEMVER': build_data['kubernetes_semver'], - 'KUBERNETES_SOURCE': build_data['kubernetes_source'], - 'KUBERNETES_VERSION': build_data['kubernetes_version'], + 'KUBERNETES_SOURCE_TYPE': build_data['kubernetes_source_type'], 'POPULATED_DISK_SIZE': vmdk['size'], 'STREAM_DISK_SIZE': vmdk['stream_size'], }) @@ -538,22 +536,20 @@ def stream_optimize_vmdk_files(inlist): Information about the installed software ${OS_NAME} and Kubernetes ${KUBERNETES_SEMVER} VMware Inc. - ${CAPV_VERSION}+kube-${KUBERNETES_SEMVER} - ${CAPV_VERSION}+kube-${KUBERNETES_SEMVER} + kube-${KUBERNETES_SEMVER} + kube-${KUBERNETES_SEMVER} https://github.com/kubernetes-sigs/cluster-api-provider-vsphere https://vmware.com Cluster API Provider (CAPI) - - - + diff --git a/images/capi/hack/image-new-kube.py b/images/capi/hack/image-new-kube.py index d0902f28ad..12350085d6 100755 --- a/images/capi/hack/image-new-kube.py +++ b/images/capi/hack/image-new-kube.py @@ -24,7 +24,7 @@ KUBE_RELEASE_SRC = "https://storage.googleapis.com/kubernetes-release" KUBE_RESOLVED_SEM = "kubernetes_semver" -KUBE_RESOLVED_SRC = "kubernetes_source" +KUBE_RESOLVED_SRC = "kubernetes_http_source" KUBE_RESOLVED_VER = "kubernetes_version" # KubeVersionResolver is used for resolving Kubernetes version strings to the diff --git a/images/capi/packer/ami/packer.json b/images/capi/packer/ami/packer.json index ce90fea99a..9e25badbbd 100644 --- a/images/capi/packer/ami/packer.json +++ b/images/capi/packer/ami/packer.json @@ -7,17 +7,22 @@ "encrypted": "false", "containerd_version": null, "containerd_sha256": null, - "kubernetes_cni_version": null, + "kubernetes_cni_rpm_version": null, + "kubernetes_cni_deb_version": null, "kubernetes_cni_semver": null, - "kubernetes_cni_source": null, + "kubernetes_cni_source_type": null, + "kubernetes_cni_http_source": null, "kubernetes_semver": null, - "kubernetes_source": null, - "kubernetes_version": null, + "kubernetes_source_type": null, + "kubernetes_http_source": null, + "kubernetes_rpm_version": null, + "kubernetes_deb_version": null, "kubernetes_rpm_repo": null, "kubernetes_rpm_gpg_key": null, "kubernetes_deb_repo": null, "kubernetes_deb_gpg_key": null, "kubernetes_rpm_gpg_check": null, + "kubernetes_container_registry": null, "existing_ansible_ssh_args": "{{env `ANSIBLE_SSH_ARGS`}}", "ami_groups": "all", "ami_users": "", @@ -40,7 +45,7 @@ "owners": ["099720109477"], "most_recent": true }, - "ami_name": "capa-ami-ubuntu-18.04-{{user `kubernetes_version`}}-{{user `build_timestamp`}}", + "ami_name": "capa-ami-ubuntu-18.04-{{user `kubernetes_semver`}}-{{user `build_timestamp`}}", "ami_groups": "{{user `ami_groups`}}", "ami_users": "{{user `ami_users`}}", "snapshot_groups": "{{user `snapshot_groups`}}", @@ -58,8 +63,8 @@ "distribution": "Ubuntu", "distribution_release": "bionic", "distribution_version": "18.04", - "kubernetes_version": "{{user `kubernetes_version`}}", - "kubernetes_cni_version": "{{user `kubernetes_cni_version`}}" + "kubernetes_version": "{{user `kubernetes_semver`}}", + "kubernetes_cni_version": "{{user `kubernetes_cni_semver`}}" } }, { @@ -77,7 +82,7 @@ "owners": ["410186602215"], "most_recent": true }, - "ami_name": "capa-ami-centos-7-{{user `kubernetes_version`}}-{{user `build_timestamp`}}", + "ami_name": "capa-ami-centos-7-{{user `kubernetes_semver`}}-{{user `build_timestamp`}}", "ami_groups": "{{user `ami_groups`}}", "ami_users": "{{user `ami_users`}}", "snapshot_groups": "{{user `snapshot_groups`}}", @@ -96,8 +101,8 @@ "distribution": "CentOS", "distribution_release": "Core", "distribution_version": "7", - "kubernetes_version": "{{user `kubernetes_version`}}", - "kubernetes_cni_version": "{{user `kubernetes_cni_version`}}" + "kubernetes_version": "{{user `kubernetes_semver`}}", + "kubernetes_cni_version": "{{user `kubernetes_cni_semver`}}" } }, { @@ -115,7 +120,7 @@ "owners": ["amazon"], "most_recent": true }, - "ami_name": "capa-ami-amazon-2-{{user `kubernetes_version`}}-{{user `build_timestamp`}}", + "ami_name": "capa-ami-amazon-2-{{user `kubernetes_semver`}}-{{user `build_timestamp`}}", "ami_groups": "{{user `ami_groups`}}", "ami_users": "{{user `ami_users`}}", "snapshot_groups": "{{user `snapshot_groups`}}", @@ -133,8 +138,8 @@ "distribution": "Amazon Linux", "distribution_release": "Amazon Linux 2", "distribution_version": "2", - "kubernetes_version": "{{user `kubernetes_version`}}", - "kubernetes_cni_version": "{{user `kubernetes_cni_version`}}" + "kubernetes_version": "{{user `kubernetes_semver`}}", + "kubernetes_cni_version": "{{user `kubernetes_cni_semver`}}" } } ], @@ -157,7 +162,7 @@ ], "extra_arguments": [ "--extra-vars", - "containerd_version={{user `containerd_version`}} containerd_sha256={{user `containerd_sha256`}} kubernetes_rpm_repo={{user `kubernetes_rpm_repo`}} kubernetes_rpm_gpg_key={{user `kubernetes_rpm_gpg_key`}} kubernetes_rpm_gpg_check={{user `kubernetes_rpm_gpg_check`}} kubernetes_deb_repo={{user `kubernetes_deb_repo`}} kubernetes_deb_gpg_key={{user `kubernetes_deb_gpg_key`}} kubernetes_cni_version={{user `kubernetes_cni_version`}} kubernetes_cni_semver={{user `kubernetes_cni_semver`}} kubernetes_cni_source={{user `kubernetes_cni_source`}} kubernetes_semver={{user `kubernetes_semver`}} kubernetes_source={{user `kubernetes_source`}} kubernetes_version={{user `kubernetes_version`}}" + "containerd_version={{user `containerd_version`}} containerd_sha256={{user `containerd_sha256`}} kubernetes_cni_http_source={{user `kubernetes_cni_http_source`}} kubernetes_http_source={{user `kubernetes_http_source`}} kubernetes_container_registry={{user `kubernetes_container_registry`}} kubernetes_rpm_repo={{user `kubernetes_rpm_repo`}} kubernetes_rpm_gpg_key={{user `kubernetes_rpm_gpg_key`}} kubernetes_rpm_gpg_check={{user `kubernetes_rpm_gpg_check`}} kubernetes_deb_repo={{user `kubernetes_deb_repo`}} kubernetes_deb_gpg_key={{user `kubernetes_deb_gpg_key`}} kubernetes_cni_deb_version={{user `kubernetes_cni_deb_version`}} kubernetes_cni_rpm_version={{user `kubernetes_cni_rpm_version`}} kubernetes_cni_semver={{user `kubernetes_cni_semver`}} kubernetes_cni_source_type={{user `kubernetes_cni_source_type`}} kubernetes_semver={{user `kubernetes_semver`}} kubernetes_source_type={{user `kubernetes_source_type`}} kubernetes_deb_version={{user `kubernetes_deb_version`}} kubernetes_rpm_version={{user `kubernetes_rpm_version`}}" ] }, { diff --git a/images/capi/packer/config/cni.json b/images/capi/packer/config/cni.json index 3e07f6e4a9..2f55af8e35 100644 --- a/images/capi/packer/config/cni.json +++ b/images/capi/packer/config/cni.json @@ -1,5 +1,7 @@ { "kubernetes_cni_semver": "v0.7.5", - "kubernetes_cni_version": "0.7.5-00", - "kubernetes_cni_source": "pkg" + "kubernetes_cni_rpm_version": "0.7.5-0", + "kubernetes_cni_deb_version": "0.7.5-00", + "kubernetes_cni_source_type": "pkg", + "kubernetes_cni_http_source": "https://github.com/containernetworking/plugins/releases/download" } \ No newline at end of file diff --git a/images/capi/packer/config/kubernetes.json b/images/capi/packer/config/kubernetes.json index 18b4e458d0..8a0db865c2 100644 --- a/images/capi/packer/config/kubernetes.json +++ b/images/capi/packer/config/kubernetes.json @@ -1,10 +1,13 @@ { "kubernetes_semver": "v1.15.3", - "kubernetes_version": "1.15.3-00", - "kubernetes_source": "pkg", + "kubernetes_rpm_version": "1.15.3-0", + "kubernetes_deb_version": "1.15.3-00", + "kubernetes_source_type": "pkg", + "kubernetes_http_source": "https://storage.googleapis.com/kubernetes-release/release", "kubernetes_rpm_repo": "https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64", "kubernetes_rpm_gpg_key": "\"https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg\"", "kubernetes_rpm_gpg_check": "True", "kubernetes_deb_repo": "\"https://apt.kubernetes.io/ kubernetes-xenial\"", - "kubernetes_deb_gpg_key": "https://packages.cloud.google.com/apt/doc/apt-key.gpg" -} \ No newline at end of file + "kubernetes_deb_gpg_key": "https://packages.cloud.google.com/apt/doc/apt-key.gpg", + "kubernetes_container_registry": "k8s.gcr.io" +} diff --git a/images/capi/packer/ova/packer.json b/images/capi/packer/ova/packer.json index f6875f5b9a..148da9fd4d 100644 --- a/images/capi/packer/ova/packer.json +++ b/images/capi/packer/ova/packer.json @@ -3,22 +3,26 @@ "boot_wait": "10s", "build_timestamp": "{{timestamp}}", "capi_version": "v1alpha1", - "capv_version": "", "existing_ansible_ssh_args": "{{env `ANSIBLE_SSH_ARGS`}}", "headless": "true", "containerd_version": null, "containerd_sha256": null, - "kubernetes_cni_version": null, + "kubernetes_cni_rpm_version": null, + "kubernetes_cni_deb_version": null, "kubernetes_cni_semver": null, - "kubernetes_cni_source": null, + "kubernetes_cni_source_type": null, + "kubernetes_cni_http_source": null, "kubernetes_semver": null, - "kubernetes_source": null, - "kubernetes_version": null, + "kubernetes_source_type": null, + "kubernetes_http_source": null, + "kubernetes_rpm_version": null, + "kubernetes_deb_version": null, "kubernetes_rpm_repo": null, "kubernetes_rpm_gpg_key": null, "kubernetes_deb_repo": null, "kubernetes_deb_gpg_key": null, "kubernetes_rpm_gpg_check": null, + "kubernetes_container_registry": null, "vnc_bind_address": "127.0.0.1", "vnc_port_min": "5900", "vnc_port_max": "6000" @@ -69,7 +73,7 @@ ], "extra_arguments": [ "--extra-vars", - "containerd_version={{user `containerd_version`}} containerd_sha256={{user `containerd_sha256`}} kubernetes_rpm_repo={{user `kubernetes_rpm_repo`}} kubernetes_rpm_gpg_key={{user `kubernetes_rpm_gpg_key`}} kubernetes_rpm_gpg_check={{user `kubernetes_rpm_gpg_check`}} kubernetes_deb_repo={{user `kubernetes_deb_repo`}} kubernetes_deb_gpg_key={{user `kubernetes_deb_gpg_key`}} kubernetes_cni_version={{user `kubernetes_cni_version`}} kubernetes_cni_semver={{user `kubernetes_cni_semver`}} kubernetes_cni_source={{user `kubernetes_cni_source`}} kubernetes_semver={{user `kubernetes_semver`}} kubernetes_source={{user `kubernetes_source`}} kubernetes_version={{user `kubernetes_version`}}" + "containerd_version={{user `containerd_version`}} containerd_sha256={{user `containerd_sha256`}} kubernetes_cni_http_source={{user `kubernetes_cni_http_source`}} kubernetes_http_source={{user `kubernetes_http_source`}} kubernetes_container_registry={{user `kubernetes_container_registry`}} kubernetes_rpm_repo={{user `kubernetes_rpm_repo`}} kubernetes_rpm_gpg_key={{user `kubernetes_rpm_gpg_key`}} kubernetes_rpm_gpg_check={{user `kubernetes_rpm_gpg_check`}} kubernetes_deb_repo={{user `kubernetes_deb_repo`}} kubernetes_deb_gpg_key={{user `kubernetes_deb_gpg_key`}} kubernetes_cni_deb_version={{user `kubernetes_cni_deb_version`}} kubernetes_cni_rpm_version={{user `kubernetes_cni_rpm_version`}} kubernetes_cni_semver={{user `kubernetes_cni_semver`}} kubernetes_cni_source_type={{user `kubernetes_cni_source_type`}} kubernetes_semver={{user `kubernetes_semver`}} kubernetes_source_type={{user `kubernetes_source_type`}} kubernetes_deb_version={{user `kubernetes_deb_version`}} kubernetes_rpm_version={{user `kubernetes_rpm_version`}}" ] } ], @@ -81,12 +85,10 @@ "custom_data": { "build_timestamp": "{{user `build_timestamp`}}", "build_date": "{{isotime}}", - "capv_version": "{{user `capv_version`}}", "capi_version": "{{user `capi_version`}}", - "cni_version": "{{user `kubernetes_cni_version`}}", + "kubernetes_cni_semver": "{{user `kubernetes_cni_semver`}}", "kubernetes_semver": "{{user `kubernetes_semver`}}", - "kubernetes_source": "{{user `kubernetes_source`}}", - "kubernetes_version": "{{user `kubernetes_version`}}", + "kubernetes_source_type": "{{user `kubernetes_source_type`}}", "iso_checksum": "{{user `iso_checksum`}}", "iso_checksum_type": "{{user `iso_checksum_type`}}", "iso_url": "{{user `iso_url`}}",