Skip to content

Commit fee3d47

Browse files
committed
chore: updated README
1 parent eebf161 commit fee3d47

File tree

4 files changed

+58
-6
lines changed

4 files changed

+58
-6
lines changed

charts/atlantis/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ apiVersion: v1
33
appVersion: v0.36.0
44
description: A Helm chart for Atlantis https://www.runatlantis.io
55
name: atlantis
6-
version: 5.19.0
6+
version: 5.20.0
77
keywords:
88
- terraform
99
home: https://www.runatlantis.io

charts/atlantis/README.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,57 @@ extraManifests:
6868
name: "gcp-cloud-armor-policy-test"
6969
```
7070
71+
## High Availability and Sticky Sessions
72+
73+
When running multiple replicas, enable sticky sessions to keep the browser session (including WebSocket upgrades) routed to the same Atlantis pod.
74+
75+
- Service-level stickiness (ClientIP):
76+
77+
```yaml
78+
service:
79+
sessionAffinity: ClientIP
80+
sessionAffinityConfig:
81+
clientIP:
82+
timeoutSeconds: 10800
83+
```
84+
85+
- If using NGINX Ingress, consider cookie-based affinity and longer WS timeouts:
86+
87+
```yaml
88+
ingress:
89+
annotations:
90+
nginx.ingress.kubernetes.io/affinity: "cookie"
91+
nginx.ingress.kubernetes.io/affinity-mode: "persistent"
92+
nginx.ingress.kubernetes.io/session-cookie-name: "route"
93+
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
94+
nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
95+
```
96+
97+
- If using Gateway API, you can enable cookie persistence via an extra manifest (controller support required):
98+
99+
```yaml
100+
extraManifests:
101+
- apiVersion: gateway.networking.x-k8s.io/v1alpha1
102+
kind: XBackendTrafficPolicy
103+
metadata:
104+
name: atlantis-session-persistence
105+
namespace: ".Release.Namespace"
106+
spec:
107+
targetRefs:
108+
- group: ""
109+
kind: Service
110+
name: atlantis
111+
sessionPersistence:
112+
type: Cookie
113+
sessionName: atlantis-session
114+
idleTimeout: 1h
115+
absoluteTimeout: 24h
116+
cookieConfig:
117+
lifetimeType: Session
118+
```
119+
120+
Optionally, set `service.internalTrafficPolicy: Local` or `Cluster` depending on your environment and how you want internal routing handled.
121+
71122
## Values
72123

73124
| Key | Type | Default | Description |
@@ -186,11 +237,14 @@ extraManifests:
186237
| secret.annotations | object | `{}` | Annotations for the Secrets. Check values.yaml for examples. |
187238
| service.annotations | object | `{}` | |
188239
| service.externalTrafficPolicy | string | `nil` | |
240+
| service.internalTrafficPolicy | string | `nil` | [optional] Internal traffic policy for the Service. One of: Cluster, Local. |
189241
| service.loadBalancerIP | string | `nil` | |
190242
| service.loadBalancerSourceRanges | list | `[]` | |
191243
| service.nodePort | string | `nil` | |
192244
| service.port | int | `80` | |
193245
| service.portName | string | `"atlantis"` | |
246+
| service.sessionAffinity | string | `nil` | [optional] Kubernetes Service sessionAffinity setting. One of: ClientIP, None. |
247+
| service.sessionAffinityConfig | object | `nil` | [optional] Kubernetes Service sessionAffinityConfig. Only applicable when sessionAffinity=ClientIP. |
194248
| service.targetPort | int | `4141` | [optional] Define the port you would like atlantis to run on. Defaults to 4141. |
195249
| service.type | string | `"NodePort"` | |
196250
| serviceAccount.annotations | object | `{}` | Annotations for the Service Account. Check values.yaml for examples. |

charts/atlantis/README.md.gotmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ extraManifests:
9595
kind: XBackendTrafficPolicy
9696
metadata:
9797
name: atlantis-session-persistence
98-
namespace: "{{ .Release.Namespace }}"
98+
namespace: "{{ `.Release.Namespace` }}"
9999
spec:
100100
targetRefs:
101101
- group: ""

charts/atlantis/values.yaml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -313,11 +313,9 @@ service:
313313
# -- (string) [optional] Internal traffic policy for the Service. One of: Cluster, Local.
314314
internalTrafficPolicy: null
315315
# -- (string) [optional] Kubernetes Service sessionAffinity setting. One of: ClientIP, None.
316-
# sessionAffinity: ClientIP
316+
sessionAffinity: null
317317
# -- (object) [optional] Kubernetes Service sessionAffinityConfig. Only applicable when sessionAffinity=ClientIP.
318-
# sessionAffinityConfig:
319-
# clientIP:
320-
# timeoutSeconds: 10800
318+
sessionAffinityConfig: null
321319

322320
podTemplate:
323321
# -- Check values.yaml for examples.

0 commit comments

Comments
 (0)