A Kubernetes ConfigMap stores non-sensitive configuration as key-value pairs that pods can consume as environment variables or mounted files. Using a ConfigMap instead of hardcoding values in the Deployment means environment-specific config (service addresses, ports) can be changed without rebuilding the image, and a single patch in Kustomize updates all consumers at once.
voltnet-rpc-env is the central ConfigMap for all *_GRPC and *_RPC environment variables. voltnet-omni loads the entire ConfigMap via envFrom, so every service address is available as an env var without listing them individually in the Deployment spec.
Port mappings
The base ConfigMap uses :80 throughout — correct for ClusterIP services where kube-proxy handles port translation. The Kustomize dev overlay patches affected variables to pod ports for headless service compatibility:
| Service | Base (UAT/prod) | Dev overlay |
|---|---|---|
voltnet-charge-points | :80 | :8080 |
voltnet-pricing | :80 | :8080 |
voltnet-charging-sessions | :80 | :8080 |
voltnet-broccoli | :80 | :8080 |
voltnet-iam | :80 | :8020 |
IAM listens on a different pod port (:8020) from the others.
See also
- grpc-connection-registry — why pod ports are required with headless services