diff --git a/README.md b/README.md index 7234d11..d705358 100644 --- a/README.md +++ b/README.md @@ -1 +1,41 @@ -# Module name \ No newline at end of file +# Kubernetes Namespace + +## Requirements + +| Name | Version | +|------|---------| +| [terraform](#requirement\_terraform) | ~> 1.4 | +| [kubernetes](#requirement\_kubernetes) | ~>2.20 | + +## Providers + +| Name | Version | +|------|---------| +| [kubernetes](#provider\_kubernetes) | ~>2.20 | + +## Modules + +No modules. + +## Resources + +| Name | Type | +|------|------| +| [kubernetes_namespace_v1.main](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/namespace_v1) | resource | + +## Inputs + +| Name | Description | Type | Default | Required | +|------|-------------|------|---------|:--------:| +| [annotations](#input\_annotations) | An unstructured key value map stored with the namespace that may be used to store arbitrary metadata | `map(string)` | `{}` | no | +| [labels](#input\_labels) | Map of string keys and values that can be used to organize and categorize namespaces | `map(string)` | `{}` | no | +| [name](#input\_name) | Kubernetes namespace name | `string` | n/a | yes | + +## Outputs + +| Name | Description | +|------|-------------| +| [generation](#output\_generation) | A sequence number representing a specific generation of the desired state | +| [name](#output\_name) | The name of namespace | +| [uid](#output\_uid) | The unique in time and space value for this namespace | + \ No newline at end of file diff --git a/main.tf b/main.tf index e69de29..8de01c0 100644 --- a/main.tf +++ b/main.tf @@ -0,0 +1,11 @@ +resource "kubernetes_namespace_v1" "main" { + metadata { + name = var.name + + annotations = { + name = var.name + } + + labels = var.labels + } +} diff --git a/outputs.tf b/outputs.tf index e69de29..5552611 100644 --- a/outputs.tf +++ b/outputs.tf @@ -0,0 +1,14 @@ +output "uid" { + description = "The unique in time and space value for this namespace" + value = kubernetes_namespace_v1.main.metadata[0].uid +} + +output "name" { + description = "The name of namespace" + value = kubernetes_namespace_v1.main.metadata[0].name +} + +output "generation" { + description = "A sequence number representing a specific generation of the desired state" + value = kubernetes_namespace_v1.main.metadata[0].generation +} diff --git a/variables.tf b/variables.tf index e69de29..8e0b397 100644 --- a/variables.tf +++ b/variables.tf @@ -0,0 +1,17 @@ +variable "name" { + description = "Kubernetes namespace name" + type = string + nullable = false +} + +variable "labels" { + description = "Map of string keys and values that can be used to organize and categorize namespaces" + type = map(string) + default = {} +} + +variable "annotations" { + description = "An unstructured key value map stored with the namespace that may be used to store arbitrary metadata" + type = map(string) + default = {} +} diff --git a/versions.tf b/versions.tf index 74655e1..b095cf1 100644 --- a/versions.tf +++ b/versions.tf @@ -1,3 +1,10 @@ terraform { required_version = "~> 1.4" + + required_providers { + kubernetes = { + source = "hashicorp/kubernetes" + version = "~>2.20" + } + } }