Difference between revisions of "Terraform provider: Kubernetes"

From wikieduonline
Jump to navigation Jump to search
 
(39 intermediate revisions by 6 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>
 
  
 
+
  [[provider]] "kubernetes" {
  provider "kubernetes" {
+
   [[config_path]]   = "[[~/.kube/config]]"
   config_path    = "[[~/.kube/config]]"
+
   [[config_context]] = "my-context-cluster"
   config_context = "my-context"
 
 
  }
 
  }
 
   
 
   
Line 20: Line 17:
 
  }
 
  }
  
 
+
== [[Terraform EKS]] examples ==
[[Terraform EKS]] examples:
 
 
  provider "kubernetes" {
 
  provider "kubernetes" {
  host                  = data.[[aws_eks_cluster]].cluster.endpoint
+
    load_config_file = false
  [[token]]                  = data.[[aws_eks_cluster_auth]].cluster.token
+
   cluster_ca_certificate = [[base64decode]](data.aws_eks_cluster.cluster.certificate_authority.0.data)
+
    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
 
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 ==
 +
* <code>[[Error: Provider configuration: cannot load Kubernetes client config]]</code>
 +
* <code>[[Error: Unauthorized]]</code>
  
 
== Related ==
 
== Related ==
 
* [[Terraform: Helm provider]]
 
* [[Terraform: Helm provider]]
 +
* <code>[[token]]</code>
 +
* [[Terraform provider: kubectl]]
 +
* <code>[[hashicorp/kubernetes]]</code>
 +
* [[Deploy GKE cluster using Terraform]]
 +
* [[Deploy EKS cluster using Terraform]]
 +
* [[Terraform EKS module]]
 +
* <code>[[client.authentication.k8s.io/v1beta1]]</code>
  
 
== See also ==
 
== See also ==
* {{Terraform providers}}
+
* {{Tf K8s}}
* {{Terraform}}
 
  
 
[[Category:Terraform]]
 
[[Category:Terraform]]
 +
[[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: