Skip to content

Commit 1bdf877

Browse files
committed
add support for custom CAPL CAs in kustomize
1 parent 63f5b41 commit 1bdf877

File tree

4 files changed

+22
-15
lines changed

4 files changed

+22
-15
lines changed

Tiltfile

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ capl_resources = [
116116
"linodeobjectstoragebuckets.infrastructure.cluster.x-k8s.io:customresourcedefinition",
117117
"linodeobjectstoragekeys.infrastructure.cluster.x-k8s.io:customresourcedefinition",
118118
"capl-mutating-webhook-configuration:mutatingwebhookconfiguration",
119+
"capl-ca:secret",
119120
"capl-linodeclustertemplate-editor-role:clusterrole",
120121
"capl-linodeclustertemplate-viewer-role:clusterrole",
121122
"capl-linodemachine-editor-role:clusterrole",
@@ -176,8 +177,8 @@ for resource in manager_yaml:
176177
resource["stringData"]["dnsToken"] = os.getenv("LINODE_DNS_TOKEN")
177178
if os.getenv("LINODE_URL"):
178179
resource["stringData"]["LINODE_URL"] = os.getenv("LINODE_URL")
179-
if os.getenv("LINODE_CA_BASE64"):
180-
resource["stringData"]["SSL_CERT_DIR"] = "/tmp/linode-ca"
180+
if resource["metadata"]["name"] == "capl-ca":
181+
resource["data"]["cacert.pem"] = os.getenv("LINODE_CA_BASE64")
181182
if resource["metadata"]["name"] == "capl-akamai-edgerc-secret":
182183
resource["stringData"]["AKAMAI_HOST"] = os.getenv("AKAMAI_HOST")
183184
resource["stringData"]["AKAMAI_CLIENT_TOKEN"] = os.getenv("AKAMAI_CLIENT_TOKEN")
@@ -195,22 +196,9 @@ for resource in manager_yaml:
195196
resource["spec"]["template"]["spec"].pop("securityContext")
196197
for container in resource["spec"]["template"]["spec"]["containers"]:
197198
container.pop("securityContext")
198-
if container["name"] == "manager":
199-
if os.getenv("LINODE_CA_BASE64"):
200-
container["volumeMounts"].append({"mountPath": "/tmp/linode-ca", "name": "linode-ca", "readOnly": True})
201-
if os.getenv("LINODE_CA_BASE64"):
202-
resource["spec"]["template"]["spec"]["volumes"].append({"name": "linode-ca", "secret": {"defaultMode": 420, "secretName": "linode-ca"}})
203199

204200
k8s_yaml(encode_yaml_stream(manager_yaml))
205201

206-
if os.getenv("LINODE_CA_BASE64"):
207-
ca_secret = k8s_yaml(secret_from_dict(
208-
"linode-ca",
209-
namespace = "capl-system",
210-
inputs={"cacert.pem": decode_base64(os.getenv("LINODE_CA_BASE64"))}
211-
))
212-
capl_resources.append("linode-ca:secret")
213-
214202
if os.getenv("SKIP_DOCKER_BUILD", "false") != "true" and debug != "true":
215203
docker_build(
216204
"docker.io/linode/cluster-api-provider-linode",

config/default/capl-ca.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
apiVersion: v1
3+
kind: Secret
4+
metadata:
5+
name: ca
6+
data:
7+
cacert.pem: ${LINODE_CA_BASE64:=""}

config/default/kustomization.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ resources:
1414
- ../manager
1515
- akamai-edgerc-secret.yaml
1616
- linode-token-secret.yaml
17+
- capl-ca.yaml
1718
# [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK] prefix including the one in
1819
# crd/kustomization.yaml
1920
- ../webhook

config/manager/manager.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ spec:
6868
valueFrom:
6969
fieldRef:
7070
fieldPath: metadata.name
71+
- name: SSL_CERT_DIR
72+
value: /tls
7173
envFrom: # allows configuring additional stuff like LINODE_URL
7274
- secretRef:
7375
name: capl-manager-credentials
@@ -102,5 +104,14 @@ spec:
102104
requests:
103105
cpu: 1000m
104106
memory: 512Mi
107+
volumeMounts:
108+
- name: cacert
109+
mountPath: /tls
110+
readOnly: true
111+
volumes:
112+
- name: cacert
113+
secret:
114+
secretName: capl-ca
115+
defaultMode: 420
105116
serviceAccountName: controller-manager
106117
terminationGracePeriodSeconds: 10

0 commit comments

Comments
 (0)