Skip to content

Commit 6942f5c

Browse files
committed
feat(webapp): add topologySpreadConstraints
1 parent 693a63b commit 6942f5c

File tree

3 files changed

+109
-51
lines changed

3 files changed

+109
-51
lines changed

charts/webapp/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ type: application
1414

1515
# This is the chart version. This version number should be incremented each time you make changes
1616
# to the chart and its templates, including the app version.
17-
version: 1.3.0
17+
version: 1.4.0
1818

1919
# This is the version number of the application being deployed. This version number should be
2020
# incremented each time you make changes to the application.
21-
appVersion: 1.29.1
21+
appVersion: 1.29.2

charts/webapp/README.md

Lines changed: 40 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,52 @@
11
# webapp
22

3-
![Version: 1.3.0](https://img.shields.io/badge/Version-1.3.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.29.1](https://img.shields.io/badge/AppVersion-1.29.1-informational?style=flat-square)
3+
![Version: 1.4.0](https://img.shields.io/badge/Version-1.4.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.29.2](https://img.shields.io/badge/AppVersion-1.29.2-informational?style=flat-square)
44

55
A web application
66

77
## Values
88

99
| Key | Type | Default | Description |
1010
|-----|------|---------|-------------|
11-
| affinity | object | `{}` | |
12-
| args | list | `[]` | |
13-
| command | list | `[]` | |
14-
| extraEnvs | list | `[]` | |
15-
| fullnameOverride | string | `""` | |
16-
| image.name | string | `"nginx"` | |
17-
| image.pullPolicy | string | `"Always"` | |
18-
| image.tag | string | `"latest"` | |
19-
| imagePullSecrets | list | `[]` | |
20-
| ingress.annotations | object | `{}` | |
21-
| ingress.className | string | `""` | |
22-
| ingress.enabled | bool | `false` | |
23-
| ingress.hosts | list | `[]` | |
24-
| ingress.tls | list | `[]` | |
25-
| nameOverride | string | `""` | |
26-
| nodeSelector | object | `{}` | |
27-
| podSecurityContext.fsGroup | int | `1000` | |
28-
| probes.liveness.config.httpGet.path | string | `"/"` | |
29-
| probes.liveness.config.httpGet.port | string | `"http"` | |
30-
| probes.liveness.enable | bool | `true` | |
31-
| probes.readiness.config.httpGet.path | string | `"/"` | |
32-
| probes.readiness.config.httpGet.port | string | `"http"` | |
33-
| probes.readiness.enable | bool | `true` | |
34-
| replicaCount | int | `1` | |
35-
| resources | object | `{}` | |
36-
| securityContext | object | `{}` | |
37-
| service.port | int | `80` | |
38-
| service.targetPort | int | `80` | |
39-
| tolerations | list | `[]` | |
40-
| updateStrategy | string | `"RollingUpdate"` | |
11+
| affinity | object | `{}` | Règles d’affinité/anti-affinité (usage avancé) |
12+
| args | list | `[]` | Arguments passés au conteneur (override) |
13+
| command | list | `[]` | Commande du conteneur (override) |
14+
| extraEntrypoints | list | `[]` | Points d'entrée additionnels à exposer dans le conteneur |
15+
| extraEnvs | list | `[]` | Variables d'environnement additionnelles pour le conteneur |
16+
| extraInitContainers | list | `[]` | Conteneurs d'init supplémentaires (avant le conteneur principal) |
17+
| fullnameOverride | string | `""` | Nom complet de surcharge (remplace totalement le nom du chart) |
18+
| image.name | string | `"nginx"` | Référentiel de l'image conteneur |
19+
| image.pullPolicy | string | `"Always"` | Politique de pull de l'image |
20+
| image.tag | string | `"latest"` | Tag de l'image (version) |
21+
| imagePullSecrets | list | `[]` | Secrets d'extraction d'image (pour registres privés) |
22+
| ingress.annotations | object | `{}` | Annotations à appliquer à l'Ingress |
23+
| ingress.className | string | `""` | Nom de l'IngressClass (ex: nginx, traefik). Laisser vide pour utiliser la valeur par défaut du cluster |
24+
| ingress.enabled | bool | `false` | Active la ressource Ingress |
25+
| ingress.hosts | list | `[]` | Configuration des hôtes Ingress |
26+
| ingress.tls | list | `[]` | Configuration TLS de l'Ingress |
27+
| nameOverride | string | `""` | Nom partiel de surcharge (remplace partiellement le nom du chart) |
28+
| nodeSelector | object | `{}` | Sélecteur de nœuds (labels) pour l'ordonnancement |
29+
| podSecurityContext.fsGroup | int | `1000` | fsGroup pour les volumes partagés du pod |
30+
| priorityClass | string | `""` | PriorityClassName pour ce pod (optionnel) |
31+
| probes.liveness.config | object | `{"httpGet":{"path":"/","port":"http"}}` | Configuration de la livenessProbe |
32+
| probes.liveness.config.httpGet.path | string | `"/"` | Chemin sondé pour la livenessProbe |
33+
| probes.liveness.config.httpGet.port | string | `"http"` | Port sondé (nommé ou numérique) |
34+
| probes.liveness.enable | bool | `true` | Active/désactive la livenessProbe |
35+
| probes.readiness.config | object | `{"httpGet":{"path":"/","port":"http"}}` | Configuration de la readinessProbe |
36+
| probes.readiness.config.httpGet.path | string | `"/"` | Chemin sondé pour la readinessProbe |
37+
| probes.readiness.config.httpGet.port | string | `"http"` | Port sondé (nommé ou numérique) |
38+
| probes.readiness.enable | bool | `true` | Active/désactive la readinessProbe |
39+
| replicaCount | int | `1` | Nombre de réplicas du Deployment |
40+
| resources | object | `{}` | Requêtes/Limites de ressources du conteneur |
41+
| securityContext | object | `{}` | Contexte de sécurité appliqué au conteneur principal |
42+
| service.port | int | `80` | Port du Service (exposé dans le cluster) |
43+
| service.targetPort | int | `80` | Port du conteneur ciblé par le Service |
44+
| tolerations | list | `[]` | Tolérations des taints de nœuds |
45+
| topologySpreadConstraints.enabled | bool | `false` | Active la répartition des pods via TopologySpreadConstraints |
46+
| topologySpreadConstraints.maxSkew | int | `1` | Écart maximum autorisé entre domaines topologiques (1 = plus uniforme) |
47+
| topologySpreadConstraints.topologyKey | string | `"kubernetes.io/hostname"` | Clé de topologie sur laquelle répartir Exemples: kubernetes.io/hostname (répartition par nœud), topology.kubernetes.io/zone (répartition par zone) |
48+
| topologySpreadConstraints.whenUnsatisfiable | string | `"DoNotSchedule"` | Comportement quand la contrainte ne peut pas être satisfaite DoNotSchedule = strict (équivalent "hard") ScheduleAnyway = souple (équivalent "soft") |
49+
| updateStrategy | string | `"RollingUpdate"` | Stratégie d'update du Deployment (RollingUpdate|Recreate) |
4150

4251
----------------------------------------------
4352
Autogenerated from chart metadata using [helm-docs v1.14.2](https://github.com/norwoodj/helm-docs/releases/v1.14.2)

charts/webapp/values.yaml

Lines changed: 67 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,90 +1,139 @@
1-
# Default values for opendata.
2-
# This is a YAML-formatted file.
3-
# Declare variables to be passed into your templates.
1+
# Default values for webapp.
42

3+
# -- Nombre de réplicas du Deployment
54
replicaCount: 1
65

76
image:
7+
# -- Référentiel de l'image conteneur
88
name: nginx
9+
# -- Tag de l'image (version)
910
tag: latest
11+
# -- Politique de pull de l'image
1012
pullPolicy: Always
1113

14+
# -- Secrets d'extraction d'image (pour registres privés)
1215
imagePullSecrets: []
1316

17+
# -- Nom partiel de surcharge (remplace partiellement le nom du chart)
1418
nameOverride: ""
19+
# -- Nom complet de surcharge (remplace totalement le nom du chart)
1520
fullnameOverride: ""
1621

22+
# -- Stratégie d'update du Deployment (RollingUpdate|Recreate)
1723
updateStrategy: RollingUpdate
1824

1925
podSecurityContext:
26+
# -- fsGroup pour les volumes partagés du pod
2027
fsGroup: 1000
2128

2229
service:
23-
port: 80
24-
targetPort: 80
30+
# -- Port du Service (exposé dans le cluster)
31+
port: 80
32+
# -- Port du conteneur ciblé par le Service
33+
targetPort: 80
2534

26-
# Configure extra entrypoints
27-
# extraEntrypoints:
35+
# -- Points d'entrée additionnels à exposer dans le conteneur
36+
extraEntrypoints: []
2837
# - name: mqtt
2938
# port: 1883
3039
# targetPort: 1883
3140
# protocol: TCP
3241

42+
# -- Arguments passés au conteneur (override)
3343
args: []
44+
# -- Commande du conteneur (override)
3445
command: []
46+
# -- Variables d'environnement additionnelles pour le conteneur
3547
extraEnvs: []
3648

3749
probes:
3850
liveness:
51+
# -- Active/désactive la livenessProbe
3952
enable: true
53+
# -- Configuration de la livenessProbe
4054
config:
4155
httpGet:
56+
# -- Chemin sondé pour la livenessProbe
4257
path: /
58+
# -- Port sondé (nommé ou numérique)
4359
port: http
4460
readiness:
61+
# -- Active/désactive la readinessProbe
4562
enable: true
63+
# -- Configuration de la readinessProbe
4664
config:
4765
httpGet:
66+
# -- Chemin sondé pour la readinessProbe
4867
path: /
68+
# -- Port sondé (nommé ou numérique)
4969
port: http
5070

51-
securityContext: {}
71+
# -- PriorityClassName pour ce pod (optionnel)
72+
priorityClass: ""
73+
74+
# -- Contexte de sécurité appliqué au conteneur principal
75+
securityContext:
76+
{}
5277
# capabilities:
5378
# drop:
5479
# - ALL
5580
# readOnlyRootFilesystem: true
5681
# runAsNonRoot: true
5782
# runAsUser: 1000
5883

59-
resources: {}
60-
# We usually recommend not to specify default resources and to leave this as a conscious
61-
# choice for the user. This also increases chances charts run on environments with little
62-
# resources, such as Minikube. If you do want to specify resources, uncomment the following
63-
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
84+
# -- Requêtes/Limites de ressources du conteneur
85+
resources:
86+
{}
6487
# limits:
6588
# cpu: 100m
6689
# memory: 128Mi
6790
# requests:
6891
# cpu: 100m
6992
# memory: 128Mi
7093

94+
# -- Sélecteur de nœuds (labels) pour l'ordonnancement
7195
nodeSelector: {}
7296

97+
# -- Tolérations des taints de nœuds
7398
tolerations: []
7499

100+
# -- Règles d’affinité/anti-affinité (usage avancé)
75101
affinity: {}
76102

77-
# Configuration of the ingress to the HTTP server
103+
topologySpreadConstraints:
104+
# -- Active la répartition des pods via TopologySpreadConstraints
105+
enabled: false
106+
# -- Écart maximum autorisé entre domaines topologiques (1 = plus uniforme)
107+
maxSkew: 1
108+
# -- Clé de topologie sur laquelle répartir
109+
# Exemples: kubernetes.io/hostname (répartition par nœud),
110+
# topology.kubernetes.io/zone (répartition par zone)
111+
topologyKey: kubernetes.io/hostname
112+
# -- Comportement quand la contrainte ne peut pas être satisfaite
113+
# DoNotSchedule = strict (équivalent "hard")
114+
# ScheduleAnyway = souple (équivalent "soft")
115+
whenUnsatisfiable: DoNotSchedule
116+
117+
# -- Conteneurs d'init supplémentaires (avant le conteneur principal)
118+
extraInitContainers: []
119+
78120
ingress:
121+
# -- Active la ressource Ingress
79122
enabled: false
123+
# -- Nom de l'IngressClass (ex: nginx, traefik). Laisser vide pour utiliser la valeur par défaut du cluster
80124
className: ""
125+
# -- Annotations à appliquer à l'Ingress
81126
annotations: {}
82-
hosts: []
83-
# - host: kuzzle.example.com
127+
# -- Configuration des hôtes Ingress
128+
hosts:
129+
[]
130+
# - host: webapp.example.com
84131
# paths:
85132
# - path: /
86133
# pathType: Prefix
87-
tls: []
134+
# -- Configuration TLS de l'Ingress
135+
tls:
136+
[]
88137
# - secretName: my-certificate
89138
# hosts:
90-
# - kuzzle.example.com
139+
# - webapp.example.com

0 commit comments

Comments
 (0)