Remove residual platform credentials from Terraform state and unsafe defaults
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 20/100
- Issue type
- Refactor
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- helm, kubernetes, python, terraform
- Domain
- databases, infrastructure, security
Research direction
Read AGENTS.md and docs/architecture/identity-credentials.md first, then compare the current Terraform modules and Dex/GitHub implementation referenced by #384. Map credential owners, consumers, state exposure, upgrade behavior, and recovery before selecting a narrow module slice. Done means the scoped changes preserve credentials across redeploy and upgrades, prevent secret exposure in state, Helm values, logs, and CI, and include the requested regression and access checks.
Written by the indexing model from the issue text.
Description
Milestone: v0.8-beta — On-Premises Beta
Roadmap: #183 · Precedent: #181 (closed identity secret hygiene; documented residual debt), #178 (workload identity classes), #46 (namespace RBAC), #50 (operational recovery), #27 (post-v1 optional external secret stores).
Goal
Make Kubernetes Secrets the supportable default by ensuring OLF does not generate or embed long-lived application secret values in Terraform state, rendered Helm release values, config files or CI diagnostics. A managed external secrets backend is not a prerequisite for v1.
Why
docs/architecture/identity-credentials.md records residual Terraform-observed values for PostgreSQL administrator/per-service passwords, local SeaweedFS S3 credentials, Polaris bootstrap credentials and Superset encryption key, plus legacy default admin passwords. #181 already moved the identity credentials it touched to in-cluster create-if-missing Jobs; the other cases remain real debt. sensitive = true does not remove secret values from Terraform state.
Scope
- Reconcile the inventory with the current Dex/GitHub implementation (#384) and current platform Terraform modules; classify each secret by owner, consumers, namespaces, state/Helm exposure, regeneration, rotation, recovery and data-loss impact. Exclude removed Keycloak/SMTP values once migrated.
- Move remaining generated credentials that must be shared between services to in-cluster provisioned/referenced Kubernetes Secrets (or other documented safe non-Terraform production mechanism). Do not write raw passwords or keys to Terraform outputs/state or rendered chart values. Keep reruns idempotent: redeploy must not rotate credentials.
- Replace insecure out-of-box service administrator passwords/defaults with explicit bootstrap or fail-closed validation, without conflating machine identities with GitHub human SSO.
- Verify existing cluster state containing old values is handled safely during upgrades; document state-history cleanup/recovery and Secret ownership. Migrate by retaining existing values, not silently regenerating them and breaking clients.
- Add regression checks preventing new Terraform
random_password/random_idcredential generation orkubernetes_secretvalue persistence for scoped services; forbid secret values inolflogs, diagnostics, contract outputs and CI. Apply the policy carefully to identifiers that are not secrets. - E2E tests prove access by appropriate service accounts, denied access across stage/namespace boundaries, preserved credentials on redeploy, and an explicit rotation drill for at least one migrated legacy service credential.
- Document the appropriate backup/recovery method for irreplaceable secret material (e.g. encryption keys), integrated with #50 and provider restoration #47. Avoid placing plaintext Secrets in retained diagnostics or unsafe backups.
Acceptance
- Scope inventory matches the actual repository (not only historical Keycloak rows).
- No supported freshly deployed on-prem/local production-mode service requires long-lived plaintext credentials retained in Terraform state or Helm release values.
- No fixed shared default admin password survives the secure deployment path.
- Upgrade from existing state preserves service access and has a rollback procedure.
- Secrets persist across redeploy, with documented safe rotation and recovery; loss of an encryption key is explicitly handled.
- Per-namespace RBAC and secrets-exposure checks from #46/#52 continue to pass.
- No Vault, External Secrets Operator or Secrets Manager is required or deployed.
Boundaries / PR slicing
This is not the optional managed secret store feature (#27), a new SSO subsystem, or generic Kubernetes control-plane hardening. Split implementation into narrow PRs by credential-owning module (e.g. DB, storage/catalog, application encryption and service-admin bootstrap); keep the cross-cutting inventory/checks as a separate small PR. Review AGENTS.md first.
- Dominant language
- Python
- Stars
- 26
- Forks
- 6
- Avg merge
- 12h 14m
- Merged PRs (30d)
- 133
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from OpenLakeForge/openlakeforge
-
bug good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
OpenLakeForge/openlakeforge#498 ·
Maintainers usually reply within 1 day
-
bug good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
OpenLakeForge/openlakeforge#497 ·
Maintainers usually reply within 1 day
-
enhancement good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
OpenLakeForge/openlakeforge#494 ·
Maintainers usually reply within 1 day
-
good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
OpenLakeForge/openlakeforge#488 ·
Maintainers usually reply within 1 day
-
good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
OpenLakeForge/openlakeforge#487 ·
Maintainers usually reply within 1 day
All issues in OpenLakeForge/openlakeforge
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
-
[Bug]: Queen's own Ollama model loses num_ctx when a running session switches to itPossibly taken @anasamin26 claimed this today. Openbug enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
aden-hive/hive#7508 · 1 comment ·
Maintainers usually reply within 1 day
-
llm translation
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
BerriAI/litellm#47884 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
bug 🐛
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
netalertx/NetAlertX#1856 · 1 reaction ·
Maintainers usually reply within 1 day