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

Updating test environment workflows #20

Merged
merged 17 commits into from
May 25, 2023
Merged

Updating test environment workflows #20

merged 17 commits into from
May 25, 2023

Conversation

baserrato
Copy link
Collaborator

@baserrato baserrato commented May 25, 2023

Fixed up AWS and Azure workflows to use default branch rather than the test branch we had.
Fixed up the Terraform Plan Comment to not have debug messaging included in the comment.

@github-actions
Copy link
Contributor

Full Terraform Plan
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # module.acr.azurerm_container_registry.self will be created
  + resource "azurerm_container_registry" "self" {
      + admin_enabled                 = false
      + admin_password                = (sensitive value)
      + admin_username                = (known after apply)
      + encryption                    = (known after apply)
      + export_policy_enabled         = true
      + id                            = (known after apply)
      + location                      = "eastus"
      + login_server                  = (known after apply)
      + name                          = "sk8simgs"
      + network_rule_bypass_option    = "AzureServices"
      + network_rule_set              = (known after apply)
      + public_network_access_enabled = false
      + resource_group_name           = "sk8s-cluster"
      + retention_policy              = (known after apply)
      + sku                           = "Premium"
      + trust_policy                  = (known after apply)
      + zone_redundancy_enabled       = false
    }

  # module.acr.azurerm_private_endpoint.self will be created
  + resource "azurerm_private_endpoint" "self" {
      + custom_dns_configs            = (known after apply)
      + custom_network_interface_name = "sk8simgs-nic"
      + id                            = (known after apply)
      + location                      = "eastus"
      + name                          = "sk8simgs-private"
      + network_interface             = (known after apply)
      + private_dns_zone_configs      = (known after apply)
      + resource_group_name           = "sk8s-cluster"
      + subnet_id                     = (known after apply)

      + private_dns_zone_group {
          + id                   = (known after apply)
          + name                 = "sk8simgs-dns"
          + private_dns_zone_ids = (known after apply)
        }

      + private_service_connection {
          + is_manual_connection           = false
          + name                           = "sk8simgs-svconn"
          + private_connection_resource_id = (known after apply)
          + private_ip_address             = (known after apply)
          + subresource_names              = [
              + "registry",
            ]
        }
    }

  # module.aks.azurerm_kubernetes_cluster.self will be created
  + resource "azurerm_kubernetes_cluster" "self" {
      + api_server_authorized_ip_ranges     = (known after apply)
      + dns_prefix                          = "sk8s"
      + fqdn                                = (known after apply)
      + http_application_routing_zone_name  = (known after apply)
      + id                                  = (known after apply)
      + image_cleaner_enabled               = false
      + image_cleaner_interval_hours        = 48
      + kube_admin_config                   = (sensitive value)
      + kube_admin_config_raw               = (sensitive value)
      + kube_config                         = (sensitive value)
      + kube_config_raw                     = (sensitive value)
      + kubernetes_version                  = (known after apply)
      + location                            = "eastus"
      + name                                = "sk8s"
      + node_resource_group                 = "sk8s-cluster-sk8s"
      + node_resource_group_id              = (known after apply)
      + oidc_issuer_url                     = (known after apply)
      + portal_fqdn                         = (known after apply)
      + private_cluster_enabled             = true
      + private_cluster_public_fqdn_enabled = false
      + private_dns_zone_id                 = (known after apply)
      + private_fqdn                        = (known after apply)
      + public_network_access_enabled       = true
      + resource_group_name                 = "sk8s-cluster"
      + role_based_access_control_enabled   = true
      + run_command_enabled                 = true
      + sku_tier                            = "Free"
      + workload_identity_enabled           = false

      + aci_connector_linux {
          + connector_identity = (known after apply)
          + subnet_name        = "aci"
        }

      + api_server_access_profile {
          + authorized_ip_ranges     = (known after apply)
          + subnet_id                = (known after apply)
          + vnet_integration_enabled = (known after apply)
        }

      + auto_scaler_profile {
          + balance_similar_node_groups      = false
          + empty_bulk_delete_max            = (known after apply)
          + expander                         = "random"
          + max_graceful_termination_sec     = (known after apply)
          + max_node_provisioning_time       = "15m"
          + max_unready_nodes                = 3
          + max_unready_percentage           = 45
          + new_pod_scale_up_delay           = (known after apply)
          + scale_down_delay_after_add       = (known after apply)
          + scale_down_delay_after_delete    = (known after apply)
          + scale_down_delay_after_failure   = (known after apply)
          + scale_down_unneeded              = (known after apply)
          + scale_down_unready               = (known after apply)
          + scale_down_utilization_threshold = (known after apply)
          + scan_interval                    = (known after apply)
          + skip_nodes_with_local_storage    = true
          + skip_nodes_with_system_pods      = true
        }

      + default_node_pool {
          + enable_auto_scaling  = true
          + kubelet_disk_type    = (known after apply)
          + max_count            = 9
          + max_pods             = (known after apply)
          + min_count            = 3
          + name                 = "hot"
          + node_count           = (known after apply)
          + node_labels          = (known after apply)
          + orchestrator_version = (known after apply)
          + os_disk_size_gb      = (known after apply)
          + os_disk_type         = "Managed"
          + os_sku               = (known after apply)
          + scale_down_mode      = "Delete"
          + type                 = "VirtualMachineScaleSets"
          + ultra_ssd_enabled    = false
          + vm_size              = "Standard_D2s_v3"
          + vnet_subnet_id       = (known after apply)
          + workload_runtime     = (known after apply)
          + zones                = [
              + "1",
              + "2",
              + "3",
            ]
        }

      + identity {
          + principal_id = (known after apply)
          + tenant_id    = (known after apply)
          + type         = "SystemAssigned"
        }

      + kubelet_identity {
          + client_id                 = (known after apply)
          + object_id                 = (known after apply)
          + user_assigned_identity_id = (known after apply)
        }

      + network_profile {
          + dns_service_ip     = "10.1.64.4"
          + docker_bridge_cidr = (known after apply)
          + ip_versions        = (known after apply)
          + load_balancer_sku  = "standard"
          + network_mode       = (known after apply)
          + network_plugin     = "azure"
          + network_policy     = "azure"
          + outbound_type      = "loadBalancer"
          + pod_cidr           = (known after apply)
          + pod_cidrs          = (known after apply)
          + service_cidr       = "10.1.64.0/18"
          + service_cidrs      = (known after apply)

          + load_balancer_profile {
              + effective_outbound_ips      = (known after apply)
              + idle_timeout_in_minutes     = (known after apply)
              + managed_outbound_ip_count   = (known after apply)
              + managed_outbound_ipv6_count = (known after apply)
              + outbound_ip_address_ids     = (known after apply)
              + outbound_ip_prefix_ids      = (known after apply)
              + outbound_ports_allocated    = (known after apply)
            }

          + nat_gateway_profile {
              + effective_outbound_ips    = (known after apply)
              + idle_timeout_in_minutes   = (known after apply)
              + managed_outbound_ip_count = (known after apply)
            }
        }

      + windows_profile {
          + admin_password = (sensitive value)
          + admin_username = (known after apply)
          + license        = (known after apply)

          + gmsa {
              + dns_server  = (known after apply)
              + root_domain = (known after apply)
            }
        }
    }

  # module.aks.azurerm_kubernetes_cluster_node_pool.self["spot"] will be created
  + resource "azurerm_kubernetes_cluster_node_pool" "self" {
      + enable_auto_scaling   = true
      + eviction_policy       = "Delete"
      + id                    = (known after apply)
      + kubelet_disk_type     = (known after apply)
      + kubernetes_cluster_id = (known after apply)
      + max_count             = 3
      + max_pods              = (known after apply)
      + min_count             = 1
      + mode                  = "User"
      + name                  = "spot"
      + node_count            = (known after apply)
      + node_labels           = (known after apply)
      + orchestrator_version  = (known after apply)
      + os_disk_size_gb       = (known after apply)
      + os_disk_type          = "Managed"
      + os_sku                = (known after apply)
      + os_type               = "Linux"
      + priority              = "Spot"
      + scale_down_mode       = "Delete"
      + spot_max_price        = -1
      + ultra_ssd_enabled     = false
      + vm_size               = "Standard_D2s_v3"
      + vnet_subnet_id        = (known after apply)
      + zones                 = [
          + "1",
          + "2",
          + "3",
        ]
    }

  # module.dns.azurerm_private_dns_zone.self[0] will be created
  + resource "azurerm_private_dns_zone" "self" {
      + id                                                    = (known after apply)
      + max_number_of_record_sets                             = (known after apply)
      + max_number_of_virtual_network_links                   = (known after apply)
      + max_number_of_virtual_network_links_with_registration = (known after apply)
      + name                                                  = "sk8s.internal.liatr.io"
      + number_of_record_sets                                 = (known after apply)
      + resource_group_name                                   = "sk8s-cluster"

      + soa_record {
          + email         = (known after apply)
          + expire_time   = (known after apply)
          + fqdn          = (known after apply)
          + host_name     = (known after apply)
          + minimum_ttl   = (known after apply)
          + refresh_time  = (known after apply)
          + retry_time    = (known after apply)
          + serial_number = (known after apply)
          + tags          = (known after apply)
          + ttl           = (known after apply)
        }
    }

  # module.network.azurerm_network_security_group.self will be created
  + resource "azurerm_network_security_group" "self" {
      + id                  = (known after apply)
      + location            = "eastus"
      + name                = "sk8s-cluster-vnet-nsg"
      + resource_group_name = "sk8s-cluster"
      + security_rule       = (known after apply)
    }

  # module.network.azurerm_subnet.self[0] will be created
  + resource "azurerm_subnet" "self" {
      + address_prefixes                               = [
          + "10.1.0.0/18",
        ]
      + enforce_private_link_endpoint_network_policies = (known after apply)
      + enforce_private_link_service_network_policies  = (known after apply)
      + id                                             = (known after apply)
      + name                                           = "nodes"
      + private_endpoint_network_policies_enabled      = (known after apply)
      + private_link_service_network_policies_enabled  = (known after apply)
      + resource_group_name                            = "sk8s-cluster"
      + virtual_network_name                           = "sk8s-cluster-vnet"
    }

  # module.network.azurerm_subnet.self[1] will be created
  + resource "azurerm_subnet" "self" {
      + address_prefixes                               = [
          + "10.1.128.0/18",
        ]
      + enforce_private_link_endpoint_network_policies = (known after apply)
      + enforce_private_link_service_network_policies  = (known after apply)
      + id                                             = (known after apply)
      + name                                           = "aci"
      + private_endpoint_network_policies_enabled      = (known after apply)
      + private_link_service_network_policies_enabled  = (known after apply)
      + resource_group_name                            = "sk8s-cluster"
      + virtual_network_name                           = "sk8s-cluster-vnet"
    }

  # module.network.azurerm_subnet_network_security_group_association.self[0] will be created
  + resource "azurerm_subnet_network_security_group_association" "self" {
      + id                        = (known after apply)
      + network_security_group_id = (known after apply)
      + subnet_id                 = (known after apply)
    }

  # module.network.azurerm_subnet_network_security_group_association.self[1] will be created
  + resource "azurerm_subnet_network_security_group_association" "self" {
      + id                        = (known after apply)
      + network_security_group_id = (known after apply)
      + subnet_id                 = (known after apply)
    }

  # module.network.azurerm_virtual_network.self will be created
  + resource "azurerm_virtual_network" "self" {
      + address_space       = [
          + "10.1.0.0/16",
        ]
      + dns_servers         = []
      + guid                = (known after apply)
      + id                  = (known after apply)
      + location            = "eastus"
      + name                = "sk8s-cluster-vnet"
      + resource_group_name = "sk8s-cluster"
      + subnet              = (known after apply)
      + tags                = {
          + "owner"   = "GitHub Practice"
          + "project" = "Sk8s"
        }
    }

Plan: 11 to add, 0 to change, 0 to destroy.

@baserrato baserrato temporarily deployed to Azure May 25, 2023 16:30 — with GitHub Actions Inactive
@github-actions
Copy link
Contributor

Full Terraform Plan
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # module.acr.azurerm_container_registry.self will be created
  + resource "azurerm_container_registry" "self" {
      + admin_enabled                 = false
      + admin_password                = (sensitive value)
      + admin_username                = (known after apply)
      + encryption                    = (known after apply)
      + export_policy_enabled         = true
      + id                            = (known after apply)
      + location                      = "eastus"
      + login_server                  = (known after apply)
      + name                          = "sk8simgs"
      + network_rule_bypass_option    = "AzureServices"
      + network_rule_set              = (known after apply)
      + public_network_access_enabled = false
      + resource_group_name           = "sk8s-cluster"
      + retention_policy              = (known after apply)
      + sku                           = "Premium"
      + trust_policy                  = (known after apply)
      + zone_redundancy_enabled       = false
    }

  # module.acr.azurerm_private_endpoint.self will be created
  + resource "azurerm_private_endpoint" "self" {
      + custom_dns_configs            = (known after apply)
      + custom_network_interface_name = "sk8simgs-nic"
      + id                            = (known after apply)
      + location                      = "eastus"
      + name                          = "sk8simgs-private"
      + network_interface             = (known after apply)
      + private_dns_zone_configs      = (known after apply)
      + resource_group_name           = "sk8s-cluster"
      + subnet_id                     = (known after apply)

      + private_dns_zone_group {
          + id                   = (known after apply)
          + name                 = "sk8simgs-dns"
          + private_dns_zone_ids = (known after apply)
        }

      + private_service_connection {
          + is_manual_connection           = false
          + name                           = "sk8simgs-svconn"
          + private_connection_resource_id = (known after apply)
          + private_ip_address             = (known after apply)
          + subresource_names              = [
              + "registry",
            ]
        }
    }

  # module.aks.azurerm_kubernetes_cluster.self will be created
  + resource "azurerm_kubernetes_cluster" "self" {
      + api_server_authorized_ip_ranges     = (known after apply)
      + dns_prefix                          = "sk8s"
      + fqdn                                = (known after apply)
      + http_application_routing_zone_name  = (known after apply)
      + id                                  = (known after apply)
      + image_cleaner_enabled               = false
      + image_cleaner_interval_hours        = 48
      + kube_admin_config                   = (sensitive value)
      + kube_admin_config_raw               = (sensitive value)
      + kube_config                         = (sensitive value)
      + kube_config_raw                     = (sensitive value)
      + kubernetes_version                  = (known after apply)
      + location                            = "eastus"
      + name                                = "sk8s"
      + node_resource_group                 = "sk8s-cluster-sk8s"
      + node_resource_group_id              = (known after apply)
      + oidc_issuer_url                     = (known after apply)
      + portal_fqdn                         = (known after apply)
      + private_cluster_enabled             = true
      + private_cluster_public_fqdn_enabled = false
      + private_dns_zone_id                 = (known after apply)
      + private_fqdn                        = (known after apply)
      + public_network_access_enabled       = true
      + resource_group_name                 = "sk8s-cluster"
      + role_based_access_control_enabled   = true
      + run_command_enabled                 = true
      + sku_tier                            = "Free"
      + workload_identity_enabled           = false

      + aci_connector_linux {
          + connector_identity = (known after apply)
          + subnet_name        = "aci"
        }

      + api_server_access_profile {
          + authorized_ip_ranges     = (known after apply)
          + subnet_id                = (known after apply)
          + vnet_integration_enabled = (known after apply)
        }

      + auto_scaler_profile {
          + balance_similar_node_groups      = false
          + empty_bulk_delete_max            = (known after apply)
          + expander                         = "random"
          + max_graceful_termination_sec     = (known after apply)
          + max_node_provisioning_time       = "15m"
          + max_unready_nodes                = 3
          + max_unready_percentage           = 45
          + new_pod_scale_up_delay           = (known after apply)
          + scale_down_delay_after_add       = (known after apply)
          + scale_down_delay_after_delete    = (known after apply)
          + scale_down_delay_after_failure   = (known after apply)
          + scale_down_unneeded              = (known after apply)
          + scale_down_unready               = (known after apply)
          + scale_down_utilization_threshold = (known after apply)
          + scan_interval                    = (known after apply)
          + skip_nodes_with_local_storage    = true
          + skip_nodes_with_system_pods      = true
        }

      + default_node_pool {
          + enable_auto_scaling  = true
          + kubelet_disk_type    = (known after apply)
          + max_count            = 9
          + max_pods             = (known after apply)
          + min_count            = 3
          + name                 = "hot"
          + node_count           = (known after apply)
          + node_labels          = (known after apply)
          + orchestrator_version = (known after apply)
          + os_disk_size_gb      = (known after apply)
          + os_disk_type         = "Managed"
          + os_sku               = (known after apply)
          + scale_down_mode      = "Delete"
          + type                 = "VirtualMachineScaleSets"
          + ultra_ssd_enabled    = false
          + vm_size              = "Standard_D2s_v3"
          + vnet_subnet_id       = (known after apply)
          + workload_runtime     = (known after apply)
          + zones                = [
              + "1",
              + "2",
              + "3",
            ]
        }

      + identity {
          + principal_id = (known after apply)
          + tenant_id    = (known after apply)
          + type         = "SystemAssigned"
        }

      + kubelet_identity {
          + client_id                 = (known after apply)
          + object_id                 = (known after apply)
          + user_assigned_identity_id = (known after apply)
        }

      + network_profile {
          + dns_service_ip     = "10.1.64.4"
          + docker_bridge_cidr = (known after apply)
          + ip_versions        = (known after apply)
          + load_balancer_sku  = "standard"
          + network_mode       = (known after apply)
          + network_plugin     = "azure"
          + network_policy     = "azure"
          + outbound_type      = "loadBalancer"
          + pod_cidr           = (known after apply)
          + pod_cidrs          = (known after apply)
          + service_cidr       = "10.1.64.0/18"
          + service_cidrs      = (known after apply)

          + load_balancer_profile {
              + effective_outbound_ips      = (known after apply)
              + idle_timeout_in_minutes     = (known after apply)
              + managed_outbound_ip_count   = (known after apply)
              + managed_outbound_ipv6_count = (known after apply)
              + outbound_ip_address_ids     = (known after apply)
              + outbound_ip_prefix_ids      = (known after apply)
              + outbound_ports_allocated    = (known after apply)
            }

          + nat_gateway_profile {
              + effective_outbound_ips    = (known after apply)
              + idle_timeout_in_minutes   = (known after apply)
              + managed_outbound_ip_count = (known after apply)
            }
        }

      + windows_profile {
          + admin_password = (sensitive value)
          + admin_username = (known after apply)
          + license        = (known after apply)

          + gmsa {
              + dns_server  = (known after apply)
              + root_domain = (known after apply)
            }
        }
    }

  # module.aks.azurerm_kubernetes_cluster_node_pool.self["spot"] will be created
  + resource "azurerm_kubernetes_cluster_node_pool" "self" {
      + enable_auto_scaling   = true
      + eviction_policy       = "Delete"
      + id                    = (known after apply)
      + kubelet_disk_type     = (known after apply)
      + kubernetes_cluster_id = (known after apply)
      + max_count             = 3
      + max_pods              = (known after apply)
      + min_count             = 1
      + mode                  = "User"
      + name                  = "spot"
      + node_count            = (known after apply)
      + node_labels           = (known after apply)
      + orchestrator_version  = (known after apply)
      + os_disk_size_gb       = (known after apply)
      + os_disk_type          = "Managed"
      + os_sku                = (known after apply)
      + os_type               = "Linux"
      + priority              = "Spot"
      + scale_down_mode       = "Delete"
      + spot_max_price        = -1
      + ultra_ssd_enabled     = false
      + vm_size               = "Standard_D2s_v3"
      + vnet_subnet_id        = (known after apply)
      + zones                 = [
          + "1",
          + "2",
          + "3",
        ]
    }

  # module.dns.azurerm_private_dns_zone.self[0] will be created
  + resource "azurerm_private_dns_zone" "self" {
      + id                                                    = (known after apply)
      + max_number_of_record_sets                             = (known after apply)
      + max_number_of_virtual_network_links                   = (known after apply)
      + max_number_of_virtual_network_links_with_registration = (known after apply)
      + name                                                  = "sk8s.internal.liatr.io"
      + number_of_record_sets                                 = (known after apply)
      + resource_group_name                                   = "sk8s-cluster"

      + soa_record {
          + email         = (known after apply)
          + expire_time   = (known after apply)
          + fqdn          = (known after apply)
          + host_name     = (known after apply)
          + minimum_ttl   = (known after apply)
          + refresh_time  = (known after apply)
          + retry_time    = (known after apply)
          + serial_number = (known after apply)
          + tags          = (known after apply)
          + ttl           = (known after apply)
        }
    }

  # module.network.azurerm_network_security_group.self will be created
  + resource "azurerm_network_security_group" "self" {
      + id                  = (known after apply)
      + location            = "eastus"
      + name                = "sk8s-cluster-vnet-nsg"
      + resource_group_name = "sk8s-cluster"
      + security_rule       = (known after apply)
    }

  # module.network.azurerm_subnet.self[0] will be created
  + resource "azurerm_subnet" "self" {
      + address_prefixes                               = [
          + "10.1.0.0/18",
        ]
      + enforce_private_link_endpoint_network_policies = (known after apply)
      + enforce_private_link_service_network_policies  = (known after apply)
      + id                                             = (known after apply)
      + name                                           = "nodes"
      + private_endpoint_network_policies_enabled      = (known after apply)
      + private_link_service_network_policies_enabled  = (known after apply)
      + resource_group_name                            = "sk8s-cluster"
      + virtual_network_name                           = "sk8s-cluster-vnet"
    }

  # module.network.azurerm_subnet.self[1] will be created
  + resource "azurerm_subnet" "self" {
      + address_prefixes                               = [
          + "10.1.128.0/18",
        ]
      + enforce_private_link_endpoint_network_policies = (known after apply)
      + enforce_private_link_service_network_policies  = (known after apply)
      + id                                             = (known after apply)
      + name                                           = "aci"
      + private_endpoint_network_policies_enabled      = (known after apply)
      + private_link_service_network_policies_enabled  = (known after apply)
      + resource_group_name                            = "sk8s-cluster"
      + virtual_network_name                           = "sk8s-cluster-vnet"
    }

  # module.network.azurerm_subnet_network_security_group_association.self[0] will be created
  + resource "azurerm_subnet_network_security_group_association" "self" {
      + id                        = (known after apply)
      + network_security_group_id = (known after apply)
      + subnet_id                 = (known after apply)
    }

  # module.network.azurerm_subnet_network_security_group_association.self[1] will be created
  + resource "azurerm_subnet_network_security_group_association" "self" {
      + id                        = (known after apply)
      + network_security_group_id = (known after apply)
      + subnet_id                 = (known after apply)
    }

  # module.network.azurerm_virtual_network.self will be created
  + resource "azurerm_virtual_network" "self" {
      + address_space       = [
          + "10.1.0.0/16",
        ]
      + dns_servers         = []
      + guid                = (known after apply)
      + id                  = (known after apply)
      + location            = "eastus"
      + name                = "sk8s-cluster-vnet"
      + resource_group_name = "sk8s-cluster"
      + subnet              = (known after apply)
      + tags                = {
          + "owner"   = "GitHub Practice"
          + "project" = "Sk8s"
        }
    }

Plan: 11 to add, 0 to change, 0 to destroy.

@baserrato baserrato temporarily deployed to AWS May 25, 2023 16:34 — with GitHub Actions Inactive
@baserrato baserrato temporarily deployed to Azure May 25, 2023 16:34 — with GitHub Actions Inactive
@github-actions
Copy link
Contributor

Full Terraform Plan
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # module.acr.azurerm_container_registry.self will be created
  + resource "azurerm_container_registry" "self" {
      + admin_enabled                 = false
      + admin_password                = (sensitive value)
      + admin_username                = (known after apply)
      + encryption                    = (known after apply)
      + export_policy_enabled         = true
      + id                            = (known after apply)
      + location                      = "eastus"
      + login_server                  = (known after apply)
      + name                          = "sk8simgs"
      + network_rule_bypass_option    = "AzureServices"
      + network_rule_set              = (known after apply)
      + public_network_access_enabled = false
      + resource_group_name           = "sk8s-cluster"
      + retention_policy              = (known after apply)
      + sku                           = "Premium"
      + trust_policy                  = (known after apply)
      + zone_redundancy_enabled       = false
    }

  # module.acr.azurerm_private_endpoint.self will be created
  + resource "azurerm_private_endpoint" "self" {
      + custom_dns_configs            = (known after apply)
      + custom_network_interface_name = "sk8simgs-nic"
      + id                            = (known after apply)
      + location                      = "eastus"
      + name                          = "sk8simgs-private"
      + network_interface             = (known after apply)
      + private_dns_zone_configs      = (known after apply)
      + resource_group_name           = "sk8s-cluster"
      + subnet_id                     = (known after apply)

      + private_dns_zone_group {
          + id                   = (known after apply)
          + name                 = "sk8simgs-dns"
          + private_dns_zone_ids = (known after apply)
        }

      + private_service_connection {
          + is_manual_connection           = false
          + name                           = "sk8simgs-svconn"
          + private_connection_resource_id = (known after apply)
          + private_ip_address             = (known after apply)
          + subresource_names              = [
              + "registry",
            ]
        }
    }

  # module.aks.azurerm_kubernetes_cluster.self will be created
  + resource "azurerm_kubernetes_cluster" "self" {
      + api_server_authorized_ip_ranges     = (known after apply)
      + dns_prefix                          = "sk8s"
      + fqdn                                = (known after apply)
      + http_application_routing_zone_name  = (known after apply)
      + id                                  = (known after apply)
      + image_cleaner_enabled               = false
      + image_cleaner_interval_hours        = 48
      + kube_admin_config                   = (sensitive value)
      + kube_admin_config_raw               = (sensitive value)
      + kube_config                         = (sensitive value)
      + kube_config_raw                     = (sensitive value)
      + kubernetes_version                  = (known after apply)
      + location                            = "eastus"
      + name                                = "sk8s"
      + node_resource_group                 = "sk8s-cluster-sk8s"
      + node_resource_group_id              = (known after apply)
      + oidc_issuer_url                     = (known after apply)
      + portal_fqdn                         = (known after apply)
      + private_cluster_enabled             = true
      + private_cluster_public_fqdn_enabled = false
      + private_dns_zone_id                 = (known after apply)
      + private_fqdn                        = (known after apply)
      + public_network_access_enabled       = true
      + resource_group_name                 = "sk8s-cluster"
      + role_based_access_control_enabled   = true
      + run_command_enabled                 = true
      + sku_tier                            = "Free"
      + workload_identity_enabled           = false

      + aci_connector_linux {
          + connector_identity = (known after apply)
          + subnet_name        = "aci"
        }

      + api_server_access_profile {
          + authorized_ip_ranges     = (known after apply)
          + subnet_id                = (known after apply)
          + vnet_integration_enabled = (known after apply)
        }

      + auto_scaler_profile {
          + balance_similar_node_groups      = false
          + empty_bulk_delete_max            = (known after apply)
          + expander                         = "random"
          + max_graceful_termination_sec     = (known after apply)
          + max_node_provisioning_time       = "15m"
          + max_unready_nodes                = 3
          + max_unready_percentage           = 45
          + new_pod_scale_up_delay           = (known after apply)
          + scale_down_delay_after_add       = (known after apply)
          + scale_down_delay_after_delete    = (known after apply)
          + scale_down_delay_after_failure   = (known after apply)
          + scale_down_unneeded              = (known after apply)
          + scale_down_unready               = (known after apply)
          + scale_down_utilization_threshold = (known after apply)
          + scan_interval                    = (known after apply)
          + skip_nodes_with_local_storage    = true
          + skip_nodes_with_system_pods      = true
        }

      + default_node_pool {
          + enable_auto_scaling  = true
          + kubelet_disk_type    = (known after apply)
          + max_count            = 9
          + max_pods             = (known after apply)
          + min_count            = 3
          + name                 = "hot"
          + node_count           = (known after apply)
          + node_labels          = (known after apply)
          + orchestrator_version = (known after apply)
          + os_disk_size_gb      = (known after apply)
          + os_disk_type         = "Managed"
          + os_sku               = (known after apply)
          + scale_down_mode      = "Delete"
          + type                 = "VirtualMachineScaleSets"
          + ultra_ssd_enabled    = false
          + vm_size              = "Standard_D2s_v3"
          + vnet_subnet_id       = (known after apply)
          + workload_runtime     = (known after apply)
          + zones                = [
              + "1",
              + "2",
              + "3",
            ]
        }

      + identity {
          + principal_id = (known after apply)
          + tenant_id    = (known after apply)
          + type         = "SystemAssigned"
        }

      + kubelet_identity {
          + client_id                 = (known after apply)
          + object_id                 = (known after apply)
          + user_assigned_identity_id = (known after apply)
        }

      + network_profile {
          + dns_service_ip     = "10.1.64.4"
          + docker_bridge_cidr = (known after apply)
          + ip_versions        = (known after apply)
          + load_balancer_sku  = "standard"
          + network_mode       = (known after apply)
          + network_plugin     = "azure"
          + network_policy     = "azure"
          + outbound_type      = "loadBalancer"
          + pod_cidr           = (known after apply)
          + pod_cidrs          = (known after apply)
          + service_cidr       = "10.1.64.0/18"
          + service_cidrs      = (known after apply)

          + load_balancer_profile {
              + effective_outbound_ips      = (known after apply)
              + idle_timeout_in_minutes     = (known after apply)
              + managed_outbound_ip_count   = (known after apply)
              + managed_outbound_ipv6_count = (known after apply)
              + outbound_ip_address_ids     = (known after apply)
              + outbound_ip_prefix_ids      = (known after apply)
              + outbound_ports_allocated    = (known after apply)
            }

          + nat_gateway_profile {
              + effective_outbound_ips    = (known after apply)
              + idle_timeout_in_minutes   = (known after apply)
              + managed_outbound_ip_count = (known after apply)
            }
        }

      + windows_profile {
          + admin_password = (sensitive value)
          + admin_username = (known after apply)
          + license        = (known after apply)

          + gmsa {
              + dns_server  = (known after apply)
              + root_domain = (known after apply)
            }
        }
    }

  # module.aks.azurerm_kubernetes_cluster_node_pool.self["spot"] will be created
  + resource "azurerm_kubernetes_cluster_node_pool" "self" {
      + enable_auto_scaling   = true
      + eviction_policy       = "Delete"
      + id                    = (known after apply)
      + kubelet_disk_type     = (known after apply)
      + kubernetes_cluster_id = (known after apply)
      + max_count             = 3
      + max_pods              = (known after apply)
      + min_count             = 1
      + mode                  = "User"
      + name                  = "spot"
      + node_count            = (known after apply)
      + node_labels           = (known after apply)
      + orchestrator_version  = (known after apply)
      + os_disk_size_gb       = (known after apply)
      + os_disk_type          = "Managed"
      + os_sku                = (known after apply)
      + os_type               = "Linux"
      + priority              = "Spot"
      + scale_down_mode       = "Delete"
      + spot_max_price        = -1
      + ultra_ssd_enabled     = false
      + vm_size               = "Standard_D2s_v3"
      + vnet_subnet_id        = (known after apply)
      + zones                 = [
          + "1",
          + "2",
          + "3",
        ]
    }

  # module.dns.azurerm_private_dns_zone.self[0] will be created
  + resource "azurerm_private_dns_zone" "self" {
      + id                                                    = (known after apply)
      + max_number_of_record_sets                             = (known after apply)
      + max_number_of_virtual_network_links                   = (known after apply)
      + max_number_of_virtual_network_links_with_registration = (known after apply)
      + name                                                  = "sk8s.internal.liatr.io"
      + number_of_record_sets                                 = (known after apply)
      + resource_group_name                                   = "sk8s-cluster"

      + soa_record {
          + email         = (known after apply)
          + expire_time   = (known after apply)
          + fqdn          = (known after apply)
          + host_name     = (known after apply)
          + minimum_ttl   = (known after apply)
          + refresh_time  = (known after apply)
          + retry_time    = (known after apply)
          + serial_number = (known after apply)
          + tags          = (known after apply)
          + ttl           = (known after apply)
        }
    }

  # module.network.azurerm_network_security_group.self will be created
  + resource "azurerm_network_security_group" "self" {
      + id                  = (known after apply)
      + location            = "eastus"
      + name                = "sk8s-cluster-vnet-nsg"
      + resource_group_name = "sk8s-cluster"
      + security_rule       = (known after apply)
    }

  # module.network.azurerm_subnet.self[0] will be created
  + resource "azurerm_subnet" "self" {
      + address_prefixes                               = [
          + "10.1.0.0/18",
        ]
      + enforce_private_link_endpoint_network_policies = (known after apply)
      + enforce_private_link_service_network_policies  = (known after apply)
      + id                                             = (known after apply)
      + name                                           = "nodes"
      + private_endpoint_network_policies_enabled      = (known after apply)
      + private_link_service_network_policies_enabled  = (known after apply)
      + resource_group_name                            = "sk8s-cluster"
      + virtual_network_name                           = "sk8s-cluster-vnet"
    }

  # module.network.azurerm_subnet.self[1] will be created
  + resource "azurerm_subnet" "self" {
      + address_prefixes                               = [
          + "10.1.128.0/18",
        ]
      + enforce_private_link_endpoint_network_policies = (known after apply)
      + enforce_private_link_service_network_policies  = (known after apply)
      + id                                             = (known after apply)
      + name                                           = "aci"
      + private_endpoint_network_policies_enabled      = (known after apply)
      + private_link_service_network_policies_enabled  = (known after apply)
      + resource_group_name                            = "sk8s-cluster"
      + virtual_network_name                           = "sk8s-cluster-vnet"
    }

  # module.network.azurerm_subnet_network_security_group_association.self[0] will be created
  + resource "azurerm_subnet_network_security_group_association" "self" {
      + id                        = (known after apply)
      + network_security_group_id = (known after apply)
      + subnet_id                 = (known after apply)
    }

  # module.network.azurerm_subnet_network_security_group_association.self[1] will be created
  + resource "azurerm_subnet_network_security_group_association" "self" {
      + id                        = (known after apply)
      + network_security_group_id = (known after apply)
      + subnet_id                 = (known after apply)
    }

  # module.network.azurerm_virtual_network.self will be created
  + resource "azurerm_virtual_network" "self" {
      + address_space       = [
          + "10.1.0.0/16",
        ]
      + dns_servers         = []
      + guid                = (known after apply)
      + id                  = (known after apply)
      + location            = "eastus"
      + name                = "sk8s-cluster-vnet"
      + resource_group_name = "sk8s-cluster"
      + subnet              = (known after apply)
      + tags                = {
          + "owner"   = "GitHub Practice"
          + "project" = "Sk8s"
        }
    }

Plan: 11 to add, 0 to change, 0 to destroy.

@github-actions
Copy link
Contributor

Full Terraform Plan
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create
 <= read (data resources)

Terraform will perform the following actions:

  # module.eks.data.aws_iam_policy_document.alb will be read during apply
  # (config refers to values not yet known)
 <= data "aws_iam_policy_document" "alb" {
      + id   = (known after apply)
      + json = (known after apply)

      + statement {
          + actions = [
              + "sts:AssumeRoleWithWebIdentity",
            ]
          + effect  = "Allow"

          + condition {
              + test     = "StringEquals"
              + values   = [
                  + "system:serviceaccount:kube-system:aws-load-balancer-controller",
                ]
              + variable = (known after apply)
            }

          + principals {
              + identifiers = [
                  + (known after apply),
                ]
              + type        = "Federated"
            }
        }
    }

  # module.eks.data.aws_iam_policy_document.autoscaler will be read during apply
  # (config refers to values not yet known)
 <= data "aws_iam_policy_document" "autoscaler" {
      + id   = (known after apply)
      + json = (known after apply)

      + statement {
          + actions = [
              + "sts:AssumeRoleWithWebIdentity",
            ]
          + effect  = "Allow"

          + condition {
              + test     = "StringEquals"
              + values   = [
                  + "system:serviceaccount:kube-system:cluster-autoscaler",
                ]
              + variable = (known after apply)
            }

          + principals {
              + identifiers = [
                  + (known after apply),
                ]
              + type        = "Federated"
            }
        }
    }

  # module.eks.data.aws_subnet.private will be read during apply
  # (config refers to values not yet known)
 <= data "aws_subnet" "private" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = (known after apply)
      + availability_zone                              = (known after apply)
      + availability_zone_id                           = (known after apply)
      + available_ip_address_count                     = (known after apply)
      + cidr_block                                     = (known after apply)
      + customer_owned_ipv4_pool                       = (known after apply)
      + default_for_az                                 = (known after apply)
      + enable_dns64                                   = (known after apply)
      + enable_resource_name_dns_a_record_on_launch    = (known after apply)
      + enable_resource_name_dns_aaaa_record_on_launch = (known after apply)
      + id                                             = (known after apply)
      + ipv6_cidr_block                                = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = (known after apply)
      + map_customer_owned_ip_on_launch                = (known after apply)
      + map_public_ip_on_launch                        = (known after apply)
      + outpost_arn                                    = (known after apply)
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + state                                          = (known after apply)
      + tags                                           = (known after apply)
      + vpc_id                                         = (known after apply)

      + timeouts {
          + read = (known after apply)
        }
    }

  # module.eks.data.tls_certificate.self will be read during apply
  # (config refers to values not yet known)
 <= data "tls_certificate" "self" {
      + certificates = (known after apply)
      + id           = (known after apply)
      + url          = (known after apply)
    }

  # module.eks.aws_eks_cluster.self will be created
  + resource "aws_eks_cluster" "self" {
      + arn                   = (known after apply)
      + certificate_authority = (known after apply)
      + created_at            = (known after apply)
      + endpoint              = (known after apply)
      + id                    = (known after apply)
      + identity              = (known after apply)
      + name                  = "ghest-dev"
      + platform_version      = (known after apply)
      + role_arn              = (known after apply)
      + status                = (known after apply)
      + tags                  = {
          + "Environment" = "Development"
          + "Project"     = "GHESTDev"
        }
      + tags_all              = {
          + "Environment" = "Development"
          + "Project"     = "GHESTDev"
        }
      + version               = (known after apply)

      + kubernetes_network_config {
          + ip_family         = (known after apply)
          + service_ipv4_cidr = (known after apply)
        }

      + vpc_config {
          + cluster_security_group_id = (known after apply)
          + endpoint_private_access   = true
          + endpoint_public_access    = false
          + public_access_cidrs       = (known after apply)
          + subnet_ids                = (known after apply)
          + vpc_id                    = (known after apply)
        }
    }

  # module.eks.aws_eks_node_group.self[0] will be created
  + resource "aws_eks_node_group" "self" {
      + ami_type               = (known after apply)
      + arn                    = (known after apply)
      + capacity_type          = "ON_DEMAND"
      + cluster_name           = "ghest-dev"
      + disk_size              = 100
      + id                     = (known after apply)
      + instance_types         = [
          + "t3.large",
        ]
      + node_group_name        = "ghest-dev-workers"
      + node_group_name_prefix = (known after apply)
      + node_role_arn          = (known after apply)
      + release_version        = (known after apply)
      + resources              = (known after apply)
      + status                 = (known after apply)
      + subnet_ids             = (known after apply)
      + tags_all               = (known after apply)
      + version                = (known after apply)

      + scaling_config {
          + desired_size = 3
          + max_size     = (known after apply)
          + min_size     = 3
        }

      + update_config {
          + max_unavailable = 1
        }
    }

  # module.eks.aws_iam_openid_connect_provider.self will be created
  + resource "aws_iam_openid_connect_provider" "self" {
      + arn             = (known after apply)
      + client_id_list  = [
          + "sts.amazonaws.com",
        ]
      + id              = (known after apply)
      + tags_all        = (known after apply)
      + thumbprint_list = (known after apply)
      + url             = (known after apply)
    }

  # module.eks.aws_iam_policy.alb will be created
  + resource "aws_iam_policy" "alb" {
      + arn       = (known after apply)
      + id        = (known after apply)
      + name      = "GHESTDevAWSLoadBalancerControllerIAMPolicy"
      + path      = "/"
      + policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = [
                          + "iam:CreateServiceLinkedRole",
                        ]
                      + Condition = {
                          + StringEquals = {
                              + "iam:AWSServiceName" = "elasticloadbalancing.amazonaws.com"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = "*"
                    },
                  + {
                      + Action   = [
                          + "ec2:DescribeAccountAttributes",
                          + "ec2:DescribeAddresses",
                          + "ec2:DescribeAvailabilityZones",
                          + "ec2:DescribeInternetGateways",
                          + "ec2:DescribeVpcs",
                          + "ec2:DescribeVpcPeeringConnections",
                          + "ec2:DescribeSubnets",
                          + "ec2:DescribeSecurityGroups",
                          + "ec2:DescribeInstances",
                          + "ec2:DescribeNetworkInterfaces",
                          + "ec2:DescribeTags",
                          + "ec2:GetCoipPoolUsage",
                          + "ec2:DescribeCoipPools",
                          + "elasticloadbalancing:DescribeLoadBalancers",
                          + "elasticloadbalancing:DescribeLoadBalancerAttributes",
                          + "elasticloadbalancing:DescribeListeners",
                          + "elasticloadbalancing:DescribeListenerCertificates",
                          + "elasticloadbalancing:DescribeSSLPolicies",
                          + "elasticloadbalancing:DescribeRules",
                          + "elasticloadbalancing:DescribeTargetGroups",
                          + "elasticloadbalancing:DescribeTargetGroupAttributes",
                          + "elasticloadbalancing:DescribeTargetHealth",
                          + "elasticloadbalancing:DescribeTags",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                  + {
                      + Action   = [
                          + "cognito-idp:DescribeUserPoolClient",
                          + "acm:ListCertificates",
                          + "acm:DescribeCertificate",
                          + "iam:ListServerCertificates",
                          + "iam:GetServerCertificate",
                          + "waf-regional:GetWebACL",
                          + "waf-regional:GetWebACLForResource",
                          + "waf-regional:AssociateWebACL",
                          + "waf-regional:DisassociateWebACL",
                          + "wafv2:GetWebACL",
                          + "wafv2:GetWebACLForResource",
                          + "wafv2:AssociateWebACL",
                          + "wafv2:DisassociateWebACL",
                          + "shield:GetSubscriptionState",
                          + "shield:DescribeProtection",
                          + "shield:CreateProtection",
                          + "shield:DeleteProtection",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                  + {
                      + Action   = [
                          + "ec2:AuthorizeSecurityGroupIngress",
                          + "ec2:RevokeSecurityGroupIngress",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                  + {
                      + Action   = [
                          + "ec2:CreateSecurityGroup",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                  + {
                      + Action    = [
                          + "ec2:CreateTags",
                        ]
                      + Condition = {
                          + Null         = {
                              + "aws:RequestTag/elbv2.k8s.aws/cluster" = "false"
                            }
                          + StringEquals = {
                              + "ec2:CreateAction" = "CreateSecurityGroup"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = "arn:aws:ec2:*:*:security-group/*"
                    },
                  + {
                      + Action    = [
                          + "ec2:CreateTags",
                          + "ec2:DeleteTags",
                        ]
                      + Condition = {
                          + Null = {
                              + "aws:RequestTag/elbv2.k8s.aws/cluster"  = "true"
                              + "aws:ResourceTag/elbv2.k8s.aws/cluster" = "false"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = "arn:aws:ec2:*:*:security-group/*"
                    },
                  + {
                      + Action    = [
                          + "ec2:AuthorizeSecurityGroupIngress",
                          + "ec2:RevokeSecurityGroupIngress",
                          + "ec2:DeleteSecurityGroup",
                        ]
                      + Condition = {
                          + Null = {
                              + "aws:ResourceTag/elbv2.k8s.aws/cluster" = "false"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = "*"
                    },
                  + {
                      + Action    = [
                          + "elasticloadbalancing:CreateLoadBalancer",
                          + "elasticloadbalancing:CreateTargetGroup",
                        ]
                      + Condition = {
                          + Null = {
                              + "aws:RequestTag/elbv2.k8s.aws/cluster" = "false"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = "*"
                    },
                  + {
                      + Action   = [
                          + "elasticloadbalancing:CreateListener",
                          + "elasticloadbalancing:DeleteListener",
                          + "elasticloadbalancing:CreateRule",
                          + "elasticloadbalancing:DeleteRule",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                  + {
                      + Action    = [
                          + "elasticloadbalancing:AddTags",
                          + "elasticloadbalancing:RemoveTags",
                        ]
                      + Condition = {
                          + Null = {
                              + "aws:RequestTag/elbv2.k8s.aws/cluster"  = "true"
                              + "aws:ResourceTag/elbv2.k8s.aws/cluster" = "false"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = [
                          + "arn:aws:elasticloadbalancing:*:*:targetgroup/*/*",
                          + "arn:aws:elasticloadbalancing:*:*:loadbalancer/net/*/*",
                          + "arn:aws:elasticloadbalancing:*:*:loadbalancer/app/*/*",
                        ]
                    },
                  + {
                      + Action   = [
                          + "elasticloadbalancing:AddTags",
                          + "elasticloadbalancing:RemoveTags",
                        ]
                      + Effect   = "Allow"
                      + Resource = [
                          + "arn:aws:elasticloadbalancing:*:*:listener/net/*/*/*",
                          + "arn:aws:elasticloadbalancing:*:*:listener/app/*/*/*",
                          + "arn:aws:elasticloadbalancing:*:*:listener-rule/net/*/*/*",
                          + "arn:aws:elasticloadbalancing:*:*:listener-rule/app/*/*/*",
                        ]
                    },
                  + {
                      + Action    = [
                          + "elasticloadbalancing:ModifyLoadBalancerAttributes",
                          + "elasticloadbalancing:SetIpAddressType",
                          + "elasticloadbalancing:SetSecurityGroups",
                          + "elasticloadbalancing:SetSubnets",
                          + "elasticloadbalancing:DeleteLoadBalancer",
                          + "elasticloadbalancing:ModifyTargetGroup",
                          + "elasticloadbalancing:ModifyTargetGroupAttributes",
                          + "elasticloadbalancing:DeleteTargetGroup",
                        ]
                      + Condition = {
                          + Null = {
                              + "aws:ResourceTag/elbv2.k8s.aws/cluster" = "false"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = "*"
                    },
                  + {
                      + Action   = [
                          + "elasticloadbalancing:RegisterTargets",
                          + "elasticloadbalancing:DeregisterTargets",
                        ]
                      + Effect   = "Allow"
                      + Resource = "arn:aws:elasticloadbalancing:*:*:targetgroup/*/*"
                    },
                  + {
                      + Action   = [
                          + "elasticloadbalancing:SetWebAcl",
                          + "elasticloadbalancing:ModifyListener",
                          + "elasticloadbalancing:AddListenerCertificates",
                          + "elasticloadbalancing:RemoveListenerCertificates",
                          + "elasticloadbalancing:ModifyRule",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + policy_id = (known after apply)
      + tags_all  = (known after apply)
    }

  # module.eks.aws_iam_policy.autoscaler will be created
  + resource "aws_iam_policy" "autoscaler" {
      + arn       = (known after apply)
      + id        = (known after apply)
      + name      = "GHESTDevEKSClusterAutoscalerIAMPolicy"
      + path      = "/"
      + policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action   = [
                          + "autoscaling:DescribeAutoScalingInstances",
                          + "autoscaling:TerminateInstanceInAutoScalingGroup",
                          + "autoscaling:DescribeAutoScalingGroups",
                          + "autoscaling:DescribeLaunchConfigurations",
                          + "autoscaling:SetDesiredCapacity",
                          + "autoscaling:DescribeTags",
                          + "ec2:DescribeLaunchTemplateVersions",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + policy_id = (known after apply)
      + tags_all  = (known after apply)
    }

  # module.eks.aws_iam_role.alb will be created
  + resource "aws_iam_role" "alb" {
      + arn                   = (known after apply)
      + assume_role_policy    = (known after apply)
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "GHESTDevALBIngressControllerServiceAccountRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = (known after apply)
      + unique_id             = (known after apply)

      + inline_policy {
          + name   = (known after apply)
          + policy = (known after apply)
        }
    }

  # module.eks.aws_iam_role.autoscaler will be created
  + resource "aws_iam_role" "autoscaler" {
      + arn                   = (known after apply)
      + assume_role_policy    = (known after apply)
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "GHESTDevEKSClusterAutoscalerServiceAccountRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = (known after apply)
      + unique_id             = (known after apply)

      + inline_policy {
          + name   = (known after apply)
          + policy = (known after apply)
        }
    }

  # module.eks.aws_iam_role.eks_cluster_role will be created
  + resource "aws_iam_role" "eks_cluster_role" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = "eks.amazonaws.com"
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "GHESTDevEKSClusterRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = (known after apply)
      + unique_id             = (known after apply)

      + inline_policy {
          + name   = (known after apply)
          + policy = (known after apply)
        }
    }

  # module.eks.aws_iam_role.node_group will be created
  + resource "aws_iam_role" "node_group" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = "ec2.amazonaws.com"
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "GHESTDevManagedNodeGroupRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = (known after apply)
      + unique_id             = (known after apply)

      + inline_policy {
          + name   = (known after apply)
          + policy = (known after apply)
        }
    }

  # module.eks.aws_iam_role_policy_attachment.AmazonEC2ContainerRegistryReadOnly will be created
  + resource "aws_iam_role_policy_attachment" "AmazonEC2ContainerRegistryReadOnly" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"
      + role       = "GHESTDevManagedNodeGroupRole"
    }

  # module.eks.aws_iam_role_policy_attachment.AmazonEKSWorkerNodePolicy will be created
  + resource "aws_iam_role_policy_attachment" "AmazonEKSWorkerNodePolicy" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy"
      + role       = "GHESTDevManagedNodeGroupRole"
    }

  # module.eks.aws_iam_role_policy_attachment.AmazonEKS_CNI_Policy will be created
  + resource "aws_iam_role_policy_attachment" "AmazonEKS_CNI_Policy" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy"
      + role       = "GHESTDevManagedNodeGroupRole"
    }

  # module.eks.aws_iam_role_policy_attachment.alb will be created
  + resource "aws_iam_role_policy_attachment" "alb" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = (known after apply)
    }

  # module.eks.aws_iam_role_policy_attachment.autoscaler will be created
  + resource "aws_iam_role_policy_attachment" "autoscaler" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = (known after apply)
    }

  # module.eks.aws_iam_role_policy_attachment.eks_cluster_policy will be created
  + resource "aws_iam_role_policy_attachment" "eks_cluster_policy" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/AmazonEKSClusterPolicy"
      + role       = "GHESTDevEKSClusterRole"
    }

  # module.eks.aws_iam_role_policy_attachment.eks_service_policy will be created
  + resource "aws_iam_role_policy_attachment" "eks_service_policy" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/AmazonEKSServicePolicy"
      + role       = "GHESTDevEKSClusterRole"
    }

  # module.network.aws_default_route_table.public will be created
  + resource "aws_default_route_table" "public" {
      + arn                    = (known after apply)
      + default_route_table_id = (known after apply)
      + id                     = (known after apply)
      + owner_id               = (known after apply)
      + route                  = [
          + {
              + cidr_block                 = "0.0.0.0/0"
              + core_network_arn           = ""
              + destination_prefix_list_id = ""
              + egress_only_gateway_id     = ""
              + gateway_id                 = (known after apply)
              + instance_id                = ""
              + ipv6_cidr_block            = ""
              + nat_gateway_id             = ""
              + network_interface_id       = ""
              + transit_gateway_id         = ""
              + vpc_endpoint_id            = ""
              + vpc_peering_connection_id  = ""
            },
        ]
      + tags                   = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-public-routes"
          + "Project"     = "GHESTDev"
        }
      + tags_all               = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-public-routes"
          + "Project"     = "GHESTDev"
        }
      + vpc_id                 = (known after apply)
    }

  # module.network.aws_eip.self[0] will be created
  + resource "aws_eip" "self" {
      + allocation_id        = (known after apply)
      + association_id       = (known after apply)
      + carrier_ip           = (known after apply)
      + customer_owned_ip    = (known after apply)
      + domain               = (known after apply)
      + id                   = (known after apply)
      + instance             = (known after apply)
      + network_border_group = (known after apply)
      + network_interface    = (known after apply)
      + private_dns          = (known after apply)
      + private_ip           = (known after apply)
      + public_dns           = (known after apply)
      + public_ip            = (known after apply)
      + public_ipv4_pool     = (known after apply)
      + tags_all             = (known after apply)
      + vpc                  = true
    }

  # module.network.aws_eip.self[1] will be created
  + resource "aws_eip" "self" {
      + allocation_id        = (known after apply)
      + association_id       = (known after apply)
      + carrier_ip           = (known after apply)
      + customer_owned_ip    = (known after apply)
      + domain               = (known after apply)
      + id                   = (known after apply)
      + instance             = (known after apply)
      + network_border_group = (known after apply)
      + network_interface    = (known after apply)
      + private_dns          = (known after apply)
      + private_ip           = (known after apply)
      + public_dns           = (known after apply)
      + public_ip            = (known after apply)
      + public_ipv4_pool     = (known after apply)
      + tags_all             = (known after apply)
      + vpc                  = true
    }

  # module.network.aws_eip.self[2] will be created
  + resource "aws_eip" "self" {
      + allocation_id        = (known after apply)
      + association_id       = (known after apply)
      + carrier_ip           = (known after apply)
      + customer_owned_ip    = (known after apply)
      + domain               = (known after apply)
      + id                   = (known after apply)
      + instance             = (known after apply)
      + network_border_group = (known after apply)
      + network_interface    = (known after apply)
      + private_dns          = (known after apply)
      + private_ip           = (known after apply)
      + public_dns           = (known after apply)
      + public_ip            = (known after apply)
      + public_ipv4_pool     = (known after apply)
      + tags_all             = (known after apply)
      + vpc                  = true
    }

  # module.network.aws_internet_gateway.self will be created
  + resource "aws_internet_gateway" "self" {
      + arn      = (known after apply)
      + id       = (known after apply)
      + owner_id = (known after apply)
      + tags     = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-main"
          + "Project"     = "GHESTDev"
        }
      + tags_all = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-main"
          + "Project"     = "GHESTDev"
        }
      + vpc_id   = (known after apply)
    }

  # module.network.aws_nat_gateway.self[0] will be created
  + resource "aws_nat_gateway" "self" {
      + allocation_id        = (known after apply)
      + connectivity_type    = "public"
      + id                   = (known after apply)
      + network_interface_id = (known after apply)
      + private_ip           = (known after apply)
      + public_ip            = (known after apply)
      + subnet_id            = (known after apply)
      + tags                 = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-nat-gateway-us-east-1a"
          + "Project"     = "GHESTDev"
        }
      + tags_all             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-nat-gateway-us-east-1a"
          + "Project"     = "GHESTDev"
        }
    }

  # module.network.aws_nat_gateway.self[1] will be created
  + resource "aws_nat_gateway" "self" {
      + allocation_id        = (known after apply)
      + connectivity_type    = "public"
      + id                   = (known after apply)
      + network_interface_id = (known after apply)
      + private_ip           = (known after apply)
      + public_ip            = (known after apply)
      + subnet_id            = (known after apply)
      + tags                 = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-nat-gateway-us-east-1b"
          + "Project"     = "GHESTDev"
        }
      + tags_all             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-nat-gateway-us-east-1b"
          + "Project"     = "GHESTDev"
        }
    }

  # module.network.aws_nat_gateway.self[2] will be created
  + resource "aws_nat_gateway" "self" {
      + allocation_id        = (known after apply)
      + connectivity_type    = "public"
      + id                   = (known after apply)
      + network_interface_id = (known after apply)
      + private_ip           = (known after apply)
      + public_ip            = (known after apply)
      + subnet_id            = (known after apply)
      + tags                 = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-nat-gateway-us-east-1c"
          + "Project"     = "GHESTDev"
        }
      + tags_all             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-nat-gateway-us-east-1c"
          + "Project"     = "GHESTDev"
        }
    }

  # module.network.aws_route_table.private[0] will be created
  + resource "aws_route_table" "private" {
      + arn              = (known after apply)
      + id               = (known after apply)
      + owner_id         = (known after apply)
      + propagating_vgws = (known after apply)
      + route            = [
          + {
              + carrier_gateway_id         = ""
              + cidr_block                 = "0.0.0.0/0"
              + core_network_arn           = ""
              + destination_prefix_list_id = ""
              + egress_only_gateway_id     = ""
              + gateway_id                 = (known after apply)
              + instance_id                = ""
              + ipv6_cidr_block            = ""
              + local_gateway_id           = ""
              + nat_gateway_id             = ""
              + network_interface_id       = ""
              + transit_gateway_id         = ""
              + vpc_endpoint_id            = ""
              + vpc_peering_connection_id  = ""
            },
        ]
      + tags             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-private-routes"
          + "Project"     = "GHESTDev"
        }
      + tags_all         = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-private-routes"
          + "Project"     = "GHESTDev"
        }
      + vpc_id           = (known after apply)
    }

  # module.network.aws_route_table.private[1] will be created
  + resource "aws_route_table" "private" {
      + arn              = (known after apply)
      + id               = (known after apply)
      + owner_id         = (known after apply)
      + propagating_vgws = (known after apply)
      + route            = [
          + {
              + carrier_gateway_id         = ""
              + cidr_block                 = "0.0.0.0/0"
              + core_network_arn           = ""
              + destination_prefix_list_id = ""
              + egress_only_gateway_id     = ""
              + gateway_id                 = (known after apply)
              + instance_id                = ""
              + ipv6_cidr_block            = ""
              + local_gateway_id           = ""
              + nat_gateway_id             = ""
              + network_interface_id       = ""
              + transit_gateway_id         = ""
              + vpc_endpoint_id            = ""
              + vpc_peering_connection_id  = ""
            },
        ]
      + tags             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-private-routes"
          + "Project"     = "GHESTDev"
        }
      + tags_all         = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-private-routes"
          + "Project"     = "GHESTDev"
        }
      + vpc_id           = (known after apply)
    }

  # module.network.aws_route_table.private[2] will be created
  + resource "aws_route_table" "private" {
      + arn              = (known after apply)
      + id               = (known after apply)
      + owner_id         = (known after apply)
      + propagating_vgws = (known after apply)
      + route            = [
          + {
              + carrier_gateway_id         = ""
              + cidr_block                 = "0.0.0.0/0"
              + core_network_arn           = ""
              + destination_prefix_list_id = ""
              + egress_only_gateway_id     = ""
              + gateway_id                 = (known after apply)
              + instance_id                = ""
              + ipv6_cidr_block            = ""
              + local_gateway_id           = ""
              + nat_gateway_id             = ""
              + network_interface_id       = ""
              + transit_gateway_id         = ""
              + vpc_endpoint_id            = ""
              + vpc_peering_connection_id  = ""
            },
        ]
      + tags             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-private-routes"
          + "Project"     = "GHESTDev"
        }
      + tags_all         = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-private-routes"
          + "Project"     = "GHESTDev"
        }
      + vpc_id           = (known after apply)
    }

  # module.network.aws_route_table_association.private[0] will be created
  + resource "aws_route_table_association" "private" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.network.aws_route_table_association.private[1] will be created
  + resource "aws_route_table_association" "private" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.network.aws_route_table_association.private[2] will be created
  + resource "aws_route_table_association" "private" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.network.aws_route_table_association.public[0] will be created
  + resource "aws_route_table_association" "public" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.network.aws_route_table_association.public[1] will be created
  + resource "aws_route_table_association" "public" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.network.aws_route_table_association.public[2] will be created
  + resource "aws_route_table_association" "public" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.network.aws_security_group.self will be created
  + resource "aws_security_group" "self" {
      + arn                    = (known after apply)
      + description            = "Managed by Terraform"
      + egress                 = [
          + {
              + cidr_blocks      = [
                  + "0.0.0.0/0",
                ]
              + description      = ""
              + from_port        = 0
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "-1"
              + security_groups  = []
              + self             = false
              + to_port          = 0
            },
        ]
      + id                     = (known after apply)
      + ingress                = [
          + {
              + cidr_blocks      = [
                  + "172.27.0.0/21",
                ]
              + description      = ""
              + from_port        = 0
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "-1"
              + security_groups  = []
              + self             = false
              + to_port          = 0
            },
        ]
      + name                   = (known after apply)
      + name_prefix            = (known after apply)
      + owner_id               = (known after apply)
      + revoke_rules_on_delete = false
      + tags                   = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-firewall"
          + "Project"     = "GHESTDev"
        }
      + tags_all               = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-firewall"
          + "Project"     = "GHESTDev"
        }
      + vpc_id                 = (known after apply)
    }

  # module.network.aws_subnet.private[0] will be created
  + resource "aws_subnet" "private" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "us-east-1a"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "172.27.0.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-private-subnet-us-east-1a"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/internal-elb" = "1"
        }
      + tags_all                                       = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-private-subnet-us-east-1a"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/internal-elb" = "1"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.network.aws_subnet.private[1] will be created
  + resource "aws_subnet" "private" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "us-east-1b"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "172.27.1.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-private-subnet-us-east-1b"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/internal-elb" = "1"
        }
      + tags_all                                       = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-private-subnet-us-east-1b"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/internal-elb" = "1"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.network.aws_subnet.private[2] will be created
  + resource "aws_subnet" "private" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "us-east-1c"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "172.27.2.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-private-subnet-us-east-1c"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/internal-elb" = "1"
        }
      + tags_all                                       = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-private-subnet-us-east-1c"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/internal-elb" = "1"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.network.aws_subnet.public[0] will be created
  + resource "aws_subnet" "public" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "us-east-1a"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "172.27.3.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-public-subnet-us-east-1a"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/elb"          = "1"
        }
      + tags_all                                       = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-public-subnet-us-east-1a"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/elb"          = "1"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.network.aws_subnet.public[1] will be created
  + resource "aws_subnet" "public" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "us-east-1b"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "172.27.4.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-public-subnet-us-east-1b"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/elb"          = "1"
        }
      + tags_all                                       = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-public-subnet-us-east-1b"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/elb"          = "1"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.network.aws_subnet.public[2] will be created
  + resource "aws_subnet" "public" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "us-east-1c"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "172.27.5.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-public-subnet-us-east-1c"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/elb"          = "1"
        }
      + tags_all                                       = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-public-subnet-us-east-1c"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/elb"          = "1"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.network.aws_vpc.self will be created
  + resource "aws_vpc" "self" {
      + arn                                  = (known after apply)
      + cidr_block                           = "172.27.0.0/21"
      + default_network_acl_id               = (known after apply)
      + default_route_table_id               = (known after apply)
      + default_security_group_id            = (known after apply)
      + dhcp_options_id                      = (known after apply)
      + enable_classiclink                   = (known after apply)
      + enable_classiclink_dns_support       = (known after apply)
      + enable_dns_hostnames                 = true
      + enable_dns_support                   = true
      + id                                   = (known after apply)
      + instance_tenancy                     = "default"
      + ipv6_association_id                  = (known after apply)
      + ipv6_cidr_block                      = (known after apply)
      + ipv6_cidr_block_network_border_group = (known after apply)
      + main_route_table_id                  = (known after apply)
      + owner_id                             = (known after apply)
      + tags                                 = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev"
          + "Project"     = "GHESTDev"
        }
      + tags_all                             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev"
          + "Project"     = "GHESTDev"
        }
    }

Plan: 41 to add, 0 to change, 0 to destroy.

@baserrato baserrato requested a review from atiterlea May 25, 2023 16:46
@baserrato baserrato temporarily deployed to Azure May 25, 2023 18:22 — with GitHub Actions Inactive
@github-actions
Copy link
Contributor

Full Azure Terraform Plan
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # module.acr.azurerm_container_registry.self will be created
  + resource "azurerm_container_registry" "self" {
      + admin_enabled                 = false
      + admin_password                = (sensitive value)
      + admin_username                = (known after apply)
      + encryption                    = (known after apply)
      + export_policy_enabled         = true
      + id                            = (known after apply)
      + location                      = "eastus"
      + login_server                  = (known after apply)
      + name                          = "sk8simgs"
      + network_rule_bypass_option    = "AzureServices"
      + network_rule_set              = (known after apply)
      + public_network_access_enabled = false
      + resource_group_name           = "sk8s-cluster"
      + retention_policy              = (known after apply)
      + sku                           = "Premium"
      + trust_policy                  = (known after apply)
      + zone_redundancy_enabled       = false
    }

  # module.acr.azurerm_private_endpoint.self will be created
  + resource "azurerm_private_endpoint" "self" {
      + custom_dns_configs            = (known after apply)
      + custom_network_interface_name = "sk8simgs-nic"
      + id                            = (known after apply)
      + location                      = "eastus"
      + name                          = "sk8simgs-private"
      + network_interface             = (known after apply)
      + private_dns_zone_configs      = (known after apply)
      + resource_group_name           = "sk8s-cluster"
      + subnet_id                     = (known after apply)

      + private_dns_zone_group {
          + id                   = (known after apply)
          + name                 = "sk8simgs-dns"
          + private_dns_zone_ids = (known after apply)
        }

      + private_service_connection {
          + is_manual_connection           = false
          + name                           = "sk8simgs-svconn"
          + private_connection_resource_id = (known after apply)
          + private_ip_address             = (known after apply)
          + subresource_names              = [
              + "registry",
            ]
        }
    }

  # module.aks.azurerm_kubernetes_cluster.self will be created
  + resource "azurerm_kubernetes_cluster" "self" {
      + api_server_authorized_ip_ranges     = (known after apply)
      + dns_prefix                          = "sk8s"
      + fqdn                                = (known after apply)
      + http_application_routing_zone_name  = (known after apply)
      + id                                  = (known after apply)
      + image_cleaner_enabled               = false
      + image_cleaner_interval_hours        = 48
      + kube_admin_config                   = (sensitive value)
      + kube_admin_config_raw               = (sensitive value)
      + kube_config                         = (sensitive value)
      + kube_config_raw                     = (sensitive value)
      + kubernetes_version                  = (known after apply)
      + location                            = "eastus"
      + name                                = "sk8s"
      + node_resource_group                 = "sk8s-cluster-sk8s"
      + node_resource_group_id              = (known after apply)
      + oidc_issuer_url                     = (known after apply)
      + portal_fqdn                         = (known after apply)
      + private_cluster_enabled             = true
      + private_cluster_public_fqdn_enabled = false
      + private_dns_zone_id                 = (known after apply)
      + private_fqdn                        = (known after apply)
      + public_network_access_enabled       = true
      + resource_group_name                 = "sk8s-cluster"
      + role_based_access_control_enabled   = true
      + run_command_enabled                 = true
      + sku_tier                            = "Free"
      + workload_identity_enabled           = false

      + aci_connector_linux {
          + connector_identity = (known after apply)
          + subnet_name        = "aci"
        }

      + api_server_access_profile {
          + authorized_ip_ranges     = (known after apply)
          + subnet_id                = (known after apply)
          + vnet_integration_enabled = (known after apply)
        }

      + auto_scaler_profile {
          + balance_similar_node_groups      = false
          + empty_bulk_delete_max            = (known after apply)
          + expander                         = "random"
          + max_graceful_termination_sec     = (known after apply)
          + max_node_provisioning_time       = "15m"
          + max_unready_nodes                = 3
          + max_unready_percentage           = 45
          + new_pod_scale_up_delay           = (known after apply)
          + scale_down_delay_after_add       = (known after apply)
          + scale_down_delay_after_delete    = (known after apply)
          + scale_down_delay_after_failure   = (known after apply)
          + scale_down_unneeded              = (known after apply)
          + scale_down_unready               = (known after apply)
          + scale_down_utilization_threshold = (known after apply)
          + scan_interval                    = (known after apply)
          + skip_nodes_with_local_storage    = true
          + skip_nodes_with_system_pods      = true
        }

      + default_node_pool {
          + enable_auto_scaling  = true
          + kubelet_disk_type    = (known after apply)
          + max_count            = 9
          + max_pods             = (known after apply)
          + min_count            = 3
          + name                 = "hot"
          + node_count           = (known after apply)
          + node_labels          = (known after apply)
          + orchestrator_version = (known after apply)
          + os_disk_size_gb      = (known after apply)
          + os_disk_type         = "Managed"
          + os_sku               = (known after apply)
          + scale_down_mode      = "Delete"
          + type                 = "VirtualMachineScaleSets"
          + ultra_ssd_enabled    = false
          + vm_size              = "Standard_D2s_v3"
          + vnet_subnet_id       = (known after apply)
          + workload_runtime     = (known after apply)
          + zones                = [
              + "1",
              + "2",
              + "3",
            ]
        }

      + identity {
          + principal_id = (known after apply)
          + tenant_id    = (known after apply)
          + type         = "SystemAssigned"
        }

      + kubelet_identity {
          + client_id                 = (known after apply)
          + object_id                 = (known after apply)
          + user_assigned_identity_id = (known after apply)
        }

      + network_profile {
          + dns_service_ip     = "10.1.64.4"
          + docker_bridge_cidr = (known after apply)
          + ip_versions        = (known after apply)
          + load_balancer_sku  = "standard"
          + network_mode       = (known after apply)
          + network_plugin     = "azure"
          + network_policy     = "azure"
          + outbound_type      = "loadBalancer"
          + pod_cidr           = (known after apply)
          + pod_cidrs          = (known after apply)
          + service_cidr       = "10.1.64.0/18"
          + service_cidrs      = (known after apply)

          + load_balancer_profile {
              + effective_outbound_ips      = (known after apply)
              + idle_timeout_in_minutes     = (known after apply)
              + managed_outbound_ip_count   = (known after apply)
              + managed_outbound_ipv6_count = (known after apply)
              + outbound_ip_address_ids     = (known after apply)
              + outbound_ip_prefix_ids      = (known after apply)
              + outbound_ports_allocated    = (known after apply)
            }

          + nat_gateway_profile {
              + effective_outbound_ips    = (known after apply)
              + idle_timeout_in_minutes   = (known after apply)
              + managed_outbound_ip_count = (known after apply)
            }
        }

      + windows_profile {
          + admin_password = (sensitive value)
          + admin_username = (known after apply)
          + license        = (known after apply)

          + gmsa {
              + dns_server  = (known after apply)
              + root_domain = (known after apply)
            }
        }
    }

  # module.aks.azurerm_kubernetes_cluster_node_pool.self["spot"] will be created
  + resource "azurerm_kubernetes_cluster_node_pool" "self" {
      + enable_auto_scaling   = true
      + eviction_policy       = "Delete"
      + id                    = (known after apply)
      + kubelet_disk_type     = (known after apply)
      + kubernetes_cluster_id = (known after apply)
      + max_count             = 3
      + max_pods              = (known after apply)
      + min_count             = 1
      + mode                  = "User"
      + name                  = "spot"
      + node_count            = (known after apply)
      + node_labels           = (known after apply)
      + orchestrator_version  = (known after apply)
      + os_disk_size_gb       = (known after apply)
      + os_disk_type          = "Managed"
      + os_sku                = (known after apply)
      + os_type               = "Linux"
      + priority              = "Spot"
      + scale_down_mode       = "Delete"
      + spot_max_price        = -1
      + ultra_ssd_enabled     = false
      + vm_size               = "Standard_D2s_v3"
      + vnet_subnet_id        = (known after apply)
      + zones                 = [
          + "1",
          + "2",
          + "3",
        ]
    }

  # module.dns.azurerm_private_dns_zone.self[0] will be created
  + resource "azurerm_private_dns_zone" "self" {
      + id                                                    = (known after apply)
      + max_number_of_record_sets                             = (known after apply)
      + max_number_of_virtual_network_links                   = (known after apply)
      + max_number_of_virtual_network_links_with_registration = (known after apply)
      + name                                                  = "sk8s.internal.liatr.io"
      + number_of_record_sets                                 = (known after apply)
      + resource_group_name                                   = "sk8s-cluster"

      + soa_record {
          + email         = (known after apply)
          + expire_time   = (known after apply)
          + fqdn          = (known after apply)
          + host_name     = (known after apply)
          + minimum_ttl   = (known after apply)
          + refresh_time  = (known after apply)
          + retry_time    = (known after apply)
          + serial_number = (known after apply)
          + tags          = (known after apply)
          + ttl           = (known after apply)
        }
    }

  # module.network.azurerm_network_security_group.self will be created
  + resource "azurerm_network_security_group" "self" {
      + id                  = (known after apply)
      + location            = "eastus"
      + name                = "sk8s-cluster-vnet-nsg"
      + resource_group_name = "sk8s-cluster"
      + security_rule       = (known after apply)
    }

  # module.network.azurerm_subnet.self[0] will be created
  + resource "azurerm_subnet" "self" {
      + address_prefixes                               = [
          + "10.1.0.0/18",
        ]
      + enforce_private_link_endpoint_network_policies = (known after apply)
      + enforce_private_link_service_network_policies  = (known after apply)
      + id                                             = (known after apply)
      + name                                           = "nodes"
      + private_endpoint_network_policies_enabled      = (known after apply)
      + private_link_service_network_policies_enabled  = (known after apply)
      + resource_group_name                            = "sk8s-cluster"
      + virtual_network_name                           = "sk8s-cluster-vnet"
    }

  # module.network.azurerm_subnet.self[1] will be created
  + resource "azurerm_subnet" "self" {
      + address_prefixes                               = [
          + "10.1.128.0/18",
        ]
      + enforce_private_link_endpoint_network_policies = (known after apply)
      + enforce_private_link_service_network_policies  = (known after apply)
      + id                                             = (known after apply)
      + name                                           = "aci"
      + private_endpoint_network_policies_enabled      = (known after apply)
      + private_link_service_network_policies_enabled  = (known after apply)
      + resource_group_name                            = "sk8s-cluster"
      + virtual_network_name                           = "sk8s-cluster-vnet"
    }

  # module.network.azurerm_subnet_network_security_group_association.self[0] will be created
  + resource "azurerm_subnet_network_security_group_association" "self" {
      + id                        = (known after apply)
      + network_security_group_id = (known after apply)
      + subnet_id                 = (known after apply)
    }

  # module.network.azurerm_subnet_network_security_group_association.self[1] will be created
  + resource "azurerm_subnet_network_security_group_association" "self" {
      + id                        = (known after apply)
      + network_security_group_id = (known after apply)
      + subnet_id                 = (known after apply)
    }

  # module.network.azurerm_virtual_network.self will be created
  + resource "azurerm_virtual_network" "self" {
      + address_space       = [
          + "10.1.0.0/16",
        ]
      + dns_servers         = []
      + guid                = (known after apply)
      + id                  = (known after apply)
      + location            = "eastus"
      + name                = "sk8s-cluster-vnet"
      + resource_group_name = "sk8s-cluster"
      + subnet              = (known after apply)
      + tags                = {
          + "owner"   = "GitHub Practice"
          + "project" = "Sk8s"
        }
    }

Plan: 11 to add, 0 to change, 0 to destroy.

@baserrato baserrato temporarily deployed to AWS May 25, 2023 18:25 — with GitHub Actions Inactive
@baserrato baserrato temporarily deployed to Azure May 25, 2023 18:25 — with GitHub Actions Inactive
@github-actions
Copy link
Contributor

Full AWS Terraform Plan
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create
 <= read (data resources)

Terraform will perform the following actions:

  # module.eks.data.aws_iam_policy_document.alb will be read during apply
  # (config refers to values not yet known)
 <= data "aws_iam_policy_document" "alb" {
      + id   = (known after apply)
      + json = (known after apply)

      + statement {
          + actions = [
              + "sts:AssumeRoleWithWebIdentity",
            ]
          + effect  = "Allow"

          + condition {
              + test     = "StringEquals"
              + values   = [
                  + "system:serviceaccount:kube-system:aws-load-balancer-controller",
                ]
              + variable = (known after apply)
            }

          + principals {
              + identifiers = [
                  + (known after apply),
                ]
              + type        = "Federated"
            }
        }
    }

  # module.eks.data.aws_iam_policy_document.autoscaler will be read during apply
  # (config refers to values not yet known)
 <= data "aws_iam_policy_document" "autoscaler" {
      + id   = (known after apply)
      + json = (known after apply)

      + statement {
          + actions = [
              + "sts:AssumeRoleWithWebIdentity",
            ]
          + effect  = "Allow"

          + condition {
              + test     = "StringEquals"
              + values   = [
                  + "system:serviceaccount:kube-system:cluster-autoscaler",
                ]
              + variable = (known after apply)
            }

          + principals {
              + identifiers = [
                  + (known after apply),
                ]
              + type        = "Federated"
            }
        }
    }

  # module.eks.data.aws_subnet.private will be read during apply
  # (config refers to values not yet known)
 <= data "aws_subnet" "private" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = (known after apply)
      + availability_zone                              = (known after apply)
      + availability_zone_id                           = (known after apply)
      + available_ip_address_count                     = (known after apply)
      + cidr_block                                     = (known after apply)
      + customer_owned_ipv4_pool                       = (known after apply)
      + default_for_az                                 = (known after apply)
      + enable_dns64                                   = (known after apply)
      + enable_resource_name_dns_a_record_on_launch    = (known after apply)
      + enable_resource_name_dns_aaaa_record_on_launch = (known after apply)
      + id                                             = (known after apply)
      + ipv6_cidr_block                                = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = (known after apply)
      + map_customer_owned_ip_on_launch                = (known after apply)
      + map_public_ip_on_launch                        = (known after apply)
      + outpost_arn                                    = (known after apply)
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + state                                          = (known after apply)
      + tags                                           = (known after apply)
      + vpc_id                                         = (known after apply)

      + timeouts {
          + read = (known after apply)
        }
    }

  # module.eks.data.tls_certificate.self will be read during apply
  # (config refers to values not yet known)
 <= data "tls_certificate" "self" {
      + certificates = (known after apply)
      + id           = (known after apply)
      + url          = (known after apply)
    }

  # module.eks.aws_eks_cluster.self will be created
  + resource "aws_eks_cluster" "self" {
      + arn                   = (known after apply)
      + certificate_authority = (known after apply)
      + created_at            = (known after apply)
      + endpoint              = (known after apply)
      + id                    = (known after apply)
      + identity              = (known after apply)
      + name                  = "ghest-dev"
      + platform_version      = (known after apply)
      + role_arn              = (known after apply)
      + status                = (known after apply)
      + tags                  = {
          + "Environment" = "Development"
          + "Project"     = "GHESTDev"
        }
      + tags_all              = {
          + "Environment" = "Development"
          + "Project"     = "GHESTDev"
        }
      + version               = (known after apply)

      + kubernetes_network_config {
          + ip_family         = (known after apply)
          + service_ipv4_cidr = (known after apply)
        }

      + vpc_config {
          + cluster_security_group_id = (known after apply)
          + endpoint_private_access   = true
          + endpoint_public_access    = false
          + public_access_cidrs       = (known after apply)
          + subnet_ids                = (known after apply)
          + vpc_id                    = (known after apply)
        }
    }

  # module.eks.aws_eks_node_group.self[0] will be created
  + resource "aws_eks_node_group" "self" {
      + ami_type               = (known after apply)
      + arn                    = (known after apply)
      + capacity_type          = "ON_DEMAND"
      + cluster_name           = "ghest-dev"
      + disk_size              = 100
      + id                     = (known after apply)
      + instance_types         = [
          + "t3.large",
        ]
      + node_group_name        = "ghest-dev-workers"
      + node_group_name_prefix = (known after apply)
      + node_role_arn          = (known after apply)
      + release_version        = (known after apply)
      + resources              = (known after apply)
      + status                 = (known after apply)
      + subnet_ids             = (known after apply)
      + tags_all               = (known after apply)
      + version                = (known after apply)

      + scaling_config {
          + desired_size = 3
          + max_size     = (known after apply)
          + min_size     = 3
        }

      + update_config {
          + max_unavailable = 1
        }
    }

  # module.eks.aws_iam_openid_connect_provider.self will be created
  + resource "aws_iam_openid_connect_provider" "self" {
      + arn             = (known after apply)
      + client_id_list  = [
          + "sts.amazonaws.com",
        ]
      + id              = (known after apply)
      + tags_all        = (known after apply)
      + thumbprint_list = (known after apply)
      + url             = (known after apply)
    }

  # module.eks.aws_iam_policy.alb will be created
  + resource "aws_iam_policy" "alb" {
      + arn       = (known after apply)
      + id        = (known after apply)
      + name      = "GHESTDevAWSLoadBalancerControllerIAMPolicy"
      + path      = "/"
      + policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = [
                          + "iam:CreateServiceLinkedRole",
                        ]
                      + Condition = {
                          + StringEquals = {
                              + "iam:AWSServiceName" = "elasticloadbalancing.amazonaws.com"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = "*"
                    },
                  + {
                      + Action   = [
                          + "ec2:DescribeAccountAttributes",
                          + "ec2:DescribeAddresses",
                          + "ec2:DescribeAvailabilityZones",
                          + "ec2:DescribeInternetGateways",
                          + "ec2:DescribeVpcs",
                          + "ec2:DescribeVpcPeeringConnections",
                          + "ec2:DescribeSubnets",
                          + "ec2:DescribeSecurityGroups",
                          + "ec2:DescribeInstances",
                          + "ec2:DescribeNetworkInterfaces",
                          + "ec2:DescribeTags",
                          + "ec2:GetCoipPoolUsage",
                          + "ec2:DescribeCoipPools",
                          + "elasticloadbalancing:DescribeLoadBalancers",
                          + "elasticloadbalancing:DescribeLoadBalancerAttributes",
                          + "elasticloadbalancing:DescribeListeners",
                          + "elasticloadbalancing:DescribeListenerCertificates",
                          + "elasticloadbalancing:DescribeSSLPolicies",
                          + "elasticloadbalancing:DescribeRules",
                          + "elasticloadbalancing:DescribeTargetGroups",
                          + "elasticloadbalancing:DescribeTargetGroupAttributes",
                          + "elasticloadbalancing:DescribeTargetHealth",
                          + "elasticloadbalancing:DescribeTags",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                  + {
                      + Action   = [
                          + "cognito-idp:DescribeUserPoolClient",
                          + "acm:ListCertificates",
                          + "acm:DescribeCertificate",
                          + "iam:ListServerCertificates",
                          + "iam:GetServerCertificate",
                          + "waf-regional:GetWebACL",
                          + "waf-regional:GetWebACLForResource",
                          + "waf-regional:AssociateWebACL",
                          + "waf-regional:DisassociateWebACL",
                          + "wafv2:GetWebACL",
                          + "wafv2:GetWebACLForResource",
                          + "wafv2:AssociateWebACL",
                          + "wafv2:DisassociateWebACL",
                          + "shield:GetSubscriptionState",
                          + "shield:DescribeProtection",
                          + "shield:CreateProtection",
                          + "shield:DeleteProtection",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                  + {
                      + Action   = [
                          + "ec2:AuthorizeSecurityGroupIngress",
                          + "ec2:RevokeSecurityGroupIngress",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                  + {
                      + Action   = [
                          + "ec2:CreateSecurityGroup",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                  + {
                      + Action    = [
                          + "ec2:CreateTags",
                        ]
                      + Condition = {
                          + Null         = {
                              + "aws:RequestTag/elbv2.k8s.aws/cluster" = "false"
                            }
                          + StringEquals = {
                              + "ec2:CreateAction" = "CreateSecurityGroup"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = "arn:aws:ec2:*:*:security-group/*"
                    },
                  + {
                      + Action    = [
                          + "ec2:CreateTags",
                          + "ec2:DeleteTags",
                        ]
                      + Condition = {
                          + Null = {
                              + "aws:RequestTag/elbv2.k8s.aws/cluster"  = "true"
                              + "aws:ResourceTag/elbv2.k8s.aws/cluster" = "false"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = "arn:aws:ec2:*:*:security-group/*"
                    },
                  + {
                      + Action    = [
                          + "ec2:AuthorizeSecurityGroupIngress",
                          + "ec2:RevokeSecurityGroupIngress",
                          + "ec2:DeleteSecurityGroup",
                        ]
                      + Condition = {
                          + Null = {
                              + "aws:ResourceTag/elbv2.k8s.aws/cluster" = "false"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = "*"
                    },
                  + {
                      + Action    = [
                          + "elasticloadbalancing:CreateLoadBalancer",
                          + "elasticloadbalancing:CreateTargetGroup",
                        ]
                      + Condition = {
                          + Null = {
                              + "aws:RequestTag/elbv2.k8s.aws/cluster" = "false"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = "*"
                    },
                  + {
                      + Action   = [
                          + "elasticloadbalancing:CreateListener",
                          + "elasticloadbalancing:DeleteListener",
                          + "elasticloadbalancing:CreateRule",
                          + "elasticloadbalancing:DeleteRule",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                  + {
                      + Action    = [
                          + "elasticloadbalancing:AddTags",
                          + "elasticloadbalancing:RemoveTags",
                        ]
                      + Condition = {
                          + Null = {
                              + "aws:RequestTag/elbv2.k8s.aws/cluster"  = "true"
                              + "aws:ResourceTag/elbv2.k8s.aws/cluster" = "false"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = [
                          + "arn:aws:elasticloadbalancing:*:*:targetgroup/*/*",
                          + "arn:aws:elasticloadbalancing:*:*:loadbalancer/net/*/*",
                          + "arn:aws:elasticloadbalancing:*:*:loadbalancer/app/*/*",
                        ]
                    },
                  + {
                      + Action   = [
                          + "elasticloadbalancing:AddTags",
                          + "elasticloadbalancing:RemoveTags",
                        ]
                      + Effect   = "Allow"
                      + Resource = [
                          + "arn:aws:elasticloadbalancing:*:*:listener/net/*/*/*",
                          + "arn:aws:elasticloadbalancing:*:*:listener/app/*/*/*",
                          + "arn:aws:elasticloadbalancing:*:*:listener-rule/net/*/*/*",
                          + "arn:aws:elasticloadbalancing:*:*:listener-rule/app/*/*/*",
                        ]
                    },
                  + {
                      + Action    = [
                          + "elasticloadbalancing:ModifyLoadBalancerAttributes",
                          + "elasticloadbalancing:SetIpAddressType",
                          + "elasticloadbalancing:SetSecurityGroups",
                          + "elasticloadbalancing:SetSubnets",
                          + "elasticloadbalancing:DeleteLoadBalancer",
                          + "elasticloadbalancing:ModifyTargetGroup",
                          + "elasticloadbalancing:ModifyTargetGroupAttributes",
                          + "elasticloadbalancing:DeleteTargetGroup",
                        ]
                      + Condition = {
                          + Null = {
                              + "aws:ResourceTag/elbv2.k8s.aws/cluster" = "false"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = "*"
                    },
                  + {
                      + Action   = [
                          + "elasticloadbalancing:RegisterTargets",
                          + "elasticloadbalancing:DeregisterTargets",
                        ]
                      + Effect   = "Allow"
                      + Resource = "arn:aws:elasticloadbalancing:*:*:targetgroup/*/*"
                    },
                  + {
                      + Action   = [
                          + "elasticloadbalancing:SetWebAcl",
                          + "elasticloadbalancing:ModifyListener",
                          + "elasticloadbalancing:AddListenerCertificates",
                          + "elasticloadbalancing:RemoveListenerCertificates",
                          + "elasticloadbalancing:ModifyRule",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + policy_id = (known after apply)
      + tags_all  = (known after apply)
    }

  # module.eks.aws_iam_policy.autoscaler will be created
  + resource "aws_iam_policy" "autoscaler" {
      + arn       = (known after apply)
      + id        = (known after apply)
      + name      = "GHESTDevEKSClusterAutoscalerIAMPolicy"
      + path      = "/"
      + policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action   = [
                          + "autoscaling:DescribeAutoScalingInstances",
                          + "autoscaling:TerminateInstanceInAutoScalingGroup",
                          + "autoscaling:DescribeAutoScalingGroups",
                          + "autoscaling:DescribeLaunchConfigurations",
                          + "autoscaling:SetDesiredCapacity",
                          + "autoscaling:DescribeTags",
                          + "ec2:DescribeLaunchTemplateVersions",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + policy_id = (known after apply)
      + tags_all  = (known after apply)
    }

  # module.eks.aws_iam_role.alb will be created
  + resource "aws_iam_role" "alb" {
      + arn                   = (known after apply)
      + assume_role_policy    = (known after apply)
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "GHESTDevALBIngressControllerServiceAccountRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = (known after apply)
      + unique_id             = (known after apply)

      + inline_policy {
          + name   = (known after apply)
          + policy = (known after apply)
        }
    }

  # module.eks.aws_iam_role.autoscaler will be created
  + resource "aws_iam_role" "autoscaler" {
      + arn                   = (known after apply)
      + assume_role_policy    = (known after apply)
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "GHESTDevEKSClusterAutoscalerServiceAccountRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = (known after apply)
      + unique_id             = (known after apply)

      + inline_policy {
          + name   = (known after apply)
          + policy = (known after apply)
        }
    }

  # module.eks.aws_iam_role.eks_cluster_role will be created
  + resource "aws_iam_role" "eks_cluster_role" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = "eks.amazonaws.com"
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "GHESTDevEKSClusterRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = (known after apply)
      + unique_id             = (known after apply)

      + inline_policy {
          + name   = (known after apply)
          + policy = (known after apply)
        }
    }

  # module.eks.aws_iam_role.node_group will be created
  + resource "aws_iam_role" "node_group" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = "ec2.amazonaws.com"
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "GHESTDevManagedNodeGroupRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = (known after apply)
      + unique_id             = (known after apply)

      + inline_policy {
          + name   = (known after apply)
          + policy = (known after apply)
        }
    }

  # module.eks.aws_iam_role_policy_attachment.AmazonEC2ContainerRegistryReadOnly will be created
  + resource "aws_iam_role_policy_attachment" "AmazonEC2ContainerRegistryReadOnly" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"
      + role       = "GHESTDevManagedNodeGroupRole"
    }

  # module.eks.aws_iam_role_policy_attachment.AmazonEKSWorkerNodePolicy will be created
  + resource "aws_iam_role_policy_attachment" "AmazonEKSWorkerNodePolicy" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy"
      + role       = "GHESTDevManagedNodeGroupRole"
    }

  # module.eks.aws_iam_role_policy_attachment.AmazonEKS_CNI_Policy will be created
  + resource "aws_iam_role_policy_attachment" "AmazonEKS_CNI_Policy" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy"
      + role       = "GHESTDevManagedNodeGroupRole"
    }

  # module.eks.aws_iam_role_policy_attachment.alb will be created
  + resource "aws_iam_role_policy_attachment" "alb" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = (known after apply)
    }

  # module.eks.aws_iam_role_policy_attachment.autoscaler will be created
  + resource "aws_iam_role_policy_attachment" "autoscaler" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = (known after apply)
    }

  # module.eks.aws_iam_role_policy_attachment.eks_cluster_policy will be created
  + resource "aws_iam_role_policy_attachment" "eks_cluster_policy" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/AmazonEKSClusterPolicy"
      + role       = "GHESTDevEKSClusterRole"
    }

  # module.eks.aws_iam_role_policy_attachment.eks_service_policy will be created
  + resource "aws_iam_role_policy_attachment" "eks_service_policy" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/AmazonEKSServicePolicy"
      + role       = "GHESTDevEKSClusterRole"
    }

  # module.network.aws_default_route_table.public will be created
  + resource "aws_default_route_table" "public" {
      + arn                    = (known after apply)
      + default_route_table_id = (known after apply)
      + id                     = (known after apply)
      + owner_id               = (known after apply)
      + route                  = [
          + {
              + cidr_block                 = "0.0.0.0/0"
              + core_network_arn           = ""
              + destination_prefix_list_id = ""
              + egress_only_gateway_id     = ""
              + gateway_id                 = (known after apply)
              + instance_id                = ""
              + ipv6_cidr_block            = ""
              + nat_gateway_id             = ""
              + network_interface_id       = ""
              + transit_gateway_id         = ""
              + vpc_endpoint_id            = ""
              + vpc_peering_connection_id  = ""
            },
        ]
      + tags                   = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-public-routes"
          + "Project"     = "GHESTDev"
        }
      + tags_all               = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-public-routes"
          + "Project"     = "GHESTDev"
        }
      + vpc_id                 = (known after apply)
    }

  # module.network.aws_eip.self[0] will be created
  + resource "aws_eip" "self" {
      + allocation_id        = (known after apply)
      + association_id       = (known after apply)
      + carrier_ip           = (known after apply)
      + customer_owned_ip    = (known after apply)
      + domain               = (known after apply)
      + id                   = (known after apply)
      + instance             = (known after apply)
      + network_border_group = (known after apply)
      + network_interface    = (known after apply)
      + private_dns          = (known after apply)
      + private_ip           = (known after apply)
      + public_dns           = (known after apply)
      + public_ip            = (known after apply)
      + public_ipv4_pool     = (known after apply)
      + tags_all             = (known after apply)
      + vpc                  = true
    }

  # module.network.aws_eip.self[1] will be created
  + resource "aws_eip" "self" {
      + allocation_id        = (known after apply)
      + association_id       = (known after apply)
      + carrier_ip           = (known after apply)
      + customer_owned_ip    = (known after apply)
      + domain               = (known after apply)
      + id                   = (known after apply)
      + instance             = (known after apply)
      + network_border_group = (known after apply)
      + network_interface    = (known after apply)
      + private_dns          = (known after apply)
      + private_ip           = (known after apply)
      + public_dns           = (known after apply)
      + public_ip            = (known after apply)
      + public_ipv4_pool     = (known after apply)
      + tags_all             = (known after apply)
      + vpc                  = true
    }

  # module.network.aws_eip.self[2] will be created
  + resource "aws_eip" "self" {
      + allocation_id        = (known after apply)
      + association_id       = (known after apply)
      + carrier_ip           = (known after apply)
      + customer_owned_ip    = (known after apply)
      + domain               = (known after apply)
      + id                   = (known after apply)
      + instance             = (known after apply)
      + network_border_group = (known after apply)
      + network_interface    = (known after apply)
      + private_dns          = (known after apply)
      + private_ip           = (known after apply)
      + public_dns           = (known after apply)
      + public_ip            = (known after apply)
      + public_ipv4_pool     = (known after apply)
      + tags_all             = (known after apply)
      + vpc                  = true
    }

  # module.network.aws_internet_gateway.self will be created
  + resource "aws_internet_gateway" "self" {
      + arn      = (known after apply)
      + id       = (known after apply)
      + owner_id = (known after apply)
      + tags     = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-main"
          + "Project"     = "GHESTDev"
        }
      + tags_all = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-main"
          + "Project"     = "GHESTDev"
        }
      + vpc_id   = (known after apply)
    }

  # module.network.aws_nat_gateway.self[0] will be created
  + resource "aws_nat_gateway" "self" {
      + allocation_id        = (known after apply)
      + connectivity_type    = "public"
      + id                   = (known after apply)
      + network_interface_id = (known after apply)
      + private_ip           = (known after apply)
      + public_ip            = (known after apply)
      + subnet_id            = (known after apply)
      + tags                 = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-nat-gateway-us-east-1a"
          + "Project"     = "GHESTDev"
        }
      + tags_all             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-nat-gateway-us-east-1a"
          + "Project"     = "GHESTDev"
        }
    }

  # module.network.aws_nat_gateway.self[1] will be created
  + resource "aws_nat_gateway" "self" {
      + allocation_id        = (known after apply)
      + connectivity_type    = "public"
      + id                   = (known after apply)
      + network_interface_id = (known after apply)
      + private_ip           = (known after apply)
      + public_ip            = (known after apply)
      + subnet_id            = (known after apply)
      + tags                 = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-nat-gateway-us-east-1b"
          + "Project"     = "GHESTDev"
        }
      + tags_all             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-nat-gateway-us-east-1b"
          + "Project"     = "GHESTDev"
        }
    }

  # module.network.aws_nat_gateway.self[2] will be created
  + resource "aws_nat_gateway" "self" {
      + allocation_id        = (known after apply)
      + connectivity_type    = "public"
      + id                   = (known after apply)
      + network_interface_id = (known after apply)
      + private_ip           = (known after apply)
      + public_ip            = (known after apply)
      + subnet_id            = (known after apply)
      + tags                 = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-nat-gateway-us-east-1c"
          + "Project"     = "GHESTDev"
        }
      + tags_all             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-nat-gateway-us-east-1c"
          + "Project"     = "GHESTDev"
        }
    }

  # module.network.aws_route_table.private[0] will be created
  + resource "aws_route_table" "private" {
      + arn              = (known after apply)
      + id               = (known after apply)
      + owner_id         = (known after apply)
      + propagating_vgws = (known after apply)
      + route            = [
          + {
              + carrier_gateway_id         = ""
              + cidr_block                 = "0.0.0.0/0"
              + core_network_arn           = ""
              + destination_prefix_list_id = ""
              + egress_only_gateway_id     = ""
              + gateway_id                 = (known after apply)
              + instance_id                = ""
              + ipv6_cidr_block            = ""
              + local_gateway_id           = ""
              + nat_gateway_id             = ""
              + network_interface_id       = ""
              + transit_gateway_id         = ""
              + vpc_endpoint_id            = ""
              + vpc_peering_connection_id  = ""
            },
        ]
      + tags             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-private-routes"
          + "Project"     = "GHESTDev"
        }
      + tags_all         = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-private-routes"
          + "Project"     = "GHESTDev"
        }
      + vpc_id           = (known after apply)
    }

  # module.network.aws_route_table.private[1] will be created
  + resource "aws_route_table" "private" {
      + arn              = (known after apply)
      + id               = (known after apply)
      + owner_id         = (known after apply)
      + propagating_vgws = (known after apply)
      + route            = [
          + {
              + carrier_gateway_id         = ""
              + cidr_block                 = "0.0.0.0/0"
              + core_network_arn           = ""
              + destination_prefix_list_id = ""
              + egress_only_gateway_id     = ""
              + gateway_id                 = (known after apply)
              + instance_id                = ""
              + ipv6_cidr_block            = ""
              + local_gateway_id           = ""
              + nat_gateway_id             = ""
              + network_interface_id       = ""
              + transit_gateway_id         = ""
              + vpc_endpoint_id            = ""
              + vpc_peering_connection_id  = ""
            },
        ]
      + tags             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-private-routes"
          + "Project"     = "GHESTDev"
        }
      + tags_all         = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-private-routes"
          + "Project"     = "GHESTDev"
        }
      + vpc_id           = (known after apply)
    }

  # module.network.aws_route_table.private[2] will be created
  + resource "aws_route_table" "private" {
      + arn              = (known after apply)
      + id               = (known after apply)
      + owner_id         = (known after apply)
      + propagating_vgws = (known after apply)
      + route            = [
          + {
              + carrier_gateway_id         = ""
              + cidr_block                 = "0.0.0.0/0"
              + core_network_arn           = ""
              + destination_prefix_list_id = ""
              + egress_only_gateway_id     = ""
              + gateway_id                 = (known after apply)
              + instance_id                = ""
              + ipv6_cidr_block            = ""
              + local_gateway_id           = ""
              + nat_gateway_id             = ""
              + network_interface_id       = ""
              + transit_gateway_id         = ""
              + vpc_endpoint_id            = ""
              + vpc_peering_connection_id  = ""
            },
        ]
      + tags             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-private-routes"
          + "Project"     = "GHESTDev"
        }
      + tags_all         = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-private-routes"
          + "Project"     = "GHESTDev"
        }
      + vpc_id           = (known after apply)
    }

  # module.network.aws_route_table_association.private[0] will be created
  + resource "aws_route_table_association" "private" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.network.aws_route_table_association.private[1] will be created
  + resource "aws_route_table_association" "private" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.network.aws_route_table_association.private[2] will be created
  + resource "aws_route_table_association" "private" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.network.aws_route_table_association.public[0] will be created
  + resource "aws_route_table_association" "public" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.network.aws_route_table_association.public[1] will be created
  + resource "aws_route_table_association" "public" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.network.aws_route_table_association.public[2] will be created
  + resource "aws_route_table_association" "public" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.network.aws_security_group.self will be created
  + resource "aws_security_group" "self" {
      + arn                    = (known after apply)
      + description            = "Managed by Terraform"
      + egress                 = [
          + {
              + cidr_blocks      = [
                  + "0.0.0.0/0",
                ]
              + description      = ""
              + from_port        = 0
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "-1"
              + security_groups  = []
              + self             = false
              + to_port          = 0
            },
        ]
      + id                     = (known after apply)
      + ingress                = [
          + {
              + cidr_blocks      = [
                  + "172.27.0.0/21",
                ]
              + description      = ""
              + from_port        = 0
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "-1"
              + security_groups  = []
              + self             = false
              + to_port          = 0
            },
        ]
      + name                   = (known after apply)
      + name_prefix            = (known after apply)
      + owner_id               = (known after apply)
      + revoke_rules_on_delete = false
      + tags                   = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-firewall"
          + "Project"     = "GHESTDev"
        }
      + tags_all               = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-firewall"
          + "Project"     = "GHESTDev"
        }
      + vpc_id                 = (known after apply)
    }

  # module.network.aws_subnet.private[0] will be created
  + resource "aws_subnet" "private" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "us-east-1a"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "172.27.0.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-private-subnet-us-east-1a"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/internal-elb" = "1"
        }
      + tags_all                                       = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-private-subnet-us-east-1a"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/internal-elb" = "1"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.network.aws_subnet.private[1] will be created
  + resource "aws_subnet" "private" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "us-east-1b"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "172.27.1.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-private-subnet-us-east-1b"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/internal-elb" = "1"
        }
      + tags_all                                       = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-private-subnet-us-east-1b"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/internal-elb" = "1"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.network.aws_subnet.private[2] will be created
  + resource "aws_subnet" "private" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "us-east-1c"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "172.27.2.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-private-subnet-us-east-1c"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/internal-elb" = "1"
        }
      + tags_all                                       = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-private-subnet-us-east-1c"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/internal-elb" = "1"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.network.aws_subnet.public[0] will be created
  + resource "aws_subnet" "public" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "us-east-1a"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "172.27.3.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-public-subnet-us-east-1a"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/elb"          = "1"
        }
      + tags_all                                       = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-public-subnet-us-east-1a"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/elb"          = "1"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.network.aws_subnet.public[1] will be created
  + resource "aws_subnet" "public" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "us-east-1b"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "172.27.4.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-public-subnet-us-east-1b"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/elb"          = "1"
        }
      + tags_all                                       = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-public-subnet-us-east-1b"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/elb"          = "1"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.network.aws_subnet.public[2] will be created
  + resource "aws_subnet" "public" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "us-east-1c"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "172.27.5.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-public-subnet-us-east-1c"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/elb"          = "1"
        }
      + tags_all                                       = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-public-subnet-us-east-1c"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/elb"          = "1"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.network.aws_vpc.self will be created
  + resource "aws_vpc" "self" {
      + arn                                  = (known after apply)
      + cidr_block                           = "172.27.0.0/21"
      + default_network_acl_id               = (known after apply)
      + default_route_table_id               = (known after apply)
      + default_security_group_id            = (known after apply)
      + dhcp_options_id                      = (known after apply)
      + enable_classiclink                   = (known after apply)
      + enable_classiclink_dns_support       = (known after apply)
      + enable_dns_hostnames                 = true
      + enable_dns_support                   = true
      + id                                   = (known after apply)
      + instance_tenancy                     = "default"
      + ipv6_association_id                  = (known after apply)
      + ipv6_cidr_block                      = (known after apply)
      + ipv6_cidr_block_network_border_group = (known after apply)
      + main_route_table_id                  = (known after apply)
      + owner_id                             = (known after apply)
      + tags                                 = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev"
          + "Project"     = "GHESTDev"
        }
      + tags_all                             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev"
          + "Project"     = "GHESTDev"
        }
    }

Plan: 41 to add, 0 to change, 0 to destroy.

@github-actions
Copy link
Contributor

Full Azure Terraform Plan
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # module.acr.azurerm_container_registry.self will be created
  + resource "azurerm_container_registry" "self" {
      + admin_enabled                 = false
      + admin_password                = (sensitive value)
      + admin_username                = (known after apply)
      + encryption                    = (known after apply)
      + export_policy_enabled         = true
      + id                            = (known after apply)
      + location                      = "eastus"
      + login_server                  = (known after apply)
      + name                          = "sk8simgs"
      + network_rule_bypass_option    = "AzureServices"
      + network_rule_set              = (known after apply)
      + public_network_access_enabled = false
      + resource_group_name           = "sk8s-cluster"
      + retention_policy              = (known after apply)
      + sku                           = "Premium"
      + trust_policy                  = (known after apply)
      + zone_redundancy_enabled       = false
    }

  # module.acr.azurerm_private_endpoint.self will be created
  + resource "azurerm_private_endpoint" "self" {
      + custom_dns_configs            = (known after apply)
      + custom_network_interface_name = "sk8simgs-nic"
      + id                            = (known after apply)
      + location                      = "eastus"
      + name                          = "sk8simgs-private"
      + network_interface             = (known after apply)
      + private_dns_zone_configs      = (known after apply)
      + resource_group_name           = "sk8s-cluster"
      + subnet_id                     = (known after apply)

      + private_dns_zone_group {
          + id                   = (known after apply)
          + name                 = "sk8simgs-dns"
          + private_dns_zone_ids = (known after apply)
        }

      + private_service_connection {
          + is_manual_connection           = false
          + name                           = "sk8simgs-svconn"
          + private_connection_resource_id = (known after apply)
          + private_ip_address             = (known after apply)
          + subresource_names              = [
              + "registry",
            ]
        }
    }

  # module.aks.azurerm_kubernetes_cluster.self will be created
  + resource "azurerm_kubernetes_cluster" "self" {
      + api_server_authorized_ip_ranges     = (known after apply)
      + dns_prefix                          = "sk8s"
      + fqdn                                = (known after apply)
      + http_application_routing_zone_name  = (known after apply)
      + id                                  = (known after apply)
      + image_cleaner_enabled               = false
      + image_cleaner_interval_hours        = 48
      + kube_admin_config                   = (sensitive value)
      + kube_admin_config_raw               = (sensitive value)
      + kube_config                         = (sensitive value)
      + kube_config_raw                     = (sensitive value)
      + kubernetes_version                  = (known after apply)
      + location                            = "eastus"
      + name                                = "sk8s"
      + node_resource_group                 = "sk8s-cluster-sk8s"
      + node_resource_group_id              = (known after apply)
      + oidc_issuer_url                     = (known after apply)
      + portal_fqdn                         = (known after apply)
      + private_cluster_enabled             = true
      + private_cluster_public_fqdn_enabled = false
      + private_dns_zone_id                 = (known after apply)
      + private_fqdn                        = (known after apply)
      + public_network_access_enabled       = true
      + resource_group_name                 = "sk8s-cluster"
      + role_based_access_control_enabled   = true
      + run_command_enabled                 = true
      + sku_tier                            = "Free"
      + workload_identity_enabled           = false

      + aci_connector_linux {
          + connector_identity = (known after apply)
          + subnet_name        = "aci"
        }

      + api_server_access_profile {
          + authorized_ip_ranges     = (known after apply)
          + subnet_id                = (known after apply)
          + vnet_integration_enabled = (known after apply)
        }

      + auto_scaler_profile {
          + balance_similar_node_groups      = false
          + empty_bulk_delete_max            = (known after apply)
          + expander                         = "random"
          + max_graceful_termination_sec     = (known after apply)
          + max_node_provisioning_time       = "15m"
          + max_unready_nodes                = 3
          + max_unready_percentage           = 45
          + new_pod_scale_up_delay           = (known after apply)
          + scale_down_delay_after_add       = (known after apply)
          + scale_down_delay_after_delete    = (known after apply)
          + scale_down_delay_after_failure   = (known after apply)
          + scale_down_unneeded              = (known after apply)
          + scale_down_unready               = (known after apply)
          + scale_down_utilization_threshold = (known after apply)
          + scan_interval                    = (known after apply)
          + skip_nodes_with_local_storage    = true
          + skip_nodes_with_system_pods      = true
        }

      + default_node_pool {
          + enable_auto_scaling  = true
          + kubelet_disk_type    = (known after apply)
          + max_count            = 9
          + max_pods             = (known after apply)
          + min_count            = 3
          + name                 = "hot"
          + node_count           = (known after apply)
          + node_labels          = (known after apply)
          + orchestrator_version = (known after apply)
          + os_disk_size_gb      = (known after apply)
          + os_disk_type         = "Managed"
          + os_sku               = (known after apply)
          + scale_down_mode      = "Delete"
          + type                 = "VirtualMachineScaleSets"
          + ultra_ssd_enabled    = false
          + vm_size              = "Standard_D2s_v3"
          + vnet_subnet_id       = (known after apply)
          + workload_runtime     = (known after apply)
          + zones                = [
              + "1",
              + "2",
              + "3",
            ]
        }

      + identity {
          + principal_id = (known after apply)
          + tenant_id    = (known after apply)
          + type         = "SystemAssigned"
        }

      + kubelet_identity {
          + client_id                 = (known after apply)
          + object_id                 = (known after apply)
          + user_assigned_identity_id = (known after apply)
        }

      + network_profile {
          + dns_service_ip     = "10.1.64.4"
          + docker_bridge_cidr = (known after apply)
          + ip_versions        = (known after apply)
          + load_balancer_sku  = "standard"
          + network_mode       = (known after apply)
          + network_plugin     = "azure"
          + network_policy     = "azure"
          + outbound_type      = "loadBalancer"
          + pod_cidr           = (known after apply)
          + pod_cidrs          = (known after apply)
          + service_cidr       = "10.1.64.0/18"
          + service_cidrs      = (known after apply)

          + load_balancer_profile {
              + effective_outbound_ips      = (known after apply)
              + idle_timeout_in_minutes     = (known after apply)
              + managed_outbound_ip_count   = (known after apply)
              + managed_outbound_ipv6_count = (known after apply)
              + outbound_ip_address_ids     = (known after apply)
              + outbound_ip_prefix_ids      = (known after apply)
              + outbound_ports_allocated    = (known after apply)
            }

          + nat_gateway_profile {
              + effective_outbound_ips    = (known after apply)
              + idle_timeout_in_minutes   = (known after apply)
              + managed_outbound_ip_count = (known after apply)
            }
        }

      + windows_profile {
          + admin_password = (sensitive value)
          + admin_username = (known after apply)
          + license        = (known after apply)

          + gmsa {
              + dns_server  = (known after apply)
              + root_domain = (known after apply)
            }
        }
    }

  # module.aks.azurerm_kubernetes_cluster_node_pool.self["spot"] will be created
  + resource "azurerm_kubernetes_cluster_node_pool" "self" {
      + enable_auto_scaling   = true
      + eviction_policy       = "Delete"
      + id                    = (known after apply)
      + kubelet_disk_type     = (known after apply)
      + kubernetes_cluster_id = (known after apply)
      + max_count             = 3
      + max_pods              = (known after apply)
      + min_count             = 1
      + mode                  = "User"
      + name                  = "spot"
      + node_count            = (known after apply)
      + node_labels           = (known after apply)
      + orchestrator_version  = (known after apply)
      + os_disk_size_gb       = (known after apply)
      + os_disk_type          = "Managed"
      + os_sku                = (known after apply)
      + os_type               = "Linux"
      + priority              = "Spot"
      + scale_down_mode       = "Delete"
      + spot_max_price        = -1
      + ultra_ssd_enabled     = false
      + vm_size               = "Standard_D2s_v3"
      + vnet_subnet_id        = (known after apply)
      + zones                 = [
          + "1",
          + "2",
          + "3",
        ]
    }

  # module.dns.azurerm_private_dns_zone.self[0] will be created
  + resource "azurerm_private_dns_zone" "self" {
      + id                                                    = (known after apply)
      + max_number_of_record_sets                             = (known after apply)
      + max_number_of_virtual_network_links                   = (known after apply)
      + max_number_of_virtual_network_links_with_registration = (known after apply)
      + name                                                  = "sk8s.internal.liatr.io"
      + number_of_record_sets                                 = (known after apply)
      + resource_group_name                                   = "sk8s-cluster"

      + soa_record {
          + email         = (known after apply)
          + expire_time   = (known after apply)
          + fqdn          = (known after apply)
          + host_name     = (known after apply)
          + minimum_ttl   = (known after apply)
          + refresh_time  = (known after apply)
          + retry_time    = (known after apply)
          + serial_number = (known after apply)
          + tags          = (known after apply)
          + ttl           = (known after apply)
        }
    }

  # module.network.azurerm_network_security_group.self will be created
  + resource "azurerm_network_security_group" "self" {
      + id                  = (known after apply)
      + location            = "eastus"
      + name                = "sk8s-cluster-vnet-nsg"
      + resource_group_name = "sk8s-cluster"
      + security_rule       = (known after apply)
    }

  # module.network.azurerm_subnet.self[0] will be created
  + resource "azurerm_subnet" "self" {
      + address_prefixes                               = [
          + "10.1.0.0/18",
        ]
      + enforce_private_link_endpoint_network_policies = (known after apply)
      + enforce_private_link_service_network_policies  = (known after apply)
      + id                                             = (known after apply)
      + name                                           = "nodes"
      + private_endpoint_network_policies_enabled      = (known after apply)
      + private_link_service_network_policies_enabled  = (known after apply)
      + resource_group_name                            = "sk8s-cluster"
      + virtual_network_name                           = "sk8s-cluster-vnet"
    }

  # module.network.azurerm_subnet.self[1] will be created
  + resource "azurerm_subnet" "self" {
      + address_prefixes                               = [
          + "10.1.128.0/18",
        ]
      + enforce_private_link_endpoint_network_policies = (known after apply)
      + enforce_private_link_service_network_policies  = (known after apply)
      + id                                             = (known after apply)
      + name                                           = "aci"
      + private_endpoint_network_policies_enabled      = (known after apply)
      + private_link_service_network_policies_enabled  = (known after apply)
      + resource_group_name                            = "sk8s-cluster"
      + virtual_network_name                           = "sk8s-cluster-vnet"
    }

  # module.network.azurerm_subnet_network_security_group_association.self[0] will be created
  + resource "azurerm_subnet_network_security_group_association" "self" {
      + id                        = (known after apply)
      + network_security_group_id = (known after apply)
      + subnet_id                 = (known after apply)
    }

  # module.network.azurerm_subnet_network_security_group_association.self[1] will be created
  + resource "azurerm_subnet_network_security_group_association" "self" {
      + id                        = (known after apply)
      + network_security_group_id = (known after apply)
      + subnet_id                 = (known after apply)
    }

  # module.network.azurerm_virtual_network.self will be created
  + resource "azurerm_virtual_network" "self" {
      + address_space       = [
          + "10.1.0.0/16",
        ]
      + dns_servers         = []
      + guid                = (known after apply)
      + id                  = (known after apply)
      + location            = "eastus"
      + name                = "sk8s-cluster-vnet"
      + resource_group_name = "sk8s-cluster"
      + subnet              = (known after apply)
      + tags                = {
          + "owner"   = "GitHub Practice"
          + "project" = "Sk8s"
        }
    }

Plan: 11 to add, 0 to change, 0 to destroy.

@baserrato baserrato temporarily deployed to Azure May 25, 2023 19:10 — with GitHub Actions Inactive
@github-actions
Copy link
Contributor

Full Azure Terraform Plan Plan: 11 to add, 0 to change, 0 to destroy.
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # module.acr.azurerm_container_registry.self will be created
  + resource "azurerm_container_registry" "self" {
      + admin_enabled                 = false
      + admin_password                = (sensitive value)
      + admin_username                = (known after apply)
      + encryption                    = (known after apply)
      + export_policy_enabled         = true
      + id                            = (known after apply)
      + location                      = "eastus"
      + login_server                  = (known after apply)
      + name                          = "sk8simgs"
      + network_rule_bypass_option    = "AzureServices"
      + network_rule_set              = (known after apply)
      + public_network_access_enabled = false
      + resource_group_name           = "sk8s-cluster"
      + retention_policy              = (known after apply)
      + sku                           = "Premium"
      + trust_policy                  = (known after apply)
      + zone_redundancy_enabled       = false
    }

  # module.acr.azurerm_private_endpoint.self will be created
  + resource "azurerm_private_endpoint" "self" {
      + custom_dns_configs            = (known after apply)
      + custom_network_interface_name = "sk8simgs-nic"
      + id                            = (known after apply)
      + location                      = "eastus"
      + name                          = "sk8simgs-private"
      + network_interface             = (known after apply)
      + private_dns_zone_configs      = (known after apply)
      + resource_group_name           = "sk8s-cluster"
      + subnet_id                     = (known after apply)

      + private_dns_zone_group {
          + id                   = (known after apply)
          + name                 = "sk8simgs-dns"
          + private_dns_zone_ids = (known after apply)
        }

      + private_service_connection {
          + is_manual_connection           = false
          + name                           = "sk8simgs-svconn"
          + private_connection_resource_id = (known after apply)
          + private_ip_address             = (known after apply)
          + subresource_names              = [
              + "registry",
            ]
        }
    }

  # module.aks.azurerm_kubernetes_cluster.self will be created
  + resource "azurerm_kubernetes_cluster" "self" {
      + api_server_authorized_ip_ranges     = (known after apply)
      + dns_prefix                          = "sk8s"
      + fqdn                                = (known after apply)
      + http_application_routing_zone_name  = (known after apply)
      + id                                  = (known after apply)
      + image_cleaner_enabled               = false
      + image_cleaner_interval_hours        = 48
      + kube_admin_config                   = (sensitive value)
      + kube_admin_config_raw               = (sensitive value)
      + kube_config                         = (sensitive value)
      + kube_config_raw                     = (sensitive value)
      + kubernetes_version                  = (known after apply)
      + location                            = "eastus"
      + name                                = "sk8s"
      + node_resource_group                 = "sk8s-cluster-sk8s"
      + node_resource_group_id              = (known after apply)
      + oidc_issuer_url                     = (known after apply)
      + portal_fqdn                         = (known after apply)
      + private_cluster_enabled             = true
      + private_cluster_public_fqdn_enabled = false
      + private_dns_zone_id                 = (known after apply)
      + private_fqdn                        = (known after apply)
      + public_network_access_enabled       = true
      + resource_group_name                 = "sk8s-cluster"
      + role_based_access_control_enabled   = true
      + run_command_enabled                 = true
      + sku_tier                            = "Free"
      + workload_identity_enabled           = false

      + aci_connector_linux {
          + connector_identity = (known after apply)
          + subnet_name        = "aci"
        }

      + api_server_access_profile {
          + authorized_ip_ranges     = (known after apply)
          + subnet_id                = (known after apply)
          + vnet_integration_enabled = (known after apply)
        }

      + auto_scaler_profile {
          + balance_similar_node_groups      = false
          + empty_bulk_delete_max            = (known after apply)
          + expander                         = "random"
          + max_graceful_termination_sec     = (known after apply)
          + max_node_provisioning_time       = "15m"
          + max_unready_nodes                = 3
          + max_unready_percentage           = 45
          + new_pod_scale_up_delay           = (known after apply)
          + scale_down_delay_after_add       = (known after apply)
          + scale_down_delay_after_delete    = (known after apply)
          + scale_down_delay_after_failure   = (known after apply)
          + scale_down_unneeded              = (known after apply)
          + scale_down_unready               = (known after apply)
          + scale_down_utilization_threshold = (known after apply)
          + scan_interval                    = (known after apply)
          + skip_nodes_with_local_storage    = true
          + skip_nodes_with_system_pods      = true
        }

      + default_node_pool {
          + enable_auto_scaling  = true
          + kubelet_disk_type    = (known after apply)
          + max_count            = 9
          + max_pods             = (known after apply)
          + min_count            = 3
          + name                 = "hot"
          + node_count           = (known after apply)
          + node_labels          = (known after apply)
          + orchestrator_version = (known after apply)
          + os_disk_size_gb      = (known after apply)
          + os_disk_type         = "Managed"
          + os_sku               = (known after apply)
          + scale_down_mode      = "Delete"
          + type                 = "VirtualMachineScaleSets"
          + ultra_ssd_enabled    = false
          + vm_size              = "Standard_D2s_v3"
          + vnet_subnet_id       = (known after apply)
          + workload_runtime     = (known after apply)
          + zones                = [
              + "1",
              + "2",
              + "3",
            ]
        }

      + identity {
          + principal_id = (known after apply)
          + tenant_id    = (known after apply)
          + type         = "SystemAssigned"
        }

      + kubelet_identity {
          + client_id                 = (known after apply)
          + object_id                 = (known after apply)
          + user_assigned_identity_id = (known after apply)
        }

      + network_profile {
          + dns_service_ip     = "10.1.64.4"
          + docker_bridge_cidr = (known after apply)
          + ip_versions        = (known after apply)
          + load_balancer_sku  = "standard"
          + network_mode       = (known after apply)
          + network_plugin     = "azure"
          + network_policy     = "azure"
          + outbound_type      = "loadBalancer"
          + pod_cidr           = (known after apply)
          + pod_cidrs          = (known after apply)
          + service_cidr       = "10.1.64.0/18"
          + service_cidrs      = (known after apply)

          + load_balancer_profile {
              + effective_outbound_ips      = (known after apply)
              + idle_timeout_in_minutes     = (known after apply)
              + managed_outbound_ip_count   = (known after apply)
              + managed_outbound_ipv6_count = (known after apply)
              + outbound_ip_address_ids     = (known after apply)
              + outbound_ip_prefix_ids      = (known after apply)
              + outbound_ports_allocated    = (known after apply)
            }

          + nat_gateway_profile {
              + effective_outbound_ips    = (known after apply)
              + idle_timeout_in_minutes   = (known after apply)
              + managed_outbound_ip_count = (known after apply)
            }
        }

      + windows_profile {
          + admin_password = (sensitive value)
          + admin_username = (known after apply)
          + license        = (known after apply)

          + gmsa {
              + dns_server  = (known after apply)
              + root_domain = (known after apply)
            }
        }
    }

  # module.aks.azurerm_kubernetes_cluster_node_pool.self["spot"] will be created
  + resource "azurerm_kubernetes_cluster_node_pool" "self" {
      + enable_auto_scaling   = true
      + eviction_policy       = "Delete"
      + id                    = (known after apply)
      + kubelet_disk_type     = (known after apply)
      + kubernetes_cluster_id = (known after apply)
      + max_count             = 3
      + max_pods              = (known after apply)
      + min_count             = 1
      + mode                  = "User"
      + name                  = "spot"
      + node_count            = (known after apply)
      + node_labels           = (known after apply)
      + orchestrator_version  = (known after apply)
      + os_disk_size_gb       = (known after apply)
      + os_disk_type          = "Managed"
      + os_sku                = (known after apply)
      + os_type               = "Linux"
      + priority              = "Spot"
      + scale_down_mode       = "Delete"
      + spot_max_price        = -1
      + ultra_ssd_enabled     = false
      + vm_size               = "Standard_D2s_v3"
      + vnet_subnet_id        = (known after apply)
      + zones                 = [
          + "1",
          + "2",
          + "3",
        ]
    }

  # module.dns.azurerm_private_dns_zone.self[0] will be created
  + resource "azurerm_private_dns_zone" "self" {
      + id                                                    = (known after apply)
      + max_number_of_record_sets                             = (known after apply)
      + max_number_of_virtual_network_links                   = (known after apply)
      + max_number_of_virtual_network_links_with_registration = (known after apply)
      + name                                                  = "sk8s.internal.liatr.io"
      + number_of_record_sets                                 = (known after apply)
      + resource_group_name                                   = "sk8s-cluster"

      + soa_record {
          + email         = (known after apply)
          + expire_time   = (known after apply)
          + fqdn          = (known after apply)
          + host_name     = (known after apply)
          + minimum_ttl   = (known after apply)
          + refresh_time  = (known after apply)
          + retry_time    = (known after apply)
          + serial_number = (known after apply)
          + tags          = (known after apply)
          + ttl           = (known after apply)
        }
    }

  # module.network.azurerm_network_security_group.self will be created
  + resource "azurerm_network_security_group" "self" {
      + id                  = (known after apply)
      + location            = "eastus"
      + name                = "sk8s-cluster-vnet-nsg"
      + resource_group_name = "sk8s-cluster"
      + security_rule       = (known after apply)
    }

  # module.network.azurerm_subnet.self[0] will be created
  + resource "azurerm_subnet" "self" {
      + address_prefixes                               = [
          + "10.1.0.0/18",
        ]
      + enforce_private_link_endpoint_network_policies = (known after apply)
      + enforce_private_link_service_network_policies  = (known after apply)
      + id                                             = (known after apply)
      + name                                           = "nodes"
      + private_endpoint_network_policies_enabled      = (known after apply)
      + private_link_service_network_policies_enabled  = (known after apply)
      + resource_group_name                            = "sk8s-cluster"
      + virtual_network_name                           = "sk8s-cluster-vnet"
    }

  # module.network.azurerm_subnet.self[1] will be created
  + resource "azurerm_subnet" "self" {
      + address_prefixes                               = [
          + "10.1.128.0/18",
        ]
      + enforce_private_link_endpoint_network_policies = (known after apply)
      + enforce_private_link_service_network_policies  = (known after apply)
      + id                                             = (known after apply)
      + name                                           = "aci"
      + private_endpoint_network_policies_enabled      = (known after apply)
      + private_link_service_network_policies_enabled  = (known after apply)
      + resource_group_name                            = "sk8s-cluster"
      + virtual_network_name                           = "sk8s-cluster-vnet"
    }

  # module.network.azurerm_subnet_network_security_group_association.self[0] will be created
  + resource "azurerm_subnet_network_security_group_association" "self" {
      + id                        = (known after apply)
      + network_security_group_id = (known after apply)
      + subnet_id                 = (known after apply)
    }

  # module.network.azurerm_subnet_network_security_group_association.self[1] will be created
  + resource "azurerm_subnet_network_security_group_association" "self" {
      + id                        = (known after apply)
      + network_security_group_id = (known after apply)
      + subnet_id                 = (known after apply)
    }

  # module.network.azurerm_virtual_network.self will be created
  + resource "azurerm_virtual_network" "self" {
      + address_space       = [
          + "10.1.0.0/16",
        ]
      + dns_servers         = []
      + guid                = (known after apply)
      + id                  = (known after apply)
      + location            = "eastus"
      + name                = "sk8s-cluster-vnet"
      + resource_group_name = "sk8s-cluster"
      + subnet              = (known after apply)
      + tags                = {
          + "owner"   = "GitHub Practice"
          + "project" = "Sk8s"
        }
    }

Plan: 11 to add, 0 to change, 0 to destroy.

@baserrato baserrato temporarily deployed to Azure May 25, 2023 19:18 — with GitHub Actions Inactive
@github-actions
Copy link
Contributor

Plan: 11 to add, 0 to change, 0 to destroy.

Full Azure Terraform Plan
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # module.acr.azurerm_container_registry.self will be created
  + resource "azurerm_container_registry" "self" {
      + admin_enabled                 = false
      + admin_password                = (sensitive value)
      + admin_username                = (known after apply)
      + encryption                    = (known after apply)
      + export_policy_enabled         = true
      + id                            = (known after apply)
      + location                      = "eastus"
      + login_server                  = (known after apply)
      + name                          = "sk8simgs"
      + network_rule_bypass_option    = "AzureServices"
      + network_rule_set              = (known after apply)
      + public_network_access_enabled = false
      + resource_group_name           = "sk8s-cluster"
      + retention_policy              = (known after apply)
      + sku                           = "Premium"
      + trust_policy                  = (known after apply)
      + zone_redundancy_enabled       = false
    }

  # module.acr.azurerm_private_endpoint.self will be created
  + resource "azurerm_private_endpoint" "self" {
      + custom_dns_configs            = (known after apply)
      + custom_network_interface_name = "sk8simgs-nic"
      + id                            = (known after apply)
      + location                      = "eastus"
      + name                          = "sk8simgs-private"
      + network_interface             = (known after apply)
      + private_dns_zone_configs      = (known after apply)
      + resource_group_name           = "sk8s-cluster"
      + subnet_id                     = (known after apply)

      + private_dns_zone_group {
          + id                   = (known after apply)
          + name                 = "sk8simgs-dns"
          + private_dns_zone_ids = (known after apply)
        }

      + private_service_connection {
          + is_manual_connection           = false
          + name                           = "sk8simgs-svconn"
          + private_connection_resource_id = (known after apply)
          + private_ip_address             = (known after apply)
          + subresource_names              = [
              + "registry",
            ]
        }
    }

  # module.aks.azurerm_kubernetes_cluster.self will be created
  + resource "azurerm_kubernetes_cluster" "self" {
      + api_server_authorized_ip_ranges     = (known after apply)
      + dns_prefix                          = "sk8s"
      + fqdn                                = (known after apply)
      + http_application_routing_zone_name  = (known after apply)
      + id                                  = (known after apply)
      + image_cleaner_enabled               = false
      + image_cleaner_interval_hours        = 48
      + kube_admin_config                   = (sensitive value)
      + kube_admin_config_raw               = (sensitive value)
      + kube_config                         = (sensitive value)
      + kube_config_raw                     = (sensitive value)
      + kubernetes_version                  = (known after apply)
      + location                            = "eastus"
      + name                                = "sk8s"
      + node_resource_group                 = "sk8s-cluster-sk8s"
      + node_resource_group_id              = (known after apply)
      + oidc_issuer_url                     = (known after apply)
      + portal_fqdn                         = (known after apply)
      + private_cluster_enabled             = true
      + private_cluster_public_fqdn_enabled = false
      + private_dns_zone_id                 = (known after apply)
      + private_fqdn                        = (known after apply)
      + public_network_access_enabled       = true
      + resource_group_name                 = "sk8s-cluster"
      + role_based_access_control_enabled   = true
      + run_command_enabled                 = true
      + sku_tier                            = "Free"
      + workload_identity_enabled           = false

      + aci_connector_linux {
          + connector_identity = (known after apply)
          + subnet_name        = "aci"
        }

      + api_server_access_profile {
          + authorized_ip_ranges     = (known after apply)
          + subnet_id                = (known after apply)
          + vnet_integration_enabled = (known after apply)
        }

      + auto_scaler_profile {
          + balance_similar_node_groups      = false
          + empty_bulk_delete_max            = (known after apply)
          + expander                         = "random"
          + max_graceful_termination_sec     = (known after apply)
          + max_node_provisioning_time       = "15m"
          + max_unready_nodes                = 3
          + max_unready_percentage           = 45
          + new_pod_scale_up_delay           = (known after apply)
          + scale_down_delay_after_add       = (known after apply)
          + scale_down_delay_after_delete    = (known after apply)
          + scale_down_delay_after_failure   = (known after apply)
          + scale_down_unneeded              = (known after apply)
          + scale_down_unready               = (known after apply)
          + scale_down_utilization_threshold = (known after apply)
          + scan_interval                    = (known after apply)
          + skip_nodes_with_local_storage    = true
          + skip_nodes_with_system_pods      = true
        }

      + default_node_pool {
          + enable_auto_scaling  = true
          + kubelet_disk_type    = (known after apply)
          + max_count            = 9
          + max_pods             = (known after apply)
          + min_count            = 3
          + name                 = "hot"
          + node_count           = (known after apply)
          + node_labels          = (known after apply)
          + orchestrator_version = (known after apply)
          + os_disk_size_gb      = (known after apply)
          + os_disk_type         = "Managed"
          + os_sku               = (known after apply)
          + scale_down_mode      = "Delete"
          + type                 = "VirtualMachineScaleSets"
          + ultra_ssd_enabled    = false
          + vm_size              = "Standard_D2s_v3"
          + vnet_subnet_id       = (known after apply)
          + workload_runtime     = (known after apply)
          + zones                = [
              + "1",
              + "2",
              + "3",
            ]
        }

      + identity {
          + principal_id = (known after apply)
          + tenant_id    = (known after apply)
          + type         = "SystemAssigned"
        }

      + kubelet_identity {
          + client_id                 = (known after apply)
          + object_id                 = (known after apply)
          + user_assigned_identity_id = (known after apply)
        }

      + network_profile {
          + dns_service_ip     = "10.1.64.4"
          + docker_bridge_cidr = (known after apply)
          + ip_versions        = (known after apply)
          + load_balancer_sku  = "standard"
          + network_mode       = (known after apply)
          + network_plugin     = "azure"
          + network_policy     = "azure"
          + outbound_type      = "loadBalancer"
          + pod_cidr           = (known after apply)
          + pod_cidrs          = (known after apply)
          + service_cidr       = "10.1.64.0/18"
          + service_cidrs      = (known after apply)

          + load_balancer_profile {
              + effective_outbound_ips      = (known after apply)
              + idle_timeout_in_minutes     = (known after apply)
              + managed_outbound_ip_count   = (known after apply)
              + managed_outbound_ipv6_count = (known after apply)
              + outbound_ip_address_ids     = (known after apply)
              + outbound_ip_prefix_ids      = (known after apply)
              + outbound_ports_allocated    = (known after apply)
            }

          + nat_gateway_profile {
              + effective_outbound_ips    = (known after apply)
              + idle_timeout_in_minutes   = (known after apply)
              + managed_outbound_ip_count = (known after apply)
            }
        }

      + windows_profile {
          + admin_password = (sensitive value)
          + admin_username = (known after apply)
          + license        = (known after apply)

          + gmsa {
              + dns_server  = (known after apply)
              + root_domain = (known after apply)
            }
        }
    }

  # module.aks.azurerm_kubernetes_cluster_node_pool.self["spot"] will be created
  + resource "azurerm_kubernetes_cluster_node_pool" "self" {
      + enable_auto_scaling   = true
      + eviction_policy       = "Delete"
      + id                    = (known after apply)
      + kubelet_disk_type     = (known after apply)
      + kubernetes_cluster_id = (known after apply)
      + max_count             = 3
      + max_pods              = (known after apply)
      + min_count             = 1
      + mode                  = "User"
      + name                  = "spot"
      + node_count            = (known after apply)
      + node_labels           = (known after apply)
      + orchestrator_version  = (known after apply)
      + os_disk_size_gb       = (known after apply)
      + os_disk_type          = "Managed"
      + os_sku                = (known after apply)
      + os_type               = "Linux"
      + priority              = "Spot"
      + scale_down_mode       = "Delete"
      + spot_max_price        = -1
      + ultra_ssd_enabled     = false
      + vm_size               = "Standard_D2s_v3"
      + vnet_subnet_id        = (known after apply)
      + zones                 = [
          + "1",
          + "2",
          + "3",
        ]
    }

  # module.dns.azurerm_private_dns_zone.self[0] will be created
  + resource "azurerm_private_dns_zone" "self" {
      + id                                                    = (known after apply)
      + max_number_of_record_sets                             = (known after apply)
      + max_number_of_virtual_network_links                   = (known after apply)
      + max_number_of_virtual_network_links_with_registration = (known after apply)
      + name                                                  = "sk8s.internal.liatr.io"
      + number_of_record_sets                                 = (known after apply)
      + resource_group_name                                   = "sk8s-cluster"

      + soa_record {
          + email         = (known after apply)
          + expire_time   = (known after apply)
          + fqdn          = (known after apply)
          + host_name     = (known after apply)
          + minimum_ttl   = (known after apply)
          + refresh_time  = (known after apply)
          + retry_time    = (known after apply)
          + serial_number = (known after apply)
          + tags          = (known after apply)
          + ttl           = (known after apply)
        }
    }

  # module.network.azurerm_network_security_group.self will be created
  + resource "azurerm_network_security_group" "self" {
      + id                  = (known after apply)
      + location            = "eastus"
      + name                = "sk8s-cluster-vnet-nsg"
      + resource_group_name = "sk8s-cluster"
      + security_rule       = (known after apply)
    }

  # module.network.azurerm_subnet.self[0] will be created
  + resource "azurerm_subnet" "self" {
      + address_prefixes                               = [
          + "10.1.0.0/18",
        ]
      + enforce_private_link_endpoint_network_policies = (known after apply)
      + enforce_private_link_service_network_policies  = (known after apply)
      + id                                             = (known after apply)
      + name                                           = "nodes"
      + private_endpoint_network_policies_enabled      = (known after apply)
      + private_link_service_network_policies_enabled  = (known after apply)
      + resource_group_name                            = "sk8s-cluster"
      + virtual_network_name                           = "sk8s-cluster-vnet"
    }

  # module.network.azurerm_subnet.self[1] will be created
  + resource "azurerm_subnet" "self" {
      + address_prefixes                               = [
          + "10.1.128.0/18",
        ]
      + enforce_private_link_endpoint_network_policies = (known after apply)
      + enforce_private_link_service_network_policies  = (known after apply)
      + id                                             = (known after apply)
      + name                                           = "aci"
      + private_endpoint_network_policies_enabled      = (known after apply)
      + private_link_service_network_policies_enabled  = (known after apply)
      + resource_group_name                            = "sk8s-cluster"
      + virtual_network_name                           = "sk8s-cluster-vnet"
    }

  # module.network.azurerm_subnet_network_security_group_association.self[0] will be created
  + resource "azurerm_subnet_network_security_group_association" "self" {
      + id                        = (known after apply)
      + network_security_group_id = (known after apply)
      + subnet_id                 = (known after apply)
    }

  # module.network.azurerm_subnet_network_security_group_association.self[1] will be created
  + resource "azurerm_subnet_network_security_group_association" "self" {
      + id                        = (known after apply)
      + network_security_group_id = (known after apply)
      + subnet_id                 = (known after apply)
    }

  # module.network.azurerm_virtual_network.self will be created
  + resource "azurerm_virtual_network" "self" {
      + address_space       = [
          + "10.1.0.0/16",
        ]
      + dns_servers         = []
      + guid                = (known after apply)
      + id                  = (known after apply)
      + location            = "eastus"
      + name                = "sk8s-cluster-vnet"
      + resource_group_name = "sk8s-cluster"
      + subnet              = (known after apply)
      + tags                = {
          + "owner"   = "GitHub Practice"
          + "project" = "Sk8s"
        }
    }

Plan: 11 to add, 0 to change, 0 to destroy.

@baserrato baserrato temporarily deployed to azure May 25, 2023 19:22 — with GitHub Actions Inactive
@baserrato baserrato temporarily deployed to aws May 25, 2023 19:22 — with GitHub Actions Inactive
@github-actions
Copy link
Contributor

Plan: 11 to add, 0 to change, 0 to destroy.

Full Azure Terraform Plan
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # module.acr.azurerm_container_registry.self will be created
  + resource "azurerm_container_registry" "self" {
      + admin_enabled                 = false
      + admin_password                = (sensitive value)
      + admin_username                = (known after apply)
      + encryption                    = (known after apply)
      + export_policy_enabled         = true
      + id                            = (known after apply)
      + location                      = "eastus"
      + login_server                  = (known after apply)
      + name                          = "sk8simgs"
      + network_rule_bypass_option    = "AzureServices"
      + network_rule_set              = (known after apply)
      + public_network_access_enabled = false
      + resource_group_name           = "sk8s-cluster"
      + retention_policy              = (known after apply)
      + sku                           = "Premium"
      + trust_policy                  = (known after apply)
      + zone_redundancy_enabled       = false
    }

  # module.acr.azurerm_private_endpoint.self will be created
  + resource "azurerm_private_endpoint" "self" {
      + custom_dns_configs            = (known after apply)
      + custom_network_interface_name = "sk8simgs-nic"
      + id                            = (known after apply)
      + location                      = "eastus"
      + name                          = "sk8simgs-private"
      + network_interface             = (known after apply)
      + private_dns_zone_configs      = (known after apply)
      + resource_group_name           = "sk8s-cluster"
      + subnet_id                     = (known after apply)

      + private_dns_zone_group {
          + id                   = (known after apply)
          + name                 = "sk8simgs-dns"
          + private_dns_zone_ids = (known after apply)
        }

      + private_service_connection {
          + is_manual_connection           = false
          + name                           = "sk8simgs-svconn"
          + private_connection_resource_id = (known after apply)
          + private_ip_address             = (known after apply)
          + subresource_names              = [
              + "registry",
            ]
        }
    }

  # module.aks.azurerm_kubernetes_cluster.self will be created
  + resource "azurerm_kubernetes_cluster" "self" {
      + api_server_authorized_ip_ranges     = (known after apply)
      + dns_prefix                          = "sk8s"
      + fqdn                                = (known after apply)
      + http_application_routing_zone_name  = (known after apply)
      + id                                  = (known after apply)
      + image_cleaner_enabled               = false
      + image_cleaner_interval_hours        = 48
      + kube_admin_config                   = (sensitive value)
      + kube_admin_config_raw               = (sensitive value)
      + kube_config                         = (sensitive value)
      + kube_config_raw                     = (sensitive value)
      + kubernetes_version                  = (known after apply)
      + location                            = "eastus"
      + name                                = "sk8s"
      + node_resource_group                 = "sk8s-cluster-sk8s"
      + node_resource_group_id              = (known after apply)
      + oidc_issuer_url                     = (known after apply)
      + portal_fqdn                         = (known after apply)
      + private_cluster_enabled             = true
      + private_cluster_public_fqdn_enabled = false
      + private_dns_zone_id                 = (known after apply)
      + private_fqdn                        = (known after apply)
      + public_network_access_enabled       = true
      + resource_group_name                 = "sk8s-cluster"
      + role_based_access_control_enabled   = true
      + run_command_enabled                 = true
      + sku_tier                            = "Free"
      + workload_identity_enabled           = false

      + aci_connector_linux {
          + connector_identity = (known after apply)
          + subnet_name        = "aci"
        }

      + api_server_access_profile {
          + authorized_ip_ranges     = (known after apply)
          + subnet_id                = (known after apply)
          + vnet_integration_enabled = (known after apply)
        }

      + auto_scaler_profile {
          + balance_similar_node_groups      = false
          + empty_bulk_delete_max            = (known after apply)
          + expander                         = "random"
          + max_graceful_termination_sec     = (known after apply)
          + max_node_provisioning_time       = "15m"
          + max_unready_nodes                = 3
          + max_unready_percentage           = 45
          + new_pod_scale_up_delay           = (known after apply)
          + scale_down_delay_after_add       = (known after apply)
          + scale_down_delay_after_delete    = (known after apply)
          + scale_down_delay_after_failure   = (known after apply)
          + scale_down_unneeded              = (known after apply)
          + scale_down_unready               = (known after apply)
          + scale_down_utilization_threshold = (known after apply)
          + scan_interval                    = (known after apply)
          + skip_nodes_with_local_storage    = true
          + skip_nodes_with_system_pods      = true
        }

      + default_node_pool {
          + enable_auto_scaling  = true
          + kubelet_disk_type    = (known after apply)
          + max_count            = 9
          + max_pods             = (known after apply)
          + min_count            = 3
          + name                 = "hot"
          + node_count           = (known after apply)
          + node_labels          = (known after apply)
          + orchestrator_version = (known after apply)
          + os_disk_size_gb      = (known after apply)
          + os_disk_type         = "Managed"
          + os_sku               = (known after apply)
          + scale_down_mode      = "Delete"
          + type                 = "VirtualMachineScaleSets"
          + ultra_ssd_enabled    = false
          + vm_size              = "Standard_D2s_v3"
          + vnet_subnet_id       = (known after apply)
          + workload_runtime     = (known after apply)
          + zones                = [
              + "1",
              + "2",
              + "3",
            ]
        }

      + identity {
          + principal_id = (known after apply)
          + tenant_id    = (known after apply)
          + type         = "SystemAssigned"
        }

      + kubelet_identity {
          + client_id                 = (known after apply)
          + object_id                 = (known after apply)
          + user_assigned_identity_id = (known after apply)
        }

      + network_profile {
          + dns_service_ip     = "10.1.64.4"
          + docker_bridge_cidr = (known after apply)
          + ip_versions        = (known after apply)
          + load_balancer_sku  = "standard"
          + network_mode       = (known after apply)
          + network_plugin     = "azure"
          + network_policy     = "azure"
          + outbound_type      = "loadBalancer"
          + pod_cidr           = (known after apply)
          + pod_cidrs          = (known after apply)
          + service_cidr       = "10.1.64.0/18"
          + service_cidrs      = (known after apply)

          + load_balancer_profile {
              + effective_outbound_ips      = (known after apply)
              + idle_timeout_in_minutes     = (known after apply)
              + managed_outbound_ip_count   = (known after apply)
              + managed_outbound_ipv6_count = (known after apply)
              + outbound_ip_address_ids     = (known after apply)
              + outbound_ip_prefix_ids      = (known after apply)
              + outbound_ports_allocated    = (known after apply)
            }

          + nat_gateway_profile {
              + effective_outbound_ips    = (known after apply)
              + idle_timeout_in_minutes   = (known after apply)
              + managed_outbound_ip_count = (known after apply)
            }
        }

      + windows_profile {
          + admin_password = (sensitive value)
          + admin_username = (known after apply)
          + license        = (known after apply)

          + gmsa {
              + dns_server  = (known after apply)
              + root_domain = (known after apply)
            }
        }
    }

  # module.aks.azurerm_kubernetes_cluster_node_pool.self["spot"] will be created
  + resource "azurerm_kubernetes_cluster_node_pool" "self" {
      + enable_auto_scaling   = true
      + eviction_policy       = "Delete"
      + id                    = (known after apply)
      + kubelet_disk_type     = (known after apply)
      + kubernetes_cluster_id = (known after apply)
      + max_count             = 3
      + max_pods              = (known after apply)
      + min_count             = 1
      + mode                  = "User"
      + name                  = "spot"
      + node_count            = (known after apply)
      + node_labels           = (known after apply)
      + orchestrator_version  = (known after apply)
      + os_disk_size_gb       = (known after apply)
      + os_disk_type          = "Managed"
      + os_sku                = (known after apply)
      + os_type               = "Linux"
      + priority              = "Spot"
      + scale_down_mode       = "Delete"
      + spot_max_price        = -1
      + ultra_ssd_enabled     = false
      + vm_size               = "Standard_D2s_v3"
      + vnet_subnet_id        = (known after apply)
      + zones                 = [
          + "1",
          + "2",
          + "3",
        ]
    }

  # module.dns.azurerm_private_dns_zone.self[0] will be created
  + resource "azurerm_private_dns_zone" "self" {
      + id                                                    = (known after apply)
      + max_number_of_record_sets                             = (known after apply)
      + max_number_of_virtual_network_links                   = (known after apply)
      + max_number_of_virtual_network_links_with_registration = (known after apply)
      + name                                                  = "sk8s.internal.liatr.io"
      + number_of_record_sets                                 = (known after apply)
      + resource_group_name                                   = "sk8s-cluster"

      + soa_record {
          + email         = (known after apply)
          + expire_time   = (known after apply)
          + fqdn          = (known after apply)
          + host_name     = (known after apply)
          + minimum_ttl   = (known after apply)
          + refresh_time  = (known after apply)
          + retry_time    = (known after apply)
          + serial_number = (known after apply)
          + tags          = (known after apply)
          + ttl           = (known after apply)
        }
    }

  # module.network.azurerm_network_security_group.self will be created
  + resource "azurerm_network_security_group" "self" {
      + id                  = (known after apply)
      + location            = "eastus"
      + name                = "sk8s-cluster-vnet-nsg"
      + resource_group_name = "sk8s-cluster"
      + security_rule       = (known after apply)
    }

  # module.network.azurerm_subnet.self[0] will be created
  + resource "azurerm_subnet" "self" {
      + address_prefixes                               = [
          + "10.1.0.0/18",
        ]
      + enforce_private_link_endpoint_network_policies = (known after apply)
      + enforce_private_link_service_network_policies  = (known after apply)
      + id                                             = (known after apply)
      + name                                           = "nodes"
      + private_endpoint_network_policies_enabled      = (known after apply)
      + private_link_service_network_policies_enabled  = (known after apply)
      + resource_group_name                            = "sk8s-cluster"
      + virtual_network_name                           = "sk8s-cluster-vnet"
    }

  # module.network.azurerm_subnet.self[1] will be created
  + resource "azurerm_subnet" "self" {
      + address_prefixes                               = [
          + "10.1.128.0/18",
        ]
      + enforce_private_link_endpoint_network_policies = (known after apply)
      + enforce_private_link_service_network_policies  = (known after apply)
      + id                                             = (known after apply)
      + name                                           = "aci"
      + private_endpoint_network_policies_enabled      = (known after apply)
      + private_link_service_network_policies_enabled  = (known after apply)
      + resource_group_name                            = "sk8s-cluster"
      + virtual_network_name                           = "sk8s-cluster-vnet"
    }

  # module.network.azurerm_subnet_network_security_group_association.self[0] will be created
  + resource "azurerm_subnet_network_security_group_association" "self" {
      + id                        = (known after apply)
      + network_security_group_id = (known after apply)
      + subnet_id                 = (known after apply)
    }

  # module.network.azurerm_subnet_network_security_group_association.self[1] will be created
  + resource "azurerm_subnet_network_security_group_association" "self" {
      + id                        = (known after apply)
      + network_security_group_id = (known after apply)
      + subnet_id                 = (known after apply)
    }

  # module.network.azurerm_virtual_network.self will be created
  + resource "azurerm_virtual_network" "self" {
      + address_space       = [
          + "10.1.0.0/16",
        ]
      + dns_servers         = []
      + guid                = (known after apply)
      + id                  = (known after apply)
      + location            = "eastus"
      + name                = "sk8s-cluster-vnet"
      + resource_group_name = "sk8s-cluster"
      + subnet              = (known after apply)
      + tags                = {
          + "owner"   = "GitHub Practice"
          + "project" = "Sk8s"
        }
    }

Plan: 11 to add, 0 to change, 0 to destroy.

@github-actions
Copy link
Contributor

Plan: 41 to add, 0 to change, 0 to destroy.

Full AWS Terraform Plan
Terraform used the selected providers to generate the following execution
plan. Resource actions are indicated with the following symbols:
  + create
 <= read (data resources)

Terraform will perform the following actions:

  # module.eks.data.aws_iam_policy_document.alb will be read during apply
  # (config refers to values not yet known)
 <= data "aws_iam_policy_document" "alb" {
      + id   = (known after apply)
      + json = (known after apply)

      + statement {
          + actions = [
              + "sts:AssumeRoleWithWebIdentity",
            ]
          + effect  = "Allow"

          + condition {
              + test     = "StringEquals"
              + values   = [
                  + "system:serviceaccount:kube-system:aws-load-balancer-controller",
                ]
              + variable = (known after apply)
            }

          + principals {
              + identifiers = [
                  + (known after apply),
                ]
              + type        = "Federated"
            }
        }
    }

  # module.eks.data.aws_iam_policy_document.autoscaler will be read during apply
  # (config refers to values not yet known)
 <= data "aws_iam_policy_document" "autoscaler" {
      + id   = (known after apply)
      + json = (known after apply)

      + statement {
          + actions = [
              + "sts:AssumeRoleWithWebIdentity",
            ]
          + effect  = "Allow"

          + condition {
              + test     = "StringEquals"
              + values   = [
                  + "system:serviceaccount:kube-system:cluster-autoscaler",
                ]
              + variable = (known after apply)
            }

          + principals {
              + identifiers = [
                  + (known after apply),
                ]
              + type        = "Federated"
            }
        }
    }

  # module.eks.data.aws_subnet.private will be read during apply
  # (config refers to values not yet known)
 <= data "aws_subnet" "private" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = (known after apply)
      + availability_zone                              = (known after apply)
      + availability_zone_id                           = (known after apply)
      + available_ip_address_count                     = (known after apply)
      + cidr_block                                     = (known after apply)
      + customer_owned_ipv4_pool                       = (known after apply)
      + default_for_az                                 = (known after apply)
      + enable_dns64                                   = (known after apply)
      + enable_resource_name_dns_a_record_on_launch    = (known after apply)
      + enable_resource_name_dns_aaaa_record_on_launch = (known after apply)
      + id                                             = (known after apply)
      + ipv6_cidr_block                                = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = (known after apply)
      + map_customer_owned_ip_on_launch                = (known after apply)
      + map_public_ip_on_launch                        = (known after apply)
      + outpost_arn                                    = (known after apply)
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + state                                          = (known after apply)
      + tags                                           = (known after apply)
      + vpc_id                                         = (known after apply)

      + timeouts {
          + read = (known after apply)
        }
    }

  # module.eks.data.tls_certificate.self will be read during apply
  # (config refers to values not yet known)
 <= data "tls_certificate" "self" {
      + certificates = (known after apply)
      + id           = (known after apply)
      + url          = (known after apply)
    }

  # module.eks.aws_eks_cluster.self will be created
  + resource "aws_eks_cluster" "self" {
      + arn                   = (known after apply)
      + certificate_authority = (known after apply)
      + created_at            = (known after apply)
      + endpoint              = (known after apply)
      + id                    = (known after apply)
      + identity              = (known after apply)
      + name                  = "ghest-dev"
      + platform_version      = (known after apply)
      + role_arn              = (known after apply)
      + status                = (known after apply)
      + tags                  = {
          + "Environment" = "Development"
          + "Project"     = "GHESTDev"
        }
      + tags_all              = {
          + "Environment" = "Development"
          + "Project"     = "GHESTDev"
        }
      + version               = (known after apply)

      + kubernetes_network_config {
          + ip_family         = (known after apply)
          + service_ipv4_cidr = (known after apply)
        }

      + vpc_config {
          + cluster_security_group_id = (known after apply)
          + endpoint_private_access   = true
          + endpoint_public_access    = false
          + public_access_cidrs       = (known after apply)
          + subnet_ids                = (known after apply)
          + vpc_id                    = (known after apply)
        }
    }

  # module.eks.aws_eks_node_group.self[0] will be created
  + resource "aws_eks_node_group" "self" {
      + ami_type               = (known after apply)
      + arn                    = (known after apply)
      + capacity_type          = "ON_DEMAND"
      + cluster_name           = "ghest-dev"
      + disk_size              = 100
      + id                     = (known after apply)
      + instance_types         = [
          + "t3.large",
        ]
      + node_group_name        = "ghest-dev-workers"
      + node_group_name_prefix = (known after apply)
      + node_role_arn          = (known after apply)
      + release_version        = (known after apply)
      + resources              = (known after apply)
      + status                 = (known after apply)
      + subnet_ids             = (known after apply)
      + tags_all               = (known after apply)
      + version                = (known after apply)

      + scaling_config {
          + desired_size = 3
          + max_size     = (known after apply)
          + min_size     = 3
        }

      + update_config {
          + max_unavailable = 1
        }
    }

  # module.eks.aws_iam_openid_connect_provider.self will be created
  + resource "aws_iam_openid_connect_provider" "self" {
      + arn             = (known after apply)
      + client_id_list  = [
          + "sts.amazonaws.com",
        ]
      + id              = (known after apply)
      + tags_all        = (known after apply)
      + thumbprint_list = (known after apply)
      + url             = (known after apply)
    }

  # module.eks.aws_iam_policy.alb will be created
  + resource "aws_iam_policy" "alb" {
      + arn       = (known after apply)
      + id        = (known after apply)
      + name      = "GHESTDevAWSLoadBalancerControllerIAMPolicy"
      + path      = "/"
      + policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = [
                          + "iam:CreateServiceLinkedRole",
                        ]
                      + Condition = {
                          + StringEquals = {
                              + "iam:AWSServiceName" = "elasticloadbalancing.amazonaws.com"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = "*"
                    },
                  + {
                      + Action   = [
                          + "ec2:DescribeAccountAttributes",
                          + "ec2:DescribeAddresses",
                          + "ec2:DescribeAvailabilityZones",
                          + "ec2:DescribeInternetGateways",
                          + "ec2:DescribeVpcs",
                          + "ec2:DescribeVpcPeeringConnections",
                          + "ec2:DescribeSubnets",
                          + "ec2:DescribeSecurityGroups",
                          + "ec2:DescribeInstances",
                          + "ec2:DescribeNetworkInterfaces",
                          + "ec2:DescribeTags",
                          + "ec2:GetCoipPoolUsage",
                          + "ec2:DescribeCoipPools",
                          + "elasticloadbalancing:DescribeLoadBalancers",
                          + "elasticloadbalancing:DescribeLoadBalancerAttributes",
                          + "elasticloadbalancing:DescribeListeners",
                          + "elasticloadbalancing:DescribeListenerCertificates",
                          + "elasticloadbalancing:DescribeSSLPolicies",
                          + "elasticloadbalancing:DescribeRules",
                          + "elasticloadbalancing:DescribeTargetGroups",
                          + "elasticloadbalancing:DescribeTargetGroupAttributes",
                          + "elasticloadbalancing:DescribeTargetHealth",
                          + "elasticloadbalancing:DescribeTags",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                  + {
                      + Action   = [
                          + "cognito-idp:DescribeUserPoolClient",
                          + "acm:ListCertificates",
                          + "acm:DescribeCertificate",
                          + "iam:ListServerCertificates",
                          + "iam:GetServerCertificate",
                          + "waf-regional:GetWebACL",
                          + "waf-regional:GetWebACLForResource",
                          + "waf-regional:AssociateWebACL",
                          + "waf-regional:DisassociateWebACL",
                          + "wafv2:GetWebACL",
                          + "wafv2:GetWebACLForResource",
                          + "wafv2:AssociateWebACL",
                          + "wafv2:DisassociateWebACL",
                          + "shield:GetSubscriptionState",
                          + "shield:DescribeProtection",
                          + "shield:CreateProtection",
                          + "shield:DeleteProtection",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                  + {
                      + Action   = [
                          + "ec2:AuthorizeSecurityGroupIngress",
                          + "ec2:RevokeSecurityGroupIngress",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                  + {
                      + Action   = [
                          + "ec2:CreateSecurityGroup",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                  + {
                      + Action    = [
                          + "ec2:CreateTags",
                        ]
                      + Condition = {
                          + Null         = {
                              + "aws:RequestTag/elbv2.k8s.aws/cluster" = "false"
                            }
                          + StringEquals = {
                              + "ec2:CreateAction" = "CreateSecurityGroup"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = "arn:aws:ec2:*:*:security-group/*"
                    },
                  + {
                      + Action    = [
                          + "ec2:CreateTags",
                          + "ec2:DeleteTags",
                        ]
                      + Condition = {
                          + Null = {
                              + "aws:RequestTag/elbv2.k8s.aws/cluster"  = "true"
                              + "aws:ResourceTag/elbv2.k8s.aws/cluster" = "false"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = "arn:aws:ec2:*:*:security-group/*"
                    },
                  + {
                      + Action    = [
                          + "ec2:AuthorizeSecurityGroupIngress",
                          + "ec2:RevokeSecurityGroupIngress",
                          + "ec2:DeleteSecurityGroup",
                        ]
                      + Condition = {
                          + Null = {
                              + "aws:ResourceTag/elbv2.k8s.aws/cluster" = "false"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = "*"
                    },
                  + {
                      + Action    = [
                          + "elasticloadbalancing:CreateLoadBalancer",
                          + "elasticloadbalancing:CreateTargetGroup",
                        ]
                      + Condition = {
                          + Null = {
                              + "aws:RequestTag/elbv2.k8s.aws/cluster" = "false"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = "*"
                    },
                  + {
                      + Action   = [
                          + "elasticloadbalancing:CreateListener",
                          + "elasticloadbalancing:DeleteListener",
                          + "elasticloadbalancing:CreateRule",
                          + "elasticloadbalancing:DeleteRule",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                  + {
                      + Action    = [
                          + "elasticloadbalancing:AddTags",
                          + "elasticloadbalancing:RemoveTags",
                        ]
                      + Condition = {
                          + Null = {
                              + "aws:RequestTag/elbv2.k8s.aws/cluster"  = "true"
                              + "aws:ResourceTag/elbv2.k8s.aws/cluster" = "false"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = [
                          + "arn:aws:elasticloadbalancing:*:*:targetgroup/*/*",
                          + "arn:aws:elasticloadbalancing:*:*:loadbalancer/net/*/*",
                          + "arn:aws:elasticloadbalancing:*:*:loadbalancer/app/*/*",
                        ]
                    },
                  + {
                      + Action   = [
                          + "elasticloadbalancing:AddTags",
                          + "elasticloadbalancing:RemoveTags",
                        ]
                      + Effect   = "Allow"
                      + Resource = [
                          + "arn:aws:elasticloadbalancing:*:*:listener/net/*/*/*",
                          + "arn:aws:elasticloadbalancing:*:*:listener/app/*/*/*",
                          + "arn:aws:elasticloadbalancing:*:*:listener-rule/net/*/*/*",
                          + "arn:aws:elasticloadbalancing:*:*:listener-rule/app/*/*/*",
                        ]
                    },
                  + {
                      + Action    = [
                          + "elasticloadbalancing:ModifyLoadBalancerAttributes",
                          + "elasticloadbalancing:SetIpAddressType",
                          + "elasticloadbalancing:SetSecurityGroups",
                          + "elasticloadbalancing:SetSubnets",
                          + "elasticloadbalancing:DeleteLoadBalancer",
                          + "elasticloadbalancing:ModifyTargetGroup",
                          + "elasticloadbalancing:ModifyTargetGroupAttributes",
                          + "elasticloadbalancing:DeleteTargetGroup",
                        ]
                      + Condition = {
                          + Null = {
                              + "aws:ResourceTag/elbv2.k8s.aws/cluster" = "false"
                            }
                        }
                      + Effect    = "Allow"
                      + Resource  = "*"
                    },
                  + {
                      + Action   = [
                          + "elasticloadbalancing:RegisterTargets",
                          + "elasticloadbalancing:DeregisterTargets",
                        ]
                      + Effect   = "Allow"
                      + Resource = "arn:aws:elasticloadbalancing:*:*:targetgroup/*/*"
                    },
                  + {
                      + Action   = [
                          + "elasticloadbalancing:SetWebAcl",
                          + "elasticloadbalancing:ModifyListener",
                          + "elasticloadbalancing:AddListenerCertificates",
                          + "elasticloadbalancing:RemoveListenerCertificates",
                          + "elasticloadbalancing:ModifyRule",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + policy_id = (known after apply)
      + tags_all  = (known after apply)
    }

  # module.eks.aws_iam_policy.autoscaler will be created
  + resource "aws_iam_policy" "autoscaler" {
      + arn       = (known after apply)
      + id        = (known after apply)
      + name      = "GHESTDevEKSClusterAutoscalerIAMPolicy"
      + path      = "/"
      + policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action   = [
                          + "autoscaling:DescribeAutoScalingInstances",
                          + "autoscaling:TerminateInstanceInAutoScalingGroup",
                          + "autoscaling:DescribeAutoScalingGroups",
                          + "autoscaling:DescribeLaunchConfigurations",
                          + "autoscaling:SetDesiredCapacity",
                          + "autoscaling:DescribeTags",
                          + "ec2:DescribeLaunchTemplateVersions",
                        ]
                      + Effect   = "Allow"
                      + Resource = "*"
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + policy_id = (known after apply)
      + tags_all  = (known after apply)
    }

  # module.eks.aws_iam_role.alb will be created
  + resource "aws_iam_role" "alb" {
      + arn                   = (known after apply)
      + assume_role_policy    = (known after apply)
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "GHESTDevALBIngressControllerServiceAccountRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = (known after apply)
      + unique_id             = (known after apply)

      + inline_policy {
          + name   = (known after apply)
          + policy = (known after apply)
        }
    }

  # module.eks.aws_iam_role.autoscaler will be created
  + resource "aws_iam_role" "autoscaler" {
      + arn                   = (known after apply)
      + assume_role_policy    = (known after apply)
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "GHESTDevEKSClusterAutoscalerServiceAccountRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = (known after apply)
      + unique_id             = (known after apply)

      + inline_policy {
          + name   = (known after apply)
          + policy = (known after apply)
        }
    }

  # module.eks.aws_iam_role.eks_cluster_role will be created
  + resource "aws_iam_role" "eks_cluster_role" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = "eks.amazonaws.com"
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "GHESTDevEKSClusterRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = (known after apply)
      + unique_id             = (known after apply)

      + inline_policy {
          + name   = (known after apply)
          + policy = (known after apply)
        }
    }

  # module.eks.aws_iam_role.node_group will be created
  + resource "aws_iam_role" "node_group" {
      + arn                   = (known after apply)
      + assume_role_policy    = jsonencode(
            {
              + Statement = [
                  + {
                      + Action    = "sts:AssumeRole"
                      + Effect    = "Allow"
                      + Principal = {
                          + Service = "ec2.amazonaws.com"
                        }
                    },
                ]
              + Version   = "2012-10-17"
            }
        )
      + create_date           = (known after apply)
      + force_detach_policies = false
      + id                    = (known after apply)
      + managed_policy_arns   = (known after apply)
      + max_session_duration  = 3600
      + name                  = "GHESTDevManagedNodeGroupRole"
      + name_prefix           = (known after apply)
      + path                  = "/"
      + tags_all              = (known after apply)
      + unique_id             = (known after apply)

      + inline_policy {
          + name   = (known after apply)
          + policy = (known after apply)
        }
    }

  # module.eks.aws_iam_role_policy_attachment.AmazonEC2ContainerRegistryReadOnly will be created
  + resource "aws_iam_role_policy_attachment" "AmazonEC2ContainerRegistryReadOnly" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly"
      + role       = "GHESTDevManagedNodeGroupRole"
    }

  # module.eks.aws_iam_role_policy_attachment.AmazonEKSWorkerNodePolicy will be created
  + resource "aws_iam_role_policy_attachment" "AmazonEKSWorkerNodePolicy" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy"
      + role       = "GHESTDevManagedNodeGroupRole"
    }

  # module.eks.aws_iam_role_policy_attachment.AmazonEKS_CNI_Policy will be created
  + resource "aws_iam_role_policy_attachment" "AmazonEKS_CNI_Policy" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy"
      + role       = "GHESTDevManagedNodeGroupRole"
    }

  # module.eks.aws_iam_role_policy_attachment.alb will be created
  + resource "aws_iam_role_policy_attachment" "alb" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = (known after apply)
    }

  # module.eks.aws_iam_role_policy_attachment.autoscaler will be created
  + resource "aws_iam_role_policy_attachment" "autoscaler" {
      + id         = (known after apply)
      + policy_arn = (known after apply)
      + role       = (known after apply)
    }

  # module.eks.aws_iam_role_policy_attachment.eks_cluster_policy will be created
  + resource "aws_iam_role_policy_attachment" "eks_cluster_policy" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/AmazonEKSClusterPolicy"
      + role       = "GHESTDevEKSClusterRole"
    }

  # module.eks.aws_iam_role_policy_attachment.eks_service_policy will be created
  + resource "aws_iam_role_policy_attachment" "eks_service_policy" {
      + id         = (known after apply)
      + policy_arn = "arn:aws:iam::aws:policy/AmazonEKSServicePolicy"
      + role       = "GHESTDevEKSClusterRole"
    }

  # module.network.aws_default_route_table.public will be created
  + resource "aws_default_route_table" "public" {
      + arn                    = (known after apply)
      + default_route_table_id = (known after apply)
      + id                     = (known after apply)
      + owner_id               = (known after apply)
      + route                  = [
          + {
              + cidr_block                 = "0.0.0.0/0"
              + core_network_arn           = ""
              + destination_prefix_list_id = ""
              + egress_only_gateway_id     = ""
              + gateway_id                 = (known after apply)
              + instance_id                = ""
              + ipv6_cidr_block            = ""
              + nat_gateway_id             = ""
              + network_interface_id       = ""
              + transit_gateway_id         = ""
              + vpc_endpoint_id            = ""
              + vpc_peering_connection_id  = ""
            },
        ]
      + tags                   = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-public-routes"
          + "Project"     = "GHESTDev"
        }
      + tags_all               = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-public-routes"
          + "Project"     = "GHESTDev"
        }
      + vpc_id                 = (known after apply)
    }

  # module.network.aws_eip.self[0] will be created
  + resource "aws_eip" "self" {
      + allocation_id        = (known after apply)
      + association_id       = (known after apply)
      + carrier_ip           = (known after apply)
      + customer_owned_ip    = (known after apply)
      + domain               = (known after apply)
      + id                   = (known after apply)
      + instance             = (known after apply)
      + network_border_group = (known after apply)
      + network_interface    = (known after apply)
      + private_dns          = (known after apply)
      + private_ip           = (known after apply)
      + public_dns           = (known after apply)
      + public_ip            = (known after apply)
      + public_ipv4_pool     = (known after apply)
      + tags_all             = (known after apply)
      + vpc                  = true
    }

  # module.network.aws_eip.self[1] will be created
  + resource "aws_eip" "self" {
      + allocation_id        = (known after apply)
      + association_id       = (known after apply)
      + carrier_ip           = (known after apply)
      + customer_owned_ip    = (known after apply)
      + domain               = (known after apply)
      + id                   = (known after apply)
      + instance             = (known after apply)
      + network_border_group = (known after apply)
      + network_interface    = (known after apply)
      + private_dns          = (known after apply)
      + private_ip           = (known after apply)
      + public_dns           = (known after apply)
      + public_ip            = (known after apply)
      + public_ipv4_pool     = (known after apply)
      + tags_all             = (known after apply)
      + vpc                  = true
    }

  # module.network.aws_eip.self[2] will be created
  + resource "aws_eip" "self" {
      + allocation_id        = (known after apply)
      + association_id       = (known after apply)
      + carrier_ip           = (known after apply)
      + customer_owned_ip    = (known after apply)
      + domain               = (known after apply)
      + id                   = (known after apply)
      + instance             = (known after apply)
      + network_border_group = (known after apply)
      + network_interface    = (known after apply)
      + private_dns          = (known after apply)
      + private_ip           = (known after apply)
      + public_dns           = (known after apply)
      + public_ip            = (known after apply)
      + public_ipv4_pool     = (known after apply)
      + tags_all             = (known after apply)
      + vpc                  = true
    }

  # module.network.aws_internet_gateway.self will be created
  + resource "aws_internet_gateway" "self" {
      + arn      = (known after apply)
      + id       = (known after apply)
      + owner_id = (known after apply)
      + tags     = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-main"
          + "Project"     = "GHESTDev"
        }
      + tags_all = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-main"
          + "Project"     = "GHESTDev"
        }
      + vpc_id   = (known after apply)
    }

  # module.network.aws_nat_gateway.self[0] will be created
  + resource "aws_nat_gateway" "self" {
      + allocation_id        = (known after apply)
      + connectivity_type    = "public"
      + id                   = (known after apply)
      + network_interface_id = (known after apply)
      + private_ip           = (known after apply)
      + public_ip            = (known after apply)
      + subnet_id            = (known after apply)
      + tags                 = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-nat-gateway-us-east-1a"
          + "Project"     = "GHESTDev"
        }
      + tags_all             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-nat-gateway-us-east-1a"
          + "Project"     = "GHESTDev"
        }
    }

  # module.network.aws_nat_gateway.self[1] will be created
  + resource "aws_nat_gateway" "self" {
      + allocation_id        = (known after apply)
      + connectivity_type    = "public"
      + id                   = (known after apply)
      + network_interface_id = (known after apply)
      + private_ip           = (known after apply)
      + public_ip            = (known after apply)
      + subnet_id            = (known after apply)
      + tags                 = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-nat-gateway-us-east-1b"
          + "Project"     = "GHESTDev"
        }
      + tags_all             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-nat-gateway-us-east-1b"
          + "Project"     = "GHESTDev"
        }
    }

  # module.network.aws_nat_gateway.self[2] will be created
  + resource "aws_nat_gateway" "self" {
      + allocation_id        = (known after apply)
      + connectivity_type    = "public"
      + id                   = (known after apply)
      + network_interface_id = (known after apply)
      + private_ip           = (known after apply)
      + public_ip            = (known after apply)
      + subnet_id            = (known after apply)
      + tags                 = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-nat-gateway-us-east-1c"
          + "Project"     = "GHESTDev"
        }
      + tags_all             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-nat-gateway-us-east-1c"
          + "Project"     = "GHESTDev"
        }
    }

  # module.network.aws_route_table.private[0] will be created
  + resource "aws_route_table" "private" {
      + arn              = (known after apply)
      + id               = (known after apply)
      + owner_id         = (known after apply)
      + propagating_vgws = (known after apply)
      + route            = [
          + {
              + carrier_gateway_id         = ""
              + cidr_block                 = "0.0.0.0/0"
              + core_network_arn           = ""
              + destination_prefix_list_id = ""
              + egress_only_gateway_id     = ""
              + gateway_id                 = (known after apply)
              + instance_id                = ""
              + ipv6_cidr_block            = ""
              + local_gateway_id           = ""
              + nat_gateway_id             = ""
              + network_interface_id       = ""
              + transit_gateway_id         = ""
              + vpc_endpoint_id            = ""
              + vpc_peering_connection_id  = ""
            },
        ]
      + tags             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-private-routes"
          + "Project"     = "GHESTDev"
        }
      + tags_all         = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-private-routes"
          + "Project"     = "GHESTDev"
        }
      + vpc_id           = (known after apply)
    }

  # module.network.aws_route_table.private[1] will be created
  + resource "aws_route_table" "private" {
      + arn              = (known after apply)
      + id               = (known after apply)
      + owner_id         = (known after apply)
      + propagating_vgws = (known after apply)
      + route            = [
          + {
              + carrier_gateway_id         = ""
              + cidr_block                 = "0.0.0.0/0"
              + core_network_arn           = ""
              + destination_prefix_list_id = ""
              + egress_only_gateway_id     = ""
              + gateway_id                 = (known after apply)
              + instance_id                = ""
              + ipv6_cidr_block            = ""
              + local_gateway_id           = ""
              + nat_gateway_id             = ""
              + network_interface_id       = ""
              + transit_gateway_id         = ""
              + vpc_endpoint_id            = ""
              + vpc_peering_connection_id  = ""
            },
        ]
      + tags             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-private-routes"
          + "Project"     = "GHESTDev"
        }
      + tags_all         = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-private-routes"
          + "Project"     = "GHESTDev"
        }
      + vpc_id           = (known after apply)
    }

  # module.network.aws_route_table.private[2] will be created
  + resource "aws_route_table" "private" {
      + arn              = (known after apply)
      + id               = (known after apply)
      + owner_id         = (known after apply)
      + propagating_vgws = (known after apply)
      + route            = [
          + {
              + carrier_gateway_id         = ""
              + cidr_block                 = "0.0.0.0/0"
              + core_network_arn           = ""
              + destination_prefix_list_id = ""
              + egress_only_gateway_id     = ""
              + gateway_id                 = (known after apply)
              + instance_id                = ""
              + ipv6_cidr_block            = ""
              + local_gateway_id           = ""
              + nat_gateway_id             = ""
              + network_interface_id       = ""
              + transit_gateway_id         = ""
              + vpc_endpoint_id            = ""
              + vpc_peering_connection_id  = ""
            },
        ]
      + tags             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-private-routes"
          + "Project"     = "GHESTDev"
        }
      + tags_all         = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-private-routes"
          + "Project"     = "GHESTDev"
        }
      + vpc_id           = (known after apply)
    }

  # module.network.aws_route_table_association.private[0] will be created
  + resource "aws_route_table_association" "private" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.network.aws_route_table_association.private[1] will be created
  + resource "aws_route_table_association" "private" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.network.aws_route_table_association.private[2] will be created
  + resource "aws_route_table_association" "private" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.network.aws_route_table_association.public[0] will be created
  + resource "aws_route_table_association" "public" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.network.aws_route_table_association.public[1] will be created
  + resource "aws_route_table_association" "public" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.network.aws_route_table_association.public[2] will be created
  + resource "aws_route_table_association" "public" {
      + id             = (known after apply)
      + route_table_id = (known after apply)
      + subnet_id      = (known after apply)
    }

  # module.network.aws_security_group.self will be created
  + resource "aws_security_group" "self" {
      + arn                    = (known after apply)
      + description            = "Managed by Terraform"
      + egress                 = [
          + {
              + cidr_blocks      = [
                  + "0.0.0.0/0",
                ]
              + description      = ""
              + from_port        = 0
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "-1"
              + security_groups  = []
              + self             = false
              + to_port          = 0
            },
        ]
      + id                     = (known after apply)
      + ingress                = [
          + {
              + cidr_blocks      = [
                  + "172.27.0.0/21",
                ]
              + description      = ""
              + from_port        = 0
              + ipv6_cidr_blocks = []
              + prefix_list_ids  = []
              + protocol         = "-1"
              + security_groups  = []
              + self             = false
              + to_port          = 0
            },
        ]
      + name                   = (known after apply)
      + name_prefix            = (known after apply)
      + owner_id               = (known after apply)
      + revoke_rules_on_delete = false
      + tags                   = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-firewall"
          + "Project"     = "GHESTDev"
        }
      + tags_all               = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev-firewall"
          + "Project"     = "GHESTDev"
        }
      + vpc_id                 = (known after apply)
    }

  # module.network.aws_subnet.private[0] will be created
  + resource "aws_subnet" "private" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "us-east-1a"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "172.27.0.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-private-subnet-us-east-1a"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/internal-elb" = "1"
        }
      + tags_all                                       = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-private-subnet-us-east-1a"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/internal-elb" = "1"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.network.aws_subnet.private[1] will be created
  + resource "aws_subnet" "private" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "us-east-1b"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "172.27.1.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-private-subnet-us-east-1b"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/internal-elb" = "1"
        }
      + tags_all                                       = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-private-subnet-us-east-1b"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/internal-elb" = "1"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.network.aws_subnet.private[2] will be created
  + resource "aws_subnet" "private" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "us-east-1c"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "172.27.2.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-private-subnet-us-east-1c"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/internal-elb" = "1"
        }
      + tags_all                                       = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-private-subnet-us-east-1c"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/internal-elb" = "1"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.network.aws_subnet.public[0] will be created
  + resource "aws_subnet" "public" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "us-east-1a"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "172.27.3.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-public-subnet-us-east-1a"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/elb"          = "1"
        }
      + tags_all                                       = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-public-subnet-us-east-1a"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/elb"          = "1"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.network.aws_subnet.public[1] will be created
  + resource "aws_subnet" "public" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "us-east-1b"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "172.27.4.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-public-subnet-us-east-1b"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/elb"          = "1"
        }
      + tags_all                                       = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-public-subnet-us-east-1b"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/elb"          = "1"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.network.aws_subnet.public[2] will be created
  + resource "aws_subnet" "public" {
      + arn                                            = (known after apply)
      + assign_ipv6_address_on_creation                = false
      + availability_zone                              = "us-east-1c"
      + availability_zone_id                           = (known after apply)
      + cidr_block                                     = "172.27.5.0/24"
      + enable_dns64                                   = false
      + enable_resource_name_dns_a_record_on_launch    = false
      + enable_resource_name_dns_aaaa_record_on_launch = false
      + id                                             = (known after apply)
      + ipv6_cidr_block_association_id                 = (known after apply)
      + ipv6_native                                    = false
      + map_public_ip_on_launch                        = false
      + owner_id                                       = (known after apply)
      + private_dns_hostname_type_on_launch            = (known after apply)
      + tags                                           = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-public-subnet-us-east-1c"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/elb"          = "1"
        }
      + tags_all                                       = {
          + "Environment"                     = "Development"
          + "Name"                            = "ghest-dev-public-subnet-us-east-1c"
          + "Project"                         = "GHESTDev"
          + "kubernetes.io/cluster/ghest-dev" = "shared"
          + "kubernetes.io/role/elb"          = "1"
        }
      + vpc_id                                         = (known after apply)
    }

  # module.network.aws_vpc.self will be created
  + resource "aws_vpc" "self" {
      + arn                                  = (known after apply)
      + cidr_block                           = "172.27.0.0/21"
      + default_network_acl_id               = (known after apply)
      + default_route_table_id               = (known after apply)
      + default_security_group_id            = (known after apply)
      + dhcp_options_id                      = (known after apply)
      + enable_classiclink                   = (known after apply)
      + enable_classiclink_dns_support       = (known after apply)
      + enable_dns_hostnames                 = true
      + enable_dns_support                   = true
      + id                                   = (known after apply)
      + instance_tenancy                     = "default"
      + ipv6_association_id                  = (known after apply)
      + ipv6_cidr_block                      = (known after apply)
      + ipv6_cidr_block_network_border_group = (known after apply)
      + main_route_table_id                  = (known after apply)
      + owner_id                             = (known after apply)
      + tags                                 = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev"
          + "Project"     = "GHESTDev"
        }
      + tags_all                             = {
          + "Environment" = "Development"
          + "Name"        = "ghest-dev"
          + "Project"     = "GHESTDev"
        }
    }

Plan: 41 to add, 0 to change, 0 to destroy.

@baserrato baserrato merged commit 5ee62c9 into main May 25, 2023
1 check failed
@baserrato baserrato deleted the workflow-updates branch May 25, 2023 21:21
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.

None yet

2 participants