Created
August 23, 2025 14:15
-
-
Save imaustink/49a5fe78cbddfde391e235bb5d645ae8 to your computer and use it in GitHub Desktop.
An example of using a Kubernetes Job to set a storage bucket lifecycle policy.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| apiVersion: v1 | |
| kind: ConfigMap | |
| metadata: | |
| name: object-bucket-lifecycle-policy | |
| namespace: n8n-system | |
| data: | |
| lifecycle.json: | | |
| { | |
| "Rules": [ | |
| { | |
| "ID": "expire-binaries", | |
| "Prefix": "", | |
| "Status": "Enabled", | |
| "Expiration": { "Days": 30 } | |
| } | |
| ] | |
| } | |
| --- | |
| apiVersion: batch/v1 | |
| kind: Job | |
| metadata: | |
| name: object-bucket-lifecycle-policy | |
| namespace: n8n-system | |
| spec: | |
| template: | |
| spec: | |
| restartPolicy: OnFailure | |
| containers: | |
| - name: aws-cli | |
| image: amazon/aws-cli:latest | |
| command: | |
| - /bin/bash | |
| - -c | |
| - | | |
| set -e | |
| # Configure AWS CLI | |
| aws configure set aws_access_key_id "$AWS_ACCESS_KEY_ID" | |
| aws configure set aws_secret_access_key "$AWS_SECRET_ACCESS_KEY" | |
| aws configure set default.region us-east-1 | |
| # Apply lifecycle policy using the mounted ConfigMap | |
| aws --endpoint-url "http://rook-ceph-rgw-object-store.ceph-system.svc.cluster.local" \ | |
| s3api put-bucket-lifecycle-configuration \ | |
| --bucket "$BUCKET_NAME" \ | |
| --lifecycle-configuration file:///config/lifecycle.json | |
| echo "Lifecycle policy applied successfully!" | |
| volumeMounts: | |
| - name: lifecycle-policy | |
| mountPath: /config | |
| env: | |
| - name: AWS_ACCESS_KEY_ID | |
| valueFrom: | |
| secretKeyRef: | |
| name: n8n-binaries | |
| key: AWS_ACCESS_KEY_ID | |
| - name: AWS_SECRET_ACCESS_KEY | |
| valueFrom: | |
| secretKeyRef: | |
| name: n8n-binaries | |
| key: AWS_SECRET_ACCESS_KEY | |
| - name: BUCKET_NAME | |
| valueFrom: | |
| configMapKeyRef: | |
| name: n8n-binaries | |
| key: BUCKET_NAME | |
| volumes: | |
| - name: lifecycle-policy | |
| configMap: | |
| name: object-bucket-lifecycle-policy |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment