Skip to content

Commit

Permalink
Merge pull request #128 from kbst/disableingress
Browse files Browse the repository at this point in the history
Add variable to disable the default ingress setup fix #125
  • Loading branch information
pst authored Aug 25, 2020
2 parents 74484ff + 88560cf commit 5ba04b7
Show file tree
Hide file tree
Showing 15 changed files with 74 additions and 37 deletions.
25 changes: 15 additions & 10 deletions aws/_modules/eks/ingress.tf
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
resource "kubernetes_service" "current" {
count = var.disable_default_ingress ? 0 : 1

provider = kubernetes.eks

metadata {
Expand Down Expand Up @@ -30,36 +32,39 @@ resource "kubernetes_service" "current" {
}

resource "aws_route53_zone" "current" {
name = "${var.metadata_fqdn}."
}
count = var.disable_default_ingress ? 0 : 1

locals {
elb_hostname = kubernetes_service.current.load_balancer_ingress[0].hostname
name = "${var.metadata_fqdn}."
}

data "aws_elb_hosted_zone_id" "current" {
count = var.disable_default_ingress ? 0 : 1
}

resource "aws_route53_record" "host" {
zone_id = aws_route53_zone.current.zone_id
count = var.disable_default_ingress ? 0 : 1

zone_id = aws_route53_zone.current[0].zone_id
name = var.metadata_fqdn
type = "A"

alias {
name = local.elb_hostname
zone_id = data.aws_elb_hosted_zone_id.current.id
name = kubernetes_service.current[0].load_balancer_ingress[0].hostname
zone_id = data.aws_elb_hosted_zone_id.current[0].id
evaluate_target_health = true
}
}

resource "aws_route53_record" "wildcard" {
zone_id = aws_route53_zone.current.zone_id
count = var.disable_default_ingress ? 0 : 1

zone_id = aws_route53_zone.current[0].zone_id
name = "*.${var.metadata_fqdn}"
type = "A"

alias {
name = local.elb_hostname
zone_id = data.aws_elb_hosted_zone_id.current.id
name = kubernetes_service.current[0].load_balancer_ingress[0].hostname
zone_id = data.aws_elb_hosted_zone_id.current[0].id
evaluate_target_health = true
}
}
5 changes: 0 additions & 5 deletions aws/_modules/eks/outputs.tf

This file was deleted.

5 changes: 5 additions & 0 deletions aws/_modules/eks/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -69,3 +69,8 @@ variable "manifest_path" {
type = string
description = "Path to Kustomize overlay to build."
}

variable "disable_default_ingress" {
type = bool
description = "Whether to disable the default ingress."
}
2 changes: 2 additions & 0 deletions aws/cluster/configuration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,6 @@ locals {

manifest_path_default = "manifests/overlays/${terraform.workspace}"
manifest_path = var.manifest_path != null ? var.manifest_path : local.manifest_path_default

disable_default_ingress = lookup(local.cfg, "disable_default_ingress", false)
}
2 changes: 2 additions & 0 deletions aws/cluster/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,6 @@ module "cluster" {
aws_auth_map_accounts = local.cluster_aws_auth_map_accounts

manifest_path = local.manifest_path

disable_default_ingress = local.disable_default_ingress
}
20 changes: 15 additions & 5 deletions azurerm/_modules/aks/ingress.tf
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
resource "azurerm_public_ip" "current" {
count = var.disable_default_ingress ? 0 : 1

name = var.metadata_name
location = azurerm_kubernetes_cluster.current.location
resource_group_name = azurerm_kubernetes_cluster.current.node_resource_group
Expand All @@ -10,6 +12,8 @@ resource "azurerm_public_ip" "current" {
}

resource "kubernetes_service" "current" {
count = var.disable_default_ingress ? 0 : 1

provider = kubernetes.aks

metadata {
Expand All @@ -19,7 +23,7 @@ resource "kubernetes_service" "current" {

spec {
type = "LoadBalancer"
load_balancer_ip = azurerm_public_ip.current.ip_address
load_balancer_ip = azurerm_public_ip.current[0].ip_address

selector = {
"kubestack.com/ingress-default" = "true"
Expand All @@ -42,28 +46,34 @@ resource "kubernetes_service" "current" {
}

resource "azurerm_dns_zone" "current" {
count = var.disable_default_ingress ? 0 : 1

name = var.metadata_fqdn
resource_group_name = data.azurerm_resource_group.current.name

tags = var.metadata_labels
}

resource "azurerm_dns_a_record" "host" {
count = var.disable_default_ingress ? 0 : 1

name = "@"
zone_name = azurerm_dns_zone.current.name
zone_name = azurerm_dns_zone.current[0].name
resource_group_name = data.azurerm_resource_group.current.name
ttl = 300
records = [azurerm_public_ip.current.ip_address]
records = [azurerm_public_ip.current[0].ip_address]

tags = var.metadata_labels
}

resource "azurerm_dns_a_record" "wildcard" {
count = var.disable_default_ingress ? 0 : 1

name = "*"
zone_name = azurerm_dns_zone.current.name
zone_name = azurerm_dns_zone.current[0].name
resource_group_name = data.azurerm_resource_group.current.name
ttl = 300
records = [azurerm_public_ip.current.ip_address]
records = [azurerm_public_ip.current[0].ip_address]

tags = var.metadata_labels
}
5 changes: 0 additions & 5 deletions azurerm/_modules/aks/outputs.tf

This file was deleted.

5 changes: 5 additions & 0 deletions azurerm/_modules/aks/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -81,3 +81,8 @@ variable "manifest_path" {
type = string
description = "Path to Kustomize overlay to build."
}

variable "disable_default_ingress" {
type = bool
description = "Whether to disable the default ingress."
}
2 changes: 2 additions & 0 deletions azurerm/cluster/configuration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,6 @@ locals {

manifest_path_default = "manifests/overlays/${terraform.workspace}"
manifest_path = var.manifest_path != null ? var.manifest_path : local.manifest_path_default

disable_default_ingress = lookup(local.cfg, "disable_default_ingress", false)
}
2 changes: 2 additions & 0 deletions azurerm/cluster/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,6 @@ module "cluster" {
default_node_pool_os_disk_size_gb = local.default_node_pool_os_disk_size_gb

manifest_path = local.manifest_path

disable_default_ingress = local.disable_default_ingress
}
24 changes: 17 additions & 7 deletions google/_modules/gke/ingress.tf
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
resource "google_compute_address" "current" {
count = var.disable_default_ingress ? 0 : 1

region = google_container_cluster.current.location
project = var.project

name = var.metadata_name
}

resource "kubernetes_service" "current" {
count = var.disable_default_ingress ? 0 : 1

provider = kubernetes.gke

metadata {
Expand All @@ -15,7 +19,7 @@ resource "kubernetes_service" "current" {

spec {
type = "LoadBalancer"
load_balancer_ip = google_compute_address.current.address
load_balancer_ip = google_compute_address.current[0].address

selector = {
"kubestack.com/ingress-default" = "true"
Expand All @@ -39,32 +43,38 @@ resource "kubernetes_service" "current" {
}

resource "google_dns_managed_zone" "current" {
count = var.disable_default_ingress ? 0 : 1

project = var.project

name = var.metadata_name
dns_name = "${var.metadata_fqdn}."
}

resource "google_dns_record_set" "host" {
count = var.disable_default_ingress ? 0 : 1

project = var.project

name = google_dns_managed_zone.current.dns_name
name = google_dns_managed_zone.current[0].dns_name
type = "A"
ttl = 300

managed_zone = google_dns_managed_zone.current.name
managed_zone = google_dns_managed_zone.current[0].name

rrdatas = [google_compute_address.current.address]
rrdatas = [google_compute_address.current[0].address]
}

resource "google_dns_record_set" "wildcard" {
count = var.disable_default_ingress ? 0 : 1

project = var.project

name = "*.${google_dns_managed_zone.current.dns_name}"
name = "*.${google_dns_managed_zone.current[0].dns_name}"
type = "A"
ttl = 300

managed_zone = google_dns_managed_zone.current.name
managed_zone = google_dns_managed_zone.current[0].name

rrdatas = [google_compute_address.current.address]
rrdatas = [google_compute_address.current[0].address]
}
5 changes: 0 additions & 5 deletions google/_modules/gke/outputs.tf

This file was deleted.

5 changes: 5 additions & 0 deletions google/_modules/gke/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -108,3 +108,8 @@ variable "manifest_path" {
type = string
description = "Path to Kustomize overlay to build."
}

variable "disable_default_ingress" {
type = bool
description = "Whether to disable the default ingress."
}
2 changes: 2 additions & 0 deletions google/cluster/configuration.tf
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,6 @@ locals {

manifest_path_default = "manifests/overlays/${terraform.workspace}"
manifest_path = var.manifest_path != null ? var.manifest_path : local.manifest_path_default

disable_default_ingress = lookup(local.cfg, "disable_default_ingress", false)
}
2 changes: 2 additions & 0 deletions google/cluster/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,6 @@ module "cluster" {
auto_upgrade = local.cluster_auto_upgrade

manifest_path = local.manifest_path

disable_default_ingress = local.disable_default_ingress
}

0 comments on commit 5ba04b7

Please sign in to comment.