Skip to content

Commit 7fab19d

Browse files
Default canal_iface_regex only for hetzner (#3798)
Signed-off-by: Artiom Diomin <artiom@kubermatic.com> Co-authored-by: Artiom Diomin <artiom@kubermatic.com>
1 parent ac54d44 commit 7fab19d

File tree

2 files changed

+25
-12
lines changed

2 files changed

+25
-12
lines changed

addons/cni-canal/canal-config.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ data:
1212
# default route.
1313
canal_iface: "{{ default "" .Params.IFACE }}"
1414

15-
canal_iface_regex: '{{ default "^en" .Params.IFACE_REGEX }}'
15+
canal_iface_regex: '{{ default "" .Params.IFACE_REGEX }}'
1616

1717
# Whether or not to masquerade traffic to destinations not within
1818
# the pod network.

pkg/addons/manifest.go

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"fmt"
2424
"io"
2525
"io/fs"
26+
"maps"
2627
"os"
2728
"path/filepath"
2829
"strings"
@@ -184,9 +185,7 @@ func (a *applier) loadAddonsManifests(
184185
res = strings.ReplaceAll(res, "}}", "}}^")
185186
manifestBytes = []byte(res)
186187
}
187-
188-
var manifest *bytes.Buffer
189-
manifest = bytes.NewBuffer(manifestBytes)
188+
manifest := bytes.NewBuffer(manifestBytes)
190189

191190
if !disableTemplating {
192191
overwriteRegistry := k1cluster.RegistryConfiguration.ImageRegistry("")
@@ -205,17 +204,14 @@ func (a *applier) loadAddonsManifests(
205204

206205
// Make a copy and merge Params
207206
tplDataParams := map[string]string{}
208-
for k, v := range a.TemplateData.Params {
209-
tplDataParams[k] = v
210-
}
211-
for k, v := range addonParams {
212-
tplDataParams[k] = v
213-
}
207+
maps.Copy(tplDataParams, a.TemplateData.Params)
208+
maps.Copy(tplDataParams, addonParams)
209+
210+
defaultAddonParams(k1cluster, addonName, tplDataParams)
214211

215212
// Resolve environment variables in Params
216213
for k, v := range tplDataParams {
217-
if strings.HasPrefix(v, ParamsEnvPrefix) {
218-
envName := strings.TrimPrefix(v, ParamsEnvPrefix)
214+
if envName, ok := strings.CutPrefix(v, ParamsEnvPrefix); ok {
219215
if env, ok := os.LookupEnv(envName); ok {
220216
tplDataParams[k] = env
221217
} else {
@@ -274,6 +270,23 @@ func (a *applier) loadAddonsManifests(
274270
return manifests, nil
275271
}
276272

273+
func defaultAddonParams(k1cluster *kubeoneapi.KubeOneCluster, addonName string, tplDataParams map[string]string) {
274+
if addonName == resources.AddonCNICanal {
275+
if k1cluster.CloudProvider.Hetzner != nil {
276+
// Customize cni-canal addon on hetzner
277+
defaultIfaceParam(tplDataParams, "^en")
278+
}
279+
}
280+
}
281+
282+
func defaultIfaceParam(tplDataParams map[string]string, reg string) {
283+
_, iface := tplDataParams["IFACE"]
284+
_, ifaceregex := tplDataParams["IFACE_REGEX"]
285+
if !iface && !ifaceregex {
286+
tplDataParams["IFACE_REGEX"] = reg
287+
}
288+
}
289+
277290
// ensureAddonsLabelsOnResources applies the addons label on all resources in the manifest
278291
func ensureAddonsLabelsOnResources(manifests []runtime.RawExtension, addonName string) ([]*bytes.Buffer, error) {
279292
var rawManifests []*bytes.Buffer

0 commit comments

Comments
 (0)