From 714413cabc5a08588167f7c34edc9ddb8bae1dce Mon Sep 17 00:00:00 2001 From: jiuker Date: Sat, 22 Jun 2024 22:21:41 +0800 Subject: [PATCH] add miniojob mc image pull policy/secret add miniojob mc image pull policy/secret --- helm/operator/templates/job.min.io_jobs.yaml | 12 ++++++++++- pkg/apis/job.min.io/v1alpha1/types.go | 21 ++++++++++++++++++- pkg/utils/miniojob/types.go | 9 ++++---- resources/base/crds/job.min.io_miniojobs.yaml | 12 ++++++++++- 4 files changed, 47 insertions(+), 7 deletions(-) diff --git a/helm/operator/templates/job.min.io_jobs.yaml b/helm/operator/templates/job.min.io_jobs.yaml index a9b7ac080d4..9aec296db81 100644 --- a/helm/operator/templates/job.min.io_jobs.yaml +++ b/helm/operator/templates/job.min.io_jobs.yaml @@ -1025,8 +1025,18 @@ spec: - continueOnFailure - stopOnFailure type: string + imagePullPolicy: + type: string + imagePullSecret: + items: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + type: array mcImage: - default: minio/mc:latest + default: quay.io/minio/mc:latest type: string securityContext: properties: diff --git a/pkg/apis/job.min.io/v1alpha1/types.go b/pkg/apis/job.min.io/v1alpha1/types.go index 0e829de6b97..25277da60ab 100644 --- a/pkg/apis/job.min.io/v1alpha1/types.go +++ b/pkg/apis/job.min.io/v1alpha1/types.go @@ -96,9 +96,28 @@ type MinIOJobSpec struct { // mc job image // +optional - // +kubebuilder:default="minio/mc:latest" + // +kubebuilder:default="quay.io/minio/mc:latest" MCImage string `json:"mcImage,omitempty"` + // *Optional* + + // + // The pull policy for the MinIO Docker image. Specify one of the following: + + // + // * `Always` + + // + // * `Never` + + // + // * `IfNotPresent` (Default) + + // + // Refer Kubernetes documentation for details https://kubernetes.io/docs/concepts/containers/images#updating-images + ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"` + + // *Optional* + + // + // Specify the secret key to use for pulling images from a private Docker repository. + + // +optional + ImagePullSecret []corev1.LocalObjectReference `json:"imagePullSecret,omitempty"` + // *Optional* + // // Specify the https://kubernetes.io/docs/tasks/configure-pod-container/security-context/[Security Context] of pods in the pool. The Operator supports only the following pod security fields: + diff --git a/pkg/utils/miniojob/types.go b/pkg/utils/miniojob/types.go index a5259d2d653..e952eaba922 100644 --- a/pkg/utils/miniojob/types.go +++ b/pkg/utils/miniojob/types.go @@ -33,7 +33,7 @@ import ( const ( // DefaultMCImage - job mc image - DefaultMCImage = "minio/mc:latest" + DefaultMCImage = "quay.io/minio/mc:latest" // MinioJobName - job name MinioJobName = "job.min.io/job-name" // MinioJobCRName - job cr name @@ -212,7 +212,7 @@ func (jobCommand *MinIOIntervalJobCommand) createJob(ctx context.Context, k8sCli { Name: "mc", Image: mcImage, - ImagePullPolicy: corev1.PullIfNotPresent, + ImagePullPolicy: jobCR.Spec.ImagePullPolicy, Env: jobCommand.CommandSpec.Env, EnvFrom: baseEnvFrom, Command: jobCommands, @@ -221,8 +221,9 @@ func (jobCommand *MinIOIntervalJobCommand) createJob(ctx context.Context, k8sCli Resources: jobCommand.CommandSpec.Resources, }, }, - SecurityContext: jobCR.Spec.SecurityContext, - Volumes: baseVolumes, + ImagePullSecrets: jobCR.Spec.ImagePullSecret, + SecurityContext: jobCR.Spec.SecurityContext, + Volumes: baseVolumes, }, }, }, diff --git a/resources/base/crds/job.min.io_miniojobs.yaml b/resources/base/crds/job.min.io_miniojobs.yaml index a9b7ac080d4..9aec296db81 100644 --- a/resources/base/crds/job.min.io_miniojobs.yaml +++ b/resources/base/crds/job.min.io_miniojobs.yaml @@ -1025,8 +1025,18 @@ spec: - continueOnFailure - stopOnFailure type: string + imagePullPolicy: + type: string + imagePullSecret: + items: + properties: + name: + type: string + type: object + x-kubernetes-map-type: atomic + type: array mcImage: - default: minio/mc:latest + default: quay.io/minio/mc:latest type: string securityContext: properties: