ed8b080b13
ops(prop): bump preStop sleep to 25s for cloudflared connection drain
...
The ingress is cloudflared (Cloudflare Tunnel), which keeps an HTTP/2
connection pool to upstream Service IPs and reuses connections
aggressively. After a pod is removed from Service endpoints,
cloudflared can still hold in-flight HTTP/2 streams to the dying pod
for a noticeable window — 10 s wasn't enough, deploys still bounced
502 on LiveView reconnect.
Bump preStop sleep 10s → 25s and terminationGracePeriodSeconds 40s →
60s so cloudflared has time to turn over its upstream connections
before Phoenix begins draining.
2026-04-29 14:17:40 -05:00
45d8466808
ops(prop): preStop sleep so Service drains before Phoenix shuts down
...
Deploys were causing 502 Bad Gateway on LiveView reconnect. The kubelet
sent SIGTERM to the old pod and Phoenix immediately stopped accepting
connections, but the Service endpoint controller and ingress hadn't
yet propagated the pod's removal from endpoints — the browser's
reconnect raced the endpoint update and bounced 502 against the dead
pod, then gave up.
Add a 10s preStop sleep on the container and bump
terminationGracePeriodSeconds to 40 so the load balancer has time to
drain this pod before Phoenix begins shutting down.
2026-04-29 14:13:22 -05:00
b66024e0c3
ops(prop): zero-downtime rolling update with single replica
...
maxUnavailable: 1 was killing the only pod before the new one was
ready, taking the site down for the entire image pull + boot window
on every deploy. Switch to maxSurge: 1 / maxUnavailable: 0 so K8s
spins up the replacement and waits for its readinessProbe to pass
before tearing down the old pod.
2026-04-29 13:50:14 -05:00
43db0fb8dd
remove obsolete flux manifest and imagepolicy annotations
2026-04-29 11:00:05 -05:00
FluxCD
06a635e154
chore: update prop image to git.mcintire.me/graham/prop:main-1777300373-610892e [skip ci]
2026-04-27 14:40:47 +00:00
FluxCD
0cf044be30
chore: update prop image to git.mcintire.me/graham/prop:main-1777235702-fe2ecf2 [skip ci]
2026-04-26 20:39:17 +00:00
FluxCD
faa2105861
chore: update prop image to git.mcintire.me/graham/prop:main-1777235105-c0a884d [skip ci]
2026-04-26 20:32:15 +00:00
FluxCD
4b10d63e67
chore: update prop image to git.mcintire.me/graham/prop:main-1777230205-f9e3dd5 [skip ci]
2026-04-26 19:07:55 +00:00
FluxCD
df475a8199
chore: update prop image to git.mcintire.me/graham/prop:main-1777229724-f63e679 [skip ci]
2026-04-26 18:59:35 +00:00
FluxCD
18e6088aa8
chore: update prop image to git.mcintire.me/graham/prop:main-1777227978-488b968 [skip ci]
2026-04-26 18:30:28 +00:00
FluxCD
5094ea0837
chore: update prop image to git.mcintire.me/graham/prop:main-1777227067-ca142d5 [skip ci]
2026-04-26 18:15:24 +00:00
FluxCD
ac98d35330
chore: update prop image to git.mcintire.me/graham/prop:main-1777226288-7105ac6 [skip ci]
2026-04-26 18:02:20 +00:00
FluxCD
1a85a5f540
chore: update prop image to git.mcintire.me/graham/prop:main-1777225924-4f647e7 [skip ci]
2026-04-26 17:55:18 +00:00
FluxCD
87d5175c6f
chore: update prop image to git.mcintire.me/graham/prop:main-1777224612-aaf3115 [skip ci]
2026-04-26 17:34:04 +00:00
FluxCD
031db7befc
chore: update prop image to git.mcintire.me/graham/prop:main-1777223156-82b515e [skip ci]
2026-04-26 17:09:51 +00:00
FluxCD
88d785be50
chore: update prop image to git.mcintire.me/graham/prop:main-1777222350-5e1155f [skip ci]
2026-04-26 16:55:48 +00:00
FluxCD
5d9e9e1084
chore: update prop image to git.mcintire.me/graham/prop:main-1777222118-5a4129f [skip ci]
2026-04-26 16:52:29 +00:00
FluxCD
3b8d87c356
chore: update prop image to git.mcintire.me/graham/prop:main-1777220031-2f060b4 [skip ci]
2026-04-26 16:17:21 +00:00
FluxCD
6710140b72
chore: update prop image to git.mcintire.me/graham/prop:main-1777218902-a290c99 [skip ci]
2026-04-26 15:58:15 +00:00
FluxCD
b17ff838ca
chore: update prop image to git.mcintire.me/graham/prop:main-1777218305-0f15e99 [skip ci]
2026-04-26 15:49:03 +00:00
FluxCD
a150e02cd0
chore: update prop image to git.mcintire.me/graham/prop:main-1777217856-021608d [skip ci]
2026-04-26 15:41:01 +00:00
FluxCD
ff7f369e57
chore: update prop image to git.mcintire.me/graham/prop:main-1777215438-2f46d49 [skip ci]
2026-04-26 15:00:50 +00:00
FluxCD
b2aec7e8c8
chore: update prop image to git.mcintire.me/graham/prop:main-1777213888-3b1a13b [skip ci]
2026-04-26 14:34:35 +00:00
FluxCD
6a79458ea9
chore: update prop image to git.mcintire.me/graham/prop:main-1777212762-7d80bab [skip ci]
2026-04-26 14:16:11 +00:00
FluxCD
3c877b8b8e
chore: update prop image to git.mcintire.me/graham/prop:main-1777212183-2f35005 [skip ci]
2026-04-26 14:10:09 +00:00
FluxCD
ea502ee9e7
chore: update prop image to git.mcintire.me/graham/prop:main-1777158633-0d2cfb6 [skip ci]
2026-04-25 23:18:38 +00:00
FluxCD
5c178ef4b7
chore: update prop image to git.mcintire.me/graham/prop:main-1777157172-eac817c [skip ci]
2026-04-25 22:56:35 +00:00
FluxCD
819bf2e27d
chore: update prop image to git.mcintire.me/graham/prop:main-1777156652-6462acf [skip ci]
2026-04-25 22:40:28 +00:00
FluxCD
c1eabb788f
chore: update prop image to git.mcintire.me/graham/prop:main-1777156190-40cbb40 [skip ci]
2026-04-25 22:33:25 +00:00
FluxCD
f02a5b90e7
chore: update prop image to git.mcintire.me/graham/prop:main-1777155788-9178751 [skip ci]
2026-04-25 22:26:22 +00:00
FluxCD
9b81e776ca
chore: update prop image to git.mcintire.me/graham/prop:main-1777155369-a9a3d22 [skip ci]
2026-04-25 22:18:19 +00:00
FluxCD
ea95ae3596
chore: update prop image to git.mcintire.me/graham/prop:main-1777154970-cbc20d0 [skip ci]
2026-04-25 22:12:14 +00:00
FluxCD
055be81442
chore: update prop image to git.mcintire.me/graham/prop:main-1777153931-771299c [skip ci]
2026-04-25 21:54:10 +00:00
FluxCD
4108a98e5d
chore: update prop image to git.mcintire.me/graham/prop:main-1777153008-c5d6633 [skip ci]
2026-04-25 21:38:59 +00:00
FluxCD
b6fdfdf639
chore: update prop image to git.mcintire.me/graham/prop:main-1777151041-ce9319d [skip ci]
2026-04-25 21:13:54 +00:00
FluxCD
ba6c4100f9
chore: update prop image to git.mcintire.me/graham/prop:main-1777149212-6967614 [skip ci]
2026-04-25 20:35:43 +00:00
FluxCD
2c30682f2f
chore: update prop image to git.mcintire.me/graham/prop:main-1777148470-6170226 [skip ci]
2026-04-25 20:23:32 +00:00
FluxCD
e2bb79bcf6
chore: update prop image to git.mcintire.me/graham/prop:main-1777145817-3a81d05 [skip ci]
2026-04-25 19:46:21 +00:00
FluxCD
c3f1875df8
chore: update prop image to git.mcintire.me/graham/prop:main-1777145135-77bc894 [skip ci]
2026-04-25 19:35:19 +00:00
FluxCD
2ae9befd7f
chore: update prop image to git.mcintire.me/graham/prop:main-1777144814-fb0c4f7 [skip ci]
2026-04-25 19:23:15 +00:00
FluxCD
5a0bd3bbf5
chore: update prop image to git.mcintire.me/graham/prop:main-1777141855-b34b186 [skip ci]
2026-04-25 18:41:06 +00:00
FluxCD
e255fcf3b6
chore: update prop image to git.mcintire.me/graham/prop:main-1777141619-be11749 [skip ci]
2026-04-25 18:29:01 +00:00
FluxCD
7ca9381ba6
chore: update prop image to git.mcintire.me/graham/prop:main-1777139917-9e776a0 [skip ci]
2026-04-25 18:02:52 +00:00
FluxCD
0f21821ca5
chore: update prop image to git.mcintire.me/graham/prop:main-1777137248-e40ade3 [skip ci]
2026-04-25 17:16:34 +00:00
FluxCD
6fa65657ee
chore: update prop image to git.mcintire.me/graham/prop:main-1777132397-6aa91e7 [skip ci]
2026-04-25 15:56:16 +00:00
FluxCD
15050bd2d8
chore: update prop image to git.mcintire.me/graham/prop:main-1777129865-90bf44c [skip ci]
2026-04-25 15:15:58 +00:00
FluxCD
0ebe0e2111
chore: update prop image to git.mcintire.me/graham/prop:main-1777129708-c17f912 [skip ci]
2026-04-25 15:10:50 +00:00
FluxCD
ff5b0acf98
chore: update prop image to git.mcintire.me/graham/prop:main-1777129494-1399658 [skip ci]
2026-04-25 15:07:35 +00:00
FluxCD
8fae4d30bb
chore: update prop image to git.mcintire.me/graham/prop:main-1777128883-938af4d [skip ci]
2026-04-25 14:56:57 +00:00
FluxCD
b525a4c34e
chore: update prop image to git.mcintire.me/graham/prop:main-1777128564-3e458fb [skip ci]
2026-04-25 14:51:55 +00:00