fix: packages registry secret logic
Description
Fixes logic for generating registry credential secrets for packages. Since registryCredentials are required via schema, updates logic to depend on required dockerconfigjson properties.
Tests
Negative Test Case
Using default values from chart along with the following packages-values:
packages:
podinfo:
git:
repo: https://github.com/stefanprodan/podinfo.git
tag: 6.3.4
path: charts/podinfo
flux:
timeout: 5m
postRenderers: []
dependsOn:
- name: monitoring
namespace: bigbang
values:
replicaCount: 3
somepackage:
git:
repo: https://github.com/stefanprodan/podinfo.git
tag: 6.3.4
path: charts/podinfo
flux:
timeout: 5m
postRenderers: []
dependsOn:
- name: monitoring
namespace: bigbang
values:
replicaCount: 3
registryCredentials:
registry: ""
password: ""
username: ""
Chart successfully renders no private-registry secrets for either packages.
Positive Test Case - Map
Using default values from chart along with the following packages-values:
packages:
podinfo:
git:
repo: https://github.com/stefanprodan/podinfo.git
tag: 6.3.4
path: charts/podinfo
flux:
timeout: 5m
postRenderers: []
dependsOn:
- name: monitoring
namespace: bigbang
values:
replicaCount: 3
somepackage:
git:
repo: https://github.com/stefanprodan/podinfo.git
tag: 6.3.4
path: charts/podinfo
flux:
timeout: 5m
postRenderers: []
dependsOn:
- name: monitoring
namespace: bigbang
values:
replicaCount: 3
registryCredentials:
registry: someregistry
username: someusername
password: somepassword
Successfully generates the following secrets:
---
# Source: bigbang/templates/secrets/imagepullsecret.yaml
apiVersion: v1
kind: Secret
metadata:
name: private-registry
namespace: podinfo
labels:
app.kubernetes.io/name: private-registry
app.kubernetes.io/instance: bb
app.kubernetes.io/version: 2.10.0
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: "bigbang"
helm.sh/chart: bigbang-2.10.0
type: kubernetes.io/dockerconfigjson
data:
.dockerconfigjson: eyJhdXRocyI6eyJzb21lcmVnaXN0cnkiOnsidXNlcm5hbWUiOiJzb21ldXNlcm5hbWUiLCJwYXNzd29yZCI6InNvbWVwYXNzd29yZCIsImVtYWlsIjoiJSFzKDxuaWw+KSIsImF1dGgiOiJjMjl0WlhWelpYSnVZVzFsT25OdmJXVndZWE56ZDI5eVpBPT0ifX19
---
# Source: bigbang/templates/secrets/imagepullsecret.yaml
apiVersion: v1
kind: Secret
metadata:
name: private-registry
namespace: somepackage
labels:
app.kubernetes.io/name: private-registry
app.kubernetes.io/instance: bb
app.kubernetes.io/version: 2.10.0
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: "bigbang"
helm.sh/chart: bigbang-2.10.0
type: kubernetes.io/dockerconfigjson
data:
.dockerconfigjson: eyJhdXRocyI6eyJzb21lcmVnaXN0cnkiOnsidXNlcm5hbWUiOiJzb21ldXNlcm5hbWUiLCJwYXNzd29yZCI6InNvbWVwYXNzd29yZCIsImVtYWlsIjoiJSFzKDxuaWw+KSIsImF1dGgiOiJjMjl0WlhWelpYSnVZVzFsT25OdmJXVndZWE56ZDI5eVpBPT0ifX19
Positive Test Case - List
Using default values from chart along with the following packages-values:
packages:
podinfo:
git:
repo: https://github.com/stefanprodan/podinfo.git
tag: 6.3.4
path: charts/podinfo
flux:
timeout: 5m
postRenderers: []
dependsOn:
- name: monitoring
namespace: bigbang
values:
replicaCount: 3
somepackage:
git:
repo: https://github.com/stefanprodan/podinfo.git
tag: 6.3.4
path: charts/podinfo
flux:
timeout: 5m
postRenderers: []
dependsOn:
- name: monitoring
namespace: bigbang
values:
replicaCount: 3
registryCredentials:
- registry: someregistry
username: someusername
password: somepassword
- registry: someregistry2
username: someusername2
password: somepassword2
Successfully generates the following secrets:
---
# Source: bigbang/templates/secrets/imagepullsecret.yaml
apiVersion: v1
kind: Secret
metadata:
name: private-registry
namespace: podinfo
labels:
app.kubernetes.io/name: private-registry
app.kubernetes.io/instance: bb
app.kubernetes.io/version: 2.10.0
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: "bigbang"
helm.sh/chart: bigbang-2.10.0
type: kubernetes.io/dockerconfigjson
data:
.dockerconfigjson: ewogICJhdXRocyI6IHsKICAgICJzb21lcmVnaXN0cnkiOiB7CiAgICAgICJ1c2VybmFtZSI6ICJzb21ldXNlcm5hbWUiLAogICAgICAicGFzc3dvcmQiOiAic29tZXBhc3N3b3JkIiwKICAgICAgImVtYWlsIjogIiIsCiAgICAgICJhdXRoIjogImMyOXRaWFZ6WlhKdVlXMWxPbk52YldWd1lYTnpkMjl5WkE9PSIKICAgIH0sCiAgICAic29tZXJlZ2lzdHJ5MiI6IHsKICAgICAgInVzZXJuYW1lIjogInNvbWV1c2VybmFtZTIiLAogICAgICAicGFzc3dvcmQiOiAic29tZXBhc3N3b3JkMiIsCiAgICAgICJlbWFpbCI6ICIiLAogICAgICAiYXV0aCI6ICJjMjl0WlhWelpYSnVZVzFsTWpwemIyMWxjR0Z6YzNkdmNtUXkiCiAgICB9CiAgfQp9
---
# Source: bigbang/templates/secrets/imagepullsecret.yaml
apiVersion: v1
kind: Secret
metadata:
name: private-registry
namespace: somepackage
labels:
app.kubernetes.io/name: private-registry
app.kubernetes.io/instance: bb
app.kubernetes.io/version: 2.10.0
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: "bigbang"
helm.sh/chart: bigbang-2.10.0
type: kubernetes.io/dockerconfigjson
data:
.dockerconfigjson: ewogICJhdXRocyI6IHsKICAgICJzb21lcmVnaXN0cnkiOiB7CiAgICAgICJ1c2VybmFtZSI6ICJzb21ldXNlcm5hbWUiLAogICAgICAicGFzc3dvcmQiOiAic29tZXBhc3N3b3JkIiwKICAgICAgImVtYWlsIjogIiIsCiAgICAgICJhdXRoIjogImMyOXRaWFZ6WlhKdVlXMWxPbk52YldWd1lYTnpkMjl5WkE9PSIKICAgIH0sCiAgICAic29tZXJlZ2lzdHJ5MiI6IHsKICAgICAgInVzZXJuYW1lIjogInNvbWV1c2VybmFtZTIiLAogICAgICAicGFzc3dvcmQiOiAic29tZXBhc3N3b3JkMiIsCiAgICAgICJlbWFpbCI6ICIiLAogICAgICAiYXV0aCI6ICJjMjl0WlhWelpYSnVZVzFsTWpwemIyMWxjR0Z6YzNkdmNtUXkiCiAgICB9CiAgfQp9
For Issue
Closes #1710 (closed)
Edited by Daniel Palmer