@@ -2,6 +2,7 @@ load("ext://k8s_attach", "k8s_attach")
2
2
load ("ext://helm_resource" , "helm_resource" , "helm_repo" )
3
3
load ("ext://namespace" , "namespace_create" )
4
4
load ("ext://restart_process" , "docker_build_with_restart" )
5
+ load ("ext://secret" , "secret_create_generic" )
5
6
update_settings (k8s_upsert_timeout_secs = 120 )
6
7
7
8
helm_repo (
@@ -96,7 +97,44 @@ if os.getenv("INSTALL_RKE2_PROVIDER", "false") == "true":
96
97
resource_deps = ["capi-controller-manager" ],
97
98
labels = ["CAPI" ],
98
99
)
99
-
100
+ capl_resources = [
101
+ "capl-system:namespace" ,
102
+ "linodeclusters.infrastructure.cluster.x-k8s.io:customresourcedefinition" ,
103
+ "linodemachines.infrastructure.cluster.x-k8s.io:customresourcedefinition" ,
104
+ "linodeclustertemplates.infrastructure.cluster.x-k8s.io:customresourcedefinition" ,
105
+ "linodemachinetemplates.infrastructure.cluster.x-k8s.io:customresourcedefinition" ,
106
+ "linodevpcs.infrastructure.cluster.x-k8s.io:customresourcedefinition" ,
107
+ "linodeplacementgroups.infrastructure.cluster.x-k8s.io:customresourcedefinition" ,
108
+ "linodefirewalls.infrastructure.cluster.x-k8s.io:customresourcedefinition" ,
109
+ "linodeobjectstoragebuckets.infrastructure.cluster.x-k8s.io:customresourcedefinition" ,
110
+ "linodeobjectstoragekeys.infrastructure.cluster.x-k8s.io:customresourcedefinition" ,
111
+ "capl-mutating-webhook-configuration:mutatingwebhookconfiguration" ,
112
+ "capl-linodeclustertemplate-editor-role:clusterrole" ,
113
+ "capl-linodeclustertemplate-viewer-role:clusterrole" ,
114
+ "capl-linodemachine-editor-role:clusterrole" ,
115
+ "capl-linodemachine-viewer-role:clusterrole" ,
116
+ "capl-linodemachinetemplate-editor-role:clusterrole" ,
117
+ "capl-linodemachinetemplate-viewer-role:clusterrole" ,
118
+ "capl-linodeobjectstoragebucket-editor-role:clusterrole" ,
119
+ "capl-linodeobjectstoragebucket-viewer-role:clusterrole" ,
120
+ "capl-linodeobjectstoragekey-editor-role:clusterrole" ,
121
+ "capl-linodeobjectstoragekey-viewer-role:clusterrole" ,
122
+ "capl-linodevpc-editor-role:clusterrole" ,
123
+ "capl-linodevpc-viewer-role:clusterrole" ,
124
+ "capl-controller-manager:serviceaccount" ,
125
+ "capl-leader-election-role:role" ,
126
+ "capl-manager-role:clusterrole" ,
127
+ "capl-metrics-reader:clusterrole" ,
128
+ "capl-proxy-role:clusterrole" ,
129
+ "capl-leader-election-rolebinding:rolebinding" ,
130
+ "capl-manager-rolebinding:clusterrolebinding" ,
131
+ "capl-proxy-rolebinding:clusterrolebinding" ,
132
+ "capl-manager-credentials:secret" ,
133
+ "capl-akamai-edgerc-secret:secret" ,
134
+ "capl-serving-cert:certificate" ,
135
+ "capl-selfsigned-issuer:issuer" ,
136
+ "capl-validating-webhook-configuration:validatingwebhookconfiguration" ,
137
+ ]
100
138
capl_deps = ["capi-controller-manager" ]
101
139
debug = os .getenv ("CAPL_DEBUG" , "false" )
102
140
# debug setting
@@ -146,8 +184,27 @@ for resource in manager_yaml:
146
184
resource ["spec" ]["template" ]["spec" ].pop ("securityContext" )
147
185
for container in resource ["spec" ]["template" ]["spec" ]["containers" ]:
148
186
container .pop ("securityContext" )
187
+ if container ["name" ] == "manager" :
188
+ if os .getenv ("LINODE_URL" ):
189
+ container ["env" ].append ({"name" : "LINODE_URL" , "value" : os .getenv ("LINODE_URL" )})
190
+ if os .getenv ("LINODE_CA" ):
191
+ container ["env" ].append ({"name" : "SSL_CERT_DIR" , "value" : "/tmp/linode-ca" })
192
+ container ["volumeMounts" ].append ({"mountPath" : "/tmp/linode-ca" , "name" : "linode-ca" , "readOnly" : True })
193
+ if os .getenv ("LINODE_CA" ):
194
+ resource ["spec" ]["template" ]["spec" ]["volumes" ].append ({"name" : "linode-ca" , "secret" : {"defaultMode" : 420 , "secretName" : "linode-ca" }})
195
+
149
196
k8s_yaml (encode_yaml_stream (manager_yaml ))
150
197
198
+ if os .getenv ("LINODE_CA" ):
199
+ print (os .getenv ("LINODE_CA" ))
200
+
201
+ ca_secret = secret_create_generic (
202
+ "linode-ca" ,
203
+ namespace = "capl-system" ,
204
+ from_file = "cacert.pem=" + os .getenv ("LINODE_CA" )
205
+ )
206
+ capl_resources .append ("linode-ca:secret" )
207
+
151
208
if os .getenv ("SKIP_DOCKER_BUILD" , "false" ) != "true" and debug != "true" :
152
209
docker_build (
153
210
"docker.io/linode/cluster-api-provider-linode" ,
@@ -159,30 +216,7 @@ if os.getenv("SKIP_DOCKER_BUILD", "false") != "true" and debug != "true":
159
216
160
217
k8s_resource (
161
218
workload = "capl-controller-manager" ,
162
- objects = [
163
- "capl-system:namespace" ,
164
- "linodeclusters.infrastructure.cluster.x-k8s.io:customresourcedefinition" ,
165
- "linodemachines.infrastructure.cluster.x-k8s.io:customresourcedefinition" ,
166
- "linodeclustertemplates.infrastructure.cluster.x-k8s.io:customresourcedefinition" ,
167
- "linodemachinetemplates.infrastructure.cluster.x-k8s.io:customresourcedefinition" ,
168
- "linodevpcs.infrastructure.cluster.x-k8s.io:customresourcedefinition" ,
169
- "linodeplacementgroups.infrastructure.cluster.x-k8s.io:customresourcedefinition" ,
170
- "linodefirewalls.infrastructure.cluster.x-k8s.io:customresourcedefinition" ,
171
- "linodeobjectstoragebuckets.infrastructure.cluster.x-k8s.io:customresourcedefinition" ,
172
- "capl-controller-manager:serviceaccount" ,
173
- "capl-leader-election-role:role" ,
174
- "capl-manager-role:clusterrole" ,
175
- "capl-metrics-reader:clusterrole" ,
176
- "capl-proxy-role:clusterrole" ,
177
- "capl-leader-election-rolebinding:rolebinding" ,
178
- "capl-manager-rolebinding:clusterrolebinding" ,
179
- "capl-proxy-rolebinding:clusterrolebinding" ,
180
- "capl-manager-credentials:secret" ,
181
- "capl-akamai-edgerc-secret:secret" ,
182
- "capl-serving-cert:certificate" ,
183
- "capl-selfsigned-issuer:issuer" ,
184
- "capl-validating-webhook-configuration:validatingwebhookconfiguration" ,
185
- ],
219
+ objects = capl_resources ,
186
220
port_forwards = ["40000:40000" ],
187
221
resource_deps = capl_deps ,
188
222
labels = ["CAPL" ],
0 commit comments