Skip to content

Commit 1829819

Browse files
faiqjimmidyson
andauthored
ci: use templating for capx tests (#1123)
**What problem does this PR solve?**: uses templating for capx tests so we don't have to constantly keep updating images. **Which issue(s) this PR fixes**: Fixes # **How Has This Been Tested?**: <!-- Please describe the tests that you ran to verify your changes. Provide output from the tests and any manual steps needed to replicate the tests. --> **Special notes for your reviewer**: <!-- Use this to provide any additional information to the reviewers. This may include: - Best way to review the PR. - Where the author wants the most review attention on. - etc. --> --------- Co-authored-by: Jimmi Dyson <[email protected]>
1 parent 01d2a80 commit 1829819

File tree

10 files changed

+43
-38
lines changed

10 files changed

+43
-38
lines changed

.github/workflows/checks.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,10 @@ jobs:
6464
strategy:
6565
matrix:
6666
config:
67-
- {"provider": "Nutanix", "kubernetesMinor": "v1.30", "kubernetesVersion": "v1.30.10", "osImage": "nkp-rocky-9.5-release-1.30.10-20250417212833"}
68-
- {"provider": "Nutanix", "kubernetesMinor": "v1.31", "kubernetesVersion": "v1.31.4", "osImage": "nkp-rocky-9.5-release-1.31.4-20250409153435"}
69-
- {"provider": "Nutanix", "kubernetesMinor": "v1.32", "kubernetesVersion": "v1.32.3", "osImage": "nkp-rocky-9.5-release-1.32.3-20250430150550"}
67+
- {"provider": "Nutanix", "kubernetesMinor": "v1.30", "kubernetesVersion": "v1.30.10", "baseOS": "rocky-9.5"}
68+
- {"provider": "Nutanix", "kubernetesMinor": "v1.31", "kubernetesVersion": "v1.31.4", "baseOS": "rocky-9.5"}
69+
- {"provider": "Nutanix", "kubernetesMinor": "v1.32", "kubernetesVersion": "v1.32.3", "baseOS": "rocky-9.5"}
70+
- {"provider": "Docker", "kubernetesMinor": "v1.30", "kubernetesVersion": "v1.30.12"}
7071
- {"provider": "Docker", "kubernetesMinor": "v1.31", "kubernetesVersion": "v1.31.8"}
7172
- {"provider": "Docker", "kubernetesMinor": "v1.32", "kubernetesVersion": "v1.32.4"}
7273
- {"provider": "Docker", "kubernetesMinor": "v1.33", "kubernetesVersion": "v1.33.0"}
@@ -80,7 +81,7 @@ jobs:
8081
provider: ${{ matrix.config.provider }}
8182
kubernetes-version: ${{ matrix.config.kubernetesVersion }}
8283
runs-on: ${{ matrix.config.provider == 'Nutanix' && 'self-hosted-ncn-dind' || 'ubuntu-22.04' }}
83-
os-image: ${{ matrix.config.provider == 'Nutanix' && matrix.config.osImage || '' }}
84+
base-os: ${{ matrix.config.provider == 'Nutanix' && matrix.config.baseOS || '' }}
8485
secrets: inherit
8586
permissions:
8687
contents: read

.github/workflows/e2e.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ on:
2222
description: The version of Kubernetes to test with
2323
type: string
2424
required: true
25-
os-image:
25+
base-os:
2626
description: The OS image to use for the machine template
2727
type: string
2828
required: false
@@ -91,7 +91,7 @@ jobs:
9191
NUTANIX_PRISM_ELEMENT_CLUSTER_NAME: ${{ vars.NUTANIX_PRISM_ELEMENT_CLUSTER_NAME }}
9292
NUTANIX_SUBNET_NAME: ${{ vars.NUTANIX_SUBNET_NAME }}
9393
NUTANIX_STORAGE_CONTAINER_NAME: ${{ vars.NUTANIX_STORAGE_CONTAINER_NAME }}
94-
NUTANIX_MACHINE_TEMPLATE_IMAGE_NAME: ${{ inputs.os-image }}
94+
NUTANIX_MACHINE_TEMPLATE_BASE_OS: ${{ inputs.base-os }}
9595
KUBERNETES_VERSION_NUTANIX: ${{ inputs.kubernetes-version }}
9696
KINDEST_IMAGE_TAG: ${{ inputs.kubernetes-version }}
9797
E2E_KUBERNETES_VERSION: ${{ inputs.kubernetes-version }}

docs/content/getting-started/create-cluster/nutanix.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,8 @@ export CONTROL_PLANE_ENDPOINT_IP=<value> \
2929
DOCKER_HUB_USERNAME=<value> \
3030
NUTANIX_ENDPOINT=<value> \
3131
NUTANIX_INSECURE=<value> \
32-
NUTANIX_MACHINE_TEMPLATE_IMAGE_NAME=<value> \
32+
NUTANIX_MACHINE_TEMPLATE_BASE_OS=<value> \
33+
NUTANIX_MACHINE_TEMPLATE_LOOKUP_FORMAT=<value> \
3334
NUTANIX_PASSWORD=<value> \
3435
NUTANIX_PORT=<value> \
3536
NUTANIX_PRISM_ELEMENT_CLUSTER_NAME=<value> \

examples/capi-quick-start/nutanix-cluster-calico-crs.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,9 @@ spec:
107107
cluster:
108108
name: ${NUTANIX_PRISM_ELEMENT_CLUSTER_NAME}
109109
type: name
110-
image:
111-
name: ${NUTANIX_MACHINE_TEMPLATE_IMAGE_NAME}
112-
type: name
110+
imageLookup:
111+
baseOS: ${NUTANIX_MACHINE_TEMPLATE_BASE_OS}
112+
format: ${NUTANIX_MACHINE_TEMPLATE_LOOKUP_FORMAT}
113113
memorySize: 4Gi
114114
subnets:
115115
- name: ${NUTANIX_SUBNET_NAME}
@@ -147,9 +147,9 @@ spec:
147147
cluster:
148148
name: ${NUTANIX_PRISM_ELEMENT_CLUSTER_NAME}
149149
type: name
150-
image:
151-
name: ${NUTANIX_MACHINE_TEMPLATE_IMAGE_NAME}
152-
type: name
150+
imageLookup:
151+
baseOS: ${NUTANIX_MACHINE_TEMPLATE_BASE_OS}
152+
format: ${NUTANIX_MACHINE_TEMPLATE_LOOKUP_FORMAT}
153153
memorySize: 4Gi
154154
subnets:
155155
- name: ${NUTANIX_SUBNET_NAME}

examples/capi-quick-start/nutanix-cluster-calico-helm-addon.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,9 @@ spec:
104104
cluster:
105105
name: ${NUTANIX_PRISM_ELEMENT_CLUSTER_NAME}
106106
type: name
107-
image:
108-
name: ${NUTANIX_MACHINE_TEMPLATE_IMAGE_NAME}
109-
type: name
107+
imageLookup:
108+
baseOS: ${NUTANIX_MACHINE_TEMPLATE_BASE_OS}
109+
format: ${NUTANIX_MACHINE_TEMPLATE_LOOKUP_FORMAT}
110110
memorySize: 4Gi
111111
subnets:
112112
- name: ${NUTANIX_SUBNET_NAME}
@@ -144,9 +144,9 @@ spec:
144144
cluster:
145145
name: ${NUTANIX_PRISM_ELEMENT_CLUSTER_NAME}
146146
type: name
147-
image:
148-
name: ${NUTANIX_MACHINE_TEMPLATE_IMAGE_NAME}
149-
type: name
147+
imageLookup:
148+
baseOS: ${NUTANIX_MACHINE_TEMPLATE_BASE_OS}
149+
format: ${NUTANIX_MACHINE_TEMPLATE_LOOKUP_FORMAT}
150150
memorySize: 4Gi
151151
subnets:
152152
- name: ${NUTANIX_SUBNET_NAME}

examples/capi-quick-start/nutanix-cluster-cilium-crs.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,9 @@ spec:
107107
cluster:
108108
name: ${NUTANIX_PRISM_ELEMENT_CLUSTER_NAME}
109109
type: name
110-
image:
111-
name: ${NUTANIX_MACHINE_TEMPLATE_IMAGE_NAME}
112-
type: name
110+
imageLookup:
111+
baseOS: ${NUTANIX_MACHINE_TEMPLATE_BASE_OS}
112+
format: ${NUTANIX_MACHINE_TEMPLATE_LOOKUP_FORMAT}
113113
memorySize: 4Gi
114114
subnets:
115115
- name: ${NUTANIX_SUBNET_NAME}
@@ -147,9 +147,9 @@ spec:
147147
cluster:
148148
name: ${NUTANIX_PRISM_ELEMENT_CLUSTER_NAME}
149149
type: name
150-
image:
151-
name: ${NUTANIX_MACHINE_TEMPLATE_IMAGE_NAME}
152-
type: name
150+
imageLookup:
151+
baseOS: ${NUTANIX_MACHINE_TEMPLATE_BASE_OS}
152+
format: ${NUTANIX_MACHINE_TEMPLATE_LOOKUP_FORMAT}
153153
memorySize: 4Gi
154154
subnets:
155155
- name: ${NUTANIX_SUBNET_NAME}

examples/capi-quick-start/nutanix-cluster-cilium-helm-addon.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,9 @@ spec:
104104
cluster:
105105
name: ${NUTANIX_PRISM_ELEMENT_CLUSTER_NAME}
106106
type: name
107-
image:
108-
name: ${NUTANIX_MACHINE_TEMPLATE_IMAGE_NAME}
109-
type: name
107+
imageLookup:
108+
baseOS: ${NUTANIX_MACHINE_TEMPLATE_BASE_OS}
109+
format: ${NUTANIX_MACHINE_TEMPLATE_LOOKUP_FORMAT}
110110
memorySize: 4Gi
111111
subnets:
112112
- name: ${NUTANIX_SUBNET_NAME}
@@ -144,9 +144,9 @@ spec:
144144
cluster:
145145
name: ${NUTANIX_PRISM_ELEMENT_CLUSTER_NAME}
146146
type: name
147-
image:
148-
name: ${NUTANIX_MACHINE_TEMPLATE_IMAGE_NAME}
149-
type: name
147+
imageLookup:
148+
baseOS: ${NUTANIX_MACHINE_TEMPLATE_BASE_OS}
149+
format: ${NUTANIX_MACHINE_TEMPLATE_LOOKUP_FORMAT}
150150
memorySize: 4Gi
151151
subnets:
152152
- name: ${NUTANIX_SUBNET_NAME}

hack/examples/patches/nutanix/initialize-variables.yaml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
cluster:
2929
name: ${NUTANIX_PRISM_ELEMENT_CLUSTER_NAME}
3030
type: name
31-
image:
32-
name: ${NUTANIX_MACHINE_TEMPLATE_IMAGE_NAME}
33-
type: name
31+
imageLookup:
32+
baseOS: ${NUTANIX_MACHINE_TEMPLATE_BASE_OS}
33+
format: ${NUTANIX_MACHINE_TEMPLATE_LOOKUP_FORMAT}
3434
subnets:
3535
- name: ${NUTANIX_SUBNET_NAME}
3636
type: name
@@ -46,9 +46,9 @@
4646
cluster:
4747
name: ${NUTANIX_PRISM_ELEMENT_CLUSTER_NAME}
4848
type: name
49-
image:
50-
name: ${NUTANIX_MACHINE_TEMPLATE_IMAGE_NAME}
51-
type: name
49+
imageLookup:
50+
baseOS: ${NUTANIX_MACHINE_TEMPLATE_BASE_OS}
51+
format: ${NUTANIX_MACHINE_TEMPLATE_LOOKUP_FORMAT}
5252
memorySize: 4Gi
5353
subnets:
5454
- name: ${NUTANIX_SUBNET_NAME}

pkg/handlers/nutanix/mutation/machinedetails/inject.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,8 +102,10 @@ func (h *nutanixMachineDetailsPatchHandler) Mutate(
102102
switch {
103103
case nutanixMachineDetailsVar.Image != nil:
104104
spec.Image = nutanixMachineDetailsVar.Image.DeepCopy()
105+
spec.ImageLookup = nil
105106
case nutanixMachineDetailsVar.ImageLookup != nil:
106107
spec.ImageLookup = nutanixMachineDetailsVar.ImageLookup.DeepCopy()
108+
spec.Image = nil
107109
default:
108110
return ErrNoImageOrImageLookupSet
109111
}

test/e2e/config/caren.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,8 @@ variables:
202202
# # Name of the Prism Element cluster.
203203
# NUTANIX_PRISM_ELEMENT_CLUSTER_NAME: ""
204204
# # Name of the OS image pre-uploaded in PC.
205-
NUTANIX_MACHINE_TEMPLATE_IMAGE_NAME: nkp-rocky-9.5-release-1.32.3-20250430150550
205+
NUTANIX_MACHINE_TEMPLATE_LOOKUP_FORMAT: "nkp-{{.BaseOS}}-release-{{.K8sVersion}}-*"
206+
NUTANIX_MACHINE_TEMPLATE_BASE_OS: "rocky-9.5"
206207
# # Name of the subnet to be assigned to the VMs.
207208
# NUTANIX_SUBNET_NAME: ""
208209
# # Name of the storage container to CSI driver

0 commit comments

Comments
 (0)