Skip to content

Latest commit

 

History

History
4052 lines (3779 loc) · 157 KB

kubernetes_replication_controller.md

File metadata and controls

4052 lines (3779 loc) · 157 KB

kubernetes_replication_controller

back

Index

Terraform

terraform {
  required_providers {
    kubernetes = ">= 2.0.3"
  }
}

top

Example Usage

module "kubernetes_replication_controller" {
  source = "./modules/kubernetes/r/kubernetes_replication_controller"


  metadata = [{
    annotations      = {}
    generate_name    = null
    generation       = null
    labels           = {}
    name             = null
    namespace        = null
    resource_version = null
    self_link        = null
    uid              = null
  }]

  spec = [{
    min_ready_seconds = null
    replicas          = null
    selector          = {}
    template = [{
      metadata = [{
        annotations      = {}
        generate_name    = null
        generation       = null
        labels           = {}
        name             = null
        namespace        = null
        resource_version = null
        self_link        = null
        uid              = null
      }]
      spec = [{
        active_deadline_seconds = null
        affinity = [{
          node_affinity = [{
            preferred_during_scheduling_ignored_during_execution = [{
              preference = [{
                match_expressions = [{
                  key      = null
                  operator = null
                  values   = []
                }]
              }]
              weight = null
            }]
            required_during_scheduling_ignored_during_execution = [{
              node_selector_term = [{
                match_expressions = [{
                  key      = null
                  operator = null
                  values   = []
                }]
              }]
            }]
          }]
          pod_affinity = [{
            preferred_during_scheduling_ignored_during_execution = [{
              pod_affinity_term = [{
                label_selector = [{
                  match_expressions = [{
                    key      = null
                    operator = null
                    values   = []
                  }]
                  match_labels = {}
                }]
                namespaces   = []
                topology_key = null
              }]
              weight = null
            }]
            required_during_scheduling_ignored_during_execution = [{
              label_selector = [{
                match_expressions = [{
                  key      = null
                  operator = null
                  values   = []
                }]
                match_labels = {}
              }]
              namespaces   = []
              topology_key = null
            }]
          }]
          pod_anti_affinity = [{
            preferred_during_scheduling_ignored_during_execution = [{
              pod_affinity_term = [{
                label_selector = [{
                  match_expressions = [{
                    key      = null
                    operator = null
                    values   = []
                  }]
                  match_labels = {}
                }]
                namespaces   = []
                topology_key = null
              }]
              weight = null
            }]
            required_during_scheduling_ignored_during_execution = [{
              label_selector = [{
                match_expressions = [{
                  key      = null
                  operator = null
                  values   = []
                }]
                match_labels = {}
              }]
              namespaces   = []
              topology_key = null
            }]
          }]
        }]
        automount_service_account_token = null
        container = [{
          args    = []
          command = []
          env = [{
            name  = null
            value = null
            value_from = [{
              config_map_key_ref = [{
                key      = null
                name     = null
                optional = null
              }]
              field_ref = [{
                api_version = null
                field_path  = null
              }]
              resource_field_ref = [{
                container_name = null
                divisor        = null
                resource       = null
              }]
              secret_key_ref = [{
                key      = null
                name     = null
                optional = null
              }]
            }]
          }]
          env_from = [{
            config_map_ref = [{
              name     = null
              optional = null
            }]
            prefix = null
            secret_ref = [{
              name     = null
              optional = null
            }]
          }]
          image             = null
          image_pull_policy = null
          lifecycle = [{
            post_start = [{
              exec = [{
                command = []
              }]
              http_get = [{
                host = null
                http_header = [{
                  name  = null
                  value = null
                }]
                path   = null
                port   = null
                scheme = null
              }]
              tcp_socket = [{
                port = null
              }]
            }]
            pre_stop = [{
              exec = [{
                command = []
              }]
              http_get = [{
                host = null
                http_header = [{
                  name  = null
                  value = null
                }]
                path   = null
                port   = null
                scheme = null
              }]
              tcp_socket = [{
                port = null
              }]
            }]
          }]
          liveness_probe = [{
            exec = [{
              command = []
            }]
            failure_threshold = null
            http_get = [{
              host = null
              http_header = [{
                name  = null
                value = null
              }]
              path   = null
              port   = null
              scheme = null
            }]
            initial_delay_seconds = null
            period_seconds        = null
            success_threshold     = null
            tcp_socket = [{
              port = null
            }]
            timeout_seconds = null
          }]
          name = null
          port = [{
            container_port = null
            host_ip        = null
            host_port      = null
            name           = null
            protocol       = null
          }]
          readiness_probe = [{
            exec = [{
              command = []
            }]
            failure_threshold = null
            http_get = [{
              host = null
              http_header = [{
                name  = null
                value = null
              }]
              path   = null
              port   = null
              scheme = null
            }]
            initial_delay_seconds = null
            period_seconds        = null
            success_threshold     = null
            tcp_socket = [{
              port = null
            }]
            timeout_seconds = null
          }]
          resources = [{
            limits   = {}
            requests = {}
          }]
          security_context = [{
            allow_privilege_escalation = null
            capabilities = [{
              add  = []
              drop = []
            }]
            privileged                = null
            read_only_root_filesystem = null
            run_as_group              = null
            run_as_non_root           = null
            run_as_user               = null
            se_linux_options = [{
              level = null
              role  = null
              type  = null
              user  = null
            }]
          }]
          startup_probe = [{
            exec = [{
              command = []
            }]
            failure_threshold = null
            http_get = [{
              host = null
              http_header = [{
                name  = null
                value = null
              }]
              path   = null
              port   = null
              scheme = null
            }]
            initial_delay_seconds = null
            period_seconds        = null
            success_threshold     = null
            tcp_socket = [{
              port = null
            }]
            timeout_seconds = null
          }]
          stdin                      = null
          stdin_once                 = null
          termination_message_path   = null
          termination_message_policy = null
          tty                        = null
          volume_mount = [{
            mount_path        = null
            mount_propagation = null
            name              = null
            read_only         = null
            sub_path          = null
          }]
          working_dir = null
        }]
        dns_config = [{
          nameservers = []
          option = [{
            name  = null
            value = null
          }]
          searches = []
        }]
        dns_policy           = null
        enable_service_links = null
        host_aliases = [{
          hostnames = []
          ip        = null
        }]
        host_ipc     = null
        host_network = null
        host_pid     = null
        hostname     = null
        image_pull_secrets = [{
          name = null
        }]
        init_container = [{
          args    = []
          command = []
          env = [{
            name  = null
            value = null
            value_from = [{
              config_map_key_ref = [{
                key      = null
                name     = null
                optional = null
              }]
              field_ref = [{
                api_version = null
                field_path  = null
              }]
              resource_field_ref = [{
                container_name = null
                divisor        = null
                resource       = null
              }]
              secret_key_ref = [{
                key      = null
                name     = null
                optional = null
              }]
            }]
          }]
          env_from = [{
            config_map_ref = [{
              name     = null
              optional = null
            }]
            prefix = null
            secret_ref = [{
              name     = null
              optional = null
            }]
          }]
          image             = null
          image_pull_policy = null
          lifecycle = [{
            post_start = [{
              exec = [{
                command = []
              }]
              http_get = [{
                host = null
                http_header = [{
                  name  = null
                  value = null
                }]
                path   = null
                port   = null
                scheme = null
              }]
              tcp_socket = [{
                port = null
              }]
            }]
            pre_stop = [{
              exec = [{
                command = []
              }]
              http_get = [{
                host = null
                http_header = [{
                  name  = null
                  value = null
                }]
                path   = null
                port   = null
                scheme = null
              }]
              tcp_socket = [{
                port = null
              }]
            }]
          }]
          liveness_probe = [{
            exec = [{
              command = []
            }]
            failure_threshold = null
            http_get = [{
              host = null
              http_header = [{
                name  = null
                value = null
              }]
              path   = null
              port   = null
              scheme = null
            }]
            initial_delay_seconds = null
            period_seconds        = null
            success_threshold     = null
            tcp_socket = [{
              port = null
            }]
            timeout_seconds = null
          }]
          name = null
          port = [{
            container_port = null
            host_ip        = null
            host_port      = null
            name           = null
            protocol       = null
          }]
          readiness_probe = [{
            exec = [{
              command = []
            }]
            failure_threshold = null
            http_get = [{
              host = null
              http_header = [{
                name  = null
                value = null
              }]
              path   = null
              port   = null
              scheme = null
            }]
            initial_delay_seconds = null
            period_seconds        = null
            success_threshold     = null
            tcp_socket = [{
              port = null
            }]
            timeout_seconds = null
          }]
          resources = [{
            limits   = {}
            requests = {}
          }]
          security_context = [{
            allow_privilege_escalation = null
            capabilities = [{
              add  = []
              drop = []
            }]
            privileged                = null
            read_only_root_filesystem = null
            run_as_group              = null
            run_as_non_root           = null
            run_as_user               = null
            se_linux_options = [{
              level = null
              role  = null
              type  = null
              user  = null
            }]
          }]
          startup_probe = [{
            exec = [{
              command = []
            }]
            failure_threshold = null
            http_get = [{
              host = null
              http_header = [{
                name  = null
                value = null
              }]
              path   = null
              port   = null
              scheme = null
            }]
            initial_delay_seconds = null
            period_seconds        = null
            success_threshold     = null
            tcp_socket = [{
              port = null
            }]
            timeout_seconds = null
          }]
          stdin                      = null
          stdin_once                 = null
          termination_message_path   = null
          termination_message_policy = null
          tty                        = null
          volume_mount = [{
            mount_path        = null
            mount_propagation = null
            name              = null
            read_only         = null
            sub_path          = null
          }]
          working_dir = null
        }]
        node_name           = null
        node_selector       = {}
        priority_class_name = null
        readiness_gate = [{
          condition_type = null
        }]
        restart_policy = null
        security_context = [{
          fs_group        = null
          run_as_group    = null
          run_as_non_root = null
          run_as_user     = null
          se_linux_options = [{
            level = null
            role  = null
            type  = null
            user  = null
          }]
          supplemental_groups = []
          sysctl = [{
            name  = null
            value = null
          }]
        }]
        service_account_name             = null
        share_process_namespace          = null
        subdomain                        = null
        termination_grace_period_seconds = null
        toleration = [{
          effect             = null
          key                = null
          operator           = null
          toleration_seconds = null
          value              = null
        }]
        topology_spread_constraint = [{
          label_selector = [{
            match_expressions = [{
              key      = null
              operator = null
              values   = []
            }]
            match_labels = {}
          }]
          max_skew           = null
          topology_key       = null
          when_unsatisfiable = null
        }]
        volume = [{
          aws_elastic_block_store = [{
            fs_type   = null
            partition = null
            read_only = null
            volume_id = null
          }]
          azure_disk = [{
            caching_mode  = null
            data_disk_uri = null
            disk_name     = null
            fs_type       = null
            kind          = null
            read_only     = null
          }]
          azure_file = [{
            read_only   = null
            secret_name = null
            share_name  = null
          }]
          ceph_fs = [{
            monitors    = []
            path        = null
            read_only   = null
            secret_file = null
            secret_ref = [{
              name      = null
              namespace = null
            }]
            user = null
          }]
          cinder = [{
            fs_type   = null
            read_only = null
            volume_id = null
          }]
          config_map = [{
            default_mode = null
            items = [{
              key  = null
              mode = null
              path = null
            }]
            name     = null
            optional = null
          }]
          csi = [{
            controller_expand_secret_ref = [{
              name      = null
              namespace = null
            }]
            controller_publish_secret_ref = [{
              name      = null
              namespace = null
            }]
            driver  = null
            fs_type = null
            node_publish_secret_ref = [{
              name      = null
              namespace = null
            }]
            node_stage_secret_ref = [{
              name      = null
              namespace = null
            }]
            read_only         = null
            volume_attributes = {}
            volume_handle     = null
          }]
          downward_api = [{
            default_mode = null
            items = [{
              field_ref = [{
                api_version = null
                field_path  = null
              }]
              mode = null
              path = null
              resource_field_ref = [{
                container_name = null
                divisor        = null
                resource       = null
              }]
            }]
          }]
          empty_dir = [{
            medium     = null
            size_limit = null
          }]
          fc = [{
            fs_type      = null
            lun          = null
            read_only    = null
            target_ww_ns = []
          }]
          flex_volume = [{
            driver    = null
            fs_type   = null
            options   = {}
            read_only = null
            secret_ref = [{
              name      = null
              namespace = null
            }]
          }]
          flocker = [{
            dataset_name = null
            dataset_uuid = null
          }]
          gce_persistent_disk = [{
            fs_type   = null
            partition = null
            pd_name   = null
            read_only = null
          }]
          git_repo = [{
            directory  = null
            repository = null
            revision   = null
          }]
          glusterfs = [{
            endpoints_name = null
            path           = null
            read_only      = null
          }]
          host_path = [{
            path = null
            type = null
          }]
          iscsi = [{
            fs_type         = null
            iqn             = null
            iscsi_interface = null
            lun             = null
            read_only       = null
            target_portal   = null
          }]
          local = [{
            path = null
          }]
          name = null
          nfs = [{
            path      = null
            read_only = null
            server    = null
          }]
          persistent_volume_claim = [{
            claim_name = null
            read_only  = null
          }]
          photon_persistent_disk = [{
            fs_type = null
            pd_id   = null
          }]
          projected = [{
            default_mode = null
            sources = [{
              config_map = [{
                items = [{
                  key  = null
                  mode = null
                  path = null
                }]
                name     = null
                optional = null
              }]
              downward_api = [{
                items = [{
                  field_ref = [{
                    api_version = null
                    field_path  = null
                  }]
                  mode = null
                  path = null
                  resource_field_ref = [{
                    container_name = null
                    divisor        = null
                    resource       = null
                  }]
                }]
              }]
              secret = [{
                items = [{
                  key  = null
                  mode = null
                  path = null
                }]
                name     = null
                optional = null
              }]
              service_account_token = [{
                audience           = null
                expiration_seconds = null
                path               = null
              }]
            }]
          }]
          quobyte = [{
            group     = null
            read_only = null
            registry  = null
            user      = null
            volume    = null
          }]
          rbd = [{
            ceph_monitors = []
            fs_type       = null
            keyring       = null
            rados_user    = null
            rbd_image     = null
            rbd_pool      = null
            read_only     = null
            secret_ref = [{
              name      = null
              namespace = null
            }]
          }]
          secret = [{
            default_mode = null
            items = [{
              key  = null
              mode = null
              path = null
            }]
            optional    = null
            secret_name = null
          }]
          vsphere_volume = [{
            fs_type     = null
            volume_path = null
          }]
        }]
      }]
    }]
  }]

  timeouts = [{
    create = null
    delete = null
    update = null
  }]
}

top

Variables

variable "metadata" {
  description = "nested block: NestingList, min items: 1, max items: 1"
  type = set(object(
    {
      annotations      = map(string)
      generate_name    = string
      generation       = number
      labels           = map(string)
      name             = string
      namespace        = string
      resource_version = string
      self_link        = string
      uid              = string
    }
  ))
}

variable "spec" {
  description = "nested block: NestingList, min items: 1, max items: 1"
  type = set(object(
    {
      min_ready_seconds = number
      replicas          = number
      selector          = map(string)
      template = list(object(
        {
          metadata = list(object(
            {
              annotations      = map(string)
              generate_name    = string
              generation       = number
              labels           = map(string)
              name             = string
              namespace        = string
              resource_version = string
              self_link        = string
              uid              = string
            }
          ))
          spec = list(object(
            {
              active_deadline_seconds = number
              affinity = list(object(
                {
                  node_affinity = list(object(
                    {
                      preferred_during_scheduling_ignored_during_execution = list(object(
                        {
                          preference = list(object(
                            {
                              match_expressions = list(object(
                                {
                                  key      = string
                                  operator = string
                                  values   = set(string)
                                }
                              ))
                            }
                          ))
                          weight = number
                        }
                      ))
                      required_during_scheduling_ignored_during_execution = list(object(
                        {
                          node_selector_term = list(object(
                            {
                              match_expressions = list(object(
                                {
                                  key      = string
                                  operator = string
                                  values   = set(string)
                                }
                              ))
                            }
                          ))
                        }
                      ))
                    }
                  ))
                  pod_affinity = list(object(
                    {
                      preferred_during_scheduling_ignored_during_execution = list(object(
                        {
                          pod_affinity_term = list(object(
                            {
                              label_selector = list(object(
                                {
                                  match_expressions = list(object(
                                    {
                                      key      = string
                                      operator = string
                                      values   = set(string)
                                    }
                                  ))
                                  match_labels = map(string)
                                }
                              ))
                              namespaces   = set(string)
                              topology_key = string
                            }
                          ))
                          weight = number
                        }
                      ))
                      required_during_scheduling_ignored_during_execution = list(object(
                        {
                          label_selector = list(object(
                            {
                              match_expressions = list(object(
                                {
                                  key      = string
                                  operator = string
                                  values   = set(string)
                                }
                              ))
                              match_labels = map(string)
                            }
                          ))
                          namespaces   = set(string)
                          topology_key = string
                        }
                      ))
                    }
                  ))
                  pod_anti_affinity = list(object(
                    {
                      preferred_during_scheduling_ignored_during_execution = list(object(
                        {
                          pod_affinity_term = list(object(
                            {
                              label_selector = list(object(
                                {
                                  match_expressions = list(object(
                                    {
                                      key      = string
                                      operator = string
                                      values   = set(string)
                                    }
                                  ))
                                  match_labels = map(string)
                                }
                              ))
                              namespaces   = set(string)
                              topology_key = string
                            }
                          ))
                          weight = number
                        }
                      ))
                      required_during_scheduling_ignored_during_execution = list(object(
                        {
                          label_selector = list(object(
                            {
                              match_expressions = list(object(
                                {
                                  key      = string
                                  operator = string
                                  values   = set(string)
                                }
                              ))
                              match_labels = map(string)
                            }
                          ))
                          namespaces   = set(string)
                          topology_key = string
                        }
                      ))
                    }
                  ))
                }
              ))
              automount_service_account_token = bool
              container = list(object(
                {
                  args    = list(string)
                  command = list(string)
                  env = list(object(
                    {
                      name  = string
                      value = string
                      value_from = list(object(
                        {
                          config_map_key_ref = list(object(
                            {
                              key      = string
                              name     = string
                              optional = bool
                            }
                          ))
                          field_ref = list(object(
                            {
                              api_version = string
                              field_path  = string
                            }
                          ))
                          resource_field_ref = list(object(
                            {
                              container_name = string
                              divisor        = string
                              resource       = string
                            }
                          ))
                          secret_key_ref = list(object(
                            {
                              key      = string
                              name     = string
                              optional = bool
                            }
                          ))
                        }
                      ))
                    }
                  ))
                  env_from = list(object(
                    {
                      config_map_ref = list(object(
                        {
                          name     = string
                          optional = bool
                        }
                      ))
                      prefix = string
                      secret_ref = list(object(
                        {
                          name     = string
                          optional = bool
                        }
                      ))
                    }
                  ))
                  image             = string
                  image_pull_policy = string
                  lifecycle = list(object(
                    {
                      post_start = list(object(
                        {
                          exec = list(object(
                            {
                              command = list(string)
                            }
                          ))
                          http_get = list(object(
                            {
                              host = string
                              http_header = list(object(
                                {
                                  name  = string
                                  value = string
                                }
                              ))
                              path   = string
                              port   = string
                              scheme = string
                            }
                          ))
                          tcp_socket = list(object(
                            {
                              port = string
                            }
                          ))
                        }
                      ))
                      pre_stop = list(object(
                        {
                          exec = list(object(
                            {
                              command = list(string)
                            }
                          ))
                          http_get = list(object(
                            {
                              host = string
                              http_header = list(object(
                                {
                                  name  = string
                                  value = string
                                }
                              ))
                              path   = string
                              port   = string
                              scheme = string
                            }
                          ))
                          tcp_socket = list(object(
                            {
                              port = string
                            }
                          ))
                        }
                      ))
                    }
                  ))
                  liveness_probe = list(object(
                    {
                      exec = list(object(
                        {
                          command = list(string)
                        }
                      ))
                      failure_threshold = number
                      http_get = list(object(
                        {
                          host = string
                          http_header = list(object(
                            {
                              name  = string
                              value = string
                            }
                          ))
                          path   = string
                          port   = string
                          scheme = string
                        }
                      ))
                      initial_delay_seconds = number
                      period_seconds        = number
                      success_threshold     = number
                      tcp_socket = list(object(
                        {
                          port = string
                        }
                      ))
                      timeout_seconds = number
                    }
                  ))
                  name = string
                  port = list(object(
                    {
                      container_port = number
                      host_ip        = string
                      host_port      = number
                      name           = string
                      protocol       = string
                    }
                  ))
                  readiness_probe = list(object(
                    {
                      exec = list(object(
                        {
                          command = list(string)
                        }
                      ))
                      failure_threshold = number
                      http_get = list(object(
                        {
                          host = string
                          http_header = list(object(
                            {
                              name  = string
                              value = string
                            }
                          ))
                          path   = string
                          port   = string
                          scheme = string
                        }
                      ))
                      initial_delay_seconds = number
                      period_seconds        = number
                      success_threshold     = number
                      tcp_socket = list(object(
                        {
                          port = string
                        }
                      ))
                      timeout_seconds = number
                    }
                  ))
                  resources = list(object(
                    {
                      limits   = map(string)
                      requests = map(string)
                    }
                  ))
                  security_context = list(object(
                    {
                      allow_privilege_escalation = bool
                      capabilities = list(object(
                        {
                          add  = list(string)
                          drop = list(string)
                        }
                      ))
                      privileged                = bool
                      read_only_root_filesystem = bool
                      run_as_group              = string
                      run_as_non_root           = bool
                      run_as_user               = string
                      se_linux_options = list(object(
                        {
                          level = string
                          role  = string
                          type  = string
                          user  = string
                        }
                      ))
                    }
                  ))
                  startup_probe = list(object(
                    {
                      exec = list(object(
                        {
                          command = list(string)
                        }
                      ))
                      failure_threshold = number
                      http_get = list(object(
                        {
                          host = string
                          http_header = list(object(
                            {
                              name  = string
                              value = string
                            }
                          ))
                          path   = string
                          port   = string
                          scheme = string
                        }
                      ))
                      initial_delay_seconds = number
                      period_seconds        = number
                      success_threshold     = number
                      tcp_socket = list(object(
                        {
                          port = string
                        }
                      ))
                      timeout_seconds = number
                    }
                  ))
                  stdin                      = bool
                  stdin_once                 = bool
                  termination_message_path   = string
                  termination_message_policy = string
                  tty                        = bool
                  volume_mount = list(object(
                    {
                      mount_path        = string
                      mount_propagation = string
                      name              = string
                      read_only         = bool
                      sub_path          = string
                    }
                  ))
                  working_dir = string
                }
              ))
              dns_config = list(object(
                {
                  nameservers = list(string)
                  option = list(object(
                    {
                      name  = string
                      value = string
                    }
                  ))
                  searches = list(string)
                }
              ))
              dns_policy           = string
              enable_service_links = bool
              host_aliases = list(object(
                {
                  hostnames = list(string)
                  ip        = string
                }
              ))
              host_ipc     = bool
              host_network = bool
              host_pid     = bool
              hostname     = string
              image_pull_secrets = list(object(
                {
                  name = string
                }
              ))
              init_container = list(object(
                {
                  args    = list(string)
                  command = list(string)
                  env = list(object(
                    {
                      name  = string
                      value = string
                      value_from = list(object(
                        {
                          config_map_key_ref = list(object(
                            {
                              key      = string
                              name     = string
                              optional = bool
                            }
                          ))
                          field_ref = list(object(
                            {
                              api_version = string
                              field_path  = string
                            }
                          ))
                          resource_field_ref = list(object(
                            {
                              container_name = string
                              divisor        = string
                              resource       = string
                            }
                          ))
                          secret_key_ref = list(object(
                            {
                              key      = string
                              name     = string
                              optional = bool
                            }
                          ))
                        }
                      ))
                    }
                  ))
                  env_from = list(object(
                    {
                      config_map_ref = list(object(
                        {
                          name     = string
                          optional = bool
                        }
                      ))
                      prefix = string
                      secret_ref = list(object(
                        {
                          name     = string
                          optional = bool
                        }
                      ))
                    }
                  ))
                  image             = string
                  image_pull_policy = string
                  lifecycle = list(object(
                    {
                      post_start = list(object(
                        {
                          exec = list(object(
                            {
                              command = list(string)
                            }
                          ))
                          http_get = list(object(
                            {
                              host = string
                              http_header = list(object(
                                {
                                  name  = string
                                  value = string
                                }
                              ))
                              path   = string
                              port   = string
                              scheme = string
                            }
                          ))
                          tcp_socket = list(object(
                            {
                              port = string
                            }
                          ))
                        }
                      ))
                      pre_stop = list(object(
                        {
                          exec = list(object(
                            {
                              command = list(string)
                            }
                          ))
                          http_get = list(object(
                            {
                              host = string
                              http_header = list(object(
                                {
                                  name  = string
                                  value = string
                                }
                              ))
                              path   = string
                              port   = string
                              scheme = string
                            }
                          ))
                          tcp_socket = list(object(
                            {
                              port = string
                            }
                          ))
                        }
                      ))
                    }
                  ))
                  liveness_probe = list(object(
                    {
                      exec = list(object(
                        {
                          command = list(string)
                        }
                      ))
                      failure_threshold = number
                      http_get = list(object(
                        {
                          host = string
                          http_header = list(object(
                            {
                              name  = string
                              value = string
                            }
                          ))
                          path   = string
                          port   = string
                          scheme = string
                        }
                      ))
                      initial_delay_seconds = number
                      period_seconds        = number
                      success_threshold     = number
                      tcp_socket = list(object(
                        {
                          port = string
                        }
                      ))
                      timeout_seconds = number
                    }
                  ))
                  name = string
                  port = list(object(
                    {
                      container_port = number
                      host_ip        = string
                      host_port      = number
                      name           = string
                      protocol       = string
                    }
                  ))
                  readiness_probe = list(object(
                    {
                      exec = list(object(
                        {
                          command = list(string)
                        }
                      ))
                      failure_threshold = number
                      http_get = list(object(
                        {
                          host = string
                          http_header = list(object(
                            {
                              name  = string
                              value = string
                            }
                          ))
                          path   = string
                          port   = string
                          scheme = string
                        }
                      ))
                      initial_delay_seconds = number
                      period_seconds        = number
                      success_threshold     = number
                      tcp_socket = list(object(
                        {
                          port = string
                        }
                      ))
                      timeout_seconds = number
                    }
                  ))
                  resources = list(object(
                    {
                      limits   = map(string)
                      requests = map(string)
                    }
                  ))
                  security_context = list(object(
                    {
                      allow_privilege_escalation = bool
                      capabilities = list(object(
                        {
                          add  = list(string)
                          drop = list(string)
                        }
                      ))
                      privileged                = bool
                      read_only_root_filesystem = bool
                      run_as_group              = string
                      run_as_non_root           = bool
                      run_as_user               = string
                      se_linux_options = list(object(
                        {
                          level = string
                          role  = string
                          type  = string
                          user  = string
                        }
                      ))
                    }
                  ))
                  startup_probe = list(object(
                    {
                      exec = list(object(
                        {
                          command = list(string)
                        }
                      ))
                      failure_threshold = number
                      http_get = list(object(
                        {
                          host = string
                          http_header = list(object(
                            {
                              name  = string
                              value = string
                            }
                          ))
                          path   = string
                          port   = string
                          scheme = string
                        }
                      ))
                      initial_delay_seconds = number
                      period_seconds        = number
                      success_threshold     = number
                      tcp_socket = list(object(
                        {
                          port = string
                        }
                      ))
                      timeout_seconds = number
                    }
                  ))
                  stdin                      = bool
                  stdin_once                 = bool
                  termination_message_path   = string
                  termination_message_policy = string
                  tty                        = bool
                  volume_mount = list(object(
                    {
                      mount_path        = string
                      mount_propagation = string
                      name              = string
                      read_only         = bool
                      sub_path          = string
                    }
                  ))
                  working_dir = string
                }
              ))
              node_name           = string
              node_selector       = map(string)
              priority_class_name = string
              readiness_gate = list(object(
                {
                  condition_type = string
                }
              ))
              restart_policy = string
              security_context = list(object(
                {
                  fs_group        = string
                  run_as_group    = string
                  run_as_non_root = bool
                  run_as_user     = string
                  se_linux_options = list(object(
                    {
                      level = string
                      role  = string
                      type  = string
                      user  = string
                    }
                  ))
                  supplemental_groups = set(number)
                  sysctl = list(object(
                    {
                      name  = string
                      value = string
                    }
                  ))
                }
              ))
              service_account_name             = string
              share_process_namespace          = bool
              subdomain                        = string
              termination_grace_period_seconds = number
              toleration = list(object(
                {
                  effect             = string
                  key                = string
                  operator           = string
                  toleration_seconds = string
                  value              = string
                }
              ))
              topology_spread_constraint = list(object(
                {
                  label_selector = list(object(
                    {
                      match_expressions = list(object(
                        {
                          key      = string
                          operator = string
                          values   = set(string)
                        }
                      ))
                      match_labels = map(string)
                    }
                  ))
                  max_skew           = number
                  topology_key       = string
                  when_unsatisfiable = string
                }
              ))
              volume = list(object(
                {
                  aws_elastic_block_store = list(object(
                    {
                      fs_type   = string
                      partition = number
                      read_only = bool
                      volume_id = string
                    }
                  ))
                  azure_disk = list(object(
                    {
                      caching_mode  = string
                      data_disk_uri = string
                      disk_name     = string
                      fs_type       = string
                      kind          = string
                      read_only     = bool
                    }
                  ))
                  azure_file = list(object(
                    {
                      read_only   = bool
                      secret_name = string
                      share_name  = string
                    }
                  ))
                  ceph_fs = list(object(
                    {
                      monitors    = set(string)
                      path        = string
                      read_only   = bool
                      secret_file = string
                      secret_ref = list(object(
                        {
                          name      = string
                          namespace = string
                        }
                      ))
                      user = string
                    }
                  ))
                  cinder = list(object(
                    {
                      fs_type   = string
                      read_only = bool
                      volume_id = string
                    }
                  ))
                  config_map = list(object(
                    {
                      default_mode = string
                      items = list(object(
                        {
                          key  = string
                          mode = string
                          path = string
                        }
                      ))
                      name     = string
                      optional = bool
                    }
                  ))
                  csi = list(object(
                    {
                      controller_expand_secret_ref = list(object(
                        {
                          name      = string
                          namespace = string
                        }
                      ))
                      controller_publish_secret_ref = list(object(
                        {
                          name      = string
                          namespace = string
                        }
                      ))
                      driver  = string
                      fs_type = string
                      node_publish_secret_ref = list(object(
                        {
                          name      = string
                          namespace = string
                        }
                      ))
                      node_stage_secret_ref = list(object(
                        {
                          name      = string
                          namespace = string
                        }
                      ))
                      read_only         = bool
                      volume_attributes = map(string)
                      volume_handle     = string
                    }
                  ))
                  downward_api = list(object(
                    {
                      default_mode = string
                      items = list(object(
                        {
                          field_ref = list(object(
                            {
                              api_version = string
                              field_path  = string
                            }
                          ))
                          mode = string
                          path = string
                          resource_field_ref = list(object(
                            {
                              container_name = string
                              divisor        = string
                              resource       = string
                            }
                          ))
                        }
                      ))
                    }
                  ))
                  empty_dir = list(object(
                    {
                      medium     = string
                      size_limit = string
                    }
                  ))
                  fc = list(object(
                    {
                      fs_type      = string
                      lun          = number
                      read_only    = bool
                      target_ww_ns = set(string)
                    }
                  ))
                  flex_volume = list(object(
                    {
                      driver    = string
                      fs_type   = string
                      options   = map(string)
                      read_only = bool
                      secret_ref = list(object(
                        {
                          name      = string
                          namespace = string
                        }
                      ))
                    }
                  ))
                  flocker = list(object(
                    {
                      dataset_name = string
                      dataset_uuid = string
                    }
                  ))
                  gce_persistent_disk = list(object(
                    {
                      fs_type   = string
                      partition = number
                      pd_name   = string
                      read_only = bool
                    }
                  ))
                  git_repo = list(object(
                    {
                      directory  = string
                      repository = string
                      revision   = string
                    }
                  ))
                  glusterfs = list(object(
                    {
                      endpoints_name = string
                      path           = string
                      read_only      = bool
                    }
                  ))
                  host_path = list(object(
                    {
                      path = string
                      type = string
                    }
                  ))
                  iscsi = list(object(
                    {
                      fs_type         = string
                      iqn             = string
                      iscsi_interface = string
                      lun             = number
                      read_only       = bool
                      target_portal   = string
                    }
                  ))
                  local = list(object(
                    {
                      path = string
                    }
                  ))
                  name = string
                  nfs = list(object(
                    {
                      path      = string
                      read_only = bool
                      server    = string
                    }
                  ))
                  persistent_volume_claim = list(object(
                    {
                      claim_name = string
                      read_only  = bool
                    }
                  ))
                  photon_persistent_disk = list(object(
                    {
                      fs_type = string
                      pd_id   = string
                    }
                  ))
                  projected = list(object(
                    {
                      default_mode = string
                      sources = list(object(
                        {
                          config_map = list(object(
                            {
                              items = list(object(
                                {
                                  key  = string
                                  mode = string
                                  path = string
                                }
                              ))
                              name     = string
                              optional = bool
                            }
                          ))
                          downward_api = list(object(
                            {
                              items = list(object(
                                {
                                  field_ref = list(object(
                                    {
                                      api_version = string
                                      field_path  = string
                                    }
                                  ))
                                  mode = string
                                  path = string
                                  resource_field_ref = list(object(
                                    {
                                      container_name = string
                                      divisor        = string
                                      resource       = string
                                    }
                                  ))
                                }
                              ))
                            }
                          ))
                          secret = list(object(
                            {
                              items = list(object(
                                {
                                  key  = string
                                  mode = string
                                  path = string
                                }
                              ))
                              name     = string
                              optional = bool
                            }
                          ))
                          service_account_token = list(object(
                            {
                              audience           = string
                              expiration_seconds = number
                              path               = string
                            }
                          ))
                        }
                      ))
                    }
                  ))
                  quobyte = list(object(
                    {
                      group     = string
                      read_only = bool
                      registry  = string
                      user      = string
                      volume    = string
                    }
                  ))
                  rbd = list(object(
                    {
                      ceph_monitors = set(string)
                      fs_type       = string
                      keyring       = string
                      rados_user    = string
                      rbd_image     = string
                      rbd_pool      = string
                      read_only     = bool
                      secret_ref = list(object(
                        {
                          name      = string
                          namespace = string
                        }
                      ))
                    }
                  ))
                  secret = list(object(
                    {
                      default_mode = string
                      items = list(object(
                        {
                          key  = string
                          mode = string
                          path = string
                        }
                      ))
                      optional    = bool
                      secret_name = string
                    }
                  ))
                  vsphere_volume = list(object(
                    {
                      fs_type     = string
                      volume_path = string
                    }
                  ))
                }
              ))
            }
          ))
        }
      ))
    }
  ))
}

variable "timeouts" {
  description = "nested block: NestingSingle, min items: 0, max items: 0"
  type = set(object(
    {
      create = string
      delete = string
      update = string
    }
  ))
  default = []
}

top

Resource

resource "kubernetes_replication_controller" "this" {

  dynamic "metadata" {
    for_each = var.metadata
    content {
      # annotations - (optional) is a type of map of string
      annotations = metadata.value["annotations"]
      # generate_name - (optional) is a type of string
      generate_name = metadata.value["generate_name"]
      # labels - (optional) is a type of map of string
      labels = metadata.value["labels"]
      # name - (optional) is a type of string
      name = metadata.value["name"]
      # namespace - (optional) is a type of string
      namespace = metadata.value["namespace"]
    }
  }

  dynamic "spec" {
    for_each = var.spec
    content {
      # min_ready_seconds - (optional) is a type of number
      min_ready_seconds = spec.value["min_ready_seconds"]
      # replicas - (optional) is a type of number
      replicas = spec.value["replicas"]
      # selector - (required) is a type of map of string
      selector = spec.value["selector"]

      dynamic "template" {
        for_each = spec.value.template
        content {

          dynamic "metadata" {
            for_each = template.value.metadata
            content {
              # annotations - (optional) is a type of map of string
              annotations = metadata.value["annotations"]
              # generate_name - (optional) is a type of string
              generate_name = metadata.value["generate_name"]
              # labels - (optional) is a type of map of string
              labels = metadata.value["labels"]
              # name - (optional) is a type of string
              name = metadata.value["name"]
              # namespace - (optional) is a type of string
              namespace = metadata.value["namespace"]
            }
          }

          dynamic "spec" {
            for_each = template.value.spec
            content {
              # active_deadline_seconds - (optional) is a type of number
              active_deadline_seconds = spec.value["active_deadline_seconds"]
              # automount_service_account_token - (optional) is a type of bool
              automount_service_account_token = spec.value["automount_service_account_token"]
              # dns_policy - (optional) is a type of string
              dns_policy = spec.value["dns_policy"]
              # enable_service_links - (optional) is a type of bool
              enable_service_links = spec.value["enable_service_links"]
              # host_ipc - (optional) is a type of bool
              host_ipc = spec.value["host_ipc"]
              # host_network - (optional) is a type of bool
              host_network = spec.value["host_network"]
              # host_pid - (optional) is a type of bool
              host_pid = spec.value["host_pid"]
              # hostname - (optional) is a type of string
              hostname = spec.value["hostname"]
              # node_name - (optional) is a type of string
              node_name = spec.value["node_name"]
              # node_selector - (optional) is a type of map of string
              node_selector = spec.value["node_selector"]
              # priority_class_name - (optional) is a type of string
              priority_class_name = spec.value["priority_class_name"]
              # restart_policy - (optional) is a type of string
              restart_policy = spec.value["restart_policy"]
              # service_account_name - (optional) is a type of string
              service_account_name = spec.value["service_account_name"]
              # share_process_namespace - (optional) is a type of bool
              share_process_namespace = spec.value["share_process_namespace"]
              # subdomain - (optional) is a type of string
              subdomain = spec.value["subdomain"]
              # termination_grace_period_seconds - (optional) is a type of number
              termination_grace_period_seconds = spec.value["termination_grace_period_seconds"]

              dynamic "affinity" {
                for_each = spec.value.affinity
                content {

                  dynamic "node_affinity" {
                    for_each = affinity.value.node_affinity
                    content {

                      dynamic "preferred_during_scheduling_ignored_during_execution" {
                        for_each = node_affinity.value.preferred_during_scheduling_ignored_during_execution
                        content {
                          # weight - (required) is a type of number
                          weight = preferred_during_scheduling_ignored_during_execution.value["weight"]

                          dynamic "preference" {
                            for_each = preferred_during_scheduling_ignored_during_execution.value.preference
                            content {

                              dynamic "match_expressions" {
                                for_each = preference.value.match_expressions
                                content {
                                  # key - (optional) is a type of string
                                  key = match_expressions.value["key"]
                                  # operator - (optional) is a type of string
                                  operator = match_expressions.value["operator"]
                                  # values - (optional) is a type of set of string
                                  values = match_expressions.value["values"]
                                }
                              }

                            }
                          }

                        }
                      }

                      dynamic "required_during_scheduling_ignored_during_execution" {
                        for_each = node_affinity.value.required_during_scheduling_ignored_during_execution
                        content {

                          dynamic "node_selector_term" {
                            for_each = required_during_scheduling_ignored_during_execution.value.node_selector_term
                            content {

                              dynamic "match_expressions" {
                                for_each = node_selector_term.value.match_expressions
                                content {
                                  # key - (optional) is a type of string
                                  key = match_expressions.value["key"]
                                  # operator - (optional) is a type of string
                                  operator = match_expressions.value["operator"]
                                  # values - (optional) is a type of set of string
                                  values = match_expressions.value["values"]
                                }
                              }

                            }
                          }

                        }
                      }

                    }
                  }

                  dynamic "pod_affinity" {
                    for_each = affinity.value.pod_affinity
                    content {

                      dynamic "preferred_during_scheduling_ignored_during_execution" {
                        for_each = pod_affinity.value.preferred_during_scheduling_ignored_during_execution
                        content {
                          # weight - (required) is a type of number
                          weight = preferred_during_scheduling_ignored_during_execution.value["weight"]

                          dynamic "pod_affinity_term" {
                            for_each = preferred_during_scheduling_ignored_during_execution.value.pod_affinity_term
                            content {
                              # namespaces - (optional) is a type of set of string
                              namespaces = pod_affinity_term.value["namespaces"]
                              # topology_key - (optional) is a type of string
                              topology_key = pod_affinity_term.value["topology_key"]

                              dynamic "label_selector" {
                                for_each = pod_affinity_term.value.label_selector
                                content {
                                  # match_labels - (optional) is a type of map of string
                                  match_labels = label_selector.value["match_labels"]

                                  dynamic "match_expressions" {
                                    for_each = label_selector.value.match_expressions
                                    content {
                                      # key - (optional) is a type of string
                                      key = match_expressions.value["key"]
                                      # operator - (optional) is a type of string
                                      operator = match_expressions.value["operator"]
                                      # values - (optional) is a type of set of string
                                      values = match_expressions.value["values"]
                                    }
                                  }

                                }
                              }

                            }
                          }

                        }
                      }

                      dynamic "required_during_scheduling_ignored_during_execution" {
                        for_each = pod_affinity.value.required_during_scheduling_ignored_during_execution
                        content {
                          # namespaces - (optional) is a type of set of string
                          namespaces = required_during_scheduling_ignored_during_execution.value["namespaces"]
                          # topology_key - (optional) is a type of string
                          topology_key = required_during_scheduling_ignored_during_execution.value["topology_key"]

                          dynamic "label_selector" {
                            for_each = required_during_scheduling_ignored_during_execution.value.label_selector
                            content {
                              # match_labels - (optional) is a type of map of string
                              match_labels = label_selector.value["match_labels"]

                              dynamic "match_expressions" {
                                for_each = label_selector.value.match_expressions
                                content {
                                  # key - (optional) is a type of string
                                  key = match_expressions.value["key"]
                                  # operator - (optional) is a type of string
                                  operator = match_expressions.value["operator"]
                                  # values - (optional) is a type of set of string
                                  values = match_expressions.value["values"]
                                }
                              }

                            }
                          }

                        }
                      }

                    }
                  }

                  dynamic "pod_anti_affinity" {
                    for_each = affinity.value.pod_anti_affinity
                    content {

                      dynamic "preferred_during_scheduling_ignored_during_execution" {
                        for_each = pod_anti_affinity.value.preferred_during_scheduling_ignored_during_execution
                        content {
                          # weight - (required) is a type of number
                          weight = preferred_during_scheduling_ignored_during_execution.value["weight"]

                          dynamic "pod_affinity_term" {
                            for_each = preferred_during_scheduling_ignored_during_execution.value.pod_affinity_term
                            content {
                              # namespaces - (optional) is a type of set of string
                              namespaces = pod_affinity_term.value["namespaces"]
                              # topology_key - (optional) is a type of string
                              topology_key = pod_affinity_term.value["topology_key"]

                              dynamic "label_selector" {
                                for_each = pod_affinity_term.value.label_selector
                                content {
                                  # match_labels - (optional) is a type of map of string
                                  match_labels = label_selector.value["match_labels"]

                                  dynamic "match_expressions" {
                                    for_each = label_selector.value.match_expressions
                                    content {
                                      # key - (optional) is a type of string
                                      key = match_expressions.value["key"]
                                      # operator - (optional) is a type of string
                                      operator = match_expressions.value["operator"]
                                      # values - (optional) is a type of set of string
                                      values = match_expressions.value["values"]
                                    }
                                  }

                                }
                              }

                            }
                          }

                        }
                      }

                      dynamic "required_during_scheduling_ignored_during_execution" {
                        for_each = pod_anti_affinity.value.required_during_scheduling_ignored_during_execution
                        content {
                          # namespaces - (optional) is a type of set of string
                          namespaces = required_during_scheduling_ignored_during_execution.value["namespaces"]
                          # topology_key - (optional) is a type of string
                          topology_key = required_during_scheduling_ignored_during_execution.value["topology_key"]

                          dynamic "label_selector" {
                            for_each = required_during_scheduling_ignored_during_execution.value.label_selector
                            content {
                              # match_labels - (optional) is a type of map of string
                              match_labels = label_selector.value["match_labels"]

                              dynamic "match_expressions" {
                                for_each = label_selector.value.match_expressions
                                content {
                                  # key - (optional) is a type of string
                                  key = match_expressions.value["key"]
                                  # operator - (optional) is a type of string
                                  operator = match_expressions.value["operator"]
                                  # values - (optional) is a type of set of string
                                  values = match_expressions.value["values"]
                                }
                              }

                            }
                          }

                        }
                      }

                    }
                  }

                }
              }

              dynamic "container" {
                for_each = spec.value.container
                content {
                  # args - (optional) is a type of list of string
                  args = container.value["args"]
                  # command - (optional) is a type of list of string
                  command = container.value["command"]
                  # image - (optional) is a type of string
                  image = container.value["image"]
                  # image_pull_policy - (optional) is a type of string
                  image_pull_policy = container.value["image_pull_policy"]
                  # name - (required) is a type of string
                  name = container.value["name"]
                  # stdin - (optional) is a type of bool
                  stdin = container.value["stdin"]
                  # stdin_once - (optional) is a type of bool
                  stdin_once = container.value["stdin_once"]
                  # termination_message_path - (optional) is a type of string
                  termination_message_path = container.value["termination_message_path"]
                  # termination_message_policy - (optional) is a type of string
                  termination_message_policy = container.value["termination_message_policy"]
                  # tty - (optional) is a type of bool
                  tty = container.value["tty"]
                  # working_dir - (optional) is a type of string
                  working_dir = container.value["working_dir"]

                  dynamic "env" {
                    for_each = container.value.env
                    content {
                      # name - (required) is a type of string
                      name = env.value["name"]
                      # value - (optional) is a type of string
                      value = env.value["value"]

                      dynamic "value_from" {
                        for_each = env.value.value_from
                        content {

                          dynamic "config_map_key_ref" {
                            for_each = value_from.value.config_map_key_ref
                            content {
                              # key - (optional) is a type of string
                              key = config_map_key_ref.value["key"]
                              # name - (optional) is a type of string
                              name = config_map_key_ref.value["name"]
                              # optional - (optional) is a type of bool
                              optional = config_map_key_ref.value["optional"]
                            }
                          }

                          dynamic "field_ref" {
                            for_each = value_from.value.field_ref
                            content {
                              # api_version - (optional) is a type of string
                              api_version = field_ref.value["api_version"]
                              # field_path - (optional) is a type of string
                              field_path = field_ref.value["field_path"]
                            }
                          }

                          dynamic "resource_field_ref" {
                            for_each = value_from.value.resource_field_ref
                            content {
                              # container_name - (optional) is a type of string
                              container_name = resource_field_ref.value["container_name"]
                              # divisor - (optional) is a type of string
                              divisor = resource_field_ref.value["divisor"]
                              # resource - (required) is a type of string
                              resource = resource_field_ref.value["resource"]
                            }
                          }

                          dynamic "secret_key_ref" {
                            for_each = value_from.value.secret_key_ref
                            content {
                              # key - (optional) is a type of string
                              key = secret_key_ref.value["key"]
                              # name - (optional) is a type of string
                              name = secret_key_ref.value["name"]
                              # optional - (optional) is a type of bool
                              optional = secret_key_ref.value["optional"]
                            }
                          }

                        }
                      }

                    }
                  }

                  dynamic "env_from" {
                    for_each = container.value.env_from
                    content {
                      # prefix - (optional) is a type of string
                      prefix = env_from.value["prefix"]

                      dynamic "config_map_ref" {
                        for_each = env_from.value.config_map_ref
                        content {
                          # name - (required) is a type of string
                          name = config_map_ref.value["name"]
                          # optional - (optional) is a type of bool
                          optional = config_map_ref.value["optional"]
                        }
                      }

                      dynamic "secret_ref" {
                        for_each = env_from.value.secret_ref
                        content {
                          # name - (required) is a type of string
                          name = secret_ref.value["name"]
                          # optional - (optional) is a type of bool
                          optional = secret_ref.value["optional"]
                        }
                      }

                    }
                  }

                  dynamic "lifecycle" {
                    for_each = container.value.lifecycle
                    content {

                      dynamic "post_start" {
                        for_each = lifecycle.value.post_start
                        content {

                          dynamic "exec" {
                            for_each = post_start.value.exec
                            content {
                              # command - (optional) is a type of list of string
                              command = exec.value["command"]
                            }
                          }

                          dynamic "http_get" {
                            for_each = post_start.value.http_get
                            content {
                              # host - (optional) is a type of string
                              host = http_get.value["host"]
                              # path - (optional) is a type of string
                              path = http_get.value["path"]
                              # port - (optional) is a type of string
                              port = http_get.value["port"]
                              # scheme - (optional) is a type of string
                              scheme = http_get.value["scheme"]

                              dynamic "http_header" {
                                for_each = http_get.value.http_header
                                content {
                                  # name - (optional) is a type of string
                                  name = http_header.value["name"]
                                  # value - (optional) is a type of string
                                  value = http_header.value["value"]
                                }
                              }

                            }
                          }

                          dynamic "tcp_socket" {
                            for_each = post_start.value.tcp_socket
                            content {
                              # port - (required) is a type of string
                              port = tcp_socket.value["port"]
                            }
                          }

                        }
                      }

                      dynamic "pre_stop" {
                        for_each = lifecycle.value.pre_stop
                        content {

                          dynamic "exec" {
                            for_each = pre_stop.value.exec
                            content {
                              # command - (optional) is a type of list of string
                              command = exec.value["command"]
                            }
                          }

                          dynamic "http_get" {
                            for_each = pre_stop.value.http_get
                            content {
                              # host - (optional) is a type of string
                              host = http_get.value["host"]
                              # path - (optional) is a type of string
                              path = http_get.value["path"]
                              # port - (optional) is a type of string
                              port = http_get.value["port"]
                              # scheme - (optional) is a type of string
                              scheme = http_get.value["scheme"]

                              dynamic "http_header" {
                                for_each = http_get.value.http_header
                                content {
                                  # name - (optional) is a type of string
                                  name = http_header.value["name"]
                                  # value - (optional) is a type of string
                                  value = http_header.value["value"]
                                }
                              }

                            }
                          }

                          dynamic "tcp_socket" {
                            for_each = pre_stop.value.tcp_socket
                            content {
                              # port - (required) is a type of string
                              port = tcp_socket.value["port"]
                            }
                          }

                        }
                      }

                    }
                  }

                  dynamic "liveness_probe" {
                    for_each = container.value.liveness_probe
                    content {
                      # failure_threshold - (optional) is a type of number
                      failure_threshold = liveness_probe.value["failure_threshold"]
                      # initial_delay_seconds - (optional) is a type of number
                      initial_delay_seconds = liveness_probe.value["initial_delay_seconds"]
                      # period_seconds - (optional) is a type of number
                      period_seconds = liveness_probe.value["period_seconds"]
                      # success_threshold - (optional) is a type of number
                      success_threshold = liveness_probe.value["success_threshold"]
                      # timeout_seconds - (optional) is a type of number
                      timeout_seconds = liveness_probe.value["timeout_seconds"]

                      dynamic "exec" {
                        for_each = liveness_probe.value.exec
                        content {
                          # command - (optional) is a type of list of string
                          command = exec.value["command"]
                        }
                      }

                      dynamic "http_get" {
                        for_each = liveness_probe.value.http_get
                        content {
                          # host - (optional) is a type of string
                          host = http_get.value["host"]
                          # path - (optional) is a type of string
                          path = http_get.value["path"]
                          # port - (optional) is a type of string
                          port = http_get.value["port"]
                          # scheme - (optional) is a type of string
                          scheme = http_get.value["scheme"]

                          dynamic "http_header" {
                            for_each = http_get.value.http_header
                            content {
                              # name - (optional) is a type of string
                              name = http_header.value["name"]
                              # value - (optional) is a type of string
                              value = http_header.value["value"]
                            }
                          }

                        }
                      }

                      dynamic "tcp_socket" {
                        for_each = liveness_probe.value.tcp_socket
                        content {
                          # port - (required) is a type of string
                          port = tcp_socket.value["port"]
                        }
                      }

                    }
                  }

                  dynamic "port" {
                    for_each = container.value.port
                    content {
                      # container_port - (required) is a type of number
                      container_port = port.value["container_port"]
                      # host_ip - (optional) is a type of string
                      host_ip = port.value["host_ip"]
                      # host_port - (optional) is a type of number
                      host_port = port.value["host_port"]
                      # name - (optional) is a type of string
                      name = port.value["name"]
                      # protocol - (optional) is a type of string
                      protocol = port.value["protocol"]
                    }
                  }

                  dynamic "readiness_probe" {
                    for_each = container.value.readiness_probe
                    content {
                      # failure_threshold - (optional) is a type of number
                      failure_threshold = readiness_probe.value["failure_threshold"]
                      # initial_delay_seconds - (optional) is a type of number
                      initial_delay_seconds = readiness_probe.value["initial_delay_seconds"]
                      # period_seconds - (optional) is a type of number
                      period_seconds = readiness_probe.value["period_seconds"]
                      # success_threshold - (optional) is a type of number
                      success_threshold = readiness_probe.value["success_threshold"]
                      # timeout_seconds - (optional) is a type of number
                      timeout_seconds = readiness_probe.value["timeout_seconds"]

                      dynamic "exec" {
                        for_each = readiness_probe.value.exec
                        content {
                          # command - (optional) is a type of list of string
                          command = exec.value["command"]
                        }
                      }

                      dynamic "http_get" {
                        for_each = readiness_probe.value.http_get
                        content {
                          # host - (optional) is a type of string
                          host = http_get.value["host"]
                          # path - (optional) is a type of string
                          path = http_get.value["path"]
                          # port - (optional) is a type of string
                          port = http_get.value["port"]
                          # scheme - (optional) is a type of string
                          scheme = http_get.value["scheme"]

                          dynamic "http_header" {
                            for_each = http_get.value.http_header
                            content {
                              # name - (optional) is a type of string
                              name = http_header.value["name"]
                              # value - (optional) is a type of string
                              value = http_header.value["value"]
                            }
                          }

                        }
                      }

                      dynamic "tcp_socket" {
                        for_each = readiness_probe.value.tcp_socket
                        content {
                          # port - (required) is a type of string
                          port = tcp_socket.value["port"]
                        }
                      }

                    }
                  }

                  dynamic "resources" {
                    for_each = container.value.resources
                    content {
                      # limits - (optional) is a type of map of string
                      limits = resources.value["limits"]
                      # requests - (optional) is a type of map of string
                      requests = resources.value["requests"]
                    }
                  }

                  dynamic "security_context" {
                    for_each = container.value.security_context
                    content {
                      # allow_privilege_escalation - (optional) is a type of bool
                      allow_privilege_escalation = security_context.value["allow_privilege_escalation"]
                      # privileged - (optional) is a type of bool
                      privileged = security_context.value["privileged"]
                      # read_only_root_filesystem - (optional) is a type of bool
                      read_only_root_filesystem = security_context.value["read_only_root_filesystem"]
                      # run_as_group - (optional) is a type of string
                      run_as_group = security_context.value["run_as_group"]
                      # run_as_non_root - (optional) is a type of bool
                      run_as_non_root = security_context.value["run_as_non_root"]
                      # run_as_user - (optional) is a type of string
                      run_as_user = security_context.value["run_as_user"]

                      dynamic "capabilities" {
                        for_each = security_context.value.capabilities
                        content {
                          # add - (optional) is a type of list of string
                          add = capabilities.value["add"]
                          # drop - (optional) is a type of list of string
                          drop = capabilities.value["drop"]
                        }
                      }

                      dynamic "se_linux_options" {
                        for_each = security_context.value.se_linux_options
                        content {
                          # level - (optional) is a type of string
                          level = se_linux_options.value["level"]
                          # role - (optional) is a type of string
                          role = se_linux_options.value["role"]
                          # type - (optional) is a type of string
                          type = se_linux_options.value["type"]
                          # user - (optional) is a type of string
                          user = se_linux_options.value["user"]
                        }
                      }

                    }
                  }

                  dynamic "startup_probe" {
                    for_each = container.value.startup_probe
                    content {
                      # failure_threshold - (optional) is a type of number
                      failure_threshold = startup_probe.value["failure_threshold"]
                      # initial_delay_seconds - (optional) is a type of number
                      initial_delay_seconds = startup_probe.value["initial_delay_seconds"]
                      # period_seconds - (optional) is a type of number
                      period_seconds = startup_probe.value["period_seconds"]
                      # success_threshold - (optional) is a type of number
                      success_threshold = startup_probe.value["success_threshold"]
                      # timeout_seconds - (optional) is a type of number
                      timeout_seconds = startup_probe.value["timeout_seconds"]

                      dynamic "exec" {
                        for_each = startup_probe.value.exec
                        content {
                          # command - (optional) is a type of list of string
                          command = exec.value["command"]
                        }
                      }

                      dynamic "http_get" {
                        for_each = startup_probe.value.http_get
                        content {
                          # host - (optional) is a type of string
                          host = http_get.value["host"]
                          # path - (optional) is a type of string
                          path = http_get.value["path"]
                          # port - (optional) is a type of string
                          port = http_get.value["port"]
                          # scheme - (optional) is a type of string
                          scheme = http_get.value["scheme"]

                          dynamic "http_header" {
                            for_each = http_get.value.http_header
                            content {
                              # name - (optional) is a type of string
                              name = http_header.value["name"]
                              # value - (optional) is a type of string
                              value = http_header.value["value"]
                            }
                          }

                        }
                      }

                      dynamic "tcp_socket" {
                        for_each = startup_probe.value.tcp_socket
                        content {
                          # port - (required) is a type of string
                          port = tcp_socket.value["port"]
                        }
                      }

                    }
                  }

                  dynamic "volume_mount" {
                    for_each = container.value.volume_mount
                    content {
                      # mount_path - (required) is a type of string
                      mount_path = volume_mount.value["mount_path"]
                      # mount_propagation - (optional) is a type of string
                      mount_propagation = volume_mount.value["mount_propagation"]
                      # name - (required) is a type of string
                      name = volume_mount.value["name"]
                      # read_only - (optional) is a type of bool
                      read_only = volume_mount.value["read_only"]
                      # sub_path - (optional) is a type of string
                      sub_path = volume_mount.value["sub_path"]
                    }
                  }

                }
              }

              dynamic "dns_config" {
                for_each = spec.value.dns_config
                content {
                  # nameservers - (optional) is a type of list of string
                  nameservers = dns_config.value["nameservers"]
                  # searches - (optional) is a type of list of string
                  searches = dns_config.value["searches"]

                  dynamic "option" {
                    for_each = dns_config.value.option
                    content {
                      # name - (required) is a type of string
                      name = option.value["name"]
                      # value - (optional) is a type of string
                      value = option.value["value"]
                    }
                  }

                }
              }

              dynamic "host_aliases" {
                for_each = spec.value.host_aliases
                content {
                  # hostnames - (required) is a type of list of string
                  hostnames = host_aliases.value["hostnames"]
                  # ip - (required) is a type of string
                  ip = host_aliases.value["ip"]
                }
              }

              dynamic "image_pull_secrets" {
                for_each = spec.value.image_pull_secrets
                content {
                  # name - (required) is a type of string
                  name = image_pull_secrets.value["name"]
                }
              }

              dynamic "init_container" {
                for_each = spec.value.init_container
                content {
                  # args - (optional) is a type of list of string
                  args = init_container.value["args"]
                  # command - (optional) is a type of list of string
                  command = init_container.value["command"]
                  # image - (optional) is a type of string
                  image = init_container.value["image"]
                  # image_pull_policy - (optional) is a type of string
                  image_pull_policy = init_container.value["image_pull_policy"]
                  # name - (required) is a type of string
                  name = init_container.value["name"]
                  # stdin - (optional) is a type of bool
                  stdin = init_container.value["stdin"]
                  # stdin_once - (optional) is a type of bool
                  stdin_once = init_container.value["stdin_once"]
                  # termination_message_path - (optional) is a type of string
                  termination_message_path = init_container.value["termination_message_path"]
                  # termination_message_policy - (optional) is a type of string
                  termination_message_policy = init_container.value["termination_message_policy"]
                  # tty - (optional) is a type of bool
                  tty = init_container.value["tty"]
                  # working_dir - (optional) is a type of string
                  working_dir = init_container.value["working_dir"]

                  dynamic "env" {
                    for_each = init_container.value.env
                    content {
                      # name - (required) is a type of string
                      name = env.value["name"]
                      # value - (optional) is a type of string
                      value = env.value["value"]

                      dynamic "value_from" {
                        for_each = env.value.value_from
                        content {

                          dynamic "config_map_key_ref" {
                            for_each = value_from.value.config_map_key_ref
                            content {
                              # key - (optional) is a type of string
                              key = config_map_key_ref.value["key"]
                              # name - (optional) is a type of string
                              name = config_map_key_ref.value["name"]
                              # optional - (optional) is a type of bool
                              optional = config_map_key_ref.value["optional"]
                            }
                          }

                          dynamic "field_ref" {
                            for_each = value_from.value.field_ref
                            content {
                              # api_version - (optional) is a type of string
                              api_version = field_ref.value["api_version"]
                              # field_path - (optional) is a type of string
                              field_path = field_ref.value["field_path"]
                            }
                          }

                          dynamic "resource_field_ref" {
                            for_each = value_from.value.resource_field_ref
                            content {
                              # container_name - (optional) is a type of string
                              container_name = resource_field_ref.value["container_name"]
                              # divisor - (optional) is a type of string
                              divisor = resource_field_ref.value["divisor"]
                              # resource - (required) is a type of string
                              resource = resource_field_ref.value["resource"]
                            }
                          }

                          dynamic "secret_key_ref" {
                            for_each = value_from.value.secret_key_ref
                            content {
                              # key - (optional) is a type of string
                              key = secret_key_ref.value["key"]
                              # name - (optional) is a type of string
                              name = secret_key_ref.value["name"]
                              # optional - (optional) is a type of bool
                              optional = secret_key_ref.value["optional"]
                            }
                          }

                        }
                      }

                    }
                  }

                  dynamic "env_from" {
                    for_each = init_container.value.env_from
                    content {
                      # prefix - (optional) is a type of string
                      prefix = env_from.value["prefix"]

                      dynamic "config_map_ref" {
                        for_each = env_from.value.config_map_ref
                        content {
                          # name - (required) is a type of string
                          name = config_map_ref.value["name"]
                          # optional - (optional) is a type of bool
                          optional = config_map_ref.value["optional"]
                        }
                      }

                      dynamic "secret_ref" {
                        for_each = env_from.value.secret_ref
                        content {
                          # name - (required) is a type of string
                          name = secret_ref.value["name"]
                          # optional - (optional) is a type of bool
                          optional = secret_ref.value["optional"]
                        }
                      }

                    }
                  }

                  dynamic "lifecycle" {
                    for_each = init_container.value.lifecycle
                    content {

                      dynamic "post_start" {
                        for_each = lifecycle.value.post_start
                        content {

                          dynamic "exec" {
                            for_each = post_start.value.exec
                            content {
                              # command - (optional) is a type of list of string
                              command = exec.value["command"]
                            }
                          }

                          dynamic "http_get" {
                            for_each = post_start.value.http_get
                            content {
                              # host - (optional) is a type of string
                              host = http_get.value["host"]
                              # path - (optional) is a type of string
                              path = http_get.value["path"]
                              # port - (optional) is a type of string
                              port = http_get.value["port"]
                              # scheme - (optional) is a type of string
                              scheme = http_get.value["scheme"]

                              dynamic "http_header" {
                                for_each = http_get.value.http_header
                                content {
                                  # name - (optional) is a type of string
                                  name = http_header.value["name"]
                                  # value - (optional) is a type of string
                                  value = http_header.value["value"]
                                }
                              }

                            }
                          }

                          dynamic "tcp_socket" {
                            for_each = post_start.value.tcp_socket
                            content {
                              # port - (required) is a type of string
                              port = tcp_socket.value["port"]
                            }
                          }

                        }
                      }

                      dynamic "pre_stop" {
                        for_each = lifecycle.value.pre_stop
                        content {

                          dynamic "exec" {
                            for_each = pre_stop.value.exec
                            content {
                              # command - (optional) is a type of list of string
                              command = exec.value["command"]
                            }
                          }

                          dynamic "http_get" {
                            for_each = pre_stop.value.http_get
                            content {
                              # host - (optional) is a type of string
                              host = http_get.value["host"]
                              # path - (optional) is a type of string
                              path = http_get.value["path"]
                              # port - (optional) is a type of string
                              port = http_get.value["port"]
                              # scheme - (optional) is a type of string
                              scheme = http_get.value["scheme"]

                              dynamic "http_header" {
                                for_each = http_get.value.http_header
                                content {
                                  # name - (optional) is a type of string
                                  name = http_header.value["name"]
                                  # value - (optional) is a type of string
                                  value = http_header.value["value"]
                                }
                              }

                            }
                          }

                          dynamic "tcp_socket" {
                            for_each = pre_stop.value.tcp_socket
                            content {
                              # port - (required) is a type of string
                              port = tcp_socket.value["port"]
                            }
                          }

                        }
                      }

                    }
                  }

                  dynamic "liveness_probe" {
                    for_each = init_container.value.liveness_probe
                    content {
                      # failure_threshold - (optional) is a type of number
                      failure_threshold = liveness_probe.value["failure_threshold"]
                      # initial_delay_seconds - (optional) is a type of number
                      initial_delay_seconds = liveness_probe.value["initial_delay_seconds"]
                      # period_seconds - (optional) is a type of number
                      period_seconds = liveness_probe.value["period_seconds"]
                      # success_threshold - (optional) is a type of number
                      success_threshold = liveness_probe.value["success_threshold"]
                      # timeout_seconds - (optional) is a type of number
                      timeout_seconds = liveness_probe.value["timeout_seconds"]

                      dynamic "exec" {
                        for_each = liveness_probe.value.exec
                        content {
                          # command - (optional) is a type of list of string
                          command = exec.value["command"]
                        }
                      }

                      dynamic "http_get" {
                        for_each = liveness_probe.value.http_get
                        content {
                          # host - (optional) is a type of string
                          host = http_get.value["host"]
                          # path - (optional) is a type of string
                          path = http_get.value["path"]
                          # port - (optional) is a type of string
                          port = http_get.value["port"]
                          # scheme - (optional) is a type of string
                          scheme = http_get.value["scheme"]

                          dynamic "http_header" {
                            for_each = http_get.value.http_header
                            content {
                              # name - (optional) is a type of string
                              name = http_header.value["name"]
                              # value - (optional) is a type of string
                              value = http_header.value["value"]
                            }
                          }

                        }
                      }

                      dynamic "tcp_socket" {
                        for_each = liveness_probe.value.tcp_socket
                        content {
                          # port - (required) is a type of string
                          port = tcp_socket.value["port"]
                        }
                      }

                    }
                  }

                  dynamic "port" {
                    for_each = init_container.value.port
                    content {
                      # container_port - (required) is a type of number
                      container_port = port.value["container_port"]
                      # host_ip - (optional) is a type of string
                      host_ip = port.value["host_ip"]
                      # host_port - (optional) is a type of number
                      host_port = port.value["host_port"]
                      # name - (optional) is a type of string
                      name = port.value["name"]
                      # protocol - (optional) is a type of string
                      protocol = port.value["protocol"]
                    }
                  }

                  dynamic "readiness_probe" {
                    for_each = init_container.value.readiness_probe
                    content {
                      # failure_threshold - (optional) is a type of number
                      failure_threshold = readiness_probe.value["failure_threshold"]
                      # initial_delay_seconds - (optional) is a type of number
                      initial_delay_seconds = readiness_probe.value["initial_delay_seconds"]
                      # period_seconds - (optional) is a type of number
                      period_seconds = readiness_probe.value["period_seconds"]
                      # success_threshold - (optional) is a type of number
                      success_threshold = readiness_probe.value["success_threshold"]
                      # timeout_seconds - (optional) is a type of number
                      timeout_seconds = readiness_probe.value["timeout_seconds"]

                      dynamic "exec" {
                        for_each = readiness_probe.value.exec
                        content {
                          # command - (optional) is a type of list of string
                          command = exec.value["command"]
                        }
                      }

                      dynamic "http_get" {
                        for_each = readiness_probe.value.http_get
                        content {
                          # host - (optional) is a type of string
                          host = http_get.value["host"]
                          # path - (optional) is a type of string
                          path = http_get.value["path"]
                          # port - (optional) is a type of string
                          port = http_get.value["port"]
                          # scheme - (optional) is a type of string
                          scheme = http_get.value["scheme"]

                          dynamic "http_header" {
                            for_each = http_get.value.http_header
                            content {
                              # name - (optional) is a type of string
                              name = http_header.value["name"]
                              # value - (optional) is a type of string
                              value = http_header.value["value"]
                            }
                          }

                        }
                      }

                      dynamic "tcp_socket" {
                        for_each = readiness_probe.value.tcp_socket
                        content {
                          # port - (required) is a type of string
                          port = tcp_socket.value["port"]
                        }
                      }

                    }
                  }

                  dynamic "resources" {
                    for_each = init_container.value.resources
                    content {
                      # limits - (optional) is a type of map of string
                      limits = resources.value["limits"]
                      # requests - (optional) is a type of map of string
                      requests = resources.value["requests"]
                    }
                  }

                  dynamic "security_context" {
                    for_each = init_container.value.security_context
                    content {
                      # allow_privilege_escalation - (optional) is a type of bool
                      allow_privilege_escalation = security_context.value["allow_privilege_escalation"]
                      # privileged - (optional) is a type of bool
                      privileged = security_context.value["privileged"]
                      # read_only_root_filesystem - (optional) is a type of bool
                      read_only_root_filesystem = security_context.value["read_only_root_filesystem"]
                      # run_as_group - (optional) is a type of string
                      run_as_group = security_context.value["run_as_group"]
                      # run_as_non_root - (optional) is a type of bool
                      run_as_non_root = security_context.value["run_as_non_root"]
                      # run_as_user - (optional) is a type of string
                      run_as_user = security_context.value["run_as_user"]

                      dynamic "capabilities" {
                        for_each = security_context.value.capabilities
                        content {
                          # add - (optional) is a type of list of string
                          add = capabilities.value["add"]
                          # drop - (optional) is a type of list of string
                          drop = capabilities.value["drop"]
                        }
                      }

                      dynamic "se_linux_options" {
                        for_each = security_context.value.se_linux_options
                        content {
                          # level - (optional) is a type of string
                          level = se_linux_options.value["level"]
                          # role - (optional) is a type of string
                          role = se_linux_options.value["role"]
                          # type - (optional) is a type of string
                          type = se_linux_options.value["type"]
                          # user - (optional) is a type of string
                          user = se_linux_options.value["user"]
                        }
                      }

                    }
                  }

                  dynamic "startup_probe" {
                    for_each = init_container.value.startup_probe
                    content {
                      # failure_threshold - (optional) is a type of number
                      failure_threshold = startup_probe.value["failure_threshold"]
                      # initial_delay_seconds - (optional) is a type of number
                      initial_delay_seconds = startup_probe.value["initial_delay_seconds"]
                      # period_seconds - (optional) is a type of number
                      period_seconds = startup_probe.value["period_seconds"]
                      # success_threshold - (optional) is a type of number
                      success_threshold = startup_probe.value["success_threshold"]
                      # timeout_seconds - (optional) is a type of number
                      timeout_seconds = startup_probe.value["timeout_seconds"]

                      dynamic "exec" {
                        for_each = startup_probe.value.exec
                        content {
                          # command - (optional) is a type of list of string
                          command = exec.value["command"]
                        }
                      }

                      dynamic "http_get" {
                        for_each = startup_probe.value.http_get
                        content {
                          # host - (optional) is a type of string
                          host = http_get.value["host"]
                          # path - (optional) is a type of string
                          path = http_get.value["path"]
                          # port - (optional) is a type of string
                          port = http_get.value["port"]
                          # scheme - (optional) is a type of string
                          scheme = http_get.value["scheme"]

                          dynamic "http_header" {
                            for_each = http_get.value.http_header
                            content {
                              # name - (optional) is a type of string
                              name = http_header.value["name"]
                              # value - (optional) is a type of string
                              value = http_header.value["value"]
                            }
                          }

                        }
                      }

                      dynamic "tcp_socket" {
                        for_each = startup_probe.value.tcp_socket
                        content {
                          # port - (required) is a type of string
                          port = tcp_socket.value["port"]
                        }
                      }

                    }
                  }

                  dynamic "volume_mount" {
                    for_each = init_container.value.volume_mount
                    content {
                      # mount_path - (required) is a type of string
                      mount_path = volume_mount.value["mount_path"]
                      # mount_propagation - (optional) is a type of string
                      mount_propagation = volume_mount.value["mount_propagation"]
                      # name - (required) is a type of string
                      name = volume_mount.value["name"]
                      # read_only - (optional) is a type of bool
                      read_only = volume_mount.value["read_only"]
                      # sub_path - (optional) is a type of string
                      sub_path = volume_mount.value["sub_path"]
                    }
                  }

                }
              }

              dynamic "readiness_gate" {
                for_each = spec.value.readiness_gate
                content {
                  # condition_type - (required) is a type of string
                  condition_type = readiness_gate.value["condition_type"]
                }
              }

              dynamic "security_context" {
                for_each = spec.value.security_context
                content {
                  # fs_group - (optional) is a type of string
                  fs_group = security_context.value["fs_group"]
                  # run_as_group - (optional) is a type of string
                  run_as_group = security_context.value["run_as_group"]
                  # run_as_non_root - (optional) is a type of bool
                  run_as_non_root = security_context.value["run_as_non_root"]
                  # run_as_user - (optional) is a type of string
                  run_as_user = security_context.value["run_as_user"]
                  # supplemental_groups - (optional) is a type of set of number
                  supplemental_groups = security_context.value["supplemental_groups"]

                  dynamic "se_linux_options" {
                    for_each = security_context.value.se_linux_options
                    content {
                      # level - (optional) is a type of string
                      level = se_linux_options.value["level"]
                      # role - (optional) is a type of string
                      role = se_linux_options.value["role"]
                      # type - (optional) is a type of string
                      type = se_linux_options.value["type"]
                      # user - (optional) is a type of string
                      user = se_linux_options.value["user"]
                    }
                  }

                  dynamic "sysctl" {
                    for_each = security_context.value.sysctl
                    content {
                      # name - (required) is a type of string
                      name = sysctl.value["name"]
                      # value - (required) is a type of string
                      value = sysctl.value["value"]
                    }
                  }

                }
              }

              dynamic "toleration" {
                for_each = spec.value.toleration
                content {
                  # effect - (optional) is a type of string
                  effect = toleration.value["effect"]
                  # key - (optional) is a type of string
                  key = toleration.value["key"]
                  # operator - (optional) is a type of string
                  operator = toleration.value["operator"]
                  # toleration_seconds - (optional) is a type of string
                  toleration_seconds = toleration.value["toleration_seconds"]
                  # value - (optional) is a type of string
                  value = toleration.value["value"]
                }
              }

              dynamic "topology_spread_constraint" {
                for_each = spec.value.topology_spread_constraint
                content {
                  # max_skew - (optional) is a type of number
                  max_skew = topology_spread_constraint.value["max_skew"]
                  # topology_key - (optional) is a type of string
                  topology_key = topology_spread_constraint.value["topology_key"]
                  # when_unsatisfiable - (optional) is a type of string
                  when_unsatisfiable = topology_spread_constraint.value["when_unsatisfiable"]

                  dynamic "label_selector" {
                    for_each = topology_spread_constraint.value.label_selector
                    content {
                      # match_labels - (optional) is a type of map of string
                      match_labels = label_selector.value["match_labels"]

                      dynamic "match_expressions" {
                        for_each = label_selector.value.match_expressions
                        content {
                          # key - (optional) is a type of string
                          key = match_expressions.value["key"]
                          # operator - (optional) is a type of string
                          operator = match_expressions.value["operator"]
                          # values - (optional) is a type of set of string
                          values = match_expressions.value["values"]
                        }
                      }

                    }
                  }

                }
              }

              dynamic "volume" {
                for_each = spec.value.volume
                content {
                  # name - (optional) is a type of string
                  name = volume.value["name"]

                  dynamic "aws_elastic_block_store" {
                    for_each = volume.value.aws_elastic_block_store
                    content {
                      # fs_type - (optional) is a type of string
                      fs_type = aws_elastic_block_store.value["fs_type"]
                      # partition - (optional) is a type of number
                      partition = aws_elastic_block_store.value["partition"]
                      # read_only - (optional) is a type of bool
                      read_only = aws_elastic_block_store.value["read_only"]
                      # volume_id - (required) is a type of string
                      volume_id = aws_elastic_block_store.value["volume_id"]
                    }
                  }

                  dynamic "azure_disk" {
                    for_each = volume.value.azure_disk
                    content {
                      # caching_mode - (required) is a type of string
                      caching_mode = azure_disk.value["caching_mode"]
                      # data_disk_uri - (required) is a type of string
                      data_disk_uri = azure_disk.value["data_disk_uri"]
                      # disk_name - (required) is a type of string
                      disk_name = azure_disk.value["disk_name"]
                      # fs_type - (optional) is a type of string
                      fs_type = azure_disk.value["fs_type"]
                      # kind - (optional) is a type of string
                      kind = azure_disk.value["kind"]
                      # read_only - (optional) is a type of bool
                      read_only = azure_disk.value["read_only"]
                    }
                  }

                  dynamic "azure_file" {
                    for_each = volume.value.azure_file
                    content {
                      # read_only - (optional) is a type of bool
                      read_only = azure_file.value["read_only"]
                      # secret_name - (required) is a type of string
                      secret_name = azure_file.value["secret_name"]
                      # share_name - (required) is a type of string
                      share_name = azure_file.value["share_name"]
                    }
                  }

                  dynamic "ceph_fs" {
                    for_each = volume.value.ceph_fs
                    content {
                      # monitors - (required) is a type of set of string
                      monitors = ceph_fs.value["monitors"]
                      # path - (optional) is a type of string
                      path = ceph_fs.value["path"]
                      # read_only - (optional) is a type of bool
                      read_only = ceph_fs.value["read_only"]
                      # secret_file - (optional) is a type of string
                      secret_file = ceph_fs.value["secret_file"]
                      # user - (optional) is a type of string
                      user = ceph_fs.value["user"]

                      dynamic "secret_ref" {
                        for_each = ceph_fs.value.secret_ref
                        content {
                          # name - (optional) is a type of string
                          name = secret_ref.value["name"]
                          # namespace - (optional) is a type of string
                          namespace = secret_ref.value["namespace"]
                        }
                      }

                    }
                  }

                  dynamic "cinder" {
                    for_each = volume.value.cinder
                    content {
                      # fs_type - (optional) is a type of string
                      fs_type = cinder.value["fs_type"]
                      # read_only - (optional) is a type of bool
                      read_only = cinder.value["read_only"]
                      # volume_id - (required) is a type of string
                      volume_id = cinder.value["volume_id"]
                    }
                  }

                  dynamic "config_map" {
                    for_each = volume.value.config_map
                    content {
                      # default_mode - (optional) is a type of string
                      default_mode = config_map.value["default_mode"]
                      # name - (optional) is a type of string
                      name = config_map.value["name"]
                      # optional - (optional) is a type of bool
                      optional = config_map.value["optional"]

                      dynamic "items" {
                        for_each = config_map.value.items
                        content {
                          # key - (optional) is a type of string
                          key = items.value["key"]
                          # mode - (optional) is a type of string
                          mode = items.value["mode"]
                          # path - (optional) is a type of string
                          path = items.value["path"]
                        }
                      }

                    }
                  }

                  dynamic "csi" {
                    for_each = volume.value.csi
                    content {
                      # driver - (required) is a type of string
                      driver = csi.value["driver"]
                      # fs_type - (optional) is a type of string
                      fs_type = csi.value["fs_type"]
                      # read_only - (optional) is a type of bool
                      read_only = csi.value["read_only"]
                      # volume_attributes - (optional) is a type of map of string
                      volume_attributes = csi.value["volume_attributes"]
                      # volume_handle - (required) is a type of string
                      volume_handle = csi.value["volume_handle"]

                      dynamic "controller_expand_secret_ref" {
                        for_each = csi.value.controller_expand_secret_ref
                        content {
                          # name - (optional) is a type of string
                          name = controller_expand_secret_ref.value["name"]
                          # namespace - (optional) is a type of string
                          namespace = controller_expand_secret_ref.value["namespace"]
                        }
                      }

                      dynamic "controller_publish_secret_ref" {
                        for_each = csi.value.controller_publish_secret_ref
                        content {
                          # name - (optional) is a type of string
                          name = controller_publish_secret_ref.value["name"]
                          # namespace - (optional) is a type of string
                          namespace = controller_publish_secret_ref.value["namespace"]
                        }
                      }

                      dynamic "node_publish_secret_ref" {
                        for_each = csi.value.node_publish_secret_ref
                        content {
                          # name - (optional) is a type of string
                          name = node_publish_secret_ref.value["name"]
                          # namespace - (optional) is a type of string
                          namespace = node_publish_secret_ref.value["namespace"]
                        }
                      }

                      dynamic "node_stage_secret_ref" {
                        for_each = csi.value.node_stage_secret_ref
                        content {
                          # name - (optional) is a type of string
                          name = node_stage_secret_ref.value["name"]
                          # namespace - (optional) is a type of string
                          namespace = node_stage_secret_ref.value["namespace"]
                        }
                      }

                    }
                  }

                  dynamic "downward_api" {
                    for_each = volume.value.downward_api
                    content {
                      # default_mode - (optional) is a type of string
                      default_mode = downward_api.value["default_mode"]

                      dynamic "items" {
                        for_each = downward_api.value.items
                        content {
                          # mode - (optional) is a type of string
                          mode = items.value["mode"]
                          # path - (required) is a type of string
                          path = items.value["path"]

                          dynamic "field_ref" {
                            for_each = items.value.field_ref
                            content {
                              # api_version - (optional) is a type of string
                              api_version = field_ref.value["api_version"]
                              # field_path - (optional) is a type of string
                              field_path = field_ref.value["field_path"]
                            }
                          }

                          dynamic "resource_field_ref" {
                            for_each = items.value.resource_field_ref
                            content {
                              # container_name - (required) is a type of string
                              container_name = resource_field_ref.value["container_name"]
                              # divisor - (optional) is a type of string
                              divisor = resource_field_ref.value["divisor"]
                              # resource - (required) is a type of string
                              resource = resource_field_ref.value["resource"]
                            }
                          }

                        }
                      }

                    }
                  }

                  dynamic "empty_dir" {
                    for_each = volume.value.empty_dir
                    content {
                      # medium - (optional) is a type of string
                      medium = empty_dir.value["medium"]
                      # size_limit - (optional) is a type of string
                      size_limit = empty_dir.value["size_limit"]
                    }
                  }

                  dynamic "fc" {
                    for_each = volume.value.fc
                    content {
                      # fs_type - (optional) is a type of string
                      fs_type = fc.value["fs_type"]
                      # lun - (required) is a type of number
                      lun = fc.value["lun"]
                      # read_only - (optional) is a type of bool
                      read_only = fc.value["read_only"]
                      # target_ww_ns - (required) is a type of set of string
                      target_ww_ns = fc.value["target_ww_ns"]
                    }
                  }

                  dynamic "flex_volume" {
                    for_each = volume.value.flex_volume
                    content {
                      # driver - (required) is a type of string
                      driver = flex_volume.value["driver"]
                      # fs_type - (optional) is a type of string
                      fs_type = flex_volume.value["fs_type"]
                      # options - (optional) is a type of map of string
                      options = flex_volume.value["options"]
                      # read_only - (optional) is a type of bool
                      read_only = flex_volume.value["read_only"]

                      dynamic "secret_ref" {
                        for_each = flex_volume.value.secret_ref
                        content {
                          # name - (optional) is a type of string
                          name = secret_ref.value["name"]
                          # namespace - (optional) is a type of string
                          namespace = secret_ref.value["namespace"]
                        }
                      }

                    }
                  }

                  dynamic "flocker" {
                    for_each = volume.value.flocker
                    content {
                      # dataset_name - (optional) is a type of string
                      dataset_name = flocker.value["dataset_name"]
                      # dataset_uuid - (optional) is a type of string
                      dataset_uuid = flocker.value["dataset_uuid"]
                    }
                  }

                  dynamic "gce_persistent_disk" {
                    for_each = volume.value.gce_persistent_disk
                    content {
                      # fs_type - (optional) is a type of string
                      fs_type = gce_persistent_disk.value["fs_type"]
                      # partition - (optional) is a type of number
                      partition = gce_persistent_disk.value["partition"]
                      # pd_name - (required) is a type of string
                      pd_name = gce_persistent_disk.value["pd_name"]
                      # read_only - (optional) is a type of bool
                      read_only = gce_persistent_disk.value["read_only"]
                    }
                  }

                  dynamic "git_repo" {
                    for_each = volume.value.git_repo
                    content {
                      # directory - (optional) is a type of string
                      directory = git_repo.value["directory"]
                      # repository - (optional) is a type of string
                      repository = git_repo.value["repository"]
                      # revision - (optional) is a type of string
                      revision = git_repo.value["revision"]
                    }
                  }

                  dynamic "glusterfs" {
                    for_each = volume.value.glusterfs
                    content {
                      # endpoints_name - (required) is a type of string
                      endpoints_name = glusterfs.value["endpoints_name"]
                      # path - (required) is a type of string
                      path = glusterfs.value["path"]
                      # read_only - (optional) is a type of bool
                      read_only = glusterfs.value["read_only"]
                    }
                  }

                  dynamic "host_path" {
                    for_each = volume.value.host_path
                    content {
                      # path - (optional) is a type of string
                      path = host_path.value["path"]
                      # type - (optional) is a type of string
                      type = host_path.value["type"]
                    }
                  }

                  dynamic "iscsi" {
                    for_each = volume.value.iscsi
                    content {
                      # fs_type - (optional) is a type of string
                      fs_type = iscsi.value["fs_type"]
                      # iqn - (required) is a type of string
                      iqn = iscsi.value["iqn"]
                      # iscsi_interface - (optional) is a type of string
                      iscsi_interface = iscsi.value["iscsi_interface"]
                      # lun - (optional) is a type of number
                      lun = iscsi.value["lun"]
                      # read_only - (optional) is a type of bool
                      read_only = iscsi.value["read_only"]
                      # target_portal - (required) is a type of string
                      target_portal = iscsi.value["target_portal"]
                    }
                  }

                  dynamic "local" {
                    for_each = volume.value.local
                    content {
                      # path - (optional) is a type of string
                      path = local.value["path"]
                    }
                  }

                  dynamic "nfs" {
                    for_each = volume.value.nfs
                    content {
                      # path - (required) is a type of string
                      path = nfs.value["path"]
                      # read_only - (optional) is a type of bool
                      read_only = nfs.value["read_only"]
                      # server - (required) is a type of string
                      server = nfs.value["server"]
                    }
                  }

                  dynamic "persistent_volume_claim" {
                    for_each = volume.value.persistent_volume_claim
                    content {
                      # claim_name - (optional) is a type of string
                      claim_name = persistent_volume_claim.value["claim_name"]
                      # read_only - (optional) is a type of bool
                      read_only = persistent_volume_claim.value["read_only"]
                    }
                  }

                  dynamic "photon_persistent_disk" {
                    for_each = volume.value.photon_persistent_disk
                    content {
                      # fs_type - (optional) is a type of string
                      fs_type = photon_persistent_disk.value["fs_type"]
                      # pd_id - (required) is a type of string
                      pd_id = photon_persistent_disk.value["pd_id"]
                    }
                  }

                  dynamic "projected" {
                    for_each = volume.value.projected
                    content {
                      # default_mode - (optional) is a type of string
                      default_mode = projected.value["default_mode"]

                      dynamic "sources" {
                        for_each = projected.value.sources
                        content {

                          dynamic "config_map" {
                            for_each = sources.value.config_map
                            content {
                              # name - (optional) is a type of string
                              name = config_map.value["name"]
                              # optional - (optional) is a type of bool
                              optional = config_map.value["optional"]

                              dynamic "items" {
                                for_each = config_map.value.items
                                content {
                                  # key - (optional) is a type of string
                                  key = items.value["key"]
                                  # mode - (optional) is a type of string
                                  mode = items.value["mode"]
                                  # path - (optional) is a type of string
                                  path = items.value["path"]
                                }
                              }

                            }
                          }

                          dynamic "downward_api" {
                            for_each = sources.value.downward_api
                            content {

                              dynamic "items" {
                                for_each = downward_api.value.items
                                content {
                                  # mode - (optional) is a type of string
                                  mode = items.value["mode"]
                                  # path - (required) is a type of string
                                  path = items.value["path"]

                                  dynamic "field_ref" {
                                    for_each = items.value.field_ref
                                    content {
                                      # api_version - (optional) is a type of string
                                      api_version = field_ref.value["api_version"]
                                      # field_path - (optional) is a type of string
                                      field_path = field_ref.value["field_path"]
                                    }
                                  }

                                  dynamic "resource_field_ref" {
                                    for_each = items.value.resource_field_ref
                                    content {
                                      # container_name - (required) is a type of string
                                      container_name = resource_field_ref.value["container_name"]
                                      # divisor - (optional) is a type of string
                                      divisor = resource_field_ref.value["divisor"]
                                      # resource - (required) is a type of string
                                      resource = resource_field_ref.value["resource"]
                                    }
                                  }

                                }
                              }

                            }
                          }

                          dynamic "secret" {
                            for_each = sources.value.secret
                            content {
                              # name - (optional) is a type of string
                              name = secret.value["name"]
                              # optional - (optional) is a type of bool
                              optional = secret.value["optional"]

                              dynamic "items" {
                                for_each = secret.value.items
                                content {
                                  # key - (optional) is a type of string
                                  key = items.value["key"]
                                  # mode - (optional) is a type of string
                                  mode = items.value["mode"]
                                  # path - (optional) is a type of string
                                  path = items.value["path"]
                                }
                              }

                            }
                          }

                          dynamic "service_account_token" {
                            for_each = sources.value.service_account_token
                            content {
                              # audience - (optional) is a type of string
                              audience = service_account_token.value["audience"]
                              # expiration_seconds - (optional) is a type of number
                              expiration_seconds = service_account_token.value["expiration_seconds"]
                              # path - (required) is a type of string
                              path = service_account_token.value["path"]
                            }
                          }

                        }
                      }

                    }
                  }

                  dynamic "quobyte" {
                    for_each = volume.value.quobyte
                    content {
                      # group - (optional) is a type of string
                      group = quobyte.value["group"]
                      # read_only - (optional) is a type of bool
                      read_only = quobyte.value["read_only"]
                      # registry - (required) is a type of string
                      registry = quobyte.value["registry"]
                      # user - (optional) is a type of string
                      user = quobyte.value["user"]
                      # volume - (required) is a type of string
                      volume = quobyte.value["volume"]
                    }
                  }

                  dynamic "rbd" {
                    for_each = volume.value.rbd
                    content {
                      # ceph_monitors - (required) is a type of set of string
                      ceph_monitors = rbd.value["ceph_monitors"]
                      # fs_type - (optional) is a type of string
                      fs_type = rbd.value["fs_type"]
                      # keyring - (optional) is a type of string
                      keyring = rbd.value["keyring"]
                      # rados_user - (optional) is a type of string
                      rados_user = rbd.value["rados_user"]
                      # rbd_image - (required) is a type of string
                      rbd_image = rbd.value["rbd_image"]
                      # rbd_pool - (optional) is a type of string
                      rbd_pool = rbd.value["rbd_pool"]
                      # read_only - (optional) is a type of bool
                      read_only = rbd.value["read_only"]

                      dynamic "secret_ref" {
                        for_each = rbd.value.secret_ref
                        content {
                          # name - (optional) is a type of string
                          name = secret_ref.value["name"]
                          # namespace - (optional) is a type of string
                          namespace = secret_ref.value["namespace"]
                        }
                      }

                    }
                  }

                  dynamic "secret" {
                    for_each = volume.value.secret
                    content {
                      # default_mode - (optional) is a type of string
                      default_mode = secret.value["default_mode"]
                      # optional - (optional) is a type of bool
                      optional = secret.value["optional"]
                      # secret_name - (optional) is a type of string
                      secret_name = secret.value["secret_name"]

                      dynamic "items" {
                        for_each = secret.value.items
                        content {
                          # key - (optional) is a type of string
                          key = items.value["key"]
                          # mode - (optional) is a type of string
                          mode = items.value["mode"]
                          # path - (optional) is a type of string
                          path = items.value["path"]
                        }
                      }

                    }
                  }

                  dynamic "vsphere_volume" {
                    for_each = volume.value.vsphere_volume
                    content {
                      # fs_type - (optional) is a type of string
                      fs_type = vsphere_volume.value["fs_type"]
                      # volume_path - (required) is a type of string
                      volume_path = vsphere_volume.value["volume_path"]
                    }
                  }

                }
              }

            }
          }

        }
      }

    }
  }

  dynamic "timeouts" {
    for_each = var.timeouts
    content {
      # create - (optional) is a type of string
      create = timeouts.value["create"]
      # delete - (optional) is a type of string
      delete = timeouts.value["delete"]
      # update - (optional) is a type of string
      update = timeouts.value["update"]
    }
  }

}

top

Outputs

output "id" {
  description = "returns a string"
  value       = kubernetes_replication_controller.this.id
}

output "this" {
  value = kubernetes_replication_controller.this
}

top