Resources
The following resources are used by this module:
-
azurerm_federated_identity_credential.loki (resource)
-
azurerm_role_assignment.storage_contributor (resource)
-
azurerm_user_assigned_identity.loki (resource)
-
null_resource.dependencies (resource)
-
azurerm_resource_group.node_resource_group (data source)
-
azurerm_storage_container.container (data source)
Required Inputs
The following input variables are required:
logs_storage
Description: Azure Blob Storage configuration for logs persistence.
Type:
object({
container = string
storage_account = string
managed_identity_node_rg_name = optional(string, null)
managed_identity_oidc_issuer_url = optional(string, null)
storage_account_key = optional(string, null)
})
Optional Inputs
The following input variables are optional (have default values):
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: "v7.1.0"
helm_values
Description: Helm chart value overrides. They should be passed as a list of HCL structures.
Type: any
Default: []
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
}
dependency_ids
Description: IDs of the other modules on which this module depends on.
Type: map(string)
Default: {}
resources
Description: Resource limits and requests for Loki’s components. Follow the style on official documentation to understand the format of the values.
These are not production values. You should always adjust them to your needs. |
Type:
object({
ingester = optional(object({
requests = optional(object({
cpu = optional(string, "100m")
memory = optional(string, "256Mi")
}), {})
limits = optional(object({
cpu = optional(string)
memory = optional(string, "512Mi")
}), {})
}), {})
distributor = optional(object({
requests = optional(object({
cpu = optional(string, "100m")
memory = optional(string, "256Mi")
}), {})
limits = optional(object({
cpu = optional(string)
memory = optional(string, "512Mi")
}), {})
}), {})
querier = optional(object({
requests = optional(object({
cpu = optional(string, "100m")
memory = optional(string, "256Mi")
}), {})
limits = optional(object({
cpu = optional(string)
memory = optional(string, "512Mi")
}), {})
}), {})
query_frontend = optional(object({
requests = optional(object({
cpu = optional(string, "100m")
memory = optional(string, "256Mi")
}), {})
limits = optional(object({
cpu = optional(string)
memory = optional(string, "512Mi")
}), {})
}), {})
query_scheduler = optional(object({
requests = optional(object({
cpu = optional(string, "100m")
memory = optional(string, "256Mi")
}), {})
limits = optional(object({
cpu = optional(string)
memory = optional(string, "512Mi")
}), {})
}), {})
compactor = optional(object({
requests = optional(object({
cpu = optional(string, "100m")
memory = optional(string, "512Mi")
}), {})
limits = optional(object({
cpu = optional(string)
memory = optional(string, "1Gi")
}), {})
}), {})
index_gateway = optional(object({
requests = optional(object({
cpu = optional(string, "100m")
memory = optional(string, "256Mi")
}), {})
limits = optional(object({
cpu = optional(string)
memory = optional(string, "1Gi")
}), {})
}), {})
memcached_chunks = optional(object({
requests = optional(object({
cpu = optional(string, "100m")
memory = optional(string, "256Mi")
}), {})
limits = optional(object({
cpu = optional(string)
memory = optional(string, "512Mi")
}), {})
}), {})
memcached_frontend = optional(object({
requests = optional(object({
cpu = optional(string, "100m")
memory = optional(string, "256Mi")
}), {})
limits = optional(object({
cpu = optional(string)
memory = optional(string, "512Mi")
}), {})
}), {})
memcached_index_queries = optional(object({
requests = optional(object({
cpu = optional(string, "100m")
memory = optional(string, "256Mi")
}), {})
limits = optional(object({
cpu = optional(string)
memory = optional(string, "512Mi")
}), {})
}), {})
memcached_index_writes = optional(object({
requests = optional(object({
cpu = optional(string, "100m")
memory = optional(string, "256Mi")
}), {})
limits = optional(object({
cpu = optional(string)
memory = optional(string, "512Mi")
}), {})
}), {})
promtail = optional(object({
requests = optional(object({
cpu = optional(string, "100m")
memory = optional(string, "256Mi")
}), {})
limits = optional(object({
cpu = optional(string)
memory = optional(string, "512Mi")
}), {})
}), {})
grafana_eventhandler = optional(object({
requests = optional(object({
cpu = optional(string, "100m")
memory = optional(string, "128Mi")
}), {})
limits = optional(object({
cpu = optional(string)
memory = optional(string, "256Mi")
}), {})
}), {})
})
Default: {}
ingress
Description: Loki frontend ingress configuration.
Type:
object({
hosts = list(string)
cluster_issuer = string
allowed_ips = optional(list(string), [])
})
Default: null
retention
Description: Logs retention period. To deactivate retention, pass 0s.
Type: string
Default: "30d"
Outputs
The following outputs are exported:
id
Description: ID to pass other modules in order to refer to this module as a dependency.
Providers
Name | Version |
---|---|
>= 3 |
|
n/a |
Modules
Name | Source | Version |
---|---|---|
Resources
Name | Type |
---|---|
resource |
|
resource |
|
resource |
|
resource |
|
data source |
|
data source |
Inputs
Name | Description | Type | Default | Required | ||
---|---|---|---|---|---|---|
Azure Blob Storage configuration for logs persistence. |
|
n/a |
yes |
|||
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 |
|||
Helm chart value overrides. They should be passed as a list of HCL structures. |
|
|
no |
|||
Automated sync options for the Argo CD Application resource. |
|
|
no |
|||
IDs of the other modules on which this module depends on. |
|
|
no |
|||
Resource limits and requests for Loki’s components. Follow the style on official documentation to understand the format of the values.
|
|
|
no |
|||
Loki frontend ingress configuration. |
|
|
no |
|||
Logs retention period. To deactivate retention, pass 0s. |
|
|
no |
Outputs
Name | Description |
---|---|
ID to pass other modules in order to refer to this module as a dependency. |
|
Credentials to access the Loki ingress, if activated. |