Skip to content

Commit 87ec194

Browse files
feature(nx-cloud): add values for more control over images
1 parent bcb16e5 commit 87ec194

File tree

9 files changed

+51
-6
lines changed

9 files changed

+51
-6
lines changed

charts/nx-cloud/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: v2
22
name: nx-cloud
33
description: Nx Cloud Helm Chart
44
type: application
5-
version: 1.1.0-rc1
5+
version: 1.1.0-rc2
66
maintainers:
77
- name: nx
88
url: "https://nx.app/"

charts/nx-cloud/ci/basic-values.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
global:
2+
imageRegistry: "docker.io"
23
nxCloudAppURL: "https://nx.test"
34
mongodbConnectionString:
45
secretName: nx-cloud-credentials
@@ -53,6 +54,8 @@ frontend:
5354
resources: null
5455

5556
api:
57+
image:
58+
digest: sha256:034e529bbf353fe6ac2fffe551fa0edc5165f1dc1eba26cae86d104b75d896c1
5659
valkey:
5760
clientProvider: "redisson"
5861
useSentinel: true

charts/nx-cloud/templates/_helpers.tpl

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,25 @@ Strip http:// or https:// prefixes from a URL
8484
{{- define "nxCloud.stripURLProtocol" -}}
8585
{{- regexReplaceAll "^https?://" . "" -}}
8686
{{- end -}}
87+
88+
{{/*
89+
Construct the image reference with support for both tag and digest.
90+
If digest is specified, it takes precedence over tag.
91+
If global.imageRegistry is specified, it will be prepended to the repository.
92+
Usage: {{ include "nxCloud.image" (dict "image" .Values.api.image "global" .Values.global) }}
93+
*/}}
94+
{{- define "nxCloud.image" -}}
95+
{{- $registry := .global.imageRegistry | default "" -}}
96+
{{- $repository := .image.repository -}}
97+
{{- $digest := .image.digest | default "" -}}
98+
{{- $tag := .image.tag | default .global.imageTag -}}
99+
{{- $fullRepository := $repository -}}
100+
{{- if $registry -}}
101+
{{- $fullRepository = printf "%s/%s" (trimSuffix "/" $registry) $repository -}}
102+
{{- end -}}
103+
{{- if $digest -}}
104+
{{- printf "%s@%s" $fullRepository $digest -}}
105+
{{- else -}}
106+
{{- printf "%s:%s" $fullRepository $tag -}}
107+
{{- end -}}
108+
{{- end -}}

charts/nx-cloud/templates/aggregator/cronjob.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ spec:
4545
{{- end }}
4646
containers:
4747
- name: nx-cloud-aggregator
48-
image: {{ .Values.aggregator.image.repository }}:{{ .Values.aggregator.image.tag | default .Values.global.imageTag }}
48+
image: {{ include "nxCloud.image" (dict "image" .Values.aggregator.image "global" .Values.global) }}
4949
imagePullPolicy: {{ .Values.aggregator.image.pullPolicy | default .Values.global.imagePullPolicy | quote }}
5050
{{- if .Values.aggregator.cronjob.resources }}
5151
resources: {{- toYaml .Values.aggregator.cronjob.resources | nindent 16 }}

charts/nx-cloud/templates/api/deployment.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ spec:
6666
{{- end }}
6767
containers:
6868
- name: nx-cloud-nx-api
69-
image: {{ .Values.api.image.repository }}:{{ .Values.api.image.tag | default .Values.global.imageTag }}
69+
image: {{ include "nxCloud.image" (dict "image" .Values.api.image "global" .Values.global) }}
7070
imagePullPolicy: {{ .Values.api.image.pullPolicy | default .Values.global.imagePullPolicy | quote }}
7171
{{- if or .Values.config.agentConfigs .Values.api.deployment.volumeMounts }}
7272
volumeMounts:

charts/nx-cloud/templates/file-server/deployment.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ spec:
6161
{{- end }}
6262
containers:
6363
- name: nx-cloud-file-server
64-
image: {{ .Values.fileServer.image.repository }}:{{ .Values.fileServer.image.tag | default .Values.global.imageTag }}
64+
image: {{ include "nxCloud.image" (dict "image" .Values.fileServer.image "global" .Values.global) }}
6565
imagePullPolicy: {{ .Values.fileServer.image.pullPolicy | default .Values.global.imagePullPolicy | quote }}
6666
{{- if .Values.fileServer.deployment.resources }}
6767
resources: {{- toYaml .Values.fileServer.deployment.resources | nindent 12 }}

charts/nx-cloud/templates/frontend/deployment.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ spec:
5656
{{- end }}
5757
containers:
5858
- name: nx-cloud-frontend
59-
image: {{ .Values.frontend.image.repository }}:{{ .Values.frontend.image.tag | default .Values.global.imageTag }}
59+
image: {{ include "nxCloud.image" (dict "image" .Values.frontend.image "global" .Values.global) }}
6060
imagePullPolicy: {{ .Values.frontend.image.pullPolicy | default .Values.global.imagePullPolicy }}
6161
{{- if .Values.frontend.deployment.resources }}
6262
resources: {{- toYaml .Values.frontend.deployment.resources | nindent 12 }}

charts/nx-cloud/values.schema.json

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,17 @@
1515
"type": "string"
1616
}
1717
},
18+
"podLabels": {
19+
"type": "object",
20+
"description": "Global pod labels to apply to all pods",
21+
"additionalProperties": {
22+
"type": "string"
23+
}
24+
},
25+
"imageRegistry": {
26+
"type": "string",
27+
"description": "Global image registry to prepend to all image repositories (optional)"
28+
},
1829
"imageTag": {
1930
"type": "string",
2031
"description": "Global image tag for all NX Cloud components",
@@ -410,13 +421,17 @@
410421
"type": "string",
411422
"description": "Image tag"
412423
},
424+
"digest": {
425+
"type": "string",
426+
"description": "Image digest (takes precedence over tag if specified)"
427+
},
413428
"pullPolicy": {
414429
"type": "string",
415430
"description": "Image pull policy",
416431
"enum": ["Always", "IfNotPresent", "Never", ""]
417432
}
418433
},
419-
"required": ["repository", "tag"]
434+
"required": ["repository"]
420435
},
421436
"serviceConfig": {
422437
"type": "object",

charts/nx-cloud/values.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
global:
22
labels: {}
33
podLabels: {}
4+
imageRegistry: ""
45
imageTag: "2025.07.1"
56
imagePullPolicy: IfNotPresent
67
imagePullSecrets: []
@@ -35,6 +36,7 @@ fileServer:
3536
image:
3637
repository: "nxprivatecloud/nx-cloud-file-server"
3738
tag: ""
39+
digest: ""
3840
pullPolicy: IfNotPresent
3941

4042
service:
@@ -105,6 +107,7 @@ aggregator:
105107
image:
106108
repository: "nxprivatecloud/nx-cloud-aggregator"
107109
tag: ""
110+
digest: ""
108111
pullPolicy: IfNotPresent
109112

110113
cronjob:
@@ -154,6 +157,7 @@ frontend:
154157
image:
155158
repository: "nxprivatecloud/nx-cloud-frontend"
156159
tag: ""
160+
digest: ""
157161
pullPolicy: ""
158162

159163
service:
@@ -230,6 +234,7 @@ api:
230234
image:
231235
repository: "nxprivatecloud/nx-cloud-nx-api"
232236
tag: ""
237+
digest: ""
233238
pullPolicy: ""
234239

235240
service:

0 commit comments

Comments
 (0)