USER-SUPPLIED VALUES: backend: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: app.kubernetes.io/component: backend topologyKey: kubernetes.io/hostname annotations: {} autoscaling: behavior: {} enabled: false maxReplicas: 6 minReplicas: 2 targetCPUUtilizationPercentage: 60 targetMemoryUtilizationPercentage: null dnsConfig: {} extraArgs: [] extraEnv: [] extraEnvFrom: [] extraVolumeMounts: [] extraVolumes: [] image: registry: null repository: null tag: null initContainers: [] nodeSelector: {} persistence: dataVolumeParameters: emptyDir: {} enableStatefulSetAutoDeletePVC: true selector: null size: 10Gi storageClass: null volumeClaimsEnabled: true podAnnotations: {} podLabels: {} podManagementPolicy: Parallel priorityClassName: null replicas: 2 resources: {} selectorLabels: {} service: annotations: {} labels: {} targetModule: backend terminationGracePeriodSeconds: 300 tolerations: [] topologySpreadConstraints: [] clusterLabelOverride: null enterprise: adminApi: enabled: true adminToken: additionalNamespaces: [] secret: null canarySecret: null cluster_name: null config: | {{- if .Values.enterprise.adminApi.enabled }} {{- if or .Values.minio.enabled (eq .Values.loki.storage.type "s3") (eq .Values.loki.storage.type "gcs") (eq .Values.loki.storage.type "azure") }} admin_client: storage: s3: bucket_name: {{ .Values.loki.storage.bucketNames.admin }} {{- end }} {{- end }} auth: type: {{ .Values.enterprise.adminApi.enabled | ternary "enterprise" "trust" }} auth_enabled: {{ .Values.loki.auth_enabled }} cluster_name: {{ include "loki.clusterName" . }} license: path: /etc/loki/license/license.jwt enabled: false externalConfigName: "" externalLicenseName: null image: digest: null pullPolicy: IfNotPresent registry: docker.io repository: grafana/enterprise-logs tag: null license: contents: NOTAVALIDLICENSE provisioner: additionalTenants: [] annotations: {} enabled: true env: [] extraVolumeMounts: [] image: digest: null pullPolicy: IfNotPresent registry: docker.io repository: grafana/enterprise-logs-provisioner tag: null labels: {} priorityClassName: null provisionedSecretPrefix: null securityContext: fsGroup: 10001 runAsGroup: 10001 runAsNonRoot: true runAsUser: 10001 tokengen: annotations: {} enabled: true env: [] extraArgs: - -config.expand-env=true extraEnvFrom: [] extraVolumeMounts: [] extraVolumes: [] labels: {} priorityClassName: "" securityContext: fsGroup: 10001 runAsGroup: 10001 runAsNonRoot: true runAsUser: 10001 targetModule: tokengen tolerations: [] useExternalLicense: false version: v1.8.4 extraObjects: [] fullnameOverride: null gateway: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: app.kubernetes.io/component: gateway topologyKey: kubernetes.io/hostname annotations: {} autoscaling: behavior: {} enabled: false maxReplicas: 3 minReplicas: 1 targetCPUUtilizationPercentage: 60 targetMemoryUtilizationPercentage: null basicAuth: enabled: false existingSecret: null htpasswd: |- {{ if .Values.loki.tenants }} {{- range $t := .Values.loki.tenants }} {{ htpasswd (required "All tenants must have a 'name' set" $t.name) (required "All tenants must have a 'password' set" $t.password) }} {{- end }} {{ else }} {{ htpasswd (required "'gateway.basicAuth.username' is required" .Values.gateway.basicAuth.username) (required "'gateway.basicAuth.password' is required" .Values.gateway.basicAuth.password) }} {{ end }} password: null username: null containerSecurityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true deploymentStrategy: type: RollingUpdate dnsConfig: {} enabled: true extraArgs: [] extraContainers: [] extraEnv: [] extraEnvFrom: [] extraVolumeMounts: [] extraVolumes: [] image: digest: null pullPolicy: IfNotPresent registry: docker.io repository: nginxinc/nginx-unprivileged tag: 1.24-alpine ingress: annotations: {} enabled: false hosts: - host: gateway.loki.example.com paths: - path: / ingressClassName: "" labels: {} tls: - hosts: - gateway.loki.example.com secretName: loki-gateway-tls lifecycle: {} nginxConfig: customBackendUrl: null customReadUrl: null customWriteUrl: null file: | {{- include "loki.nginxFile" . | indent 2 -}} httpSnippet: '{{ if .Values.loki.tenants }}proxy_set_header X-Scope-OrgID $remote_user;{{ end }}' logFormat: |- main '$remote_addr - $remote_user [$time_local] $status ' '"$request" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; resolver: "" serverSnippet: "" nodeSelector: {} podAnnotations: {} podLabels: {} podSecurityContext: fsGroup: 101 runAsGroup: 101 runAsNonRoot: true runAsUser: 101 priorityClassName: null readinessProbe: httpGet: path: / port: http initialDelaySeconds: 15 timeoutSeconds: 1 replicas: 1 resources: {} service: annotations: {} clusterIP: null labels: {} loadBalancerIP: null nodePort: null port: 80 type: ClusterIP terminationGracePeriodSeconds: 30 tolerations: [] topologySpreadConstraints: [] verboseLogging: true global: clusterDomain: cluster.local dnsNamespace: kube-system dnsService: kube-dns image: registry: null priorityClassName: null imagePullSecrets: [] ingress: annotations: {} enabled: false hosts: - loki.example.com ingressClassName: "" labels: {} paths: read: - /api/prom/tail - /loki/api/v1/tail - /loki/api - /api/prom/rules - /loki/api/v1/rules - /prometheus/api/v1/rules - /prometheus/api/v1/alerts singleBinary: - /api/prom/push - /loki/api/v1/push - /api/prom/tail - /loki/api/v1/tail - /loki/api - /api/prom/rules - /loki/api/v1/rules - /prometheus/api/v1/rules - /prometheus/api/v1/alerts write: - /api/prom/push - /loki/api/v1/push tls: [] kubectlImage: digest: null pullPolicy: IfNotPresent registry: docker.io repository: bitnami/kubectl tag: null loki: analytics: {} annotations: {} auth_enabled: true commonConfig: compactor_address: '{{ include "loki.compactorAddress" . }}' path_prefix: /var/loki replication_factor: 3 compactor: {} config: | {{- if .Values.enterprise.enabled}} {{- tpl .Values.enterprise.config . }} {{- else }} auth_enabled: {{ .Values.loki.auth_enabled }} {{- end }} {{- with .Values.loki.server }} server: {{- toYaml . | nindent 2}} {{- end}} memberlist: {{- if .Values.loki.memberlistConfig }} {{- toYaml .Values.loki.memberlistConfig | nindent 2 }} {{- else }} {{- if .Values.loki.extraMemberlistConfig}} {{- toYaml .Values.loki.extraMemberlistConfig | nindent 2}} {{- end }} join_members: - {{ include "loki.memberlist" . }} {{- with .Values.migrate.fromDistributed }} {{- if .enabled }} - {{ .memberlistService }} {{- end }} {{- end }} {{- end }} {{- with .Values.loki.ingester }} ingester: {{- tpl (. | toYaml) $ | nindent 4 }} {{- end }} {{- if .Values.loki.commonConfig}} common: {{- toYaml .Values.loki.commonConfig | nindent 2}} storage: {{- include "loki.commonStorageConfig" . | nindent 4}} {{- end}} {{- with .Values.loki.limits_config }} limits_config: {{- tpl (. | toYaml) $ | nindent 4 }} {{- end }} runtime_config: file: /etc/loki/runtime-config/runtime-config.yaml {{- with .Values.loki.memcached.chunk_cache }} {{- if and .enabled (or .host .addresses) }} chunk_store_config: chunk_cache_config: memcached: batch_size: {{ .batch_size }} parallelism: {{ .parallelism }} memcached_client: {{- if .host }} host: {{ .host }} {{- end }} {{- if .addresses }} addresses: {{ .addresses }} {{- end }} service: {{ .service }} {{- end }} {{- end }} {{- if .Values.loki.schemaConfig }} schema_config: {{- toYaml .Values.loki.schemaConfig | nindent 2}} {{- else }} schema_config: configs: - from: 2022-01-11 store: boltdb-shipper object_store: {{ .Values.loki.storage.type }} schema: v12 index: prefix: loki_index_ period: 24h {{- end }} {{ include "loki.rulerConfig" . }} {{- if or .Values.tableManager.retention_deletes_enabled .Values.tableManager.retention_period }} table_manager: retention_deletes_enabled: {{ .Values.tableManager.retention_deletes_enabled }} retention_period: {{ .Values.tableManager.retention_period }} {{- end }} {{- with .Values.loki.memcached.results_cache }} query_range: align_queries_with_step: true {{- if and .enabled (or .host .addresses) }} cache_results: {{ .enabled }} results_cache: cache: default_validity: {{ .default_validity }} memcached_client: {{- if .host }} host: {{ .host }} {{- end }} {{- if .addresses }} addresses: {{ .addresses }} {{- end }} service: {{ .service }} timeout: {{ .timeout }} {{- end }} {{- end }} {{- with .Values.loki.storage_config }} storage_config: {{- tpl (. | toYaml) $ | nindent 4 }} {{- end }} {{- with .Values.loki.query_scheduler }} query_scheduler: {{- tpl (. | toYaml) $ | nindent 4 }} {{- end }} {{- with .Values.loki.compactor }} compactor: {{- tpl (. | toYaml) $ | nindent 4 }} {{- end }} {{- with .Values.loki.analytics }} analytics: {{- tpl (. | toYaml) $ | nindent 4 }} {{- end }} {{- with .Values.loki.querier }} querier: {{- tpl (. | toYaml) $ | nindent 4 }} {{- end }} {{- with .Values.loki.index_gateway }} index_gateway: {{- tpl (. | toYaml) $ | nindent 4 }} {{- end }} {{- with .Values.loki.frontend }} frontend: {{- tpl (. | toYaml) $ | nindent 4 }} {{- end }} {{- with .Values.loki.frontend_worker }} frontend_worker: {{- tpl (. | toYaml) $ | nindent 4 }} {{- end }} {{- with .Values.loki.distributor }} distributor: {{- tpl (. | toYaml) $ | nindent 4 }} {{- end }} tracing: enabled: {{ .Values.loki.tracing.enabled }} configStorageType: ConfigMap containerSecurityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true distributor: {} enableServiceLinks: true existingSecretForConfig: "" externalConfigSecretName: '{{ include "loki.name" . }}' extraMemberlistConfig: {} frontend: scheduler_address: '{{ include "loki.querySchedulerAddress" . }}' frontend_worker: scheduler_address: '{{ include "loki.querySchedulerAddress" . }}' image: digest: null pullPolicy: IfNotPresent registry: docker.io repository: grafana/loki tag: null index_gateway: mode: ring ingester: {} limits_config: max_cache_freshness_per_query: 10m reject_old_samples: true reject_old_samples_max_age: 168h split_queries_by_interval: 15m memberlistConfig: {} memcached: chunk_cache: batch_size: 256 enabled: false host: "" parallelism: 10 service: memcached-client results_cache: default_validity: 12h enabled: false host: "" service: memcached-client timeout: 500ms podAnnotations: {} podLabels: {} podSecurityContext: fsGroup: 10001 runAsGroup: 10001 runAsNonRoot: true runAsUser: 10001 querier: {} query_scheduler: {} readinessProbe: httpGet: path: /ready port: http-metrics initialDelaySeconds: 30 timeoutSeconds: 1 revisionHistoryLimit: 10 rulerConfig: {} runtimeConfig: {} schemaConfig: configs: - from: "2024-05-01" object_store: s3 store: tsdb schema: v13 index: prefix: loki_index_ period: 24h server: grpc_listen_port: 9095 http_listen_port: 3100 serviceAnnotations: {} serviceLabels: {} storage: bucketNames: admin: xfi-test-bucket chunks: xfi-test-bucket ruler: xfi-test-bucket filesystem: chunks_directory: /var/loki/chunks rules_directory: /var/loki/rules s3: accessKeyId: AKIA4MP2RA7OBKZWT6OJ backoff_config: max_period: 3s max_retries: 5 min_period: 100ms endpoint: s3.eu-west-2.amazonaws.com http_config: {} insecure: false region: eu-west-2 s3ForcePathStyle: true secretAccessKey: 6241sH9Cvj43rmdBkU1As3kOGecGPzh0kzWikqWo type: s3 storage_config: hedging: at: 250ms max_per_second: 20 up_to: 3 structuredConfig: {} tenants: [] tracing: enabled: false memberlist: service: publishNotReadyAddresses: false migrate: fromDistributed: enabled: false memberlistService: "" minio: buckets: - name: chunks policy: none purge: false - name: ruler policy: none purge: false - name: admin policy: none purge: false drivesPerNode: 2 enabled: false persistence: size: 5Gi replicas: 1 resources: requests: cpu: 100m memory: 128Mi rootPassword: supersecret rootUser: enterprise-logs monitoring: dashboards: annotations: {} enabled: true labels: grafana_dashboard: "1" namespace: null lokiCanary: annotations: {} dnsConfig: {} enabled: true extraArgs: [] extraEnv: [] extraEnvFrom: [] image: digest: null pullPolicy: IfNotPresent registry: docker.io repository: grafana/loki-canary tag: null labelname: pod nodeSelector: {} podLabels: {} priorityClassName: null resources: {} service: annotations: {} labels: {} tolerations: [] updateStrategy: rollingUpdate: maxUnavailable: 1 type: RollingUpdate rules: additionalGroups: [] additionalRuleLabels: {} alerting: true annotations: {} enabled: true labels: {} namespace: null selfMonitoring: enabled: true grafanaAgent: annotations: {} enableConfigReadAPI: false installOperator: true labels: {} priorityClassName: null tolerations: [] logsInstance: annotations: {} clients: null labels: {} podLogs: annotations: {} apiVersion: monitoring.grafana.com/v1alpha1 labels: {} relabelings: [] tenant: name: self-monitoring secretNamespace: '{{ .Release.Namespace }}' serviceMonitor: annotations: {} enabled: true interval: 15s labels: {} metricRelabelings: [] metricsInstance: annotations: {} enabled: true labels: {} remoteWrite: null namespaceSelector: {} relabelings: [] scheme: http scrapeTimeout: null tlsConfig: null nameOverride: null networkPolicy: alertmanager: namespaceSelector: {} podSelector: {} port: 9093 discovery: namespaceSelector: {} podSelector: {} port: null enabled: false externalStorage: cidrs: [] ports: [] ingress: namespaceSelector: {} podSelector: {} metrics: cidrs: [] namespaceSelector: {} podSelector: {} rbac: namespaced: false pspAnnotations: {} pspEnabled: false sccEnabled: false read: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: app.kubernetes.io/component: read topologyKey: kubernetes.io/hostname annotations: {} autoscaling: behavior: {} enabled: false maxReplicas: 6 minReplicas: 2 targetCPUUtilizationPercentage: 60 targetMemoryUtilizationPercentage: null dnsConfig: {} extraArgs: [] extraEnv: [] extraEnvFrom: [] extraVolumeMounts: [] extraVolumes: [] image: registry: null repository: null tag: null legacyReadTarget: false lifecycle: {} nodeSelector: {} persistence: enableStatefulSetAutoDeletePVC: true selector: null size: 10Gi storageClass: null podAnnotations: {} podLabels: {} podManagementPolicy: Parallel priorityClassName: null replicas: 2 resources: {} selectorLabels: {} service: annotations: {} labels: {} targetModule: read terminationGracePeriodSeconds: 30 tolerations: [] topologySpreadConstraints: [] serviceAccount: annotations: {} automountServiceAccountToken: true create: true imagePullSecrets: [] labels: {} name: null sidecar: enableUniqueFilenames: false image: pullPolicy: IfNotPresent repository: kiwigrid/k8s-sidecar sha: "" tag: 1.24.3 livenessProbe: {} readinessProbe: {} resources: {} rules: enabled: true folder: /rules label: loki_rule labelValue: "" logLevel: INFO resource: both script: null searchNamespace: null watchClientTimeout: 60 watchMethod: WATCH watchServerTimeout: 60 securityContext: {} skipTlsVerify: false singleBinary: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: app.kubernetes.io/component: single-binary topologyKey: kubernetes.io/hostname annotations: {} autoscaling: enabled: false maxReplicas: 3 minReplicas: 1 targetCPUUtilizationPercentage: 60 targetMemoryUtilizationPercentage: null dnsConfig: {} extraArgs: [] extraContainers: [] extraEnv: [] extraEnvFrom: [] extraVolumeMounts: [] extraVolumes: [] image: registry: null repository: null tag: null initContainers: [] nodeSelector: {} persistence: enableStatefulSetAutoDeletePVC: true enabled: true selector: null size: 10Gi storageClass: null podAnnotations: {} podLabels: {} priorityClassName: null replicas: 0 resources: {} selectorLabels: {} service: annotations: {} labels: {} targetModule: all terminationGracePeriodSeconds: 30 tolerations: [] tableManager: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: app.kubernetes.io/component: table-manager topologyKey: kubernetes.io/hostname preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: labelSelector: matchLabels: app.kubernetes.io/component: table-manager topologyKey: kubernetes.io/hostname annotations: {} command: null dnsConfig: {} enabled: false extraArgs: [] extraContainers: [] extraEnv: [] extraEnvFrom: [] extraVolumeMounts: [] extraVolumes: [] image: registry: null repository: null tag: null nodeSelector: {} podAnnotations: {} podLabels: {} priorityClassName: null resources: {} retention_deletes_enabled: true retention_period: 2160h service: annotations: {} labels: {} terminationGracePeriodSeconds: 30 tolerations: [] test: annotations: {} enabled: false image: digest: null pullPolicy: IfNotPresent registry: docker.io repository: grafana/loki-helm-test tag: null labels: {} prometheusAddress: http://prometheus:9090 timeout: 1m write: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: app.kubernetes.io/component: write topologyKey: kubernetes.io/hostname annotations: {} autoscaling: behavior: scaleDown: policies: - periodSeconds: 1800 type: Pods value: 1 stabilizationWindowSeconds: 3600 scaleUp: policies: - periodSeconds: 900 type: Pods value: 1 enabled: false maxReplicas: 6 minReplicas: 2 targetCPUUtilizationPercentage: 60 targetMemoryUtilizationPercentage: null dnsConfig: {} extraArgs: [] extraEnv: [] extraEnvFrom: [] extraVolumeClaimTemplates: [] extraVolumeMounts: [] extraVolumes: [] image: registry: null repository: null tag: null initContainers: [] lifecycle: {} nodeSelector: {} persistence: dataVolumeParameters: emptyDir: {} enableStatefulSetAutoDeletePVC: false selector: null size: 10Gi storageClass: null volumeClaimsEnabled: true podAnnotations: {} podLabels: {} podManagementPolicy: Parallel priorityClassName: null replicas: 2 resources: {} selectorLabels: {} service: annotations: {} labels: {} targetModule: write terminationGracePeriodSeconds: 300 tolerations: [] topologySpreadConstraints: []