DeploymentPrerequisites
Dapr
Dapr control-plane prerequisites and sidecar-injection expectations
Service-to-service communication runs over Dapr. The chart bundles the Dapr control plane by default (dapr.installControlPlane: true) and installs it into the release namespace.
The Dapr sidecar is injected by a mutating webhook (dapr-sidecar-injector) that only injects into pods created after it is Ready. Because a single helm install creates the control plane and the application pods together, some app pods can start before the injector is ready and come up without a sidecar (1/1 instead of 2/2).
To avoid this on a fresh install, choose one of these paths:
- Install Dapr first (recommended for repeatable installs): set
dapr.installControlPlane: false, install Dapr separately, wait untildapr-sidecar-injectorisReady, then runhelm install. - Single install, then restart: install everything in one go, then run
kubectl -n <ns> rollout restart deploymentonce the control plane is healthy so every pod picks up a sidecar.
See Install troubleshooting → Pods stuck at 1/1 for recovery details.