Skip to content

Commit 01d3752

Browse files
committed
refactor: remove kube-vip template from Nutanix's KCP
This will be moved into the handler so that it can be reused.
1 parent 8714f6f commit 01d3752

File tree

5 files changed

+94
-66
lines changed

5 files changed

+94
-66
lines changed

charts/cluster-api-runtime-extensions-nutanix/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ A Helm chart for cluster-api-runtime-extensions-nutanix
5959
| hooks.cni.cilium.helmAddonStrategy.defaultValueTemplateConfigMap.name | string | `"default-cilium-cni-helm-values-template"` | |
6060
| hooks.csi.nutanix.helmAddonStrategy.defaultValueTemplateConfigMap.create | bool | `true` | |
6161
| hooks.csi.nutanix.helmAddonStrategy.defaultValueTemplateConfigMap.name | string | `"default-nutanix-csi-helm-values-template"` | |
62+
| hooks.kubeVip.defaultTemplateConfigMap.create | bool | `true` | |
63+
| hooks.kubeVip.defaultTemplateConfigMap.name | string | `"default-kube-vip-template"` | |
6264
| hooks.nfd.crsStrategy.defaultInstallationConfigMap.name | string | `"node-feature-discovery"` | |
6365
| hooks.nfd.helmAddonStrategy.defaultValueTemplateConfigMap.create | bool | `true` | |
6466
| hooks.nfd.helmAddonStrategy.defaultValueTemplateConfigMap.name | string | `"default-nfd-helm-values-template"` | |

charts/cluster-api-runtime-extensions-nutanix/defaultclusterclasses/nutanix-cluster-class.yaml

Lines changed: 1 addition & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -132,72 +132,7 @@ spec:
132132
scheduler:
133133
extraArgs:
134134
tls-cipher-suites: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
135-
files:
136-
- content: |
137-
apiVersion: v1
138-
kind: Pod
139-
metadata:
140-
name: kube-vip
141-
namespace: kube-system
142-
spec:
143-
containers:
144-
- name: kube-vip
145-
image: ghcr.io/kube-vip/kube-vip:v0.6.4
146-
imagePullPolicy: IfNotPresent
147-
args:
148-
- manager
149-
env:
150-
- name: vip_arp
151-
value: "true"
152-
- name: address
153-
value: "control_plane_endpoint_ip"
154-
- name: port
155-
value: "control_plane_endpoint_port"
156-
- name: vip_cidr
157-
value: "32"
158-
- name: cp_enable
159-
value: "true"
160-
- name: cp_namespace
161-
value: kube-system
162-
- name: vip_ddns
163-
value: "false"
164-
- name: vip_leaderelection
165-
value: "true"
166-
- name: vip_leaseduration
167-
value: "15"
168-
- name: vip_renewdeadline
169-
value: "10"
170-
- name: vip_retryperiod
171-
value: "2"
172-
- name: svc_enable
173-
value: "false"
174-
- name: lb_enable
175-
value: "false"
176-
- name: enableServicesElection
177-
value: "false"
178-
securityContext:
179-
capabilities:
180-
add:
181-
- NET_ADMIN
182-
- SYS_TIME
183-
- NET_RAW
184-
volumeMounts:
185-
- mountPath: /etc/kubernetes/admin.conf
186-
name: kubeconfig
187-
resources: {}
188-
hostNetwork: true
189-
hostAliases:
190-
- hostnames:
191-
- kubernetes
192-
ip: 127.0.0.1
193-
volumes:
194-
- name: kubeconfig
195-
hostPath:
196-
type: FileOrCreate
197-
path: /etc/kubernetes/admin.conf
198-
status: {}
199-
owner: root:root
200-
path: /etc/kubernetes/manifests/kube-vip.yaml
135+
files: []
201136
initConfiguration:
202137
nodeRegistration:
203138
kubeletExtraArgs:
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# Copyright 2023 D2iQ, Inc. All rights reserved.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
{{- if .Values.hooks.kubeVip.defaultTemplateConfigMap.create }}
5+
apiVersion: v1
6+
data:
7+
kube-vip.yaml: |
8+
apiVersion: v1
9+
kind: Pod
10+
metadata:
11+
name: kube-vip
12+
namespace: kube-system
13+
spec:
14+
containers:
15+
- name: kube-vip
16+
image: ghcr.io/kube-vip/kube-vip:v0.6.4
17+
imagePullPolicy: IfNotPresent
18+
args:
19+
- manager
20+
env:
21+
- name: vip_arp
22+
value: "true"
23+
- name: address
24+
value: "{{ `{{ .ControlPlaneEndpoint.Host }}` }}"
25+
- name: port
26+
value: "{{ `{{ .ControlPlaneEndpoint.Port }}` }}"
27+
- name: vip_cidr
28+
value: "32"
29+
- name: cp_enable
30+
value: "true"
31+
- name: cp_namespace
32+
value: kube-system
33+
- name: vip_ddns
34+
value: "false"
35+
- name: vip_leaderelection
36+
value: "true"
37+
- name: vip_leaseduration
38+
value: "15"
39+
- name: vip_renewdeadline
40+
value: "10"
41+
- name: vip_retryperiod
42+
value: "2"
43+
- name: svc_enable
44+
value: "false"
45+
- name: lb_enable
46+
value: "false"
47+
- name: enableServicesElection
48+
value: "false"
49+
securityContext:
50+
capabilities:
51+
add:
52+
- NET_ADMIN
53+
- SYS_TIME
54+
- NET_RAW
55+
volumeMounts:
56+
- mountPath: /etc/kubernetes/admin.conf
57+
name: kubeconfig
58+
resources: { }
59+
hostNetwork: true
60+
hostAliases:
61+
- hostnames:
62+
- kubernetes
63+
ip: 127.0.0.1
64+
volumes:
65+
- name: kubeconfig
66+
hostPath:
67+
type: FileOrCreate
68+
path: /etc/kubernetes/admin.conf
69+
status: {}
70+
kind: ConfigMap
71+
metadata:
72+
creationTimestamp: null
73+
name: '{{ .Values.hooks.kubeVip.defaultTemplateConfigMap.name }}'
74+
{{- end -}}

charts/cluster-api-runtime-extensions-nutanix/values.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@ hooks:
7171
defaultValueTemplateConfigMap:
7272
create: true
7373
name: default-cluster-autoscaler-helm-values-template
74+
kubeVip:
75+
defaultTemplateConfigMap:
76+
create: true
77+
name: default-kube-vip-template
7478

7579
helmAddonsConfigMap: default-helm-addons-config
7680

hack/examples/bases/nutanix/clusterclass/kustomization.yaml.tmpl

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,25 @@ patches:
3030
- op: "remove"
3131
path: "/spec/variables"
3232

33+
# Delete the certSANs from the template
34+
# They will be added by the handler.
3335
- target:
3436
kind: KubeadmControlPlaneTemplate
3537
patch: |-
3638
- op: "remove"
3739
path: "/spec/template/spec/kubeadmConfigSpec/clusterConfiguration/apiServer/certSANs"
3840

41+
# Delete the kube-vip file.
42+
# Will be templated and added back in the handler.
43+
- target:
44+
kind: KubeadmControlPlaneTemplate
45+
patch: |-
46+
- op: test
47+
path: /spec/template/spec/kubeadmConfigSpec/files/0/path
48+
value: "/etc/kubernetes/manifests/kube-vip.yaml"
49+
- op: "remove"
50+
path: "/spec/template/spec/kubeadmConfigSpec/files/0"
51+
3952
# FIXME: Debug why some of the patches are needed.
4053
# When the handler runs, it sends back multiple patches for individual fields.
4154
# But CAPI fails applying them because of missing value.

0 commit comments

Comments
 (0)