Give a name to load balancers and increase node count for production (#8939)

Antonio Scandurra and Thorsten created

Release Notes:

- N/A

Co-authored-by: Thorsten <thorsten@zed.dev>

Change summary

.github/workflows/deploy_collab.yml      | 6 ++++++
crates/collab/k8s/collab.template.yml    | 2 ++
crates/collab/k8s/postgrest.template.yml | 1 +
3 files changed, 9 insertions(+)

Detailed changes

.github/workflows/deploy_collab.yml 🔗

@@ -104,8 +104,12 @@ jobs:
           set -eu
           if [[ $GITHUB_REF_NAME = "collab-production" ]]; then
             export ZED_KUBE_NAMESPACE=production
+            export ZED_COLLAB_LOAD_BALANCER_SIZE_UNIT=10
+            export ZED_API_LOAD_BALANCER_SIZE_UNIT=2
           elif [[ $GITHUB_REF_NAME = "collab-staging" ]]; then
             export ZED_KUBE_NAMESPACE=staging
+            export ZED_COLLAB_LOAD_BALANCER_SIZE_UNIT=1
+            export ZED_API_LOAD_BALANCER_SIZE_UNIT=1
           else
             echo "cowardly refusing to deploy from an unknown branch"
             exit 1
@@ -120,11 +124,13 @@ jobs:
           export ZED_IMAGE_ID="registry.digitalocean.com/zed/collab:${GITHUB_SHA}"
 
           export ZED_SERVICE_NAME=collab
+          export ZED_LOAD_BALANCER_SIZE_UNIT=$ZED_COLLAB_LOAD_BALANCER_SIZE_UNIT
           envsubst < crates/collab/k8s/collab.template.yml | kubectl apply -f -
           kubectl -n "$ZED_KUBE_NAMESPACE" rollout status deployment/$ZED_SERVICE_NAME --watch
           echo "deployed ${ZED_SERVICE_NAME} to ${ZED_KUBE_NAMESPACE}"
 
           export ZED_SERVICE_NAME=api
+          export ZED_LOAD_BALANCER_SIZE_UNIT=$ZED_API_LOAD_BALANCER_SIZE_UNIT
           envsubst < crates/collab/k8s/collab.template.yml | kubectl apply -f -
           kubectl -n "$ZED_KUBE_NAMESPACE" rollout status deployment/$ZED_SERVICE_NAME --watch
           echo "deployed ${ZED_SERVICE_NAME} to ${ZED_KUBE_NAMESPACE}"

crates/collab/k8s/collab.template.yml 🔗

@@ -11,6 +11,8 @@ metadata:
   namespace: ${ZED_KUBE_NAMESPACE}
   name: ${ZED_SERVICE_NAME}
   annotations:
+    service.beta.kubernetes.io/do-loadbalancer-name: "${ZED_SERVICE_NAME}-${ZED_KUBE_NAMESPACE}"
+    service.beta.kubernetes.io/do-loadbalancer-size-unit: ${ZED_LOAD_BALANCER_SIZE_UNIT}
     service.beta.kubernetes.io/do-loadbalancer-tls-ports: "443"
     service.beta.kubernetes.io/do-loadbalancer-certificate-id: ${ZED_DO_CERTIFICATE_ID}
     service.beta.kubernetes.io/do-loadbalancer-disable-lets-encrypt-dns-records: "true"

crates/collab/k8s/postgrest.template.yml 🔗

@@ -5,6 +5,7 @@ metadata:
   namespace: ${ZED_KUBE_NAMESPACE}
   name: postgrest
   annotations:
+    service.beta.kubernetes.io/do-loadbalancer-name: "postgrest-${ZED_KUBE_NAMESPACE}"
     service.beta.kubernetes.io/do-loadbalancer-tls-ports: "443"
     service.beta.kubernetes.io/do-loadbalancer-certificate-id: ${ZED_DO_CERTIFICATE_ID}
     service.beta.kubernetes.io/do-loadbalancer-disable-lets-encrypt-dns-records: "true"