Skip to main content
The chart at deploy/helm/keyring deploys the bundled Node server behind a ClusterIP Service. It includes liveness, readiness, and startup probes plus hardened pod and container security contexts.

1. Create the encryption configuration Secret

Create a complete config.yaml from the encryption configuration reference, then store it as a Kubernetes Secret:
Kubernetes Secrets are not encrypted in etcd by default. Enable encryption at rest, restrict Secret RBAC, and consider an external secrets controller or CSI provider for your environment.

2. Create production values

values.production.yaml
runtime.encryptionConfigFile mounts the selected Secret key read-only at /etc/keyring/config.yaml and sets ENCRYPTION_CONFIG to that path. Deploy a collector in the same pod or behind a private service by following the telemetry delivery guide. Keep auditDurability: required in production.

3. Install or upgrade

Review the rendered Deployment, ServiceAccount, Service, and Ingress before applying them.

4. Verify rollout and health

In another terminal:

Workload identity notes

Use EKS Pod Identity and set AWS adapters to credential_source: runtime_environment. Associate the chart’s ServiceAccount with a role that trusts pods.eks.amazonaws.com and grants only the required KMS actions. The chart may keep serviceAccount.automount: false; Pod Identity injects its own projected token.

Default security posture

The chart runs as UID/GID 10001, drops all capabilities, denies privilege escalation, uses a read-only root filesystem, applies RuntimeDefault seccomp, and creates two replicas. Add a namespace-level default-deny NetworkPolicy and allow inbound traffic only from the Composio-facing ingress, with the Composio egress IP allowlist enforced at that edge.