Skip to content

sparkfabrik/terraform-sparkfabrik-gcp-http-monitoring

Repository files navigation

Terraform GCP uptime monitoring module

tflint status

This is a simple module that creates two resources, a google_monitoring_uptime_check_config and its alert google_monitoring_alert_policy.

You MUST configure the required "google" provider inside your root module.

This module is provided without any kind of warranty and is GPL3 licensed.

Providers

Name Version
google >= 3.0
kubernetes >= 2.7

Requirements

Name Version
terraform >= 1.3
google >= 3.0
kubernetes >= 2.7

Inputs

Name Description Type Default Required
accepted_response_status_classes Check will only pass if the HTTP response status code is in this set of status classes (combined with the set of status values). Possible values: STATUS_CLASS_1XX, STATUS_CLASS_2XX, STATUS_CLASS_3XX, STATUS_CLASS_4XX, STATUS_CLASS_5XX, STATUS_CLASS_ANY set(string) [] no
accepted_response_status_values Check will only pass if the HTTP response status code is in this set of status values (combined with the set of status classes). set(number) [] no
alert_notification_channels Identifies the notification channels to which notifications should be sent when incidents are opened or closed. The syntax of the entries in this field is projects/[PROJECT_ID]/notificationChannels/[CHANNEL_ID] list(string) n/a yes
alert_threshold_duration The amount of time that a time series must violate the threshold to be considered failing. Currently, only values that are a multiple of a minute--e.g., 0, 60, 120, or 300 seconds--are supported. string "60s" no
alert_threshold_value A value against which to compare the time series. number 1 no
auth_k8s_configmap If your application is behind a basic auth, here you can specify the name of the Kubernetes configmap that contains the credentials. You have to specify the keys for the username and password.
object({
name = string
namespace = string
username_key = string
password_key = string
})
null no
auth_k8s_secret_basic_auth If your application is behind a basic auth, here you can specify the name of the Kubernetes secret that contains the basic auth credentials. If you do not specify the username_key and password_key, the secret must contains the username and password keys as defined in the kubernetes.io/basic-auth type (https://kubernetes.io/docs/concepts/configuration/secret/#basic-authentication-secret).
object({
name = string
namespace = string
username_key = optional(string, "username")
password_key = optional(string, "password")
})
null no
auth_password If your application is behind a basic auth, here you can specify your password. We recommend to use an env var for you password and do not store it as data plain text in your repo. string "" no
auth_username If your application is behind a basic auth, here you can specify your username. We recommend to use an env var for you password and do not store it as data plain text in your repo. string "" no
gcp_project The Google Cloud project ID. string n/a yes
ssl_alert_threshold_days If you configure this list with some numeric values, the module creates alerts for SSL certificate expiration. The values of the list will be used as threshold value in days for the alert. list(number) [] no
ssl_alert_user_labels This field is intended to be used for labelling the SSL alerts. Labels and values can contain only lowercase letters, numerals, underscores, and dashes. Keys must begin with a letter. map(string) {} no
uptime_alert_user_labels This field is intended to be used for labelling the SSL alerts. Labels and values can contain only lowercase letters, numerals, underscores, and dashes. Keys must begin with a letter. map(string) {} no
uptime_check_period How often, in seconds, the uptime check is performed. Currently, the only supported values are 60s (1 minute), 300s (5 minutes), 600s (10 minutes), and 900s (15 minutes). Defaults to 300s. string "60s" no
uptime_check_regions The list of regions from which the check will be run. Some regions contain one location, and others contain more than one. If this field is specified, enough regions to include a minimum of 3 locations must be provided, or an error message is returned. Not specifying this field will result in uptime checks running from all regions. list(string)
[
"USA_VIRGINIA",
"EUROPE",
"ASIA_PACIFIC"
]
no
uptime_check_timeout The maximum amount of time to wait for the request to complete (must be between 1 and 60 seconds). string "10s" no
uptime_monitoring_display_name A human-friendly name for the uptime check configuration. Used for monitoring display_name. string "" no
uptime_monitoring_host A hostname to monitor (without protocol, example: 'www.my-site.com'). string n/a yes
uptime_monitoring_path The path to the page to run the check against. string "/" no

Outputs

Name Description
alert_policy_name n/a
http_uptime_monitoring_name n/a
ssl_alert_policy_names n/a

Resources

Name Type
google_monitoring_alert_policy.failure_alert resource
google_monitoring_alert_policy.ssl_expiring_days resource
google_monitoring_uptime_check_config.https_uptime resource
kubernetes_config_map_v1.basic_auth data source
kubernetes_secret_v1.basic_auth data source

Modules

No modules.