fmt code
All checks were successful
CI / Terraform Format & Validate (push) Successful in 40s
CI / TruffleHog Secrets Scan (push) Successful in 57s

This commit is contained in:
Mauritz Uphoff 2025-05-15 08:51:58 +02:00
parent 444ca7df3a
commit 077f9383ed
7 changed files with 104 additions and 109 deletions

View file

@ -1,7 +1,7 @@
variable "stackit_project_id" {
type = string
default = "XXXXX-XXXX-XXXX-XXXX-XXXXXXX"
/*default = "d75e6aab-b616-4b42-ae3b-aaf161ad626d"*/
/*default = "XXXXX-XXXX-XXXX-XXXX-XXXXXXX"*/
default = "d75e6aab-b616-4b42-ae3b-aaf161ad626d"
}
variable "stackit_region" {

View file

@ -36,109 +36,3 @@ resource "stackit_ske_kubeconfig" "example" {
cluster_name = stackit_ske_cluster.default.name
refresh = true
}
resource "kubernetes_namespace" "rancher" {
metadata {
name = "rancher"
}
}
resource "kubernetes_namespace" "cert_manager" {
metadata {
name = "cert-manager"
}
}
resource "kubernetes_namespace" "nginx" {
metadata {
name = "nginx"
}
}
resource "helm_release" "cert_manager" {
name = "cert-manager"
namespace = kubernetes_namespace.cert_manager.metadata[0].name
repository = "https://charts.jetstack.io"
chart = "cert-manager"
version = "1.17.2"
values = [<<EOF
installCRDs: true
EOF
]
}
resource "stackit_public_ip" "public_ip" {
project_id = var.stackit_project_id
lifecycle {
ignore_changes = [network_interface_id]
}
}
resource "stackit_dns_zone" "rancher_zone" {
project_id = var.stackit_project_id
name = "rancher${random_string.random.result}"
dns_name = "rancher${random_string.random.result}.runs.onstackit.cloud"
type = "primary"
default_ttl = 60
contact_email = "hostmaster@stackit.cloud"
}
resource "stackit_dns_record_set" "a_record" {
project_id = var.stackit_project_id
zone_id = stackit_dns_zone.rancher_zone.zone_id
name = "ui"
type = "A"
ttl = 60
comment = "ui for rancher"
records = [stackit_public_ip.public_ip.ip]
}
resource "helm_release" "nginx_ingress" {
name = "nginx-ingress"
repository = "https://kubernetes.github.io/ingress-nginx"
chart = "ingress-nginx"
version = "4.12.2"
namespace = kubernetes_namespace.nginx.metadata[0].name
values = [
<<EOF
controller:
replicaCount: 1
service:
type: LoadBalancer
annotations:
lb.stackit.cloud/external-address: ${stackit_public_ip.public_ip.ip}
EOF
]
timeout = 600
}
resource "helm_release" "rancher" {
name = "rancher"
namespace = kubernetes_namespace.rancher.metadata[0].name
repository = "https://releases.rancher.com/server-charts/stable"
chart = "rancher"
version = "2.11.1"
values = [<<EOF
hostname: "${stackit_dns_record_set.a_record.name}.${stackit_dns_zone.rancher_zone.dns_name}"
ingress:
enabled: true
ingressClassName: "nginx"
tls:
source: rancher
secretName: tls-rancher-ingress
EOF
]
depends_on = [helm_release.cert_manager]
}
output "rancher" {
value = "${stackit_dns_record_set.a_record.name}.${stackit_dns_zone.rancher_zone.dns_name}"
}

17
04-k8s-ns.tf Normal file
View file

@ -0,0 +1,17 @@
resource "kubernetes_namespace" "rancher" {
metadata {
name = "rancher"
}
}
resource "kubernetes_namespace" "cert_manager" {
metadata {
name = "cert-manager"
}
}
resource "kubernetes_namespace" "nginx" {
metadata {
name = "nginx"
}
}

18
05-dns.tf Normal file
View file

@ -0,0 +1,18 @@
resource "stackit_dns_zone" "rancher_zone" {
project_id = var.stackit_project_id
name = "rancher${random_string.random.result}"
dns_name = "rancher${random_string.random.result}.runs.onstackit.cloud"
type = "primary"
default_ttl = 60
contact_email = "hostmaster@stackit.cloud"
}
resource "stackit_dns_record_set" "ui_a_record" {
project_id = var.stackit_project_id
zone_id = stackit_dns_zone.rancher_zone.zone_id
name = "ui"
type = "A"
ttl = 60
comment = "ui for rancher"
records = [stackit_public_ip.public_ip.ip]
}

7
06-public-ip.tf Normal file
View file

@ -0,0 +1,7 @@
resource "stackit_public_ip" "public_ip" {
project_id = var.stackit_project_id
lifecycle {
ignore_changes = [network_interface_id]
}
}

56
07-helm.tf Normal file
View file

@ -0,0 +1,56 @@
resource "helm_release" "cert_manager" {
name = "cert-manager"
namespace = kubernetes_namespace.cert_manager.metadata[0].name
repository = "https://charts.jetstack.io"
chart = "cert-manager"
version = "1.17.2"
values = [<<EOF
installCRDs: true
EOF
]
}
resource "helm_release" "nginx_ingress" {
name = "nginx-ingress"
repository = "https://kubernetes.github.io/ingress-nginx"
chart = "ingress-nginx"
version = "4.12.2"
namespace = kubernetes_namespace.nginx.metadata[0].name
values = [
<<EOF
controller:
replicaCount: 1
service:
type: LoadBalancer
annotations:
lb.stackit.cloud/external-address: ${stackit_public_ip.public_ip.ip}
EOF
]
timeout = 600
}
resource "helm_release" "rancher" {
name = "rancher"
namespace = kubernetes_namespace.rancher.metadata[0].name
repository = "https://releases.rancher.com/server-charts/stable"
chart = "rancher"
version = "2.11.1"
values = [<<EOF
hostname: "${stackit_dns_record_set.ui_a_record.name}.${stackit_dns_zone.rancher_zone.dns_name}"
ingress:
enabled: true
ingressClassName: "nginx"
tls:
source: rancher
secretName: tls-rancher-ingress
EOF
]
depends_on = [helm_release.cert_manager]
}

3
08-outputs.tf Normal file
View file

@ -0,0 +1,3 @@
output "rancher" {
value = "${stackit_dns_record_set.ui_a_record.name}.${stackit_dns_zone.rancher_zone.dns_name}"
}