devops-stack-module-kube-prometheus-stack
A DevOps Stack module to deploy and configure kube-prometheus-chart.
The kube-prometheus-stack chart used by this module is shipped in this repository as well, in order to avoid any unwanted behaviors caused by unsupported versions.
| Current Chart Version | Original Repository | Default Values | 
|---|---|---|
| 58.0.1 | 
Since this module is meant to be instantiated using its variants, the usage documentation is available in each variant ( AKS | EKS | KinD | SKS ).
Below you will only find the technical reference automatically generated from the *.tf files on the root module.
Technical Documentation
Requirements
The following requirements are needed by this module:
- 
argocd (>= 5) 
- 
kubernetes (>= 2) 
- 
null (>= 3) 
- 
random (>= 3) 
- 
utils (>= 1) 
Providers
The following providers are used by this module:
- 
null (>= 3) 
- 
kubernetes (>= 2) 
- 
random (>= 3) 
- 
utils (>= 1) 
- 
argocd (>= 5) 
Resources
The following resources are used by this module:
- 
argocd_application.this (resource) 
- 
argocd_project.this (resource) 
- 
kubernetes_namespace.kube_prometheus_stack_namespace (resource) 
- 
null_resource.dependencies (resource) 
- 
null_resource.this (resource) 
- 
random_password.grafana_admin_password (resource) 
- 
random_password.oauth2_cookie_secret (resource) 
- 
utils_deep_merge_yaml.values (data source) 
Required Inputs
The following input variables are required:
cluster_name
Description: Name given to the cluster. Value used for naming some the resources created by the module.
Type: string
base_domain
Description: Base domain of the cluster. Value used for the ingress' URL of the application.
Type: string
Optional Inputs
The following input variables are optional (have default values):
subdomain
Description: Subdomain of the cluster. Value used for the ingress' URL of the application.
Type: string
Default: "apps"
argocd_project
Description: Name of the Argo CD AppProject where the Application should be created. If not set, the Application will be created in a new AppProject only for this Application.
Type: string
Default: null
argocd_labels
Description: Labels to attach to the Argo CD Application resource.
Type: map(string)
Default: {}
destination_cluster
Description: Destination cluster where the application should be deployed.
Type: string
Default: "in-cluster"
target_revision
Description: Override of target revision of the application chart.
Type: string
Default: "v10.0.0"
cluster_issuer
Description: SSL certificate issuer to use. Usually you would configure this value as letsencrypt-staging or letsencrypt-prod on your root *.tf files.
Type: string
Default: "selfsigned-issuer"
helm_values
Description: Helm chart value overrides. They should be passed as a list of HCL structures.
Type: any
Default: []
deep_merge_append_list
Description: A boolean flag to enable/disable appending lists instead of overwriting them.
Type: bool
Default: false
app_autosync
Description: Automated sync options for the Argo CD Application resource.
Type:
object({
    allow_empty = optional(bool)
    prune       = optional(bool)
    self_heal   = optional(bool)
  })Default:
{
  "allow_empty": false,
  "prune": true,
  "self_heal": true
}alertmanager
Description: Object containing Alertmanager settings. The following attributes are supported:
- 
enabled: whether Alertmanager is deployed or not (default:true).
- 
domain: domain name configured in the Ingress (default:prometheus.apps.${var.cluster_name}.${var.base_domain}).
- 
oidc: OIDC configuration to be used by OAuth2 Proxy in front of Alertmanager (required).
- 
deadmanssnitch_url: url of a Dead Man’s Snitch service Alertmanager should report to (by default this reporing is disabled).
- 
slack_routes: list of objects configuring routing of alerts to Slack channels, with the following attributes:
- 
name: name of the configured route.
- 
channel: channel where the alerts will be sent (with '#').
- 
api_url: slack URL you received when configuring a webhook integration.
- 
matchers: list of strings for filtering which alerts will be sent.
- 
continue: whether an alert should continue matching subsequent sibling nodes.
Type: any
Default: {}
metrics_storage_main
Description: Storage settings for the Thanos sidecar. Needs to be of type any because the structure is different depending on the provider used.
Type: any
Default: {}
dataproxy_timeout
Description: Variable to set the time when a query times out. This applies to all the Grafana’s data sources and can be manually configured per data source if desired.
Type: number
Default: 30
Outputs
The following outputs are exported:
id
Description: ID to pass other modules in order to refer to this module as a dependency.
grafana_admin_password
Description: The admin password for Grafana.
Reference in table format
Show tables
= Requirements
| Name | Version | 
|---|---|
| >= 5 | |
| >= 2 | |
| >= 3 | |
| >= 3 | |
| >= 1 | 
= Providers
| Name | Version | 
|---|---|
| >= 3 | |
| >= 3 | |
| >= 5 | |
| >= 2 | |
| >= 1 | 
= Resources
| Name | Type | 
|---|---|
| resource | |
| resource | |
| resource | |
| resource | |
| resource | |
| resource | |
| resource | |
| resource | |
| data source | 
= Inputs
| Name | Description | Type | Default | Required | 
|---|---|---|---|---|
| Name given to the cluster. Value used for naming some the resources created by the module. | 
 | n/a | yes | |
| Base domain of the cluster. Value used for the ingress' URL of the application. | 
 | n/a | yes | |
| Subdomain of the cluster. Value used for the ingress' URL of the application. | 
 | 
 | no | |
| Name of the Argo CD AppProject where the Application should be created. If not set, the Application will be created in a new AppProject only for this Application. | 
 | 
 | no | |
| Labels to attach to the Argo CD Application resource. | 
 | 
 | no | |
| Destination cluster where the application should be deployed. | 
 | 
 | no | |
| Override of target revision of the application chart. | 
 | 
 | no | |
| SSL certificate issuer to use. Usually you would configure this value as  | 
 | 
 | no | |
| Helm chart value overrides. They should be passed as a list of HCL structures. | 
 | 
 | no | |
| A boolean flag to enable/disable appending lists instead of overwriting them. | 
 | 
 | no | |
| Automated sync options for the Argo CD Application resource. |  |  | no | |
| n/a | 
 | 
 | no | |
| Grafana settings | 
 | 
 | no | |
| Prometheus settings | 
 | 
 | no | |
| Object containing Alertmanager settings. The following attributes are supported: 
 | 
 | 
 | no | |
| Storage settings for the Thanos sidecar. Needs to be of type  | 
 | 
 | no | |
| Variable to set the time when a query times out. This applies to all the Grafana’s data sources and can be manually configured per data source if desired. | 
 | 
 | no | 
= Outputs
| Name | Description | 
|---|---|
| ID to pass other modules in order to refer to this module as a dependency. | |
| The admin password for Grafana. |