Synadia Control Plane
Helm Chart
Accessing the Helm Chart
# add the synadia repo (only needs to be run once)
helm repo add synadia https://synadia-io.github.io/helm-charts
# update the synadia repo index (run to get updated chart versions)
helm repo update synadia
# now you can install the synadia/control-plane chart
# note: you will need to configure image pull secrets for this to work
helm upgrade --install control-plane synadia/control-plane
Useful Tools and References
- Chart Values file - lists all possible configuration options
- Login Details - On first run, the
admin
user's credentials will be printed to the logs here:kubectl logs -c syn-cp deployment/control-plane
Common Configuration
Image Pull Secret
By default, you must add an Image Pull Secret that allows you to pull the Control Plane image:
imagePullSecret:
username: my-user
password: my-password
Exposing Control Plane via Ingress
Control Plane web server can optionally be exposed via HTTP(S) using an Ingress.
config:
server:
url: https://cp.nats.io
ingress:
enabled: true
className: nginx
hosts:
- host: cp.nats.io
tlsSecretName: ingress-tls
Full Example
values.yaml
config:
server:
url: https://cp.nats.io
ingress:
enabled: true
className: nginx
hosts:
- host: cp.nats.io
tlsSecretName: ingress-tls
values-secrets.yaml
imagePullSecret:
username: my-user
password: my-password
Deploy
helm upgrade \
--install \
-f values.yaml \
-f values-secrets.yaml \
control-plane \
synadia/control-plane
Deployment Modes
Single Replica Deployment
By default, the Control Plane deployment is a 1-replica Deployment that will create 3 Persistent Volume Claims.
- 1GiB PVC mounted at
/data/encryption
- stores the auto-generated KMS key. This PVC is not needed ifconfig.kms.key
is configured. - 10GiB PVC mounted at
/data/postgres
- stores the internal PostgreSQL Database data. This PVC is not needed if an external PostgreSQL Database atconfig.dataSources.postgres
is configured. - 10GiB PVC mounted at
/data/prometheus
- stores the internal Prometheus Server data. This PVC is not needed if an external Prometheus Server atconfig.dataSources.prometheus
is configured.
HA Deployment
Requirements for an HA Deployment:
- KMS Key URL. URLs for KMS integrations are documented on the GoCloud Secrets website. This script will generate a random base64 key, which can be used as the KMS Key URL:
echo "base64key://$(head -c 32 /dev/urandom | base64)"
- External PostgreSQL Database
- External Prometheus Server
Example Configuration:
config:
kms:
key:
url: your KMS Key URL
dataSources:
postgres:
dsn: your PostgreSQL DSN
prometheus:
url: your Prometheus URL
deployment:
replicas: 2
singleReplicaMode:
enabled: false