helm-charts
helm-charts copied to clipboard
Per-service extraEnv supports arbitrary YAML
I need the ability to map secrets to environment variables. Works towards #102 .
A value file like this:
environment:
- name: ROOT_ENV_KEY
value: root1234
searcher:
extraEnv:
- name: SEARCHER_ENV_KEY
value: search123
control_plane:
extraEnv:
- name: CONTROL_PLANE_KEY
value: controlPlane123
indexer:
extraEnv:
- name: INDEXER_KEY
value: indexer123
janitor:
extraEnv:
- name: JANITOR_KEY
value: janitor123
metastore:
extraEnv:
- name: METASTORE_KEY
value: metastore123
yields these kinds of pod definitions:
% helm template meep . -f /tmp/blah.yaml --show-only templates/metastore-deployment.yaml
# snip
env:
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: QW_CONFIG
value: /quickwit/node.yaml
- name: QW_CLUSTER_ID
value: staging-meep-quickwit
- name: QW_NODE_ID
value: "$(POD_NAME)"
- name: QW_PEER_SEEDS
value: meep-quickwit-headless
- name: QW_ADVERTISE_ADDRESS
value: "$(POD_IP)"
- name: QW_CLUSTER_ENDPOINT
value: http://meep-quickwit-metastore.staging.svc.cluster.local:7280
- name: ROOT_ENV_KEY
value: root1234
- name: METASTORE_KEY
value: metastore123
note: it has the global values from environment
but also the service-specific overrides from metastore.extraEnv
and to demonstrate I can do the secret-as-env-value:
janitor:
extraEnv:
- name: JANITOR_KEY
valueFrom:
secretKeyRef:
name: some-secret
key: a-key-in-the-secret
renders out:
env:
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: QW_CONFIG
value: /quickwit/node.yaml
- name: QW_CLUSTER_ID
value: staging-meep-quickwit
- name: QW_NODE_ID
value: "$(POD_NAME)"
- name: QW_PEER_SEEDS
value: meep-quickwit-headless
- name: QW_ADVERTISE_ADDRESS
value: "$(POD_IP)"
- name: QW_CLUSTER_ENDPOINT
value: http://meep-quickwit-metastore.staging.svc.cluster.local:7280
- name: ROOT_ENV_KEY
value: root1234
- name: JANITOR_KEY
valueFrom:
secretKeyRef:
key: a-key-in-the-secret
name: some-secret