strong-soccer-41351
10/31/2025, 11:27 AMflyte-core helm deployment using a custom MinIO S3 bucket, without IAM configuration? There's helm chart parameters to pass in accessKey and secretKey but we want to avoid baking long-term credentials into our source code. I checked all the pages under https://docs-legacy.flyte.org/en/latest/deployment/deployment/index.html and https://www.union.ai/docs/v1/flyte/deployment/flyte-deployment/. I also checked the example flyte core chart and read its README.md but I haven't seen if there's alternatives or usages for the accessKey secretKey fieldsfreezing-airport-6809
acceptable-knife-37130
10/31/2025, 2:20 PMvault like hashicorp or a secret manager.
There are multiple ways todo it . Since i dont know your setup i will paste a generic answer below:
Approach
1. Helmfile + envsubst or SOPS + Vault plugin
Secrets are pulled before rendering Helm values
Use Case : CI/CD pipelines or local development
Pros: Simple, no extra components.
Cons: Secrets exist in CI logs or files unless handled carefully.
2. Vault Agent Template
Sidecar or pre-rendered file writes secrets to a local file mounted into Helm
Use Case : Kubernetes-native injection
Pros: Secrets never touch CI/CD or Git.
Cons: Slightly more setup.
3. External Secrets Operator (ESO)
Secrets synced automatically into Kubernetes Secrets, which Helm can reference
Use Case :Recommended for production
Pros: Best for production clusters.
Cons: Requires installing the operator.
Which one you choose depends on your env and secret manager.acceptable-knife-37130
10/31/2025, 2:29 PM# values-template.yaml
s3:
accessKey: "{{ .Values.vault.s3.accessKey }}"
secretKey: "{{ .Values.vault.s3.secretKey }}"
Get the result from vault:
export ACCESS_KEY=$(vault kv get -field=accessKey secret/s3-accessKey)
export SECRET_KEY=$(vault kv get -field=secretKey secret/s3-secretKey)
envsubst < values-template.yaml > values.yaml
After that you can do a helm installstrong-soccer-41351
11/03/2025, 10:47 AMacceptable-knife-37130
11/03/2025, 11:09 AMvault or secret manager
If you do not have a vault or a secret manager then yes you can follow that approach but should be careful as anyone with access to kubernetes admin can see the secret as it’s mounted and base64 encoded.
Ideally devops team should not have access to any secrets that does not concern themstrong-soccer-41351
11/03/2025, 11:13 AMstrong-soccer-41351
11/03/2025, 11:14 AMstrong-soccer-41351
11/03/2025, 11:15 AMacceptable-knife-37130
11/03/2025, 11:42 AMACCESS_KEY=$(kubectl get secret aws-s3-credentials -o jsonpath='{.data.accessKey}' | base64 --decode)
SECRET_KEY=$(kubectl get secret aws-s3-credentials -o jsonpath='{.data.secretKey}' | base64 --decode)
helm upgrade myapp ./chart \
--set s3.accessKey=$ACCESS_KEY \
--set s3.secretKey=$SECRET_KEY
Run it by your security team before implementing your approachstrong-soccer-41351
11/03/2025, 12:19 PMstrong-soccer-41351
11/03/2025, 12:21 PMapiVersion: v1
kind: Secret
metadata:
name: my-secret-name
namespace: default
data:
AWS_ACCESS_KEY_ID: <secret>
AWS_SECRET_ACCESS_KEY: <secret>
and then using the value my-secret-name in the flyte-core helm chartstrong-soccer-41351
11/03/2025, 12:21 PMhelm upgrade wouldn't work for us because we deploy everything through ArgoCD (gitops)acceptable-knife-37130
11/03/2025, 12:37 PM# values.yaml
s3:
secretName: my-secret-name
accessKeyRef: AWS_ACCESS_KEY_ID
secretKeyRef: AWS_SECRET_ACCESS_KEY
# deployment.yaml
env:
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: {{ .Values.s3.secretName }}
key: {{ .Values.s3.accessKeyRef }}
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: {{ .Values.s3.secretName }}
key: {{ .Values.s3.secretKeyRef }}
It has to be testedstrong-soccer-41351
11/03/2025, 1:15 PMclean-glass-36808
11/03/2025, 6:53 PMflyte-core:
storage:
secretName: metadata-storage-config # pragma: allowlist secret
I added it to Flyte in this PR: https://github.com/flyteorg/flyte/pull/6419clean-glass-36808
11/03/2025, 6:54 PMOptionally load the storage configuration from a secret so that sensitive values aren't declared in the values file.clean-glass-36808
11/03/2025, 7:23 PMstrong-soccer-41351
11/03/2025, 9:00 PMstorage.secretName one? do you know? :)clean-glass-36808
11/03/2025, 9:06 PMdeployment or docker