{{- if .Values.mcJob.enabled }} apiVersion: batch/v1 kind: Job metadata: name: yonote-minio-mc-job labels: app: yonote-minio spec: template: metadata: labels: app: yonote-minio spec: containers: - name: mc-client image: "minio/mc:RELEASE.2025-01-17T23-25-50Z" command: ["/bin/sh", "-c"] args: - | until mc alias set myminio http://yonote-minio:9000 {{ .Values.minio.rootUser }} {{ .Values.minio.rootPassword }}; do echo "Waiting for MinIO to be ready..." sleep 5 done echo "MinIO is ready and alias is set." # Создание бакета if ! mc ls myminio/{{ .Values.global.yonote.config.plain.data.AWS_S3_UPLOAD_BUCKET_NAME }}; then mc mb myminio/{{ .Values.global.yonote.config.plain.data.AWS_S3_UPLOAD_BUCKET_NAME }} echo "Bucket {{ .Values.global.yonote.config.plain.data.AWS_S3_UPLOAD_BUCKET_NAME }} created successfully." else echo "Bucket {{ .Values.global.yonote.config.plain.data.AWS_S3_UPLOAD_BUCKET_NAME }} already exists." fi # Установка политик для бакета cat < /tmp/minio-bucket-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "*" ] }, "Action": [ "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::{{ .Values.global.yonote.config.plain.data.AWS_S3_UPLOAD_BUCKET_NAME }}" ] }, { "Effect": "Allow", "Principal": { "AWS": [ "*" ] }, "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::{{ .Values.global.yonote.config.plain.data.AWS_S3_UPLOAD_BUCKET_NAME }}/*" ] } ] } EOF echo "Bucket policy JSON file created." mc anonymous set-json /tmp/minio-bucket-policy.json myminio/{{ .Values.global.yonote.config.plain.data.AWS_S3_UPLOAD_BUCKET_NAME }} echo "Bucket policy applied." resources: requests: memory: "128Mi" cpu: "100m" limits: memory: "256Mi" cpu: "200m" restartPolicy: OnFailure backoffLimit: 5 ttlSecondsAfterFinished: 180 {{- end }}