Files
infrastructure/terraform/modules/kubernetes/namespace/main.tf
2026-02-09 21:51:46 -08:00

56 lines
1.2 KiB
HCL

# Kubernetes Namespace Module
# Main resources
terraform {
required_providers {
kubernetes = {
source = "hashicorp/kubernetes"
version = "~> 2.0"
}
}
}
# Namespace
resource "kubernetes_namespace" "main" {
metadata {
name = var.name
labels = var.labels
annotations = var.annotations
}
}
# Resource Quota (if specified)
resource "kubernetes_resource_quota" "quota" {
count = length(var.resource_quota) > 0 ? 1 : 0
metadata {
name = "${var.name}-quota"
namespace = kubernetes_namespace.main.metadata[0].name
}
spec {
hard = var.resource_quota
}
}
# Limit Range (if specified)
resource "kubernetes_limit_range" "limits" {
count = length(var.limit_range) > 0 ? 1 : 0
metadata {
name = "${var.name}-limits"
namespace = kubernetes_namespace.main.metadata[0].name
}
spec {
limit {
default = var.limit_range.default
default_request = var.limit_range.default_request
max = var.limit_range.max
min = var.limit_range.min
max_limit_request_ratio = var.limit_range.max_limit_request_ratio
}
}
}