Deploying Regatta to Kubernetes

In order to run Regatta cluster, TLS certificates and keys must be generated for the gRPC APIs.

See Regatta, Replication, and Maintenance API definitions in the Helm Chart or regatta leader and regatta follower commands for reference.

Deploying Regatta leader cluster

To deploy Regatta leader cluster, let’s specify the following values:

# values-leader.yaml

# Create Regatta leader cluster with 3 instances.
mode: leader
replicas: 3

# Specify the tables.
tables: testing-table1,testing-table2

replication:
  # Regatta leader cluster's replication gRPC API for the follower clusters to connect to.
  externalDomain: "leader.regatta.example.com"
  port: 8444

Then run the following commands in the core cluster where the Regatta leader cluster should reside:

helm repo add regatta https://jamf.github.io/regatta-helm
helm repo update
helm install regatta-leader regatta/regatta -f values-leader.yaml

This will create a Regatta leader cluster with 3 instances with Replication API for the follower clusters exposed on leader.regatta.example.com:8444.

Connecting follower cluster

Regatta follower cluster can be dynamically added to replicate data from the leader cluster without any intervention done in the leader cluster. Just make sure the leader’s Replication gRPC API is reachable from the edge clusters where the Regatta follower clusters will be deployed.

To deploy Regatta follower cluster and connect it to the leader cluster, let’s specify the following values:

# values-follower.yaml
# Values for the Regatta follower cluster.

# Create Regatta follower cluster with 3 instances.
mode: follower
replicas: 3

replication:
  # Specify the address of the Regatta leader cluster to asynchronously replicate data from.
  leaderAddress: "leader.regatta.example.com:8444"

maintenance:
  server:
    # Optionally, disable maintenance API for the follower cluster.
    enabled: false

Then run the following commands in all the edge clusters where the Regatta follower clusters should reside:

helm repo add regatta https://jamf.github.io/regatta-helm
helm repo update
helm install regatta-follower regatta/regatta -f values-follower.yaml

This will create a Regatta follower cluster with 3 instances asynchronously replicating data from the Regatta leader cluster leader.regatta.example.com:8444. Once the Regatta follower cluster is up and running, it will immediately pull the data from the leader cluster without any manual intervention needed.

Regatta currently supports only static cluster members, therefore the number of members cannot be changed once the cluster is running. To change the number of members in a cluster when creating the cluster, see the Helm Chart.