Terraform module to deploy nginx-ingress-controller on kubernetes.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Christophe van de Kerchove 319c02bcab
feat: Add outputs for better dependency management
5 months ago
examples/default feat: Add outputs for better dependency management 5 months ago
.gitignore feature: initial import of files 1 year ago
.pre-commit-config.yaml chore: Update pre-commit config 5 months ago
AUTHORS feature: initial import of files 1 year ago
CHANGELOG.md feat: Add outputs for better dependency management 5 months ago
Jenkinsfile tech: Use KinD to run tests 8 months ago
LICENSE tech: Define license correctly 9 months ago
README.md feat: Add outputs for better dependency management 5 months ago
main.tf feat: Add outputs for better dependency management 5 months ago
outputs.tf feat: Add outputs for better dependency management 5 months ago
variables.tf feat: Allowing user to actually passing configuration as variables 5 months ago
versions.tf fix: Add versions.tf file 9 months ago

README.md

terraform-module-kubernetes-nginx-ingress-controller

Terraform module to deploy nginx-ingress-controller on kubernetes.

Requirements

Name Version
terraform >= 0.12
kubernetes >= 1.10.0
random >= 2.0.0

Providers

Name Version
kubernetes >= 1.10.0
random >= 2.0.0

Inputs

Name Description Type Default Required
additionnal_args List of additionnal arguments to pass to the nginx-ingress-controller. list [] no
annotations Map of annotations that will be merged with all other annotations on all kubernetes resources. map {} no
annotations_prefix Annotations that nginx-ingress-controller will watch on ingresses. string "nginx.ingress.kubernetes.io" no
cluster_role_annotations Map of annotations to apply to the cluster role. map {} no
cluster_role_binding_annotations Map of annotations to apply to the cluster role binding. map {} no
cluster_role_binding_labels Map of labels to apply to the cluster role binding. map {} no
cluster_role_binding_name Name of the cluster role binding to create for nginx-ingress-controller. *Note: This is an opinianated choice of forcing the nginx-ingress-controller to use RBAC.* string "ingress-nginx" no
cluster_role_labels Map of labels to apply to the cluster role. map {} no
cluster_role_name Name of the cluster role to create for nginx-ingress-controller. *Note: This is an opinianated choice of forcing the nginx-ingress-controller to use RBAC.* string "ingress-nginx" no
config_map_annotations Map of annotations to apply to all config maps. map {} no
config_map_labels Map of labels to apply to all config maps. map {} no
controller_host_port Port number on which the controller will be available on the host (0-65536) number null no
deployment_annotations Map of annotations to apply to the deployment. map {} no
deployment_labels Map of labels to apply to the deployment. map {} no
deployment_name Name of the deployment to create for nginx-ingress-controller. string "ingress-nginx" no
deployment_template_annotations Map of annotations to apply to the deployment template. map {} no
deployment_template_labels Map of labels to apply to the deployment template. map {} no
election_id Election id to use for Ingress status updates. string "ingress-controller-leader" no
image_name Name of the image to use. string "quay.io/kubernetes-ingress-controller/nginx-ingress-controller" no
image_version Version of the image to use. string "0.26.1" no
ingress_class Name of the ingress class this controller satisfies. The class of an Ingress object is set using the annotation “kubernetes.io/ingress.class”. string "nginx" no
labels Map of labels that will be merged with all other labels on all kubernetes resource. map {} no
namespace_annotations Map of annotations to apply to the namespace. map {} no
namespace_labels Map of labels to apply to the namespace. map {} no
namespace_name Name of the namespace to create and deploy the nginx-ingress-controller. *Note: This is an opinianated choice of forcing the nginx-ingress-controller to run in it's own namespace.* string "ingress-nginx" no
nginx_configuration_annotations Map of annotations to apply to the nginx_configuration config map. map {} no
nginx_configuration_data Map representing the configuration for nginx-ingress-controller. map {} no
nginx_configuration_labels Map of labels to apply to the nginx_configuration config map. map {} no
nginx_configuration_name Name of the nginx_configuration config map to create. string "nginx-configuration" no
node_selector Map of key value that will be used to select appropriate nodes map
{
“kubernetes.io/os”: “linux"
}
no
replicas Number of replica's to deploy. number 3 no
role_annotations Map of annotations to apply to the role. map {} no
role_binding_annotations Map of annotations to apply to the role binding. map {} no
role_binding_labels Map of labels to apply to the role binding. map {} no
role_binding_name Name of the role binding to create for nginx-ingress-controller. *Note: This is an opinianated choice of forcing the nginx-ingress-controller to use RBAC.* string "ingress-nginx" no
role_labels Map of labels to apply to the role. map {} no
role_name Name of the role to create for nginx-ingress-controller. *Note: This is an opinianated choice of forcing the nginx-ingress-controller to use RBAC.* string "ingress-nginx" no
service_account_annotations Map of annotations to apply to the service account. map {} no
service_account_labels Map of labels to apply to the service account. map {} no
service_account_name Name of the service account to create for nginx-ingress-controller. *Note: This is an opinianated choice of forcing the nginx-ingress-controller to use RBAC.* string "ingress-nginx" no
service_annotations Map of annotations to apply to the service. map {} no
service_external_traffic_policy The external traffic policy for the service. string "Local" no
service_labels Map of labels to apply to the service. map {} no
service_load_balancer_ip IP address to be used for the service. string null no
service_load_balancer_source_ranges List of source ranges that will be allowed access to the load balancer. list(string) null no
service_name Name of the service to create for nginx-ingress-controller. string "ingress-nginx" no
service_type Type of service to create for the nginx-ingress-controller. string "LoadBalancer" no
tcp_services_annotations Map of annotations to apply to the tcp_services config map. map {} no
tcp_services_data Map representing the tcp services configuration for nginx-ingress-configuration. map {} no
tcp_services_labels Map of labels to apply to the tcp_services config map. map {} no
tcp_services_name Name of the tcp_services config map to create. string "tcp-services" no
udp_services_annotations Map of annotations to apply to the udp_services config map. map {} no
udp_services_data Map representing the tcp services configuration for nginx-ingress-configuration. map {} no
udp_services_labels Map of labels to apply to the udp_services config map. map {} no
udp_services_name Name of the udp_services config map to create. string "udp-services" no

Outputs

Name Description
annotation_prefix Annotation prefix to be used by this ingress controller.
cluster_role n/a
cluster_role_binding n/a
config_map_nginx_configuration n/a
config_map_tcp_services n/a
config_map_udp_services n/a
deployment n/a
ingress_class Ingress-class to be used by this ingress controller.
load_balancer_ingress List of ingress points for the load-balancer.
namespace n/a
role n/a
role_binding n/a
service n/a
service_account n/a