From 736a75d09582fc56e6e0854fde35dad24ce4bbaf Mon Sep 17 00:00:00 2001 From: Lukasz Raczylo Date: Fri, 10 Jan 2025 17:57:48 +0000 Subject: [PATCH] fixup! Add packaged charts --- charts/kube-images-sync-operator/Chart.yaml | 4 +- .../templates/clusterimage-crd.yaml | 200 +++++------ .../templates/clusterimageexport-crd.yaml | 319 +++++++++--------- charts/kube-images-sync-operator/values.yaml | 2 +- index.yaml | 22 +- 5 files changed, 284 insertions(+), 263 deletions(-) diff --git a/charts/kube-images-sync-operator/Chart.yaml b/charts/kube-images-sync-operator/Chart.yaml index 1e97e40..99db7c8 100644 --- a/charts/kube-images-sync-operator/Chart.yaml +++ b/charts/kube-images-sync-operator/Chart.yaml @@ -10,9 +10,9 @@ description: | type: application -version: 0.5.3 +version: 0.5.4 -appVersion: "0.5.3" +appVersion: "0.5.4" 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 ba9498e..ad31e13 100644 --- a/charts/kube-images-sync-operator/templates/clusterimage-crd.yaml +++ b/charts/kube-images-sync-operator/templates/clusterimage-crd.yaml @@ -4,10 +4,8 @@ metadata: name: clusterimages.raczylo.com annotations: controller-gen.kubebuilder.io/version: v0.16.1 - "helm.sh/hook": pre-install,pre-upgrade - "helm.sh/hook-weight": "-5" labels: - app: kubernetes-images-sync-operator + {{- include "chart.labels" . | nindent 4 }} spec: group: raczylo.com names: @@ -17,106 +15,110 @@ spec: singular: clusterimage scope: Namespaced versions: - - additionalPrinterColumns: - - jsonPath: .spec.image - name: Image - type: string - - jsonPath: .spec.storage - name: Storage - type: string - - jsonPath: .spec.exportPath - name: Path - type: string - - jsonPath: .status.versionCount - name: Versions - type: integer - - jsonPath: .status.lastUpdated - name: Last Updated - type: date - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1 - schema: - openAPIV3Schema: - description: ClusterImage is the Schema for the clusterimages API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: ClusterImageSpec defines the desired state of ClusterImage - properties: - exportPath: - description: ExportPath defines the base path where images will be stored - type: string - image: - description: Image is the base name of the container image without tag/sha - type: string - imageNamespace: - description: ImageNamespace defines the namespace where the image is located - type: string - imagePullSecrets: - description: ImagePullSecrets are references to secrets to use for pulling images - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - type: object - x-kubernetes-map-type: atomic - type: array - jobAnnotations: - additionalProperties: - type: string - description: JobAnnotations are optional annotations to add to export jobs + - additionalPrinterColumns: + - jsonPath: .spec.image + name: Image + type: string + - jsonPath: .spec.storage + name: Storage + type: string + - jsonPath: .spec.exportPath + name: Path + type: string + - jsonPath: .status.versionCount + name: Versions + type: integer + - jsonPath: .status.lastUpdated + name: Last Updated + type: date + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1 + schema: + openAPIV3Schema: + description: ClusterImage is the Schema for the clusterimages API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: ClusterImageSpec defines the desired state of ClusterImage + properties: + exportPath: + description: ExportPath defines the base path where images will be stored + type: string + image: + description: Image is the base name of the container image without tag/sha + type: string + imageNamespace: + description: ImageNamespace defines the namespace where the image is + located + type: string + imagePullSecrets: + description: ImagePullSecrets are references to secrets to use for pulling + images + items: + description: |- + LocalObjectReference contains enough information to let you locate the + referenced object inside the same namespace. + properties: + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + type: string type: object - storage: - description: Storage defines where the image should be stored + x-kubernetes-map-type: atomic + type: array + jobAnnotations: + additionalProperties: type: string - type: object - status: - description: ClusterImageStatus defines the observed state of ClusterImage - properties: - lastUpdated: - description: LastUpdated is when the last version was added/updated - format: date-time - type: string - versionCount: - description: VersionCount is the number of versions tracked for this image - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} + description: JobAnnotations are optional annotations to add to export + jobs + type: object + storage: + description: Storage defines where the image should be stored + type: string + type: object + status: + description: ClusterImageStatus defines the observed state of ClusterImage + properties: + lastUpdated: + description: LastUpdated is when the last version was added/updated + format: date-time + type: string + versionCount: + description: VersionCount is the number of versions tracked for this + image + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} status: acceptedNames: kind: "" plural: "" conditions: [] - storedVersions: [] + 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 ca49a92..562a97d 100644 --- a/charts/kube-images-sync-operator/templates/clusterimageexport-crd.yaml +++ b/charts/kube-images-sync-operator/templates/clusterimageexport-crd.yaml @@ -4,10 +4,8 @@ metadata: name: clusterimageexports.raczylo.com annotations: controller-gen.kubebuilder.io/version: v0.16.1 - "helm.sh/hook": pre-install,pre-upgrade - "helm.sh/hook-weight": "-5" labels: - app: kubernetes-images-sync-operator + {{- include "chart.labels" . | nindent 4 }} spec: group: raczylo.com names: @@ -17,172 +15,173 @@ spec: singular: clusterimageexport scope: Namespaced versions: - - additionalPrinterColumns: - - jsonPath: .spec.basePath - name: BasePath - type: string - - jsonPath: .spec.storage.target - name: Storage - type: string - - jsonPath: .status.progress - name: Progress - type: string - - jsonPath: .status.completedImages - name: Images - type: string - - jsonPath: .status.totalImages - name: Total - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1 - schema: - openAPIV3Schema: - description: ClusterImageExport is the Schema for the clusterimageexports API - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: ClusterImageExportSpec defines the desired state of ClusterImageExport - properties: - additionalImages: - items: - type: string - type: array - basePath: - description: Base path for the export - both file and S3 - maxLength: 255 - minLength: 1 + - additionalPrinterColumns: + - jsonPath: .spec.basePath + name: BasePath + type: string + - jsonPath: .spec.storage.target + name: Storage + type: string + - jsonPath: .status.progress + name: Progress + type: string + - jsonPath: .status.completedImages + name: Images + type: string + - jsonPath: .status.totalImages + name: Total + type: string + - jsonPath: .metadata.creationTimestamp + name: Age + type: date + name: v1 + schema: + openAPIV3Schema: + description: ClusterImageExport is the Schema for the clusterimageexports API + properties: + apiVersion: + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + type: string + kind: + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + type: string + metadata: + type: object + spec: + description: ClusterImageExportSpec defines the desired state of ClusterImageExport + properties: + additionalImages: + items: type: string - createdAt: - format: date-time + type: array + basePath: + description: Base path for the export - both file and S3 + maxLength: 255 + minLength: 1 + type: string + createdAt: + format: date-time + type: string + excludedNamespaces: + items: type: string - excludedNamespaces: - items: - type: string - type: array - excludes: - description: Exclude images which contain these strings - items: - type: string - type: array - imagePullSecrets: - items: - description: |- - LocalObjectReference contains enough information to let you locate the - referenced object inside the same namespace. - properties: - name: - default: "" - description: |- - Name of the referent. - This field is effectively required, but due to backwards compatibility is - allowed to be empty. Instances of this type with an empty value here are - almost certainly wrong. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - type: object - x-kubernetes-map-type: atomic - type: array - includes: - description: Include only images which contain these strings - items: - type: string - type: array - jobAnnotations: - additionalProperties: - type: string - type: object - maxConcurrentJobs: - type: integer - name: + type: array + excludes: + description: Exclude images which contain these strings + items: type: string - namespaces: - items: - type: string - type: array - storage: - description: ClusterImageStorageSpec defines the desired state of ClusterImageStorage + type: array + imagePullSecrets: + items: + description: |- + LocalObjectReference contains enough information to let you locate the + referenced object inside the same namespace. properties: - s3: - properties: - accessKey: - description: S3 bucket credentials - type: string - bucket: - description: Bucket name - type: string - endpoint: - description: |- - Defines the endpoint for the S3 storage - If none specified - default AWS endpoint will be used - type: string - region: - type: string - roleARN: - description: RoleARN is the ARN of the role to be used for the deployment - type: string - secretKey: - type: string - secretName: - description: Defines the secret name for credentials - type: string - useRole: - type: boolean - required: - - bucket - - region - type: object - target: - enum: - - file - - S3 + name: + default: "" + description: |- + Name of the referent. + This field is effectively required, but due to backwards compatibility is + allowed to be empty. Instances of this type with an empty value here are + almost certainly wrong. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string - required: - - target type: object - required: - - basePath - - maxConcurrentJobs - - name - - storage - type: object - status: - description: ClusterImageExportStatus defines the observed state of ClusterImageExport - properties: - completedImages: - description: Number of images that have completed export - type: integer - progress: + x-kubernetes-map-type: atomic + type: array + includes: + description: Include only images which contain these strings + items: type: string - totalImages: - description: Total number of images to be exported - type: integer - type: object - type: object - served: true - storage: true - subresources: - status: {} + type: array + jobAnnotations: + additionalProperties: + type: string + type: object + maxConcurrentJobs: + type: integer + name: + type: string + namespaces: + items: + type: string + type: array + storage: + description: ClusterImageStorageSpec defines the desired state of ClusterImageStorage + properties: + s3: + properties: + accessKey: + description: S3 bucket credentials + type: string + bucket: + description: Bucket name + type: string + endpoint: + description: |- + Defines the endpoint for the S3 storage + If none specified - default AWS endpoint will be used + type: string + region: + type: string + roleARN: + description: RoleARN is the ARN of the role to be used for the + deployment + type: string + secretKey: + type: string + secretName: + description: Defines the secret name for credentials + type: string + useRole: + type: boolean + required: + - bucket + - region + type: object + target: + enum: + - file + - S3 + type: string + required: + - target + type: object + required: + - basePath + - maxConcurrentJobs + - name + - storage + type: object + status: + description: ClusterImageExportStatus defines the observed state of ClusterImageExport + properties: + completedImages: + description: Number of images that have completed export + type: integer + progress: + type: string + totalImages: + description: Total number of images to be exported + type: integer + type: object + type: object + served: true + storage: true + subresources: + status: {} status: acceptedNames: kind: "" plural: "" conditions: [] - storedVersions: [] + storedVersions: [] \ No newline at end of file diff --git a/charts/kube-images-sync-operator/values.yaml b/charts/kube-images-sync-operator/values.yaml index 41a197e..4958338 100644 --- a/charts/kube-images-sync-operator/values.yaml +++ b/charts/kube-images-sync-operator/values.yaml @@ -12,7 +12,7 @@ sa: - ALL image: repository: ghcr.io/lukaszraczylo/kubernetes-images-sync-operator - tag: 0.5.3 + tag: 0.5.4 resources: limits: cpu: 500m diff --git a/index.yaml b/index.yaml index ef66f1b..d4a07c7 100644 --- a/index.yaml +++ b/index.yaml @@ -92,6 +92,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.4 + created: "2025-01-10T17:56:36.245164Z" + 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. 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 upload only the new ones to avoid repetition. ' + digest: 0ad564950077d74d136fc88452af89d5c3c27050d3daf4f6efcb96567f0f1aa0 + 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.4/kube-images-sync-0.5.4.tgz + version: 0.5.4 - apiVersion: v2 appVersion: 0.5.3 created: "2025-01-10T17:40:47.740886Z" @@ -952,4 +972,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-01-10T17:40:47.741141Z" +generated: "2025-01-10T17:56:36.245918Z"