From 8a814a509a4278faedf00d75fad43b72dc027321 Mon Sep 17 00:00:00 2001 From: "Matthew C. Morgan" Date: Wed, 19 Feb 2025 21:59:41 -0500 Subject: [PATCH 01/11] fix(loki-read): add persistence settings for read --- .tflint.hcl | 26 +++++++++++++------------- README.md | 6 +++--- main.tf | 9 ++++++++- 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/.tflint.hcl b/.tflint.hcl index 684d807..ab8ea66 100644 --- a/.tflint.hcl +++ b/.tflint.hcl @@ -4,18 +4,18 @@ config { disabled_by_default = false } -rule "aws_instance_invalid_type" { - enabled = true -} +# rule "aws_instance_invalid_type" { +# enabled = true +# } -plugin "aws" { - enabled = true - version = "0.32.0" - source = "github.com/terraform-linters/tflint-ruleset-aws" -} +# plugin "aws" { +# enabled = true +# version = "0.32.0" +# source = "github.com/terraform-linters/tflint-ruleset-aws" +# } -plugin "terraform" { - enabled = true - version = "0.9.0" - source = "github.com/terraform-linters/tflint-ruleset-terraform" -} +# plugin "terraform" { +# enabled = true +# version = "0.9.0" +# source = "github.com/terraform-linters/tflint-ruleset-terraform" +# } diff --git a/README.md b/README.md index f6b633b..3e59fc6 100644 --- a/README.md +++ b/README.md @@ -25,9 +25,9 @@ to loki. | Name | Version | |------|---------| -| [aws](#provider\_aws) | 5.73.0 | -| [helm](#provider\_helm) | 2.16.1 | -| [kubernetes](#provider\_kubernetes) | 2.33.0 | +| [aws](#provider\_aws) | 5.87.0 | +| [helm](#provider\_helm) | 2.17.0 | +| [kubernetes](#provider\_kubernetes) | 2.35.1 | ## Modules diff --git a/main.tf b/main.tf index 5fe7ce2..29e28a9 100644 --- a/main.tf +++ b/main.tf @@ -215,7 +215,14 @@ resource "helm_release" "loki" { name = "backend.persistence.storageClass" value = var.rwo_storage_class } - + set { + name = "read.persistence.enabled" + value = true + } + set { + name = "read.persistence.storageClass" + value = var.rwo_storage_class + } ##### AutoScaling ##### set { name = "write.autoscaling.enabled" From 1ffded8a67e34c38db7f0d98ed2d0aec347dc4bf Mon Sep 17 00:00:00 2001 From: "Matthew C. Morgan" Date: Thu, 20 Feb 2025 13:02:18 -0500 Subject: [PATCH 02/11] lower timeout --- main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.tf b/main.tf index 29e28a9..0e3de78 100644 --- a/main.tf +++ b/main.tf @@ -69,7 +69,7 @@ resource "helm_release" "loki" { name = "loki" namespace = local.ns repository = "https://grafana.github.io/helm-charts" - timeout = 900 + timeout = 60 wait = true ##### Globals ##### From 983d1b5c5acc9f441b68b89c00919e465854162b Mon Sep 17 00:00:00 2001 From: "Matthew C. Morgan" Date: Thu, 20 Feb 2025 21:28:02 -0500 Subject: [PATCH 03/11] add more resource limits --- README.md | 2 - main.tf | 103 ++++++++++++++++++++++++++++++++++++++++++++------- variables.tf | 6 --- 3 files changed, 89 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index 3e59fc6..e02ee99 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,6 @@ to loki. | [kubernetes_namespace.ns](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/resources/namespace) | resource | | [aws_caller_identity.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/caller_identity) | data source | | [aws_s3_bucket.s3_server_access_logs](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/s3_bucket) | data source | -| [kubernetes_namespace.existing_ns](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs/data-sources/namespace) | data source | ## Inputs @@ -53,7 +52,6 @@ to loki. |------|-------------|------|---------|:--------:| | [canary\_tag](#input\_canary\_tag) | The tag of the grafana/loki-canary image to use. | `string` | `"3.0.0"` | no | | [cluster\_name](#input\_cluster\_name) | EKS cluster name name component used through out the EKS cluster describing its purpose (ex: dice-dev) | `string` | n/a | yes | -| [create\_namespace](#input\_create\_namespace) | Indicates whether the `namespace` needs to be created ('true') or already exists (not `true`) | `string` | `"true"` | no | | [enterprise\_logs\_provisioner\_tag](#input\_enterprise\_logs\_provisioner\_tag) | The version of the grafana/enterprise-logs-provisioner image to use. | `string` | `"v1.7.0"` | no | | [exporter\_tag](#input\_exporter\_tag) | The version of prom/memcached-exporter to use for the gateway. | `string` | `"v0.14.4"` | no | | [gateway\_tag](#input\_gateway\_tag) | The version of nginxinc/nginx-unprivileged to use for the gateway. | `string` | `"1.25.2-alpine"` | no | diff --git a/main.tf b/main.tf index 0e3de78..4128316 100644 --- a/main.tf +++ b/main.tf @@ -5,8 +5,6 @@ locals { } resource "kubernetes_namespace" "ns" { - count = var.create_namespace == "true" ? 1 : 0 - metadata { name = var.namespace labels = { @@ -15,14 +13,6 @@ resource "kubernetes_namespace" "ns" { } } -data "kubernetes_namespace" "existing_ns" { - count = var.create_namespace == "true" ? 0 : 1 - - metadata { - name = var.namespace - } -} - locals { tags = merge({ "boc:eks-cluster-name" = var.cluster_name @@ -32,7 +22,6 @@ locals { CostAllocation = var.tag_costallocation }, var.tags) - ns = try(kubernetes_namespace.ns[0].metadata[0].name, data.kubernetes_namespace.existing_ns[0].metadata[0].name) } module "loki_irsa_role" { @@ -41,7 +30,7 @@ module "loki_irsa_role" { # tflint-ignore: terraform_module_pinned_source source = "git@github.e.it.census.gov:SCT-Engineering/tfmod-custom-iam-role-for-service-account-eks.git" - role_name = "${var.cluster_name}-loki" + role_name = "r-${var.cluster_name}-loki" attach_s3_bucket_owner_policy = true attach_encrypted_object_manager_policy = true @@ -67,10 +56,9 @@ resource "helm_release" "loki" { chart = "loki" version = var.loki_chart_version name = "loki" - namespace = local.ns + namespace = kubernetes_namespace.ns[0].name repository = "https://grafana.github.io/helm-charts" timeout = 60 - wait = true ##### Globals ##### set { @@ -253,6 +241,93 @@ resource "helm_release" "loki" { value = true } + ##### Resource Limits ##### + # Write + set { + name = "write.resources.requests.cpu" + value = "100m" + } + set { + name = "write.resources.requests.memory" + value = "128Mi" + } + set { + name = "write.resources.limits.cpu" + value = "1000m" + } + set { + name = "write.resources.limits.memory" + value = "1Gi" + } + # Read + set { + name = "read.resources.requests.cpu" + value = "100m" + } + set { + name = "read.resources.requests.memory" + value = "128Mi" + } + set { + name = "read.resources.limits.cpu" + value = "1000m" + } + set { + name = "read.resources.limits.memory" + value = "1Gi" + } + # Backend + set { + name = "backend.resources.requests.cpu" + value = "100m" + } + set { + name = "backend.resources.requests.memory" + value = "128Mi" + } + set { + name = "backend.resources.limits.cpu" + value = "1000m" + } + set { + name = "backend.resources.limits.memory" + value = "1Gi" + } + # Gateway + set { + name = "gateway.resources.requests.cpu" + value = "50m" + } + set { + name = "gateway.resources.requests.memory" + value = "64Mi" + } + set { + name = "gateway.resources.limits.cpu" + value = "500m" + } + set { + name = "gateway.resources.limits.memory" + value = "512Mi" + } + # Compactor + set { + name = "compactor.resources.requests.cpu" + value = "100m" + } + set { + name = "compactor.resources.requests.memory" + value = "128Mi" + } + set { + name = "compactor.resources.limits.cpu" + value = "500m" + } + set { + name = "compactor.resources.limits.memory" + value = "512Mi" + } + ##### Schema Config ##### set { name = "loki.schemaConfig.configs[0].from" diff --git a/variables.tf b/variables.tf index 31e18bb..650fac4 100644 --- a/variables.tf +++ b/variables.tf @@ -32,12 +32,6 @@ variable "namespace" { default = "loki" } -variable "create_namespace" { - description = "Indicates whether the `namespace` needs to be created ('true') or already exists (not `true`)" - type = string - default = "true" -} - variable "oidc_provider_arn" { description = "The ARN in the EKS cluster for the OpenID Connect identity provider." type = string From 35d9375988e7c5d3f24958fa983c3d98466b8548 Mon Sep 17 00:00:00 2001 From: "Matthew C. Morgan" Date: Thu, 20 Feb 2025 21:34:27 -0500 Subject: [PATCH 04/11] match ns pattern from other modules --- main.tf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/main.tf b/main.tf index 4128316..b8071e7 100644 --- a/main.tf +++ b/main.tf @@ -1,5 +1,5 @@ locals { - gateway_internal_hostname = format("loki-gateway.%v.svc.cluster.local", local.ns) + gateway_internal_hostname = format("loki-gateway.%v.svc.cluster.local", kubernetes_namespace.ns.metadata[0].name) gateway_internal_port_number = "80" gateway_internal_url = format("http://%v:%v/", local.gateway_internal_hostname, local.gateway_internal_port_number) } @@ -56,7 +56,7 @@ resource "helm_release" "loki" { chart = "loki" version = var.loki_chart_version name = "loki" - namespace = kubernetes_namespace.ns[0].name + namespace = kubernetes_namespace.ns.metadata[0].name repository = "https://grafana.github.io/helm-charts" timeout = 60 From 64eb4ccb98af34743e7d12f8117f257e97345860 Mon Sep 17 00:00:00 2001 From: "Matthew C. Morgan" Date: Thu, 20 Feb 2025 22:12:48 -0500 Subject: [PATCH 05/11] requests nt limits --- main.tf | 80 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/main.tf b/main.tf index b8071e7..14a6275 100644 --- a/main.tf +++ b/main.tf @@ -251,14 +251,14 @@ resource "helm_release" "loki" { name = "write.resources.requests.memory" value = "128Mi" } - set { - name = "write.resources.limits.cpu" - value = "1000m" - } - set { - name = "write.resources.limits.memory" - value = "1Gi" - } + # set { + # name = "write.resources.limits.cpu" + # value = "1000m" + # } + # set { + # name = "write.resources.limits.memory" + # value = "1Gi" + # } # Read set { name = "read.resources.requests.cpu" @@ -268,14 +268,14 @@ resource "helm_release" "loki" { name = "read.resources.requests.memory" value = "128Mi" } - set { - name = "read.resources.limits.cpu" - value = "1000m" - } - set { - name = "read.resources.limits.memory" - value = "1Gi" - } + # set { + # name = "read.resources.limits.cpu" + # value = "1000m" + # } + # set { + # name = "read.resources.limits.memory" + # value = "1Gi" + # } # Backend set { name = "backend.resources.requests.cpu" @@ -285,14 +285,14 @@ resource "helm_release" "loki" { name = "backend.resources.requests.memory" value = "128Mi" } - set { - name = "backend.resources.limits.cpu" - value = "1000m" - } - set { - name = "backend.resources.limits.memory" - value = "1Gi" - } + # set { + # name = "backend.resources.limits.cpu" + # value = "1000m" + # } + # set { + # name = "backend.resources.limits.memory" + # value = "1Gi" + # } # Gateway set { name = "gateway.resources.requests.cpu" @@ -302,14 +302,14 @@ resource "helm_release" "loki" { name = "gateway.resources.requests.memory" value = "64Mi" } - set { - name = "gateway.resources.limits.cpu" - value = "500m" - } - set { - name = "gateway.resources.limits.memory" - value = "512Mi" - } + # set { + # name = "gateway.resources.limits.cpu" + # value = "500m" + # } + # set { + # name = "gateway.resources.limits.memory" + # value = "512Mi" + # } # Compactor set { name = "compactor.resources.requests.cpu" @@ -319,14 +319,14 @@ resource "helm_release" "loki" { name = "compactor.resources.requests.memory" value = "128Mi" } - set { - name = "compactor.resources.limits.cpu" - value = "500m" - } - set { - name = "compactor.resources.limits.memory" - value = "512Mi" - } + # set { + # name = "compactor.resources.limits.cpu" + # value = "500m" + # } + # set { + # name = "compactor.resources.limits.memory" + # value = "512Mi" + # } ##### Schema Config ##### set { From c1cbe59fd65b8d9dcdf0217775e9c3e44f4ee01d Mon Sep 17 00:00:00 2001 From: "Matthew C. Morgan" Date: Fri, 21 Feb 2025 12:26:53 -0500 Subject: [PATCH 06/11] remove timeout for wait --- main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main.tf b/main.tf index 14a6275..59abd68 100644 --- a/main.tf +++ b/main.tf @@ -58,7 +58,7 @@ resource "helm_release" "loki" { name = "loki" namespace = kubernetes_namespace.ns.metadata[0].name repository = "https://grafana.github.io/helm-charts" - timeout = 60 + wait = true ##### Globals ##### set { From b4ef3834777429e5128d7a9f999c339acbafd39b Mon Sep 17 00:00:00 2001 From: "Matthew C. Morgan" Date: Fri, 21 Feb 2025 12:47:20 -0500 Subject: [PATCH 07/11] add more read configs --- main.tf | 44 +++++++++++++++++++++++++++++++------------- 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/main.tf b/main.tf index 59abd68..1927a46 100644 --- a/main.tf +++ b/main.tf @@ -171,10 +171,6 @@ resource "helm_release" "loki" { name = "loki.storage.s3.s3" value = format("s3://%v", var.region) } - set { - name = "loki.storage.s3.region" - value = var.region - } set { name = "loki.storage_config.aws.s3" value = format("s3://%v/%v", @@ -266,16 +262,16 @@ resource "helm_release" "loki" { } set { name = "read.resources.requests.memory" - value = "128Mi" + value = "256Mi" + } + set { + name = "read.resources.limits.cpu" + value = "1000m" + } + set { + name = "read.resources.limits.memory" + value = "1Gi" } - # set { - # name = "read.resources.limits.cpu" - # value = "1000m" - # } - # set { - # name = "read.resources.limits.memory" - # value = "1Gi" - # } # Backend set { name = "backend.resources.requests.cpu" @@ -428,4 +424,26 @@ resource "helm_release" "loki" { value = "false" } + ##### Read Component Configuration ##### + set { + name = "read.readinessProbe.initialDelaySeconds" + value = "45" + } + set { + name = "read.readinessProbe.timeoutSeconds" + value = "3" + } + set { + name = "read.readinessProbe.periodSeconds" + value = "15" + } + set { + name = "read.readinessProbe.failureThreshold" + value = "5" + } + + set { + name = "read.persistence.size" + value = "10Gi" + } } From 412266075b3bdc4487d28d6f9f5ba4a640d6b056 Mon Sep 17 00:00:00 2001 From: "Matthew C. Morgan" Date: Fri, 21 Feb 2025 17:01:49 -0500 Subject: [PATCH 08/11] more resource limits --- main.tf | 86 +++++++++++++++------------------------------------------ 1 file changed, 23 insertions(+), 63 deletions(-) diff --git a/main.tf b/main.tf index 1927a46..e3bf1bb 100644 --- a/main.tf +++ b/main.tf @@ -171,6 +171,10 @@ resource "helm_release" "loki" { name = "loki.storage.s3.s3" value = format("s3://%v", var.region) } + set { + name = "loki.storage.s3.region" + value = var.region + } set { name = "loki.storage_config.aws.s3" value = format("s3://%v/%v", @@ -247,14 +251,6 @@ resource "helm_release" "loki" { name = "write.resources.requests.memory" value = "128Mi" } - # set { - # name = "write.resources.limits.cpu" - # value = "1000m" - # } - # set { - # name = "write.resources.limits.memory" - # value = "1Gi" - # } # Read set { name = "read.resources.requests.cpu" @@ -262,15 +258,7 @@ resource "helm_release" "loki" { } set { name = "read.resources.requests.memory" - value = "256Mi" - } - set { - name = "read.resources.limits.cpu" - value = "1000m" - } - set { - name = "read.resources.limits.memory" - value = "1Gi" + value = "128Mi" } # Backend set { @@ -281,14 +269,6 @@ resource "helm_release" "loki" { name = "backend.resources.requests.memory" value = "128Mi" } - # set { - # name = "backend.resources.limits.cpu" - # value = "1000m" - # } - # set { - # name = "backend.resources.limits.memory" - # value = "1Gi" - # } # Gateway set { name = "gateway.resources.requests.cpu" @@ -298,14 +278,6 @@ resource "helm_release" "loki" { name = "gateway.resources.requests.memory" value = "64Mi" } - # set { - # name = "gateway.resources.limits.cpu" - # value = "500m" - # } - # set { - # name = "gateway.resources.limits.memory" - # value = "512Mi" - # } # Compactor set { name = "compactor.resources.requests.cpu" @@ -315,14 +287,24 @@ resource "helm_release" "loki" { name = "compactor.resources.requests.memory" value = "128Mi" } - # set { - # name = "compactor.resources.limits.cpu" - # value = "500m" - # } - # set { - # name = "compactor.resources.limits.memory" - # value = "512Mi" - # } + # Sidecar + set { + name = "sidecar.resources.limits.cpu" + value = "500m" + } + set { + name = "sidecar.resources.limits.memory" + value = "512Mi" + } + # Ruler + set { + name = "ruler.resources.limits.cpu" + value = "500m" + } + set { + name = "ruler.resources.limits.memory" + value = "512Mi" + } ##### Schema Config ##### set { @@ -424,26 +406,4 @@ resource "helm_release" "loki" { value = "false" } - ##### Read Component Configuration ##### - set { - name = "read.readinessProbe.initialDelaySeconds" - value = "45" - } - set { - name = "read.readinessProbe.timeoutSeconds" - value = "3" - } - set { - name = "read.readinessProbe.periodSeconds" - value = "15" - } - set { - name = "read.readinessProbe.failureThreshold" - value = "5" - } - - set { - name = "read.persistence.size" - value = "10Gi" - } } From dafe6cc427c3750804b6d2b65c50b963b1133c4c Mon Sep 17 00:00:00 2001 From: "Matthew C. Morgan" Date: Fri, 21 Feb 2025 19:44:12 -0500 Subject: [PATCH 09/11] split out values --- main.tf | 287 ++++++----------------------------------------- values/loki.yaml | 104 +++++++++++++++++ 2 files changed, 137 insertions(+), 254 deletions(-) create mode 100644 values/loki.yaml diff --git a/main.tf b/main.tf index e3bf1bb..30f30ae 100644 --- a/main.tf +++ b/main.tf @@ -60,13 +60,16 @@ resource "helm_release" "loki" { repository = "https://grafana.github.io/helm-charts" wait = true - ##### Globals ##### + values = [ + file("${path.module}/values/loki.yaml") + ] + + # Dynamic values that depend on Terraform variables or computed values set { name = "global.image.registry" value = module.images.images[local.loki_key].dest_registry } - ##### Loki Image ##### set { name = "loki.image.repository" value = module.images.images[local.loki_key].dest_repository @@ -76,81 +79,12 @@ resource "helm_release" "loki" { value = module.images.images[local.loki_key].tag } - ##### Provisioner (nginx) Image ##### - set { - name = "loki.provisioner.image.repository" - value = split(":", module.images.images[local.provisioner_key].dest_full_path)[0] - } - set { - name = "loki.provisioner.image.tag" - value = module.images.images[local.provisioner_key].tag - } - - #### Gateway Image ##### - set { - name = "gateway.image.repository" - value = module.images.images[local.gateway_key].dest_repository - } - set { - name = "gateway.image.tag" - value = module.images.images[local.gateway_key].tag - } - - ##### grafana/loki-canary ##### - set { - name = "lokiCanary.image.repository" - value = module.images.images[local.canary_key].dest_repository - } - set { - name = "lokiCanary.image.tag" - value = module.images.images[local.canary_key].tag - } - - ##### kiwigrid/k8s-sidecar ##### - set { - name = "sidecar.image.repository" - value = split(":", module.images.images[local.sidecar_key].dest_full_path)[0] - } - set { - name = "sidecar.image.tag" - value = module.images.images[local.sidecar_key].tag - } - - ##### memcached ##### - set { - name = "memcached.image.repository" - value = split(":", module.images.images[local.memcached_key].dest_full_path)[0] - } - set { - name = "memcached.image.tag" - value = module.images.images[local.memcached_key].tag - } - - ##### memcachedExporter ##### - set { - name = "memcachedExporter.image.repository" - value = split(":", module.images.images[local.exporter_key].dest_full_path)[0] - } - set { - name = "memcachedExporter.image.tag" - value = module.images.images[local.exporter_key].tag - } - - ##### Auth ##### - set { - name = "loki.auth_enabled" - value = "true" - } set { name = "serviceAccount.annotations.eks\\.amazonaws\\.com/role-arn" value = module.loki_irsa_role.iam_role_arn } - set { - name = "memberlist.service.publishNotReadyAddresses" - value = "true" - } - ##### Storage ##### + # Storage-related dynamic configurations set { name = "loki.storage.bucketNames.chunks" value = module.loki_s3.s3_requested_bucket_name @@ -182,19 +116,8 @@ resource "helm_release" "loki" { module.loki_s3.s3_requested_bucket_name ) } - set { - name = "write.extraVolumesMounts[0].name" - value = "data" - } - set { - name = "write.extraVolumesMounts[0].mountPath" - value = "/loki" - } - set { - name = "write.extraVolumes[0].name" - value = "loki" - } + # Storage class configurations set { name = "write.persistence.storageClass" value = var.rwo_storage_class @@ -203,207 +126,63 @@ resource "helm_release" "loki" { name = "backend.persistence.storageClass" value = var.rwo_storage_class } - set { - name = "read.persistence.enabled" - value = true - } set { name = "read.persistence.storageClass" value = var.rwo_storage_class } - ##### AutoScaling ##### - set { - name = "write.autoscaling.enabled" - value = true - } - set { - name = "read.autoscaling.enabled" - value = true - } - set { - name = "backend.autoscaling.enabled" - value = true - } - set { - name = "ingester.autoscaling.enabled" - value = true - } - set { - name = "distributor.autoscaling.enabled" - value = true - } - set { - name = "querier.autoscaling.enabled" - value = true - } - set { - name = "queryFrontend.autoscaling.enabled" - value = true - } - ##### Resource Limits ##### - # Write - set { - name = "write.resources.requests.cpu" - value = "100m" - } - set { - name = "write.resources.requests.memory" - value = "128Mi" - } - # Read - set { - name = "read.resources.requests.cpu" - value = "100m" - } - set { - name = "read.resources.requests.memory" - value = "128Mi" - } - # Backend - set { - name = "backend.resources.requests.cpu" - value = "100m" - } - set { - name = "backend.resources.requests.memory" - value = "128Mi" - } - # Gateway - set { - name = "gateway.resources.requests.cpu" - value = "50m" - } - set { - name = "gateway.resources.requests.memory" - value = "64Mi" - } - # Compactor - set { - name = "compactor.resources.requests.cpu" - value = "100m" - } + # Image configurations for additional components set { - name = "compactor.resources.requests.memory" - value = "128Mi" - } - # Sidecar - set { - name = "sidecar.resources.limits.cpu" - value = "500m" - } - set { - name = "sidecar.resources.limits.memory" - value = "512Mi" - } - # Ruler - set { - name = "ruler.resources.limits.cpu" - value = "500m" + name = "loki.provisioner.image.repository" + value = split(":", module.images.images[local.provisioner_key].dest_full_path)[0] } set { - name = "ruler.resources.limits.memory" - value = "512Mi" + name = "loki.provisioner.image.tag" + value = module.images.images[local.provisioner_key].tag } - ##### Schema Config ##### - set { - name = "loki.schemaConfig.configs[0].from" - value = "2024-04-01" - } - set { - name = "loki.schemaConfig.configs[0].index.period" - value = "24h" - } - set { - name = "loki.schemaConfig.configs[0].index.prefix" - value = "loki_sb_index_" - } - set { - name = "loki.schemaConfig.configs[0].object_store" - value = "s3" - } - set { - name = "loki.schemaConfig.configs[0].schema" - value = "v13" - } set { - name = "loki.schemaConfig.configs[0].store" - value = "tsdb" + name = "gateway.image.repository" + value = module.images.images[local.gateway_key].dest_repository } set { - name = "test.enabled" - value = "false" + name = "gateway.image.tag" + value = module.images.images[local.gateway_key].tag } - ##### Compactor Config ##### - set { - name = "compactor.working_directory" - value = "/loki/compactor" - } - set { - name = "compactor.shared_store" - value = "s3" - } set { - name = "compactor.compaction_interval" - value = "10m" - } - set { - name = "compactor.retention_enabled" - value = "true" - } - set { - name = "compactor.retention_delete_delay" - value = "2h" + name = "lokiCanary.image.repository" + value = module.images.images[local.canary_key].dest_repository } set { - name = "compactor.retention_delete_worker_count" - value = "150" + name = "lokiCanary.image.tag" + value = module.images.images[local.canary_key].tag } - ##### Limits ##### - set { - name = "loki.limits_config.ingestion_rate_strategy" - value = "local" - } set { - name = "loki.limits_config.max_global_streams_per_user" - value = "5000" - } - set { - name = "loki.limits_config.max_query_parallelism" - value = "32" + name = "sidecar.image.repository" + value = split(":", module.images.images[local.sidecar_key].dest_full_path)[0] } set { - name = "loki.limits_config.max_streams_per_user" - value = "10000" + name = "sidecar.image.tag" + value = module.images.images[local.sidecar_key].tag } - ##### Monitoring ##### - set { - name = "loki.analytics.reporting_enabled" - value = "false" - } - set { - name = "monitoring.dashboards.enabled" - value = "false" - } set { - name = "monitoring.rules.enabled" - value = "false" + name = "memcached.image.repository" + value = split(":", module.images.images[local.memcached_key].dest_full_path)[0] } set { - name = "monitoring.serviceMonitor.enabled" - value = "false" + name = "memcached.image.tag" + value = module.images.images[local.memcached_key].tag } + set { - name = "monitoring.selfMonitoring.enabled" - value = "false" + name = "memcachedExporter.image.repository" + value = split(":", module.images.images[local.exporter_key].dest_full_path)[0] } set { - name = "monitoring.lokiCanary.enabled" - value = "false" + name = "memcachedExporter.image.tag" + value = module.images.images[local.exporter_key].tag } - } diff --git a/values/loki.yaml b/values/loki.yaml new file mode 100644 index 0000000..bd3da3d --- /dev/null +++ b/values/loki.yaml @@ -0,0 +1,104 @@ +--- +loki: + auth_enabled: true + analytics: + reporting_enabled: false + + schemaConfig: + configs: + - from: 2024-04-01 + index: + period: 24h + prefix: loki_sb_index_ + object_store: s3 + schema: v13 + store: tsdb + + limits_config: + ingestion_rate_strategy: local + max_global_streams_per_user: 5000 + max_query_parallelism: 32 + max_streams_per_user: 10000 + +write: + persistence: + enabled: true + autoscaling: + enabled: true + resources: + requests: + cpu: 100m + memory: 128Mi + extraVolumesMounts: + - name: data + mountPath: /loki + extraVolumes: + - name: loki + +read: + persistence: + enabled: true + autoscaling: + enabled: true + minReplicas: 1 + resources: + requests: + cpu: 100m + memory: 128Mi + +backend: + autoscaling: + enabled: true + resources: + requests: + cpu: 100m + memory: 128Mi + +gateway: + resources: + requests: + cpu: 50m + memory: 64Mi + +compactor: + working_directory: /loki/compactor + shared_store: s3 + compaction_interval: 10m + retention_enabled: true + retention_delete_delay: 2h + retention_delete_worker_count: 150 + resources: + requests: + cpu: 100m + memory: 128Mi + +sidecar: + resources: + requests: + cpu: 500m + memory: 512Mi + +ruler: + resources: + requests: + cpu: 500m + memory: 512Mi + +monitoring: + dashboards: + enabled: false + rules: + enabled: false + serviceMonitor: + enabled: false + selfMonitoring: + enabled: false + lokiCanary: + enabled: false + +memberlist: + service: + publishNotReadyAddresses: true + +test: + enabled: false From 635c41e2ad8549ea8ab802f81f1dcd473ee71960 Mon Sep 17 00:00:00 2001 From: "Matthew C. Morgan" Date: Mon, 24 Feb 2025 15:25:56 -0500 Subject: [PATCH 10/11] modify defaults --- values/loki.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/values/loki.yaml b/values/loki.yaml index bd3da3d..ab5e963 100644 --- a/values/loki.yaml +++ b/values/loki.yaml @@ -1,8 +1,8 @@ --- loki: - auth_enabled: true + auth_enabled: false analytics: - reporting_enabled: false + reporting_enabled: true schemaConfig: configs: @@ -98,7 +98,7 @@ monitoring: memberlist: service: - publishNotReadyAddresses: true + publishNotReadyAddresses: false test: enabled: false From bfe5bf35be948044e3c0c7d6651a204770677b43 Mon Sep 17 00:00:00 2001 From: "Matthew C. Morgan" Date: Mon, 24 Feb 2025 17:33:33 -0500 Subject: [PATCH 11/11] udpate precommit --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index f451b69..2675093 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -49,7 +49,7 @@ repos: # Terraform Hooks - repo: https://github.com/antonbabenko/pre-commit-terraform - rev: v1.96.1 # Get the latest from: https://github.com/antonbabenko/pre-commit-terraform/releases + rev: v1.97.3 # Get the latest from: https://github.com/antonbabenko/pre-commit-terraform/releases hooks: - id: terraform_fmt args: