👉minikube start
terraform {
required_providers {
helm = {
source = "hashicorp/helm"
version = "2.12.1"
}
kubernetes = {
source = "hashicorp/kubernetes"
version = "2.29.0"
}
}
}
provider "kubernetes" {
config_path = "~/.kube/config"
config_context = "minikube"
}
provider "helm" {
kubernetes {
config_path = "~/.kube/config"
config_context = "minikube"
}
}
resource "helm_release" "nginx_demo" {
name = "nginx-demo"
namespace = "default"
# 推薦:先用本機 chart 避開 provider 解析 bug
chart = "./charts/nginx"
wait = false
atomic = false
set {
name = "service.type"
value = "ClusterIP"
}
set {
name = "resources.requests.cpu"
value = "50m"
}
set {
name = "resources.requests.memory"
value = "64Mi"
}
}
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
mkdir -p charts
helm pull bitnami/nginx --untar --untardir ./charts
👉terraform init
👉terraform plan
👉terraform apply
🥏執行 terraform apply 後,Terraform 不只會管 infra,也能把 Helm 的應用部署進 Kubernetes。
terraform state list
terraform show -no-color | sed -n '1,120p'
helm list -n default
helm status nginx-demo -n default