Skip to content

Commit 242f7b1

Browse files
committed
wip
1 parent 946519f commit 242f7b1

File tree

8 files changed

+28
-85
lines changed

8 files changed

+28
-85
lines changed

_examples/aks/aks-cluster/output.tf

Lines changed: 0 additions & 19 deletions
This file was deleted.

_examples/aks/main.tf

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,21 @@ terraform {
22
required_providers {
33
kubernetes = {
44
source = "hashicorp/kubernetes"
5-
version = ">= 2.0.1"
5+
version = ">= 2.0.2"
66
}
77
azurerm = {
88
source = "hashicorp/azurerm"
99
version = "2.42"
1010
}
1111
helm = {
1212
source = "hashicorp/helm"
13-
version = ">= 2.0.1"
13+
version = ">= 2.0.2"
1414
}
1515
}
1616
}
1717

1818
data "azurerm_kubernetes_cluster" "default" {
19-
depends_on = [module.aks-cluster.cluster_id] # refresh cluster state before reading
19+
depends_on = [module.aks-cluster] # refresh cluster state before reading
2020
name = local.cluster_name
2121
resource_group_name = local.cluster_name
2222
}
@@ -42,14 +42,12 @@ provider "azurerm" {
4242
}
4343

4444
module "aks-cluster" {
45-
providers = { azurerm = azurerm }
4645
source = "./aks-cluster"
4746
cluster_name = local.cluster_name
4847
location = var.location
4948
}
5049

5150
module "kubernetes-config" {
52-
providers = { kubernetes = kubernetes, helm = helm }
5351
depends_on = [module.aks-cluster]
5452
source = "./kubernetes-config"
5553
cluster_name = local.cluster_name

_examples/gke/gke-cluster/main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ data "google_container_engine_versions" "supported" {
88
version_prefix = var.kubernetes_version
99
}
1010

11-
resource "google_container_cluster" "primary" {
11+
resource "google_container_cluster" "default" {
1212
name = var.cluster_name
1313
location = local.google_zone
1414
initial_node_count = var.workers_count

_examples/gke/gke-cluster/output.tf

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,5 @@
11
output "node_version" {
2-
value = google_container_cluster.primary.node_version
3-
}
4-
5-
output "cluster_id" {
6-
value = google_container_cluster.primary.id
7-
}
8-
9-
output "cluster_endpoint" {
10-
value = google_container_cluster.primary.endpoint
11-
}
12-
13-
output "cluster_ca_cert" {
14-
value = google_container_cluster.primary.master_auth[0].cluster_ca_certificate
15-
}
16-
17-
output "cluster_name" {
18-
value = google_container_cluster.primary.name
2+
value = google_container_cluster.default.node_version
193
}
204

215
output "google_zone" {

_examples/gke/kubernetes-config/kubeconfig-template.yaml renamed to _examples/gke/kubeconfig-template.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: v1
22
clusters:
33
- cluster:
44
certificate-authority-data: ${cluster_ca}
5-
server: https://${endpoint}
5+
server: ${endpoint}
66
name: ${cluster_name}
77
contexts:
88
- context:

_examples/gke/kubernetes-config/main.tf

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -54,20 +54,3 @@ resource helm_release nginx_ingress {
5454
value = "ClusterIP"
5555
}
5656
}
57-
58-
data "template_file" "kubeconfig" {
59-
template = file("${path.module}/kubeconfig-template.yaml")
60-
61-
vars = {
62-
cluster_name = var.cluster_name
63-
endpoint = var.cluster_endpoint
64-
cluster_ca = var.cluster_ca_cert
65-
cluster_token = var.cluster_token
66-
}
67-
}
68-
69-
resource "local_file" "kubeconfig" {
70-
content = data.template_file.kubeconfig.rendered
71-
filename = "${path.root}/kubeconfig"
72-
}
73-
Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,3 @@
11
variable "cluster_name" {
22
type = string
33
}
4-
5-
variable "cluster_id" {
6-
type = string
7-
}
8-
9-
variable "cluster_endpoint" {
10-
type = string
11-
}
12-
13-
variable "cluster_ca_cert" {
14-
type = string
15-
}
16-
17-
variable "cluster_token" {
18-
type = string
19-
}

_examples/gke/main.tf

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ terraform {
22
required_providers {
33
kubernetes = {
44
source = "hashicorp/kubernetes"
5-
version = ">= 2.0.1"
5+
version = ">= 9.9.9"
66
}
77
google = {
88
source = "hashicorp/google"
@@ -24,12 +24,13 @@ provider "google" {}
2424
# https://registry.terraform.io/providers/hashicorp/google/latest/docs/data-sources/client_config
2525
# This fetches a new token, which will expire in 1 hour.
2626
data "google_client_config" "default" {
27-
depends_on = [module.gke-cluster.cluster_id]
27+
depends_on = [module.gke-cluster]
2828
}
2929

30+
# Defer reading the cluster data until the latest ca_cert data exists.
3031
data "google_container_cluster" "default" {
3132
name = local.cluster_name
32-
depends_on = [module.gke-cluster.cluster_id]
33+
depends_on = [module.gke-cluster]
3334
}
3435

3536
provider "kubernetes" {
@@ -51,19 +52,31 @@ provider "helm" {
5152
}
5253

5354
module "gke-cluster" {
54-
providers = { google = google }
5555
source = "./gke-cluster"
5656
cluster_name = local.cluster_name
5757
}
5858

5959
module "kubernetes-config" {
6060
depends_on = [module.gke-cluster]
61-
providers = { kubernetes = kubernetes, helm = helm }
6261
source = "./kubernetes-config"
6362
cluster_name = local.cluster_name
64-
cluster_token = data.google_client_config.default.access_token
65-
cluster_id = module.gke-cluster.cluster_id # creates dependency on cluster creation
66-
cluster_endpoint = module.gke-cluster.cluster_endpoint
67-
cluster_ca_cert = module.gke-cluster.cluster_ca_cert
63+
}
64+
65+
# optional: used for manual CLI access to the cluster when gcloud tool is unavailable.
66+
# The gcloud tool can make a longer-lived kubeconfig. This one expires in one hour and can be updated using `terraform apply`.
67+
data "template_file" "kubeconfig" {
68+
template = file("kubeconfig-template.yaml")
69+
70+
vars = {
71+
cluster_name = local.cluster_name
72+
endpoint = "https://${data.google_container_cluster.default.endpoint}"
73+
cluster_ca = data.google_container_cluster.default.master_auth[0].cluster_ca_certificate
74+
cluster_token = data.google_client_config.default.access_token
75+
}
76+
}
77+
78+
resource "local_file" "kubeconfig" {
79+
content = data.template_file.kubeconfig.rendered
80+
filename = "${path.root}/kubeconfig"
6881
}
6982

0 commit comments

Comments
 (0)