What is missing?
I'd like to run multiple Twingate connectors for High Availability. This is easily accomplished now by creating multiple TwingateConnector resources and using some podAntiAffinity and topologySpreadConstraint.
However, this seems less than ideal because the operator will gladly tear down all running instances to apply changes made to the spec, for example when managing multiple connectors with a Helm chart.
Instead, it probably makes more sense to allow the user to specify replicas: 3 on the TwingateConnector and run these under a Deployment with multiple replicas.
I realize there may be some complexity here because each Twingate connector requires its own API key. Maybe a StatefulSet could help?
Why do we need it?
Better high availability. Using a Deployment or StatefulSet (or really anything backed by a ReplicaSet) helps ensure all connectors are online.
What is missing?
I'd like to run multiple Twingate connectors for High Availability. This is easily accomplished now by creating multiple
TwingateConnectorresources and using somepodAntiAffinityandtopologySpreadConstraint.However, this seems less than ideal because the operator will gladly tear down all running instances to apply changes made to the spec, for example when managing multiple connectors with a Helm chart.
Instead, it probably makes more sense to allow the user to specify
replicas: 3on theTwingateConnectorand run these under aDeploymentwith multiple replicas.I realize there may be some complexity here because each Twingate connector requires its own API key. Maybe a
StatefulSetcould help?Why do we need it?
Better high availability. Using a
DeploymentorStatefulSet(or really anything backed by aReplicaSet) helps ensure all connectors are online.