Skip to content

Tensho/terraform-kubernetes-gateway

Repository files navigation

Kubernetes Gateway Terraform Module

Terraform module to manage Kubernetes Gateway resource (batteries included).

Usage

module "example" {
  source  = "Tensho/gateway/kubernetes"
  version = "0.2.0"

  name       = "example"
  namespace  = "gateway-system"
  class_name = "gke-l7-global-external-managed"
  
  addresses = [
    {
      type  = "NamedAddress"
      value = "main-ingress-static-ip"
    }
  ]
  
  annotations = {
    "networking.gke.io/certmap" = "main"
  }
  
  listeners = [
    {
      name     = "http"
      protocol = "HTTP"
      port     = 80
    },
    {
      name     = "https"
      protocol = "HTTPS"
      port     = 443
    }
  ]
}

Requirements

Name Version
terraform >= 1.7.0
kubernetes >= 2.0

Providers

Name Version
kubernetes 2.36.0

Modules

No modules.

Resources

Name Type
kubernetes_manifest.default resource

Inputs

Name Description Type Default Required
addresses List of addresses for the Gateway. Supports type: IPAddress, NamedAddress, Hostname.
list(object({
type = string
value = string
}))
null no
annotations Gateway annotations map(string) {} no
class_name Gateway class name string n/a yes
listeners Gateway listeners any n/a yes
name Gateway name string "main" no
namespace Kubernetes namespace string "default" no

Outputs

Name Description
kubernetes_gateway Kubernetes Gateway resource

Contributing

This project uses conventional commits.

Prerequisites

MacOS

brew install pre-commit terraform-docs tflint
pre-commit install --install-hooks
tflint --init

Provider Authentication

export KUBE_CONFIG_PATHS=~/.kube/config

Development

cd examples/
terraform init
terraform apply
terraform destroy

Testing

terraform init
terraform test
terraform test -filter main.tftest.hcl -verbose

About

Terraform module to manage Kubernetes Gateway resources

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages