Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update-variants error on 'random_id.name.*.hex' in node_pool #414

Closed
skinlayers opened this issue Jan 31, 2020 · 0 comments
Closed

update-variants error on 'random_id.name.*.hex' in node_pool #414

skinlayers opened this issue Jan 31, 2020 · 0 comments

Comments

@skinlayers
Copy link
Contributor

skinlayers commented Jan 31, 2020

terraform v0.12.20

$ terraform providers
├── provider.google ~> 3.4
├── provider.google-beta ~> 3.4
├── provider.null ~> 2.1
├── provider.random ~> 2.2
├── module.cloud-nat
│   ├── provider.google (inherited)
│   └── provider.random (inherited)
├── module.gcp-network
│   ├── provider.google <4.0,>= 2.12
│   ├── module.routes
│       ├── provider.google <4.0,>= 2.12
│       └── provider.null (inherited)
│   ├── module.subnets
│       └── provider.google <4.0,>= 2.12
│   └── module.vpc
│       └── provider.google <4.0,>= 2.12
├── module.gke
│   └── module.gke
│       ├── provider.google (inherited)
│       ├── provider.google-beta >= 3.1, <4.0.0
│       ├── provider.kubernetes
│       ├── provider.null (inherited)
│       └── provider.random (inherited)
├── module.iap_bastion
│   ├── provider.google ~> 3.4
│   ├── provider.google-beta ~> 3.4
│   ├── provider.random (inherited)
│   ├── module.iap_tunneling
│       ├── provider.google (inherited)
│       └── provider.google-beta (inherited)
│   └── module.instance_template
│       └── provider.google (inherited)
├── module.project-factory_core_project_factory
│   ├── provider.google >= 2.1, < 4.0
│   ├── provider.google-beta >= 2.1, < 4.0
│   ├── provider.null ~> 2.1
│   ├── provider.random ~> 2.2
│   ├── module.gcloud_delete
│       ├── provider.null (inherited)
│       └── provider.random (inherited)
│   ├── module.gcloud_deprivilege
│       ├── provider.null (inherited)
│       └── provider.random (inherited)
│   ├── module.gcloud_disable
│       ├── provider.null (inherited)
│       └── provider.random (inherited)
│   └── module.project_services
│       └── provider.google >= 2.1, < 4.0
└── module.utils

From what I can tell, the splat doesn't work for accessing a map.
See: hashicorp/terraform#22476

Offending line:
https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/blob/master/autogen/main/cluster.tf.tmpl#L341

Snippet:

# Based on https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/blob/master/examples/safer_cluster/main.tf
resource "random_string" "suffix" {
  length  = 4
  special = false
  upper   = false
}

locals {
  resource_prefix = "foo"
  cluster_name = "bar-${local.resource_prefix}-gke-${random_string.suffix.result}"
}

module "gke" {
  source                 = "terraform-google-modules/kubernetes-engine/google//modules/safer-cluster-update-variant"
  version                = "~> 7.0.0"
  project_id             = data.google_client_config.default.project
  name                   = local.cluster_name
  regional               = true
  region                 = data.google_client_config.default.region
  network                = module.gcp-network.network_name
  subnetwork             = module.gcp-network.subnets_names[index(module.gcp-network.subnets_names, local.subnet_name)]
  ip_range_pods          = local.pods_range_name
  ip_range_services      = local.svc_range_name
  master_ipv4_cidr_block = "172.16.0.0/28"
  enable_private_endpoint = false
  skip_provisioners      = true

  master_authorized_networks = [
    {
      cidr_block   = "11.22.33.44/30"
      display_name = "foo-office-ip-range"
    },
  ]

  pod_security_policy_config = [{
    "enabled" = false
  }]
}

Error message:

Error: Unsupported attribute

  on .terraform/modules/gke/terraform-google-modules-terraform-google-kubernetes-engine-7be707a/modules/beta-private-cluster-update-variant/cluster.tf line 312, in resource "google_container_node_pool" "pools":
 312:   name     = random_id.name.*.hex[each.key]

This object does not have an attribute named "hex".


Error: Invalid index

  on .terraform/modules/gke/terraform-google-modules-terraform-google-kubernetes-engine-7be707a/modules/beta-private-cluster-update-variant/cluster.tf line 312, in resource "google_container_node_pool" "pools":
 312:   name     = random_id.name.*.hex[each.key]
    |----------------
    | each.key is "default-node-pool"
    | random_id.name is object with 1 attribute "default-node-pool"

The given key does not identify an element in this collection value: a number
is required.
@skinlayers skinlayers changed the title safer-cluster-update-variant errors on 'random_id.name.*.hex' safer-cluster-update-variant errors on 'random_id.name.*.hex' from beta-private-cluster-update-variant Jan 31, 2020
@skinlayers skinlayers changed the title safer-cluster-update-variant errors on 'random_id.name.*.hex' from beta-private-cluster-update-variant update-variants errors on 'random_id.name.*.hex' in node_pool Feb 1, 2020
@skinlayers skinlayers changed the title update-variants errors on 'random_id.name.*.hex' in node_pool update-variants error on 'random_id.name.*.hex' in node_pool Feb 1, 2020
CPL-markus pushed a commit to WALTER-GROUP/terraform-google-kubernetes-engine that referenced this issue Jul 15, 2024
…m-google-modules#414 (terraform-google-modules#415)

* Fix iterating over splat in google_container_node_pool with for_each

* Regenerate private-cluster-update-variant submodules
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

No branches or pull requests

1 participant