Skip to content

Fix deprecated kubernetes_namespace resource - #19

Open
dhavaln-able wants to merge 2 commits into
DNXLabs:fix/provider-versionsfrom
dhavaln-able:fix/deprecated-kubernetes-namespace-resource
Open

dhavaln-able wants to merge 2 commits into
DNXLabs:fix/provider-versionsfrom
dhavaln-able:fix/deprecated-kubernetes-namespace-resource

Conversation

@dhavaln-able

@dhavaln-able dhavaln-able commented Aug 25, 2026

Copy link
Copy Markdown

Summary

Terraform's kubernetes provider deprecated the kubernetes_namespace resource in favor of kubernetes_namespace_v1 (part of the v2.0 provider naming convention change, where several resources gained _v1 suffixed replacements). Consumers of this module currently see:

Warning: Deprecated Resource

  with module.efs-csi-driver.kubernetes_namespace.kubernetes_efs_csi_driver,
  on namespace.tf line 1, in resource "kubernetes_namespace" "kubernetes_efs_csi_driver":
   1: resource "kubernetes_namespace" "kubernetes_efs_csi_driver" {

Deprecated; use kubernetes_namespace_v1.

Changes

  • namespace.tf: kubernetes_namespacekubernetes_namespace_v1
  • helm.tf: update the matching depends_on reference
  • versions.tf: bump the declared kubernetes provider constraint from >= 1.10.0 to >= 2.0, since kubernetes_namespace_v1 doesn't exist in provider versions before 2.0 — the old constraint would let someone pin an incompatible provider version and hit a hard error instead of just a warning
  • namespace.tf: added a moved block (kubernetes_namespace.kubernetes_efs_csi_driverkubernetes_namespace_v1.kubernetes_efs_csi_driver). Without it, Terraform treats the resource-type change as a brand new resource and plans to destroy the existing namespace (and everything running in it) and recreate it on upgrade — the moved block makes this a transparent state migration instead, so existing consumers see no diff on the namespace itself.
  • versions.tf: bump required_version from >= 0.13 to >= 1.1, since moved blocks require Terraform 1.1+

Test plan

  • terraform plan against a cluster consuming this module no longer shows the deprecated-resource warning
  • terraform plan on an existing deployment shows no changes to the namespace itself (the moved block should make this a no-op state migration, not a destroy/recreate)

kubernetes_namespace is deprecated in favor of kubernetes_namespace_v1
as of the hashicorp/kubernetes provider v2.0 naming convention change.
Switch the resource type and its depends_on reference in helm.tf, and
bump the declared provider constraint from >= 1.10.0 to >= 2.0 since
kubernetes_namespace_v1 does not exist in older provider versions.
Without this, Terraform treats kubernetes_namespace -> kubernetes_namespace_v1
as a brand new resource and plans to destroy the existing namespace (and
everything running in it) before recreating it. The moved block makes this
a transparent state migration instead. moved blocks require Terraform >=
1.1, so bump required_version accordingly (was >= 0.13).
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.

1 participant