The following requirements are needed by this module:
-
argocd (>= 6)
-
kubernetes (>= 2)
-
null (>= 3)
-
random (>= 3)
-
utils (>= 1)
The following Modules are called:
Source: terraform-aws-modules/iam/aws//modules/iam-assumable-role-with-oidc
Version: ~> 5.0
The following resources are used by this module:
-
aws_iam_policy.kube_prometheus_stack (resource)
-
aws_iam_policy_document.kube_prometheus_stack (data source)
-
aws_s3_bucket.kube_prometheus_stack (data source)
The following input variables are required:
Description: Name given to the cluster. Value used for naming some the resources created by the module.
Type: string
Description: Base domain of the cluster. Value used for the ingress' URL of the application.
Type: string
The following input variables are optional (have default values):
Description: AWS S3 bucket configuration values for the bucket where the archived metrics will be stored.
Type:
object({
bucket_id = string
create_role = bool
iam_role_arn = optional(string, null)
cluster_oidc_issuer_url = optional(string, null)
})
Default: null
Description: Subdomain of the cluster. Value used for the ingress' URL of the application.
Type: string
Default: "apps"
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
Description: Labels to attach to the Argo CD Application resource.
Type: map(string)
Default: {}
Description: Destination cluster where the application should be deployed.
Type: string
Default: "in-cluster"
Description: Override of target revision of the application chart.
Type: string
Default: "v13.0.0"
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"
Description: Helm chart value overrides. They should be passed as a list of HCL structures.
Type: any
Default: []
Description: A boolean flag to enable/disable appending lists instead of overwriting them.
Type: bool
Default: false
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
}
Description: Resource limits and requests for kube-prometheus-stack’s components. Follow the style on official documentation to understand the format of the values.
Important
|
These are not production values. You should always adjust them to your needs. |
Type:
object({
prometheus = optional(object({
requests = optional(object({
cpu = optional(string, "250m")
memory = optional(string, "512Mi")
}), {})
limits = optional(object({
cpu = optional(string)
memory = optional(string, "1024Mi")
}), {})
}), {})
prometheus_operator = optional(object({
requests = optional(object({
cpu = optional(string, "50m")
memory = optional(string, "128Mi")
}), {})
limits = optional(object({
cpu = optional(string)
memory = optional(string, "128Mi")
}), {})
}), {})
thanos_sidecar = optional(object({
requests = optional(object({
cpu = optional(string, "100m")
memory = optional(string, "256Mi")
}), {})
limits = optional(object({
cpu = optional(string)
memory = optional(string, "512Mi")
}), {})
}), {})
alertmanager = optional(object({
requests = optional(object({
cpu = optional(string, "50m")
memory = optional(string, "128Mi")
}), {})
limits = optional(object({
cpu = optional(string)
memory = optional(string, "256Mi")
}), {})
}), {})
kube_state_metrics = optional(object({
requests = optional(object({
cpu = optional(string, "50m")
memory = optional(string, "128Mi")
}), {})
limits = optional(object({
cpu = optional(string)
memory = optional(string, "128Mi")
}), {})
}), {})
grafana = optional(object({
requests = optional(object({
cpu = optional(string, "250m")
memory = optional(string, "512Mi")
}), {})
limits = optional(object({
cpu = optional(string)
memory = optional(string, "512Mi")
}), {})
}), {})
node_exporter = optional(object({
requests = optional(object({
cpu = optional(string, "50m")
memory = optional(string, "128Mi")
}), {})
limits = optional(object({
cpu = optional(string)
memory = optional(string, "128Mi")
}), {})
}), {})
})
Default: {}
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: {}
Description: Storage settings for the Thanos sidecar. Needs to be of type any
because the structure is different depending on the variant used.
Type: any
Default: {}
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
The following outputs are exported:
Description: ID to pass other modules in order to refer to this module as a dependency.
Description: The admin password for Grafana. = Requirements
Name | Version |
---|---|
>= 6 |
|
>= 2 |
|
>= 3 |
|
>= 3 |
|
>= 1 |
Name | Version |
---|---|
n/a |
Name | Source | Version |
---|---|---|
terraform-aws-modules/iam/aws//modules/iam-assumable-role-with-oidc |
~> 5.0 |
|
Name | Type |
---|---|
resource |
|
data source |
|
data source |
Name | Description | Type | Default | Required | ||
---|---|---|---|---|---|---|
AWS S3 bucket configuration values for the bucket where the archived metrics will be stored. |
|
|
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 |
|||
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 |
|||
Resource limits and requests for kube-prometheus-stack’s components. Follow the style on official documentation to understand the format of the values.
|
|
|
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 |
Name | Description |
---|---|
ID to pass other modules in order to refer to this module as a dependency. |
|
The admin password for Grafana. |