Difference between revisions of "Terraform provider: Kubernetes"

From wikieduonline
Jump to navigation Jump to search
Tags: Mobile web edit, Mobile edit
 
(11 intermediate revisions by 3 users not shown)
Line 2: Line 2:
  
 
== Resources ==
 
== Resources ==
* <code>[[Terraform resource: kubernetes_service_account]]</code>
+
{{k8s tf resources}}
* <code>[[kubernetes_namespace]]</code>
 
* <code>[[kubernetes_cluster_role]]</code>
 
* <code>[[kubernetes_cluster_role_binding]]</code>
 
* <code>[[kubernetes_config_map]]</code>
 
* <code>[[kubernetes_storage_class_v1]]</code>
 
* <code>[[Terraform K8s resources: kubernetes_manifest|kubernetes_manifest]]</code>
 
* <code>[[Terraform K8s resources: kubernetes_labels|kubernetes_labels]]</code>
 
* <code>[[Terraform K8s resources: kubernetes_annotations|kubernetes_annotations]]</code>
 
* <code>[[kubernetes_persistent_volume]]</code>
 
* <code>[[kubectl_manifest]]</code>
 
  
== Configuration ==
+
== K8s [[Provider]] configuration ==
  
  provider "kubernetes" {
+
  [[provider]] "kubernetes" {
   config_path    = "[[~/.kube/config]]"
+
   [[config_path]]   = "[[~/.kube/config]]"
   [[config_context]] = "my-context"
+
   [[config_context]] = "my-context-cluster"
 
  }
 
  }
 
   
 
   
Line 33: Line 23:
 
     host                  = [[data.]][[aws_eks_cluster]].cluster.endpoint
 
     host                  = [[data.]][[aws_eks_cluster]].cluster.endpoint
 
     [[token]]                  = data.[[aws_eks_cluster_auth]].cluster.token
 
     [[token]]                  = data.[[aws_eks_cluster_auth]].cluster.token
   cluster_ca_certificate = [[base64decode]](data.aws_eks_cluster.cluster.certificate_authority.0.data)
+
   [[cluster_ca_certificate]] = [[base64decode]](data.aws_eks_cluster.cluster.certificate_authority.0.data)
 
  }
 
  }
  
 
https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs#exec-plugins
 
https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs#exec-plugins
  provider "kubernetes" {
+
  {{provider kubernetes eks}}
  host                  = var.cluster_endpoint
 
  cluster_ca_certificate = base64decode(var.cluster_ca_cert)
 
  [[exec]] {
 
    api_version = "client.authentication.k8s.io/v1alpha1"
 
    args        = ["eks", "[[get-token]]", "--cluster-name", var.cluster_name]
 
    command    = "aws"
 
  }
 
}
 
  
 
== Errors ==
 
== Errors ==
 
* <code>[[Error: Provider configuration: cannot load Kubernetes client config]]</code>
 
* <code>[[Error: Provider configuration: cannot load Kubernetes client config]]</code>
 +
* <code>[[Error: Unauthorized]]</code>
  
 
== Related ==
 
== Related ==
Line 58: Line 41:
 
* [[Deploy EKS cluster using Terraform]]
 
* [[Deploy EKS cluster using Terraform]]
 
* [[Terraform EKS module]]
 
* [[Terraform EKS module]]
 +
* <code>[[client.authentication.k8s.io/v1beta1]]</code>
  
 
== See also ==
 
== See also ==

Latest revision as of 13:32, 12 February 2024

Resources[edit]

K8s Provider configuration[edit]

provider "kubernetes" {
  config_path    = "~/.kube/config"
  config_context = "my-context-cluster"
}

resource "kubernetes_namespace" "example" {
  metadata {
    name = "my-first-namespace"
  }
}

Terraform EKS examples[edit]

provider "kubernetes" {
   load_config_file = false

   host                   = data.aws_eks_cluster.cluster.endpoint
   token                  = data.aws_eks_cluster_auth.cluster.token
  cluster_ca_certificate = base64decode(data.aws_eks_cluster.cluster.certificate_authority.0.data)
}

https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs#exec-plugins

 provider "kubernetes" {
  host                   = var.cluster_endpoint
  cluster_ca_certificate = base64decode(var.cluster_ca_cert)
  exec {
    api_version = "client.authentication.k8s.io/v1alpha1"
    args        = ["eks", "get-token", "--cluster-name", var.cluster_name]
    command     = "aws"
  }
}

Errors[edit]

Related[edit]

See also[edit]

Advertising: