feat(dagster): setting extra env secrets
This commit is contained in:
1
dagster/.gitignore
vendored
1
dagster/.gitignore
vendored
@@ -4,3 +4,4 @@ dagster-minio-external-secret.yaml
|
|||||||
dagster-oauth-external-secret.yaml
|
dagster-oauth-external-secret.yaml
|
||||||
dagster-storage-pvc.yaml
|
dagster-storage-pvc.yaml
|
||||||
dagster-user-code-pvc.yaml
|
dagster-user-code-pvc.yaml
|
||||||
|
dagster-env-external-secret.yaml
|
||||||
|
|||||||
46
dagster/dagster-env-external-secret.gomplate.yaml
Normal file
46
dagster/dagster-env-external-secret.gomplate.yaml
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
apiVersion: external-secrets.io/v1
|
||||||
|
kind: ExternalSecret
|
||||||
|
metadata:
|
||||||
|
name: dagster-env-external-secret
|
||||||
|
namespace: {{ .Env.DAGSTER_NAMESPACE }}
|
||||||
|
spec:
|
||||||
|
refreshInterval: 1h
|
||||||
|
secretStoreRef:
|
||||||
|
name: vault-secret-store
|
||||||
|
kind: ClusterSecretStore
|
||||||
|
target:
|
||||||
|
name: dagster-env-secret
|
||||||
|
creationPolicy: Owner
|
||||||
|
template:
|
||||||
|
data:
|
||||||
|
# Fixed values - customize as needed
|
||||||
|
AWS_ENDPOINT_URL: "http://minio.minio.svc.cluster.local:9000"
|
||||||
|
DESTINATION__POSTGRES__DATA_WRITER__INSERT_VALUES_MAX_ROWS: "10000"
|
||||||
|
# Template values from Vault - reference via {{ .postgres_user }}
|
||||||
|
POSTGRES_USER: "{{ .postgres_user }}"
|
||||||
|
POSTGRES_PASSWORD: "{{ .postgres_password }}"
|
||||||
|
# Add more fixed values here:
|
||||||
|
# SOME_CONFIG_VALUE: "fixed-value"
|
||||||
|
#
|
||||||
|
# Add more Vault references here:
|
||||||
|
# AWS_ACCESS_KEY_ID: "{{ .aws_access_key_id }}"
|
||||||
|
# AWS_SECRET_ACCESS_KEY: "{{ .aws_secret_access_key }}"
|
||||||
|
data:
|
||||||
|
# PostgreSQL configuration - fetch from Vault
|
||||||
|
- secretKey: postgres_user
|
||||||
|
remoteRef:
|
||||||
|
key: postgres/admin
|
||||||
|
property: username
|
||||||
|
- secretKey: postgres_password
|
||||||
|
remoteRef:
|
||||||
|
key: postgres/admin
|
||||||
|
property: password
|
||||||
|
# Add more Vault references here:
|
||||||
|
# - secretKey: aws_access_key_id
|
||||||
|
# remoteRef:
|
||||||
|
# key: minio
|
||||||
|
# property: access_key_id
|
||||||
|
# - secretKey: aws_secret_access_key
|
||||||
|
# remoteRef:
|
||||||
|
# key: minio
|
||||||
|
# property: secret_access_key
|
||||||
@@ -45,6 +45,11 @@ dagsterWebserver:
|
|||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: dagster-user-code-pvc
|
claimName: dagster-user-code-pvc
|
||||||
|
|
||||||
|
{{- if eq (.Env.DAGSTER_ENV_SECRETS_EXIST | default "false") "true" }}
|
||||||
|
envSecrets:
|
||||||
|
- name: dagster-env-secret
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
workspace:
|
workspace:
|
||||||
enabled: true
|
enabled: true
|
||||||
servers: []
|
servers: []
|
||||||
@@ -74,6 +79,11 @@ dagsterDaemon:
|
|||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: dagster-user-code-pvc
|
claimName: dagster-user-code-pvc
|
||||||
|
|
||||||
|
{{- if eq (.Env.DAGSTER_ENV_SECRETS_EXIST | default "false") "true" }}
|
||||||
|
envSecrets:
|
||||||
|
- name: dagster-env-secret
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
env:
|
env:
|
||||||
- name: DAGSTER_HOME
|
- name: DAGSTER_HOME
|
||||||
value: /opt/dagster/dagster_home
|
value: /opt/dagster/dagster_home
|
||||||
@@ -99,14 +109,14 @@ runLauncher:
|
|||||||
- name: user-code
|
- name: user-code
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: dagster-user-code-pvc
|
claimName: dagster-user-code-pvc
|
||||||
{{- if eq (.Env.DAGSTER_STORAGE_TYPE | default "local") "minio" }}
|
|
||||||
envSecrets:
|
envSecrets:
|
||||||
- name: dagster-database-secret
|
- name: dagster-database-secret
|
||||||
|
{{- if eq (.Env.DAGSTER_STORAGE_TYPE | default "local") "minio" }}
|
||||||
- name: dagster-minio-secret
|
- name: dagster-minio-secret
|
||||||
{{- else }}
|
{{- end }}
|
||||||
envSecrets:
|
{{- if eq (.Env.DAGSTER_ENV_SECRETS_EXIST | default "false") "true" }}
|
||||||
- name: dagster-database-secret
|
- name: dagster-env-secret
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
postgresql:
|
postgresql:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|||||||
@@ -148,6 +148,43 @@ delete-oauth-secret:
|
|||||||
@kubectl delete secret dagster-oauth-secret -n ${DAGSTER_NAMESPACE} --ignore-not-found
|
@kubectl delete secret dagster-oauth-secret -n ${DAGSTER_NAMESPACE} --ignore-not-found
|
||||||
@kubectl delete externalsecret dagster-oauth-external-secret -n ${DAGSTER_NAMESPACE} --ignore-not-found
|
@kubectl delete externalsecret dagster-oauth-external-secret -n ${DAGSTER_NAMESPACE} --ignore-not-found
|
||||||
|
|
||||||
|
# Create environment variables secret example (customize as needed)
|
||||||
|
create-env-secrets-example:
|
||||||
|
#!/bin/bash
|
||||||
|
set -euo pipefail
|
||||||
|
echo "Creating Dagster environment secrets example..."
|
||||||
|
echo "This is an example - customize the environment variables as needed"
|
||||||
|
if helm status external-secrets -n ${EXTERNAL_SECRETS_NAMESPACE} &>/dev/null; then
|
||||||
|
echo "External Secrets available. Creating ExternalSecret using template..."
|
||||||
|
echo "Edit dagster-env-external-secret.gomplate.yaml to customize environment variables"
|
||||||
|
kubectl delete externalsecret dagster-env-external-secret -n ${DAGSTER_NAMESPACE} --ignore-not-found
|
||||||
|
kubectl delete secret dagster-env-secret -n ${DAGSTER_NAMESPACE} --ignore-not-found
|
||||||
|
gomplate -f dagster-env-external-secret.gomplate.yaml -o dagster-env-external-secret.yaml
|
||||||
|
kubectl apply -f dagster-env-external-secret.yaml
|
||||||
|
echo "Waiting for environment secret to be ready..."
|
||||||
|
kubectl wait --for=condition=Ready externalsecret/dagster-env-external-secret \
|
||||||
|
-n ${DAGSTER_NAMESPACE} --timeout=60s
|
||||||
|
else
|
||||||
|
echo "External Secrets not available. Creating Kubernetes Secret directly..."
|
||||||
|
POSTGRES_USER="buun"
|
||||||
|
POSTGRES_PASSWORD="buunpass"
|
||||||
|
kubectl delete secret dagster-env-secret -n ${DAGSTER_NAMESPACE} --ignore-not-found
|
||||||
|
kubectl create secret generic dagster-env-secret -n ${DAGSTER_NAMESPACE} \
|
||||||
|
--from-literal=POSTGRES_USER="$POSTGRES_USER" \
|
||||||
|
--from-literal=POSTGRES_PASSWORD="$POSTGRES_PASSWORD"
|
||||||
|
# Add more environment variables here:
|
||||||
|
# --from-literal=AWS_ACCESS_KEY_ID="your_value" \
|
||||||
|
# --from-literal=AWS_SECRET_ACCESS_KEY="your_value"
|
||||||
|
echo "Environment secret created directly in Kubernetes"
|
||||||
|
fi
|
||||||
|
echo "Example environment secrets created successfully"
|
||||||
|
echo "Customize the environment variables in this recipe as needed for your project"
|
||||||
|
|
||||||
|
# Delete environment secrets
|
||||||
|
delete-env-secrets:
|
||||||
|
@kubectl delete secret dagster-env-secret -n ${DAGSTER_NAMESPACE} --ignore-not-found
|
||||||
|
@kubectl delete externalsecret dagster-env-external-secret -n ${DAGSTER_NAMESPACE} --ignore-not-found
|
||||||
|
|
||||||
# Setup MinIO storage for Dagster
|
# Setup MinIO storage for Dagster
|
||||||
setup-minio-storage:
|
setup-minio-storage:
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
@@ -567,6 +604,15 @@ install:
|
|||||||
fi
|
fi
|
||||||
just setup-user-code-pvc
|
just setup-user-code-pvc
|
||||||
|
|
||||||
|
export DAGSTER_ENV_SECRETS_EXIST="false"
|
||||||
|
if kubectl get secret dagster-env-secret -n ${DAGSTER_NAMESPACE} &>/dev/null; then
|
||||||
|
echo "Environment secrets found - will include in deployment"
|
||||||
|
export DAGSTER_ENV_SECRETS_EXIST="true"
|
||||||
|
else
|
||||||
|
echo "No environment secrets found - use 'just dagster::create-env-secrets-example' to create them if needed"
|
||||||
|
export DAGSTER_ENV_SECRETS_EXIST="false"
|
||||||
|
fi
|
||||||
|
|
||||||
just add-helm-repo
|
just add-helm-repo
|
||||||
gomplate -f dagster-values.gomplate.yaml -o dagster-values.yaml
|
gomplate -f dagster-values.gomplate.yaml -o dagster-values.yaml
|
||||||
helm upgrade --install dagster dagster/dagster \
|
helm upgrade --install dagster dagster/dagster \
|
||||||
|
|||||||
Reference in New Issue
Block a user