terraform { backend "gcs" { bucket = "global-sre-dev-terraform" prefix = "helm/state" }}backend.tf

文章插图

文章插图
terraform { required_version = ">= 1.2.9" required_providers { helm = { source = "hashicorp/helm" version = "2.7.0" } }}data "google_project" "this" { project_id = "global-sre-dev"}data "google_client_config" "this" {}data "google_container_cluster" "this" { name = "sre-mgmt" location = "us-west1" project = data.google_project.this.project_id}provider "helm" { kubernetes { host = "https://${data.google_container_cluster.this.private_cluster_config[0].public_endpoint}" token = data.google_client_config.this.access_token cluster_ca_certificate = base64decode(data.google_container_cluster.this.master_auth[0].cluster_ca_certificate) } experiments { manifest = true }}provider.tf

文章插图

文章插图
resource "helm_release" "my-nginx" { name = "my-nginx-release" repository = "https://charts.bitnami.com/bitnami" chart = "nginx" set { name = "service.type" value = "ClusterIP" } set { name = "replicaCount" value = "2" }}nginx.tf
然后执行terraform 命令安装Nginx helm chart
【云原生之旅 - 5)Kubernetes时代的包管理工具 Helm】terraform initterraform planterraform applyReference: Terraform Helm Provider
自己制作 Helm Charthelm create mychartlist 能看到目录结构如下
- Chart.yaml
- values.yaml
- templates
- charts
现在,做一个最简单的Helm Charts 创建 namespace
templates 目录下仅需一个文件 namespace.yaml
---{{ range $i, $ns := .Values.namespaces -}}apiVersion: v1kind: Namespacemetadata: name: {{ $ns.name }} annotations: helm.sh/resource-policy: keep {{- if hasKey $ns "extraAnnotations" }} {{- toYaml $ns.extraAnnotations | nindent 4 }} {{- end }}---{{- end }}
经验总结扩展阅读
- mqtt_simple例程 nrf9160做主控连接阿里云——
- 云南少数民族有哪些
- 云顶之弈S7.5怒玉豹女阵容怎么玩
- 云原生之旅 - 4)基础设施即代码 使用 Terraform 创建 Kubernetes
- Git 02: git管理码云代码仓库 + IDEA集成使用git
- 云顶之弈龙境探秘活动玩法是什么
- 电视剧包青天再起风云最后一集什么意思?
- 普洱茶是什么茶
- 青云志萧逸才是第几集被揭穿的?
- 云顶之弈玉龙猴王阵容怎么玩