Skip to content

Commit 9447f72

Browse files
committed
E2E: Use secret instead of host path for CCM config
Signed-off-by: Lennart Jern <[email protected]>
1 parent 4364496 commit 9447f72

File tree

3 files changed

+73
-59
lines changed

3 files changed

+73
-59
lines changed

test/e2e/data/ccm/cloud-controller-manager.yaml

Lines changed: 55 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# From: https://raw.githubusercontent.com/kubernetes/cloud-provider-openstack/master/manifests/controller-manager/openstack-cloud-controller-manager-ds.yaml
2-
---
2+
# NOTE! We modify the node-selector to have empty value (""). This matches what kubeadm does.
33
apiVersion: v1
44
kind: ServiceAccount
55
metadata:
@@ -26,64 +26,67 @@ spec:
2626
spec:
2727
nodeSelector:
2828
node-role.kubernetes.io/control-plane: ""
29-
# we need user root to read the cloud.conf from the host
3029
securityContext:
31-
runAsUser: 0
30+
runAsUser: 1001
3231
tolerations:
33-
- key: node.cloudprovider.kubernetes.io/uninitialized
34-
value: "true"
35-
effect: NoSchedule
36-
- key: node-role.kubernetes.io/master
37-
effect: NoSchedule
38-
- key: node-role.kubernetes.io/control-plane
39-
effect: NoSchedule
32+
- key: "CriticalAddonsOnly"
33+
operator: "Equal"
34+
value: "true"
35+
effect: "NoExecute"
36+
- key: node.cloudprovider.kubernetes.io/uninitialized
37+
value: "true"
38+
effect: NoSchedule
39+
- key: node-role.kubernetes.io/master
40+
effect: NoSchedule
41+
- key: node-role.kubernetes.io/control-plane
42+
effect: NoSchedule
4043
serviceAccountName: cloud-controller-manager
4144
containers:
42-
- name: openstack-cloud-controller-manager
43-
image: >-
44-
registry.k8s.io/provider-os/openstack-cloud-controller-manager:v1.32.0
45-
args:
46-
- /bin/openstack-cloud-controller-manager
47-
- --v=1
48-
- --cluster-name=$(CLUSTER_NAME)
49-
- --cloud-config=$(CLOUD_CONFIG)
50-
- --cloud-provider=openstack
51-
- --use-service-account-credentials=false
52-
- --bind-address=127.0.0.1
53-
volumeMounts:
54-
- mountPath: /etc/kubernetes
55-
name: k8s
56-
readOnly: true
57-
- mountPath: /etc/kubernetes/pki
58-
name: k8s-certs
59-
readOnly: true
60-
- mountPath: /etc/ssl/certs
61-
name: ca-certs
62-
readOnly: true
63-
resources:
64-
requests:
65-
cpu: 200m
66-
env:
67-
- name: CLOUD_CONFIG
68-
value: /etc/kubernetes/cloud.conf
69-
- name: CLUSTER_NAME
70-
value: kubernetes
71-
hostNetwork: true
72-
volumes:
73-
- hostPath:
74-
path: /etc/kubernetes
75-
type: DirectoryOrCreate
76-
name: k8s
77-
- hostPath:
78-
path: /etc/kubernetes/pki
79-
type: DirectoryOrCreate
45+
- name: openstack-cloud-controller-manager
46+
image: registry.k8s.io/provider-os/openstack-cloud-controller-manager:v1.33.0
47+
args:
48+
- /bin/openstack-cloud-controller-manager
49+
- --v=1
50+
- --cluster-name=$(CLUSTER_NAME)
51+
- --cloud-config=$(CLOUD_CONFIG)
52+
- --cloud-provider=openstack
53+
- --use-service-account-credentials=false
54+
- --bind-address=127.0.0.1
55+
volumeMounts:
56+
- mountPath: /etc/kubernetes/pki
8057
name: k8s-certs
81-
- hostPath:
82-
path: /etc/ssl/certs
83-
type: DirectoryOrCreate
58+
readOnly: true
59+
- mountPath: /etc/ssl/certs
8460
name: ca-certs
61+
readOnly: true
62+
- mountPath: /etc/config
63+
name: cloud-config-volume
64+
readOnly: true
65+
resources:
66+
requests:
67+
cpu: 200m
68+
env:
69+
- name: CLOUD_CONFIG
70+
value: /etc/config/cloud.conf
71+
- name: CLUSTER_NAME
72+
value: kubernetes
73+
dnsPolicy: ClusterFirst
74+
hostNetwork: true
75+
volumes:
76+
- hostPath:
77+
path: /etc/kubernetes/pki
78+
type: DirectoryOrCreate
79+
name: k8s-certs
80+
- hostPath:
81+
path: /etc/ssl/certs
82+
type: DirectoryOrCreate
83+
name: ca-certs
84+
- name: cloud-config-volume
85+
secret:
86+
secretName: cloud-config
8587
---
8688
# https://raw.githubusercontent.com/kubernetes/cloud-provider-openstack/refs/heads/master/manifests/controller-manager/cloud-controller-manager-role-bindings.yaml
89+
# NOTE! We need to "extract" the List or the CRS will fail to apply.
8790
apiVersion: rbac.authorization.k8s.io/v1
8891
kind: ClusterRoleBinding
8992
metadata:
@@ -111,6 +114,7 @@ subjects:
111114
namespace: kube-system
112115
---
113116
# https://raw.githubusercontent.com/kubernetes/cloud-provider-openstack/refs/heads/master/manifests/controller-manager/cloud-controller-manager-roles.yaml
117+
# NOTE! We need to "extract" the List or the CRS will fail to apply.
114118
apiVersion: rbac.authorization.k8s.io/v1
115119
kind: ClusterRole
116120
metadata:

test/e2e/data/kustomize/components/cluster-resource-sets/ccm.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,22 @@ metadata:
44
name: ccm-${CLUSTER_NAME}-crs-1
55
data: ${CCM_RESOURCES}
66
---
7+
apiVersion: v1
8+
kind: Secret
9+
metadata:
10+
name: ccm-${CLUSTER_NAME}-crs-1
11+
type: addons.cluster.x-k8s.io/resource-set
12+
stringData:
13+
cloud-config-secret.yaml: |
14+
apiVersion: v1
15+
kind: Secret
16+
metadata:
17+
# This name is referenced in the CCM deployment manifest
18+
name: cloud-config
19+
namespace: kube-system
20+
data:
21+
cloud.conf: ${OPENSTACK_CLOUD_PROVIDER_CONF_B64}
22+
---
723
apiVersion: addons.cluster.x-k8s.io/v1beta2
824
kind: ClusterResourceSet
925
metadata:
@@ -15,4 +31,6 @@ spec:
1531
resources:
1632
- kind: ConfigMap
1733
name: ccm-${CLUSTER_NAME}-crs-1
34+
- kind: Secret
35+
name: ccm-${CLUSTER_NAME}-crs-1
1836
strategy: ApplyOnce

test/e2e/data/kustomize/components/cluster-resource-sets/patch-ccm-cloud-config.yaml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,6 @@
11
- op: add
22
path: /spec/kubeadmConfigSpec/files
33
value: []
4-
- op: add
5-
path: /spec/kubeadmConfigSpec/files/-
6-
value:
7-
content: ${OPENSTACK_CLOUD_PROVIDER_CONF_B64}
8-
encoding: base64
9-
owner: root
10-
path: /etc/kubernetes/cloud.conf
11-
permissions: "0600"
124
- op: add
135
path: /spec/kubeadmConfigSpec/files/-
146
value:

0 commit comments

Comments
 (0)