elasticsearch_config |
Configuration settings for deploying Elasticsearch |
object({ name = optional(string, "elasticsearch-master") # Name of the Elasticsearch cluster k8s_namespace = object({ name = optional(string, "logging") create = optional(bool, true) })
tls_self_signed_cert_data = optional(object({ # Self-signed TLS certificate data organisation = optional(string, null) # Organisation name for certificate validity_period_hours = optional(number, 26280) # 3 years validity early_renewal_hours = optional(number, 168) # 1 week early renewal }))
cluster_config = object({ port = optional(string, "9200") # Elasticsearch HTTP port transport_port = optional(string, "9300") # Elasticsearch transport port user = optional(string, "elastic") # Elasticsearch username log_level = optional(string, "INFO") # Log level (DEBUG, INFO, WARN, ERROR) cpu_limit = optional(string, "2000m") # CPU limit for the Elasticsearch container memory_limit = optional(string, "4Gi") # Memory limit for the Elasticsearch container cpu_request = optional(string, "1000m") # CPU request for the Elasticsearch container memory_request = optional(string, "2Gi") # Memory request for the Elasticsearch container storage_class = optional(string, "gp2") storage = optional(string, "30Gi") # Persistent volume storage for Elasticsearch replica_count = optional(string, 3) })
kibana_config = object({ name = optional(string, "kibana") replica_count = optional(string, 3) http_port = optional(string, "5601") user = optional(string, "elastic") log_level = optional(string, "info") // values include Options are all, fatal, error, warn, info, debug, trace, off cpu_limit = optional(string, "500m") memory_limit = optional(string, "1Gi") cpu_request = optional(string, "250m") memory_request = optional(string, "500Mi") ingress_enabled = optional(bool, false) ingress_host = optional(string, "") aws_certificate_arn = optional(string, "") lb_visibility = optional(string, "internet-facing") }) }) |
{ "cluster_config": { "cpu_limit": "2000m", "cpu_request": "1000m", "log_level": "INFO", "memory_limit": "4Gi", "memory_request": "2Gi", "port": "9200", "replica_count": 3, "storage": "30Gi", "transport_port": "9300", "user": "elastic" }, "k8s_namespace": { "create": true, "name": "logging" }, "kibana_config": { "cpu_limit": "500m", "cpu_request": "250m", "elasticsearch_url": "https://elasticsearch-master:9200", "http_port": "5601", "ingress_enabled": false, "ingress_host": "", "log_level": "info", "memory_limit": "1Gi", "memory_request": "500Mi", "name": "kibana", "user": "elastic" }, "name": "elasticsearch-master", "tls_self_signed_cert_data": { "early_renewal_hours": 168, "organisation": null, "validity_period_hours": 26280 } } |
no |
fluentbit_config |
Configuration for Fluentbit |
object({ k8s_namespace = object({ name = optional(string, "logging") create = optional(bool, false) }) name = optional(string, "fluent-bit") cpu_limit = optional(string, "100m") memory_limit = optional(string, "512Mi") cpu_request = optional(string, "100m") memory_request = optional(string, "128Mi") logstash_dateformat = optional(string, "%Y.%m.%d") # Default time format time_format = optional(string, "%Y-%m-%dT%H:%M:%S.%L") log_level = optional(string, "info") # Default log level aws_region = optional(string, "") aws_role_arn = optional(string, "") }) |
{ "cpu_limit": "100m", "cpu_request": "100m", "k8s_namespace": { "create": false, "name": "logging" }, "logstash_dateformat": "%Y.%m.%d", "memory_limit": "512Mi", "memory_request": "128Mi", "name": "fluent-bit", "search_engine": "elasticsearch" } |
no |
fluentd_config |
Configuration for Fluentd |
object({ k8s_namespace = object({ name = optional(string, "logging") create = optional(bool, false) }) name = optional(string, "fluentd") cpu_limit = optional(string, "100m") memory_limit = optional(string, "512Mi") cpu_request = optional(string, "100m") memory_request = optional(string, "128Mi") logstash_dateformat = optional(string, "%Y.%m.%d") # Default time format log_level = optional(string, "info") # Default log level opensearch_url = optional(string, "") aws_region = optional(string, "") aws_role_arn = optional(string, "") }) |
{ "cpu_limit": "100m", "cpu_request": "100m", "k8s_namespace": { "create": false, "name": "logging" }, "logstash_dateformat": "%Y.%m.%d", "memory_limit": "512Mi", "memory_request": "128Mi", "name": "fluentd", "search_engine": "elasticsearch" } |
no |
prometheus_config |
Configuration settings for deploying Prometheus |
object({ name = optional(string, "prometheus") k8s_namespace = object({ name = optional(string, "metrics") create = optional(bool, true) }) log_level = optional(string, "info") replica_count = optional(number, 1) storage = optional(string, "8Gi") storage_class = optional(string, "gp2") enable_kube_state_metrics = optional(bool, true) enable_node_exporter = optional(bool, true) cpu_limit = optional(string, "100m") memory_limit = optional(string, "512Mi") cpu_request = optional(string, "100m") memory_request = optional(string, "128Mi") retention_period = optional(string, "15d")
grafana_config = object({ name = optional(string, "grafana") replica_count = optional(number, 1) ingress_enabled = optional(bool, false) lb_visibility = optional(string, "internet-facing") # Options: "internal" or "internet-facing" aws_certificate_arn = optional(string, "") ingress_host = optional(string, "") admin_user = optional(string, "admin") cpu_limit = optional(string, "100m") memory_limit = optional(string, "128Mi") cpu_request = optional(string, "100m") memory_request = optional(string, "128Mi") dashboard_list = optional(list(object({ name = string json = string })), []) })
blackbox_exporter_config = object({ name = optional(string, "blackbox-exporter") replica_count = optional(number, 1) cpu_limit = optional(string, "100m") memory_limit = optional(string, "500Mi") cpu_request = optional(string, "100m") memory_request = optional(string, "50Mi") monitoring_targets = list(object({ name = string # Target name (e.g., google) url = string # URL to monitor (e.g., https://google.com) scrape_interval = optional(string, "60s") # Scrape interval (e.g., 60s) scrape_timeout = optional(string, "60s") # Scrape timeout (e.g., 60s) status_code_pattern_list = optional(string, "[http_2xx]") # Blackbox module to use (e.g., http_2xx) })) })
alertmanager_config = object({ name = optional(string, "alertmanager") replica_count = optional(number, 1) cpu_limit = optional(string, "100m") memory_limit = optional(string, "128Mi") cpu_request = optional(string, "10m") memory_request = optional(string, "32Mi") custom_alerts = optional(string, "") alert_notification_settings = optional(string, "") }) }) |
{ "alertmanager_config": { "name": "alertmanager" }, "blackbox_exporter_config": { "monitoring_targets": [], "name": "blackbox-exporter" }, "enable_kube_state_metrics": true, "enable_node_exporter": true, "grafana_config": { "admin_user": "admin", "ingress_enabled": false, "lb_visibility": "internet-facing", "prometheus_endpoint": "prometheus" }, "k8s_namespace": { "create": true, "name": "metrics" }, "log_level": "info", "replica_count": 1, "resources": { "cpu_limit": "100m", "cpu_request": "100m", "memory_limit": "512Mi", "memory_request": "128Mi" }, "retention_period": "15d", "storage": "8Gi" } |
no |