Skip to content

chore: migrate Helm provider to v3 in bootstrap roots#24

Merged
nbrieussel merged 1 commit into
mainfrom
chore/migrate-helm-provider-v3
Jun 11, 2026
Merged

chore: migrate Helm provider to v3 in bootstrap roots#24
nbrieussel merged 1 commit into
mainfrom
chore/migrate-helm-provider-v3

Conversation

@nbrieussel

Copy link
Copy Markdown
Contributor

Context

The two Terraform bootstrap roots (cluster/local, cluster/scaleway) pinned hashicorp/helm at ~> 2.0 and used its legacy v2 block syntax. Helm provider v3 rewrote the schema to typed nested attributes; the v2 syntax also triggers a false-positive terraform-ls warning (Blocks of type "kubernetes" are not expected here). This migrates both roots to v3 with mechanical, value-preserving edits.

Changes

Both roots (cluster/local, cluster/scaleway):

  • Bump hashicorp/helm ~> 2.0~> 3.0 in version.tf (resolves to 3.2.0).
  • Provider helm block: kubernetes {}kubernetes = {} (values unchanged).
  • helm_release.argocd: set_sensitive {}set_sensitive = [{}].
  • Re-locked .terraform.lock.hcl for darwin_arm64 + linux_amd64 via mise run lock.

Untouched: state-backend, github-ci; no chart/version/values change; no registry/experiments/set/set_list migration (unused here).

Verification (plan-only, no apply)

  • terraform fmt + validate: clean in both roots.
  • cluster/local plan (against minikube): 0 to add, 2 to change, 0 to destroy — ArgoCD releases updated in-place. The metadata → known after apply diff is the provider's SDKv2 → Plugin Framework state migration, not a recreate from the syntax change.
  • cluster/scaleway plan -var bootstrap_argocd=false: succeeds with ArgoCD gated off; no helm errors.
  • Lock files pin helm 3.2.0 with hashes for both platforms.

⚠️ Bootstrap roots — no terraform apply/destroy performed; that stays human-gated.

Closes #23

🤖 Generated with Claude Code

Bump hashicorp/helm `~> 2.0` -> `~> 3.0` in both bootstrap roots
(cluster/local, cluster/scaleway) and adopt v3's typed nested-attribute
syntax:

- provider `helm` block: `kubernetes {}` -> `kubernetes = {}`
- `helm_release.argocd`: `set_sensitive {}` -> `set_sensitive = [{}]`

Re-locked both roots for darwin_arm64 + linux_amd64 (helm resolves to
3.2.0). Values are unchanged; `terraform plan` shows the ArgoCD releases
updated in-place (0 to destroy) — the metadata diff is the provider's
SDKv2 -> Plugin Framework state migration, not a recreate from the syntax
change. This also clears the false-positive terraform-ls warning
"Blocks of type kubernetes are not expected here".

Closes #23

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@nbrieussel
nbrieussel marked this pull request as ready for review June 11, 2026 13:02
@nbrieussel
nbrieussel merged commit f6f30eb into main Jun 11, 2026
4 checks passed
@nbrieussel
nbrieussel deleted the chore/migrate-helm-provider-v3 branch June 11, 2026 13:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore: migrate Helm provider to v3 in bootstrap roots

1 participant