cloud.abridge.services

Deploying on Kubernetes

Updated 2026-08-28

Once you have a GKE namespace, you deploy with Kustomize manifests. The platform ships a ready-to-copy template set so you don't start from a blank deployment.yaml.

Grab the templates

The templates live in the repo under templates/k8s/. Copy that folder into your service repo (most teams put it in deploy/):

templates/k8s/
  base/                 # deployment, service, SA, config, HPA, PDB, VirtualService
  overlays/staging/     # *.abridge.cafe
  overlays/production/  # *.abridge.services

Make it yours

  1. Replace my-service with your service name across the manifests.
  2. Set the Workload Identity GSA in base/serviceaccount.yaml.
  3. Point the image at your Artifact Registry path in each kustomization.yaml.

Preview and apply

Render the fully-resolved manifests for an environment before anything touches a cluster:

kubectl kustomize templates/k8s/overlays/staging

CI applies these through ConfigSync/ArgoCD, but you can diff locally:

kubectl apply -k templates/k8s/overlays/staging --dry-run=server

What you get by default

  • Istio mesh injection with http-named ports (mTLS + routing).
  • Startup / readiness / liveness probes, so rollouts wait for healthy pods.
  • HPA (CPU 70% / memory 80%, 3→20) and a PodDisruptionBudget.
  • Non-root, read-only-rootfs pods using Workload Identity — no node creds.
  • Zone spread and maxUnavailable: 0 rolling updates.

Trim anything you don't need — for an internal-only service, delete virtualservice.yaml from base/kustomization.yaml.