chore: mirror k8s-monitoring-2.0.12

upstream_repo:
This commit is contained in:
Nikolai Rodionov
2025-02-21 09:42:13 +01:00
commit 57712751f1
440 changed files with 101268 additions and 0 deletions

View File

@ -0,0 +1,24 @@
{{/* Define the logging component.*/}}
{{/* Inputs: collectorName (string), Values */}}
{{- define "collectors.logging.alloy" }}
{{- with (index .Values .collectorName).logging }}
{{- if or (ne .level "info" ) (ne .format "logfmt") }}
logging {
level = "{{ .level }}"
format = "{{ .format }}"
}
{{- end }}
{{- end }}
{{- end }}
{{/* Define the livedebugging component.*/}}
{{/* Inputs: collectorName (string), Values */}}
{{- define "collectors.liveDebugging.alloy" }}
{{- with (index .Values .collectorName).liveDebugging }}
{{- if .enabled }}
livedebugging {
enabled = {{ .enabled }}
}
{{- end }}
{{- end }}
{{- end }}

View File

@ -0,0 +1,5 @@
{{- define "collectors.extraConfig.alloy" -}}
{{- if (index .Values .collectorName).extraConfig }}
{{ (index .Values .collectorName).extraConfig | trim }}
{{- end }}
{{- end -}}

View File

@ -0,0 +1,52 @@
{{- define "collectors.list" -}}
- alloy-metrics
- alloy-singleton
- alloy-logs
- alloy-receiver
- alloy-profiles
{{- end }}
{{- define "collectors.list.enabled" -}}
{{- range $collector := ((include "collectors.list" .) | fromYamlArray ) }}
{{- if (index $.Values $collector).enabled }}
- {{ $collector }}
{{- end }}
{{- end }}
{{- end }}
{{/* Inputs: Values (all values), name (collector name), feature (feature name) */}}
{{- define "collectors.require_collector" -}}
{{- if not (index .Values .name).enabled }}
{{- $msg := list "" }}
{{- $msg = append $msg (printf "The %s feature requires the use of the %s collector." .feature .name ) }}
{{- $msg = append $msg "" }}
{{- $msg = append $msg "Please enable it by setting:" }}
{{- $msg = append $msg (printf "%s:" .name) }}
{{- $msg = append $msg " enabled: true" }}
{{- fail (join "\n" $msg) }}
{{- end }}
{{- end }}
{{/* Inputs: Values (all values), name (collector name), feature (feature name), portNumber, portName, portProtocol */}}
{{- define "collectors.require_extra_port" -}}
{{- $found := false -}}
{{- range (index .Values .name).alloy.extraPorts -}}
{{- if eq (int .targetPort) (int $.portNumber) }}
{{- $found = true -}}
{{- end }}
{{- end }}
{{- if not $found }}
{{- $msg := list "" }}
{{- $msg = append $msg (printf "The %s feature requires that port %d to be open on the %s collector." .feature (.portNumber | int) .name ) }}
{{- $msg = append $msg "" }}
{{- $msg = append $msg "Please enable it by setting:" }}
{{- $msg = append $msg (printf "%s:" .name) }}
{{- $msg = append $msg " alloy:" }}
{{- $msg = append $msg " extraPorts:" }}
{{- $msg = append $msg (printf " - name: %s" .portName) }}
{{- $msg = append $msg (printf " port: %d" (.portNumber | int)) }}
{{- $msg = append $msg (printf " targetPort: %d" (.portNumber | int)) }}
{{- $msg = append $msg (printf " protocol: %s" .portProtocol) }}
{{- fail (join "\n" $msg) }}
{{- end }}
{{- end }}

View File

@ -0,0 +1,11 @@
{{- define "collectors.notes.deployments" }}
{{- range $collector := include "collectors.list.enabled" . | fromYamlArray }}
{{- $type := (index $.Values $collector).controller.type }}
{{- $replicas := (index $.Values $collector).controller.replicas | default 1 | int }}
{{- if ne $type "daemonset" }}
{{- $type = printf "%s, %d replica" $type $replicas }}
{{- if gt $replicas 1 }}{{- $type = printf "%ss" $type }}{{- end }}
{{- end }}
* Grafana Alloy "{{ $collector }}" ({{ $type }})
{{- end }}
{{- end }}

View File

@ -0,0 +1,81 @@
{{- define "collectors.remoteConfig.alloy" -}}
{{- $remoteConfigValues := (index .Values .collectorName).remoteConfig }}
{{- with merge $remoteConfigValues (dict "type" "remoteConfig" "name" (printf "%s-remote-cfg" .collectorName)) }}
{{- if .enabled }}
{{- if eq (include "secrets.usesKubernetesSecret" .) "true" }}
{{- include "secret.alloy" (deepCopy $ | merge (dict "object" .)) | nindent 0 }}
{{- end }}
remotecfg {
id = sys.env("GCLOUD_FM_COLLECTOR_ID")
url = {{ .url | quote }}
{{- if eq (include "secrets.authType" .) "basic" }}
basic_auth {
username = {{ include "secrets.read" (dict "object" . "key" "auth.username" "nonsensitive" true) }}
password = {{ include "secrets.read" (dict "object" . "key" "auth.password") }}
}
{{- end }}
poll_frequency = {{ .pollFrequency | quote }}
attributes = {
"platform" = "kubernetes",
"source" = "{{ $.Chart.Name }}",
"sourceVersion" = "{{ $.Chart.Version }}",
"release" = "{{ $.Release.Name }}",
"cluster" = {{ $.Values.cluster.name | quote }},
"namespace" = {{ $.Release.Namespace | quote }},
"workloadType" = {{ (index $.Values $.collectorName).controller.type | quote }},
{{- range $key, $value := .extraAttributes }}
{{ $key | quote }} = {{ $value | quote }},
{{- end }}
}
}
{{- end -}}
{{- end -}}
{{- end -}}
{{- define "collectors.validate.remoteConfig" }}
{{- if (index .Values .collectorName).enabled }}
{{- if (index .Values .collectorName).remoteConfig.enabled }}
{{- if not (has (index .Values .collectorName).alloy.stabilityLevel (list "public-preview" "experimental")) }}
{{- $msg := list "" "The remote configuration feature requires Alloy to use the \"public-preview\" stability level. Please set:" }}
{{- $msg = append $msg (printf "%s:" .collectorName ) }}
{{- $msg = append $msg " alloy:" }}
{{- $msg = append $msg " stabilityLevel: public-preview" }}
{{- fail (join "\n" $msg) }}
{{- end }}
{{- $hasCollectorIdEnv := false }}
{{- $hasAPIKey := false }}
{{- range $env := (index .Values .collectorName).alloy.extraEnv }}
{{- if eq $env.name "GCLOUD_FM_COLLECTOR_ID" }}{{ $hasCollectorIdEnv = true }}{{- end }}
{{- if eq $env.name "GCLOUD_RW_API_KEY" }}{{ $hasAPIKey = true }}{{- end }}
{{- end }}
{{- if not $hasCollectorIdEnv }}
{{- $msg := list "" "The remote configuration feature requires the environment variable GCLOUD_FM_COLLECTOR_ID to be set. Please set:" }}
{{- $msg = append $msg (printf "%s:" .collectorName ) }}
{{- $msg = append $msg " alloy:" }}
{{- $msg = append $msg " extraEnv:" }}
{{- $msg = append $msg " - name: GCLOUD_FM_COLLECTOR_ID" }}
{{- $msg = append $msg " value: " }}
{{- fail (join "\n" $msg) }}
{{- end }}
{{- if not $hasAPIKey }}
{{- $msg := list "" "The remote configuration feature requires the environment variable GCLOUD_RW_API_KEY to be set. Please set:" }}
{{- $msg = append $msg (printf "%s:" .collectorName ) }}
{{- $msg = append $msg " alloy:" }}
{{- $msg = append $msg " extraEnv:" }}
{{- $msg = append $msg " - name: GCLOUD_RW_API_KEY" }}
{{- $msg = append $msg " value: <Grafana Cloud Access Policy Token" }}
{{- $msg = append $msg "OR" }}
{{- $msg = append $msg " valueFrom:" }}
{{- $msg = append $msg " secretKeyRef:" }}
{{- $msg = append $msg " name: <secret name>" }}
{{- $msg = append $msg " key: <secret key>" }}
{{- fail (join "\n" $msg) }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- define "secrets.list.remoteConfig" -}}
- auth.username
- auth.password
{{- end -}}

View File

@ -0,0 +1,34 @@
{{- define "collectors.validate.featuresEnabled" }}
{{- $msg := list "" "The %s collector is enabled, but there are no enabled features that will use it. Please disable the collector by setting:" }}
{{- $msg = append $msg "%s:" }}
{{- $msg = append $msg " enabled: false" }}
{{- $errorMessage := join "\n" $msg }}
{{- $collectorsUtilized := list }}
{{- range $feature := include "features.list.enabled" . | fromYamlArray }}
{{- $collectorsUtilized = concat $collectorsUtilized (include (printf "features.%s.collectors" $feature) $ | fromYamlArray) }}
{{- end }}
{{- range $collector := include "collectors.list.enabled" . | fromYamlArray }}
{{- $usedByAFeature := has $collector $collectorsUtilized }}
{{- $extraConfigDefined := not (not (index $.Values $collector).extraConfig) }}
{{- $remoteConfigEnabled := (index $.Values $collector).remoteConfig.enabled }}
{{- if not (or $usedByAFeature $extraConfigDefined $remoteConfigEnabled) }}
{{- fail (printf $errorMessage $collector $collector) }}
{{- end }}
{{- end }}
{{- end }}
{{- define "collectors.validate.liveDebugging" }}
{{- if (index .Values .collectorName).enabled }}
{{- if (index .Values .collectorName).liveDebugging.enabled }}
{{- if not (eq (index .Values .collectorName).alloy.stabilityLevel "experimental") }}
{{- $msg := list "" "The live debugging feature requires Alloy to use the \"experimental\" stability level. Please set:" }}
{{- $msg = append $msg (printf "%s:" .collectorName ) }}
{{- $msg = append $msg " alloy:" }}
{{- $msg = append $msg " stabilityLevel: experimental" }}
{{- fail (join "\n" $msg) }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}