Release kube-images-sync 0.5.57

This commit is contained in:
github-actions[bot]
2025-12-18 17:18:56 +00:00
parent 0ce1bea77d
commit 4b417ce212
13 changed files with 142 additions and 53 deletions
+4 -4
View File
@@ -3,16 +3,16 @@ name: kube-images-sync
description: | description: |
A Helm chart for Kubernetes Images Sync Operator. A Helm chart for Kubernetes Images Sync Operator.
Kubernetes Images Sync Operator is responsible for backing up and restoring images from a Kubernetes cluster. 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. 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. upload only the new ones to avoid repetition.
type: application 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 home: https://github.com/lukaszraczylo/kubernetes-images-sync-operator
@@ -3,7 +3,7 @@ kind: CustomResourceDefinition
metadata: metadata:
name: clusterimages.raczylo.com name: clusterimages.raczylo.com
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.16.1 controller-gen.kubebuilder.io/version: v0.17.1
labels: labels:
{{- include "chart.labels" . | nindent 4 }} {{- include "chart.labels" . | nindent 4 }}
spec: spec:
@@ -124,9 +124,3 @@ spec:
storage: true storage: true
subresources: subresources:
status: {} status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
@@ -3,7 +3,7 @@ kind: CustomResourceDefinition
metadata: metadata:
name: clusterimageexports.raczylo.com name: clusterimageexports.raczylo.com
annotations: annotations:
controller-gen.kubebuilder.io/version: v0.16.1 controller-gen.kubebuilder.io/version: v0.17.1
labels: labels:
{{- include "chart.labels" . | nindent 4 }} {{- include "chart.labels" . | nindent 4 }}
spec: spec:
@@ -37,7 +37,8 @@ spec:
name: v1 name: v1
schema: schema:
openAPIV3Schema: openAPIV3Schema:
description: ClusterImageExport is the Schema for the clusterimageexports API description: ClusterImageExport is the Schema for the clusterimageexports
API
properties: properties:
apiVersion: apiVersion:
description: |- description: |-
@@ -108,6 +109,9 @@ spec:
type: string type: string
type: object type: object
maxConcurrentJobs: maxConcurrentJobs:
default: 5
maximum: 100
minimum: 1
type: integer type: integer
name: name:
type: string type: string
@@ -116,7 +120,8 @@ spec:
type: string type: string
type: array type: array
storage: storage:
description: ClusterImageStorageSpec defines the desired state of ClusterImageStorage description: ClusterImageStorageSpec defines the desired state of
ClusterImageStorage
properties: properties:
s3: s3:
properties: properties:
@@ -134,8 +139,8 @@ spec:
region: region:
type: string type: string
roleARN: roleARN:
description: RoleARN is the ARN of the role to be used for the description: RoleARN is the ARN of the role to be used for
deployment the deployment
type: string type: string
secretKey: secretKey:
type: string type: string
@@ -150,7 +155,7 @@ spec:
type: object type: object
target: target:
enum: enum:
- file - FILE
- S3 - S3
type: string type: string
required: required:
@@ -179,9 +184,3 @@ spec:
storage: true storage: true
subresources: subresources:
status: {} status: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
@@ -1,39 +1,61 @@
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: {{ include "chart.fullname" . }}-sa name: {{ include "chart.fullname" . }}-controller-manager
labels: labels:
control-plane: sa control-plane: controller-manager
{{- include "chart.labels" . | nindent 4 }} {{- include "chart.labels" . | nindent 4 }}
spec: spec:
replicas: {{ .Values.sa.replicas }} replicas: {{ .Values.controllerManager.replicas }}
selector: selector:
matchLabels: matchLabels:
control-plane: sa control-plane: controller-manager
{{- include "chart.selectorLabels" . | nindent 6 }} {{- include "chart.selectorLabels" . | nindent 6 }}
template: template:
metadata: metadata:
labels: labels:
control-plane: sa control-plane: controller-manager
{{- 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:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/arch
operator: In
values:
- amd64
- arm64
- key: kubernetes.io/os
operator: In
values:
- linux
containers: containers:
- args: {{- toYaml .Values.sa.manager.args | nindent 8 }} - args:
{{- toYaml .Values.controllerManager.manager.args | nindent 8 }}
command: command:
- /manager - /manager
env: env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: POD_SERVICE_ACCOUNT - name: POD_SERVICE_ACCOUNT
valueFrom: valueFrom:
fieldRef: fieldRef:
fieldPath: spec.serviceAccountName fieldPath: spec.serviceAccountName
- name: WORKER_IMAGE - name: WORKER_IMAGE
value: {{ quote .Values.sa.manager.env.workerImage }} value: {{ quote .Values.controllerManager.manager.env.workerImage }}
- 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 image: {{ .Values.controllerManager.manager.image.repository }}:{{ .Values.controllerManager.manager.image.tag | default .Chart.AppVersion }}
| default .Chart.AppVersion }}
livenessProbe: livenessProbe:
httpGet: httpGet:
path: /healthz path: /healthz
@@ -41,15 +63,21 @@ spec:
initialDelaySeconds: 15 initialDelaySeconds: 15
periodSeconds: 20 periodSeconds: 20
name: manager name: manager
ports:
- containerPort: 8443
name: https
protocol: TCP
readinessProbe: readinessProbe:
httpGet: httpGet:
path: /readyz path: /readyz
port: 8081 port: 8081
initialDelaySeconds: 5 initialDelaySeconds: 5
periodSeconds: 10 periodSeconds: 10
resources: {{- toYaml .Values.sa.manager.resources | nindent 10 }} resources:
securityContext: {{- toYaml .Values.sa.manager.containerSecurityContext | nindent {{- toYaml .Values.controllerManager.manager.resources | nindent 10 }}
10 }} securityContext:
securityContext: {{- toYaml .Values.sa.podSecurityContext | nindent 8 }} {{- toYaml .Values.controllerManager.manager.containerSecurityContext | nindent 10 }}
serviceAccountName: {{ include "chart.fullname" . }}-sa securityContext:
{{- toYaml .Values.controllerManager.podSecurityContext | nindent 8 }}
serviceAccountName: {{ include "chart.fullname" . }}-controller-manager
terminationGracePeriodSeconds: 10 terminationGracePeriodSeconds: 10
@@ -10,5 +10,5 @@ roleRef:
name: '{{ include "chart.fullname" . }}-impex-mgr' name: '{{ include "chart.fullname" . }}-impex-mgr'
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: '{{ include "chart.fullname" . }}-sa' name: '{{ include "chart.fullname" . }}-controller-manager'
namespace: '{{ .Release.Namespace }}' namespace: '{{ .Release.Namespace }}'
@@ -10,5 +10,5 @@ roleRef:
name: '{{ include "chart.fullname" . }}-metrics-auth-raczylo' name: '{{ include "chart.fullname" . }}-metrics-auth-raczylo'
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: '{{ include "chart.fullname" . }}-sa' name: '{{ include "chart.fullname" . }}-controller-manager'
namespace: '{{ .Release.Namespace }}' namespace: '{{ .Release.Namespace }}'
@@ -10,5 +10,5 @@ roleRef:
name: '{{ include "chart.fullname" . }}-raczylo-com-leader' name: '{{ include "chart.fullname" . }}-raczylo-com-leader'
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: '{{ include "chart.fullname" . }}-sa' name: '{{ include "chart.fullname" . }}-controller-manager'
namespace: '{{ .Release.Namespace }}' namespace: '{{ .Release.Namespace }}'
@@ -1,14 +1,14 @@
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: {{ include "chart.fullname" . }}-sa-metrics-service name: {{ include "chart.fullname" . }}-metrics-service
labels: labels:
control-plane: sa control-plane: controller-manager
{{- include "chart.labels" . | nindent 4 }} {{- include "chart.labels" . | nindent 4 }}
spec: spec:
type: {{ .Values.saMetricsService.type }} type: {{ .Values.metricsService.type }}
selector: selector:
control-plane: sa control-plane: controller-manager
{{- include "chart.selectorLabels" . | nindent 4 }} {{- include "chart.selectorLabels" . | nindent 4 }}
ports: ports:
{{- .Values.saMetricsService.ports | toYaml | nindent 2 }} {{- .Values.metricsService.ports | toYaml | nindent 2 }}
@@ -1,8 +1,8 @@
apiVersion: v1 apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
metadata: metadata:
name: {{ include "chart.fullname" . }}-sa name: {{ include "chart.fullname" . }}-controller-manager
labels: labels:
{{- include "chart.labels" . | nindent 4 }} {{- include "chart.labels" . | nindent 4 }}
annotations: annotations:
{{- toYaml .Values.sa.serviceAccount.annotations | nindent 4 }} {{- toYaml .Values.controllerManager.serviceAccount.annotations | nindent 4 }}
@@ -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 }}
+20 -3
View File
@@ -1,8 +1,11 @@
kubernetesClusterDomain: cluster.local kubernetesClusterDomain: cluster.local
sa:
controllerManager:
manager: manager:
# Command line arguments for the manager
args: args:
- --metrics-bind-address=:8443 - --metrics-bind-address=:8443
- --metrics-secure
- --leader-elect - --leader-elect
- --health-probe-bind-address=:8081 - --health-probe-bind-address=:8081
containerSecurityContext: containerSecurityContext:
@@ -14,7 +17,7 @@ sa:
workerImage: ghcr.io/lukaszraczylo/kubernetes-images-sync-worker:0.5.54 workerImage: ghcr.io/lukaszraczylo/kubernetes-images-sync-worker:0.5.54
image: image:
repository: ghcr.io/lukaszraczylo/kubernetes-images-sync-operator repository: ghcr.io/lukaszraczylo/kubernetes-images-sync-operator
tag: 0.5.54 tag: "0.5.57"
resources: resources:
limits: limits:
cpu: 500m cpu: 500m
@@ -27,10 +30,24 @@ sa:
replicas: 1 replicas: 1
serviceAccount: serviceAccount:
annotations: {} annotations: {}
saMetricsService:
# Metrics service configuration
metricsService:
ports: ports:
- name: https - name: https
port: 8443 port: 8443
protocol: TCP protocol: TCP
targetPort: 8443 targetPort: 8443
type: ClusterIP 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
Binary file not shown.
+21 -1
View File
@@ -260,6 +260,26 @@ entries:
- https://github.com/lukaszraczylo/helm-charts/releases/download/jobs-manager-0.0.24/jobs-manager-0.0.24.tgz - https://github.com/lukaszraczylo/helm-charts/releases/download/jobs-manager-0.0.24/jobs-manager-0.0.24.tgz
version: 0.0.24 version: 0.0.24
kube-images-sync: 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: [email protected]
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 - apiVersion: v2
appVersion: 0.5.54 appVersion: 0.5.54
created: "2025-01-14T01:28:32.957456Z" created: "2025-01-14T01:28:32.957456Z"
@@ -1260,4 +1280,4 @@ entries:
urls: urls:
- https://github.com/lukaszraczylo/helm-charts/releases/download/kube-images-sync-0.1.5/kube-images-sync-0.1.5.tgz - 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 version: 0.1.5
generated: "2025-12-17T23:44:28.783297163Z" generated: "2025-12-18T17:18:56.312562636Z"