Skip to content

Commit e1ad2e2

Browse files
committed
Update examples used for testing ConflictsWith
1 parent ee90b60 commit e1ad2e2

File tree

17 files changed

+136
-167
lines changed

17 files changed

+136
-167
lines changed

_examples/aks/aks-cluster/main.tf

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
resource "azurerm_resource_group" "test" {
1+
resource "azurerm_resource_group" "default" {
22
name = var.cluster_name
33
location = var.location
44
}
55

6-
resource "azurerm_kubernetes_cluster" "test" {
6+
resource "azurerm_kubernetes_cluster" "default" {
77
name = var.cluster_name
8-
location = azurerm_resource_group.test.location
9-
resource_group_name = azurerm_resource_group.test.name
8+
location = azurerm_resource_group.default.location
9+
resource_group_name = azurerm_resource_group.default.name
1010
dns_prefix = var.cluster_name
1111

1212
default_node_pool {
13-
name = "default"
13+
name = "test"
1414
node_count = 1
1515
vm_size = "Standard_DS2_v2"
1616
}
@@ -19,9 +19,3 @@ resource "azurerm_kubernetes_cluster" "test" {
1919
type = "SystemAssigned"
2020
}
2121
}
22-
23-
resource "local_file" "kubeconfig" {
24-
content = azurerm_kubernetes_cluster.test.kube_config_raw
25-
filename = "${path.root}/kubeconfig"
26-
}
27-

_examples/aks/aks-cluster/output.tf

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

_examples/aks/kubernetes-config/main.tf

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,3 +54,8 @@ resource helm_release nginx_ingress {
5454
value = "ClusterIP"
5555
}
5656
}
57+
58+
resource "local_file" "kubeconfig" {
59+
content = var.kubeconfig
60+
filename = "${path.root}/kubeconfig"
61+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
variable "cluster_name" {
22
type = string
33
}
4+
5+
variable "kubeconfig" {
6+
type = string
7+
}

_examples/aks/main.tf

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,38 @@ terraform {
22
required_providers {
33
kubernetes = {
44
source = "hashicorp/kubernetes"
5-
version = ">= 2.0.0"
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

18+
data "azurerm_kubernetes_cluster" "default" {
19+
depends_on = [module.aks-cluster] # refresh cluster state before reading
20+
name = local.cluster_name
21+
resource_group_name = local.cluster_name
22+
}
23+
1824
provider "kubernetes" {
19-
host = module.aks-cluster.endpoint
20-
client_key = base64decode(module.aks-cluster.client_key)
21-
client_certificate = base64decode(module.aks-cluster.client_cert)
22-
cluster_ca_certificate = base64decode(module.aks-cluster.ca_cert)
25+
host = data.azurerm_kubernetes_cluster.default.kube_config.0.host
26+
client_certificate = base64decode(data.azurerm_kubernetes_cluster.default.kube_config.0.client_certificate)
27+
client_key = base64decode(data.azurerm_kubernetes_cluster.default.kube_config.0.client_key)
28+
cluster_ca_certificate = base64decode(data.azurerm_kubernetes_cluster.default.kube_config.0.cluster_ca_certificate)
2329
}
2430

2531
provider "helm" {
2632
kubernetes {
27-
host = module.aks-cluster.endpoint
28-
client_key = base64decode(module.aks-cluster.client_key)
29-
client_certificate = base64decode(module.aks-cluster.client_cert)
30-
cluster_ca_certificate = base64decode(module.aks-cluster.ca_cert)
33+
host = data.azurerm_kubernetes_cluster.default.kube_config.0.host
34+
client_certificate = base64decode(data.azurerm_kubernetes_cluster.default.kube_config.0.client_certificate)
35+
client_key = base64decode(data.azurerm_kubernetes_cluster.default.kube_config.0.client_key)
36+
cluster_ca_certificate = base64decode(data.azurerm_kubernetes_cluster.default.kube_config.0.cluster_ca_certificate)
3137
}
3238
}
3339

@@ -36,15 +42,14 @@ provider "azurerm" {
3642
}
3743

3844
module "aks-cluster" {
39-
providers = { azurerm = azurerm }
4045
source = "./aks-cluster"
4146
cluster_name = local.cluster_name
4247
location = var.location
4348
}
4449

4550
module "kubernetes-config" {
46-
providers = { kubernetes = kubernetes, helm = helm }
4751
depends_on = [module.aks-cluster]
4852
source = "./kubernetes-config"
4953
cluster_name = local.cluster_name
54+
kubeconfig = data.azurerm_kubernetes_cluster.default.kube_config_raw
5055
}

_examples/eks/kubernetes-config/main.tf

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,4 @@
1-
provider "kubernetes" {
2-
host = var.cluster_endpoint
3-
cluster_ca_certificate = base64decode(var.cluster_ca_cert)
4-
exec {
5-
api_version = "client.authentication.k8s.io/v1alpha1"
6-
args = ["eks", "get-token", "--cluster-name", var.cluster_name]
7-
command = "aws"
8-
}
9-
}
10-
111
resource "kubernetes_config_map" "name" {
12-
depends_on = [var.cluster_name]
132
metadata {
143
name = "aws-auth"
154
namespace = "kube-system"
@@ -23,26 +12,20 @@ resource "kubernetes_config_map" "name" {
2312
}
2413
}
2514

26-
# This allows the kubeconfig file to be refreshed during every Terraform apply.
2715
# Optional: this kubeconfig file is only used for manual CLI access to the cluster.
2816
resource "null_resource" "generate-kubeconfig" {
2917
provisioner "local-exec" {
3018
command = "aws eks update-kubeconfig --name ${var.cluster_name} --kubeconfig ${path.root}/kubeconfig"
3119
}
32-
triggers = {
33-
always_run = timestamp()
34-
}
3520
}
3621

3722
resource "kubernetes_namespace" "test" {
38-
depends_on = [var.cluster_name]
3923
metadata {
4024
name = "test"
4125
}
4226
}
4327

4428
resource "kubernetes_deployment" "test" {
45-
depends_on = [var.cluster_name]
4629
metadata {
4730
name = "test"
4831
namespace= kubernetes_namespace.test.metadata.0.name
@@ -81,20 +64,7 @@ resource "kubernetes_deployment" "test" {
8164
}
8265
}
8366

84-
provider "helm" {
85-
kubernetes {
86-
host = var.cluster_endpoint
87-
cluster_ca_certificate = base64decode(var.cluster_ca_cert)
88-
exec {
89-
api_version = "client.authentication.k8s.io/v1alpha1"
90-
args = ["eks", "get-token", "--cluster-name", var.cluster_name]
91-
command = "aws"
92-
}
93-
}
94-
}
95-
9667
resource helm_release nginx_ingress {
97-
depends_on = [var.cluster_name]
9868
name = "nginx-ingress-controller"
9969

10070
repository = "https://charts.bitnami.com/bitnami"

_examples/eks/kubernetes-config/variables.tf

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,4 @@
11
variable "k8s_node_role_arn" {
2-
type = list(string)
3-
}
4-
5-
variable "cluster_ca_cert" {
6-
type = string
7-
}
8-
9-
variable "cluster_endpoint" {
102
type = string
113
}
124

_examples/eks/main.tf

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,44 @@ terraform {
1515
}
1616
}
1717

18+
data "aws_eks_cluster" "default" {
19+
name = module.cluster.cluster_id
20+
}
21+
22+
data "aws_eks_cluster_auth" "default" {
23+
name = module.cluster.cluster_id
24+
}
25+
26+
provider "kubernetes" {
27+
host = data.aws_eks_cluster.default.endpoint
28+
cluster_ca_certificate = base64decode(data.aws_eks_cluster.default.certificate_authority[0].data)
29+
exec {
30+
api_version = "client.authentication.k8s.io/v1alpha1"
31+
args = ["eks", "get-token", "--cluster-name", var.cluster_name]
32+
command = "aws"
33+
}
34+
}
35+
36+
# This configuration is also valid, but the token may expire during long-running applies.
37+
#provider "kubernetes" {
38+
# host = data.aws_eks_cluster.default.endpoint
39+
# cluster_ca_certificate = base64decode(data.aws_eks_cluster.default.certificate_authority[0].data)
40+
# token = data.aws_eks_cluster_auth.default.token
41+
#}
42+
43+
provider "helm" {
44+
kubernetes {
45+
host = data.aws_eks_cluster.default.endpoint
46+
cluster_ca_certificate = base64decode(data.aws_eks_cluster.default.certificate_authority[0].data)
47+
token = data.aws_eks_cluster_auth.default.token
48+
exec {
49+
api_version = "client.authentication.k8s.io/v1alpha1"
50+
args = ["eks", "get-token", "--cluster-name", var.cluster_name]
51+
command = "aws"
52+
}
53+
}
54+
}
55+
1856
provider "aws" {
1957
region = var.region
2058
}
@@ -51,9 +89,7 @@ module "cluster" {
5189
}
5290

5391
module "kubernetes-config" {
54-
source = "./kubernetes-config"
55-
k8s_node_role_arn = list(module.cluster.worker_iam_role_arn)
56-
cluster_ca_cert = module.cluster.cluster_certificate_authority_data
5792
cluster_name = module.cluster.cluster_id # creates dependency on cluster creation
58-
cluster_endpoint = module.cluster.cluster_endpoint
93+
source = "./kubernetes-config"
94+
k8s_node_role_arn = module.cluster.worker_iam_role_arn
5995
}

_examples/gke/gke-cluster/main.tf

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
provider "google" {
2-
# Provider is configured using environment variables: GOOGLE_REGION, GOOGLE_PROJECT, GOOGLE_CREDENTIALS.
3-
# This can be set statically, if preferred. See docs for details.
4-
# https://registry.terraform.io/providers/hashicorp/google/latest/docs/guides/provider_reference#full-reference
5-
}
6-
71
# This is used to set local variable google_zone.
82
# This can be replaced with a statically-configured zone, if preferred.
93
data "google_compute_zones" "available" {
@@ -14,7 +8,7 @@ data "google_container_engine_versions" "supported" {
148
version_prefix = var.kubernetes_version
159
}
1610

17-
resource "google_container_cluster" "primary" {
11+
resource "google_container_cluster" "default" {
1812
name = var.cluster_name
1913
location = local.google_zone
2014
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" {

0 commit comments

Comments
 (0)