Noxus supports several backends for storing and injecting secrets depending on your deployment model.
Kubernetes & OpenShift
Cloud Native
VM / On-Premises
Native Secrets & External Secret Operators - Store values in Kubernetes
Secrets within the relevant namespaces. - Inject via envFrom for all
services or explicit secretKeyRef for specific containers. - Support for
External Secrets Operator to sync from AWS Secrets Manager, HashiCorp
Vault, or Azure Key Vault.
Managed Secret Managers - AWS Secrets Manager / Parameter Store:
Inject via IAM roles for service accounts (IRSA). - GCP Secret Manager:
Access via Workload Identity and direct environment binding. - Azure Key
Vault: Integration via Managed Identities and CSI drivers.
Encrypted Files & Environment - Use protected .env or /env.vm files
with 0600 filesystem permissions. - Support for HashiCorp Vault as a
centralized sidecar or initialization agent. - Systemd-level environment
protection for the noxus service.
For advanced isolation, secrets can be injected into specific worker pools using envSecretRef.
Use Case: A tenant-dedicated worker pool that needs its own LLM API keys, while the shared pool uses the platform defaults.
Implementation: Set worker.pools[<name>].envSecretRef in Helm values to the name of an additional K8s Secret. It is mounted after the shared secret, so its values override any overlapping keys.
Secrets injected into the worker environment are accessible from within the platform itself. Any workflow node, agent tool, or custom plugin running on a worker can read environment variables using the {{secret.MY_SECRET_NAME}} syntax in node configuration fields. This means you can add custom secrets (e.g., a third-party API key) to a worker’s environment and reference them directly from flows and agents without hardcoding credentials in the UI. When using pool-specific secrets via envSecretRef, only workers in that pool will have access to those values — other pools and services will not see them.