Requirements
The following requirements are needed by this module:
-
argocd (>= 5)
-
kubernetes (>= 2)
-
null (>= 3)
-
random (>= 3)
-
utils (>= 1)
Resources
The following resources are used by this module:
-
azurerm_role_assignment.contributor (resource)
-
azurerm_user_assigned_identity.prometheus (resource)
-
azurerm_resource_group.node (data source)
-
azurerm_storage_container.container (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):
metrics_storage
Description: Azure Blob Storage configuration for metric archival.
Type:
object({
container = string
storage_account = string
managed_identity_node_rg_name = optional(string, null)
storage_account_key = optional(string, null)
})
Default: null
argocd_namespace
Description: Namespace used by Argo CD where the Application and AppProject resources should be created.
Type: string
Default: "argocd"
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: "v8.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: "ca-issuer"
namespace
Description: Namespace where the applications’s Kubernetes resources should be created. Namespace will be created in case it doesn’t exist.
Type: string
Default: "kube-prometheus-stack"
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.
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: {}
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. = Requirements
Name | Version |
---|---|
>= 5 |
|
>= 2 |
|
>= 3 |
|
>= 3 |
|
>= 1 |
Providers
Name | Version |
---|---|
n/a |
Modules
Name | Source | Version |
---|---|---|
Resources
Name | Type |
---|---|
resource |
|
resource |
|
data source |
|
data source |
Inputs
Name | Description | Type | Default | Required |
---|---|---|---|---|
Azure Blob Storage configuration for metric archival. |
|
|
no |
|
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 |
|
Namespace used by Argo CD where the Application and AppProject resources should be created. |
|
|
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 |
|
Namespace where the applications’s Kubernetes resources should be created. Namespace will be created in case it doesn’t exist. |
|
|
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 |
Outputs
Name | Description |
---|---|
ID to pass other modules in order to refer to this module as a dependency. |
|
The admin password for Grafana. |