Upgrading the region package
Upgrading is the version alone. Your values file carries no image references, so a new version moves every platform component together:--reuse-values, switch to --reset-then-reuse-values: plain --reuse-values carries the previous package’s defaults forward and pins every image to the old version.
Running agents are not restarted by an upgrade. Platform changes that affect how agent pods are built (such as agent pod settings) reach each agent on its next deploy.
Pipecat Cloud records the package version each region runs and can tell you when a region falls behind the supported range. Upgrade at least when Daily asks you to; there is otherwise no requirement to track every release.
Certificate lifecycle
Your region authenticates to Pipecat Cloud with certificates issued during enrollment. Two levels exist, and both renew without intervention:- The region’s certificate authority is valid for about a year and is renewed automatically once two-thirds of its lifetime has elapsed. Renewal is authenticated by the current certificate, so no new enrollment token is needed. Its expiry is visible in
pipecat cloud regions showand on the region’s dashboard page. - The region agent’s own certificate is valid for 90 days and is re-issued in the cluster 15 days before expiry. The agent picks the new certificate up without a restart, and existing connections are unaffected.
pipecat-region-ca Secret in pipecat-system, and run helm upgrade with your usual values. The enrollment job runs again and the region reconnects. Nothing about the region record, your agents, or your referenced secrets changes.
High availability
By default the package runs two replicas of the region agent and two of the session activation service, each with aPodDisruptionBudget. Every region agent replica holds its own connection to Pipecat Cloud, and the control plane spreads requests across them, so one replica can be drained or fail without interrupting deploys or session starts. Session records are buffered in the region and delivered when a connection is available, so a full disconnection delays them rather than losing them.
Scale the activation service (pipecat-bot-starter.replicaCount) as WebSocket session volume grows — it relays every frame of every WebSocket session in line.
Rebuilding a cluster
The region record lives in Pipecat Cloud and survives your cluster. To rebuild:- Delete the old cluster (or uninstall the release).
- On the new cluster, install the platform prerequisites, mint a new enrollment token, and stage it.
- Install the package with the same region key and values. Do not re-register the region — the record is unchanged.
- Re-create every referenced secret in the workloads namespace; Pipecat Cloud still lists them, but they report
pendinguntil they exist again. - Redeploy your agents, or wait for the next deploy — deployments are re-created in the new cluster when their services are next deployed.
Retiring a region
Deleting a region is deliberate and refused while anything still depends on it:-
Delete or move every agent deployed to the region (
pipecat cloud agent delete <name>), and let any active sessions end. Deleting an agent removes it from the region first and from Pipecat Cloud only once the region confirms, so if the region is unreachable the delete is refused with a retryable error and nothing changes — bring the region back, or contact Daily if the cluster is permanently gone. -
Delete the region:
The request is refused while the region still has deployed agents or active sessions; the response says which. In the dashboard, use Revoke Region on the region’s page.
-
Uninstall the release from the cluster (
helm uninstall pipecat -n pipecat-system). The workloads namespace and everything you put in it — including your Secrets — are left in place on purpose.
GitOps-managed clusters
The package works under Argo CD, Flux, and similar tools with two adjustments:-
Set
workloadsNamespace.create: falseand manage the workloads namespace yourself, with the Pod Security label described in Requirements. The platform adds one management label to it; do not prune that label. -
The enrollment token is consumed once, at first install. Keep it out of your repository: stage it with
kubectl(or your secrets tooling) before the first sync, exactly as in the setup guide. -
Supply the broker password as a value (
externalBroker.password) from your secrets tooling rather than by Secret name: tools that render withhelm templatehave no cluster to read a Secret from, and the chart refuses to render in that case. See Broker. - The activation secret needs nothing extra: the default pre-install job runs in Argo CD’s pre-sync phase and creates it once. If your pipeline owns all Secrets, see the supply-it-yourself option.