Skip to content

Commit daf8be4

Browse files
committed
validation passes
1 parent faeed85 commit daf8be4

File tree

6 files changed

+65
-72
lines changed

6 files changed

+65
-72
lines changed

_examples/aks/aks-cluster/main.tf

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ provider "azurerm" {
33
}
44

55
resource "azurerm_resource_group" "test" {
6-
name = local.cluster_name
6+
name = var.cluster_name
77
location = var.location
88
}
99

1010
resource "azurerm_kubernetes_cluster" "test" {
11-
name = local.cluster_name
11+
name = var.cluster_name
1212
location = azurerm_resource_group.test.location
1313
resource_group_name = azurerm_resource_group.test.name
14-
dns_prefix = local.cluster_name
14+
dns_prefix = var.cluster_name
1515

1616
default_node_pool {
1717
name = "default"
@@ -22,28 +22,6 @@ resource "azurerm_kubernetes_cluster" "test" {
2222
identity {
2323
type = "SystemAssigned"
2424
}
25-
26-
addon_profile {
27-
aci_connector_linux {
28-
enabled = false
29-
}
30-
31-
azure_policy {
32-
enabled = false
33-
}
34-
35-
http_application_routing {
36-
enabled = false
37-
}
38-
39-
kube_dashboard {
40-
enabled = true
41-
}
42-
43-
oms_agent {
44-
enabled = false
45-
}
46-
}
4725
}
4826

4927
resource "local_file" "kubeconfig" {
Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
output "cluster_ca_cert" {
2-
value = azurerm_kubernetes_cluster.example.kube_config.0.client_certificate
2+
value = azurerm_kubernetes_cluster.test.kube_config.0.client_certificate
33
}
44

55
output "cluster_endpoint" {
6-
value = azurerm_kubernetes_cluster.example.kube_config.0.endpoint
6+
value = azurerm_kubernetes_cluster.test.kube_config.0.host
7+
}
8+
9+
output "cluster_name" {
10+
value = azurerm_kubernetes_cluster.test.id
711
}
812

913
output "data_disk_uri" {
1014
value = azurerm_managed_disk.test.id
1115
}
16+

_examples/aks/aks-cluster/variables.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,7 @@ variable "workers_count" {
99
variable "cluster_name" {
1010
type = string
1111
}
12+
13+
variable "location" {
14+
type = string
15+
}

_examples/aks/kubernetes-config/main.tf

Lines changed: 17 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
1-
# This fetches a new token, which will expire in 1 hour.
1+
provider "azurerm" {
2+
features {}
3+
}
4+
5+
# The client certificate used for authenticating into the AKS cluster will eventually expire,
6+
# (especially true if your clusters are created and destroyed periodically).
7+
# This data source fetches new authentication certificates.
8+
# Alternatively, use `terraform refresh` to fetch them manually.
29
data "azurerm_kubernetes_cluster" "main" {
310
name = var.cluster_name
411
resource_group_name = var.cluster_name
512
}
613

714
provider "kubernetes" {
8-
host = "${data.azurerm_kubernetes_cluster.main.kube_config.0.host}"
9-
client_certificate = "${base64decode(data.azurerm_kubernetes_cluster.main.kube_config.0.client_certificate)}"
10-
client_key = "${base64decode(data.azurerm_kubernetes_cluster.main.kube_config.0.client_key)}"
11-
cluster_ca_certificate = "${base64decode(data.azurerm_kubernetes_cluster.main.kube_config.0.cluster_ca_certificate)}"
15+
host = var.cluster_endpoint
16+
cluster_ca_certificate = var.cluster_ca_cert
17+
client_key = base64decode(data.azurerm_kubernetes_cluster.main.kube_config.0.client_key)
18+
client_certificate = base64decode(data.azurerm_kubernetes_cluster.main.kube_config.0.client_certificate)
1219
}
1320

1421
resource "kubernetes_namespace" "test" {
@@ -31,7 +38,7 @@ depends_on = [var.cluster_name]
3138
persistent_volume_source {
3239
azure_disk {
3340
caching_mode = "None"
34-
data_disk_uri = var.disk_uri
41+
data_disk_uri = var.data_disk_uri
3542
disk_name = "managed"
3643
kind = "Managed"
3744
}
@@ -80,9 +87,10 @@ resource "kubernetes_deployment" "test" {
8087

8188
provider "helm" {
8289
kubernetes {
83-
host = var.cluster_endpoint
84-
token = data.google_client_config.default.access_token
85-
cluster_ca_certificate = base64decode(var.cluster_ca_cert)
90+
host = var.cluster_endpoint
91+
client_certificate = var.cluster_ca_cert
92+
client_key = base64decode(data.azurerm_kubernetes_cluster.main.kube_config.0.client_key)
93+
cluster_ca_certificate = base64decode(data.azurerm_kubernetes_cluster.main.kube_config.0.cluster_ca_certificate)
8694
}
8795
}
8896

@@ -97,21 +105,3 @@ resource helm_release nginx_ingress {
97105
value = "ClusterIP"
98106
}
99107
}
100-
101-
data "template_file" "kubeconfig" {
102-
template = file("${path.module}/kubeconfig-template.yaml")
103-
104-
vars = {
105-
cluster_name = var.cluster_name
106-
endpoint = var.cluster_endpoint
107-
cluster_ca = var.cluster_ca_cert
108-
cluster_token = data.google_client_config.default.access_token
109-
}
110-
}
111-
112-
resource "local_file" "kubeconfig" {
113-
depends_on = [var.cluster_id]
114-
content = data.template_file.kubeconfig.rendered
115-
filename = "${path.root}/kubeconfig"
116-
}
117-
Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,15 @@
1-
azurerm_managed_disk.test.id
1+
variable "cluster_ca_cert" {
2+
type = string
3+
}
4+
5+
variable "cluster_endpoint" {
6+
type = string
7+
}
8+
9+
variable "cluster_name" {
10+
type = string
11+
}
12+
13+
variable "data_disk_uri" {
14+
type = string
15+
}

_examples/aks/main.tf

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,37 @@
11
terraform {
2-
required_providers {
3-
kubernetes = {
4-
source = "hashicorp/kubernetes"
5-
# version = "2.0"
6-
}
7-
google = {
8-
source = "hashicorp/azure"
9-
version = "2.42"
10-
}
11-
helm = {
12-
source = "hashicorp/helm"
13-
version = "2.0.1"
14-
}
15-
}
2+
required_providers {
3+
kubernetes = {
4+
source = "hashicorp/kubernetes"
5+
version = "9.9.9"
6+
}
7+
azurerm = {
8+
source = "hashicorp/azurerm"
9+
version = "2.42"
10+
}
11+
helm = {
12+
source = "hashicorp/helm"
13+
version = "2.0.1"
14+
}
15+
}
1616
}
1717

1818
resource "random_id" "cluster_name" {
1919
byte_length = 5
2020
}
2121

22-
2322
module "aks-cluster" {
2423
source = "./aks-cluster"
2524
cluster_name = local.cluster_name
25+
location = var.location
2626
}
2727

28+
# By referencing the aks-cluster module as inputs to the kubernetes-config module,
29+
# we establish a dependency between the two. This will create the AKS cluster before
30+
# any Kubernetes resources are created.
2831
module "kubernetes-config" {
2932
source = "./kubernetes-config"
3033
cluster_name = module.aks-cluster.cluster_name
31-
cluster_id = module.aks-cluster.cluster_id # creates dependency on cluster creation
3234
cluster_endpoint = module.aks-cluster.cluster_endpoint
3335
cluster_ca_cert = module.aks-cluster.cluster_ca_cert
36+
data_disk_uri = module.aks-cluster.data_disk_uri
3437
}
35-

0 commit comments

Comments
 (0)