Skip to content

Commit 7b94ce8

Browse files
committed
feat: autorecover from stuck situations
Signed-off-by: Gernot Feichter <[email protected]>
1 parent 74c3e94 commit 7b94ce8

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

hips/hip-9999.md

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,14 @@ After implementation, the --timout parameter will be stored in the helm release
4444
have an indirect impact on possible parallel processes.
4545

4646
`helm ls -a` shows two new columns, regular `helm ls` does NOT show those:
47-
- LOCKED TILL
48-
<datetime> calculated by the helm client: k8s server time + timeout parameter value
49-
- SESSION ID
50-
Unique, random session id generated by the client
47+
- `LOCKED TILL`
48+
datetime calculated by the helm client: current time + timeout parameter value
49+
Originally k8s server time was intended as "current time", but since helm exclusively uses the
50+
client time everywhere else, we do not change that via this HIP, such a refactoring would need
51+
to be performed via a separate HIP against the entire codebase.
52+
- `SESSION ID`
53+
54+
Unique, random session id generated by the client.
5155

5256
Furthermore, if the helm client process gets killed (SIGTERM), it tries to clear the LOCKED TILL value,
5357
SESSION ID and sets the release into a failed state before terminating in order to free the lock.
@@ -88,7 +92,16 @@ None
8892
- [ ] HIP status `accepted'
8993
- [x] Reference implementation
9094
- [x] Test for concurrent upgrade (valid lock should still block concurrent upgrade attempts)
91-
- [ ] Test for kill scenario (forever stuck in pending)
92-
- [ ] Backwards compatibility check (looking good already)
95+
- [x] Test for upgrading from pending state
96+
- [x] Test for upgrading from failed state
97+
- [ ] Decision: Helm ls -> which flag should show the new fields `LOCKED TILL` and `SESSION ID`?
98+
- [ ] Decision: k8s Lease object vs helm relesae secret for storing the `LOCKED TILL` and `SESSION ID`
99+
- [x] Backwards compatibility check (part of acceptance tests repo, looking good already, even when storing the state in the release object)
100+
101+
## References
102+
103+
https://github.com/helm/helm/issues/7476
104+
93105
https://github.com/rancher/rancher/issues/44530
106+
94107
https://github.com/helm/helm/issues/11863

0 commit comments

Comments
 (0)