From a831d58e8bc108cb7d2b7d7aeb12e27a10098c7b Mon Sep 17 00:00:00 2001 From: Debakel Orakel Date: Wed, 24 Jun 2026 14:14:42 +0200 Subject: [PATCH] Switch preset to extra-small by default This PR uses extra-small preset by default. The deployment strategy `SimpleScalable` is deprecated and only available with presets `legacy` and `none`. Every other preset uses deployment strategy `Distributed` --- class/defaults.yml | 2 +- class/loki.yml | 1 + component/helm_values.jsonnet | 3 +- .../pages/how-tos/upgrade-loki-v0-v1.adoc | 65 ++++++ docs/modules/ROOT/partials/nav.adoc | 1 + .../backend/query-scheduler-discovery.yaml | 28 --- .../loki/templates/backend/workload.yaml | 215 ------------------ .../loki/templates/chunks-cache}/pdb.yaml | 8 +- .../templates/chunks-cache/statefulset.yaml | 6 +- .../loki/templates/compactor/service.yaml | 68 ++++++ .../loki/templates/compactor/workload.yaml | 143 ++++++++++++ .../10_helm_loki/loki/templates/config.yaml | 16 +- .../loki/templates/distributor/service.yaml | 68 ++++++ .../loki/templates/distributor}/workload.yaml | 27 ++- .../loki/templates/gateway/configmap.yaml | 56 ++--- .../loki/templates/gateway/deployment.yaml | 2 +- .../loki/templates/index-gateway/service.yaml | 68 ++++++ .../templates/index-gateway/workload.yaml | 141 ++++++++++++ .../loki/templates/ingester/pdb.yaml | 23 ++ .../loki/templates/ingester/service.yaml | 68 ++++++ .../{write => ingester}/workload.yaml | 56 ++--- .../templates/overrides-exporter/service.yaml | 68 ++++++ .../overrides-exporter/workload.yaml | 138 +++++++++++ .../{backend => querier}/service.yaml | 12 +- .../loki/templates/querier/workload.yaml | 152 +++++++++++++ .../templates/query-frontend/service.yaml | 68 ++++++ .../templates/query-frontend/workload.yaml | 143 ++++++++++++ .../{backend => query-scheduler}/pdb.yaml | 6 +- .../templates/query-scheduler/service.yaml | 68 ++++++ .../templates/query-scheduler/workload.yaml | 135 +++++++++++ .../loki/templates/results-cache}/pdb.yaml | 8 +- .../templates/results-cache/statefulset.yaml | 6 +- .../templates/{read => ruler}/service.yaml | 12 +- .../loki/templates/ruler/workload.yaml | 139 +++++++++++ .../backend/query-scheduler-discovery.yaml | 28 --- .../loki/templates/backend/workload.yaml | 215 ------------------ .../loki/templates/chunks-cache}/pdb.yaml | 8 +- .../templates/chunks-cache/statefulset.yaml | 6 +- .../loki/templates/compactor/service.yaml | 68 ++++++ .../loki/templates/compactor/workload.yaml | 143 ++++++++++++ .../10_helm_loki/loki/templates/config.yaml | 16 +- .../loki/templates/distributor/service.yaml | 68 ++++++ .../{read => distributor}/workload.yaml | 27 ++- .../loki/templates/gateway/configmap.yaml | 56 ++--- .../loki/templates/gateway/deployment.yaml | 2 +- .../loki/templates/index-gateway/service.yaml | 68 ++++++ .../templates/index-gateway/workload.yaml | 141 ++++++++++++ .../loki/templates/ingester/pdb.yaml | 23 ++ .../loki/templates/ingester/service.yaml | 68 ++++++ .../{write => ingester}/workload.yaml | 56 ++--- .../templates/overrides-exporter/service.yaml | 68 ++++++ .../overrides-exporter/workload.yaml | 138 +++++++++++ .../{backend => querier}/service.yaml | 12 +- .../loki/templates/querier/workload.yaml | 152 +++++++++++++ .../templates/query-frontend/service.yaml | 68 ++++++ .../templates/query-frontend/workload.yaml | 143 ++++++++++++ .../{backend => query-scheduler}/pdb.yaml | 6 +- .../templates/query-scheduler/service.yaml | 68 ++++++ .../templates/query-scheduler/workload.yaml | 135 +++++++++++ .../loki/templates/results-cache/pdb.yaml | 16 ++ .../templates/results-cache/statefulset.yaml | 6 +- .../loki/templates/ruler}/service.yaml | 12 +- .../loki/templates/ruler/workload.yaml | 139 +++++++++++ .../loki/templates/write/pdb.yaml | 18 -- .../templates/chunks-cache/statefulset.yaml | 3 +- .../loki/templates/gateway/deployment.yaml | 2 + .../templates/results-cache/statefulset.yaml | 3 +- .../loki/templates/backend/pdb.yaml | 18 -- .../backend/query-scheduler-discovery.yaml | 28 --- .../loki/templates/backend/service.yaml | 68 ------ .../loki/templates/backend/workload.yaml | 215 ------------------ .../loki/templates/chunks-cache/pdb.yaml | 16 ++ .../templates/chunks-cache/statefulset.yaml | 6 +- .../loki/templates/compactor/service.yaml | 68 ++++++ .../loki/templates/compactor/workload.yaml | 140 ++++++++++++ .../10_helm_loki/loki/templates/config.yaml | 16 +- .../loki/templates/distributor/service.yaml | 68 ++++++ .../loki/templates/distributor}/workload.yaml | 24 +- .../loki/templates/gateway/configmap.yaml | 56 ++--- .../loki/templates/gateway/deployment.yaml | 2 +- .../loki/templates/index-gateway/service.yaml | 68 ++++++ .../templates/index-gateway/workload.yaml | 138 +++++++++++ .../loki/templates/ingester/pdb.yaml | 23 ++ .../loki/templates/ingester/service.yaml | 68 ++++++ .../{write => ingester}/workload.yaml | 53 +++-- .../templates/overrides-exporter/service.yaml | 68 ++++++ .../overrides-exporter/workload.yaml | 135 +++++++++++ .../loki/templates/querier/service.yaml | 68 ++++++ .../loki/templates/querier/workload.yaml | 149 ++++++++++++ .../templates/query-frontend/service.yaml | 68 ++++++ .../templates/query-frontend}/workload.yaml | 25 +- .../loki/templates/query-scheduler}/pdb.yaml | 6 +- .../templates/query-scheduler/service.yaml | 68 ++++++ .../templates/query-scheduler/workload.yaml | 132 +++++++++++ .../loki/templates/read/service.yaml | 68 ------ .../loki/templates/results-cache/pdb.yaml | 16 ++ .../templates/results-cache/statefulset.yaml | 6 +- .../loki/templates/ruler}/service.yaml | 12 +- .../loki/templates/ruler/workload.yaml | 136 +++++++++++ .../loki/templates/write/pdb.yaml | 18 -- .../loki/templates/write/service.yaml | 68 ------ .../loki/templates/backend/pdb.yaml | 18 -- .../backend/query-scheduler-discovery.yaml | 28 --- .../loki/templates/backend/service.yaml | 68 ------ .../loki/templates/backend/workload.yaml | 215 ------------------ .../loki/templates/chunks-cache/pdb.yaml | 16 ++ .../templates/chunks-cache/statefulset.yaml | 6 +- .../loki/templates/compactor/service.yaml | 68 ++++++ .../loki/templates/compactor/workload.yaml | 143 ++++++++++++ .../10_helm_loki/loki/templates/config.yaml | 16 +- .../loki/templates/distributor/service.yaml | 68 ++++++ .../loki/templates/distributor/workload.yaml | 142 ++++++++++++ .../loki/templates/gateway/configmap.yaml | 56 ++--- .../loki/templates/gateway/deployment.yaml | 2 +- .../loki/templates/index-gateway/service.yaml | 68 ++++++ .../templates/index-gateway/workload.yaml | 141 ++++++++++++ .../loki/templates/ingester/pdb.yaml | 23 ++ .../loki/templates/ingester/service.yaml | 68 ++++++ .../{write => ingester}/workload.yaml | 56 ++--- .../templates/overrides-exporter/service.yaml | 68 ++++++ .../overrides-exporter/workload.yaml | 138 +++++++++++ .../loki/templates/querier/service.yaml | 68 ++++++ .../loki/templates/querier/workload.yaml | 152 +++++++++++++ .../templates/query-frontend/service.yaml | 68 ++++++ .../templates/query-frontend/workload.yaml | 143 ++++++++++++ .../loki/templates/query-scheduler}/pdb.yaml | 6 +- .../templates/query-scheduler/service.yaml | 68 ++++++ .../templates/query-scheduler/workload.yaml | 135 +++++++++++ .../loki/templates/read/service.yaml | 68 ------ .../loki/templates/results-cache/pdb.yaml | 16 ++ .../templates/results-cache/statefulset.yaml | 6 +- .../loki/templates/ruler}/service.yaml | 12 +- .../loki/templates/ruler/workload.yaml | 139 +++++++++++ .../loki/templates/write/pdb.yaml | 18 -- .../loki/templates/write/service.yaml | 68 ------ tests/legacy.yml | 2 + 136 files changed, 6631 insertions(+), 1866 deletions(-) create mode 100644 docs/modules/ROOT/pages/how-tos/upgrade-loki-v0-v1.adoc delete mode 100644 tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/backend/query-scheduler-discovery.yaml delete mode 100644 tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/backend/workload.yaml rename tests/golden/{extra-config/loki/loki/10_helm_loki/loki/templates/read => defaults/loki/loki/10_helm_loki/loki/templates/chunks-cache}/pdb.yaml (63%) create mode 100644 tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/compactor/service.yaml create mode 100644 tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/compactor/workload.yaml create mode 100644 tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/distributor/service.yaml rename tests/golden/{openshift/loki/loki/10_helm_loki/loki/templates/read => defaults/loki/loki/10_helm_loki/loki/templates/distributor}/workload.yaml (86%) create mode 100644 tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/index-gateway/service.yaml create mode 100644 tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/index-gateway/workload.yaml create mode 100644 tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/ingester/pdb.yaml create mode 100644 tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/ingester/service.yaml rename tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/{write => ingester}/workload.yaml (77%) create mode 100644 tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/overrides-exporter/service.yaml create mode 100644 tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/overrides-exporter/workload.yaml rename tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/{backend => querier}/service.yaml (86%) create mode 100644 tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/querier/workload.yaml create mode 100644 tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/query-frontend/service.yaml create mode 100644 tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/query-frontend/workload.yaml rename tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/{backend => query-scheduler}/pdb.yaml (73%) create mode 100644 tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/query-scheduler/service.yaml create mode 100644 tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/query-scheduler/workload.yaml rename tests/golden/{openshift/loki/loki/10_helm_loki/loki/templates/read => defaults/loki/loki/10_helm_loki/loki/templates/results-cache}/pdb.yaml (63%) rename tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/{read => ruler}/service.yaml (86%) create mode 100644 tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/ruler/workload.yaml delete mode 100644 tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/backend/query-scheduler-discovery.yaml delete mode 100644 tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/backend/workload.yaml rename tests/golden/{prometheus/loki/loki/10_helm_loki/loki/templates/read => extra-config/loki/loki/10_helm_loki/loki/templates/chunks-cache}/pdb.yaml (63%) create mode 100644 tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/compactor/service.yaml create mode 100644 tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/compactor/workload.yaml create mode 100644 tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/distributor/service.yaml rename tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/{read => distributor}/workload.yaml (86%) create mode 100644 tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/index-gateway/service.yaml create mode 100644 tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/index-gateway/workload.yaml create mode 100644 tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/ingester/pdb.yaml create mode 100644 tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/ingester/service.yaml rename tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/{write => ingester}/workload.yaml (77%) create mode 100644 tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/overrides-exporter/service.yaml create mode 100644 tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/overrides-exporter/workload.yaml rename tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/{backend => querier}/service.yaml (86%) create mode 100644 tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/querier/workload.yaml create mode 100644 tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/query-frontend/service.yaml create mode 100644 tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/query-frontend/workload.yaml rename tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/{backend => query-scheduler}/pdb.yaml (73%) create mode 100644 tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/query-scheduler/service.yaml create mode 100644 tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/query-scheduler/workload.yaml create mode 100644 tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/results-cache/pdb.yaml rename tests/golden/{defaults/loki/loki/10_helm_loki/loki/templates/write => extra-config/loki/loki/10_helm_loki/loki/templates/ruler}/service.yaml (86%) create mode 100644 tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/ruler/workload.yaml delete mode 100644 tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/write/pdb.yaml delete mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/backend/pdb.yaml delete mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/backend/query-scheduler-discovery.yaml delete mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/backend/service.yaml delete mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/backend/workload.yaml create mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/chunks-cache/pdb.yaml create mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/compactor/service.yaml create mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/compactor/workload.yaml create mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/distributor/service.yaml rename tests/golden/{defaults/loki/loki/10_helm_loki/loki/templates/read => openshift/loki/loki/10_helm_loki/loki/templates/distributor}/workload.yaml (88%) create mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/index-gateway/service.yaml create mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/index-gateway/workload.yaml create mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/ingester/pdb.yaml create mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/ingester/service.yaml rename tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/{write => ingester}/workload.yaml (78%) create mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/overrides-exporter/service.yaml create mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/overrides-exporter/workload.yaml create mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/querier/service.yaml create mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/querier/workload.yaml create mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/query-frontend/service.yaml rename tests/golden/{prometheus/loki/loki/10_helm_loki/loki/templates/read => openshift/loki/loki/10_helm_loki/loki/templates/query-frontend}/workload.yaml (86%) rename tests/golden/{defaults/loki/loki/10_helm_loki/loki/templates/read => openshift/loki/loki/10_helm_loki/loki/templates/query-scheduler}/pdb.yaml (73%) create mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/query-scheduler/service.yaml create mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/query-scheduler/workload.yaml delete mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/read/service.yaml create mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/results-cache/pdb.yaml rename tests/golden/{extra-config/loki/loki/10_helm_loki/loki/templates/read => openshift/loki/loki/10_helm_loki/loki/templates/ruler}/service.yaml (86%) create mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/ruler/workload.yaml delete mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/write/pdb.yaml delete mode 100644 tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/write/service.yaml delete mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/backend/pdb.yaml delete mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/backend/query-scheduler-discovery.yaml delete mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/backend/service.yaml delete mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/backend/workload.yaml create mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/chunks-cache/pdb.yaml create mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/compactor/service.yaml create mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/compactor/workload.yaml create mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/distributor/service.yaml create mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/distributor/workload.yaml create mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/index-gateway/service.yaml create mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/index-gateway/workload.yaml create mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/ingester/pdb.yaml create mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/ingester/service.yaml rename tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/{write => ingester}/workload.yaml (77%) create mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/overrides-exporter/service.yaml create mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/overrides-exporter/workload.yaml create mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/querier/service.yaml create mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/querier/workload.yaml create mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/query-frontend/service.yaml create mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/query-frontend/workload.yaml rename tests/golden/{defaults/loki/loki/10_helm_loki/loki/templates/write => prometheus/loki/loki/10_helm_loki/loki/templates/query-scheduler}/pdb.yaml (73%) create mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/query-scheduler/service.yaml create mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/query-scheduler/workload.yaml delete mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/read/service.yaml create mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/results-cache/pdb.yaml rename tests/golden/{extra-config/loki/loki/10_helm_loki/loki/templates/write => prometheus/loki/loki/10_helm_loki/loki/templates/ruler}/service.yaml (86%) create mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/ruler/workload.yaml delete mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/write/pdb.yaml delete mode 100644 tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/write/service.yaml diff --git a/class/defaults.yml b/class/defaults.yml index 3174fa3..323de35 100644 --- a/class/defaults.yml +++ b/class/defaults.yml @@ -32,7 +32,7 @@ parameters: registry: ghcr.io repository: jkroepke/access-log-exporter - preset: legacy + preset: extra-small components: # Read Path diff --git a/class/loki.yml b/class/loki.yml index fb60461..789662b 100644 --- a/class/loki.yml +++ b/class/loki.yml @@ -30,6 +30,7 @@ parameters: output_path: ${_instance}/10_helm_loki helm_values_files: - ${_base_directory}/helmcharts/loki/${loki:charts:loki:version}/${loki:preset}.yaml + - ${_base_directory}/helmcharts/loki/${loki:charts:loki:version}/${_instance}-components.yaml - ${_base_directory}/helmcharts/loki/${loki:charts:loki:version}/${_instance}-configs.yaml - ${_base_directory}/helmcharts/loki/${loki:charts:loki:version}/${_instance}-overrides.yaml helm_params: diff --git a/component/helm_values.jsonnet b/component/helm_values.jsonnet index 1489271..dbc7689 100644 --- a/component/helm_values.jsonnet +++ b/component/helm_values.jsonnet @@ -41,8 +41,6 @@ local components = com.makeMergeable({ } + com.makeMergeable(params.components.indexGateway), // Ingress Configuration gateway: { - [if params.components.gateway.enabled then 'enabledNonEnterprise']: params.components.gateway.enabled, - extraEnvFrom: [ { secretRef: { name: '%s-bucket-secret' % inv.parameters._instance } } ], extraArgs: [ '-config.expand-env=true' ], nodeSelector: std.get(params.components.gateway, 'nodeSelector', globalConfig.nodeSelector), } + com.makeMergeable(params.components.gateway), @@ -204,6 +202,7 @@ local hardRestrictions = com.makeMergeable({ }); { + ['%s-components' % inv.parameters._instance]: components + caches + experimental, ['%s-configs' % inv.parameters._instance]: openshift + images + global + loki + ingress, ['%s-overrides' % inv.parameters._instance]: params.helm_values + hardRestrictions, } diff --git a/docs/modules/ROOT/pages/how-tos/upgrade-loki-v0-v1.adoc b/docs/modules/ROOT/pages/how-tos/upgrade-loki-v0-v1.adoc new file mode 100644 index 0000000..c1394f0 --- /dev/null +++ b/docs/modules/ROOT/pages/how-tos/upgrade-loki-v0-v1.adoc @@ -0,0 +1,65 @@ += Upgrade component version v0 to v1 + +Version 1.x is a major overhaul of the configuration parameters of the component, +https://github.com/projectsyn/component-loki/releases/tag/v1.0.0[see Release Notes] for more details. + +The component has lots of options to configure each part of the Loki installation. +Please have a look at the xref:references/parameters.adoc[parameters documentation] for reference. + +[IMPORTANT] +==== +As of March 16, 2026, the Grafana Loki Helm chart for OSS users has moved to grafana-community/helm-charts (forked at chart version 6.55.0). +This component will no longer support Helm charts from grafana/loki, instead it uses Helm charts from grafana-community (> v17.x). +==== + + +== Explanation of configuration changes + +=== Migrate to Deployment Mode `Distributed` + +[IMPORTANT] +==== +Prior version of this component used the deployment mode `SimpleScalable`, see https://grafana.com/docs/loki/latest/get-started/deployment-modes/#simple-scalable[Loki Documentation]. +This mode is deprecated and will be removed with Loki v4. +Only the preset `legacy` will support `SimpleScalable`, but it is strongly adviced to switch away from `SimpleScalable` and `legacy`. +==== + +==== Step 1 + +Deploy v1.x of this component with the following parameters: + +[source,yaml] +---- +preset: legacy <1> +helm_values: + deploymentMode: SimpleScalable<->Distributed <2> +---- +<1> Uses `legacy` preset for component configuration. +<2> Prepares for the transition to `Distributed`. + +==== Step 2 + +Remove the parameters from "Step 1" and deploy again. + +=== New Default Resource Requests + +[IMPORTANT] +==== +This component changes its default resource requests and limits, please check the output of your catalog compilation and adjust if needed. +See xref:references/parameters.adoc#_components[components] and xref:references/parameters.adoc#_caches[caches] to adjust your settings. +==== + +This component supports the following presets: + +* `none`: Use the Helm charts defaults. +* `legacy`: Component defaults for migrating to v1. +* `extra-small`: Component defaults for small production deployments (default). + +=== legacy `globalNodeSelector` + +The values for the global node selector has moved to `global.nodeSelector`. + +[TIP] +==== +This change is backward compatible, but migrating the values to the new structure is recommended. +==== diff --git a/docs/modules/ROOT/partials/nav.adoc b/docs/modules/ROOT/partials/nav.adoc index 08f9283..746b7b8 100644 --- a/docs/modules/ROOT/partials/nav.adoc +++ b/docs/modules/ROOT/partials/nav.adoc @@ -1,2 +1,3 @@ * xref:index.adoc[Home] * xref:references/parameters.adoc[Parameters] +* xref:how-tos/upgrade-loki-v0-v1.adoc[] diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/backend/query-scheduler-discovery.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/backend/query-scheduler-discovery.yaml deleted file mode 100644 index bc4a1a5..0000000 --- a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/backend/query-scheduler-discovery.yaml +++ /dev/null @@ -1,28 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - annotations: null - labels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - prometheus.io/service-monitor: 'false' - name: loki-query-scheduler-discovery - namespace: syn-loki -spec: - clusterIP: None - ports: - - name: http-metrics - port: 3100 - protocol: TCP - targetPort: http-metrics - - name: grpc - port: 9095 - protocol: TCP - targetPort: grpc - publishNotReadyAddresses: true - selector: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - type: ClusterIP diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/backend/workload.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/backend/workload.yaml deleted file mode 100644 index 57a602c..0000000 --- a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/backend/workload.yaml +++ /dev/null @@ -1,215 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - labels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - name: loki-backend - namespace: syn-loki -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Delete - whenScaled: Delete - podManagementPolicy: Parallel - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - serviceName: loki-backend-headless - template: - metadata: - annotations: - checksum/config: b3924dfbea23502aac68c3a6a0d39ee535670207bfc6a359ac5b079f534861c1 - kubectl.kubernetes.io/default-container: backend - labels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/part-of: memberlist - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - topologyKey: kubernetes.io/hostname - automountServiceAccountToken: true - containers: - - args: - - -config.file=/etc/loki/config/config.yaml - - -config.expand-env=true - - -memberlist.advertise-addr=$(POD_IP) - - -target=backend - - -legacy-read-mode=false - env: - - name: GOMEMLIMIT - value: 1740MiB - - name: GOGC - value: '80' - - name: POD_IP - valueFrom: - fieldRef: - fieldPath: status.podIP - envFrom: - - secretRef: - name: loki-bucket-secret - image: docker.io/docker.io/grafana/loki:3.7.2 - imagePullPolicy: IfNotPresent - livenessProbe: - failureThreshold: 10 - httpGet: - path: /loki/api/v1/status/buildinfo - port: http-metrics - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 1 - name: backend - ports: - - containerPort: 3100 - name: http-metrics - protocol: TCP - - containerPort: 9095 - name: grpc - protocol: TCP - - containerPort: 7946 - name: http-memberlist - protocol: TCP - readinessProbe: - failureThreshold: 3 - httpGet: - path: /ready - port: http-metrics - initialDelaySeconds: 15 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 1 - resources: - limits: - cpu: 2 - memory: 2Gi - requests: - cpu: 0.5 - memory: 1Gi - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - seccompProfile: - type: RuntimeDefault - volumeMounts: - - mountPath: /etc/loki/config - name: config - - mountPath: /etc/loki/runtime-config - name: runtime-config - - mountPath: /var/loki - name: data - - mountPath: /tmp - name: temp - - mountPath: /rules - name: sc-rules-volume - - env: - - name: METHOD - value: WATCH - - name: LABEL - value: loki_rule - - name: FOLDER - value: /rules - - name: RESOURCE - value: both - - name: WATCH_SERVER_TIMEOUT - value: '60' - - name: WATCH_CLIENT_TIMEOUT - value: '60' - - name: LOG_LEVEL - value: INFO - - name: HEALTH_PORT - value: '8080' - image: docker.io/kiwigrid/k8s-sidecar:2.7.4 - imagePullPolicy: IfNotPresent - livenessProbe: - failureThreshold: 3 - httpGet: - path: /healthz - port: http-sidecar - initialDelaySeconds: 30 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 1 - name: loki-sc-rules - ports: - - containerPort: 8080 - name: http-sidecar - protocol: TCP - readinessProbe: - failureThreshold: 3 - httpGet: - path: /healthz - port: http-sidecar - initialDelaySeconds: 3 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 1 - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - seccompProfile: - type: RuntimeDefault - volumeMounts: - - mountPath: /tmp - name: sc-rules-temp - - mountPath: /rules - name: sc-rules-volume - enableServiceLinks: true - securityContext: - fsGroupChangePolicy: OnRootMismatch - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - serviceAccountName: loki - terminationGracePeriodSeconds: 300 - volumes: - - emptyDir: {} - name: temp - - configMap: - items: - - key: config.yaml - path: config.yaml - name: loki - name: config - - configMap: - name: loki-runtime - name: runtime-config - - emptyDir: {} - name: sc-rules-volume - - emptyDir: {} - name: sc-rules-temp - updateStrategy: - rollingUpdate: - partition: 0 - volumeClaimTemplates: - - apiVersion: v1 - kind: PersistentVolumeClaim - metadata: - name: data - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/read/pdb.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/chunks-cache/pdb.yaml similarity index 63% rename from tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/read/pdb.yaml rename to tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/chunks-cache/pdb.yaml index c617988..d150c18 100644 --- a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/read/pdb.yaml +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/chunks-cache/pdb.yaml @@ -2,17 +2,15 @@ apiVersion: policy/v1 kind: PodDisruptionBudget metadata: labels: - app.kubernetes.io/component: read + app.kubernetes.io/component: memcached-chunks-cache app.kubernetes.io/instance: loki app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - name: loki-read + name: loki-chunks-cache namespace: syn-loki spec: maxUnavailable: 1 selector: matchLabels: - app.kubernetes.io/component: read + app.kubernetes.io/component: memcached-chunks-cache app.kubernetes.io/instance: loki app.kubernetes.io/name: loki diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/chunks-cache/statefulset.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/chunks-cache/statefulset.yaml index 9635774..4b02514 100644 --- a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/chunks-cache/statefulset.yaml +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/chunks-cache/statefulset.yaml @@ -13,7 +13,7 @@ metadata: namespace: syn-loki spec: podManagementPolicy: Parallel - replicas: 1 + replicas: 2 selector: matchLabels: app.kubernetes.io/component: memcached-chunks-cache @@ -66,10 +66,10 @@ spec: timeoutSeconds: 3 resources: limits: - memory: 9830Mi + memory: 4Gi requests: cpu: 500m - memory: 9830Mi + memory: 4Gi securityContext: allowPrivilegeEscalation: false capabilities: diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/compactor/service.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/compactor/service.yaml new file mode 100644 index 0000000..33dfcac --- /dev/null +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/compactor/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-compactor + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-compactor-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/compactor/workload.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/compactor/workload.yaml new file mode 100644 index 0000000..1f313f6 --- /dev/null +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/compactor/workload.yaml @@ -0,0 +1,143 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-compactor + namespace: syn-loki +spec: + podManagementPolicy: Parallel + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + serviceName: loki-compactor-headless + template: + metadata: + annotations: + checksum/config: 0d304c8e8cd773f042bee70064c291b099e0fbd43aff91917a59868f1e7ccb2c + kubectl.kubernetes.io/default-container: compactor + labels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=compactor + env: + - name: GOMEMLIMIT + value: 435MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: compactor + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 512Mi + requests: + cpu: 250m + memory: 384Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 30 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data + updateStrategy: + rollingUpdate: + partition: 0 diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/config.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/config.yaml index 77af818..13935fe 100644 --- a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/config.yaml +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/config.yaml @@ -5,11 +5,11 @@ data: auth_enabled: true bloom_build: builder: - planner_address: loki-backend-headless.syn-loki.svc.cluster.local:9095 + planner_address: loki-bloom-planner-headless.syn-loki.svc.cluster.local:9095 enabled: false bloom_gateway: client: - addresses: dnssrvnoa+_grpc._tcp.loki-backend-headless.syn-loki.svc.cluster.local + addresses: dnssrvnoa+_grpc._tcp.loki-bloom-gateway-headless.syn-loki.svc.cluster.local enabled: false chunk_store_config: chunk_cache_config: @@ -27,7 +27,7 @@ data: max_idle_conns: 72 timeout: 2000ms common: - compactor_grpc_address: 'loki-backend.syn-loki.svc.cluster.local:9095' + compactor_grpc_address: 'loki-compactor.syn-loki.svc.cluster.local:9095' path_prefix: /var/loki replication_factor: 3 storage: @@ -38,10 +38,10 @@ data: s3forcepathstyle: true secret_access_key: ${S3_SECRET_ACCESS_KEY} frontend: - scheduler_address: "" - tail_proxy_url: "" + scheduler_address: loki-query-scheduler-headless.syn-loki.svc.cluster.local:9095 + tail_proxy_url: http://loki-querier.syn-loki.svc.cluster.local:3100 frontend_worker: - scheduler_address: "" + scheduler_address: loki-query-scheduler-headless.syn-loki.svc.cluster.local:9095 index_gateway: mode: simple ingester: @@ -125,14 +125,14 @@ data: working_directory: /var/loki/data/bloomshipper boltdb_shipper: index_gateway_client: - server_address: dns+loki-backend-headless.syn-loki.svc.cluster.local:9095 + server_address: dns+loki-index-gateway-headless.syn-loki.svc.cluster.local:9095 hedging: at: 250ms max_per_second: 20 up_to: 3 tsdb_shipper: index_gateway_client: - server_address: dns+loki-backend-headless.syn-loki.svc.cluster.local:9095 + server_address: dns+loki-index-gateway-headless.syn-loki.svc.cluster.local:9095 use_thanos_objstore: false tracing: enabled: true diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/distributor/service.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/distributor/service.yaml new file mode 100644 index 0000000..16803fe --- /dev/null +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/distributor/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: distributor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-distributor + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: distributor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: distributor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-distributor-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: distributor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/read/workload.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/distributor/workload.yaml similarity index 86% rename from tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/read/workload.yaml rename to tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/distributor/workload.yaml index 39a28c2..5f5c0f7 100644 --- a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/read/workload.yaml +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/distributor/workload.yaml @@ -2,19 +2,19 @@ apiVersion: apps/v1 kind: Deployment metadata: labels: - app.kubernetes.io/component: read + app.kubernetes.io/component: distributor app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 - name: loki-read + name: loki-distributor namespace: syn-loki spec: - replicas: 2 + replicas: 3 revisionHistoryLimit: 10 selector: matchLabels: - app.kubernetes.io/component: read + app.kubernetes.io/component: distributor app.kubernetes.io/instance: loki app.kubernetes.io/name: loki strategy: @@ -24,10 +24,10 @@ spec: template: metadata: annotations: - checksum/config: 09875da6ff3675e7cb1be6e5948b7f836890b106faa5f2ac10532104d4a4d3ae - kubectl.kubernetes.io/default-container: read + checksum/config: 0d304c8e8cd773f042bee70064c291b099e0fbd43aff91917a59868f1e7ccb2c + kubectl.kubernetes.io/default-container: distributor labels: - app.kubernetes.io/component: read + app.kubernetes.io/component: distributor app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/part-of: memberlist @@ -39,7 +39,7 @@ spec: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: - app.kubernetes.io/component: read + app.kubernetes.io/component: distributor app.kubernetes.io/instance: loki app.kubernetes.io/name: loki topologyKey: kubernetes.io/hostname @@ -49,7 +49,7 @@ spec: - -config.file=/etc/loki/config/config.yaml - -config.expand-env=true - -memberlist.advertise-addr=$(POD_IP) - - -target=read + - -target=distributor env: - name: GOMEMLIMIT value: 3481MiB @@ -72,7 +72,7 @@ spec: periodSeconds: 30 successThreshold: 1 timeoutSeconds: 1 - name: read + name: distributor ports: - containerPort: 3100 name: http-metrics @@ -96,8 +96,8 @@ spec: limits: memory: 4Gi requests: - cpu: 1 - memory: 3Gi + cpu: 500m + memory: 2Gi securityContext: allowPrivilegeEscalation: false capabilities: @@ -117,8 +117,11 @@ spec: name: temp enableServiceLinks: true securityContext: + fsGroup: 10001 fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 runAsNonRoot: true + runAsUser: 10001 seccompProfile: type: RuntimeDefault serviceAccountName: loki diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/gateway/configmap.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/gateway/configmap.yaml index e1b451f..d5f393e 100644 --- a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/gateway/configmap.yaml +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/gateway/configmap.yaml @@ -215,65 +215,65 @@ data: \ 127.0.0.1;\n deny all;\n server_tokens on; # expose nginx version\n\ \ }\n\n ########################################################\n #\ \ Configure backend targets\n location ^~ /ui {\n \n set $backend\ - \ \"http://loki-read.syn-loki.svc.cluster.local:3100\";\n proxy_pass\ + \ \"http://loki-querier.syn-loki.svc.cluster.local:3100\";\n proxy_pass\ \ $backend$request_uri;\n }\n\n # Distributor\n location = /api/prom/push\ - \ {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-distributor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /loki/api/v1/push\ - \ {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-distributor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /distributor/ring\ - \ {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-distributor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /otlp/v1/logs\ - \ {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-distributor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # Ingester\n \ - \ location = /flush {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ location = /flush {\n \n set $backend \"http://loki-ingester.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location ^~ /ingester/\ - \ {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ingester.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /ingester\ \ {\n \n internal; # to suppress 301\n }\n\n # Ring\n \ - \ location = /ring {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ location = /ring {\n \n set $backend \"http://loki-ingester.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # MemberListKV\n\ - \ location = /memberlist {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ location = /memberlist {\n \n set $backend \"http://loki-ingester.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # Ruler\n location\ - \ = /ruler/ring {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ = /ruler/ring {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /api/prom/rules\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location ^~ /api/prom/rules/\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /loki/api/v1/rules\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location ^~ /loki/api/v1/rules/\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /prometheus/api/v1/alerts\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /prometheus/api/v1/rules\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # Compactor\n \ - \ location = /compactor/ring {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ location = /compactor/ring {\n \n set $backend \"http://loki-compactor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /loki/api/v1/delete\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-compactor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /loki/api/v1/cache/generation_numbers\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-compactor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # IndexGateway\n\ - \ location = /indexgateway/ring {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ location = /indexgateway/ring {\n \n set $backend \"http://loki-index-gateway.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # QueryScheduler\n\ - \ location = /scheduler/ring {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ location = /scheduler/ring {\n \n set $backend \"http://loki-query-scheduler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # Config\n location\ - \ = /config {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ = /config {\n \n set $backend \"http://loki-ingester.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # QueryFrontend,\ \ Querier\n location = /api/prom/tail {\n proxy_set_header Upgrade $http_upgrade;\n\ \ proxy_set_header Connection \"upgrade\";\n \n set $backend \ - \ \"http://loki-read.syn-loki.svc.cluster.local:3100\";\n proxy_pass \ - \ $backend$request_uri;\n }\n location = /loki/api/v1/tail {\n \ - \ proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection \"\ - upgrade\";\n \n set $backend \"http://loki-read.syn-loki.svc.cluster.local:3100\"\ + \ \"http://loki-query-frontend.syn-loki.svc.cluster.local:3100\";\n proxy_pass\ + \ $backend$request_uri;\n }\n location = /loki/api/v1/tail {\n \ + \ proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection\ + \ \"upgrade\";\n \n set $backend \"http://loki-query-frontend.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location ^~ /api/prom/\ - \ {\n \n set $backend \"http://loki-read.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-query-frontend.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /api/prom\ \ {\n \n internal; # to suppress 301\n }\n location ^~\ \ /loki/api/v1/ {\n # pass custom headers set by Grafana as X-Query-Tags\ \ which are logged as key/value pairs in metrics.go log messages\n proxy_set_header\ \ X-Query-Tags \"${query_tags},user=${http_x_grafana_user},dashboard_id=${http_x_dashboard_uid},dashboard_title=${http_x_dashboard_title},panel_id=${http_x_panel_id},panel_title=${http_x_panel_title},source_rule_uid=${http_x_rule_uid},rule_name=${http_x_rule_name},rule_folder=${http_x_rule_folder},rule_version=${http_x_rule_version},rule_source=${http_x_rule_source},rule_type=${http_x_rule_type}\"\ - ;\n \n set $backend \"http://loki-read.syn-loki.svc.cluster.local:3100\"\ + ;\n \n set $backend \"http://loki-query-frontend.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /loki/api/v1\ \ {\n \n internal; # to suppress 301\n }\n }\n}\n" kind: ConfigMap diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/gateway/deployment.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/gateway/deployment.yaml index b045ee4..0694fe8 100644 --- a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/gateway/deployment.yaml +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/gateway/deployment.yaml @@ -22,7 +22,7 @@ spec: template: metadata: annotations: - checksum/config: 2ac29b210397fb257fb28bb7defc2a7245d4fff101baf745bc1ca1281b373f26 + checksum/config: d983d4b135c64732f88dea989ad8aa77d312f04b272722a7fea4a9f3368128c2 labels: app.kubernetes.io/component: gateway app.kubernetes.io/instance: loki diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/index-gateway/service.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/index-gateway/service.yaml new file mode 100644 index 0000000..ca98c4f --- /dev/null +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/index-gateway/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-index-gateway + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-index-gateway-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/index-gateway/workload.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/index-gateway/workload.yaml new file mode 100644 index 0000000..1f6b347 --- /dev/null +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/index-gateway/workload.yaml @@ -0,0 +1,141 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-index-gateway + namespace: syn-loki +spec: + replicas: 2 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + serviceName: loki-index-gateway-headless + template: + metadata: + annotations: + checksum/config: 0d304c8e8cd773f042bee70064c291b099e0fbd43aff91917a59868f1e7ccb2c + kubectl.kubernetes.io/default-container: index-gateway + labels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=index-gateway + env: + - name: GOMEMLIMIT + value: 1827MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: index-gateway + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 2.1Gi + requests: + cpu: 500m + memory: 768Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 300 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data + updateStrategy: + type: RollingUpdate diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/ingester/pdb.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/ingester/pdb.yaml new file mode 100644 index 0000000..c455ea7 --- /dev/null +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/ingester/pdb.yaml @@ -0,0 +1,23 @@ +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + labels: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-ingester + namespace: syn-loki +spec: + maxUnavailable: 1 + selector: + matchExpressions: + - key: rollout-group + operator: NotIn + values: + - ingester + matchLabels: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/ingester/service.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/ingester/service.yaml new file mode 100644 index 0000000..103726e --- /dev/null +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/ingester/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-ingester + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-ingester-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/write/workload.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/ingester/workload.yaml similarity index 77% rename from tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/write/workload.yaml rename to tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/ingester/workload.yaml index dce5d60..fc1c190 100644 --- a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/write/workload.yaml +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/ingester/workload.yaml @@ -2,12 +2,12 @@ apiVersion: apps/v1 kind: StatefulSet metadata: labels: - app.kubernetes.io/component: write + app.kubernetes.io/component: ingester app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 - name: loki-write + name: loki-ingester namespace: syn-loki spec: podManagementPolicy: Parallel @@ -15,17 +15,17 @@ spec: revisionHistoryLimit: 10 selector: matchLabels: - app.kubernetes.io/component: write + app.kubernetes.io/component: ingester app.kubernetes.io/instance: loki app.kubernetes.io/name: loki - serviceName: loki-write-headless + serviceName: loki-ingester-headless template: metadata: annotations: - checksum/config: b3924dfbea23502aac68c3a6a0d39ee535670207bfc6a359ac5b079f534861c1 - kubectl.kubernetes.io/default-container: write + checksum/config: 0d304c8e8cd773f042bee70064c291b099e0fbd43aff91917a59868f1e7ccb2c + kubectl.kubernetes.io/default-container: ingester labels: - app.kubernetes.io/component: write + app.kubernetes.io/component: ingester app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/part-of: memberlist @@ -37,7 +37,7 @@ spec: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: - app.kubernetes.io/component: write + app.kubernetes.io/component: ingester app.kubernetes.io/instance: loki app.kubernetes.io/name: loki topologyKey: kubernetes.io/hostname @@ -47,10 +47,11 @@ spec: - -config.file=/etc/loki/config/config.yaml - -config.expand-env=true - -memberlist.advertise-addr=$(POD_IP) - - -target=write + - -target=ingester + - -ingester.availability-zone=zone-default env: - name: GOMEMLIMIT - value: 6963MiB + value: 13926MiB - name: GOGC value: '80' - name: POD_IP @@ -70,7 +71,7 @@ spec: periodSeconds: 30 successThreshold: 1 timeoutSeconds: 1 - name: write + name: ingester ports: - containerPort: 3100 name: http-metrics @@ -92,11 +93,10 @@ spec: timeoutSeconds: 1 resources: limits: - cpu: 3 - memory: 8Gi + memory: 16Gi requests: cpu: 1 - memory: 4Gi + memory: 8Gi securityContext: allowPrivilegeEscalation: false capabilities: @@ -116,12 +116,24 @@ spec: name: temp enableServiceLinks: true securityContext: + fsGroup: 10001 fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 runAsNonRoot: true + runAsUser: 10001 seccompProfile: type: RuntimeDefault serviceAccountName: loki terminationGracePeriodSeconds: 300 + topologySpreadConstraints: + - labelSelector: + matchLabels: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + maxSkew: 1 + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: ScheduleAnyway volumes: - emptyDir: {} name: temp @@ -134,17 +146,7 @@ spec: - configMap: name: loki-runtime name: runtime-config + - emptyDir: {} + name: data updateStrategy: - rollingUpdate: - partition: 0 - volumeClaimTemplates: - - apiVersion: v1 - kind: PersistentVolumeClaim - metadata: - name: data - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi + type: RollingUpdate diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/overrides-exporter/service.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/overrides-exporter/service.yaml new file mode 100644 index 0000000..6373201 --- /dev/null +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/overrides-exporter/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-overrides-exporter + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-overrides-exporter-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/overrides-exporter/workload.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/overrides-exporter/workload.yaml new file mode 100644 index 0000000..8200128 --- /dev/null +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/overrides-exporter/workload.yaml @@ -0,0 +1,138 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-overrides-exporter + namespace: syn-loki +spec: + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + template: + metadata: + annotations: + checksum/config: 0d304c8e8cd773f042bee70064c291b099e0fbd43aff91917a59868f1e7ccb2c + kubectl.kubernetes.io/default-container: overrides-exporter + labels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=overrides-exporter + env: + - name: GOMEMLIMIT + value: 108MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: overrides-exporter + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 128Mi + requests: + cpu: 100m + memory: 128Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 300 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/backend/service.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/querier/service.yaml similarity index 86% rename from tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/backend/service.yaml rename to tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/querier/service.yaml index 5f7b690..c3ff71d 100644 --- a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/backend/service.yaml +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/querier/service.yaml @@ -3,12 +3,12 @@ kind: Service metadata: annotations: null labels: - app.kubernetes.io/component: backend + app.kubernetes.io/component: querier app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 - name: loki-backend + name: loki-querier namespace: syn-loki spec: ports: @@ -26,7 +26,7 @@ spec: targetPort: grpc publishNotReadyAddresses: true selector: - app.kubernetes.io/component: backend + app.kubernetes.io/component: querier app.kubernetes.io/instance: loki app.kubernetes.io/name: loki type: ClusterIP @@ -36,14 +36,14 @@ kind: Service metadata: annotations: null labels: - app.kubernetes.io/component: backend + app.kubernetes.io/component: querier app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 prometheus.io/service-monitor: 'false' variant: headless - name: loki-backend-headless + name: loki-querier-headless namespace: syn-loki spec: clusterIP: None @@ -62,7 +62,7 @@ spec: targetPort: grpc publishNotReadyAddresses: true selector: - app.kubernetes.io/component: backend + app.kubernetes.io/component: querier app.kubernetes.io/instance: loki app.kubernetes.io/name: loki type: ClusterIP diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/querier/workload.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/querier/workload.yaml new file mode 100644 index 0000000..8e884b7 --- /dev/null +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/querier/workload.yaml @@ -0,0 +1,152 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-querier + namespace: syn-loki +spec: + replicas: 3 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + strategy: + rollingUpdate: + maxSurge: 0 + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + annotations: + checksum/config: 0d304c8e8cd773f042bee70064c291b099e0fbd43aff91917a59868f1e7ccb2c + kubectl.kubernetes.io/default-container: querier + labels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=querier + env: + - name: GOMEMLIMIT + value: 3481MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: querier + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 4Gi + requests: + cpu: 1 + memory: 2Gi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 30 + topologySpreadConstraints: + - labelSelector: + matchLabels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + maxSkew: 1 + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: ScheduleAnyway + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/query-frontend/service.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/query-frontend/service.yaml new file mode 100644 index 0000000..e4fb538 --- /dev/null +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/query-frontend/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-query-frontend + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-query-frontend-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/query-frontend/workload.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/query-frontend/workload.yaml new file mode 100644 index 0000000..d530387 --- /dev/null +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/query-frontend/workload.yaml @@ -0,0 +1,143 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-query-frontend + namespace: syn-loki +spec: + replicas: 2 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + strategy: + rollingUpdate: + maxSurge: 0 + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + annotations: + checksum/config: 0d304c8e8cd773f042bee70064c291b099e0fbd43aff91917a59868f1e7ccb2c + kubectl.kubernetes.io/default-container: query-frontend + labels: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=query-frontend + env: + - name: GOMEMLIMIT + value: 1740MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: query-frontend + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 2Gi + requests: + cpu: 1 + memory: 1Gi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 30 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/backend/pdb.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/query-scheduler/pdb.yaml similarity index 73% rename from tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/backend/pdb.yaml rename to tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/query-scheduler/pdb.yaml index 5252d36..1331b7c 100644 --- a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/backend/pdb.yaml +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/query-scheduler/pdb.yaml @@ -2,17 +2,17 @@ apiVersion: policy/v1 kind: PodDisruptionBudget metadata: labels: - app.kubernetes.io/component: backend + app.kubernetes.io/component: query-scheduler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 - name: loki-backend + name: loki-query-scheduler namespace: syn-loki spec: maxUnavailable: 1 selector: matchLabels: - app.kubernetes.io/component: backend + app.kubernetes.io/component: query-scheduler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/query-scheduler/service.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/query-scheduler/service.yaml new file mode 100644 index 0000000..244ac9b --- /dev/null +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/query-scheduler/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-query-scheduler + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-query-scheduler-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/query-scheduler/workload.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/query-scheduler/workload.yaml new file mode 100644 index 0000000..e309432 --- /dev/null +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/query-scheduler/workload.yaml @@ -0,0 +1,135 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-query-scheduler + namespace: syn-loki +spec: + replicas: 2 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + strategy: + rollingUpdate: + maxSurge: 0 + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + annotations: + checksum/config: 0d304c8e8cd773f042bee70064c291b099e0fbd43aff91917a59868f1e7ccb2c + kubectl.kubernetes.io/default-container: query-scheduler + labels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=query-scheduler + env: + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: query-scheduler + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 30 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/read/pdb.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/results-cache/pdb.yaml similarity index 63% rename from tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/read/pdb.yaml rename to tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/results-cache/pdb.yaml index c617988..e0dd622 100644 --- a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/read/pdb.yaml +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/results-cache/pdb.yaml @@ -2,17 +2,15 @@ apiVersion: policy/v1 kind: PodDisruptionBudget metadata: labels: - app.kubernetes.io/component: read + app.kubernetes.io/component: memcached-results-cache app.kubernetes.io/instance: loki app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - name: loki-read + name: loki-results-cache namespace: syn-loki spec: maxUnavailable: 1 selector: matchLabels: - app.kubernetes.io/component: read + app.kubernetes.io/component: memcached-results-cache app.kubernetes.io/instance: loki app.kubernetes.io/name: loki diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/results-cache/statefulset.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/results-cache/statefulset.yaml index f335aba..be0a592 100644 --- a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/results-cache/statefulset.yaml +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/results-cache/statefulset.yaml @@ -13,7 +13,7 @@ metadata: namespace: syn-loki spec: podManagementPolicy: Parallel - replicas: 1 + replicas: 2 selector: matchLabels: app.kubernetes.io/component: memcached-results-cache @@ -66,10 +66,10 @@ spec: timeoutSeconds: 3 resources: limits: - memory: 1229Mi + memory: 614Mi requests: cpu: 500m - memory: 1229Mi + memory: 614Mi securityContext: allowPrivilegeEscalation: false capabilities: diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/read/service.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/ruler/service.yaml similarity index 86% rename from tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/read/service.yaml rename to tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/ruler/service.yaml index 049a2bf..3cb0cf9 100644 --- a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/read/service.yaml +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/ruler/service.yaml @@ -3,12 +3,12 @@ kind: Service metadata: annotations: null labels: - app.kubernetes.io/component: read + app.kubernetes.io/component: ruler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 - name: loki-read + name: loki-ruler namespace: syn-loki spec: ports: @@ -26,7 +26,7 @@ spec: targetPort: grpc publishNotReadyAddresses: true selector: - app.kubernetes.io/component: read + app.kubernetes.io/component: ruler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki type: ClusterIP @@ -36,14 +36,14 @@ kind: Service metadata: annotations: null labels: - app.kubernetes.io/component: read + app.kubernetes.io/component: ruler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 prometheus.io/service-monitor: 'false' variant: headless - name: loki-read-headless + name: loki-ruler-headless namespace: syn-loki spec: clusterIP: None @@ -62,7 +62,7 @@ spec: targetPort: grpc publishNotReadyAddresses: true selector: - app.kubernetes.io/component: read + app.kubernetes.io/component: ruler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki type: ClusterIP diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/ruler/workload.yaml b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/ruler/workload.yaml new file mode 100644 index 0000000..cac7c0f --- /dev/null +++ b/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/ruler/workload.yaml @@ -0,0 +1,139 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + app.kubernetes.io/component: ruler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-ruler + namespace: syn-loki +spec: + replicas: 2 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: ruler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + serviceName: loki-ruler-headless + template: + metadata: + annotations: + checksum/config: 0d304c8e8cd773f042bee70064c291b099e0fbd43aff91917a59868f1e7ccb2c + kubectl.kubernetes.io/default-container: ruler + labels: + app.kubernetes.io/component: ruler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: ruler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=ruler + env: + - name: GOMEMLIMIT + value: 652MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: ruler + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 768Mi + requests: + cpu: 250m + memory: 512Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 300 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/backend/query-scheduler-discovery.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/backend/query-scheduler-discovery.yaml deleted file mode 100644 index bc4a1a5..0000000 --- a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/backend/query-scheduler-discovery.yaml +++ /dev/null @@ -1,28 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - annotations: null - labels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - prometheus.io/service-monitor: 'false' - name: loki-query-scheduler-discovery - namespace: syn-loki -spec: - clusterIP: None - ports: - - name: http-metrics - port: 3100 - protocol: TCP - targetPort: http-metrics - - name: grpc - port: 9095 - protocol: TCP - targetPort: grpc - publishNotReadyAddresses: true - selector: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - type: ClusterIP diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/backend/workload.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/backend/workload.yaml deleted file mode 100644 index d1aad35..0000000 --- a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/backend/workload.yaml +++ /dev/null @@ -1,215 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - labels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - name: loki-backend - namespace: syn-loki -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Delete - whenScaled: Delete - podManagementPolicy: Parallel - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - serviceName: loki-backend-headless - template: - metadata: - annotations: - checksum/config: 024a6bdf8e5f9fcb1b738320856091cf13e30a5fd575d46b637df747723e7f78 - kubectl.kubernetes.io/default-container: backend - labels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/part-of: memberlist - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - topologyKey: kubernetes.io/hostname - automountServiceAccountToken: true - containers: - - args: - - -config.file=/etc/loki/config/config.yaml - - -config.expand-env=true - - -memberlist.advertise-addr=$(POD_IP) - - -target=backend - - -legacy-read-mode=false - env: - - name: GOMEMLIMIT - value: 1740MiB - - name: GOGC - value: '80' - - name: POD_IP - valueFrom: - fieldRef: - fieldPath: status.podIP - envFrom: - - secretRef: - name: loki-bucket-secret - image: docker.io/dockerhub.vshn.net/grafana/loki:3.7.2 - imagePullPolicy: IfNotPresent - livenessProbe: - failureThreshold: 10 - httpGet: - path: /loki/api/v1/status/buildinfo - port: http-metrics - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 1 - name: backend - ports: - - containerPort: 3100 - name: http-metrics - protocol: TCP - - containerPort: 9095 - name: grpc - protocol: TCP - - containerPort: 7946 - name: http-memberlist - protocol: TCP - readinessProbe: - failureThreshold: 3 - httpGet: - path: /ready - port: http-metrics - initialDelaySeconds: 15 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 1 - resources: - limits: - cpu: 2 - memory: 2Gi - requests: - cpu: 0.5 - memory: 1Gi - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - seccompProfile: - type: RuntimeDefault - volumeMounts: - - mountPath: /etc/loki/config - name: config - - mountPath: /etc/loki/runtime-config - name: runtime-config - - mountPath: /var/loki - name: data - - mountPath: /tmp - name: temp - - mountPath: /rules - name: sc-rules-volume - - env: - - name: METHOD - value: WATCH - - name: LABEL - value: loki_rule - - name: FOLDER - value: /rules - - name: RESOURCE - value: both - - name: WATCH_SERVER_TIMEOUT - value: '60' - - name: WATCH_CLIENT_TIMEOUT - value: '60' - - name: LOG_LEVEL - value: INFO - - name: HEALTH_PORT - value: '8080' - image: docker.io/kiwigrid/k8s-sidecar:2.7.4 - imagePullPolicy: IfNotPresent - livenessProbe: - failureThreshold: 3 - httpGet: - path: /healthz - port: http-sidecar - initialDelaySeconds: 30 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 1 - name: loki-sc-rules - ports: - - containerPort: 8080 - name: http-sidecar - protocol: TCP - readinessProbe: - failureThreshold: 3 - httpGet: - path: /healthz - port: http-sidecar - initialDelaySeconds: 3 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 1 - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - seccompProfile: - type: RuntimeDefault - volumeMounts: - - mountPath: /tmp - name: sc-rules-temp - - mountPath: /rules - name: sc-rules-volume - enableServiceLinks: true - securityContext: - fsGroupChangePolicy: OnRootMismatch - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - serviceAccountName: loki - terminationGracePeriodSeconds: 300 - volumes: - - emptyDir: {} - name: temp - - configMap: - items: - - key: config.yaml - path: config.yaml - name: loki - name: config - - configMap: - name: loki-runtime - name: runtime-config - - emptyDir: {} - name: sc-rules-volume - - emptyDir: {} - name: sc-rules-temp - updateStrategy: - rollingUpdate: - partition: 0 - volumeClaimTemplates: - - apiVersion: v1 - kind: PersistentVolumeClaim - metadata: - name: data - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/read/pdb.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/chunks-cache/pdb.yaml similarity index 63% rename from tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/read/pdb.yaml rename to tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/chunks-cache/pdb.yaml index c617988..d150c18 100644 --- a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/read/pdb.yaml +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/chunks-cache/pdb.yaml @@ -2,17 +2,15 @@ apiVersion: policy/v1 kind: PodDisruptionBudget metadata: labels: - app.kubernetes.io/component: read + app.kubernetes.io/component: memcached-chunks-cache app.kubernetes.io/instance: loki app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - name: loki-read + name: loki-chunks-cache namespace: syn-loki spec: maxUnavailable: 1 selector: matchLabels: - app.kubernetes.io/component: read + app.kubernetes.io/component: memcached-chunks-cache app.kubernetes.io/instance: loki app.kubernetes.io/name: loki diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/chunks-cache/statefulset.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/chunks-cache/statefulset.yaml index ad2e0aa..b3b63ff 100644 --- a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/chunks-cache/statefulset.yaml +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/chunks-cache/statefulset.yaml @@ -13,7 +13,7 @@ metadata: namespace: syn-loki spec: podManagementPolicy: Parallel - replicas: 1 + replicas: 2 selector: matchLabels: app.kubernetes.io/component: memcached-chunks-cache @@ -66,10 +66,10 @@ spec: timeoutSeconds: 3 resources: limits: - memory: 9830Mi + memory: 4Gi requests: cpu: 500m - memory: 9830Mi + memory: 4Gi securityContext: allowPrivilegeEscalation: false capabilities: diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/compactor/service.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/compactor/service.yaml new file mode 100644 index 0000000..33dfcac --- /dev/null +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/compactor/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-compactor + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-compactor-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/compactor/workload.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/compactor/workload.yaml new file mode 100644 index 0000000..519f8ae --- /dev/null +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/compactor/workload.yaml @@ -0,0 +1,143 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-compactor + namespace: syn-loki +spec: + podManagementPolicy: Parallel + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + serviceName: loki-compactor-headless + template: + metadata: + annotations: + checksum/config: ef7e4e1428196d5f360adf616f57243174b2d1a6cf5180603f91bc7ba17deaeb + kubectl.kubernetes.io/default-container: compactor + labels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=compactor + env: + - name: GOMEMLIMIT + value: 435MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/dockerhub.vshn.net/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: compactor + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 512Mi + requests: + cpu: 250m + memory: 384Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 30 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data + updateStrategy: + rollingUpdate: + partition: 0 diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/config.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/config.yaml index 3bb6a72..3189c4d 100644 --- a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/config.yaml +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/config.yaml @@ -5,11 +5,11 @@ data: auth_enabled: true bloom_build: builder: - planner_address: loki-backend-headless.syn-loki.svc.cluster.local:9095 + planner_address: loki-bloom-planner-headless.syn-loki.svc.cluster.local:9095 enabled: false bloom_gateway: client: - addresses: dnssrvnoa+_grpc._tcp.loki-backend-headless.syn-loki.svc.cluster.local + addresses: dnssrvnoa+_grpc._tcp.loki-bloom-gateway-headless.syn-loki.svc.cluster.local enabled: false chunk_store_config: chunk_cache_config: @@ -27,7 +27,7 @@ data: max_idle_conns: 72 timeout: 2000ms common: - compactor_grpc_address: 'loki-backend.syn-loki.svc.cluster.local:9095' + compactor_grpc_address: 'loki-compactor.syn-loki.svc.cluster.local:9095' path_prefix: /var/loki replication_factor: 3 storage: @@ -40,10 +40,10 @@ data: s3forcepathstyle: true secret_access_key: ${S3_SECRET_ACCESS_KEY} frontend: - scheduler_address: "" - tail_proxy_url: "" + scheduler_address: loki-query-scheduler-headless.syn-loki.svc.cluster.local:9095 + tail_proxy_url: http://loki-querier.syn-loki.svc.cluster.local:3100 frontend_worker: - scheduler_address: "" + scheduler_address: loki-query-scheduler-headless.syn-loki.svc.cluster.local:9095 index_gateway: mode: simple ingester: @@ -129,14 +129,14 @@ data: working_directory: /var/loki/data/bloomshipper boltdb_shipper: index_gateway_client: - server_address: dns+loki-backend-headless.syn-loki.svc.cluster.local:9095 + server_address: dns+loki-index-gateway-headless.syn-loki.svc.cluster.local:9095 hedging: at: 250ms max_per_second: 20 up_to: 3 tsdb_shipper: index_gateway_client: - server_address: dns+loki-backend-headless.syn-loki.svc.cluster.local:9095 + server_address: dns+loki-index-gateway-headless.syn-loki.svc.cluster.local:9095 use_thanos_objstore: false tracing: enabled: true diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/distributor/service.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/distributor/service.yaml new file mode 100644 index 0000000..16803fe --- /dev/null +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/distributor/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: distributor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-distributor + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: distributor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: distributor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-distributor-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: distributor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/read/workload.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/distributor/workload.yaml similarity index 86% rename from tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/read/workload.yaml rename to tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/distributor/workload.yaml index 2060a84..fabd69d 100644 --- a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/read/workload.yaml +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/distributor/workload.yaml @@ -2,19 +2,19 @@ apiVersion: apps/v1 kind: Deployment metadata: labels: - app.kubernetes.io/component: read + app.kubernetes.io/component: distributor app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 - name: loki-read + name: loki-distributor namespace: syn-loki spec: - replicas: 2 + replicas: 3 revisionHistoryLimit: 10 selector: matchLabels: - app.kubernetes.io/component: read + app.kubernetes.io/component: distributor app.kubernetes.io/instance: loki app.kubernetes.io/name: loki strategy: @@ -24,10 +24,10 @@ spec: template: metadata: annotations: - checksum/config: 024a6bdf8e5f9fcb1b738320856091cf13e30a5fd575d46b637df747723e7f78 - kubectl.kubernetes.io/default-container: read + checksum/config: ef7e4e1428196d5f360adf616f57243174b2d1a6cf5180603f91bc7ba17deaeb + kubectl.kubernetes.io/default-container: distributor labels: - app.kubernetes.io/component: read + app.kubernetes.io/component: distributor app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/part-of: memberlist @@ -39,7 +39,7 @@ spec: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: - app.kubernetes.io/component: read + app.kubernetes.io/component: distributor app.kubernetes.io/instance: loki app.kubernetes.io/name: loki topologyKey: kubernetes.io/hostname @@ -49,7 +49,7 @@ spec: - -config.file=/etc/loki/config/config.yaml - -config.expand-env=true - -memberlist.advertise-addr=$(POD_IP) - - -target=read + - -target=distributor env: - name: GOMEMLIMIT value: 3481MiB @@ -72,7 +72,7 @@ spec: periodSeconds: 30 successThreshold: 1 timeoutSeconds: 1 - name: read + name: distributor ports: - containerPort: 3100 name: http-metrics @@ -96,8 +96,8 @@ spec: limits: memory: 4Gi requests: - cpu: 1 - memory: 3Gi + cpu: 500m + memory: 2Gi securityContext: allowPrivilegeEscalation: false capabilities: @@ -117,8 +117,11 @@ spec: name: temp enableServiceLinks: true securityContext: + fsGroup: 10001 fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 runAsNonRoot: true + runAsUser: 10001 seccompProfile: type: RuntimeDefault serviceAccountName: loki diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/gateway/configmap.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/gateway/configmap.yaml index e1b451f..d5f393e 100644 --- a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/gateway/configmap.yaml +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/gateway/configmap.yaml @@ -215,65 +215,65 @@ data: \ 127.0.0.1;\n deny all;\n server_tokens on; # expose nginx version\n\ \ }\n\n ########################################################\n #\ \ Configure backend targets\n location ^~ /ui {\n \n set $backend\ - \ \"http://loki-read.syn-loki.svc.cluster.local:3100\";\n proxy_pass\ + \ \"http://loki-querier.syn-loki.svc.cluster.local:3100\";\n proxy_pass\ \ $backend$request_uri;\n }\n\n # Distributor\n location = /api/prom/push\ - \ {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-distributor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /loki/api/v1/push\ - \ {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-distributor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /distributor/ring\ - \ {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-distributor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /otlp/v1/logs\ - \ {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-distributor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # Ingester\n \ - \ location = /flush {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ location = /flush {\n \n set $backend \"http://loki-ingester.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location ^~ /ingester/\ - \ {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ingester.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /ingester\ \ {\n \n internal; # to suppress 301\n }\n\n # Ring\n \ - \ location = /ring {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ location = /ring {\n \n set $backend \"http://loki-ingester.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # MemberListKV\n\ - \ location = /memberlist {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ location = /memberlist {\n \n set $backend \"http://loki-ingester.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # Ruler\n location\ - \ = /ruler/ring {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ = /ruler/ring {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /api/prom/rules\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location ^~ /api/prom/rules/\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /loki/api/v1/rules\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location ^~ /loki/api/v1/rules/\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /prometheus/api/v1/alerts\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /prometheus/api/v1/rules\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # Compactor\n \ - \ location = /compactor/ring {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ location = /compactor/ring {\n \n set $backend \"http://loki-compactor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /loki/api/v1/delete\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-compactor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /loki/api/v1/cache/generation_numbers\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-compactor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # IndexGateway\n\ - \ location = /indexgateway/ring {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ location = /indexgateway/ring {\n \n set $backend \"http://loki-index-gateway.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # QueryScheduler\n\ - \ location = /scheduler/ring {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ location = /scheduler/ring {\n \n set $backend \"http://loki-query-scheduler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # Config\n location\ - \ = /config {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ = /config {\n \n set $backend \"http://loki-ingester.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # QueryFrontend,\ \ Querier\n location = /api/prom/tail {\n proxy_set_header Upgrade $http_upgrade;\n\ \ proxy_set_header Connection \"upgrade\";\n \n set $backend \ - \ \"http://loki-read.syn-loki.svc.cluster.local:3100\";\n proxy_pass \ - \ $backend$request_uri;\n }\n location = /loki/api/v1/tail {\n \ - \ proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection \"\ - upgrade\";\n \n set $backend \"http://loki-read.syn-loki.svc.cluster.local:3100\"\ + \ \"http://loki-query-frontend.syn-loki.svc.cluster.local:3100\";\n proxy_pass\ + \ $backend$request_uri;\n }\n location = /loki/api/v1/tail {\n \ + \ proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection\ + \ \"upgrade\";\n \n set $backend \"http://loki-query-frontend.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location ^~ /api/prom/\ - \ {\n \n set $backend \"http://loki-read.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-query-frontend.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /api/prom\ \ {\n \n internal; # to suppress 301\n }\n location ^~\ \ /loki/api/v1/ {\n # pass custom headers set by Grafana as X-Query-Tags\ \ which are logged as key/value pairs in metrics.go log messages\n proxy_set_header\ \ X-Query-Tags \"${query_tags},user=${http_x_grafana_user},dashboard_id=${http_x_dashboard_uid},dashboard_title=${http_x_dashboard_title},panel_id=${http_x_panel_id},panel_title=${http_x_panel_title},source_rule_uid=${http_x_rule_uid},rule_name=${http_x_rule_name},rule_folder=${http_x_rule_folder},rule_version=${http_x_rule_version},rule_source=${http_x_rule_source},rule_type=${http_x_rule_type}\"\ - ;\n \n set $backend \"http://loki-read.syn-loki.svc.cluster.local:3100\"\ + ;\n \n set $backend \"http://loki-query-frontend.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /loki/api/v1\ \ {\n \n internal; # to suppress 301\n }\n }\n}\n" kind: ConfigMap diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/gateway/deployment.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/gateway/deployment.yaml index 427e587..7716f71 100644 --- a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/gateway/deployment.yaml +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/gateway/deployment.yaml @@ -22,7 +22,7 @@ spec: template: metadata: annotations: - checksum/config: 2ac29b210397fb257fb28bb7defc2a7245d4fff101baf745bc1ca1281b373f26 + checksum/config: d983d4b135c64732f88dea989ad8aa77d312f04b272722a7fea4a9f3368128c2 labels: app.kubernetes.io/component: gateway app.kubernetes.io/instance: loki diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/index-gateway/service.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/index-gateway/service.yaml new file mode 100644 index 0000000..ca98c4f --- /dev/null +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/index-gateway/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-index-gateway + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-index-gateway-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/index-gateway/workload.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/index-gateway/workload.yaml new file mode 100644 index 0000000..c111424 --- /dev/null +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/index-gateway/workload.yaml @@ -0,0 +1,141 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-index-gateway + namespace: syn-loki +spec: + replicas: 2 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + serviceName: loki-index-gateway-headless + template: + metadata: + annotations: + checksum/config: ef7e4e1428196d5f360adf616f57243174b2d1a6cf5180603f91bc7ba17deaeb + kubectl.kubernetes.io/default-container: index-gateway + labels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=index-gateway + env: + - name: GOMEMLIMIT + value: 1827MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/dockerhub.vshn.net/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: index-gateway + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 2.1Gi + requests: + cpu: 500m + memory: 768Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 300 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data + updateStrategy: + type: RollingUpdate diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/ingester/pdb.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/ingester/pdb.yaml new file mode 100644 index 0000000..c455ea7 --- /dev/null +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/ingester/pdb.yaml @@ -0,0 +1,23 @@ +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + labels: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-ingester + namespace: syn-loki +spec: + maxUnavailable: 1 + selector: + matchExpressions: + - key: rollout-group + operator: NotIn + values: + - ingester + matchLabels: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/ingester/service.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/ingester/service.yaml new file mode 100644 index 0000000..103726e --- /dev/null +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/ingester/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-ingester + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-ingester-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/write/workload.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/ingester/workload.yaml similarity index 77% rename from tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/write/workload.yaml rename to tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/ingester/workload.yaml index e4be04e..6c143fc 100644 --- a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/write/workload.yaml +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/ingester/workload.yaml @@ -2,12 +2,12 @@ apiVersion: apps/v1 kind: StatefulSet metadata: labels: - app.kubernetes.io/component: write + app.kubernetes.io/component: ingester app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 - name: loki-write + name: loki-ingester namespace: syn-loki spec: podManagementPolicy: Parallel @@ -15,17 +15,17 @@ spec: revisionHistoryLimit: 10 selector: matchLabels: - app.kubernetes.io/component: write + app.kubernetes.io/component: ingester app.kubernetes.io/instance: loki app.kubernetes.io/name: loki - serviceName: loki-write-headless + serviceName: loki-ingester-headless template: metadata: annotations: - checksum/config: 024a6bdf8e5f9fcb1b738320856091cf13e30a5fd575d46b637df747723e7f78 - kubectl.kubernetes.io/default-container: write + checksum/config: ef7e4e1428196d5f360adf616f57243174b2d1a6cf5180603f91bc7ba17deaeb + kubectl.kubernetes.io/default-container: ingester labels: - app.kubernetes.io/component: write + app.kubernetes.io/component: ingester app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/part-of: memberlist @@ -37,7 +37,7 @@ spec: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: - app.kubernetes.io/component: write + app.kubernetes.io/component: ingester app.kubernetes.io/instance: loki app.kubernetes.io/name: loki topologyKey: kubernetes.io/hostname @@ -47,10 +47,11 @@ spec: - -config.file=/etc/loki/config/config.yaml - -config.expand-env=true - -memberlist.advertise-addr=$(POD_IP) - - -target=write + - -target=ingester + - -ingester.availability-zone=zone-default env: - name: GOMEMLIMIT - value: 6963MiB + value: 13926MiB - name: GOGC value: '80' - name: POD_IP @@ -70,7 +71,7 @@ spec: periodSeconds: 30 successThreshold: 1 timeoutSeconds: 1 - name: write + name: ingester ports: - containerPort: 3100 name: http-metrics @@ -92,11 +93,10 @@ spec: timeoutSeconds: 1 resources: limits: - cpu: 3 - memory: 8Gi + memory: 16Gi requests: cpu: 1 - memory: 4Gi + memory: 8Gi securityContext: allowPrivilegeEscalation: false capabilities: @@ -116,12 +116,24 @@ spec: name: temp enableServiceLinks: true securityContext: + fsGroup: 10001 fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 runAsNonRoot: true + runAsUser: 10001 seccompProfile: type: RuntimeDefault serviceAccountName: loki terminationGracePeriodSeconds: 300 + topologySpreadConstraints: + - labelSelector: + matchLabels: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + maxSkew: 1 + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: ScheduleAnyway volumes: - emptyDir: {} name: temp @@ -134,17 +146,7 @@ spec: - configMap: name: loki-runtime name: runtime-config + - emptyDir: {} + name: data updateStrategy: - rollingUpdate: - partition: 0 - volumeClaimTemplates: - - apiVersion: v1 - kind: PersistentVolumeClaim - metadata: - name: data - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi + type: RollingUpdate diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/overrides-exporter/service.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/overrides-exporter/service.yaml new file mode 100644 index 0000000..6373201 --- /dev/null +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/overrides-exporter/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-overrides-exporter + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-overrides-exporter-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/overrides-exporter/workload.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/overrides-exporter/workload.yaml new file mode 100644 index 0000000..33c5f1d --- /dev/null +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/overrides-exporter/workload.yaml @@ -0,0 +1,138 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-overrides-exporter + namespace: syn-loki +spec: + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + template: + metadata: + annotations: + checksum/config: ef7e4e1428196d5f360adf616f57243174b2d1a6cf5180603f91bc7ba17deaeb + kubectl.kubernetes.io/default-container: overrides-exporter + labels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=overrides-exporter + env: + - name: GOMEMLIMIT + value: 108MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/dockerhub.vshn.net/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: overrides-exporter + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 128Mi + requests: + cpu: 100m + memory: 128Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 300 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/backend/service.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/querier/service.yaml similarity index 86% rename from tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/backend/service.yaml rename to tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/querier/service.yaml index 5f7b690..c3ff71d 100644 --- a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/backend/service.yaml +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/querier/service.yaml @@ -3,12 +3,12 @@ kind: Service metadata: annotations: null labels: - app.kubernetes.io/component: backend + app.kubernetes.io/component: querier app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 - name: loki-backend + name: loki-querier namespace: syn-loki spec: ports: @@ -26,7 +26,7 @@ spec: targetPort: grpc publishNotReadyAddresses: true selector: - app.kubernetes.io/component: backend + app.kubernetes.io/component: querier app.kubernetes.io/instance: loki app.kubernetes.io/name: loki type: ClusterIP @@ -36,14 +36,14 @@ kind: Service metadata: annotations: null labels: - app.kubernetes.io/component: backend + app.kubernetes.io/component: querier app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 prometheus.io/service-monitor: 'false' variant: headless - name: loki-backend-headless + name: loki-querier-headless namespace: syn-loki spec: clusterIP: None @@ -62,7 +62,7 @@ spec: targetPort: grpc publishNotReadyAddresses: true selector: - app.kubernetes.io/component: backend + app.kubernetes.io/component: querier app.kubernetes.io/instance: loki app.kubernetes.io/name: loki type: ClusterIP diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/querier/workload.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/querier/workload.yaml new file mode 100644 index 0000000..d6c482a --- /dev/null +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/querier/workload.yaml @@ -0,0 +1,152 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-querier + namespace: syn-loki +spec: + replicas: 3 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + strategy: + rollingUpdate: + maxSurge: 0 + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + annotations: + checksum/config: ef7e4e1428196d5f360adf616f57243174b2d1a6cf5180603f91bc7ba17deaeb + kubectl.kubernetes.io/default-container: querier + labels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=querier + env: + - name: GOMEMLIMIT + value: 3481MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/dockerhub.vshn.net/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: querier + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 4Gi + requests: + cpu: 1 + memory: 2Gi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 30 + topologySpreadConstraints: + - labelSelector: + matchLabels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + maxSkew: 1 + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: ScheduleAnyway + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/query-frontend/service.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/query-frontend/service.yaml new file mode 100644 index 0000000..e4fb538 --- /dev/null +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/query-frontend/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-query-frontend + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-query-frontend-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/query-frontend/workload.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/query-frontend/workload.yaml new file mode 100644 index 0000000..c28970c --- /dev/null +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/query-frontend/workload.yaml @@ -0,0 +1,143 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-query-frontend + namespace: syn-loki +spec: + replicas: 2 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + strategy: + rollingUpdate: + maxSurge: 0 + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + annotations: + checksum/config: ef7e4e1428196d5f360adf616f57243174b2d1a6cf5180603f91bc7ba17deaeb + kubectl.kubernetes.io/default-container: query-frontend + labels: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=query-frontend + env: + - name: GOMEMLIMIT + value: 1740MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/dockerhub.vshn.net/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: query-frontend + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 2Gi + requests: + cpu: 1 + memory: 1Gi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 30 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/backend/pdb.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/query-scheduler/pdb.yaml similarity index 73% rename from tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/backend/pdb.yaml rename to tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/query-scheduler/pdb.yaml index 5252d36..1331b7c 100644 --- a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/backend/pdb.yaml +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/query-scheduler/pdb.yaml @@ -2,17 +2,17 @@ apiVersion: policy/v1 kind: PodDisruptionBudget metadata: labels: - app.kubernetes.io/component: backend + app.kubernetes.io/component: query-scheduler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 - name: loki-backend + name: loki-query-scheduler namespace: syn-loki spec: maxUnavailable: 1 selector: matchLabels: - app.kubernetes.io/component: backend + app.kubernetes.io/component: query-scheduler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/query-scheduler/service.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/query-scheduler/service.yaml new file mode 100644 index 0000000..244ac9b --- /dev/null +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/query-scheduler/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-query-scheduler + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-query-scheduler-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/query-scheduler/workload.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/query-scheduler/workload.yaml new file mode 100644 index 0000000..2142769 --- /dev/null +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/query-scheduler/workload.yaml @@ -0,0 +1,135 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-query-scheduler + namespace: syn-loki +spec: + replicas: 2 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + strategy: + rollingUpdate: + maxSurge: 0 + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + annotations: + checksum/config: ef7e4e1428196d5f360adf616f57243174b2d1a6cf5180603f91bc7ba17deaeb + kubectl.kubernetes.io/default-container: query-scheduler + labels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=query-scheduler + env: + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/dockerhub.vshn.net/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: query-scheduler + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 30 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/results-cache/pdb.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/results-cache/pdb.yaml new file mode 100644 index 0000000..e0dd622 --- /dev/null +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/results-cache/pdb.yaml @@ -0,0 +1,16 @@ +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + labels: + app.kubernetes.io/component: memcached-results-cache + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + name: loki-results-cache + namespace: syn-loki +spec: + maxUnavailable: 1 + selector: + matchLabels: + app.kubernetes.io/component: memcached-results-cache + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/results-cache/statefulset.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/results-cache/statefulset.yaml index 186d545..3ba3ebe 100644 --- a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/results-cache/statefulset.yaml +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/results-cache/statefulset.yaml @@ -13,7 +13,7 @@ metadata: namespace: syn-loki spec: podManagementPolicy: Parallel - replicas: 1 + replicas: 2 selector: matchLabels: app.kubernetes.io/component: memcached-results-cache @@ -66,10 +66,10 @@ spec: timeoutSeconds: 3 resources: limits: - memory: 1229Mi + memory: 614Mi requests: cpu: 500m - memory: 1229Mi + memory: 614Mi securityContext: allowPrivilegeEscalation: false capabilities: diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/write/service.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/ruler/service.yaml similarity index 86% rename from tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/write/service.yaml rename to tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/ruler/service.yaml index f3b375a..3cb0cf9 100644 --- a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/write/service.yaml +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/ruler/service.yaml @@ -3,12 +3,12 @@ kind: Service metadata: annotations: null labels: - app.kubernetes.io/component: write + app.kubernetes.io/component: ruler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 - name: loki-write + name: loki-ruler namespace: syn-loki spec: ports: @@ -26,7 +26,7 @@ spec: targetPort: grpc publishNotReadyAddresses: true selector: - app.kubernetes.io/component: write + app.kubernetes.io/component: ruler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki type: ClusterIP @@ -36,14 +36,14 @@ kind: Service metadata: annotations: null labels: - app.kubernetes.io/component: write + app.kubernetes.io/component: ruler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 prometheus.io/service-monitor: 'false' variant: headless - name: loki-write-headless + name: loki-ruler-headless namespace: syn-loki spec: clusterIP: None @@ -62,7 +62,7 @@ spec: targetPort: grpc publishNotReadyAddresses: true selector: - app.kubernetes.io/component: write + app.kubernetes.io/component: ruler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki type: ClusterIP diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/ruler/workload.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/ruler/workload.yaml new file mode 100644 index 0000000..3f649f0 --- /dev/null +++ b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/ruler/workload.yaml @@ -0,0 +1,139 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + app.kubernetes.io/component: ruler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-ruler + namespace: syn-loki +spec: + replicas: 2 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: ruler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + serviceName: loki-ruler-headless + template: + metadata: + annotations: + checksum/config: ef7e4e1428196d5f360adf616f57243174b2d1a6cf5180603f91bc7ba17deaeb + kubectl.kubernetes.io/default-container: ruler + labels: + app.kubernetes.io/component: ruler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: ruler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=ruler + env: + - name: GOMEMLIMIT + value: 652MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/dockerhub.vshn.net/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: ruler + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 768Mi + requests: + cpu: 250m + memory: 512Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 300 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/write/pdb.yaml b/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/write/pdb.yaml deleted file mode 100644 index f68a86e..0000000 --- a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/write/pdb.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: policy/v1 -kind: PodDisruptionBudget -metadata: - labels: - app.kubernetes.io/component: write - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - name: loki-write - namespace: syn-loki -spec: - maxUnavailable: 1 - selector: - matchLabels: - app.kubernetes.io/component: write - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki diff --git a/tests/golden/legacy/loki/loki/10_helm_loki/loki/templates/chunks-cache/statefulset.yaml b/tests/golden/legacy/loki/loki/10_helm_loki/loki/templates/chunks-cache/statefulset.yaml index 9635774..a92e985 100644 --- a/tests/golden/legacy/loki/loki/10_helm_loki/loki/templates/chunks-cache/statefulset.yaml +++ b/tests/golden/legacy/loki/loki/10_helm_loki/loki/templates/chunks-cache/statefulset.yaml @@ -117,7 +117,8 @@ spec: seccompProfile: type: RuntimeDefault initContainers: [] - nodeSelector: {} + nodeSelector: + appuio.io/node-class: plus securityContext: fsGroup: 11211 runAsGroup: 11211 diff --git a/tests/golden/legacy/loki/loki/10_helm_loki/loki/templates/gateway/deployment.yaml b/tests/golden/legacy/loki/loki/10_helm_loki/loki/templates/gateway/deployment.yaml index b045ee4..5a6dae5 100644 --- a/tests/golden/legacy/loki/loki/10_helm_loki/loki/templates/gateway/deployment.yaml +++ b/tests/golden/legacy/loki/loki/10_helm_loki/loki/templates/gateway/deployment.yaml @@ -116,6 +116,8 @@ spec: name: config subPath: access-log-exporter.yaml enableServiceLinks: true + nodeSelector: + appuio.io/node-class: plus securityContext: fsGroup: 101 runAsGroup: 101 diff --git a/tests/golden/legacy/loki/loki/10_helm_loki/loki/templates/results-cache/statefulset.yaml b/tests/golden/legacy/loki/loki/10_helm_loki/loki/templates/results-cache/statefulset.yaml index f335aba..9d1d896 100644 --- a/tests/golden/legacy/loki/loki/10_helm_loki/loki/templates/results-cache/statefulset.yaml +++ b/tests/golden/legacy/loki/loki/10_helm_loki/loki/templates/results-cache/statefulset.yaml @@ -117,7 +117,8 @@ spec: seccompProfile: type: RuntimeDefault initContainers: [] - nodeSelector: {} + nodeSelector: + appuio.io/node-class: plus securityContext: fsGroup: 11211 runAsGroup: 11211 diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/backend/pdb.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/backend/pdb.yaml deleted file mode 100644 index 5252d36..0000000 --- a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/backend/pdb.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: policy/v1 -kind: PodDisruptionBudget -metadata: - labels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - name: loki-backend - namespace: syn-loki -spec: - maxUnavailable: 1 - selector: - matchLabels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/backend/query-scheduler-discovery.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/backend/query-scheduler-discovery.yaml deleted file mode 100644 index bc4a1a5..0000000 --- a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/backend/query-scheduler-discovery.yaml +++ /dev/null @@ -1,28 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - annotations: null - labels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - prometheus.io/service-monitor: 'false' - name: loki-query-scheduler-discovery - namespace: syn-loki -spec: - clusterIP: None - ports: - - name: http-metrics - port: 3100 - protocol: TCP - targetPort: http-metrics - - name: grpc - port: 9095 - protocol: TCP - targetPort: grpc - publishNotReadyAddresses: true - selector: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - type: ClusterIP diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/backend/service.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/backend/service.yaml deleted file mode 100644 index 5f7b690..0000000 --- a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/backend/service.yaml +++ /dev/null @@ -1,68 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - annotations: null - labels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - name: loki-backend - namespace: syn-loki -spec: - ports: - - name: http-metrics - port: 3100 - protocol: TCP - targetPort: http-metrics - - name: grpc - port: 9095 - protocol: TCP - targetPort: grpc - - name: grpclb - port: 9096 - protocol: TCP - targetPort: grpc - publishNotReadyAddresses: true - selector: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - type: ClusterIP ---- -apiVersion: v1 -kind: Service -metadata: - annotations: null - labels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - prometheus.io/service-monitor: 'false' - variant: headless - name: loki-backend-headless - namespace: syn-loki -spec: - clusterIP: None - ports: - - name: http-metrics - port: 3100 - protocol: TCP - targetPort: http-metrics - - name: grpc - port: 9095 - protocol: TCP - targetPort: grpc - - name: grpclb - port: 9096 - protocol: TCP - targetPort: grpc - publishNotReadyAddresses: true - selector: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - type: ClusterIP diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/backend/workload.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/backend/workload.yaml deleted file mode 100644 index f0c8d48..0000000 --- a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/backend/workload.yaml +++ /dev/null @@ -1,215 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - labels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - name: loki-backend - namespace: syn-loki -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Delete - whenScaled: Delete - podManagementPolicy: Parallel - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - serviceName: loki-backend-headless - template: - metadata: - annotations: - checksum/config: 09875da6ff3675e7cb1be6e5948b7f836890b106faa5f2ac10532104d4a4d3ae - kubectl.kubernetes.io/default-container: backend - labels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/part-of: memberlist - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - topologyKey: kubernetes.io/hostname - automountServiceAccountToken: true - containers: - - args: - - -config.file=/etc/loki/config/config.yaml - - -config.expand-env=true - - -memberlist.advertise-addr=$(POD_IP) - - -target=backend - - -legacy-read-mode=false - env: - - name: GOMEMLIMIT - value: 1740MiB - - name: GOGC - value: '80' - - name: POD_IP - valueFrom: - fieldRef: - fieldPath: status.podIP - envFrom: - - secretRef: - name: loki-bucket-secret - image: docker.io/docker.io/grafana/loki:3.7.2 - imagePullPolicy: IfNotPresent - livenessProbe: - failureThreshold: 10 - httpGet: - path: /loki/api/v1/status/buildinfo - port: http-metrics - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 1 - name: backend - ports: - - containerPort: 3100 - name: http-metrics - protocol: TCP - - containerPort: 9095 - name: grpc - protocol: TCP - - containerPort: 7946 - name: http-memberlist - protocol: TCP - readinessProbe: - failureThreshold: 3 - httpGet: - path: /ready - port: http-metrics - initialDelaySeconds: 15 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 1 - resources: - limits: - cpu: 2 - memory: 2Gi - requests: - cpu: 0.5 - memory: 1Gi - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - seccompProfile: - type: RuntimeDefault - volumeMounts: - - mountPath: /etc/loki/config - name: config - - mountPath: /etc/loki/runtime-config - name: runtime-config - - mountPath: /var/loki - name: data - - mountPath: /tmp - name: temp - - mountPath: /rules - name: sc-rules-volume - - env: - - name: METHOD - value: WATCH - - name: LABEL - value: loki_rule - - name: FOLDER - value: /rules - - name: RESOURCE - value: both - - name: WATCH_SERVER_TIMEOUT - value: '60' - - name: WATCH_CLIENT_TIMEOUT - value: '60' - - name: LOG_LEVEL - value: INFO - - name: HEALTH_PORT - value: '8080' - image: docker.io/kiwigrid/k8s-sidecar:2.7.4 - imagePullPolicy: IfNotPresent - livenessProbe: - failureThreshold: 3 - httpGet: - path: /healthz - port: http-sidecar - initialDelaySeconds: 30 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 1 - name: loki-sc-rules - ports: - - containerPort: 8080 - name: http-sidecar - protocol: TCP - readinessProbe: - failureThreshold: 3 - httpGet: - path: /healthz - port: http-sidecar - initialDelaySeconds: 3 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 1 - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - seccompProfile: - type: RuntimeDefault - volumeMounts: - - mountPath: /tmp - name: sc-rules-temp - - mountPath: /rules - name: sc-rules-volume - enableServiceLinks: true - securityContext: - fsGroupChangePolicy: OnRootMismatch - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - serviceAccountName: loki - terminationGracePeriodSeconds: 300 - volumes: - - emptyDir: {} - name: temp - - configMap: - items: - - key: config.yaml - path: config.yaml - name: loki - name: config - - configMap: - name: loki-runtime - name: runtime-config - - emptyDir: {} - name: sc-rules-volume - - emptyDir: {} - name: sc-rules-temp - updateStrategy: - rollingUpdate: - partition: 0 - volumeClaimTemplates: - - apiVersion: v1 - kind: PersistentVolumeClaim - metadata: - name: data - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/chunks-cache/pdb.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/chunks-cache/pdb.yaml new file mode 100644 index 0000000..d150c18 --- /dev/null +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/chunks-cache/pdb.yaml @@ -0,0 +1,16 @@ +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + labels: + app.kubernetes.io/component: memcached-chunks-cache + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + name: loki-chunks-cache + namespace: syn-loki +spec: + maxUnavailable: 1 + selector: + matchLabels: + app.kubernetes.io/component: memcached-chunks-cache + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/chunks-cache/statefulset.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/chunks-cache/statefulset.yaml index 4047ad2..31cdc04 100644 --- a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/chunks-cache/statefulset.yaml +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/chunks-cache/statefulset.yaml @@ -13,7 +13,7 @@ metadata: namespace: syn-loki spec: podManagementPolicy: Parallel - replicas: 1 + replicas: 2 selector: matchLabels: app.kubernetes.io/component: memcached-chunks-cache @@ -66,10 +66,10 @@ spec: timeoutSeconds: 3 resources: limits: - memory: 9830Mi + memory: 4Gi requests: cpu: 500m - memory: 9830Mi + memory: 4Gi securityContext: allowPrivilegeEscalation: false capabilities: diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/compactor/service.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/compactor/service.yaml new file mode 100644 index 0000000..33dfcac --- /dev/null +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/compactor/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-compactor + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-compactor-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/compactor/workload.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/compactor/workload.yaml new file mode 100644 index 0000000..9a65672 --- /dev/null +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/compactor/workload.yaml @@ -0,0 +1,140 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-compactor + namespace: syn-loki +spec: + podManagementPolicy: Parallel + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + serviceName: loki-compactor-headless + template: + metadata: + annotations: + checksum/config: 1828e811800360afcf724104a3d6d070719044f5e719d64ddfca1d89fda367c5 + kubectl.kubernetes.io/default-container: compactor + labels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=compactor + env: + - name: GOMEMLIMIT + value: 435MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: compactor + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 512Mi + requests: + cpu: 250m + memory: 384Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroupChangePolicy: OnRootMismatch + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 30 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data + updateStrategy: + rollingUpdate: + partition: 0 diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/config.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/config.yaml index 54b691c..ff7f138 100644 --- a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/config.yaml +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/config.yaml @@ -5,11 +5,11 @@ data: auth_enabled: true bloom_build: builder: - planner_address: loki-backend-headless.syn-loki.svc.cluster.local:9095 + planner_address: loki-bloom-planner-headless.syn-loki.svc.cluster.local:9095 enabled: false bloom_gateway: client: - addresses: dnssrvnoa+_grpc._tcp.loki-backend-headless.syn-loki.svc.cluster.local + addresses: dnssrvnoa+_grpc._tcp.loki-bloom-gateway-headless.syn-loki.svc.cluster.local enabled: false chunk_store_config: chunk_cache_config: @@ -27,7 +27,7 @@ data: max_idle_conns: 72 timeout: 2000ms common: - compactor_grpc_address: 'loki-backend.syn-loki.svc.cluster.local:9095' + compactor_grpc_address: 'loki-compactor.syn-loki.svc.cluster.local:9095' path_prefix: /var/loki replication_factor: 3 storage: @@ -45,10 +45,10 @@ data: retention_enabled: true working_directory: /var/loki/compactor/retention frontend: - scheduler_address: "" - tail_proxy_url: "" + scheduler_address: loki-query-scheduler-headless.syn-loki.svc.cluster.local:9095 + tail_proxy_url: http://loki-querier.syn-loki.svc.cluster.local:3100 frontend_worker: - scheduler_address: "" + scheduler_address: loki-query-scheduler-headless.syn-loki.svc.cluster.local:9095 index_gateway: mode: simple ingester: @@ -134,14 +134,14 @@ data: working_directory: /var/loki/data/bloomshipper boltdb_shipper: index_gateway_client: - server_address: dns+loki-backend-headless.syn-loki.svc.cluster.local:9095 + server_address: dns+loki-index-gateway-headless.syn-loki.svc.cluster.local:9095 hedging: at: 250ms max_per_second: 20 up_to: 3 tsdb_shipper: index_gateway_client: - server_address: dns+loki-backend-headless.syn-loki.svc.cluster.local:9095 + server_address: dns+loki-index-gateway-headless.syn-loki.svc.cluster.local:9095 use_thanos_objstore: false tracing: enabled: true diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/distributor/service.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/distributor/service.yaml new file mode 100644 index 0000000..16803fe --- /dev/null +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/distributor/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: distributor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-distributor + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: distributor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: distributor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-distributor-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: distributor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/read/workload.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/distributor/workload.yaml similarity index 88% rename from tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/read/workload.yaml rename to tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/distributor/workload.yaml index b34e1b9..649d822 100644 --- a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/read/workload.yaml +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/distributor/workload.yaml @@ -2,19 +2,19 @@ apiVersion: apps/v1 kind: Deployment metadata: labels: - app.kubernetes.io/component: read + app.kubernetes.io/component: distributor app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 - name: loki-read + name: loki-distributor namespace: syn-loki spec: - replicas: 2 + replicas: 3 revisionHistoryLimit: 10 selector: matchLabels: - app.kubernetes.io/component: read + app.kubernetes.io/component: distributor app.kubernetes.io/instance: loki app.kubernetes.io/name: loki strategy: @@ -24,10 +24,10 @@ spec: template: metadata: annotations: - checksum/config: b3924dfbea23502aac68c3a6a0d39ee535670207bfc6a359ac5b079f534861c1 - kubectl.kubernetes.io/default-container: read + checksum/config: 1828e811800360afcf724104a3d6d070719044f5e719d64ddfca1d89fda367c5 + kubectl.kubernetes.io/default-container: distributor labels: - app.kubernetes.io/component: read + app.kubernetes.io/component: distributor app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/part-of: memberlist @@ -39,7 +39,7 @@ spec: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: - app.kubernetes.io/component: read + app.kubernetes.io/component: distributor app.kubernetes.io/instance: loki app.kubernetes.io/name: loki topologyKey: kubernetes.io/hostname @@ -49,7 +49,7 @@ spec: - -config.file=/etc/loki/config/config.yaml - -config.expand-env=true - -memberlist.advertise-addr=$(POD_IP) - - -target=read + - -target=distributor env: - name: GOMEMLIMIT value: 3481MiB @@ -72,7 +72,7 @@ spec: periodSeconds: 30 successThreshold: 1 timeoutSeconds: 1 - name: read + name: distributor ports: - containerPort: 3100 name: http-metrics @@ -96,8 +96,8 @@ spec: limits: memory: 4Gi requests: - cpu: 1 - memory: 3Gi + cpu: 500m + memory: 2Gi securityContext: allowPrivilegeEscalation: false capabilities: diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/gateway/configmap.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/gateway/configmap.yaml index b21aa60..cebe293 100644 --- a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/gateway/configmap.yaml +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/gateway/configmap.yaml @@ -216,65 +216,65 @@ data: \ off;\n allow 127.0.0.1;\n deny all;\n server_tokens on; # expose\ \ nginx version\n }\n\n ########################################################\n\ \ # Configure backend targets\n location ^~ /ui {\n \n set $backend\ - \ \"http://loki-read.syn-loki.svc.cluster.local:3100\";\n proxy_pass\ + \ \"http://loki-querier.syn-loki.svc.cluster.local:3100\";\n proxy_pass\ \ $backend$request_uri;\n }\n\n # Distributor\n location = /api/prom/push\ - \ {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-distributor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /loki/api/v1/push\ - \ {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-distributor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /distributor/ring\ - \ {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-distributor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /otlp/v1/logs\ - \ {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-distributor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # Ingester\n \ - \ location = /flush {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ location = /flush {\n \n set $backend \"http://loki-ingester.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location ^~ /ingester/\ - \ {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ingester.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /ingester\ \ {\n \n internal; # to suppress 301\n }\n\n # Ring\n \ - \ location = /ring {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ location = /ring {\n \n set $backend \"http://loki-ingester.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # MemberListKV\n\ - \ location = /memberlist {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ location = /memberlist {\n \n set $backend \"http://loki-ingester.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # Ruler\n location\ - \ = /ruler/ring {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ = /ruler/ring {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /api/prom/rules\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location ^~ /api/prom/rules/\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /loki/api/v1/rules\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location ^~ /loki/api/v1/rules/\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /prometheus/api/v1/alerts\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /prometheus/api/v1/rules\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # Compactor\n \ - \ location = /compactor/ring {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ location = /compactor/ring {\n \n set $backend \"http://loki-compactor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /loki/api/v1/delete\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-compactor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /loki/api/v1/cache/generation_numbers\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-compactor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # IndexGateway\n\ - \ location = /indexgateway/ring {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ location = /indexgateway/ring {\n \n set $backend \"http://loki-index-gateway.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # QueryScheduler\n\ - \ location = /scheduler/ring {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ location = /scheduler/ring {\n \n set $backend \"http://loki-query-scheduler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # Config\n location\ - \ = /config {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ = /config {\n \n set $backend \"http://loki-ingester.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # QueryFrontend,\ \ Querier\n location = /api/prom/tail {\n proxy_set_header Upgrade $http_upgrade;\n\ \ proxy_set_header Connection \"upgrade\";\n \n set $backend \ - \ \"http://loki-read.syn-loki.svc.cluster.local:3100\";\n proxy_pass \ - \ $backend$request_uri;\n }\n location = /loki/api/v1/tail {\n \ - \ proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection \"\ - upgrade\";\n \n set $backend \"http://loki-read.syn-loki.svc.cluster.local:3100\"\ + \ \"http://loki-query-frontend.syn-loki.svc.cluster.local:3100\";\n proxy_pass\ + \ $backend$request_uri;\n }\n location = /loki/api/v1/tail {\n \ + \ proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection\ + \ \"upgrade\";\n \n set $backend \"http://loki-query-frontend.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location ^~ /api/prom/\ - \ {\n \n set $backend \"http://loki-read.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-query-frontend.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /api/prom\ \ {\n \n internal; # to suppress 301\n }\n location ^~\ \ /loki/api/v1/ {\n # pass custom headers set by Grafana as X-Query-Tags\ \ which are logged as key/value pairs in metrics.go log messages\n proxy_set_header\ \ X-Query-Tags \"${query_tags},user=${http_x_grafana_user},dashboard_id=${http_x_dashboard_uid},dashboard_title=${http_x_dashboard_title},panel_id=${http_x_panel_id},panel_title=${http_x_panel_title},source_rule_uid=${http_x_rule_uid},rule_name=${http_x_rule_name},rule_folder=${http_x_rule_folder},rule_version=${http_x_rule_version},rule_source=${http_x_rule_source},rule_type=${http_x_rule_type}\"\ - ;\n \n set $backend \"http://loki-read.syn-loki.svc.cluster.local:3100\"\ + ;\n \n set $backend \"http://loki-query-frontend.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /loki/api/v1\ \ {\n \n internal; # to suppress 301\n }\n }\n}\n" kind: ConfigMap diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/gateway/deployment.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/gateway/deployment.yaml index 39caed4..6ea83af 100644 --- a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/gateway/deployment.yaml +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/gateway/deployment.yaml @@ -22,7 +22,7 @@ spec: template: metadata: annotations: - checksum/config: b8faea8335969e02cf432dccb4a9ceccc57121893d0a38a66ed36ff1cad128da + checksum/config: 2734d4d185f7285b14e8d4e8a9e36ba3ac5e20c70e771896164370c70ef7089a labels: app.kubernetes.io/component: gateway app.kubernetes.io/instance: loki diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/index-gateway/service.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/index-gateway/service.yaml new file mode 100644 index 0000000..ca98c4f --- /dev/null +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/index-gateway/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-index-gateway + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-index-gateway-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/index-gateway/workload.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/index-gateway/workload.yaml new file mode 100644 index 0000000..02c425d --- /dev/null +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/index-gateway/workload.yaml @@ -0,0 +1,138 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-index-gateway + namespace: syn-loki +spec: + replicas: 2 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + serviceName: loki-index-gateway-headless + template: + metadata: + annotations: + checksum/config: 1828e811800360afcf724104a3d6d070719044f5e719d64ddfca1d89fda367c5 + kubectl.kubernetes.io/default-container: index-gateway + labels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=index-gateway + env: + - name: GOMEMLIMIT + value: 1827MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: index-gateway + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 2.1Gi + requests: + cpu: 500m + memory: 768Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroupChangePolicy: OnRootMismatch + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 300 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data + updateStrategy: + type: RollingUpdate diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/ingester/pdb.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/ingester/pdb.yaml new file mode 100644 index 0000000..c455ea7 --- /dev/null +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/ingester/pdb.yaml @@ -0,0 +1,23 @@ +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + labels: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-ingester + namespace: syn-loki +spec: + maxUnavailable: 1 + selector: + matchExpressions: + - key: rollout-group + operator: NotIn + values: + - ingester + matchLabels: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/ingester/service.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/ingester/service.yaml new file mode 100644 index 0000000..103726e --- /dev/null +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/ingester/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-ingester + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-ingester-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/write/workload.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/ingester/workload.yaml similarity index 78% rename from tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/write/workload.yaml rename to tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/ingester/workload.yaml index 0ca43c6..2f98c9f 100644 --- a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/write/workload.yaml +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/ingester/workload.yaml @@ -2,12 +2,12 @@ apiVersion: apps/v1 kind: StatefulSet metadata: labels: - app.kubernetes.io/component: write + app.kubernetes.io/component: ingester app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 - name: loki-write + name: loki-ingester namespace: syn-loki spec: podManagementPolicy: Parallel @@ -15,17 +15,17 @@ spec: revisionHistoryLimit: 10 selector: matchLabels: - app.kubernetes.io/component: write + app.kubernetes.io/component: ingester app.kubernetes.io/instance: loki app.kubernetes.io/name: loki - serviceName: loki-write-headless + serviceName: loki-ingester-headless template: metadata: annotations: - checksum/config: 09875da6ff3675e7cb1be6e5948b7f836890b106faa5f2ac10532104d4a4d3ae - kubectl.kubernetes.io/default-container: write + checksum/config: 1828e811800360afcf724104a3d6d070719044f5e719d64ddfca1d89fda367c5 + kubectl.kubernetes.io/default-container: ingester labels: - app.kubernetes.io/component: write + app.kubernetes.io/component: ingester app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/part-of: memberlist @@ -37,7 +37,7 @@ spec: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: - app.kubernetes.io/component: write + app.kubernetes.io/component: ingester app.kubernetes.io/instance: loki app.kubernetes.io/name: loki topologyKey: kubernetes.io/hostname @@ -47,10 +47,11 @@ spec: - -config.file=/etc/loki/config/config.yaml - -config.expand-env=true - -memberlist.advertise-addr=$(POD_IP) - - -target=write + - -target=ingester + - -ingester.availability-zone=zone-default env: - name: GOMEMLIMIT - value: 6963MiB + value: 13926MiB - name: GOGC value: '80' - name: POD_IP @@ -70,7 +71,7 @@ spec: periodSeconds: 30 successThreshold: 1 timeoutSeconds: 1 - name: write + name: ingester ports: - containerPort: 3100 name: http-metrics @@ -92,11 +93,10 @@ spec: timeoutSeconds: 1 resources: limits: - cpu: 3 - memory: 8Gi + memory: 16Gi requests: cpu: 1 - memory: 4Gi + memory: 8Gi securityContext: allowPrivilegeEscalation: false capabilities: @@ -122,6 +122,15 @@ spec: type: RuntimeDefault serviceAccountName: loki terminationGracePeriodSeconds: 300 + topologySpreadConstraints: + - labelSelector: + matchLabels: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + maxSkew: 1 + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: ScheduleAnyway volumes: - emptyDir: {} name: temp @@ -134,17 +143,7 @@ spec: - configMap: name: loki-runtime name: runtime-config + - emptyDir: {} + name: data updateStrategy: - rollingUpdate: - partition: 0 - volumeClaimTemplates: - - apiVersion: v1 - kind: PersistentVolumeClaim - metadata: - name: data - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi + type: RollingUpdate diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/overrides-exporter/service.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/overrides-exporter/service.yaml new file mode 100644 index 0000000..6373201 --- /dev/null +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/overrides-exporter/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-overrides-exporter + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-overrides-exporter-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/overrides-exporter/workload.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/overrides-exporter/workload.yaml new file mode 100644 index 0000000..3519f99 --- /dev/null +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/overrides-exporter/workload.yaml @@ -0,0 +1,135 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-overrides-exporter + namespace: syn-loki +spec: + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + template: + metadata: + annotations: + checksum/config: 1828e811800360afcf724104a3d6d070719044f5e719d64ddfca1d89fda367c5 + kubectl.kubernetes.io/default-container: overrides-exporter + labels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=overrides-exporter + env: + - name: GOMEMLIMIT + value: 108MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: overrides-exporter + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 128Mi + requests: + cpu: 100m + memory: 128Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroupChangePolicy: OnRootMismatch + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 300 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/querier/service.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/querier/service.yaml new file mode 100644 index 0000000..c3ff71d --- /dev/null +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/querier/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-querier + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-querier-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/querier/workload.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/querier/workload.yaml new file mode 100644 index 0000000..951f2d6 --- /dev/null +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/querier/workload.yaml @@ -0,0 +1,149 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-querier + namespace: syn-loki +spec: + replicas: 3 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + strategy: + rollingUpdate: + maxSurge: 0 + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + annotations: + checksum/config: 1828e811800360afcf724104a3d6d070719044f5e719d64ddfca1d89fda367c5 + kubectl.kubernetes.io/default-container: querier + labels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=querier + env: + - name: GOMEMLIMIT + value: 3481MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: querier + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 4Gi + requests: + cpu: 1 + memory: 2Gi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroupChangePolicy: OnRootMismatch + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 30 + topologySpreadConstraints: + - labelSelector: + matchLabels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + maxSkew: 1 + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: ScheduleAnyway + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/query-frontend/service.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/query-frontend/service.yaml new file mode 100644 index 0000000..e4fb538 --- /dev/null +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/query-frontend/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-query-frontend + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-query-frontend-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/read/workload.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/query-frontend/workload.yaml similarity index 86% rename from tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/read/workload.yaml rename to tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/query-frontend/workload.yaml index b34e1b9..6a89207 100644 --- a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/read/workload.yaml +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/query-frontend/workload.yaml @@ -2,32 +2,33 @@ apiVersion: apps/v1 kind: Deployment metadata: labels: - app.kubernetes.io/component: read + app.kubernetes.io/component: query-frontend app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 - name: loki-read + name: loki-query-frontend namespace: syn-loki spec: replicas: 2 revisionHistoryLimit: 10 selector: matchLabels: - app.kubernetes.io/component: read + app.kubernetes.io/component: query-frontend app.kubernetes.io/instance: loki app.kubernetes.io/name: loki strategy: rollingUpdate: maxSurge: 0 maxUnavailable: 1 + type: RollingUpdate template: metadata: annotations: - checksum/config: b3924dfbea23502aac68c3a6a0d39ee535670207bfc6a359ac5b079f534861c1 - kubectl.kubernetes.io/default-container: read + checksum/config: 1828e811800360afcf724104a3d6d070719044f5e719d64ddfca1d89fda367c5 + kubectl.kubernetes.io/default-container: query-frontend labels: - app.kubernetes.io/component: read + app.kubernetes.io/component: query-frontend app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/part-of: memberlist @@ -39,7 +40,7 @@ spec: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: - app.kubernetes.io/component: read + app.kubernetes.io/component: query-frontend app.kubernetes.io/instance: loki app.kubernetes.io/name: loki topologyKey: kubernetes.io/hostname @@ -49,10 +50,10 @@ spec: - -config.file=/etc/loki/config/config.yaml - -config.expand-env=true - -memberlist.advertise-addr=$(POD_IP) - - -target=read + - -target=query-frontend env: - name: GOMEMLIMIT - value: 3481MiB + value: 1740MiB - name: GOGC value: '80' - name: POD_IP @@ -72,7 +73,7 @@ spec: periodSeconds: 30 successThreshold: 1 timeoutSeconds: 1 - name: read + name: query-frontend ports: - containerPort: 3100 name: http-metrics @@ -94,10 +95,10 @@ spec: timeoutSeconds: 1 resources: limits: - memory: 4Gi + memory: 2Gi requests: cpu: 1 - memory: 3Gi + memory: 1Gi securityContext: allowPrivilegeEscalation: false capabilities: diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/read/pdb.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/query-scheduler/pdb.yaml similarity index 73% rename from tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/read/pdb.yaml rename to tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/query-scheduler/pdb.yaml index c617988..1331b7c 100644 --- a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/read/pdb.yaml +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/query-scheduler/pdb.yaml @@ -2,17 +2,17 @@ apiVersion: policy/v1 kind: PodDisruptionBudget metadata: labels: - app.kubernetes.io/component: read + app.kubernetes.io/component: query-scheduler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 - name: loki-read + name: loki-query-scheduler namespace: syn-loki spec: maxUnavailable: 1 selector: matchLabels: - app.kubernetes.io/component: read + app.kubernetes.io/component: query-scheduler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/query-scheduler/service.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/query-scheduler/service.yaml new file mode 100644 index 0000000..244ac9b --- /dev/null +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/query-scheduler/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-query-scheduler + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-query-scheduler-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/query-scheduler/workload.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/query-scheduler/workload.yaml new file mode 100644 index 0000000..22e2880 --- /dev/null +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/query-scheduler/workload.yaml @@ -0,0 +1,132 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-query-scheduler + namespace: syn-loki +spec: + replicas: 2 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + strategy: + rollingUpdate: + maxSurge: 0 + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + annotations: + checksum/config: 1828e811800360afcf724104a3d6d070719044f5e719d64ddfca1d89fda367c5 + kubectl.kubernetes.io/default-container: query-scheduler + labels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=query-scheduler + env: + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: query-scheduler + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroupChangePolicy: OnRootMismatch + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 30 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/read/service.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/read/service.yaml deleted file mode 100644 index 049a2bf..0000000 --- a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/read/service.yaml +++ /dev/null @@ -1,68 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - annotations: null - labels: - app.kubernetes.io/component: read - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - name: loki-read - namespace: syn-loki -spec: - ports: - - name: http-metrics - port: 3100 - protocol: TCP - targetPort: http-metrics - - name: grpc - port: 9095 - protocol: TCP - targetPort: grpc - - name: grpclb - port: 9096 - protocol: TCP - targetPort: grpc - publishNotReadyAddresses: true - selector: - app.kubernetes.io/component: read - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - type: ClusterIP ---- -apiVersion: v1 -kind: Service -metadata: - annotations: null - labels: - app.kubernetes.io/component: read - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - prometheus.io/service-monitor: 'false' - variant: headless - name: loki-read-headless - namespace: syn-loki -spec: - clusterIP: None - ports: - - name: http-metrics - port: 3100 - protocol: TCP - targetPort: http-metrics - - name: grpc - port: 9095 - protocol: TCP - targetPort: grpc - - name: grpclb - port: 9096 - protocol: TCP - targetPort: grpc - publishNotReadyAddresses: true - selector: - app.kubernetes.io/component: read - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - type: ClusterIP diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/results-cache/pdb.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/results-cache/pdb.yaml new file mode 100644 index 0000000..e0dd622 --- /dev/null +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/results-cache/pdb.yaml @@ -0,0 +1,16 @@ +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + labels: + app.kubernetes.io/component: memcached-results-cache + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + name: loki-results-cache + namespace: syn-loki +spec: + maxUnavailable: 1 + selector: + matchLabels: + app.kubernetes.io/component: memcached-results-cache + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/results-cache/statefulset.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/results-cache/statefulset.yaml index 17821e8..69fce20 100644 --- a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/results-cache/statefulset.yaml +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/results-cache/statefulset.yaml @@ -13,7 +13,7 @@ metadata: namespace: syn-loki spec: podManagementPolicy: Parallel - replicas: 1 + replicas: 2 selector: matchLabels: app.kubernetes.io/component: memcached-results-cache @@ -66,10 +66,10 @@ spec: timeoutSeconds: 3 resources: limits: - memory: 1229Mi + memory: 614Mi requests: cpu: 500m - memory: 1229Mi + memory: 614Mi securityContext: allowPrivilegeEscalation: false capabilities: diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/read/service.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/ruler/service.yaml similarity index 86% rename from tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/read/service.yaml rename to tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/ruler/service.yaml index 049a2bf..3cb0cf9 100644 --- a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/read/service.yaml +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/ruler/service.yaml @@ -3,12 +3,12 @@ kind: Service metadata: annotations: null labels: - app.kubernetes.io/component: read + app.kubernetes.io/component: ruler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 - name: loki-read + name: loki-ruler namespace: syn-loki spec: ports: @@ -26,7 +26,7 @@ spec: targetPort: grpc publishNotReadyAddresses: true selector: - app.kubernetes.io/component: read + app.kubernetes.io/component: ruler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki type: ClusterIP @@ -36,14 +36,14 @@ kind: Service metadata: annotations: null labels: - app.kubernetes.io/component: read + app.kubernetes.io/component: ruler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 prometheus.io/service-monitor: 'false' variant: headless - name: loki-read-headless + name: loki-ruler-headless namespace: syn-loki spec: clusterIP: None @@ -62,7 +62,7 @@ spec: targetPort: grpc publishNotReadyAddresses: true selector: - app.kubernetes.io/component: read + app.kubernetes.io/component: ruler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki type: ClusterIP diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/ruler/workload.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/ruler/workload.yaml new file mode 100644 index 0000000..c94537c --- /dev/null +++ b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/ruler/workload.yaml @@ -0,0 +1,136 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + app.kubernetes.io/component: ruler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-ruler + namespace: syn-loki +spec: + replicas: 2 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: ruler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + serviceName: loki-ruler-headless + template: + metadata: + annotations: + checksum/config: 1828e811800360afcf724104a3d6d070719044f5e719d64ddfca1d89fda367c5 + kubectl.kubernetes.io/default-container: ruler + labels: + app.kubernetes.io/component: ruler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: ruler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=ruler + env: + - name: GOMEMLIMIT + value: 652MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: ruler + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 768Mi + requests: + cpu: 250m + memory: 512Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroupChangePolicy: OnRootMismatch + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 300 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/write/pdb.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/write/pdb.yaml deleted file mode 100644 index f68a86e..0000000 --- a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/write/pdb.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: policy/v1 -kind: PodDisruptionBudget -metadata: - labels: - app.kubernetes.io/component: write - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - name: loki-write - namespace: syn-loki -spec: - maxUnavailable: 1 - selector: - matchLabels: - app.kubernetes.io/component: write - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki diff --git a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/write/service.yaml b/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/write/service.yaml deleted file mode 100644 index f3b375a..0000000 --- a/tests/golden/openshift/loki/loki/10_helm_loki/loki/templates/write/service.yaml +++ /dev/null @@ -1,68 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - annotations: null - labels: - app.kubernetes.io/component: write - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - name: loki-write - namespace: syn-loki -spec: - ports: - - name: http-metrics - port: 3100 - protocol: TCP - targetPort: http-metrics - - name: grpc - port: 9095 - protocol: TCP - targetPort: grpc - - name: grpclb - port: 9096 - protocol: TCP - targetPort: grpc - publishNotReadyAddresses: true - selector: - app.kubernetes.io/component: write - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - type: ClusterIP ---- -apiVersion: v1 -kind: Service -metadata: - annotations: null - labels: - app.kubernetes.io/component: write - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - prometheus.io/service-monitor: 'false' - variant: headless - name: loki-write-headless - namespace: syn-loki -spec: - clusterIP: None - ports: - - name: http-metrics - port: 3100 - protocol: TCP - targetPort: http-metrics - - name: grpc - port: 9095 - protocol: TCP - targetPort: grpc - - name: grpclb - port: 9096 - protocol: TCP - targetPort: grpc - publishNotReadyAddresses: true - selector: - app.kubernetes.io/component: write - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - type: ClusterIP diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/backend/pdb.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/backend/pdb.yaml deleted file mode 100644 index 5252d36..0000000 --- a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/backend/pdb.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: policy/v1 -kind: PodDisruptionBudget -metadata: - labels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - name: loki-backend - namespace: syn-loki -spec: - maxUnavailable: 1 - selector: - matchLabels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/backend/query-scheduler-discovery.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/backend/query-scheduler-discovery.yaml deleted file mode 100644 index bc4a1a5..0000000 --- a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/backend/query-scheduler-discovery.yaml +++ /dev/null @@ -1,28 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - annotations: null - labels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - prometheus.io/service-monitor: 'false' - name: loki-query-scheduler-discovery - namespace: syn-loki -spec: - clusterIP: None - ports: - - name: http-metrics - port: 3100 - protocol: TCP - targetPort: http-metrics - - name: grpc - port: 9095 - protocol: TCP - targetPort: grpc - publishNotReadyAddresses: true - selector: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - type: ClusterIP diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/backend/service.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/backend/service.yaml deleted file mode 100644 index 5f7b690..0000000 --- a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/backend/service.yaml +++ /dev/null @@ -1,68 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - annotations: null - labels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - name: loki-backend - namespace: syn-loki -spec: - ports: - - name: http-metrics - port: 3100 - protocol: TCP - targetPort: http-metrics - - name: grpc - port: 9095 - protocol: TCP - targetPort: grpc - - name: grpclb - port: 9096 - protocol: TCP - targetPort: grpc - publishNotReadyAddresses: true - selector: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - type: ClusterIP ---- -apiVersion: v1 -kind: Service -metadata: - annotations: null - labels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - prometheus.io/service-monitor: 'false' - variant: headless - name: loki-backend-headless - namespace: syn-loki -spec: - clusterIP: None - ports: - - name: http-metrics - port: 3100 - protocol: TCP - targetPort: http-metrics - - name: grpc - port: 9095 - protocol: TCP - targetPort: grpc - - name: grpclb - port: 9096 - protocol: TCP - targetPort: grpc - publishNotReadyAddresses: true - selector: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - type: ClusterIP diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/backend/workload.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/backend/workload.yaml deleted file mode 100644 index 57a602c..0000000 --- a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/backend/workload.yaml +++ /dev/null @@ -1,215 +0,0 @@ -apiVersion: apps/v1 -kind: StatefulSet -metadata: - labels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - name: loki-backend - namespace: syn-loki -spec: - persistentVolumeClaimRetentionPolicy: - whenDeleted: Delete - whenScaled: Delete - podManagementPolicy: Parallel - replicas: 3 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - serviceName: loki-backend-headless - template: - metadata: - annotations: - checksum/config: b3924dfbea23502aac68c3a6a0d39ee535670207bfc6a359ac5b079f534861c1 - kubectl.kubernetes.io/default-container: backend - labels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/part-of: memberlist - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - spec: - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchLabels: - app.kubernetes.io/component: backend - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - topologyKey: kubernetes.io/hostname - automountServiceAccountToken: true - containers: - - args: - - -config.file=/etc/loki/config/config.yaml - - -config.expand-env=true - - -memberlist.advertise-addr=$(POD_IP) - - -target=backend - - -legacy-read-mode=false - env: - - name: GOMEMLIMIT - value: 1740MiB - - name: GOGC - value: '80' - - name: POD_IP - valueFrom: - fieldRef: - fieldPath: status.podIP - envFrom: - - secretRef: - name: loki-bucket-secret - image: docker.io/docker.io/grafana/loki:3.7.2 - imagePullPolicy: IfNotPresent - livenessProbe: - failureThreshold: 10 - httpGet: - path: /loki/api/v1/status/buildinfo - port: http-metrics - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 1 - name: backend - ports: - - containerPort: 3100 - name: http-metrics - protocol: TCP - - containerPort: 9095 - name: grpc - protocol: TCP - - containerPort: 7946 - name: http-memberlist - protocol: TCP - readinessProbe: - failureThreshold: 3 - httpGet: - path: /ready - port: http-metrics - initialDelaySeconds: 15 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 1 - resources: - limits: - cpu: 2 - memory: 2Gi - requests: - cpu: 0.5 - memory: 1Gi - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - seccompProfile: - type: RuntimeDefault - volumeMounts: - - mountPath: /etc/loki/config - name: config - - mountPath: /etc/loki/runtime-config - name: runtime-config - - mountPath: /var/loki - name: data - - mountPath: /tmp - name: temp - - mountPath: /rules - name: sc-rules-volume - - env: - - name: METHOD - value: WATCH - - name: LABEL - value: loki_rule - - name: FOLDER - value: /rules - - name: RESOURCE - value: both - - name: WATCH_SERVER_TIMEOUT - value: '60' - - name: WATCH_CLIENT_TIMEOUT - value: '60' - - name: LOG_LEVEL - value: INFO - - name: HEALTH_PORT - value: '8080' - image: docker.io/kiwigrid/k8s-sidecar:2.7.4 - imagePullPolicy: IfNotPresent - livenessProbe: - failureThreshold: 3 - httpGet: - path: /healthz - port: http-sidecar - initialDelaySeconds: 30 - periodSeconds: 30 - successThreshold: 1 - timeoutSeconds: 1 - name: loki-sc-rules - ports: - - containerPort: 8080 - name: http-sidecar - protocol: TCP - readinessProbe: - failureThreshold: 3 - httpGet: - path: /healthz - port: http-sidecar - initialDelaySeconds: 3 - periodSeconds: 10 - successThreshold: 1 - timeoutSeconds: 1 - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - readOnlyRootFilesystem: true - seccompProfile: - type: RuntimeDefault - volumeMounts: - - mountPath: /tmp - name: sc-rules-temp - - mountPath: /rules - name: sc-rules-volume - enableServiceLinks: true - securityContext: - fsGroupChangePolicy: OnRootMismatch - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - serviceAccountName: loki - terminationGracePeriodSeconds: 300 - volumes: - - emptyDir: {} - name: temp - - configMap: - items: - - key: config.yaml - path: config.yaml - name: loki - name: config - - configMap: - name: loki-runtime - name: runtime-config - - emptyDir: {} - name: sc-rules-volume - - emptyDir: {} - name: sc-rules-temp - updateStrategy: - rollingUpdate: - partition: 0 - volumeClaimTemplates: - - apiVersion: v1 - kind: PersistentVolumeClaim - metadata: - name: data - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/chunks-cache/pdb.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/chunks-cache/pdb.yaml new file mode 100644 index 0000000..d150c18 --- /dev/null +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/chunks-cache/pdb.yaml @@ -0,0 +1,16 @@ +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + labels: + app.kubernetes.io/component: memcached-chunks-cache + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + name: loki-chunks-cache + namespace: syn-loki +spec: + maxUnavailable: 1 + selector: + matchLabels: + app.kubernetes.io/component: memcached-chunks-cache + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/chunks-cache/statefulset.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/chunks-cache/statefulset.yaml index 9635774..4b02514 100644 --- a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/chunks-cache/statefulset.yaml +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/chunks-cache/statefulset.yaml @@ -13,7 +13,7 @@ metadata: namespace: syn-loki spec: podManagementPolicy: Parallel - replicas: 1 + replicas: 2 selector: matchLabels: app.kubernetes.io/component: memcached-chunks-cache @@ -66,10 +66,10 @@ spec: timeoutSeconds: 3 resources: limits: - memory: 9830Mi + memory: 4Gi requests: cpu: 500m - memory: 9830Mi + memory: 4Gi securityContext: allowPrivilegeEscalation: false capabilities: diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/compactor/service.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/compactor/service.yaml new file mode 100644 index 0000000..33dfcac --- /dev/null +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/compactor/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-compactor + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-compactor-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/compactor/workload.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/compactor/workload.yaml new file mode 100644 index 0000000..1f313f6 --- /dev/null +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/compactor/workload.yaml @@ -0,0 +1,143 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-compactor + namespace: syn-loki +spec: + podManagementPolicy: Parallel + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + serviceName: loki-compactor-headless + template: + metadata: + annotations: + checksum/config: 0d304c8e8cd773f042bee70064c291b099e0fbd43aff91917a59868f1e7ccb2c + kubectl.kubernetes.io/default-container: compactor + labels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: compactor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=compactor + env: + - name: GOMEMLIMIT + value: 435MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: compactor + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 512Mi + requests: + cpu: 250m + memory: 384Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 30 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data + updateStrategy: + rollingUpdate: + partition: 0 diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/config.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/config.yaml index 77af818..13935fe 100644 --- a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/config.yaml +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/config.yaml @@ -5,11 +5,11 @@ data: auth_enabled: true bloom_build: builder: - planner_address: loki-backend-headless.syn-loki.svc.cluster.local:9095 + planner_address: loki-bloom-planner-headless.syn-loki.svc.cluster.local:9095 enabled: false bloom_gateway: client: - addresses: dnssrvnoa+_grpc._tcp.loki-backend-headless.syn-loki.svc.cluster.local + addresses: dnssrvnoa+_grpc._tcp.loki-bloom-gateway-headless.syn-loki.svc.cluster.local enabled: false chunk_store_config: chunk_cache_config: @@ -27,7 +27,7 @@ data: max_idle_conns: 72 timeout: 2000ms common: - compactor_grpc_address: 'loki-backend.syn-loki.svc.cluster.local:9095' + compactor_grpc_address: 'loki-compactor.syn-loki.svc.cluster.local:9095' path_prefix: /var/loki replication_factor: 3 storage: @@ -38,10 +38,10 @@ data: s3forcepathstyle: true secret_access_key: ${S3_SECRET_ACCESS_KEY} frontend: - scheduler_address: "" - tail_proxy_url: "" + scheduler_address: loki-query-scheduler-headless.syn-loki.svc.cluster.local:9095 + tail_proxy_url: http://loki-querier.syn-loki.svc.cluster.local:3100 frontend_worker: - scheduler_address: "" + scheduler_address: loki-query-scheduler-headless.syn-loki.svc.cluster.local:9095 index_gateway: mode: simple ingester: @@ -125,14 +125,14 @@ data: working_directory: /var/loki/data/bloomshipper boltdb_shipper: index_gateway_client: - server_address: dns+loki-backend-headless.syn-loki.svc.cluster.local:9095 + server_address: dns+loki-index-gateway-headless.syn-loki.svc.cluster.local:9095 hedging: at: 250ms max_per_second: 20 up_to: 3 tsdb_shipper: index_gateway_client: - server_address: dns+loki-backend-headless.syn-loki.svc.cluster.local:9095 + server_address: dns+loki-index-gateway-headless.syn-loki.svc.cluster.local:9095 use_thanos_objstore: false tracing: enabled: true diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/distributor/service.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/distributor/service.yaml new file mode 100644 index 0000000..16803fe --- /dev/null +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/distributor/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: distributor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-distributor + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: distributor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: distributor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-distributor-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: distributor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/distributor/workload.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/distributor/workload.yaml new file mode 100644 index 0000000..5f5c0f7 --- /dev/null +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/distributor/workload.yaml @@ -0,0 +1,142 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/component: distributor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-distributor + namespace: syn-loki +spec: + replicas: 3 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: distributor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + strategy: + rollingUpdate: + maxSurge: 0 + maxUnavailable: 1 + template: + metadata: + annotations: + checksum/config: 0d304c8e8cd773f042bee70064c291b099e0fbd43aff91917a59868f1e7ccb2c + kubectl.kubernetes.io/default-container: distributor + labels: + app.kubernetes.io/component: distributor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: distributor + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=distributor + env: + - name: GOMEMLIMIT + value: 3481MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: distributor + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 4Gi + requests: + cpu: 500m + memory: 2Gi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 30 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/gateway/configmap.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/gateway/configmap.yaml index e1b451f..d5f393e 100644 --- a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/gateway/configmap.yaml +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/gateway/configmap.yaml @@ -215,65 +215,65 @@ data: \ 127.0.0.1;\n deny all;\n server_tokens on; # expose nginx version\n\ \ }\n\n ########################################################\n #\ \ Configure backend targets\n location ^~ /ui {\n \n set $backend\ - \ \"http://loki-read.syn-loki.svc.cluster.local:3100\";\n proxy_pass\ + \ \"http://loki-querier.syn-loki.svc.cluster.local:3100\";\n proxy_pass\ \ $backend$request_uri;\n }\n\n # Distributor\n location = /api/prom/push\ - \ {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-distributor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /loki/api/v1/push\ - \ {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-distributor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /distributor/ring\ - \ {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-distributor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /otlp/v1/logs\ - \ {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-distributor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # Ingester\n \ - \ location = /flush {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ location = /flush {\n \n set $backend \"http://loki-ingester.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location ^~ /ingester/\ - \ {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ingester.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /ingester\ \ {\n \n internal; # to suppress 301\n }\n\n # Ring\n \ - \ location = /ring {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ location = /ring {\n \n set $backend \"http://loki-ingester.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # MemberListKV\n\ - \ location = /memberlist {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ location = /memberlist {\n \n set $backend \"http://loki-ingester.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # Ruler\n location\ - \ = /ruler/ring {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ = /ruler/ring {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /api/prom/rules\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location ^~ /api/prom/rules/\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /loki/api/v1/rules\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location ^~ /loki/api/v1/rules/\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /prometheus/api/v1/alerts\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /prometheus/api/v1/rules\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-ruler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # Compactor\n \ - \ location = /compactor/ring {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ location = /compactor/ring {\n \n set $backend \"http://loki-compactor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /loki/api/v1/delete\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-compactor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /loki/api/v1/cache/generation_numbers\ - \ {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-compactor.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # IndexGateway\n\ - \ location = /indexgateway/ring {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ location = /indexgateway/ring {\n \n set $backend \"http://loki-index-gateway.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # QueryScheduler\n\ - \ location = /scheduler/ring {\n \n set $backend \"http://loki-backend.syn-loki.svc.cluster.local:3100\"\ + \ location = /scheduler/ring {\n \n set $backend \"http://loki-query-scheduler.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # Config\n location\ - \ = /config {\n \n set $backend \"http://loki-write.syn-loki.svc.cluster.local:3100\"\ + \ = /config {\n \n set $backend \"http://loki-ingester.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n\n # QueryFrontend,\ \ Querier\n location = /api/prom/tail {\n proxy_set_header Upgrade $http_upgrade;\n\ \ proxy_set_header Connection \"upgrade\";\n \n set $backend \ - \ \"http://loki-read.syn-loki.svc.cluster.local:3100\";\n proxy_pass \ - \ $backend$request_uri;\n }\n location = /loki/api/v1/tail {\n \ - \ proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection \"\ - upgrade\";\n \n set $backend \"http://loki-read.syn-loki.svc.cluster.local:3100\"\ + \ \"http://loki-query-frontend.syn-loki.svc.cluster.local:3100\";\n proxy_pass\ + \ $backend$request_uri;\n }\n location = /loki/api/v1/tail {\n \ + \ proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection\ + \ \"upgrade\";\n \n set $backend \"http://loki-query-frontend.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location ^~ /api/prom/\ - \ {\n \n set $backend \"http://loki-read.syn-loki.svc.cluster.local:3100\"\ + \ {\n \n set $backend \"http://loki-query-frontend.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /api/prom\ \ {\n \n internal; # to suppress 301\n }\n location ^~\ \ /loki/api/v1/ {\n # pass custom headers set by Grafana as X-Query-Tags\ \ which are logged as key/value pairs in metrics.go log messages\n proxy_set_header\ \ X-Query-Tags \"${query_tags},user=${http_x_grafana_user},dashboard_id=${http_x_dashboard_uid},dashboard_title=${http_x_dashboard_title},panel_id=${http_x_panel_id},panel_title=${http_x_panel_title},source_rule_uid=${http_x_rule_uid},rule_name=${http_x_rule_name},rule_folder=${http_x_rule_folder},rule_version=${http_x_rule_version},rule_source=${http_x_rule_source},rule_type=${http_x_rule_type}\"\ - ;\n \n set $backend \"http://loki-read.syn-loki.svc.cluster.local:3100\"\ + ;\n \n set $backend \"http://loki-query-frontend.syn-loki.svc.cluster.local:3100\"\ ;\n proxy_pass $backend$request_uri;\n }\n location = /loki/api/v1\ \ {\n \n internal; # to suppress 301\n }\n }\n}\n" kind: ConfigMap diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/gateway/deployment.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/gateway/deployment.yaml index b045ee4..0694fe8 100644 --- a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/gateway/deployment.yaml +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/gateway/deployment.yaml @@ -22,7 +22,7 @@ spec: template: metadata: annotations: - checksum/config: 2ac29b210397fb257fb28bb7defc2a7245d4fff101baf745bc1ca1281b373f26 + checksum/config: d983d4b135c64732f88dea989ad8aa77d312f04b272722a7fea4a9f3368128c2 labels: app.kubernetes.io/component: gateway app.kubernetes.io/instance: loki diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/index-gateway/service.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/index-gateway/service.yaml new file mode 100644 index 0000000..ca98c4f --- /dev/null +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/index-gateway/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-index-gateway + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-index-gateway-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/index-gateway/workload.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/index-gateway/workload.yaml new file mode 100644 index 0000000..1f6b347 --- /dev/null +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/index-gateway/workload.yaml @@ -0,0 +1,141 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-index-gateway + namespace: syn-loki +spec: + replicas: 2 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + serviceName: loki-index-gateway-headless + template: + metadata: + annotations: + checksum/config: 0d304c8e8cd773f042bee70064c291b099e0fbd43aff91917a59868f1e7ccb2c + kubectl.kubernetes.io/default-container: index-gateway + labels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: index-gateway + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=index-gateway + env: + - name: GOMEMLIMIT + value: 1827MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: index-gateway + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 2.1Gi + requests: + cpu: 500m + memory: 768Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 300 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data + updateStrategy: + type: RollingUpdate diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/ingester/pdb.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/ingester/pdb.yaml new file mode 100644 index 0000000..c455ea7 --- /dev/null +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/ingester/pdb.yaml @@ -0,0 +1,23 @@ +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + labels: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-ingester + namespace: syn-loki +spec: + maxUnavailable: 1 + selector: + matchExpressions: + - key: rollout-group + operator: NotIn + values: + - ingester + matchLabels: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/ingester/service.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/ingester/service.yaml new file mode 100644 index 0000000..103726e --- /dev/null +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/ingester/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-ingester + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-ingester-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/write/workload.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/ingester/workload.yaml similarity index 77% rename from tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/write/workload.yaml rename to tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/ingester/workload.yaml index dce5d60..fc1c190 100644 --- a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/write/workload.yaml +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/ingester/workload.yaml @@ -2,12 +2,12 @@ apiVersion: apps/v1 kind: StatefulSet metadata: labels: - app.kubernetes.io/component: write + app.kubernetes.io/component: ingester app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 - name: loki-write + name: loki-ingester namespace: syn-loki spec: podManagementPolicy: Parallel @@ -15,17 +15,17 @@ spec: revisionHistoryLimit: 10 selector: matchLabels: - app.kubernetes.io/component: write + app.kubernetes.io/component: ingester app.kubernetes.io/instance: loki app.kubernetes.io/name: loki - serviceName: loki-write-headless + serviceName: loki-ingester-headless template: metadata: annotations: - checksum/config: b3924dfbea23502aac68c3a6a0d39ee535670207bfc6a359ac5b079f534861c1 - kubectl.kubernetes.io/default-container: write + checksum/config: 0d304c8e8cd773f042bee70064c291b099e0fbd43aff91917a59868f1e7ccb2c + kubectl.kubernetes.io/default-container: ingester labels: - app.kubernetes.io/component: write + app.kubernetes.io/component: ingester app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/part-of: memberlist @@ -37,7 +37,7 @@ spec: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: - app.kubernetes.io/component: write + app.kubernetes.io/component: ingester app.kubernetes.io/instance: loki app.kubernetes.io/name: loki topologyKey: kubernetes.io/hostname @@ -47,10 +47,11 @@ spec: - -config.file=/etc/loki/config/config.yaml - -config.expand-env=true - -memberlist.advertise-addr=$(POD_IP) - - -target=write + - -target=ingester + - -ingester.availability-zone=zone-default env: - name: GOMEMLIMIT - value: 6963MiB + value: 13926MiB - name: GOGC value: '80' - name: POD_IP @@ -70,7 +71,7 @@ spec: periodSeconds: 30 successThreshold: 1 timeoutSeconds: 1 - name: write + name: ingester ports: - containerPort: 3100 name: http-metrics @@ -92,11 +93,10 @@ spec: timeoutSeconds: 1 resources: limits: - cpu: 3 - memory: 8Gi + memory: 16Gi requests: cpu: 1 - memory: 4Gi + memory: 8Gi securityContext: allowPrivilegeEscalation: false capabilities: @@ -116,12 +116,24 @@ spec: name: temp enableServiceLinks: true securityContext: + fsGroup: 10001 fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 runAsNonRoot: true + runAsUser: 10001 seccompProfile: type: RuntimeDefault serviceAccountName: loki terminationGracePeriodSeconds: 300 + topologySpreadConstraints: + - labelSelector: + matchLabels: + app.kubernetes.io/component: ingester + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + maxSkew: 1 + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: ScheduleAnyway volumes: - emptyDir: {} name: temp @@ -134,17 +146,7 @@ spec: - configMap: name: loki-runtime name: runtime-config + - emptyDir: {} + name: data updateStrategy: - rollingUpdate: - partition: 0 - volumeClaimTemplates: - - apiVersion: v1 - kind: PersistentVolumeClaim - metadata: - name: data - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Gi + type: RollingUpdate diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/overrides-exporter/service.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/overrides-exporter/service.yaml new file mode 100644 index 0000000..6373201 --- /dev/null +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/overrides-exporter/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-overrides-exporter + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-overrides-exporter-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/overrides-exporter/workload.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/overrides-exporter/workload.yaml new file mode 100644 index 0000000..8200128 --- /dev/null +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/overrides-exporter/workload.yaml @@ -0,0 +1,138 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-overrides-exporter + namespace: syn-loki +spec: + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + template: + metadata: + annotations: + checksum/config: 0d304c8e8cd773f042bee70064c291b099e0fbd43aff91917a59868f1e7ccb2c + kubectl.kubernetes.io/default-container: overrides-exporter + labels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: overrides-exporter + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=overrides-exporter + env: + - name: GOMEMLIMIT + value: 108MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: overrides-exporter + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 128Mi + requests: + cpu: 100m + memory: 128Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 300 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/querier/service.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/querier/service.yaml new file mode 100644 index 0000000..c3ff71d --- /dev/null +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/querier/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-querier + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-querier-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/querier/workload.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/querier/workload.yaml new file mode 100644 index 0000000..8e884b7 --- /dev/null +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/querier/workload.yaml @@ -0,0 +1,152 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-querier + namespace: syn-loki +spec: + replicas: 3 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + strategy: + rollingUpdate: + maxSurge: 0 + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + annotations: + checksum/config: 0d304c8e8cd773f042bee70064c291b099e0fbd43aff91917a59868f1e7ccb2c + kubectl.kubernetes.io/default-container: querier + labels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=querier + env: + - name: GOMEMLIMIT + value: 3481MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: querier + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 4Gi + requests: + cpu: 1 + memory: 2Gi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 30 + topologySpreadConstraints: + - labelSelector: + matchLabels: + app.kubernetes.io/component: querier + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + maxSkew: 1 + topologyKey: kubernetes.io/hostname + whenUnsatisfiable: ScheduleAnyway + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/query-frontend/service.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/query-frontend/service.yaml new file mode 100644 index 0000000..e4fb538 --- /dev/null +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/query-frontend/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-query-frontend + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-query-frontend-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/query-frontend/workload.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/query-frontend/workload.yaml new file mode 100644 index 0000000..d530387 --- /dev/null +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/query-frontend/workload.yaml @@ -0,0 +1,143 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-query-frontend + namespace: syn-loki +spec: + replicas: 2 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + strategy: + rollingUpdate: + maxSurge: 0 + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + annotations: + checksum/config: 0d304c8e8cd773f042bee70064c291b099e0fbd43aff91917a59868f1e7ccb2c + kubectl.kubernetes.io/default-container: query-frontend + labels: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: query-frontend + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=query-frontend + env: + - name: GOMEMLIMIT + value: 1740MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: query-frontend + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 2Gi + requests: + cpu: 1 + memory: 1Gi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 30 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data diff --git a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/write/pdb.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/query-scheduler/pdb.yaml similarity index 73% rename from tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/write/pdb.yaml rename to tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/query-scheduler/pdb.yaml index f68a86e..1331b7c 100644 --- a/tests/golden/defaults/loki/loki/10_helm_loki/loki/templates/write/pdb.yaml +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/query-scheduler/pdb.yaml @@ -2,17 +2,17 @@ apiVersion: policy/v1 kind: PodDisruptionBudget metadata: labels: - app.kubernetes.io/component: write + app.kubernetes.io/component: query-scheduler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 - name: loki-write + name: loki-query-scheduler namespace: syn-loki spec: maxUnavailable: 1 selector: matchLabels: - app.kubernetes.io/component: write + app.kubernetes.io/component: query-scheduler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/query-scheduler/service.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/query-scheduler/service.yaml new file mode 100644 index 0000000..244ac9b --- /dev/null +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/query-scheduler/service.yaml @@ -0,0 +1,68 @@ +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-query-scheduler + namespace: syn-loki +spec: + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP +--- +apiVersion: v1 +kind: Service +metadata: + annotations: null + labels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + prometheus.io/service-monitor: 'false' + variant: headless + name: loki-query-scheduler-headless + namespace: syn-loki +spec: + clusterIP: None + ports: + - name: http-metrics + port: 3100 + protocol: TCP + targetPort: http-metrics + - name: grpc + port: 9095 + protocol: TCP + targetPort: grpc + - name: grpclb + port: 9096 + protocol: TCP + targetPort: grpc + publishNotReadyAddresses: true + selector: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + type: ClusterIP diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/query-scheduler/workload.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/query-scheduler/workload.yaml new file mode 100644 index 0000000..e309432 --- /dev/null +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/query-scheduler/workload.yaml @@ -0,0 +1,135 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-query-scheduler + namespace: syn-loki +spec: + replicas: 2 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + strategy: + rollingUpdate: + maxSurge: 0 + maxUnavailable: 1 + type: RollingUpdate + template: + metadata: + annotations: + checksum/config: 0d304c8e8cd773f042bee70064c291b099e0fbd43aff91917a59868f1e7ccb2c + kubectl.kubernetes.io/default-container: query-scheduler + labels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: query-scheduler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=query-scheduler + env: + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: query-scheduler + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 30 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/read/service.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/read/service.yaml deleted file mode 100644 index 049a2bf..0000000 --- a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/read/service.yaml +++ /dev/null @@ -1,68 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - annotations: null - labels: - app.kubernetes.io/component: read - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - name: loki-read - namespace: syn-loki -spec: - ports: - - name: http-metrics - port: 3100 - protocol: TCP - targetPort: http-metrics - - name: grpc - port: 9095 - protocol: TCP - targetPort: grpc - - name: grpclb - port: 9096 - protocol: TCP - targetPort: grpc - publishNotReadyAddresses: true - selector: - app.kubernetes.io/component: read - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - type: ClusterIP ---- -apiVersion: v1 -kind: Service -metadata: - annotations: null - labels: - app.kubernetes.io/component: read - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - prometheus.io/service-monitor: 'false' - variant: headless - name: loki-read-headless - namespace: syn-loki -spec: - clusterIP: None - ports: - - name: http-metrics - port: 3100 - protocol: TCP - targetPort: http-metrics - - name: grpc - port: 9095 - protocol: TCP - targetPort: grpc - - name: grpclb - port: 9096 - protocol: TCP - targetPort: grpc - publishNotReadyAddresses: true - selector: - app.kubernetes.io/component: read - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - type: ClusterIP diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/results-cache/pdb.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/results-cache/pdb.yaml new file mode 100644 index 0000000..e0dd622 --- /dev/null +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/results-cache/pdb.yaml @@ -0,0 +1,16 @@ +apiVersion: policy/v1 +kind: PodDisruptionBudget +metadata: + labels: + app.kubernetes.io/component: memcached-results-cache + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + name: loki-results-cache + namespace: syn-loki +spec: + maxUnavailable: 1 + selector: + matchLabels: + app.kubernetes.io/component: memcached-results-cache + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/results-cache/statefulset.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/results-cache/statefulset.yaml index f335aba..be0a592 100644 --- a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/results-cache/statefulset.yaml +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/results-cache/statefulset.yaml @@ -13,7 +13,7 @@ metadata: namespace: syn-loki spec: podManagementPolicy: Parallel - replicas: 1 + replicas: 2 selector: matchLabels: app.kubernetes.io/component: memcached-results-cache @@ -66,10 +66,10 @@ spec: timeoutSeconds: 3 resources: limits: - memory: 1229Mi + memory: 614Mi requests: cpu: 500m - memory: 1229Mi + memory: 614Mi securityContext: allowPrivilegeEscalation: false capabilities: diff --git a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/write/service.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/ruler/service.yaml similarity index 86% rename from tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/write/service.yaml rename to tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/ruler/service.yaml index f3b375a..3cb0cf9 100644 --- a/tests/golden/extra-config/loki/loki/10_helm_loki/loki/templates/write/service.yaml +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/ruler/service.yaml @@ -3,12 +3,12 @@ kind: Service metadata: annotations: null labels: - app.kubernetes.io/component: write + app.kubernetes.io/component: ruler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 - name: loki-write + name: loki-ruler namespace: syn-loki spec: ports: @@ -26,7 +26,7 @@ spec: targetPort: grpc publishNotReadyAddresses: true selector: - app.kubernetes.io/component: write + app.kubernetes.io/component: ruler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki type: ClusterIP @@ -36,14 +36,14 @@ kind: Service metadata: annotations: null labels: - app.kubernetes.io/component: write + app.kubernetes.io/component: ruler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki app.kubernetes.io/version: 3.7.2 helm.sh/chart: loki-17.4.11 prometheus.io/service-monitor: 'false' variant: headless - name: loki-write-headless + name: loki-ruler-headless namespace: syn-loki spec: clusterIP: None @@ -62,7 +62,7 @@ spec: targetPort: grpc publishNotReadyAddresses: true selector: - app.kubernetes.io/component: write + app.kubernetes.io/component: ruler app.kubernetes.io/instance: loki app.kubernetes.io/name: loki type: ClusterIP diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/ruler/workload.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/ruler/workload.yaml new file mode 100644 index 0000000..cac7c0f --- /dev/null +++ b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/ruler/workload.yaml @@ -0,0 +1,139 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + app.kubernetes.io/component: ruler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + name: loki-ruler + namespace: syn-loki +spec: + replicas: 2 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: ruler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + serviceName: loki-ruler-headless + template: + metadata: + annotations: + checksum/config: 0d304c8e8cd773f042bee70064c291b099e0fbd43aff91917a59868f1e7ccb2c + kubectl.kubernetes.io/default-container: ruler + labels: + app.kubernetes.io/component: ruler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + app.kubernetes.io/part-of: memberlist + app.kubernetes.io/version: 3.7.2 + helm.sh/chart: loki-17.4.11 + spec: + affinity: + podAntiAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + - labelSelector: + matchLabels: + app.kubernetes.io/component: ruler + app.kubernetes.io/instance: loki + app.kubernetes.io/name: loki + topologyKey: kubernetes.io/hostname + automountServiceAccountToken: true + containers: + - args: + - -config.file=/etc/loki/config/config.yaml + - -config.expand-env=true + - -memberlist.advertise-addr=$(POD_IP) + - -target=ruler + env: + - name: GOMEMLIMIT + value: 652MiB + - name: GOGC + value: '80' + - name: POD_IP + valueFrom: + fieldRef: + fieldPath: status.podIP + envFrom: + - secretRef: + name: loki-bucket-secret + image: docker.io/docker.io/grafana/loki:3.7.2 + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 10 + httpGet: + path: /loki/api/v1/status/buildinfo + port: http-metrics + periodSeconds: 30 + successThreshold: 1 + timeoutSeconds: 1 + name: ruler + ports: + - containerPort: 3100 + name: http-metrics + protocol: TCP + - containerPort: 9095 + name: grpc + protocol: TCP + - containerPort: 7946 + name: http-memberlist + protocol: TCP + readinessProbe: + failureThreshold: 3 + httpGet: + path: /ready + port: http-metrics + initialDelaySeconds: 15 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 768Mi + requests: + cpu: 250m + memory: 512Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + seccompProfile: + type: RuntimeDefault + volumeMounts: + - mountPath: /etc/loki/config + name: config + - mountPath: /etc/loki/runtime-config + name: runtime-config + - mountPath: /var/loki + name: data + - mountPath: /tmp + name: temp + enableServiceLinks: true + securityContext: + fsGroup: 10001 + fsGroupChangePolicy: OnRootMismatch + runAsGroup: 10001 + runAsNonRoot: true + runAsUser: 10001 + seccompProfile: + type: RuntimeDefault + serviceAccountName: loki + terminationGracePeriodSeconds: 300 + volumes: + - emptyDir: {} + name: temp + - configMap: + items: + - key: config.yaml + path: config.yaml + name: loki + name: config + - configMap: + name: loki-runtime + name: runtime-config + - emptyDir: {} + name: data diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/write/pdb.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/write/pdb.yaml deleted file mode 100644 index f68a86e..0000000 --- a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/write/pdb.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: policy/v1 -kind: PodDisruptionBudget -metadata: - labels: - app.kubernetes.io/component: write - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - name: loki-write - namespace: syn-loki -spec: - maxUnavailable: 1 - selector: - matchLabels: - app.kubernetes.io/component: write - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki diff --git a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/write/service.yaml b/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/write/service.yaml deleted file mode 100644 index f3b375a..0000000 --- a/tests/golden/prometheus/loki/loki/10_helm_loki/loki/templates/write/service.yaml +++ /dev/null @@ -1,68 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - annotations: null - labels: - app.kubernetes.io/component: write - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - name: loki-write - namespace: syn-loki -spec: - ports: - - name: http-metrics - port: 3100 - protocol: TCP - targetPort: http-metrics - - name: grpc - port: 9095 - protocol: TCP - targetPort: grpc - - name: grpclb - port: 9096 - protocol: TCP - targetPort: grpc - publishNotReadyAddresses: true - selector: - app.kubernetes.io/component: write - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - type: ClusterIP ---- -apiVersion: v1 -kind: Service -metadata: - annotations: null - labels: - app.kubernetes.io/component: write - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - app.kubernetes.io/version: 3.7.2 - helm.sh/chart: loki-17.4.11 - prometheus.io/service-monitor: 'false' - variant: headless - name: loki-write-headless - namespace: syn-loki -spec: - clusterIP: None - ports: - - name: http-metrics - port: 3100 - protocol: TCP - targetPort: http-metrics - - name: grpc - port: 9095 - protocol: TCP - targetPort: grpc - - name: grpclb - port: 9096 - protocol: TCP - targetPort: grpc - publishNotReadyAddresses: true - selector: - app.kubernetes.io/component: write - app.kubernetes.io/instance: loki - app.kubernetes.io/name: loki - type: ClusterIP diff --git a/tests/legacy.yml b/tests/legacy.yml index c3a6c6f..f644098 100644 --- a/tests/legacy.yml +++ b/tests/legacy.yml @@ -14,3 +14,5 @@ parameters: loki: globalNodeSelector: appuio.io/node-class: plus + + preset: legacy