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

data.external.additive_bindings_temp_struct: failed to execute "bash" Argument list too long #16

Closed
ye opened this issue May 2, 2019 · 2 comments · Fixed by #32
Closed
Labels
bug Something isn't working

Comments

@ye
Copy link

ye commented May 2, 2019

Getting the an error while executing tf plan -var-file terraform.tfvars

The iam.tf file looks like this:

module "iam" {
  source  = "github.com/terraform-google-modules/terraform-google-iam?ref=v1.0.0"
  version = "1.0.0"
  providers = {
    google = "google-beta"
  }
  project = "${var.project_id}"

  mode = "additive"

  service_accounts = [
    "serviceAccount:0@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:1@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:2@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:3@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:4@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:5@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:6@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:7@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:8@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:9@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:10@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:11@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:12@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:13@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:14@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:15@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:16@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:17@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:18@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:19@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:20@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:21@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:22@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:23@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:24@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:25@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:26@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:27@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:28@${var.project_id}.iam.gserviceaccount.com",
    "serviceAccount:29@${var.project_id}.iam.gserviceaccount.com"
  ]

  bindings = {

    "roles/logging.logWriter" = [
      "serviceAccount:0@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:1@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:2@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:3@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:4@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:5@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:6@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:7@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:8@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:9@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:10@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:11@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:12@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:13@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:14@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:15@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:16@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:17@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:18@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:19@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:20@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:21@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:22@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:23@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:24@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:25@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:26@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:27@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:28@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:29@${var.project_id}.iam.gserviceaccount.com"
    ]

    "roles/monitoring.metricWriter" = [
      "serviceAccount:0@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:1@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:2@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:3@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:4@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:5@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:6@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:7@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:8@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:9@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:10@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:11@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:12@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:13@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:14@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:15@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:16@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:17@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:18@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:19@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:20@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:21@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:22@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:23@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:24@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:25@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:26@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:27@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:28@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:29@${var.project_id}.iam.gserviceaccount.com"
    ]

    "roles/monitoring.viewer" = [
      "serviceAccount:0@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:1@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:2@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:3@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:4@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:5@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:6@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:7@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:8@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:9@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:10@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:11@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:12@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:13@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:14@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:15@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:16@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:17@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:18@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:19@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:20@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:21@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:22@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:23@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:24@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:25@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:26@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:27@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:28@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:29@${var.project_id}.iam.gserviceaccount.com"
    ]

    "roles/cloudtrace.agent" = [
      "serviceAccount:0@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:1@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:2@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:3@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:4@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:5@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:6@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:7@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:8@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:9@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:10@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:11@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:12@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:13@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:14@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:15@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:16@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:17@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:18@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:19@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:20@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:21@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:22@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:23@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:24@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:25@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:26@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:27@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:28@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:29@${var.project_id}.iam.gserviceaccount.com"
    ]

    "roles/storage.objectViewer" = [
      "serviceAccount:0@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:1@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:2@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:3@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:4@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:5@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:6@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:7@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:8@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:9@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:10@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:11@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:12@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:13@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:22@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:23@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:24@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:25@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:26@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:27@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:28@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:29@${var.project_id}.iam.gserviceaccount.com"
    ]

    "roles/cloudsql.editor" = [
      "serviceAccount:0@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:1@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:2@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:3@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:4@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:5@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:6@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:7@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:8@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:9@${var.project_id}.iam.gserviceaccount.com"
    ]

    "roles/bigquery.user" = [
      "serviceAccount:3@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:9@${var.project_id}.iam.gserviceaccount.com"
    ]

    "roles/bigquery.dataOwner" = [
      "serviceAccount:6@${var.project_id}.iam.gserviceaccount.com",
      "serviceAccount:7@${var.project_id}.iam.gserviceaccount.com"
    ]

    "roles/storage.objectAdmin" = [
      "serviceAccount:14@${var.project_id}.iam.gserviceaccount.com",
    ]

  }
}

Running a plan got 1 error:

$ tf plan -var-file terraform.tfvars                                                                                                                                                        
Refreshing Terraform state in-memory prior to plan...
The refreshed state will be used to calculate this plan, but will not be
persisted to local or remote state storage.

data.external.additive_bindings_temp_struct: Refreshing state...

Error: Error refreshing state: 1 error(s) occurred:

* module.iam.data.external.additive_bindings_temp_struct: 1 error(s) occurred:

* module.iam.data.external.additive_bindings_temp_struct: data.external.additive_bindings_temp_struct: failed to execute "bash": /Users/project/.terraform/modules/a4dd812b5e5800e40cffd6c5f897b691/scripts/create_additive_authoritative_structures.sh: line 154: /usr/local/bin/jq: Argument list too long
@morgante
Copy link
Contributor

morgante commented May 2, 2019

Thanks for the detailed report, I suspect we will have to update this to write the arguments to a file and pass the file to the script.

For the time being, you can probably split your bindings into multiple module calls to work around this.

@ye
Copy link
Author

ye commented May 9, 2019

@morgante thank you, will do!

@aaron-lane aaron-lane added the bug Something isn't working label May 27, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants