Skip to content

feat(service): secret/configmap env, envFrom, and External Secrets#39

Merged
joy-software merged 1 commit into
mainfrom
feat/42-secret-env
Jun 7, 2026
Merged

feat(service): secret/configmap env, envFrom, and External Secrets#39
joy-software merged 1 commit into
mainfrom
feat/42-secret-env

Conversation

@joy-software

Copy link
Copy Markdown
Contributor

Closes the last audit-backlog item (#42).

What

ElpioService env can now come from secrets, not just literals:

  • env[].valueFromsecretKeyRef / configMapKeyRef (exactly one), with optional.
  • envFrom — bulk-inject a Secret or ConfigMap, with optional prefix.
  • externalSecrets — render an external-secrets.io/v1beta1 ExternalSecret that syncs an external store into a k8s Secret the env entries then consume.

Where

  • models/service.py: new EnvVarSource/KeySelector/EnvFromSource/ExternalSecret models; EnvVar.value now optional with a value-xor-valueFrom validator.
  • engines/base.py: shared pure helpers container_env / container_env_from / external_secret; both Knative and KEDA engines use them (identical behavior, render() stays pure).
  • Both CRD copies kept in sync; operator + Helm RBAC gain external-secrets.io/externalsecrets.
  • New examples/service-secret-env.yaml; unit tests for validation + rendered objects.

191 unit tests pass, ruff clean, helm lint clean.

ElpioService can now source env from Secrets/ConfigMaps (env[].valueFrom),
bulk-inject them (envFrom), and sync a Secret from an external store via the
External Secrets Operator (externalSecrets -> ExternalSecret CR). The env
rendering helpers are shared in engines/base.py so both the Knative and KEDA
engines behave identically; render() stays pure. Updates both CRD copies, adds
operator RBAC for external-secrets.io/externalsecrets, an example manifest, and
unit tests for value/valueFrom/envFrom validation and the rendered objects.
@joy-software joy-software merged commit f6ee3b1 into main Jun 7, 2026
7 of 8 checks passed
@joy-software joy-software deleted the feat/42-secret-env branch June 7, 2026 21:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant