terraform-provider-octopusdeploy icon indicating copy to clipboard operation
terraform-provider-octopusdeploy copied to clipboard

When creating a deployment process resource resulting error: Error: Plugin did not respond

Open millerjn21 opened this issue 4 years ago • 1 comments

Describe the bug When creating the bare minimum resources to create a deployment process: Environments, Lifecycle, Project Group, Project, then finally a deployment process, the process fails.

Steps to reproduce

  1. Create a TF file with Environments, Lifecycle, Project Group, Project, and Deployment Process
  2. Run terraform apply
  3. See error

Expected behavior I expect it to create the resources

Logs and other supporting information TF File (removed the other resources from the log because it was very large)

terraform {
  required_providers {
    octopusdeploy = {
      source = "OctopusDeployLabs/octopusdeploy"
      version = "0.7.69"
    }
  }
}

variable "api_key" {
  type = string
}
variable "space_id" {
  type = string
}

provider "octopusdeploy" {
  alias      = "space_terraform"
  address = "http://192.168.139.160"
  api_key    = var.api_key
  #space_name = "Terraform Space" # The name of the space
  space_id = var.space_id
}

resource "octopusdeploy_environment" "dev" {
  allow_dynamic_infrastructure = false
  description                  = "Terraform"
  name                         = "Development"
  use_guided_failure           = false
  provider = octopusdeploy.space_terraform
}

resource "octopusdeploy_environment" "test" {
  allow_dynamic_infrastructure = false
  description                  = "Terraform"
  name                         = "Test"
  use_guided_failure           = false
  provider = octopusdeploy.space_terraform
}
resource "octopusdeploy_environment" "prod" {
  allow_dynamic_infrastructure = false
  description                  = "Terraform"
  name                         = "Production"
  use_guided_failure           = false
  provider = octopusdeploy.space_terraform
}


resource "octopusdeploy_lifecycle" "life1" {
  provider = octopusdeploy.space_terraform
  description = "This is the default lifecycle."
  name        = "Test Lifecycle (OK to Delete)"

  release_retention_policy {
    quantity_to_keep    = 1
    should_keep_forever = true
    unit                = "Days"
  }

  tentacle_retention_policy {
    quantity_to_keep    = 30
    should_keep_forever = false
    unit                = "Items"
  }

  phase {
    automatic_deployment_targets = [octopusdeploy_environment.dev.id]
    name                         = "foo"

    release_retention_policy {
      quantity_to_keep    = 1
      should_keep_forever = true
      unit                = "Days"
    }

    tentacle_retention_policy {
      quantity_to_keep    = 30
      should_keep_forever = false
      unit                = "Items"
    }
  }

  phase {
    is_optional_phase           = true
    name                        = "bar"
    optional_deployment_targets = [octopusdeploy_environment.test.id]
	release_retention_policy {
      quantity_to_keep    = 1
      should_keep_forever = true
      unit                = "Days"
    }

    tentacle_retention_policy {
      quantity_to_keep    = 30
      should_keep_forever = false
      unit                = "Items"
    }
  
  }
}


resource "octopusdeploy_project_group" "terraform" {
  provider = octopusdeploy.space_terraform
  description  = "The Terraform project group."
  name         = "Development Project Group (OK to Delete)"
}


resource "octopusdeploy_project" "proj1" {
  #provider = octopusdeploy.space_terraform
  space_id = var.space_id
  auto_create_release                  = false
  default_guided_failure_mode          = "EnvironmentDefault"
  default_to_skip_if_already_installed = false
  description                          = "The terraform project."
  discrete_channel_release             = false
  is_disabled                          = false
  is_discrete_channel_release          = false
  is_version_controlled                = false
  lifecycle_id                         = octopusdeploy_lifecycle.life1.id
  name                                 = "Development Project (OK to Delete)"
  project_group_id                     = octopusdeploy_project_group.terraform.id
  tenanted_deployment_participation    = "TenantedOrUntenanted"

  connectivity_policy {
    allow_deployments_to_no_targets = false
    exclude_unhealthy_targets       = false
    skip_machine_behavior           = "SkipUnavailableMachines"
  }

  template {
    default_value = "example-default-value"
    help_text     = "example-help-test"
    label         = "example-label"
    name          = "example-template-value"
    display_settings = {
      "Octopus.ControlType" : "SingleLineText"
    }
  }
}


resource "octopusdeploy_deployment_process" "deploymentproc" {
  provider = octopusdeploy.space_terraform
  project_id = octopusdeploy_project.proj1.id
  step {
    condition           = "Success"
    name                = "Hello world (using PowerShell)"
    package_requirement = "LetOctopusDecide"
    start_trigger       = "StartAfterPrevious"
    run_script_action {
      can_be_used_for_project_versioning = false
      condition                          = "Success"
      is_disabled                        = false
      is_required                        = true
      name                               = "Hello world (using PowerShell)"
      script_body                        = <<-EOT
          Write-Host 'Hello world, using PowerShell'
          #TODO: Experiment with steps of your own :)
          Write-Host '[Learn more about the types of steps available in Octopus](https://g.octopushq.com/OnboardingAddStepsLearnMore)'
        EOT
      run_on_server                      = true
    }
  }
  step {
    condition           = "Success"
    name                = "Hello world (using Bash)"
    package_requirement = "LetOctopusDecide"
    start_trigger       = "StartWithPrevious"
    run_script_action {
      can_be_used_for_project_versioning = false
      condition                          = "Success"
      is_disabled                        = false
      is_required                        = true
      name                               = "Hello world (using PowerShell)"
      script_body                        = <<-EOT
          Write-Host 'Hello world, using PowerShell'
          #TODO: Experiment with steps of your own :)
          Write-Host '[Learn more about the types of steps available in Octopus](https://g.octopushq.com/OnboardingAddStepsLearnMore)'
        EOT
      run_on_server                      = true
    }
  }
}

TF Apply

Terraform will perform the following actions:

  # octopusdeploy_deployment_process.deploymentproc will be created
  + resource "octopusdeploy_deployment_process" "deploymentproc" {
      + branch     = (known after apply)
      + id         = (known after apply)
      + project_id = (known after apply)
      + space_id   = (known after apply)
      + version    = (known after apply)

      + step {
          + condition            = "Success"
          + condition_expression = (known after apply)
          + id                   = (known after apply)
          + name                 = "Hello world (using PowerShell)"
          + package_requirement  = "LetOctopusDecide"
          + properties           = (known after apply)
          + start_trigger        = "StartAfterPrevious"
          + target_roles         = (known after apply)

          + action {
              + action_type                        = (known after apply)
              + can_be_used_for_project_versioning = (known after apply)
              + channels                           = (known after apply)
              + condition                          = (known after apply)
              + environments                       = (known after apply)
              + excluded_environments              = (known after apply)
              + features                           = (known after apply)
              + id                                 = (known after apply)
              + is_disabled                        = (known after apply)
              + is_required                        = (known after apply)
              + name                               = (known after apply)
              + notes                              = (known after apply)
              + properties                         = (known after apply)
              + run_on_server                      = (known after apply)
              + tenant_tags                        = (known after apply)
              + worker_pool_id                     = (known after apply)
              + worker_pool_variable               = (known after apply)

              + action_template {
                  + community_action_template_id = (known after apply)
                  + id                           = (known after apply)
                  + version                      = (known after apply)
                }

              + container {
                  + feed_id = (known after apply)
                  + image   = (known after apply)
                }

              + package {
                  + acquisition_location      = (known after apply)
                  + extract_during_deployment = (known after apply)
                  + feed_id                   = (known after apply)
                  + id                        = (known after apply)
                  + name                      = (known after apply)
                  + package_id                = (known after apply)
                  + properties                = (known after apply)
                }

              + primary_package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }
            }

          + apply_terraform_template_action {
              + can_be_used_for_project_versioning = (known after apply)
              + channels                           = (known after apply)
              + condition                          = (known after apply)
              + environments                       = (known after apply)
              + excluded_environments              = (known after apply)
              + features                           = (known after apply)
              + id                                 = (known after apply)
              + is_disabled                        = (known after apply)
              + is_required                        = (known after apply)
              + name                               = (known after apply)
              + notes                              = (known after apply)
              + properties                         = (known after apply)
              + run_on_server                      = (known after apply)
              + template_parameters                = (known after apply)
              + tenant_tags                        = (known after apply)

              + action_template {
                  + community_action_template_id = (known after apply)
                  + id                           = (known after apply)
                  + version                      = (known after apply)
                }

              + advanced_options {
                  + allow_additional_plugin_downloads = (known after apply)
                  + apply_parameters                  = (known after apply)
                  + init_parameters                   = (known after apply)
                  + plugin_cache_directory            = (known after apply)
                  + workspace                         = (known after apply)
                }

              + aws_account {
                  + region            = (known after apply)
                  + use_instance_role = (known after apply)
                  + variable          = (known after apply)

                  + role {
                      + arn               = (known after apply)
                      + external_id       = (known after apply)
                      + role_session_name = (known after apply)
                      + session_duration  = (known after apply)
                    }
                }

              + azure_account {
                  + variable = (known after apply)
                }

              + container {
                  + feed_id = (known after apply)
                  + image   = (known after apply)
                }

              + google_cloud_account {
                  + impersonate_service_account = (known after apply)
                  + project                     = (known after apply)
                  + region                      = (known after apply)
                  + service_account_emails      = (known after apply)
                  + use_vm_service_account      = (known after apply)
                  + variable                    = (known after apply)
                  + zone                        = (known after apply)
                }

              + package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }

              + primary_package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }

              + template {
                  + additional_variable_files       = (known after apply)
                  + directory                       = (known after apply)
                  + run_automatic_file_substitution = (known after apply)
                  + target_files                    = (known after apply)
                }
            }

          + deploy_kubernetes_secret_action {
              + can_be_used_for_project_versioning = (known after apply)
              + channels                           = (known after apply)
              + condition                          = (known after apply)
              + environments                       = (known after apply)
              + excluded_environments              = (known after apply)
              + features                           = (known after apply)
              + id                                 = (known after apply)
              + is_disabled                        = (known after apply)
              + is_required                        = (known after apply)
              + name                               = (known after apply)
              + notes                              = (known after apply)
              + properties                         = (known after apply)
              + run_on_server                      = (known after apply)
              + secret_name                        = (known after apply)
              + secret_values                      = (known after apply)
              + tenant_tags                        = (known after apply)

              + action_template {
                  + community_action_template_id = (known after apply)
                  + id                           = (known after apply)
                  + version                      = (known after apply)
                }

              + container {
                  + feed_id = (known after apply)
                  + image   = (known after apply)
                }

              + package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }
            }

          + deploy_package_action {
              + can_be_used_for_project_versioning = (known after apply)
              + channels                           = (known after apply)
              + condition                          = (known after apply)
              + environments                       = (known after apply)
              + excluded_environments              = (known after apply)
              + features                           = (known after apply)
              + id                                 = (known after apply)
              + is_disabled                        = (known after apply)
              + is_required                        = (known after apply)
              + name                               = (known after apply)
              + notes                              = (known after apply)
              + properties                         = (known after apply)
              + tenant_tags                        = (known after apply)

              + action_template {
                  + community_action_template_id = (known after apply)
                  + id                           = (known after apply)
                  + version                      = (known after apply)
                }

              + container {
                  + feed_id = (known after apply)
                  + image   = (known after apply)
                }

              + package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }

              + primary_package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }

              + windows_service {
                  + arguments                = (known after apply)
                  + create_or_update_service = (known after apply)
                  + custom_account_name      = (known after apply)
                  + custom_account_password  = (sensitive value)
                  + dependencies             = (known after apply)
                  + description              = (known after apply)
                  + display_name             = (known after apply)
                  + executable_path          = (known after apply)
                  + service_account          = (known after apply)
                  + service_name             = (known after apply)
                  + start_mode               = (known after apply)
                }
            }

          + deploy_windows_service_action {
              + arguments                          = (known after apply)
              + can_be_used_for_project_versioning = (known after apply)
              + channels                           = (known after apply)
              + condition                          = (known after apply)
              + create_or_update_service           = (known after apply)
              + custom_account_name                = (known after apply)
              + custom_account_password            = (sensitive value)
              + dependencies                       = (known after apply)
              + description                        = (known after apply)
              + display_name                       = (known after apply)
              + environments                       = (known after apply)
              + excluded_environments              = (known after apply)
              + executable_path                    = (known after apply)
              + features                           = (known after apply)
              + id                                 = (known after apply)
              + is_disabled                        = (known after apply)
              + is_required                        = (known after apply)
              + name                               = (known after apply)
              + notes                              = (known after apply)
              + properties                         = (known after apply)
              + service_account                    = (known after apply)
              + service_name                       = (known after apply)
              + start_mode                         = (known after apply)
              + tenant_tags                        = (known after apply)

              + action_template {
                  + community_action_template_id = (known after apply)
                  + id                           = (known after apply)
                  + version                      = (known after apply)
                }

              + container {
                  + feed_id = (known after apply)
                  + image   = (known after apply)
                }

              + package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }

              + primary_package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }
            }

          + manual_intervention_action {
              + can_be_used_for_project_versioning = (known after apply)
              + channels                           = (known after apply)
              + condition                          = (known after apply)
              + environments                       = (known after apply)
              + excluded_environments              = (known after apply)
              + features                           = (known after apply)
              + id                                 = (known after apply)
              + instructions                       = (known after apply)
              + is_disabled                        = (known after apply)
              + is_required                        = (known after apply)
              + name                               = (known after apply)
              + notes                              = (known after apply)
              + properties                         = (known after apply)
              + responsible_teams                  = (known after apply)
              + tenant_tags                        = (known after apply)

              + action_template {
                  + community_action_template_id = (known after apply)
                  + id                           = (known after apply)
                  + version                      = (known after apply)
                }

              + container {
                  + feed_id = (known after apply)
                  + image   = (known after apply)
                }

              + package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }
            }

          + run_kubectl_script_action {
              + can_be_used_for_project_versioning = (known after apply)
              + channels                           = (known after apply)
              + condition                          = (known after apply)
              + environments                       = (known after apply)
              + excluded_environments              = (known after apply)
              + features                           = (known after apply)
              + id                                 = (known after apply)
              + is_disabled                        = (known after apply)
              + is_required                        = (known after apply)
              + name                               = (known after apply)
              + notes                              = (known after apply)
              + properties                         = (known after apply)
              + run_on_server                      = (known after apply)
              + script_file_name                   = (known after apply)
              + script_parameters                  = (known after apply)
              + script_source                      = (known after apply)
              + tenant_tags                        = (known after apply)

              + action_template {
                  + community_action_template_id = (known after apply)
                  + id                           = (known after apply)
                  + version                      = (known after apply)
                }

              + container {
                  + feed_id = (known after apply)
                  + image   = (known after apply)
                }

              + package {
                  + acquisition_location      = (known after apply)
                  + extract_during_deployment = (known after apply)
                  + feed_id                   = (known after apply)
                  + id                        = (known after apply)
                  + name                      = (known after apply)
                  + package_id                = (known after apply)
                  + properties                = (known after apply)
                }

              + primary_package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }
            }

          + run_script_action {
              + can_be_used_for_project_versioning = false
              + channels                           = (known after apply)
              + condition                          = "Success"
              + environments                       = (known after apply)
              + excluded_environments              = (known after apply)
              + features                           = (known after apply)
              + id                                 = (known after apply)
              + is_disabled                        = false
              + is_required                        = true
              + name                               = "Hello world (using PowerShell)"
              + properties                         = (known after apply)
              + run_on_server                      = true
              + script_body                        = <<-EOT
                    Write-Host 'Hello world, using PowerShell'
                    #TODO: Experiment with steps of your own :)
                    Write-Host '[Learn more about the types of steps available in Octopus](https://g.octopushq.com/OnboardingAddStepsLearnMore)'
                EOT
              + script_source                      = (known after apply)
              + script_syntax                      = (known after apply)
              + tenant_tags                        = (known after apply)

              + action_template {
                  + community_action_template_id = (known after apply)
                  + id                           = (known after apply)
                  + version                      = (known after apply)
                }

              + container {
                  + feed_id = (known after apply)
                  + image   = (known after apply)
                }

              + package {
                  + acquisition_location      = (known after apply)
                  + extract_during_deployment = (known after apply)
                  + feed_id                   = (known after apply)
                  + id                        = (known after apply)
                  + name                      = (known after apply)
                  + package_id                = (known after apply)
                  + properties                = (known after apply)
                }

              + primary_package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }
            }
        }
      + step {
          + condition            = "Success"
          + condition_expression = (known after apply)
          + id                   = (known after apply)
          + name                 = "Hello world (using Bash)"
          + package_requirement  = "LetOctopusDecide"
          + properties           = (known after apply)
          + start_trigger        = "StartWithPrevious"
          + target_roles         = (known after apply)

          + action {
              + action_type                        = (known after apply)
              + can_be_used_for_project_versioning = (known after apply)
              + channels                           = (known after apply)
              + condition                          = (known after apply)
              + environments                       = (known after apply)
              + excluded_environments              = (known after apply)
              + features                           = (known after apply)
              + id                                 = (known after apply)
              + is_disabled                        = (known after apply)
              + is_required                        = (known after apply)
              + name                               = (known after apply)
              + notes                              = (known after apply)
              + properties                         = (known after apply)
              + run_on_server                      = (known after apply)
              + tenant_tags                        = (known after apply)
              + worker_pool_id                     = (known after apply)
              + worker_pool_variable               = (known after apply)

              + action_template {
                  + community_action_template_id = (known after apply)
                  + id                           = (known after apply)
                  + version                      = (known after apply)
                }

              + container {
                  + feed_id = (known after apply)
                  + image   = (known after apply)
                }

              + package {
                  + acquisition_location      = (known after apply)
                  + extract_during_deployment = (known after apply)
                  + feed_id                   = (known after apply)
                  + id                        = (known after apply)
                  + name                      = (known after apply)
                  + package_id                = (known after apply)
                  + properties                = (known after apply)
                }

              + primary_package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }
            }

          + apply_terraform_template_action {
              + can_be_used_for_project_versioning = (known after apply)
              + channels                           = (known after apply)
              + condition                          = (known after apply)
              + environments                       = (known after apply)
              + excluded_environments              = (known after apply)
              + features                           = (known after apply)
              + id                                 = (known after apply)
              + is_disabled                        = (known after apply)
              + is_required                        = (known after apply)
              + name                               = (known after apply)
              + notes                              = (known after apply)
              + properties                         = (known after apply)
              + run_on_server                      = (known after apply)
              + template_parameters                = (known after apply)
              + tenant_tags                        = (known after apply)

              + action_template {
                  + community_action_template_id = (known after apply)
                  + id                           = (known after apply)
                  + version                      = (known after apply)
                }

              + advanced_options {
                  + allow_additional_plugin_downloads = (known after apply)
                  + apply_parameters                  = (known after apply)
                  + init_parameters                   = (known after apply)
                  + plugin_cache_directory            = (known after apply)
                  + workspace                         = (known after apply)
                }

              + aws_account {
                  + region            = (known after apply)
                  + use_instance_role = (known after apply)
                  + variable          = (known after apply)

                  + role {
                      + arn               = (known after apply)
                      + external_id       = (known after apply)
                      + role_session_name = (known after apply)
                      + session_duration  = (known after apply)
                    }
                }

              + azure_account {
                  + variable = (known after apply)
                }

              + container {
                  + feed_id = (known after apply)
                  + image   = (known after apply)
                }

              + google_cloud_account {
                  + impersonate_service_account = (known after apply)
                  + project                     = (known after apply)
                  + region                      = (known after apply)
                  + service_account_emails      = (known after apply)
                  + use_vm_service_account      = (known after apply)
                  + variable                    = (known after apply)
                  + zone                        = (known after apply)
                }

              + package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }

              + primary_package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }

              + template {
                  + additional_variable_files       = (known after apply)
                  + directory                       = (known after apply)
                  + run_automatic_file_substitution = (known after apply)
                  + target_files                    = (known after apply)
                }
            }

          + deploy_kubernetes_secret_action {
              + can_be_used_for_project_versioning = (known after apply)
              + channels                           = (known after apply)
              + condition                          = (known after apply)
              + environments                       = (known after apply)
              + excluded_environments              = (known after apply)
              + features                           = (known after apply)
              + id                                 = (known after apply)
              + is_disabled                        = (known after apply)
              + is_required                        = (known after apply)
              + name                               = (known after apply)
              + notes                              = (known after apply)
              + properties                         = (known after apply)
              + run_on_server                      = (known after apply)
              + secret_name                        = (known after apply)
              + secret_values                      = (known after apply)
              + tenant_tags                        = (known after apply)

              + action_template {
                  + community_action_template_id = (known after apply)
                  + id                           = (known after apply)
                  + version                      = (known after apply)
                }

              + container {
                  + feed_id = (known after apply)
                  + image   = (known after apply)
                }

              + package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }
            }

          + deploy_package_action {
              + can_be_used_for_project_versioning = (known after apply)
              + channels                           = (known after apply)
              + condition                          = (known after apply)
              + environments                       = (known after apply)
              + excluded_environments              = (known after apply)
              + features                           = (known after apply)
              + id                                 = (known after apply)
              + is_disabled                        = (known after apply)
              + is_required                        = (known after apply)
              + name                               = (known after apply)
              + notes                              = (known after apply)
              + properties                         = (known after apply)
              + tenant_tags                        = (known after apply)

              + action_template {
                  + community_action_template_id = (known after apply)
                  + id                           = (known after apply)
                  + version                      = (known after apply)
                }

              + container {
                  + feed_id = (known after apply)
                  + image   = (known after apply)
                }

              + package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }

              + primary_package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }

              + windows_service {
                  + arguments                = (known after apply)
                  + create_or_update_service = (known after apply)
                  + custom_account_name      = (known after apply)
                  + custom_account_password  = (sensitive value)
                  + dependencies             = (known after apply)
                  + description              = (known after apply)
                  + display_name             = (known after apply)
                  + executable_path          = (known after apply)
                  + service_account          = (known after apply)
                  + service_name             = (known after apply)
                  + start_mode               = (known after apply)
                }
            }

          + deploy_windows_service_action {
              + arguments                          = (known after apply)
              + can_be_used_for_project_versioning = (known after apply)
              + channels                           = (known after apply)
              + condition                          = (known after apply)
              + create_or_update_service           = (known after apply)
              + custom_account_name                = (known after apply)
              + custom_account_password            = (sensitive value)
              + dependencies                       = (known after apply)
              + description                        = (known after apply)
              + display_name                       = (known after apply)
              + environments                       = (known after apply)
              + excluded_environments              = (known after apply)
              + executable_path                    = (known after apply)
              + features                           = (known after apply)
              + id                                 = (known after apply)
              + is_disabled                        = (known after apply)
              + is_required                        = (known after apply)
              + name                               = (known after apply)
              + notes                              = (known after apply)
              + properties                         = (known after apply)
              + service_account                    = (known after apply)
              + service_name                       = (known after apply)
              + start_mode                         = (known after apply)
              + tenant_tags                        = (known after apply)

              + action_template {
                  + community_action_template_id = (known after apply)
                  + id                           = (known after apply)
                  + version                      = (known after apply)
                }

              + container {
                  + feed_id = (known after apply)
                  + image   = (known after apply)
                }

              + package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }

              + primary_package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }
            }

          + manual_intervention_action {
              + can_be_used_for_project_versioning = (known after apply)
              + channels                           = (known after apply)
              + condition                          = (known after apply)
              + environments                       = (known after apply)
              + excluded_environments              = (known after apply)
              + features                           = (known after apply)
              + id                                 = (known after apply)
              + instructions                       = (known after apply)
              + is_disabled                        = (known after apply)
              + is_required                        = (known after apply)
              + name                               = (known after apply)
              + notes                              = (known after apply)
              + properties                         = (known after apply)
              + responsible_teams                  = (known after apply)
              + tenant_tags                        = (known after apply)

              + action_template {
                  + community_action_template_id = (known after apply)
                  + id                           = (known after apply)
                  + version                      = (known after apply)
                }

              + container {
                  + feed_id = (known after apply)
                  + image   = (known after apply)
                }

              + package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }
            }

          + run_kubectl_script_action {
              + can_be_used_for_project_versioning = (known after apply)
              + channels                           = (known after apply)
              + condition                          = (known after apply)
              + environments                       = (known after apply)
              + excluded_environments              = (known after apply)
              + features                           = (known after apply)
              + id                                 = (known after apply)
              + is_disabled                        = (known after apply)
              + is_required                        = (known after apply)
              + name                               = (known after apply)
              + notes                              = (known after apply)
              + properties                         = (known after apply)
              + run_on_server                      = (known after apply)
              + script_file_name                   = (known after apply)
              + script_parameters                  = (known after apply)
              + script_source                      = (known after apply)
              + tenant_tags                        = (known after apply)

              + action_template {
                  + community_action_template_id = (known after apply)
                  + id                           = (known after apply)
                  + version                      = (known after apply)
                }

              + container {
                  + feed_id = (known after apply)
                  + image   = (known after apply)
                }

              + package {
                  + acquisition_location      = (known after apply)
                  + extract_during_deployment = (known after apply)
                  + feed_id                   = (known after apply)
                  + id                        = (known after apply)
                  + name                      = (known after apply)
                  + package_id                = (known after apply)
                  + properties                = (known after apply)
                }

              + primary_package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }
            }

          + run_script_action {
              + can_be_used_for_project_versioning = false
              + channels                           = (known after apply)
              + condition                          = "Success"
              + environments                       = (known after apply)
              + excluded_environments              = (known after apply)
              + features                           = (known after apply)
              + id                                 = (known after apply)
              + is_disabled                        = false
              + is_required                        = true
              + name                               = "Hello world (using PowerShell)"
              + properties                         = (known after apply)
              + run_on_server                      = true
              + script_body                        = <<-EOT
                    Write-Host 'Hello world, using PowerShell'
                    #TODO: Experiment with steps of your own :)
                    Write-Host '[Learn more about the types of steps available in Octopus](https://g.octopushq.com/OnboardingAddStepsLearnMore)'
                EOT
              + script_source                      = (known after apply)
              + script_syntax                      = (known after apply)
              + tenant_tags                        = (known after apply)

              + action_template {
                  + community_action_template_id = (known after apply)
                  + id                           = (known after apply)
                  + version                      = (known after apply)
                }

              + container {
                  + feed_id = (known after apply)
                  + image   = (known after apply)
                }

              + package {
                  + acquisition_location      = (known after apply)
                  + extract_during_deployment = (known after apply)
                  + feed_id                   = (known after apply)
                  + id                        = (known after apply)
                  + name                      = (known after apply)
                  + package_id                = (known after apply)
                  + properties                = (known after apply)
                }

              + primary_package {
                  + acquisition_location = (known after apply)
                  + feed_id              = (known after apply)
                  + id                   = (known after apply)
                  + name                 = (known after apply)
                  + package_id           = (known after apply)
                  + properties           = (known after apply)
                }
            }
        }
    }

Error

octopusdeploy_project_group.terraform: Creating...
octopusdeploy_environment.test: Creating...
octopusdeploy_environment.dev: Creating...
octopusdeploy_environment.prod: Creating...
octopusdeploy_project_group.terraform: Creation complete after 0s [id=ProjectGroups-304]
octopusdeploy_environment.prod: Creation complete after 0s [id=Environments-529]
octopusdeploy_environment.test: Creation complete after 0s [id=Environments-528]
octopusdeploy_environment.dev: Creation complete after 0s [id=Environments-527]
octopusdeploy_lifecycle.life1: Creating...
octopusdeploy_lifecycle.life1: Creation complete after 1s [id=Lifecycles-384]
octopusdeploy_project.proj1: Creating...
octopusdeploy_project.proj1: Creation complete after 0s [id=Projects-1223]
octopusdeploy_deployment_process.deploymentproc: Creating...
╷
│ Error: Plugin did not respond
│
│   with octopusdeploy_deployment_process.deploymentproc,
│   on main.tf line 144, in resource "octopusdeploy_deployment_process" "deploymentproc":
│  144: resource "octopusdeploy_deployment_process" "deploymentproc" {
│
│ The plugin encountered an error, and failed to respond to the plugin.(*GRPCProvider).ApplyResourceChange call. The
│ plugin logs may contain more details.
╵

Stack trace from the terraform-provider-octopusdeploy_v0.7.69.exe plugin:

panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xc0000005 code=0x0 addr=0x20 pc=0x6dd3a2]

goroutine 168 [running]:
github.com/OctopusDeploy/terraform-provider-octopusdeploy/octopusdeploy.resourceDeploymentProcessCreate({0xc44108, 0xc000539aa0}, 0xc000a32b80, {0x9a5340, 0xc000254000})
        github.com/OctopusDeploy/terraform-provider-octopusdeploy/octopusdeploy/resource_deployment_process.go:62 +0x102
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Resource).create(0xc0006e21c0, {0xc44098, 0xc000ab48c0}, 0x2, {0x9a5340, 0xc000254000})
        github.com/hashicorp/terraform-plugin-sdk/[email protected]/helper/schema/resource.go:341 +0x12e
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Resource).Apply(0xc0006e21c0, {0xc44098, 0xc000ab48c0}, 0xc0005b8410, 0xc000a32180, {0x9a5340, 0xc000254000})
        github.com/hashicorp/terraform-plugin-sdk/[email protected]/helper/schema/resource.go:467 +0x871
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*GRPCProviderServer).ApplyResourceChange(0xc000004180, {0xc44098, 0xc000ab48c0}, 0xc000a37c70)
        github.com/hashicorp/terraform-plugin-sdk/[email protected]/helper/schema/grpc_provider.go:977 +0xd8a
github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server.(*server).ApplyResourceChange(0xc00009c500, {0xc44140, 0xc0007a7ad0}, 0xc000262a10)
        github.com/hashicorp/[email protected]/tfprotov5/tf5server/server.go:810 +0x5eb
github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5._Provider_ApplyResourceChange_Handler({0xaca9e0, 0xc00009c500}, {0xc44140, 0xc0007a7ad0}, 0xc000a0fc20, 0x0)
        github.com/hashicorp/[email protected]/tfprotov5/internal/tfplugin5/tfplugin5_grpc.pb.go:385 +0x170
google.golang.org/grpc.(*Server).processUnaryRPC(0xc0004af180, {0xc53858, 0xc0005dd040}, 0xc00067c360, 0xc00044e240, 0x1247d80, 0x0)
        google.golang.org/[email protected]/server.go:1282 +0xccf
google.golang.org/grpc.(*Server).handleStream(0xc0004af180, {0xc53858, 0xc0005dd040}, 0xc00067c360, 0x0)
        google.golang.org/[email protected]/server.go:1616 +0xa2a
google.golang.org/grpc.(*Server).serveStreams.func1.2()
        google.golang.org/[email protected]/server.go:921 +0x98
created by google.golang.org/grpc.(*Server).serveStreams.func1
        google.golang.org/[email protected]/server.go:919 +0x294

Error: The terraform-provider-octopusdeploy_v0.7.69.exe plugin crashed!

This is always indicative of a bug within the plugin. It would be immensely
helpful if you could report the crash with the plugin's maintainers so that it
can be fixed. The output above should help diagnose the issue.

Environment and versions:

  • OS: Windows
  • Octopus Server Version: 2021.3.8275
  • Terraform Version: v1.1.0
  • Octopus Terraform Provider Version: 0.7.69

millerjn21 avatar Mar 17 '22 14:03 millerjn21

I can confirm that this is also an issue with creating deployment process steps in cloud instances:

  • OS: Windows
  • Octopus Cloud Version: 2022.2 (Build 387-hotfix.903)
  • Terraform Version: 1.1.7
  • Octopus Terraform Provider Version: 0.7.69

octopusdeploy_deployment_process.example: Creating... ╷ │ Error: Plugin did not respond │ │ with octopusdeploy_deployment_process.example, │ on main.tf line 15, in resource "octopusdeploy_deployment_process" "example": │ 15: resource "octopusdeploy_deployment_process" "example" { │ │ The plugin encountered an error, and failed to respond to the plugin.(*GRPCProvider).ApplyResourceChange call. The plugin logs may contain more details. ╵

Stack trace from the terraform-provider-octopusdeploy_v0.7.69.exe plugin:

panic: runtime error: invalid memory address or nil pointer dereference [signal 0xc0000005 code=0x0 addr=0x20 pc=0xccd3a2]

goroutine 104 [running]: github.com/OctopusDeploy/terraform-provider-octopusdeploy/octopusdeploy.resourceDeploymentProcessCreate({0x1234108, 0xc0004d2420}, 0xc0008d9000, {0xf95340, 0xc000252500}) github.com/OctopusDeploy/terraform-provider-octopusdeploy/octopusdeploy/resource_deployment_process.go:62 +0x102 github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Resource).create(0xc0006d50a0, {0x1234098, 0xc000354480}, 0x2, {0xf95340, 0xc000252500}) github.com/hashicorp/terraform-plugin-sdk/[email protected]/helper/schema/resource.go:341 +0x12e github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Resource).Apply(0xc0006d50a0, {0x1234098, 0xc000354480}, 0xc000687790, 0xc0008d8e80, {0xf95340, 0xc000252500}) github.com/hashicorp/terraform-plugin-sdk/[email protected]/helper/schema/resource.go:467 +0x871 github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*GRPCProviderServer).ApplyResourceChange(0xc000004030, {0x1234098, 0xc000354480}, 0xc000570280) github.com/hashicorp/terraform-plugin-sdk/[email protected]/helper/schema/grpc_provider.go:977 +0xd8a github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server.(*server).ApplyResourceChange(0xc000492280, {0x1234140, 0xc00056e4b0}, 0xc00066c380) github.com/hashicorp/[email protected]/tfprotov5/tf5server/server.go:810 +0x5eb github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5._Provider_ApplyResourceChange_Handler({0x10ba9e0, 0xc000492280}, {0x1234140, 0xc00056e4b0}, 0xc0009984e0, 0x0) github.com/hashicorp/[email protected]/tfprotov5/internal/tfplugin5/tfplugin5_grpc.pb.go:385 +0x170 google.golang.org/grpc.(*Server).processUnaryRPC(0xc000562700, {0x1243858, 0xc000701a00}, 0xc00050ab40, 0xc000040c90, 0x1837d80, 0x0) google.golang.org/[email protected]/server.go:1282 +0xccf google.golang.org/grpc.(*Server).handleStream(0xc000562700, {0x1243858, 0xc000701a00}, 0xc00050ab40, 0x0) google.golang.org/[email protected]/server.go:1616 +0xa2a google.golang.org/grpc.(*Server).serveStreams.func1.2() google.golang.org/[email protected]/server.go:921 +0x98 created by google.golang.org/grpc.(*Server).serveStreams.func1 google.golang.org/[email protected]/server.go:919 +0x294

Error: The terraform-provider-octopusdeploy_v0.7.69.exe plugin crashed! main.zip

markocto avatar Apr 05 '22 10:04 markocto

I was not able to reproduce this issue using v0.10.3.

I will close this issue, if you can still reproduce it in the latest version, please let us know.

johnsimons avatar Feb 22 '23 22:02 johnsimons