diff --git a/charts/kvisor/templates/_helpers.tpl b/charts/kvisor/templates/_helpers.tpl index 650306ae..d22bed96 100644 --- a/charts/kvisor/templates/_helpers.tpl +++ b/charts/kvisor/templates/_helpers.tpl @@ -370,6 +370,20 @@ Resolve CASTAI_API_URL: global.castai.apiURL > .Values.castai.apiURL {{- coalesce (dig "castai" "apiURL" "" (.Values.global | default dict)) .Values.castai.apiURL -}} {{- end }} +{{/* +Resolve image repository: prepend global.registry if set. +Usage: {{ include "kvisor.imageRepository" (dict "repository" .Values.image.repository "Values" .Values) }} +*/}} +{{- define "kvisor.imageRepository" -}} +{{- $repository := required "repository must be provided" .repository -}} +{{- $registry := ((.Values.global | default dict).registry) | default "" -}} +{{- if $registry -}} +{{- printf "%s/%s" (trimSuffix "/" $registry) $repository -}} +{{- else -}} +{{- $repository -}} +{{- end -}} +{{- end }} + {{/* OBI (OpenTelemetry eBPF Instrumentation) sidecar container security context. Uses fine-grained capabilities instead of privileged: true. diff --git a/charts/kvisor/templates/agent.yaml b/charts/kvisor/templates/agent.yaml index e33d7fba..5f509f42 100644 --- a/charts/kvisor/templates/agent.yaml +++ b/charts/kvisor/templates/agent.yaml @@ -63,7 +63,7 @@ spec: initContainers: {{- if (include "kvisor.gpuEnabled" .) }} - name: gpu-feature-discovery - image: "{{ .Values.image.repository }}-agent:{{ .Values.image.tag | default .Chart.AppVersion }}" + image: "{{ include "kvisor.imageRepository" (dict "repository" .Values.image.repository "Values" .Values) }}-agent:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} command: - "/usr/local/bin/kvisor-agent" @@ -96,7 +96,7 @@ spec: - name: kvisor securityContext: {{- include "kvisor.agent.containerSecurityContext" . | nindent 12 }} - image: "{{ .Values.image.repository }}-agent:{{ .Values.image.tag | default .Chart.AppVersion }}" + image: "{{ include "kvisor.imageRepository" (dict "repository" .Values.image.repository "Values" .Values) }}-agent:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} resources: {{- toYaml .Values.agent.resources | nindent 12 }} @@ -213,7 +213,7 @@ spec: {{- end }} {{- if (dig "reliabilityMetrics" "enabled" false .Values.agent) }} - name: obi - image: "{{ .Values.agent.reliabilityMetrics.obi.image.repository }}:{{ .Values.agent.reliabilityMetrics.obi.image.tag }}" + image: "{{ include "kvisor.imageRepository" (dict "repository" .Values.agent.reliabilityMetrics.obi.image.repository "Values" .Values) }}:{{ .Values.agent.reliabilityMetrics.obi.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} command: ["/shared/entrypoint.sh"] securityContext: @@ -287,7 +287,7 @@ spec: {{- end }} {{- if (dig "reliabilityMetrics" "collector" "enabled" false .Values.agent) }} - name: otel-collector - image: "{{ .Values.agent.reliabilityMetrics.collector.image.repository }}:{{ .Values.agent.reliabilityMetrics.collector.image.tag }}" + image: "{{ include "kvisor.imageRepository" (dict "repository" .Values.agent.reliabilityMetrics.collector.image.repository "Values" .Values) }}:{{ .Values.agent.reliabilityMetrics.collector.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} securityContext: runAsUser: 0 @@ -366,7 +366,7 @@ spec: {{- if (include "kvisor.gpuEnabled" .) }} {{- $provider := include "kvisor.cloudProvider" . }} - name: dcgm-exporter - image: "{{ .Values.agent.gpu.dcgmExporter.image.repository }}:{{ .Values.agent.gpu.dcgmExporter.image.tag }}" + image: "{{ include "kvisor.imageRepository" (dict "repository" .Values.agent.gpu.dcgmExporter.image.repository "Values" .Values) }}:{{ .Values.agent.gpu.dcgmExporter.image.tag }}" imagePullPolicy: {{ .Values.agent.gpu.dcgmExporter.image.pullPolicy }} securityContext: privileged: {{ eq $provider "gke" }} diff --git a/charts/kvisor/templates/cast-mock-server.yaml b/charts/kvisor/templates/cast-mock-server.yaml index f2ba3d56..92b8eb32 100644 --- a/charts/kvisor/templates/cast-mock-server.yaml +++ b/charts/kvisor/templates/cast-mock-server.yaml @@ -26,7 +26,7 @@ spec: containers: - name: generator securityContext: {} - image: "{{ .Values.mockServer.image.repository }}:{{ .Values.mockServer.image.tag | default .Chart.AppVersion }}" + image: "{{ include "kvisor.imageRepository" (dict "repository" .Values.mockServer.image.repository "Values" .Values) }}:{{ .Values.mockServer.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.mockServer.image.pullPolicy }} args: - "--mode=controller" diff --git a/charts/kvisor/templates/clickhouse.yaml b/charts/kvisor/templates/clickhouse.yaml index 981f9181..a6e478b2 100644 --- a/charts/kvisor/templates/clickhouse.yaml +++ b/charts/kvisor/templates/clickhouse.yaml @@ -27,7 +27,7 @@ spec: securityContext: {} containers: - name: schema - image: "{{ .Values.image.repository }}-agent:{{ .Values.image.tag | default .Chart.AppVersion }}" + image: "{{ include "kvisor.imageRepository" (dict "repository" .Values.image.repository "Values" .Values) }}-agent:{{ .Values.image.tag | default .Chart.AppVersion }}" command: - "/usr/local/bin/kvisor-agent" args: @@ -40,7 +40,7 @@ spec: name: {{ include "kvisor.clickhouse.fullname" . }} - name: storage securityContext: {} - image: "{{ .Values.clickhouse.image.repository }}:{{ .Values.clickhouse.image.tag | default .Chart.AppVersion }}" + image: "{{ include "kvisor.imageRepository" (dict "repository" .Values.clickhouse.image.repository "Values" .Values) }}:{{ .Values.clickhouse.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.clickhouse.image.pullPolicy }} env: - name: CLICKHOUSE_USER diff --git a/charts/kvisor/templates/controller.yaml b/charts/kvisor/templates/controller.yaml index ace5427e..27e53f1a 100644 --- a/charts/kvisor/templates/controller.yaml +++ b/charts/kvisor/templates/controller.yaml @@ -50,7 +50,7 @@ spec: priorityClassName: {{ .Values.controller.priorityClass }} containers: - name: controller - image: "{{ .Values.image.repository }}-controller:{{ .Values.image.tag | default .Chart.AppVersion }}" + image: "{{ include "kvisor.imageRepository" (dict "repository" .Values.image.repository "Values" .Values) }}-controller:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{.Values.image.pullPolicy}} volumeMounts: {{- if .Values.controller.netflow.staticCIDRs.mappings }} @@ -160,7 +160,7 @@ spec: periodSeconds: 5 {{- if and (dig "reliabilityMetrics" "enabled" false .Values.controller) (dig "reliabilityMetrics" "collector" "enabled" false .Values.controller) }} - name: otel-collector - image: "{{ .Values.controller.reliabilityMetrics.collector.image.repository }}:{{ .Values.controller.reliabilityMetrics.collector.image.tag }}" + image: "{{ include "kvisor.imageRepository" (dict "repository" .Values.controller.reliabilityMetrics.collector.image.repository "Values" .Values) }}:{{ .Values.controller.reliabilityMetrics.collector.image.tag }}" imagePullPolicy: {{ .Values.image.pullPolicy }} securityContext: runAsUser: 10001 diff --git a/charts/kvisor/templates/event-generator.yaml b/charts/kvisor/templates/event-generator.yaml index 0e87a20f..d5e432f7 100644 --- a/charts/kvisor/templates/event-generator.yaml +++ b/charts/kvisor/templates/event-generator.yaml @@ -27,7 +27,7 @@ spec: containers: - name: generator securityContext: {} - image: "{{ .Values.eventGenerator.image.repository }}:{{ .Values.eventGenerator.image.tag | default .Chart.AppVersion }}" + image: "{{ include "kvisor.imageRepository" (dict "repository" .Values.eventGenerator.image.repository "Values" .Values) }}:{{ .Values.eventGenerator.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.eventGenerator.image.pullPolicy }} args: - "--mode=controller"