Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Implementation
  • Loading branch information
werdes72 committed Nov 20, 2025
commit 44a74f34f7cf8b88ca9c9b3cda2080d2ac2cfe84
6 changes: 3 additions & 3 deletions config/manager/env-images.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ spec:
- name: manager
env:
- name: install-cni
value: reg.ps-test.goats.shoot.live.k8s-hana.ondemand.com/istio/install-cni:1.27.1-distroless
value: europe-docker.pkg.dev/kyma-project/prod/external/istio/install-cni:1.27.1-distroless
- name: proxyv2
value: reg.ps-test.goats.shoot.live.k8s-hana.ondemand.com/istio/proxyv2:1.27.1-distroless
value: europe-docker.pkg.dev/kyma-project/prod/external/istio/proxyv2:1.27.1-distroless
- name: pilot
value: reg.ps-test.goats.shoot.live.k8s-hana.ondemand.com/istio/pilot:1.27.1-distroless
value: europe-docker.pkg.dev/kyma-project/prod/external/istio/pilot:1.27.1-distroless
59 changes: 59 additions & 0 deletions internal/images/merge.go
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
package images

import (
"os"

"github.com/imdario/mergo"
"sigs.k8s.io/yaml"
)

const pullSecretEnvVar = "SKR_IMG_PULL_SECRET"

// MergeHubConfiguration merges the Istio hub configuration to the provided manifest.
func MergeHubConfiguration(manifest []byte, istioImagesHub string) ([]byte, error) {
var templateMap map[string]interface{}
Expand All @@ -24,3 +28,58 @@ func MergeHubConfiguration(manifest []byte, istioImagesHub string) ([]byte, erro

return yaml.Marshal(templateMap)
}

func MergePullSecretEnv(manifest []byte) ([]byte, error) {
secret, pullSecretEnvExists := os.LookupEnv(pullSecretEnvVar)
if !pullSecretEnvExists {
return manifest, nil
}

var templateMap map[string]interface{}
_ = yaml.Unmarshal(manifest, &templateMap)

spec := ensureMap(templateMap, "spec")
values := ensureMap(spec, "values")
global := ensureMap(values, "global")

ips, ok := global["imagePullSecrets"].([]interface{})
if !ok {
ips = []interface{}{}
}

secretName := secret
already := false
for _, v := range ips {
if v == secretName {
already = true
break
}
}
if !already {
ips = append(ips, secretName)
}

global["imagePullSecrets"] = ips

out, err := yaml.Marshal(templateMap)
if err != nil {
return nil, err
}

return out, nil
}

func ensureMap(m map[string]interface{}, key string) map[string]interface{} {
v, ok := m[key]
if !ok {
nm := map[string]interface{}{}
m[key] = nm
return nm
}
nm, ok := v.(map[string]interface{})
if !ok {
nm = map[string]interface{}{}
m[key] = nm
}
return nm
}
4 changes: 2 additions & 2 deletions internal/istiooperator/istio-operator-light.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ metadata:
labels:
kyma-project.io/module: istio
spec:
hub: reg.ps-test.goats.shoot.live.k8s-hana.ondemand.com
hub: europe-docker.pkg.dev/kyma-project/prod/external/istio
tag: "1.27.1-distroless"
components:
base:
Expand Down Expand Up @@ -309,7 +309,7 @@ spec:
requests:
cpu: 10m
imagePullPolicy: IfNotPresent
imagePullSecrets: [regcred]
imagePullSecrets: []
istioNamespace: istio-system
istiod:
enableAnalysis: false
Expand Down
4 changes: 2 additions & 2 deletions internal/istiooperator/istio-operator.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ metadata:
labels:
kyma-project.io/module: istio
spec:
hub: reg.ps-test.goats.shoot.live.k8s-hana.ondemand.com
hub: europe-docker.pkg.dev/kyma-project/prod/external/istio
tag: "1.27.1-distroless"
components:
base:
Expand Down Expand Up @@ -362,7 +362,7 @@ spec:
requests:
cpu: 10m
imagePullPolicy: IfNotPresent
imagePullSecrets: [regcred]
imagePullSecrets: []
istioNamespace: istio-system
istiod:
enableAnalysis: false
Expand Down
6 changes: 5 additions & 1 deletion internal/istiooperator/merge.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,11 @@ func (m *IstioMerger) Merge(clusterSize clusterconfig.ClusterSize, istioCR *oper
if err != nil {
return "", err
}
iopWithOverrides, err := clusterconfig.MergeOverrides(manifestWithOverrideImagesHub, overrides)
manifestWithOverridePullSecret, err := images.MergePullSecretEnv(manifestWithOverrideImagesHub)
if err != nil {
return "", err
}
iopWithOverrides, err := clusterconfig.MergeOverrides(manifestWithOverridePullSecret, overrides)
if err != nil {
return "", err
}
Expand Down
6 changes: 5 additions & 1 deletion internal/istiooperator/merge_experimental.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,11 @@ func (m *IstioMerger) Merge(clusterSize clusterconfig.ClusterSize, istioCR *oper
if err != nil {
return "", err
}
iopWithOverrides, err := clusterconfig.MergeOverrides(manifestWithOverrideImagesHub, overrides)
manifestWithOverridePullSecret, err := images.MergePullSecretEnv(manifestWithOverrideImagesHub)
if err != nil {
return "", err
}
iopWithOverrides, err := clusterconfig.MergeOverrides(manifestWithOverridePullSecret, overrides)
if err != nil {
return "", err
}
Expand Down
Loading