Kubectl missing form Terraform Cloud

10/4/2019

I am using terraform cloud to provision some k8s infrastructure .

The issue i am facing is as terraform provider for kubernetes doesn't have the flexibility of yaml file . i need to run some yaml files using kubectl apply This was okay when we run from local machine but when its from Terraform cloud it errors that

kubectl is not installed 

Is there a way to solve this ?

possible install kubectl on terraform cloud

Thanks in advance

-- Lib
kubectl
kubernetes
terraform
terraform-provider-azure

1 Answer

10/4/2019

You can download the kubectl binary using a null_resource with the local_exec provisioner:

resource "null_resource" "custom" {
  # change trigger to run every time
  triggers = {
    build_number = "${timestamp()}"
  }

  # download kubectl
  provisioner "local-exec" {
    command = "curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x kubectl"
  }

  # run kubectl
  provisioner "local-exec" {
    command = "./kubectl apply -f deployment.yaml"
  }
}

Of course you also have to provide the target settings/credentials for kubectl, but that depends on your cluster provider, for example on AKS you would run az aks get-credentials before using kubectl.

-- Markus Dresch
Source: StackOverflow