Difference between revisions of "Terraform provider: Kubernetes"

From wikieduonline
Jump to navigation Jump to search
Tags: Mobile web edit, Mobile edit
 
(19 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
* https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs
 
* https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs
  
 +
== Resources ==
 +
{{k8s tf resources}}
  
* <code>[[kubernetes_service_account]]</code>
+
== K8s [[Provider]] configuration ==
* <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>
 
  
== Configuration ==
+
  [[provider]] "kubernetes" {
 
+
   [[config_path]]   = "[[~/.kube/config]]"
  provider "kubernetes" {
+
   [[config_context]] = "my-context-cluster"
   config_path    = "[[~/.kube/config]]"
 
   config_context = "my-context"
 
 
  }
 
  }
 
   
 
   
Line 25: Line 16:
 
   }
 
   }
 
  }
 
  }
 
  
 
== [[Terraform EKS]] examples ==
 
== [[Terraform EKS]] examples ==
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)
+
== Errors ==
  [[exec]] {
+
* <code>[[Error: Provider configuration: cannot load Kubernetes client config]]</code>
    api_version = "client.authentication.k8s.io/v1alpha1"
+
* <code>[[Error: Unauthorized]]</code>
    args        = ["eks", "[[get-token]]", "--cluster-name", var.cluster_name]
 
    command    = "aws"
 
  }
 
}
 
  
 
== Related ==
 
== Related ==
Line 54: Line 40:
 
* [[Deploy GKE cluster using Terraform]]
 
* [[Deploy GKE cluster using Terraform]]
 
* [[Deploy EKS cluster using Terraform]]
 
* [[Deploy EKS cluster using Terraform]]
 +
* [[Terraform EKS module]]
 +
* <code>[[client.authentication.k8s.io/v1beta1]]</code>
  
 
== See also ==
 
== See also ==
 
* {{Tf K8s}}
 
* {{Tf K8s}}
* {{Terraform providers}}
 
  
 
[[Category:Terraform]]
 
[[Category:Terraform]]
 
[[Category:K8s]]
 
[[Category:K8s]]

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: