Repository navigation
feat: K8s ConfigMap session store - #7
Merged
Merged
Conversation
/tmp/aldaas is ephemeral — lost on pod restart (node eviction, OOM,
liveness probe fail). Client loses workflow name → orders new workflow
→ old one idles until uptime-killer (300s) → resource waste + downtime.
Add K8S_SESSION_STORE env var: when true, store workflow name in
ConfigMap aldaas-session-${ALDAAS_NAME} (persists across pod restarts).
Fallback to /tmp/aldaas when not set (backward compatibility).
Add kubectl binary to Dockerfile (v1.33.0) for ConfigMap operations.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
/tmp/aldaasis ephemeral storage — lost on pod restart (node eviction, OOM, liveness probe fail). aldaas client loses the workflow name → orders a new workflow → old one idles until uptime-killer (300s) → resource waste + downtime.Solution
When
K8S_SESSION_STORE=trueenv var is set, store the workflow name in a Kubernetes ConfigMapaldaas-session-${ALDAAS_NAME}instead of/tmp/aldaas. ConfigMap persists in etcd across pod restarts.Fallback to
/tmp/aldaaswhen env var not set (backward compatibility).Changes
tunnel/aldaas.sh: K8S_SESSION_STORE conditional — ConfigMap read/write vs /tmp filetunnel/Dockerfile: add kubectl v1.33.0 binary (multi-stage build)RBAC
Requires Role + RoleBinding for configmap create/get/update/patch in the deployment namespace. Configured via HELM_UPGRADE_VALUES_FILE customResources (separate change in GitLab CI/CD).
Testing
bash -n tunnel/aldaas.sh— syntax OK (POSIX sh / Alpine ash)