FEAT(web-apps): enable HA with replica 2 and soft anti-affinity
- Add replicaCount: 2 to all web applications - Add soft pod anti-affinity for node distribution - Update chart template to handle affinity correctly - Configure affinity for todo, portfolio, jovies, jotion, joossam, joossam-dev, jaejadle, jaejadle-dev
This commit is contained in:
@@ -76,7 +76,20 @@ spec:
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{- if and .podAntiAffinity .podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution }}
|
||||
podAntiAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
{{- range .podAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution }}
|
||||
- weight: {{ .weight }}
|
||||
podAffinityTerm:
|
||||
labelSelector:
|
||||
matchLabels:
|
||||
app: {{ include "web-app.fullname" $ }}
|
||||
topologyKey: {{ .podAffinityTerm.topologyKey }}
|
||||
{{- end }}
|
||||
{{- else }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
|
||||
@@ -15,7 +15,7 @@ imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
|
||||
# Replicas
|
||||
replicaCount: 1
|
||||
replicaCount: 2
|
||||
|
||||
# Container port
|
||||
containerPort: 3000
|
||||
@@ -106,5 +106,10 @@ nodeSelector: {}
|
||||
# Tolerations
|
||||
tolerations: []
|
||||
|
||||
# Affinity
|
||||
affinity: {}
|
||||
# Affinity - Soft Anti-Affinity to spread pods across nodes
|
||||
affinity:
|
||||
podAntiAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- weight: 100
|
||||
podAffinityTerm:
|
||||
topologyKey: kubernetes.io/hostname
|
||||
|
||||
@@ -11,7 +11,7 @@ image:
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
|
||||
replicaCount: 1
|
||||
replicaCount: 2
|
||||
containerPort: 3000
|
||||
|
||||
service:
|
||||
@@ -100,3 +100,11 @@ externalSecret:
|
||||
remoteRef:
|
||||
key: jaejadle-dev
|
||||
property: CODE
|
||||
|
||||
# Affinity - Soft Anti-Affinity to spread pods across nodes
|
||||
affinity:
|
||||
podAntiAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- weight: 100
|
||||
podAffinityTerm:
|
||||
topologyKey: kubernetes.io/hostname
|
||||
|
||||
@@ -11,7 +11,7 @@ image:
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
|
||||
replicaCount: 1
|
||||
replicaCount: 2
|
||||
containerPort: 3000
|
||||
|
||||
service:
|
||||
@@ -100,3 +100,11 @@ externalSecret:
|
||||
remoteRef:
|
||||
key: jaejadle
|
||||
property: CODE
|
||||
|
||||
# Affinity - Soft Anti-Affinity to spread pods across nodes
|
||||
affinity:
|
||||
podAntiAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- weight: 100
|
||||
podAffinityTerm:
|
||||
topologyKey: kubernetes.io/hostname
|
||||
|
||||
@@ -11,7 +11,7 @@ image:
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
|
||||
replicaCount: 1
|
||||
replicaCount: 2
|
||||
containerPort: 8000
|
||||
|
||||
service:
|
||||
@@ -56,3 +56,11 @@ healthCheck:
|
||||
|
||||
externalSecret:
|
||||
enabled: false
|
||||
|
||||
# Affinity - Soft Anti-Affinity to spread pods across nodes
|
||||
affinity:
|
||||
podAntiAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- weight: 100
|
||||
podAffinityTerm:
|
||||
topologyKey: kubernetes.io/hostname
|
||||
|
||||
@@ -11,7 +11,7 @@ image:
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
|
||||
replicaCount: 1
|
||||
replicaCount: 2
|
||||
containerPort: 8000
|
||||
|
||||
service:
|
||||
@@ -56,3 +56,11 @@ healthCheck:
|
||||
|
||||
externalSecret:
|
||||
enabled: false
|
||||
|
||||
# Affinity - Soft Anti-Affinity to spread pods across nodes
|
||||
affinity:
|
||||
podAntiAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- weight: 100
|
||||
podAffinityTerm:
|
||||
topologyKey: kubernetes.io/hostname
|
||||
|
||||
@@ -11,7 +11,7 @@ image:
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
|
||||
replicaCount: 1
|
||||
replicaCount: 2
|
||||
containerPort: 3000
|
||||
|
||||
service:
|
||||
@@ -82,3 +82,11 @@ externalSecret:
|
||||
remoteRef:
|
||||
key: jotion
|
||||
property: DATABASE_URL
|
||||
|
||||
# Affinity - Soft Anti-Affinity to spread pods across nodes
|
||||
affinity:
|
||||
podAntiAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- weight: 100
|
||||
podAffinityTerm:
|
||||
topologyKey: kubernetes.io/hostname
|
||||
|
||||
@@ -8,7 +8,7 @@ image:
|
||||
tag: latest # Updated by ArgoCD Image Updater
|
||||
pullPolicy: Always
|
||||
|
||||
replicaCount: 1
|
||||
replicaCount: 2
|
||||
containerPort: 3000
|
||||
|
||||
service:
|
||||
@@ -62,3 +62,11 @@ env:
|
||||
|
||||
externalSecret:
|
||||
enabled: false
|
||||
|
||||
# Affinity - Soft Anti-Affinity to spread pods across nodes
|
||||
affinity:
|
||||
podAntiAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- weight: 100
|
||||
podAffinityTerm:
|
||||
topologyKey: kubernetes.io/hostname
|
||||
|
||||
@@ -10,7 +10,7 @@ image:
|
||||
|
||||
imagePullSecrets: []
|
||||
|
||||
replicaCount: 1
|
||||
replicaCount: 2
|
||||
containerPort: 3000
|
||||
|
||||
service:
|
||||
@@ -66,3 +66,11 @@ env:
|
||||
|
||||
externalSecret:
|
||||
enabled: false
|
||||
|
||||
# Affinity - Soft Anti-Affinity to spread pods across nodes
|
||||
affinity:
|
||||
podAntiAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- weight: 100
|
||||
podAffinityTerm:
|
||||
topologyKey: kubernetes.io/hostname
|
||||
|
||||
@@ -11,7 +11,7 @@ image:
|
||||
# No imagePullSecrets needed (public or already configured)
|
||||
imagePullSecrets: []
|
||||
|
||||
replicaCount: 1
|
||||
replicaCount: 2
|
||||
containerPort: 3000
|
||||
|
||||
service:
|
||||
@@ -82,3 +82,11 @@ externalSecret:
|
||||
remoteRef:
|
||||
key: todo
|
||||
property: DATABASE_URL
|
||||
|
||||
# Affinity - Soft Anti-Affinity to spread pods across nodes
|
||||
affinity:
|
||||
podAntiAffinity:
|
||||
preferredDuringSchedulingIgnoredDuringExecution:
|
||||
- weight: 100
|
||||
podAffinityTerm:
|
||||
topologyKey: kubernetes.io/hostname
|
||||
|
||||
Reference in New Issue
Block a user