mirror of
https://github.com/dat515-2025/Group-8.git
synced 2026-03-22 15:12:08 +01:00
refactor(structure): move to 7project dir
This commit is contained in:
70
7project/tofu/modules/metallb/main.tf
Normal file
70
7project/tofu/modules/metallb/main.tf
Normal file
@@ -0,0 +1,70 @@
|
||||
terraform {
|
||||
required_providers {
|
||||
kubectl = {
|
||||
source = "gavinbunney/kubectl"
|
||||
version = "1.19.0"
|
||||
}
|
||||
helm = {
|
||||
source = "hashicorp/helm"
|
||||
version = "3.0.2"
|
||||
}
|
||||
kubernetes = {
|
||||
source = "hashicorp/kubernetes"
|
||||
version = "2.38.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
resource "kubernetes_namespace" "metallb-system" {
|
||||
metadata {
|
||||
name = "metallb-system"
|
||||
labels = {
|
||||
"pod-security.kubernetes.io/enforce" = "privileged"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
resource "helm_release" "metallb" {
|
||||
depends_on = [ kubernetes_namespace.metallb-system ]
|
||||
|
||||
name = "metallb"
|
||||
repository = "https://metallb.github.io/metallb"
|
||||
chart = "metallb"
|
||||
namespace = "metallb-system"
|
||||
version = "0.14.9"
|
||||
|
||||
timeout = 3600
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "metallb_pool" {
|
||||
depends_on = [ helm_release.metallb ]
|
||||
|
||||
yaml_body = yamlencode({
|
||||
apiVersion = "metallb.io/v1beta1"
|
||||
kind = "IPAddressPool"
|
||||
metadata = {
|
||||
name = "metallb-pool"
|
||||
namespace = "metallb-system"
|
||||
}
|
||||
spec = {
|
||||
addresses = [var.metallb_ip_range]
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
resource "kubectl_manifest" "metallb_l2_advertisement" {
|
||||
depends_on = [ kubectl_manifest.metallb_pool ]
|
||||
|
||||
yaml_body = yamlencode({
|
||||
apiVersion = "metallb.io/v1beta1"
|
||||
kind = "L2Advertisement"
|
||||
metadata = {
|
||||
name = "l2-advertisement"
|
||||
namespace = "metallb-system"
|
||||
}
|
||||
spec = {
|
||||
ipAddressPools = ["metallb-pool"]
|
||||
}
|
||||
})
|
||||
}
|
||||
4
7project/tofu/modules/metallb/variables.tf
Normal file
4
7project/tofu/modules/metallb/variables.tf
Normal file
@@ -0,0 +1,4 @@
|
||||
variable "metallb_ip_range" {
|
||||
description = "IP address range for MetalLB address pool"
|
||||
type = string
|
||||
}
|
||||
Reference in New Issue
Block a user