Improve helm chart allowing for lock of the worker image

This commit is contained in:
2025-01-13 13:59:18 +00:00
parent 1f8236d396
commit 5649c2863c
6 changed files with 49 additions and 29 deletions
+2 -2
View File
@@ -10,9 +10,9 @@ description: |
type: application type: application
version: 0.2.44 version: 0.5.47
appVersion: "0.2.44" appVersion: "0.5.47"
home: https://github.com/lukaszraczylo/kubernetes-images-sync-operator home: https://github.com/lukaszraczylo/kubernetes-images-sync-operator
+3 -7
View File
@@ -51,12 +51,8 @@ app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }} {{- end }}
{{/* {{/*
Create the name of the service account to use Get the worker image
*/}} */}}
{{- define "chart.serviceAccountName" -}} {{- define "chart.workerImage" -}}
{{- if .Values.serviceAccount.create }} {{- printf "%s:%s" .Values.images.worker.repository .Values.images.worker.tag }}
{{- default (include "chart.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }} {{- end }}
@@ -25,6 +25,12 @@ spec:
- jsonPath: .status.progress - jsonPath: .status.progress
name: Progress name: Progress
type: string type: string
- jsonPath: .status.completedImages
name: Images
type: string
- jsonPath: .status.totalImages
name: Total
type: string
- jsonPath: .metadata.creationTimestamp - jsonPath: .metadata.creationTimestamp
name: Age name: Age
type: date type: date
@@ -159,8 +165,14 @@ spec:
status: status:
description: ClusterImageExportStatus defines the observed state of ClusterImageExport description: ClusterImageExportStatus defines the observed state of ClusterImageExport
properties: properties:
completedImages:
description: Number of images that have completed export
type: integer
progress: progress:
type: string type: string
totalImages:
description: Total number of images to be exported
type: integer
type: object type: object
type: object type: object
served: true served: true
+8 -8
View File
@@ -4,18 +4,18 @@ metadata:
name: {{ include "chart.fullname" . }}-sa name: {{ include "chart.fullname" . }}-sa
labels: labels:
control-plane: sa control-plane: sa
{{- include "chart.labels" . | nindent 4 }} {{- include "chart.labels" . | nindent 4 }}
spec: spec:
replicas: {{ .Values.sa.replicas }} replicas: {{ .Values.sa.replicas }}
selector: selector:
matchLabels: matchLabels:
control-plane: sa control-plane: sa
{{- include "chart.selectorLabels" . | nindent 6 }} {{- include "chart.selectorLabels" . | nindent 6 }}
template: template:
metadata: metadata:
labels: labels:
control-plane: sa control-plane: sa
{{- include "chart.selectorLabels" . | nindent 8 }} {{- include "chart.selectorLabels" . | nindent 8 }}
annotations: annotations:
kubectl.kubernetes.io/default-container: manager kubectl.kubernetes.io/default-container: manager
spec: spec:
@@ -30,8 +30,9 @@ spec:
fieldPath: spec.serviceAccountName fieldPath: spec.serviceAccountName
- name: KUBERNETES_CLUSTER_DOMAIN - name: KUBERNETES_CLUSTER_DOMAIN
value: {{ quote .Values.kubernetesClusterDomain }} value: {{ quote .Values.kubernetesClusterDomain }}
image: {{ .Values.sa.manager.image.repository }}:{{ .Values.sa.manager.image.tag - name: WORKER_IMAGE
| default .Chart.AppVersion }} value: {{ include "chart.workerImage" . }}
image: {{ .Values.images.operator.repository }}:{{ .Values.images.operator.tag | default .Chart.AppVersion }}
livenessProbe: livenessProbe:
httpGet: httpGet:
path: /healthz path: /healthz
@@ -46,8 +47,7 @@ spec:
initialDelaySeconds: 5 initialDelaySeconds: 5
periodSeconds: 10 periodSeconds: 10
resources: {{- toYaml .Values.sa.manager.resources | nindent 10 }} resources: {{- toYaml .Values.sa.manager.resources | nindent 10 }}
securityContext: {{- toYaml .Values.sa.manager.containerSecurityContext | nindent securityContext: {{- toYaml .Values.sa.manager.containerSecurityContext | nindent 10 }}
10 }}
securityContext: {{- toYaml .Values.sa.podSecurityContext | nindent 8 }} securityContext: {{- toYaml .Values.sa.podSecurityContext | nindent 8 }}
serviceAccountName: {{ include "chart.fullname" . }}-sa serviceAccountName: {{ include "chart.fullname" . }}-sa
terminationGracePeriodSeconds: 10 terminationGracePeriodSeconds: 10
+15 -11
View File
@@ -1,18 +1,22 @@
kubernetesClusterDomain: cluster.local kubernetesClusterDomain: cluster.local
images:
operator:
repository: ghcr.io/lukaszraczylo/kubernetes-images-sync-operator
tag: 0.5.47
worker:
repository: ghcr.io/lukaszraczylo/kubernetes-images-sync-worker
tag: 0.5.47
sa: sa:
manager: manager:
args: args:
- --metrics-bind-address=:8443 - --metrics-bind-address=:8443
- --leader-elect - --leader-elect
- --health-probe-bind-address=:8081 - --health-probe-bind-address=:8081
containerSecurityContext: containerSecurityContext:
allowPrivilegeEscalation: false allowPrivilegeEscalation: false
capabilities: capabilities:
drop: drop:
- ALL - ALL
image:
repository: ghcr.io/lukaszraczylo/kubernetes-images-sync-operator
tag: 0.2.44
resources: resources:
limits: limits:
cpu: 500m cpu: 500m
@@ -27,8 +31,8 @@ sa:
annotations: {} annotations: {}
saMetricsService: saMetricsService:
ports: ports:
- name: https - name: https
port: 8443 port: 8443
protocol: TCP protocol: TCP
targetPort: 8443 targetPort: 8443
type: ClusterIP type: ClusterIP
+9 -1
View File
@@ -1,11 +1,19 @@
package shared package shared
import ( import (
"os"
"regexp" "regexp"
"strings" "strings"
) )
var BACKUP_JOB_IMAGE = "ghcr.io/lukaszraczylo/kubernetes-images-sync-worker:1.0.2" var BACKUP_JOB_IMAGE = getWorkerImage()
func getWorkerImage() string {
if img := os.Getenv("WORKER_IMAGE"); img != "" {
return img
}
return "ghcr.io/lukaszraczylo/kubernetes-images-sync-worker:1.0.2" // fallback
}
const ( const (
// AVAILABLE STATUSES // AVAILABLE STATUSES