From f74fc704b6de0f8bb82d64d089c04305105606b2 Mon Sep 17 00:00:00 2001 From: Tanguy Herbron Date: Tue, 29 Apr 2025 17:24:03 +0200 Subject: [PATCH] feat(networking): Deploy gitea on primary node to allow faster traffic --- manifests/database-local-service.yaml | 17 +++++++++++++++++ manifests/database.yaml | 8 ++++++++ manifests/deployment.yaml | 16 +++++++++++++++- manifests/kustomization.yaml | 1 + 4 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 manifests/database-local-service.yaml diff --git a/manifests/database-local-service.yaml b/manifests/database-local-service.yaml new file mode 100644 index 0000000..2a48208 --- /dev/null +++ b/manifests/database-local-service.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + cnpg.io/cluster: gitea-db + name: gitea-db-local + namespace: gitea +spec: + internalTrafficPolicy: Local + ports: + - name: postgres + port: 5432 + protocol: TCP + targetPort: 5432 + selector: + cnpg.io/cluster: gitea-db + cnpg.io/instanceRole: primary diff --git a/manifests/database.yaml b/manifests/database.yaml index 8f0a7e7..443c4d0 100644 --- a/manifests/database.yaml +++ b/manifests/database.yaml @@ -51,3 +51,11 @@ spec: monitoring: enablePodMonitor: true + + topologySpreadConstraints: + - maxSkew: 1 + topologyKey: zone + whenUnsatisfiable: DoNotSchedule + labelSelector: + matchLabels: + cnpg.io/cluster: gitea-db diff --git a/manifests/deployment.yaml b/manifests/deployment.yaml index 0ae7190..84d48c3 100644 --- a/manifests/deployment.yaml +++ b/manifests/deployment.yaml @@ -15,6 +15,20 @@ spec: spec: hostname: gitea subdomain: gitea + affinity: + podAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchExpressions: + - key: cnpg.io/cluster + operator: In + values: + - gitea-db + - key: cnpg.io/instanceRole + operator: In + values: + - primary + topologyKey: "kubernetes.io/hostname" containers: - name: gitea image: gitea/gitea:1.23.7 @@ -24,7 +38,7 @@ spec: - name: GITEA__database__DB_TYPE value: "postgres" - name: GITEA__database__HOST - value: "gitea-db-rw.gitea.svc.cluster.local:5432" + value: "gitea-db-local.gitea.svc.cluster.local:5432" - name: GITEA__database__NAME value: "gitea" - name: GITEA__database__SSL_MODE diff --git a/manifests/kustomization.yaml b/manifests/kustomization.yaml index 5477d97..5e983b3 100644 --- a/manifests/kustomization.yaml +++ b/manifests/kustomization.yaml @@ -5,6 +5,7 @@ resources: - namespace.yaml - secrets.yaml - database.yaml + - database-local-service.yaml - database-backup.yaml - service.yaml - servicemonitor.yaml