Skip to content

Commit 520a837

Browse files
authored
test: Add a E2E test creating a Nutanix cluster with failure domains (#1243)
https://jira.nutanix.com/browse/NCN-107139 Add a E2E test creating a Nutanix cluster with failure domains The FD e2e tests are added to and run as part of [checks / e2e-quick-start (Nutanix provider)].
1 parent 71f8cc2 commit 520a837

File tree

4 files changed

+710
-254
lines changed

4 files changed

+710
-254
lines changed
Lines changed: 223 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,223 @@
1+
apiVersion: v1
2+
kind: Secret
3+
metadata:
4+
labels:
5+
cluster.x-k8s.io/provider: nutanix
6+
name: ${CLUSTER_NAME}-dockerhub-credentials
7+
stringData:
8+
password: ${DOCKER_HUB_PASSWORD}
9+
username: ${DOCKER_HUB_USERNAME}
10+
type: Opaque
11+
---
12+
apiVersion: v1
13+
kind: Secret
14+
metadata:
15+
labels:
16+
cluster.x-k8s.io/provider: nutanix
17+
name: ${CLUSTER_NAME}-pc-creds-for-csi
18+
stringData:
19+
key: ${NUTANIX_ENDPOINT}:${NUTANIX_PORT}:${NUTANIX_USER}:${NUTANIX_PASSWORD}
20+
---
21+
apiVersion: v1
22+
kind: Secret
23+
metadata:
24+
labels:
25+
cluster.x-k8s.io/provider: nutanix
26+
name: ${CLUSTER_NAME}-pc-creds
27+
stringData:
28+
credentials: |
29+
[
30+
{
31+
"type": "basic_auth",
32+
"data": {
33+
"prismCentral":{
34+
"username": "${NUTANIX_USER}",
35+
"password": "${NUTANIX_PASSWORD}"
36+
}
37+
}
38+
}
39+
]
40+
---
41+
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
42+
kind: NutanixFailureDomain
43+
metadata:
44+
name: fd-1
45+
spec:
46+
prismElementCluster:
47+
type: name
48+
name: ${NUTANIX_PRISM_ELEMENT_CLUSTER_NAME}
49+
subnets:
50+
- type: name
51+
name: ${NUTANIX_SUBNET_NAME}
52+
---
53+
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
54+
kind: NutanixFailureDomain
55+
metadata:
56+
name: fd-2
57+
spec:
58+
prismElementCluster:
59+
type: name
60+
name: ${NUTANIX_PRISM_ELEMENT_CLUSTER_NAME}
61+
subnets:
62+
- type: name
63+
name: ${NUTANIX_SUBNET_NAME}
64+
---
65+
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
66+
kind: NutanixFailureDomain
67+
metadata:
68+
name: fd-3
69+
spec:
70+
prismElementCluster:
71+
type: name
72+
name: ${NUTANIX_PRISM_ELEMENT_CLUSTER_NAME}
73+
subnets:
74+
- type: name
75+
name: ${NUTANIX_SUBNET_NAME}
76+
---
77+
apiVersion: cluster.x-k8s.io/v1beta1
78+
kind: Cluster
79+
metadata:
80+
labels:
81+
cluster.x-k8s.io/cluster-name: ${CLUSTER_NAME}
82+
cluster.x-k8s.io/provider: nutanix
83+
name: ${CLUSTER_NAME}
84+
spec:
85+
clusterNetwork:
86+
pods:
87+
cidrBlocks:
88+
- ${POD_CIDR:-192.168.0.0/16}
89+
serviceDomain: ${SERVICE_DOMAIN:="cluster.local"}
90+
services:
91+
cidrBlocks:
92+
- ${SERVICE_CIDR:-10.128.0.0/12}
93+
topology:
94+
class: nutanix-quick-start
95+
controlPlane:
96+
metadata: {}
97+
replicas: ${CONTROL_PLANE_MACHINE_COUNT}
98+
variables:
99+
- name: clusterConfig
100+
value:
101+
addons:
102+
ccm:
103+
credentials:
104+
secretRef:
105+
name: ${CLUSTER_NAME}-pc-creds
106+
strategy: HelmAddon
107+
clusterAutoscaler:
108+
strategy: ClusterResourceSet
109+
cni:
110+
provider: Cilium
111+
strategy: ClusterResourceSet
112+
cosi: {}
113+
csi:
114+
defaultStorage:
115+
provider: nutanix
116+
storageClassConfig: volume
117+
providers:
118+
nutanix:
119+
credentials:
120+
secretRef:
121+
name: ${CLUSTER_NAME}-pc-creds-for-csi
122+
storageClassConfigs:
123+
volume:
124+
parameters:
125+
storageContainer: ${NUTANIX_STORAGE_CONTAINER_NAME}
126+
strategy: HelmAddon
127+
snapshotController:
128+
strategy: HelmAddon
129+
nfd:
130+
strategy: ClusterResourceSet
131+
serviceLoadBalancer:
132+
configuration:
133+
addressRanges:
134+
- end: 198.18.1.10
135+
start: 198.18.1.1
136+
- end: 198.18.1.30
137+
start: 198.18.1.21
138+
provider: MetalLB
139+
controlPlane:
140+
nutanix:
141+
failureDomains:
142+
- fd-1
143+
- fd-2
144+
- fd-3
145+
machineDetails:
146+
bootType: uefi
147+
imageLookup:
148+
baseOS: ${NUTANIX_MACHINE_TEMPLATE_BASE_OS}
149+
format: ${NUTANIX_MACHINE_TEMPLATE_LOOKUP_FORMAT}
150+
memorySize: 4Gi
151+
systemDiskSize: 40Gi
152+
vcpuSockets: 2
153+
vcpusPerSocket: 1
154+
dns:
155+
coreDNS: {}
156+
encryptionAtRest:
157+
providers:
158+
- aescbc: {}
159+
imageRegistries:
160+
- credentials:
161+
secretRef:
162+
name: ${CLUSTER_NAME}-dockerhub-credentials
163+
url: https://docker.io
164+
nutanix:
165+
controlPlaneEndpoint:
166+
host: ${CONTROL_PLANE_ENDPOINT_IP}
167+
port: 6443
168+
virtualIP:
169+
provider: KubeVIP
170+
prismCentralEndpoint:
171+
credentials:
172+
secretRef:
173+
name: ${CLUSTER_NAME}-pc-creds
174+
insecure: ${NUTANIX_INSECURE}
175+
url: https://${NUTANIX_ENDPOINT}:9440
176+
- name: workerConfig
177+
value:
178+
nutanix:
179+
machineDetails:
180+
bootType: uefi
181+
cluster:
182+
name: ${NUTANIX_PRISM_ELEMENT_CLUSTER_NAME}
183+
type: name
184+
imageLookup:
185+
baseOS: ${NUTANIX_MACHINE_TEMPLATE_BASE_OS}
186+
format: ${NUTANIX_MACHINE_TEMPLATE_LOOKUP_FORMAT}
187+
memorySize: 4Gi
188+
subnets:
189+
- name: ${NUTANIX_SUBNET_NAME}
190+
type: name
191+
systemDiskSize: 40Gi
192+
vcpuSockets: 2
193+
vcpusPerSocket: 1
194+
version: ${KUBERNETES_VERSION}
195+
workers:
196+
machineDeployments:
197+
- class: default-worker
198+
metadata:
199+
annotations:
200+
cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: "${WORKER_MACHINE_COUNT}"
201+
cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size: "${WORKER_MACHINE_COUNT}"
202+
name: md-0
203+
- class: default-worker
204+
metadata:
205+
annotations:
206+
cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: "${WORKER_MACHINE_COUNT}"
207+
cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size: "${WORKER_MACHINE_COUNT}"
208+
name: md-1
209+
failureDomain: fd-3
210+
variables:
211+
overrides:
212+
- name: workerConfig
213+
value:
214+
nutanix:
215+
machineDetails:
216+
bootType: uefi
217+
imageLookup:
218+
baseOS: ${NUTANIX_MACHINE_TEMPLATE_BASE_OS}
219+
format: ${NUTANIX_MACHINE_TEMPLATE_LOOKUP_FORMAT}
220+
memorySize: 4Gi
221+
systemDiskSize: 40Gi
222+
vcpuSockets: 2
223+
vcpusPerSocket: 1

0 commit comments

Comments
 (0)