From 4b417ce212c0fb9b242a52b892e0510b8f1486c5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 18 Dec 2025 17:18:56 +0000 Subject: [PATCH] Release kube-images-sync 0.5.57 --- charts/kube-images-sync-operator/Chart.yaml | 8 +-- .../templates/clusterimage-crd.yaml | 8 +-- .../templates/clusterimageexport-crd.yaml | 23 ++++--- .../templates/deployment.yaml | 58 +++++++++++++----- .../templates/impex-mgrbinding-rbac.yaml | 4 +- .../metrics-auth-raczylobinding-rbac.yaml | 2 +- .../raczylo-com-leaderbinding-rbac.yaml | 2 +- .../templates/sa-metrics-service.yaml | 10 +-- .../templates/serviceaccount.yaml | 4 +- .../templates/servicemonitor.yaml | 31 ++++++++++ charts/kube-images-sync-operator/values.yaml | 23 ++++++- charts/packages/kube-images-sync-0.5.57.tgz | Bin 0 -> 5332 bytes index.yaml | 22 ++++++- 13 files changed, 142 insertions(+), 53 deletions(-) create mode 100644 charts/kube-images-sync-operator/templates/servicemonitor.yaml create mode 100644 charts/packages/kube-images-sync-0.5.57.tgz diff --git a/charts/kube-images-sync-operator/Chart.yaml b/charts/kube-images-sync-operator/Chart.yaml index 02b4d09..fd312e1 100644 --- a/charts/kube-images-sync-operator/Chart.yaml +++ b/charts/kube-images-sync-operator/Chart.yaml @@ -3,16 +3,16 @@ name: kube-images-sync description: | A Helm chart for Kubernetes Images Sync Operator. Kubernetes Images Sync Operator is responsible for backing up and restoring images from a Kubernetes cluster. - It's ultimate goal is to provide synchonization of images between multiple environments, quite often air-gapped. + Its ultimate goal is to provide synchronization of images between multiple environments, quite often air-gapped. It compiles the list of images currently present in the cluster and uploads them to the specified storage. - Whenever new CRD is created - it will try to figure out which images were already uploaded and which are new and + Whenever a new CRD is created - it will try to figure out which images were already uploaded and which are new and upload only the new ones to avoid repetition. type: application -version: 0.5.54 +version: 0.5.57 -appVersion: "0.5.54" +appVersion: "0.5.57" home: https://github.com/lukaszraczylo/kubernetes-images-sync-operator diff --git a/charts/kube-images-sync-operator/templates/clusterimage-crd.yaml b/charts/kube-images-sync-operator/templates/clusterimage-crd.yaml index b8237dd..e75508b 100644 --- a/charts/kube-images-sync-operator/templates/clusterimage-crd.yaml +++ b/charts/kube-images-sync-operator/templates/clusterimage-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: clusterimages.raczylo.com annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.17.1 labels: {{- include "chart.labels" . | nindent 4 }} spec: @@ -124,9 +124,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] \ No newline at end of file diff --git a/charts/kube-images-sync-operator/templates/clusterimageexport-crd.yaml b/charts/kube-images-sync-operator/templates/clusterimageexport-crd.yaml index 562a97d..485daf7 100644 --- a/charts/kube-images-sync-operator/templates/clusterimageexport-crd.yaml +++ b/charts/kube-images-sync-operator/templates/clusterimageexport-crd.yaml @@ -3,7 +3,7 @@ kind: CustomResourceDefinition metadata: name: clusterimageexports.raczylo.com annotations: - controller-gen.kubebuilder.io/version: v0.16.1 + controller-gen.kubebuilder.io/version: v0.17.1 labels: {{- include "chart.labels" . | nindent 4 }} spec: @@ -37,7 +37,8 @@ spec: name: v1 schema: openAPIV3Schema: - description: ClusterImageExport is the Schema for the clusterimageexports API + description: ClusterImageExport is the Schema for the clusterimageexports + API properties: apiVersion: description: |- @@ -108,6 +109,9 @@ spec: type: string type: object maxConcurrentJobs: + default: 5 + maximum: 100 + minimum: 1 type: integer name: type: string @@ -116,7 +120,8 @@ spec: type: string type: array storage: - description: ClusterImageStorageSpec defines the desired state of ClusterImageStorage + description: ClusterImageStorageSpec defines the desired state of + ClusterImageStorage properties: s3: properties: @@ -134,8 +139,8 @@ spec: region: type: string roleARN: - description: RoleARN is the ARN of the role to be used for the - deployment + description: RoleARN is the ARN of the role to be used for + the deployment type: string secretKey: type: string @@ -150,7 +155,7 @@ spec: type: object target: enum: - - file + - FILE - S3 type: string required: @@ -179,9 +184,3 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] \ No newline at end of file diff --git a/charts/kube-images-sync-operator/templates/deployment.yaml b/charts/kube-images-sync-operator/templates/deployment.yaml index 9a54433..2816498 100644 --- a/charts/kube-images-sync-operator/templates/deployment.yaml +++ b/charts/kube-images-sync-operator/templates/deployment.yaml @@ -1,39 +1,61 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: {{ include "chart.fullname" . }}-sa + name: {{ include "chart.fullname" . }}-controller-manager labels: - control-plane: sa + control-plane: controller-manager {{- include "chart.labels" . | nindent 4 }} spec: - replicas: {{ .Values.sa.replicas }} + replicas: {{ .Values.controllerManager.replicas }} selector: matchLabels: - control-plane: sa + control-plane: controller-manager {{- include "chart.selectorLabels" . | nindent 6 }} template: metadata: labels: - control-plane: sa + control-plane: controller-manager {{- include "chart.selectorLabels" . | nindent 8 }} annotations: kubectl.kubernetes.io/default-container: manager spec: + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: kubernetes.io/arch + operator: In + values: + - amd64 + - arm64 + - key: kubernetes.io/os + operator: In + values: + - linux containers: - - args: {{- toYaml .Values.sa.manager.args | nindent 8 }} + - args: + {{- toYaml .Values.controllerManager.manager.args | nindent 8 }} command: - /manager env: + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace - name: POD_SERVICE_ACCOUNT valueFrom: fieldRef: fieldPath: spec.serviceAccountName - name: WORKER_IMAGE - value: {{ quote .Values.sa.manager.env.workerImage }} + value: {{ quote .Values.controllerManager.manager.env.workerImage }} - name: KUBERNETES_CLUSTER_DOMAIN value: {{ quote .Values.kubernetesClusterDomain }} - image: {{ .Values.sa.manager.image.repository }}:{{ .Values.sa.manager.image.tag - | default .Chart.AppVersion }} + image: {{ .Values.controllerManager.manager.image.repository }}:{{ .Values.controllerManager.manager.image.tag | default .Chart.AppVersion }} livenessProbe: httpGet: path: /healthz @@ -41,15 +63,21 @@ spec: initialDelaySeconds: 15 periodSeconds: 20 name: manager + ports: + - containerPort: 8443 + name: https + protocol: TCP readinessProbe: httpGet: path: /readyz port: 8081 initialDelaySeconds: 5 periodSeconds: 10 - resources: {{- toYaml .Values.sa.manager.resources | nindent 10 }} - securityContext: {{- toYaml .Values.sa.manager.containerSecurityContext | nindent - 10 }} - securityContext: {{- toYaml .Values.sa.podSecurityContext | nindent 8 }} - serviceAccountName: {{ include "chart.fullname" . }}-sa - terminationGracePeriodSeconds: 10 \ No newline at end of file + resources: + {{- toYaml .Values.controllerManager.manager.resources | nindent 10 }} + securityContext: + {{- toYaml .Values.controllerManager.manager.containerSecurityContext | nindent 10 }} + securityContext: + {{- toYaml .Values.controllerManager.podSecurityContext | nindent 8 }} + serviceAccountName: {{ include "chart.fullname" . }}-controller-manager + terminationGracePeriodSeconds: 10 diff --git a/charts/kube-images-sync-operator/templates/impex-mgrbinding-rbac.yaml b/charts/kube-images-sync-operator/templates/impex-mgrbinding-rbac.yaml index f18b4cb..0ec5cf7 100644 --- a/charts/kube-images-sync-operator/templates/impex-mgrbinding-rbac.yaml +++ b/charts/kube-images-sync-operator/templates/impex-mgrbinding-rbac.yaml @@ -10,5 +10,5 @@ roleRef: name: '{{ include "chart.fullname" . }}-impex-mgr' subjects: - kind: ServiceAccount - name: '{{ include "chart.fullname" . }}-sa' - namespace: '{{ .Release.Namespace }}' \ No newline at end of file + name: '{{ include "chart.fullname" . }}-controller-manager' + namespace: '{{ .Release.Namespace }}' diff --git a/charts/kube-images-sync-operator/templates/metrics-auth-raczylobinding-rbac.yaml b/charts/kube-images-sync-operator/templates/metrics-auth-raczylobinding-rbac.yaml index 8cc8b88..926db0f 100644 --- a/charts/kube-images-sync-operator/templates/metrics-auth-raczylobinding-rbac.yaml +++ b/charts/kube-images-sync-operator/templates/metrics-auth-raczylobinding-rbac.yaml @@ -10,5 +10,5 @@ roleRef: name: '{{ include "chart.fullname" . }}-metrics-auth-raczylo' subjects: - kind: ServiceAccount - name: '{{ include "chart.fullname" . }}-sa' + name: '{{ include "chart.fullname" . }}-controller-manager' namespace: '{{ .Release.Namespace }}' \ No newline at end of file diff --git a/charts/kube-images-sync-operator/templates/raczylo-com-leaderbinding-rbac.yaml b/charts/kube-images-sync-operator/templates/raczylo-com-leaderbinding-rbac.yaml index 0704e11..c83881e 100644 --- a/charts/kube-images-sync-operator/templates/raczylo-com-leaderbinding-rbac.yaml +++ b/charts/kube-images-sync-operator/templates/raczylo-com-leaderbinding-rbac.yaml @@ -10,5 +10,5 @@ roleRef: name: '{{ include "chart.fullname" . }}-raczylo-com-leader' subjects: - kind: ServiceAccount - name: '{{ include "chart.fullname" . }}-sa' + name: '{{ include "chart.fullname" . }}-controller-manager' namespace: '{{ .Release.Namespace }}' \ No newline at end of file diff --git a/charts/kube-images-sync-operator/templates/sa-metrics-service.yaml b/charts/kube-images-sync-operator/templates/sa-metrics-service.yaml index a32d364..10db04b 100644 --- a/charts/kube-images-sync-operator/templates/sa-metrics-service.yaml +++ b/charts/kube-images-sync-operator/templates/sa-metrics-service.yaml @@ -1,14 +1,14 @@ apiVersion: v1 kind: Service metadata: - name: {{ include "chart.fullname" . }}-sa-metrics-service + name: {{ include "chart.fullname" . }}-metrics-service labels: - control-plane: sa + control-plane: controller-manager {{- include "chart.labels" . | nindent 4 }} spec: - type: {{ .Values.saMetricsService.type }} + type: {{ .Values.metricsService.type }} selector: - control-plane: sa + control-plane: controller-manager {{- include "chart.selectorLabels" . | nindent 4 }} ports: - {{- .Values.saMetricsService.ports | toYaml | nindent 2 }} \ No newline at end of file + {{- .Values.metricsService.ports | toYaml | nindent 2 }} diff --git a/charts/kube-images-sync-operator/templates/serviceaccount.yaml b/charts/kube-images-sync-operator/templates/serviceaccount.yaml index 637f8a8..2e56324 100644 --- a/charts/kube-images-sync-operator/templates/serviceaccount.yaml +++ b/charts/kube-images-sync-operator/templates/serviceaccount.yaml @@ -1,8 +1,8 @@ apiVersion: v1 kind: ServiceAccount metadata: - name: {{ include "chart.fullname" . }}-sa + name: {{ include "chart.fullname" . }}-controller-manager labels: {{- include "chart.labels" . | nindent 4 }} annotations: - {{- toYaml .Values.sa.serviceAccount.annotations | nindent 4 }} \ No newline at end of file + {{- toYaml .Values.controllerManager.serviceAccount.annotations | nindent 4 }} diff --git a/charts/kube-images-sync-operator/templates/servicemonitor.yaml b/charts/kube-images-sync-operator/templates/servicemonitor.yaml new file mode 100644 index 0000000..08c728e --- /dev/null +++ b/charts/kube-images-sync-operator/templates/servicemonitor.yaml @@ -0,0 +1,31 @@ +{{- if .Values.serviceMonitor.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ include "chart.fullname" . }}-metrics + {{- if .Values.serviceMonitor.namespace }} + namespace: {{ .Values.serviceMonitor.namespace }} + {{- end }} + labels: + {{- include "chart.labels" . | nindent 4 }} + {{- with .Values.serviceMonitor.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + endpoints: + - path: /metrics + port: https + scheme: https + interval: {{ .Values.serviceMonitor.interval }} + scrapeTimeout: {{ .Values.serviceMonitor.scrapeTimeout }} + tlsConfig: + insecureSkipVerify: true + bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token + namespaceSelector: + matchNames: + - {{ .Release.Namespace }} + selector: + matchLabels: + control-plane: controller-manager + {{- include "chart.selectorLabels" . | nindent 6 }} +{{- end }} diff --git a/charts/kube-images-sync-operator/values.yaml b/charts/kube-images-sync-operator/values.yaml index 29d2080..7a9f4e6 100644 --- a/charts/kube-images-sync-operator/values.yaml +++ b/charts/kube-images-sync-operator/values.yaml @@ -1,8 +1,11 @@ kubernetesClusterDomain: cluster.local -sa: + +controllerManager: manager: + # Command line arguments for the manager args: - --metrics-bind-address=:8443 + - --metrics-secure - --leader-elect - --health-probe-bind-address=:8081 containerSecurityContext: @@ -14,7 +17,7 @@ sa: workerImage: ghcr.io/lukaszraczylo/kubernetes-images-sync-worker:0.5.54 image: repository: ghcr.io/lukaszraczylo/kubernetes-images-sync-operator - tag: 0.5.54 + tag: "0.5.57" resources: limits: cpu: 500m @@ -27,10 +30,24 @@ sa: replicas: 1 serviceAccount: annotations: {} -saMetricsService: + +# Metrics service configuration +metricsService: ports: - name: https port: 8443 protocol: TCP targetPort: 8443 type: ClusterIP + +# ServiceMonitor for Prometheus Operator integration +serviceMonitor: + enabled: false + # Namespace where ServiceMonitor will be created (defaults to release namespace) + namespace: "" + # Additional labels for ServiceMonitor + labels: {} + # Scrape interval + interval: 30s + # Scrape timeout + scrapeTimeout: 10s diff --git a/charts/packages/kube-images-sync-0.5.57.tgz b/charts/packages/kube-images-sync-0.5.57.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a3c43d0e1998e2630b58ade9c8b8323130c175ec GIT binary patch literal 5332 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 literal 0 HcmV?d00001 diff --git a/index.yaml b/index.yaml index b0ff0a8..8f8acdb 100644 --- a/index.yaml +++ b/index.yaml @@ -260,6 +260,26 @@ entries: - https://github.com/lukaszraczylo/helm-charts/releases/download/jobs-manager-0.0.24/jobs-manager-0.0.24.tgz version: 0.0.24 kube-images-sync: + - apiVersion: v2 + appVersion: 0.5.57 + created: "2025-12-18T17:18:56.31315985Z" + description: 'A Helm chart for Kubernetes Images Sync Operator. Kubernetes Images + Sync Operator is responsible for backing up and restoring images from a Kubernetes + cluster. Its ultimate goal is to provide synchronization of images between multiple + environments, quite often air-gapped. It compiles the list of images currently + present in the cluster and uploads them to the specified storage. Whenever a + new CRD is created - it will try to figure out which images were already uploaded + and which are new and upload only the new ones to avoid repetition. ' + digest: bf4dbd8350ae98b7b0d821ddd1a6a059034bbea6d9270eb3bb65c4de3d6215ba + home: https://github.com/lukaszraczylo/kubernetes-images-sync-operator + maintainers: + - email: github-enquiries@raczylo.com + name: lukaszraczylo + name: kube-images-sync + type: application + urls: + - https://github.com/lukaszraczylo/helm-charts/releases/download/kube-images-sync-0.5.57/kube-images-sync-0.5.57.tgz + version: 0.5.57 - apiVersion: v2 appVersion: 0.5.54 created: "2025-01-14T01:28:32.957456Z" @@ -1260,4 +1280,4 @@ entries: urls: - https://github.com/lukaszraczylo/helm-charts/releases/download/kube-images-sync-0.1.5/kube-images-sync-0.1.5.tgz version: 0.1.5 -generated: "2025-12-17T23:44:28.783297163Z" +generated: "2025-12-18T17:18:56.312562636Z"