Skip to content
This repository was archived by the owner on May 14, 2025. It is now read-only.

Commit 1d5ae33

Browse files
committed
Add image pull secrets
- Add missing pull secrets to monitoring container as its done everywhere else. - Fixes #4769
1 parent 7f436cb commit 1d5ae33

File tree

11 files changed

+128
-0
lines changed

11 files changed

+128
-0
lines changed

src/carvel/config/monitoring/_ytt_lib/grafana/grafana-deployment.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#@ load("grafana.lib.yml", "name")
22
#@ load("grafana.lib.yml", "grafana_image")
3+
#@ load("grafana.star", "has_image_pull_secrets")
4+
#@ load("grafana.star", "image_pull_secrets")
35

46
apiVersion: apps/v1
57
kind: Deployment
@@ -43,6 +45,11 @@ spec:
4345
- name: config
4446
mountPath: "/etc/grafana/provisioning/datasources/datasources.yaml"
4547
subPath: datasources.yaml
48+
#@ if has_image_pull_secrets():
49+
imagePullSecrets: #@ image_pull_secrets()
50+
#@ else:
51+
imagePullSecrets: [{name: reg-creds}]
52+
#@ end
4653
volumes:
4754
- name: config
4855
configMap:
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
load("@ytt:data", "data")
2+
3+
def non_empty_string(value):
4+
return type(value) == "string" and len(value) > 0
5+
end
6+
7+
def has_image_pull_secrets():
8+
return non_empty_string(data.values.registrySecretRef)
9+
end
10+
11+
def registry_secret_ref():
12+
return data.values.registrySecretRef
13+
end
14+
15+
def image_pull_secrets():
16+
return [{"name": registry_secret_ref()}]
17+
end

src/carvel/config/monitoring/_ytt_lib/grafana/values.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@ image:
88
service:
99
spec:
1010
type: NodePort
11+
registrySecretRef: ""

src/carvel/config/monitoring/_ytt_lib/prometheus-rsocket-proxy/prometheus-rsocket-proxy-deployment.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#@ load("prometheus-rsocket-proxy.lib.yml", "name")
22
#@ load("prometheus-rsocket-proxy.lib.yml", "prometheus_rsocket_proxy_image")
3+
#@ load("prometheus-rsocket-proxy.star", "has_image_pull_secrets")
4+
#@ load("prometheus-rsocket-proxy.star", "image_pull_secrets")
35

46
apiVersion: apps/v1
57
kind: Deployment
@@ -32,6 +34,11 @@ spec:
3234
requests:
3335
cpu: 0.5
3436
memory: 1024Mi
37+
#@ if has_image_pull_secrets():
38+
imagePullSecrets: #@ image_pull_secrets()
39+
#@ else:
40+
imagePullSecrets: [{name: reg-creds}]
41+
#@ end
3542
securityContext:
3643
fsGroup: 2000
3744
runAsNonRoot: true
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
load("@ytt:data", "data")
2+
3+
def non_empty_string(value):
4+
return type(value) == "string" and len(value) > 0
5+
end
6+
7+
def has_image_pull_secrets():
8+
return non_empty_string(data.values.registrySecretRef)
9+
end
10+
11+
def registry_secret_ref():
12+
return data.values.registrySecretRef
13+
end
14+
15+
def image_pull_secrets():
16+
return [{"name": registry_secret_ref()}]
17+
end

src/carvel/config/monitoring/_ytt_lib/prometheus-rsocket-proxy/values.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ image:
55
repository: micrometermetrics/prometheus-rsocket-proxy
66
tag: 1.0.0
77
digest: ""
8+
registrySecretRef: ""

src/carvel/config/monitoring/_ytt_lib/prometheus/prometheus-deployment.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#@ load("prometheus.lib.yml", "name")
22
#@ load("prometheus.lib.yml", "prometheus_image")
3+
#@ load("prometheus.star", "has_image_pull_secrets")
4+
#@ load("prometheus.star", "image_pull_secrets")
35

46
apiVersion: apps/v1
57
kind: Deployment
@@ -32,6 +34,11 @@ spec:
3234
mountPath: /etc/prometheus/
3335
- name: prometheus-storage-volume
3436
mountPath: /prometheus/
37+
#@ if has_image_pull_secrets():
38+
imagePullSecrets: #@ image_pull_secrets()
39+
#@ else:
40+
imagePullSecrets: [{name: reg-creds}]
41+
#@ end
3542
volumes:
3643
- name: prometheus-config-volume
3744
configMap:
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
load("@ytt:data", "data")
2+
3+
def non_empty_string(value):
4+
return type(value) == "string" and len(value) > 0
5+
end
6+
7+
def has_image_pull_secrets():
8+
return non_empty_string(data.values.registrySecretRef)
9+
end
10+
11+
def registry_secret_ref():
12+
return data.values.registrySecretRef
13+
end
14+
15+
def image_pull_secrets():
16+
return [{"name": registry_secret_ref()}]
17+
end

src/carvel/config/monitoring/_ytt_lib/prometheus/values.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ image:
55
repository: springcloud/spring-cloud-dataflow-prometheus-local
66
tag: ""
77
digest: ""
8+
registrySecretRef: ""

src/carvel/config/monitoring/monitoring.lib.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,19 @@ image: #@ data.values.scdf.feature.monitoring.grafana.image
1212
service:
1313
spec:
1414
type: #@ data.values.scdf.feature.monitoring.grafana.service.type
15+
registrySecretRef: #@ data.values.scdf.registry.secret.ref
1516
#@ end
1617

1718
#@ def prometheus_values():
1819
name: prometheus
1920
image: #@ data.values.scdf.feature.monitoring.prometheus.image
21+
registrySecretRef: #@ data.values.scdf.registry.secret.ref
2022
#@ end
2123

2224
#@ def prometheus_rsocket_proxy_values():
2325
name: prometheus-rsocket-proxy
2426
image: #@ data.values.scdf.feature.monitoring.prometheusRsocketProxy.image
27+
registrySecretRef: #@ data.values.scdf.registry.secret.ref
2528
#@ end
2629

2730
#@ def monitoring_config():

src/carvel/test/secrets.test.ts

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,32 @@ describe('secrets', () => {
5858
expect(secret).toBeTruthy();
5959
});
6060

61+
it('should add carvel secretgen on default 3', async () => {
62+
// see above test for as this is just same with different setup
63+
const result = await execYtt({
64+
files: ['config'],
65+
dataValueYamls: [
66+
...DEFAULT_REQUIRED_DATA_VALUES,
67+
'scdf.feature.monitoring.prometheus.enabled=true',
68+
'scdf.feature.monitoring.grafana.enabled=true',
69+
'scdf.feature.monitoring.prometheusRsocketProxy.enabled=true'
70+
]
71+
});
72+
expect(result.success, result.stderr).toBeTruthy();
73+
const yaml = result.stdout;
74+
75+
const pods = findPodSpecsWithImagePullSecrets(yaml);
76+
expect(pods).toHaveLength(8);
77+
78+
// all default pull secrets need to ref to reg-creds
79+
const refs = pods.flatMap(p => p.imagePullSecrets?.[0].name);
80+
expect(refs).toHaveLength(8);
81+
expect(refs.every(r => r === 'reg-creds')).toBeTrue();
82+
83+
const secret = findSecret(yaml, 'reg-creds');
84+
expect(secret).toBeTruthy();
85+
});
86+
6187
it('should add manual image pull secret if defined 1', async () => {
6288
const result = await execYtt({
6389
files: ['config'],
@@ -105,4 +131,28 @@ describe('secrets', () => {
105131
const secret = findSecret(yaml, 'reg-creds');
106132
expect(secret).toBeFalsy();
107133
});
134+
135+
it('should add manual image pull secret if defined 3', async () => {
136+
const result = await execYtt({
137+
files: ['config'],
138+
dataValueYamls: [
139+
...DEFAULT_REQUIRED_DATA_VALUES,
140+
'scdf.feature.monitoring.prometheus.enabled=true',
141+
'scdf.feature.monitoring.grafana.enabled=true',
142+
'scdf.feature.monitoring.prometheusRsocketProxy.enabled=true',
143+
'scdf.registry.secret.ref=fakeref'
144+
]
145+
});
146+
expect(result.success, result.stderr).toBeTruthy();
147+
const yaml = result.stdout;
148+
const pods = findPodSpecsWithImagePullSecrets(yaml);
149+
expect(pods).toHaveLength(8);
150+
151+
const refs = pods.flatMap(p => p.imagePullSecrets?.[0].name);
152+
expect(refs).toHaveLength(8);
153+
expect(refs.every(r => r === 'fakeref')).toBeTrue();
154+
155+
const secret = findSecret(yaml, 'reg-creds');
156+
expect(secret).toBeFalsy();
157+
});
108158
});

0 commit comments

Comments
 (0)