# 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 } } }