From 7228dc4ec66db8a7f80b89908fda88aaa6a696f9 Mon Sep 17 00:00:00 2001 From: Rene Luria Date: Wed, 15 Oct 2025 17:11:30 +0200 Subject: [PATCH] chore: add scale-to-zero overlay --- .../external-service.yaml | 14 +++++++ .../http-scaled-object.yaml | 24 ++++++++++++ .../kustomization.yaml | 39 +++++++++++++++++++ .../production-scale-to-zero/remove-pdb.yaml | 5 +++ 4 files changed, 82 insertions(+) create mode 100644 deploy/overlays/production-scale-to-zero/external-service.yaml create mode 100644 deploy/overlays/production-scale-to-zero/http-scaled-object.yaml create mode 100644 deploy/overlays/production-scale-to-zero/kustomization.yaml create mode 100644 deploy/overlays/production-scale-to-zero/remove-pdb.yaml diff --git a/deploy/overlays/production-scale-to-zero/external-service.yaml b/deploy/overlays/production-scale-to-zero/external-service.yaml new file mode 100644 index 0000000..b53a8c7 --- /dev/null +++ b/deploy/overlays/production-scale-to-zero/external-service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + creationTimestamp: null + labels: + app: keda-add-ons-http-interceptor-proxy + name: keda-add-ons-http-interceptor-proxy +spec: + externalName: keda-add-ons-http-interceptor-proxy.keda + selector: + app: keda-add-ons-http-interceptor-proxy + type: ExternalName +status: + loadBalancer: {} diff --git a/deploy/overlays/production-scale-to-zero/http-scaled-object.yaml b/deploy/overlays/production-scale-to-zero/http-scaled-object.yaml new file mode 100644 index 0000000..9525cba --- /dev/null +++ b/deploy/overlays/production-scale-to-zero/http-scaled-object.yaml @@ -0,0 +1,24 @@ +kind: HTTPScaledObject +apiVersion: http.keda.sh/v1alpha1 +metadata: + name: math-exercises +spec: + hosts: + - "math-tables.cl1.parano.ch" + pathPrefixes: + - / + scaleTargetRef: + name: math-exercises-app + kind: Deployment + apiVersion: apps/v1 + service: math-exercises-service + portName: http + replicas: + min: 0 + max: 3 + scaledownPeriod: 60 + scalingMetric: + requestRate: + granularity: 1s + targetValue: 100 + window: 1m diff --git a/deploy/overlays/production-scale-to-zero/kustomization.yaml b/deploy/overlays/production-scale-to-zero/kustomization.yaml new file mode 100644 index 0000000..f495925 --- /dev/null +++ b/deploy/overlays/production-scale-to-zero/kustomization.yaml @@ -0,0 +1,39 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: math-tables +resources: +- ../production +- external-service.yaml +- http-scaled-object.yaml +patches: +- patch: | + [ + { + "op": "remove", + "path": "/spec/replicas" + } + ] + target: + group: apps + version: v1 + kind: Deployment + name: math-exercises-app +- path: remove-pdb.yaml +- patch: | + [ + { + "op": "replace", + "path": "/spec/rules/0/http/paths/0/backend/service/port/number", + "value": 8080 + }, + { + "op": "replace", + "path": "/spec/rules/0/http/paths/0/backend/service/name", + "value": "keda-add-ons-http-interceptor-proxy" + } + ] + target: + group: networking.k8s.io + version: v1 + kind: Ingress + name: math-exercises-ingress diff --git a/deploy/overlays/production-scale-to-zero/remove-pdb.yaml b/deploy/overlays/production-scale-to-zero/remove-pdb.yaml new file mode 100644 index 0000000..89373e3 --- /dev/null +++ b/deploy/overlays/production-scale-to-zero/remove-pdb.yaml @@ -0,0 +1,5 @@ +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + name: math-exercises-pdb +$patch: delete