Skip to content

Commit a6a17bb

Browse files
committed
feat: implementation for user defined cilium configmap
1 parent 683aa47 commit a6a17bb

File tree

2 files changed

+31
-2
lines changed

2 files changed

+31
-2
lines changed

pkg/handlers/generic/lifecycle/cni/cilium/handler.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,8 @@ func (c *CiliumCNI) apply(
153153
return
154154
}
155155

156+
defaultNamespace := c.config.DefaultsNamespace()
157+
156158
var strategy addons.Applier
157159
switch ptr.Deref(cniVar.Strategy, "") {
158160
case v1alpha1.AddonStrategyClusterResourceSet:
@@ -175,9 +177,16 @@ func (c *CiliumCNI) apply(
175177
)
176178
return
177179
}
180+
181+
helmValuesConfigmapRef := c.config.helmAddonConfig.defaultValuesTemplateConfigMapName
182+
if cniVar.Values != nil && cniVar.Values.SourceRef != nil {
183+
helmValuesConfigmapRef = cniVar.Values.SourceRef.Name
184+
defaultNamespace = cluster.Namespace
185+
}
186+
178187
strategy = addons.NewHelmAddonApplier(
179188
addons.NewHelmAddonConfig(
180-
c.config.helmAddonConfig.defaultValuesTemplateConfigMapName,
189+
helmValuesConfigmapRef,
181190
defaultCiliumNamespace,
182191
defaultCiliumReleaseName,
183192
),
@@ -193,7 +202,7 @@ func (c *CiliumCNI) apply(
193202
return
194203
}
195204

196-
if err := strategy.Apply(ctx, cluster, c.config.DefaultsNamespace(), log); err != nil {
205+
if err := strategy.Apply(ctx, cluster, defaultNamespace, log); err != nil {
197206
resp.SetStatus(runtimehooksv1.ResponseStatusFailure)
198207
resp.SetMessage(err.Error())
199208
return

pkg/handlers/generic/lifecycle/cni/variables_test.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,26 @@ var testDefs = []capitest.VariableTestDef{{
4040
},
4141
},
4242
},
43+
}, {
44+
Name: "set with valid provider using HelmAddon strategy and custom helm values",
45+
Vals: apivariables.ClusterConfigSpec{
46+
Addons: &apivariables.Addons{
47+
GenericAddons: v1alpha1.GenericAddons{
48+
CNI: &v1alpha1.CNI{
49+
Provider: v1alpha1.CNIProviderCilium,
50+
Strategy: ptr.To(v1alpha1.AddonStrategyHelmAddon),
51+
AddonConfig: v1alpha1.AddonConfig{
52+
Values: &v1alpha1.AddonValues{
53+
SourceRef: &v1alpha1.ValuesReference{
54+
Name: "custom-cilium-cni-helm-values",
55+
Kind: "ConfigMap",
56+
},
57+
},
58+
},
59+
},
60+
},
61+
},
62+
},
4363
}, {
4464
Name: "set with invalid provider",
4565
Vals: apivariables.ClusterConfigSpec{

0 commit comments

Comments
 (0)