From 20b6d82cda893f7e4d0849cc41d314dc468c2475 Mon Sep 17 00:00:00 2001 From: Stephane Pham Date: Thu, 2 Jul 2026 09:27:27 +0200 Subject: [PATCH] Pin production workloads to the dedicated prod node pool Move the snack (website), snackager, and snackpub PRODUCTION deployments off Node Auto-Provisioning and onto the dedicated GKE prod node pool. The prod pool carries the label pool=prod and the taint dedicated=prod:NoSchedule. Each production overlay now applies a deployment-prod-pool.yaml strategic-merge patch that sets: nodeSelector: { pool: prod } tolerations: [{ key: dedicated, value: prod, effect: NoSchedule }] This mirrors the mechanism used for the staging overlays and keeps the pinning as Infrastructure-as-Code. All three workloads are stateless (no PVCs), so scheduling them onto the c4d-backed prod pool is safe. The base deployments carry no nodeSelector, so the patches are purely additive and no $patch: replace is needed. Staging and other environments are untouched. Co-Authored-By: Claude Opus 4.8 (1M context) --- snackager/k8s/production/deployment-prod-pool.yaml | 13 +++++++++++++ snackager/k8s/production/kustomization.yaml | 1 + snackpub/k8s/production/deployment-prod-pool.yaml | 13 +++++++++++++ snackpub/k8s/production/kustomization.yaml | 1 + website/deploy/production/deployment-prod-pool.yaml | 13 +++++++++++++ website/deploy/production/kustomization.yaml | 1 + 6 files changed, 42 insertions(+) create mode 100644 snackager/k8s/production/deployment-prod-pool.yaml create mode 100644 snackpub/k8s/production/deployment-prod-pool.yaml create mode 100644 website/deploy/production/deployment-prod-pool.yaml diff --git a/snackager/k8s/production/deployment-prod-pool.yaml b/snackager/k8s/production/deployment-prod-pool.yaml new file mode 100644 index 000000000..581e09e77 --- /dev/null +++ b/snackager/k8s/production/deployment-prod-pool.yaml @@ -0,0 +1,13 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: snackager +spec: + template: + spec: + nodeSelector: + pool: prod + tolerations: + - key: dedicated + value: prod + effect: NoSchedule diff --git a/snackager/k8s/production/kustomization.yaml b/snackager/k8s/production/kustomization.yaml index 1b15ace5d..f24b3268d 100644 --- a/snackager/k8s/production/kustomization.yaml +++ b/snackager/k8s/production/kustomization.yaml @@ -8,6 +8,7 @@ resources: - external-secret-private-key.yaml patchesStrategicMerge: - deployment-increase-replicas.yaml +- deployment-prod-pool.yaml - service-backend.yaml configMapGenerator: - name: snackager-config diff --git a/snackpub/k8s/production/deployment-prod-pool.yaml b/snackpub/k8s/production/deployment-prod-pool.yaml new file mode 100644 index 000000000..5750a56f4 --- /dev/null +++ b/snackpub/k8s/production/deployment-prod-pool.yaml @@ -0,0 +1,13 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: snackpub +spec: + template: + spec: + nodeSelector: + pool: prod + tolerations: + - key: dedicated + value: prod + effect: NoSchedule diff --git a/snackpub/k8s/production/kustomization.yaml b/snackpub/k8s/production/kustomization.yaml index f9bee4098..cd74a8ab7 100644 --- a/snackpub/k8s/production/kustomization.yaml +++ b/snackpub/k8s/production/kustomization.yaml @@ -8,6 +8,7 @@ resources: patchesStrategicMerge: - service-backend.yaml - deployment-replicas.yaml + - deployment-prod-pool.yaml secretGenerator: - name: snackpub-env behavior: merge diff --git a/website/deploy/production/deployment-prod-pool.yaml b/website/deploy/production/deployment-prod-pool.yaml new file mode 100644 index 000000000..6f89c8153 --- /dev/null +++ b/website/deploy/production/deployment-prod-pool.yaml @@ -0,0 +1,13 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: snack +spec: + template: + spec: + nodeSelector: + pool: prod + tolerations: + - key: dedicated + value: prod + effect: NoSchedule diff --git a/website/deploy/production/kustomization.yaml b/website/deploy/production/kustomization.yaml index 519608074..08ff27436 100644 --- a/website/deploy/production/kustomization.yaml +++ b/website/deploy/production/kustomization.yaml @@ -6,6 +6,7 @@ resources: - vertical-pod-autoscaler.yaml patchesStrategicMerge: - deployment-replicas.yaml +- deployment-prod-pool.yaml - service-backend.yaml configMapGenerator: - name: snack