56 lines
1.2 KiB
HCL
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
|
|
}
|
|
}
|
|
}
|
|
|