From fd4a0f44a30b8b4b60e96757fc2a37e5d288931f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gon=C3=A7alo=20Heleno?= <33546359+lentidas@users.noreply.github.com> Date: Fri, 8 Sep 2023 14:42:49 +0200 Subject: [PATCH] feat(loki-stack)!: deprecate and remove the loki-stack chart (#95) * feat(loki-stack)!: deprecate and remove the loki-stack chart * docs(terraform-docs): generate docs and write to README.adoc --------- Co-authored-by: lentidas --- README.adoc | 22 +- aks/README.adoc | 22 +- aks/locals.tf | 98 ++---- aks/main.tf | 7 +- charts/loki-stack/Chart.lock | 6 - charts/loki-stack/Chart.yaml | 11 - charts/loki-stack/charts/loki-stack-2.8.9.tgz | Bin 129849 -> 0 bytes .../loki-stack/templates/event_handler.yaml | 121 ------- charts/loki-stack/templates/podmonitor.yaml | 17 - charts/loki-stack/values.yaml | 1 - eks/README.adoc | 22 +- eks/locals.tf | 90 ++--- eks/main.tf | 7 +- kind/README.adoc | 22 +- kind/locals.tf | 88 ++--- kind/main.tf | 7 +- locals.tf | 325 ++++++++---------- main.tf | 2 +- sks/README.adoc | 22 +- sks/locals.tf | 87 ++--- sks/main.tf | 6 +- variables.tf | 8 +- 22 files changed, 298 insertions(+), 693 deletions(-) delete mode 100644 charts/loki-stack/Chart.lock delete mode 100644 charts/loki-stack/Chart.yaml delete mode 100644 charts/loki-stack/charts/loki-stack-2.8.9.tgz delete mode 100644 charts/loki-stack/templates/event_handler.yaml delete mode 100644 charts/loki-stack/templates/podmonitor.yaml delete mode 100644 charts/loki-stack/values.yaml diff --git a/README.adoc b/README.adoc index 60f6270d..7f8002c2 100644 --- a/README.adoc +++ b/README.adoc @@ -62,7 +62,7 @@ Description: Override of target revision of the application chart. Type: `string` -Default: `"v4.0.1"` +Default: `"v4.0.2"` ==== [[input_namespace]] <> @@ -112,14 +112,6 @@ Type: `map(string)` Default: `{}` -==== [[input_distributed_mode]] <> - -Description: Boolean to activate Loki in distributed mode. - -Type: `bool` - -Default: `false` - ==== [[input_ingress]] <> Description: Loki frontend ingress configuration. @@ -146,7 +138,7 @@ Default: `false` ==== [[input_retention]] <> -Description: Logs retention period.To deactivate retention, pass 0s. +Description: Logs retention period. To deactivate retention, pass 0s. Type: `string` @@ -217,7 +209,7 @@ Description: Credentials to access the Loki ingress, if activated. |[[input_target_revision]] <> |Override of target revision of the application chart. |`string` -|`"v4.0.1"` +|`"v4.0.2"` |no |[[input_namespace]] <> @@ -264,12 +256,6 @@ object({ |`{}` |no -|[[input_distributed_mode]] <> -|Boolean to activate Loki in distributed mode. -|`bool` -|`false` -|no - |[[input_ingress]] <> |Loki frontend ingress configuration. | @@ -293,7 +279,7 @@ object({ |no |[[input_retention]] <> -|Logs retention period.To deactivate retention, pass 0s. +|Logs retention period. To deactivate retention, pass 0s. |`string` |`"30d"` |no diff --git a/aks/README.adoc b/aks/README.adoc index 98d6f33b..389ba176 100644 --- a/aks/README.adoc +++ b/aks/README.adoc @@ -77,7 +77,7 @@ Description: Override of target revision of the application chart. Type: `string` -Default: `"v4.0.1"` +Default: `"v4.0.2"` ==== [[input_namespace]] <> @@ -127,14 +127,6 @@ Type: `map(string)` Default: `{}` -==== [[input_distributed_mode]] <> - -Description: Boolean to activate Loki in distributed mode. - -Type: `bool` - -Default: `false` - ==== [[input_ingress]] <> Description: Loki frontend ingress configuration. @@ -161,7 +153,7 @@ Default: `false` ==== [[input_retention]] <> -Description: Logs retention period.To deactivate retention, pass 0s. +Description: Logs retention period. To deactivate retention, pass 0s. Type: `string` @@ -252,7 +244,7 @@ object({ |[[input_target_revision]] <> |Override of target revision of the application chart. |`string` -|`"v4.0.1"` +|`"v4.0.2"` |no |[[input_namespace]] <> @@ -299,12 +291,6 @@ object({ |`{}` |no -|[[input_distributed_mode]] <> -|Boolean to activate Loki in distributed mode. -|`bool` -|`false` -|no - |[[input_ingress]] <> |Loki frontend ingress configuration. | @@ -328,7 +314,7 @@ object({ |no |[[input_retention]] <> -|Logs retention period.To deactivate retention, pass 0s. +|Logs retention period. To deactivate retention, pass 0s. |`string` |`"30d"` |no diff --git a/aks/locals.tf b/aks/locals.tf index 3d1e3563..c5bf3c5c 100644 --- a/aks/locals.tf +++ b/aks/locals.tf @@ -1,7 +1,7 @@ locals { use_managed_identity = var.logs_storage.managed_identity_node_rg_name != null - helm_values = [var.distributed_mode ? { + helm_values = [{ loki-distributed = merge(local.use_managed_identity ? { serviceAccount = { annotations = { @@ -19,8 +19,40 @@ locals { "azure.workload.identity/use" = "true" } } : null, { - schemaConfig = local.schema_config - storageConfig = local.storage_config + schemaConfig = { + configs = [ + { + from = "2020-12-22" + store = "boltdb-shipper" + object_store = "azure" + schema = "v11" + index = { + prefix = "index_" + period = "24h" + } + } + ] + + } + storageConfig = { + azure = merge(local.use_managed_identity ? null : { + account_key = var.logs_storage.storage_account_key + }, local.use_managed_identity ? { + use_federated_token = true + } : null, + { + container_name = var.logs_storage.container + account_name = var.logs_storage.storage_account + request_timeout = "180s" + max_retries = 50 + min_retry_delay = "1s" + max_retry_delay = "5s" + }) + boltdb_shipper = { + shared_store = "azure" + } + + } structuredConfig = { compactor = { shared_store = "azure" @@ -29,63 +61,5 @@ locals { } }) }) - } : null, var.distributed_mode ? null : { - loki-stack = { - loki = merge(local.use_managed_identity ? { - # Current chart version uses loki 2.6.1. - # TODO remove once chart uses a version >= 2.8. - image = { - tag = "2.8.0" - } - serviceAccount = { - annotations = { - "azure.workload.identity/client-id" = azurerm_user_assigned_identity.loki[0].client_id - } - } - podLabels = { - "azure.workload.identity/use" = "true" - } - } : null, { - config = { - schema_config = local.schema_config - storage_config = local.storage_config - } - }) - } - } - ] - - schema_config = { - configs = [ - { - from = "2020-12-22" - store = "boltdb-shipper" - object_store = "azure" - schema = "v11" - index = { - prefix = "index_" - period = "24h" - } - } - ] - } - - storage_config = { - azure = merge(local.use_managed_identity ? null : { - account_key = var.logs_storage.storage_account_key - }, local.use_managed_identity ? { - use_federated_token = true - } : null, - { - container_name = var.logs_storage.container - account_name = var.logs_storage.storage_account - request_timeout = "180s" - max_retries = 50 - min_retry_delay = "1s" - max_retry_delay = "5s" - }) - boltdb_shipper = { - shared_store = "azure" - } - } + }] } diff --git a/aks/main.tf b/aks/main.tf index 4e6deecd..58d4967a 100644 --- a/aks/main.tf +++ b/aks/main.tf @@ -47,10 +47,9 @@ module "loki-stack" { app_autosync = var.app_autosync dependency_ids = var.dependency_ids - retention = var.retention - distributed_mode = var.distributed_mode - ingress = var.ingress - enable_filebeat = var.enable_filebeat + retention = var.retention + ingress = var.ingress + enable_filebeat = var.enable_filebeat helm_values = concat(local.helm_values, var.helm_values) } diff --git a/charts/loki-stack/Chart.lock b/charts/loki-stack/Chart.lock deleted file mode 100644 index bcc89741..00000000 --- a/charts/loki-stack/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: loki-stack - repository: https://grafana.github.io/helm-charts - version: 2.8.9 -digest: sha256:1b7d0902e49fa29427c2b066e4640285c8e986ed8bf3548d7bb978ac05aadff1 -generated: "2023-01-31T10:29:11.218983525+01:00" diff --git a/charts/loki-stack/Chart.yaml b/charts/loki-stack/Chart.yaml deleted file mode 100644 index 5d7fdfc0..00000000 --- a/charts/loki-stack/Chart.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -apiVersion: v2 -name: loki-stack -version: 0 -description: | - This chart installs loki-stack. - Loki is a log aggregation system made by Grafana Labs, and inspired by Prometheus. -dependencies: - - name: loki-stack - version: 2.8.9 - repository: "https://grafana.github.io/helm-charts" diff --git a/charts/loki-stack/charts/loki-stack-2.8.9.tgz b/charts/loki-stack/charts/loki-stack-2.8.9.tgz deleted file mode 100644 index 87010cd898f359c39f3fec96bc07879b4e2e5ce8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 129849 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μKE@{6a7c|PmPulcg{;%MT`Fx9r_ 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� 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 AnE(I) diff --git a/charts/loki-stack/templates/event_handler.yaml b/charts/loki-stack/templates/event_handler.yaml deleted file mode 100644 index bd9736ef..00000000 --- a/charts/loki-stack/templates/event_handler.yaml +++ /dev/null @@ -1,121 +0,0 @@ -{{- with .Values.eventHandler }} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: grafana-agent-eventhandler ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: grafana-agent-eventhandler -rules: -- apiGroups: - - "" - resources: - - events - verbs: - - get - - list - - watch ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: grafana-agent-eventhandler -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: grafana-agent-eventhandler -subjects: -- kind: ServiceAccount - name: grafana-agent-eventhandler - namespace: {{ .namespace }} ---- -apiVersion: v1 -kind: Service -metadata: - name: grafana-agent-eventhandler-svc -spec: - ports: - - port: 12345 - name: http-metrics - clusterIP: None - selector: - name: grafana-agent-eventhandler ---- -kind: ConfigMap -metadata: - name: grafana-agent-eventhandler -apiVersion: v1 -data: - agent.yaml: | - server: - log_level: info - - integrations: - eventhandler: - cache_path: "/etc/eventhandler/eventhandler.cache" - - logs: - configs: - - name: default - clients: - - url: {{ .lokiURL }} - external_labels: - {{- toYaml .labels | nindent 12 }} - positions: - filename: /tmp/positions0.yaml ---- -apiVersion: apps/v1 -kind: StatefulSet -metadata: - name: grafana-agent-eventhandler -spec: - serviceName: "grafana-agent-eventhandler-svc" - selector: - matchLabels: - name: grafana-agent-eventhandler - replicas: 1 - template: - metadata: - labels: - name: grafana-agent-eventhandler - spec: - terminationGracePeriodSeconds: 10 - containers: - - name: agent - image: grafana/agent:{{ .grafanaAgentTag }} - imagePullPolicy: IfNotPresent - args: - - -config.file=/etc/agent/agent.yaml - - -enable-features=integrations-next - - -server.http.address=0.0.0.0:12345 - command: - - /bin/agent - env: - - name: HOSTNAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - ports: - - containerPort: 12345 - name: http-metrics - volumeMounts: - - name: grafana-agent - mountPath: /etc/agent - - name: eventhandler-cache - mountPath: /etc/eventhandler - serviceAccount: grafana-agent-eventhandler - volumes: - - configMap: - name: grafana-agent-eventhandler - name: grafana-agent - volumeClaimTemplates: - - metadata: - name: eventhandler-cache - spec: - accessModes: [ "ReadWriteOnce" ] - resources: - requests: - storage: 1Gi -{{- end }} diff --git a/charts/loki-stack/templates/podmonitor.yaml b/charts/loki-stack/templates/podmonitor.yaml deleted file mode 100644 index dceed712..00000000 --- a/charts/loki-stack/templates/podmonitor.yaml +++ /dev/null @@ -1,17 +0,0 @@ -{{- if index $.Values "loki-stack" "filebeat" "enabled" }} -apiVersion: monitoring.coreos.com/v1 -kind: PodMonitor -metadata: - name: loki-stack-filebeat-metrics - namespace: loki-stack -spec: - namespaceSelector: - matchNames: - - loki-stack - podMetricsEndpoints: - - port: metrics - selector: - matchLabels: - app: loki-stack-filebeat - release: loki-stack -{{- end }} diff --git a/charts/loki-stack/values.yaml b/charts/loki-stack/values.yaml deleted file mode 100644 index ed97d539..00000000 --- a/charts/loki-stack/values.yaml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/eks/README.adoc b/eks/README.adoc index e072019e..af61cbd0 100644 --- a/eks/README.adoc +++ b/eks/README.adoc @@ -59,7 +59,7 @@ Description: Override of target revision of the application chart. Type: `string` -Default: `"v4.0.1"` +Default: `"v4.0.2"` ==== [[input_namespace]] <> @@ -109,14 +109,6 @@ Type: `map(string)` Default: `{}` -==== [[input_distributed_mode]] <> - -Description: Boolean to activate Loki in distributed mode. - -Type: `bool` - -Default: `false` - ==== [[input_ingress]] <> Description: Loki frontend ingress configuration. @@ -143,7 +135,7 @@ Default: `false` ==== [[input_retention]] <> -Description: Logs retention period.To deactivate retention, pass 0s. +Description: Logs retention period. To deactivate retention, pass 0s. Type: `string` @@ -212,7 +204,7 @@ object({ |[[input_target_revision]] <> |Override of target revision of the application chart. |`string` -|`"v4.0.1"` +|`"v4.0.2"` |no |[[input_namespace]] <> @@ -259,12 +251,6 @@ object({ |`{}` |no -|[[input_distributed_mode]] <> -|Boolean to activate Loki in distributed mode. -|`bool` -|`false` -|no - |[[input_ingress]] <> |Loki frontend ingress configuration. | @@ -288,7 +274,7 @@ object({ |no |[[input_retention]] <> -|Logs retention period.To deactivate retention, pass 0s. +|Logs retention period. To deactivate retention, pass 0s. |`string` |`"30d"` |no diff --git a/eks/locals.tf b/eks/locals.tf index 444a227b..30578566 100644 --- a/eks/locals.tf +++ b/eks/locals.tf @@ -1,72 +1,40 @@ locals { - helm_values = [var.distributed_mode ? { + helm_values = [{ loki-distributed = { loki = { - schemaConfig = local.schema_config - storageConfig = local.storage_config + schemaConfig = { + configs = [{ + from = "2020-10-24" + store = "boltdb-shipper" + object_store = "s3" + schema = "v11" + index = { + prefix = "index_" + period = "24h" + } + }] + } + storageConfig = { + aws = { + s3 = "s3://${var.logs_storage.region}/${var.logs_storage.bucket_id}" + } + boltdb_shipper = { + shared_store = "s3" + } + } structuredConfig = { - compactor = local.compactor + compactor = { + working_directory = "/data/compactor" + shared_store = "s3" + } } } - serviceAccount = local.service_account - } - } : null, var.distributed_mode ? null : { - loki-stack = { - loki = { - config = { - ingester = { - lifecycler = { - ring = { - kvstore = { - store = "memberlist" - } - replication_factor = 1 - } - final_sleep = "0s" - } - chunk_idle_period = "5m" - chunk_retain_period = "30s" - } - schema_config = local.schema_config - storage_config = local.storage_config - compactor = local.compactor + serviceAccount = { + create = true + annotations = { + "eks.amazonaws.com/role-arn" = var.logs_storage.iam_role_arn } - serviceAccount = local.service_account } } }] - - schema_config = { - configs = [{ - from = "2020-10-24" - store = "boltdb-shipper" - object_store = "s3" - schema = "v11" - index = { - prefix = "index_" - period = "24h" - } - }] - } - - storage_config = { - aws = { - s3 = "s3://${var.logs_storage.region}/${var.logs_storage.bucket_id}" - } - boltdb_shipper = { - shared_store = "s3" - } - } - - compactor = { - working_directory = "/data/compactor" - shared_store = "s3" - } - - service_account = { - create = true - annotations = { - "eks.amazonaws.com/role-arn" = var.logs_storage.iam_role_arn - } - } } diff --git a/eks/main.tf b/eks/main.tf index a98de3cf..76735964 100644 --- a/eks/main.tf +++ b/eks/main.tf @@ -7,10 +7,9 @@ module "loki-stack" { app_autosync = var.app_autosync dependency_ids = var.dependency_ids - retention = var.retention - distributed_mode = var.distributed_mode - ingress = var.ingress - enable_filebeat = var.enable_filebeat + retention = var.retention + ingress = var.ingress + enable_filebeat = var.enable_filebeat helm_values = concat(local.helm_values, var.helm_values) } diff --git a/kind/README.adoc b/kind/README.adoc index 27d50994..ef06f828 100644 --- a/kind/README.adoc +++ b/kind/README.adoc @@ -61,7 +61,7 @@ Description: Override of target revision of the application chart. Type: `string` -Default: `"v4.0.1"` +Default: `"v4.0.2"` ==== [[input_namespace]] <> @@ -111,14 +111,6 @@ Type: `map(string)` Default: `{}` -==== [[input_distributed_mode]] <> - -Description: Boolean to activate Loki in distributed mode. - -Type: `bool` - -Default: `false` - ==== [[input_ingress]] <> Description: Loki frontend ingress configuration. @@ -145,7 +137,7 @@ Default: `false` ==== [[input_retention]] <> -Description: Logs retention period.To deactivate retention, pass 0s. +Description: Logs retention period. To deactivate retention, pass 0s. Type: `string` @@ -216,7 +208,7 @@ object({ |[[input_target_revision]] <> |Override of target revision of the application chart. |`string` -|`"v4.0.1"` +|`"v4.0.2"` |no |[[input_namespace]] <> @@ -263,12 +255,6 @@ object({ |`{}` |no -|[[input_distributed_mode]] <> -|Boolean to activate Loki in distributed mode. -|`bool` -|`false` -|no - |[[input_ingress]] <> |Loki frontend ingress configuration. | @@ -292,7 +278,7 @@ object({ |no |[[input_retention]] <> -|Logs retention period.To deactivate retention, pass 0s. +|Logs retention period. To deactivate retention, pass 0s. |`string` |`"30d"` |no diff --git a/kind/locals.tf b/kind/locals.tf index c2023cee..3ce1d8c9 100644 --- a/kind/locals.tf +++ b/kind/locals.tf @@ -1,68 +1,40 @@ locals { - helm_values = [var.distributed_mode ? { + helm_values = [{ loki-distributed = { loki = { - schemaConfig = local.schema_config - storageConfig = local.storage_config - structuredConfig = { - compactor = local.compactor - } - } - } - } : null, var.distributed_mode ? null : { - loki_stack = { - loki = { - config = { - ingester = { - lifecycler = { - ring = { - kvstore = { - store = "memberlist" - } - replication_factor = 1 - } - final_sleep = "0s" + schemaConfig = { + configs = [{ + from = "2020-10-24" + store = "boltdb-shipper" + object_store = "aws" + schema = "v11" + index = { + prefix = "index_" + period = "24h" } - chunk_idle_period = "5m" - chunk_retain_period = "30s" + }] + + } + storageConfig = { + aws = { + bucketnames = "${var.logs_storage.bucket_name}" + endpoint = "${var.logs_storage.endpoint}" + access_key_id = "${var.logs_storage.access_key}" + secret_access_key = "${var.logs_storage.secret_key}" + s3forcepathstyle = true + insecure = var.logs_storage.insecure + } + boltdb_shipper = { + shared_store = "aws" + } + } + structuredConfig = { + compactor = { + working_directory = "/data/compactor" + shared_store = "aws" } - schema_config = local.schema_config - storage_config = local.storage_config - compactor = local.compactor } } } }] - - schema_config = { - configs = [{ - from = "2020-10-24" - store = "boltdb-shipper" - object_store = "aws" - schema = "v11" - index = { - prefix = "index_" - period = "24h" - } - }] - } - - storage_config = { - aws = { - bucketnames = "${var.logs_storage.bucket_name}" - endpoint = "${var.logs_storage.endpoint}" - access_key_id = "${var.logs_storage.access_key}" - secret_access_key = "${var.logs_storage.secret_key}" - s3forcepathstyle = true - insecure = var.logs_storage.insecure - } - boltdb_shipper = { - shared_store = "aws" - } - } - - compactor = { - working_directory = "/data/compactor" - shared_store = "aws" - } } diff --git a/kind/main.tf b/kind/main.tf index a98de3cf..76735964 100644 --- a/kind/main.tf +++ b/kind/main.tf @@ -7,10 +7,9 @@ module "loki-stack" { app_autosync = var.app_autosync dependency_ids = var.dependency_ids - retention = var.retention - distributed_mode = var.distributed_mode - ingress = var.ingress - enable_filebeat = var.enable_filebeat + retention = var.retention + ingress = var.ingress + enable_filebeat = var.enable_filebeat helm_values = concat(local.helm_values, var.helm_values) } diff --git a/locals.tf b/locals.tf index 2adce32c..bf8898b8 100644 --- a/locals.tf +++ b/locals.tf @@ -1,62 +1,99 @@ locals { fullnameOverride = "loki" - helm_values = [ - { - eventHandler = { - namespace = var.namespace - lokiURL = var.distributed_mode ? "http://${local.fullnameOverride}-distributor.${var.namespace}:3100/loki/api/v1/push" : "http://${local.fullnameOverride}.${var.namespace}:3100/loki/api/v1/push" - labels = {} - grafanaAgentTag = "main-4f86002" - } - }, - { - frontendIngress = var.ingress != null ? { - lokiCredentials = base64encode("loki:${htpasswd_password.loki_password_hash.0.bcrypt}") - hosts = var.ingress.hosts - clusterIssuer = var.ingress.cluster_issuer - allowedIPs = var.ingress.allowed_ips - serviceName = "${local.fullnameOverride}-query-frontend" - } : null - }, - var.distributed_mode ? merge({ - datasourceURL = "http://${local.fullnameOverride}-query-frontend.${var.namespace}:3100" - loki-distributed = { - fullnameOverride = local.fullnameOverride - compactor = { + helm_values = [{ + eventHandler = { + namespace = var.namespace + lokiURL = "http://${local.fullnameOverride}-distributor.${var.namespace}:3100/loki/api/v1/push" + labels = {} + grafanaAgentTag = "main-4f86002" + } + frontendIngress = var.ingress != null ? { + lokiCredentials = base64encode("loki:${htpasswd_password.loki_password_hash.0.bcrypt}") + hosts = var.ingress.hosts + clusterIssuer = var.ingress.cluster_issuer + allowedIPs = var.ingress.allowed_ips + serviceName = "${local.fullnameOverride}-query-frontend" + } : null + datasourceURL = "http://${local.fullnameOverride}-query-frontend.${var.namespace}:3100" + loki-distributed = { + fullnameOverride = local.fullnameOverride + compactor = { + enabled = true + persistence = { enabled = true - persistence = { - enabled = true - } } - gateway = { - enabled = false + } + gateway = { + enabled = false + } + indexGateway = { + enabled = true + persistence = { + enabled = true } - indexGateway = { + } + # TODO ingester HA + ingester = { + persistence = { enabled = true - persistence = { - enabled = true - } } - # TODO ingester HA - ingester = { - persistence = { - enabled = true + replicas = 3 + maxUnavailable = 1 + affinity = "" + } + loki = { + structuredConfig = { + common = { + compactor_address = "http://${local.fullnameOverride}-compactor:3100" } - replicas = 3 - maxUnavailable = 1 - affinity = "" - } - loki = { - structuredConfig = { - common = { - compactor_address = "http://${local.fullnameOverride}-compactor:3100" + ruler = { + alertmanager_url = "http://kube-prometheus-stack-alertmanager.kube-prometheus-stack:9093" + } + chunk_store_config = { + chunk_cache_config = { + memcached = { + expiration = "24h" + } + memcached_client = { + service = "memcached-client" + timeout = "500ms" + } } - ruler = { - alertmanager_url = "http://kube-prometheus-stack-alertmanager.kube-prometheus-stack:9093" + } + compactor = { + retention_enabled = true + } + ingester = { + lifecycler = { + ring = { + replication_factor = 3 + } } - chunk_store_config = { - chunk_cache_config = { + wal = { + replay_memory_ceiling = "500MB" + flush_on_shutdown = true + } + } + limits_config = { + ingestion_rate_mb = 10 + max_chunks_per_query = 0 + max_entries_limit_per_query = 0 + max_query_length = var.retention + max_query_parallelism = 6 + per_stream_rate_limit = "10MB" + retention_period = var.retention + } + querier = { + max_concurrent = 2 + query_timeout = "5m" + } + query_range = { + cache_results = true + max_retries = 50 + parallelise_shardable_queries = false + results_cache = { + cache = { memcached = { expiration = "24h" } @@ -66,113 +103,70 @@ locals { } } } - compactor = { - retention_enabled = true - } - ingester = { - lifecycler = { - ring = { - replication_factor = 3 - } - } - wal = { - replay_memory_ceiling = "500MB" - flush_on_shutdown = true - } - } - limits_config = { - ingestion_rate_mb = 10 - max_chunks_per_query = 0 - max_entries_limit_per_query = 0 - max_query_length = var.retention - max_query_parallelism = 6 - per_stream_rate_limit = "10MB" - retention_period = var.retention - } - querier = { - max_concurrent = 2 - query_timeout = "5m" - } - query_range = { - cache_results = true - max_retries = 50 - parallelise_shardable_queries = false - results_cache = { - cache = { - memcached = { - expiration = "24h" - } - memcached_client = { - service = "memcached-client" - timeout = "500ms" - } - } + } + server = { + grpc_server_max_recv_msg_size = 33554432 + grpc_server_max_send_msg_size = 33554432 + http_server_read_timeout = "180s" + http_server_write_timeout = "180s" + } + storage_config = { + boltdb_shipper = { + index_gateway_client = { + log_gateway_requests = true } } - server = { - grpc_server_max_recv_msg_size = 33554432 - grpc_server_max_send_msg_size = 33554432 - http_server_read_timeout = "180s" - http_server_write_timeout = "180s" - } - storage_config = { - boltdb_shipper = { - index_gateway_client = { - log_gateway_requests = true - } + index_queries_cache_config = { + memcached = { + expiration = "24h" } - index_queries_cache_config = { - memcached = { - expiration = "24h" - } - memcached_client = { - service = "memcached-client" - timeout = "500ms" - } + memcached_client = { + service = "memcached-client" + timeout = "500ms" } } } } - memcachedChunks = { - enabled = true - } - memcachedFrontend = { - enabled = true - } - memcachedIndexQueries = { - enabled = true - } - queryScheduler = { - enabled = true - affinity = "" - } - querier = { - affinity = "" - replicas = 4 - maxUnavailable = 2 - } - ruler = { - directories = {} - enabled = false - } } - promtail = { - tolerations = [ - { - operator = "Exists" - effect = "NoSchedule" - } - ] - config = { - clients = [{ - url = "http://${local.fullnameOverride}-distributor.${var.namespace}:3100/loki/api/v1/push" - }] + memcachedChunks = { + enabled = true + } + memcachedFrontend = { + enabled = true + } + memcachedIndexQueries = { + enabled = true + } + queryScheduler = { + enabled = true + affinity = "" + } + querier = { + affinity = "" + replicas = 4 + maxUnavailable = 2 + } + ruler = { + directories = {} + enabled = false + } + } + promtail = { + tolerations = [ + { + operator = "Exists" + effect = "NoSchedule" } + ] + config = { + clients = [{ + url = "http://${local.fullnameOverride}-distributor.${var.namespace}:3100/loki/api/v1/push" + }] } - }, { - filebeat = { - enabled = var.enable_filebeat - extraContainers = <<-EOT + } + filebeat = { + enabled = var.enable_filebeat + extraContainers = <<-EOT - name: filebeat-prometheus-exporter image: "trustpilot/beat-exporter:0.4.0" ports: @@ -180,45 +174,6 @@ locals { protocol: TCP name: metrics EOT - } - }) : null, - var.distributed_mode ? null : { - loki-stack = { - loki = { - fullnameOverride = local.fullnameOverride - serviceName = "${local.fullnameOverride}.${var.namespace}" - # TODO serviceMonitor is a KPS CRD, manage this circular dependency - serviceMonitor = { - enabled = true - } - isDefault = false - } - promtail = { - config = { - clients = [ - { - url = "http://${local.fullnameOverride}:3100/loki/api/v1/push" - } - ] - } - # Same previous comment - serviceMonitor = { - enabled = true - } - # TODO check next block's indentation - # TODO check possible factorization of the following block, also added to Loki µsvcy - filebeat = { - extraContainers = <<-EOT - - name: filebeat-prometheus-exporter - image: "trustpilot/beat-exporter:0.4.0" - ports: - - containerPort: 9479 - protocol: TCP - name: metrics - EOT - } - } - } } - ] + }] } diff --git a/main.tf b/main.tf index e0bc54bd..2ea86d98 100644 --- a/main.tf +++ b/main.tf @@ -63,7 +63,7 @@ resource "argocd_application" "this" { source { repo_url = "https://github.com/camptocamp/devops-stack-module-loki-stack.git" - path = format("charts/%s", var.distributed_mode ? "loki-microservice" : "loki-stack") + path = "charts/loki-microservice" target_revision = var.target_revision helm { values = data.utils_deep_merge_yaml.values.output diff --git a/sks/README.adoc b/sks/README.adoc index 8b3b68b5..f68382c8 100644 --- a/sks/README.adoc +++ b/sks/README.adoc @@ -162,7 +162,7 @@ Description: Override of target revision of the application chart. Type: `string` -Default: `"v4.0.1"` +Default: `"v4.0.2"` ==== [[input_namespace]] <> @@ -212,14 +212,6 @@ Type: `map(string)` Default: `{}` -==== [[input_distributed_mode]] <> - -Description: Boolean to activate Loki in distributed mode. - -Type: `bool` - -Default: `false` - ==== [[input_ingress]] <> Description: Loki frontend ingress configuration. @@ -246,7 +238,7 @@ Default: `false` ==== [[input_retention]] <> -Description: Logs retention period.To deactivate retention, pass 0s. +Description: Logs retention period. To deactivate retention, pass 0s. Type: `string` @@ -328,7 +320,7 @@ object({ |[[input_target_revision]] <> |Override of target revision of the application chart. |`string` -|`"v4.0.1"` +|`"v4.0.2"` |no |[[input_namespace]] <> @@ -375,12 +367,6 @@ object({ |`{}` |no -|[[input_distributed_mode]] <> -|Boolean to activate Loki in distributed mode. -|`bool` -|`false` -|no - |[[input_ingress]] <> |Loki frontend ingress configuration. | @@ -404,7 +390,7 @@ object({ |no |[[input_retention]] <> -|Logs retention period.To deactivate retention, pass 0s. +|Logs retention period. To deactivate retention, pass 0s. |`string` |`"30d"` |no diff --git a/sks/locals.tf b/sks/locals.tf index a31eaa40..fddb0cd2 100644 --- a/sks/locals.tf +++ b/sks/locals.tf @@ -1,71 +1,42 @@ locals { - helm_values = [var.distributed_mode ? { + helm_values = [{ loki-distributed = { global = { clusterDomain = "${var.cluster_id}.cluster.local" } loki = { - schemaConfig = local.schema_config - storageConfig = local.storage_config - structuredConfig = { - compactor = local.compactor - } - } - } - } : null, var.distributed_mode ? null : { - loki_stack = { - loki = { - config = { - ingester = { - lifecycler = { - ring = { - kvstore = { - store = "memberlist" - } - replication_factor = 1 - } - final_sleep = "0s" + schemaConfig = { + configs = [{ + from = "2020-10-24" + store = "boltdb-shipper" + object_store = "s3" + schema = "v11" + index = { + prefix = "index_" + period = "24h" } - chunk_idle_period = "5m" - chunk_retain_period = "30s" + }] + } + storageConfig = { + aws = { + bucketnames = "${var.logs_storage.bucket_name}" + region = "${var.logs_storage.region}" + endpoint = "sos-${var.logs_storage.region}.exo.io" + access_key_id = "${var.logs_storage.access_key}" + secret_access_key = "${var.logs_storage.secret_key}" + s3forcepathstyle = true + } + boltdb_shipper = { + shared_store = "s3" + } + } + structuredConfig = { + compactor = { + working_directory = "/data/compactor" + shared_store = "s3" } - schema_config = local.schema_config - storage_config = local.storage_config - compactor = local.compactor } } } }] - - schema_config = { - configs = [{ - from = "2020-10-24" - store = "boltdb-shipper" - object_store = "s3" - schema = "v11" - index = { - prefix = "index_" - period = "24h" - } - }] - } - - storage_config = { - aws = { - bucketnames = "${var.logs_storage.bucket_name}" - region = "${var.logs_storage.region}" - endpoint = "sos-${var.logs_storage.region}.exo.io" - access_key_id = "${var.logs_storage.access_key}" - secret_access_key = "${var.logs_storage.secret_key}" - s3forcepathstyle = true - } - boltdb_shipper = { - shared_store = "s3" - } - } - - compactor = { - working_directory = "/data/compactor" - shared_store = "s3" - } } diff --git a/sks/main.tf b/sks/main.tf index d0990f8d..76735964 100644 --- a/sks/main.tf +++ b/sks/main.tf @@ -7,9 +7,9 @@ module "loki-stack" { app_autosync = var.app_autosync dependency_ids = var.dependency_ids - distributed_mode = var.distributed_mode - ingress = var.ingress - enable_filebeat = var.enable_filebeat + retention = var.retention + ingress = var.ingress + enable_filebeat = var.enable_filebeat helm_values = concat(local.helm_values, var.helm_values) } diff --git a/variables.tf b/variables.tf index 834a0fe4..ff3f0618 100644 --- a/variables.tf +++ b/variables.tf @@ -50,12 +50,6 @@ variable "dependency_ids" { ## Module variables ####################### -variable "distributed_mode" { - description = "Boolean to activate Loki in distributed mode." - type = bool - default = false -} - variable "ingress" { description = "Loki frontend ingress configuration." type = object({ @@ -73,7 +67,7 @@ variable "enable_filebeat" { } variable "retention" { - description = "Logs retention period.To deactivate retention, pass 0s." + description = "Logs retention period. To deactivate retention, pass 0s." type = string default = "30d"