github.com/replicatedhq/ship@v0.55.0/pkg/lifecycle/render/googlegke/render_templates.go (about) 1 package googlegke 2 3 const providerTempl = ` 4 provider "google" { 5 {{if .Credentials -}} 6 credentials = <<EOF 7 {{.Credentials | b64dec}} 8 EOF 9 {{end -}} 10 project = "{{.Project}}" 11 region = "{{.Region}}" 12 } 13 ` 14 15 const clusterTempl = ` 16 variable "cluster_name" { 17 default = "{{.ClusterName}}" 18 } 19 20 variable "zone" { 21 default = "{{.Zone}}" 22 } 23 24 variable "initial_node_count" { 25 default = "{{if .InitialNodeCount -}} 26 {{.InitialNodeCount}} 27 {{- else -}} 28 3 29 {{- end}}" 30 } 31 32 variable "machine_type" { 33 default = "{{if .MachineType -}} 34 {{.MachineType}} 35 {{- else -}} 36 n1-standard-1 37 {{- end}}" 38 } 39 40 variable "additional_zones" { 41 type = "list" 42 default = [{{if .AdditionalZones}}{{range (split "," .AdditionalZones)}} 43 "{{.}}",{{end}} 44 {{end}}] 45 } 46 47 locals { 48 min_master_version = "{{.MinMasterVersion}}" 49 } 50 51 resource "google_container_cluster" "{{.ClusterName}}" { 52 name = "${var.cluster_name}" 53 zone = "${var.zone}" 54 initial_node_count = "${var.initial_node_count}" 55 56 additional_zones = "${var.additional_zones}" 57 58 min_master_version = "${local.min_master_version}" 59 60 node_config { 61 machine_type = "${var.machine_type}" 62 } 63 64 enable_legacy_abac = "true" 65 } 66 67 data "template_file" "kubeconfig_{{.ClusterName}}" { 68 template = <<EOF 69 {{.KubeConfigTmpl}} 70 EOF 71 72 vars { 73 endpoint = "https://${google_container_cluster.{{.ClusterName}}.endpoint}" 74 cluster_auth = "${google_container_cluster.{{.ClusterName}}.master_auth.0.cluster_ca_certificate}" 75 kubeconfig_name = "{{.ClusterName}}" 76 client_cert = "${google_container_cluster.{{.ClusterName}}.master_auth.0.client_certificate}" 77 client_key = "${google_container_cluster.{{.ClusterName}}.master_auth.0.client_key}" 78 } 79 } 80 81 resource "local_file" "kubeconfig_{{.ClusterName}}" { 82 content = "${data.template_file.kubeconfig_{{.ClusterName}}.rendered}" 83 filename = "kubeconfig_{{.ClusterName}}" 84 } 85 ` 86 87 const kubeConfigTmpl = ` 88 apiVersion: v1 89 preferences: {} 90 kind: Config 91 92 clusters: 93 - cluster: 94 server: $${endpoint} 95 certificate-authority-data: $${cluster_auth} 96 name: $${kubeconfig_name} 97 98 contexts: 99 - context: 100 cluster: $${kubeconfig_name} 101 user: $${kubeconfig_name} 102 name: $${kubeconfig_name} 103 104 current-context: $${kubeconfig_name} 105 106 users: 107 - name: $${kubeconfig_name} 108 user: 109 client-certificate-data: $${client_cert} 110 client-key-data: $${client_key} 111 `