Skip to content

Commit

Permalink
Wip
Browse files Browse the repository at this point in the history
Signed-off-by: Pete Wall <[email protected]>
  • Loading branch information
petewall committed Feb 3, 2025
1 parent c2243bb commit 2ba7db6
Show file tree
Hide file tree
Showing 50 changed files with 5,028 additions and 3,454 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,6 @@
{{- fail (printf "Node Logs feature requires Alloy to mount /var/log.\nPlease set:\n%s:\n alloy:\n mounts:\n varlog: true" .CollectorName) }}
{{- end -}}
{{- if .Collector.alloy.clustering.enabled }}
{{- fail (printf "Node Logs feature requires Alloy to not be in clustering mode.\nPlease set:\n%s:\n alloy:\n clustering:\n enabled: true" .CollectorName) }}
{{- fail (printf "Node Logs feature requires Alloy clustering to be disabled.\nPlease set:\n%s:\n alloy:\n clustering:\n enabled: false" .CollectorName) }}
{{- end -}}
{{- end -}}
Original file line number Diff line number Diff line change
@@ -1,30 +1,46 @@
{{- define "feature.podLogs.kubernetesApi.alloy" }}
{{- $labelSelectors := list }}
{{- range $k, $v := .Values.kubernetesApiGathering.labelSelectors }}
{{- if kindIs "slice" $v }}
{{- $labelSelectors = append $labelSelectors (printf "%s in (%s)" $k (join "," $v)) }}
{{- else }}
{{- $labelSelectors = append $labelSelectors (printf "%s=%s" $k $v) }}
{{- end }}
{{- end }}
{{- $nodeLabelSelectors := list }}
{{- range $k, $v := .Values.kubernetesApiGathering.nodeLabelSelectors }}
{{- if kindIs "slice" $v }}
{{- $nodeLabelSelectors = append $nodeLabelSelectors (printf "%s in (%s)" $k (join "," $v)) }}
{{- else }}
{{- $nodeLabelSelectors = append $nodeLabelSelectors (printf "%s=%s" $k $v) }}
{{- end }}
{{- end }}
discovery.kubernetes "kubernetes_api_pods" {
role = "pod"
{{- if .Values.kubernetesApiGathering.namespaces }}
namespaces {
names = {{ .Values.namespaces | toJson }}
}
{{- end }}
{{- if or .Values.kubernetesApiGathering.labelSelectors .Values.kubernetesApiGathering.fieldSelectors }}
{{- if or $labelSelectors .Values.kubernetesApiGathering.fieldSelectors }}
selectors {
role = "pod"
{{- if .Values.kubernetesApiGathering.labelSelectors }}
label = {{ .Values.kubernetesApiGathering.labelSelectors | toJson }}
{{- if $labelSelectors }}
label = {{ $labelSelectors | join "," | quote }}
{{- end }}
{{- if .Values.kubernetesApiGathering.fieldSelectors }}
field = {{ .Values.kubernetesApiGathering.fieldSelectors | join "," | quote }}
{{- end }}
}
{{- end }}
{{- if or .Values.kubernetesApiGathering.nodeLabelSelectors .Values.kubernetesApiGathering.nodeFieldSelectors }}
{{- if or $nodeLabelSelectors .Values.kubernetesApiGathering.nodeFieldSelectors }}
attach_metadata {
node = true
}
selectors {
role = "node"
{{- if .Values.kubernetesApiGathering.nodeLabelSelectors }}
label = {{ .Values.kubernetesApiGathering.nodeLabelSelectors | toJson }}
{{- if $nodeLabelSelectors }}
label = {{ $nodeLabelSelectors | join "," | quote }}
{{- end }}
{{- if .Values.kubernetesApiGathering.nodeFieldSelectors }}
field = {{ .Values.kubernetesApiGathering.nodeFieldSelectors | join "," | quote }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,11 @@
{{- fail (printf "Pod Logs feature requires Alloy to be in clustering mode when using the \"kubernetesApi\" gather method.\nPlease set:\n%s:\n alloy:\n clustering:\n enabled: true" .CollectorName) }}
{{- end -}}
{{- end -}}

{{- if .Values.lokiReceiver.enabled }}
{{- if not .Collector.alloy.clustering.enabled }}
{{- fail (printf "Pod Logs feature requires Alloy to be in clustering mode when using the \"kubernetesApi\" gather method.\nPlease set:\n%s:\n alloy:\n clustering:\n enabled: true" .CollectorName) }}
{{- end -}}
{{- end -}}

{{- define "feature.podLogs.validate" -}}
{{/*Validate that if both volume gathering and k8s api gathering, there are some selectors set*/}}
{{- if and (or .Values.volumeGathering.enabled (eq .Values.gatherMethod "volumes")) (or .Values.kubernetesApiGathering.enabled (eq .Values.gatherMethod "kubernetesApi")) }}

{{- end -}}
{{- end -}}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,25 @@ Gather logs from Kubernetes Pods

{{- define "feature.podLogs.notes.actions" }}{{- end }}

{{- define "feature.podLogs.notes.deprecations" }}
{{- if .Values.gatherMethod }}
* The `gatherMethod` value is deprecated and will be removed in a future release.
Please enable the desired Pod log gathering methods individually:
volumeGathering:
enabled: true
kubernetesApiGathering:
enabled: true
lokiReceiver:
enabled: true
{{- end }}
{{- end }}

{{- define "feature.podLogs.summary" -}}
{{- $methods := list }}
{{- if .Values.volumeGathering.enabled }}{{- $methods = append $methods "volumes" }}{{ end }}
{{- if .Values.kubernetesApiGathering.enabled }}{{- $methods = append $methods "kubernetesApi" }}{{ end }}
{{- if .Values.lokiReceiver.enabled }}{{- $methods = append $methods "lokiReceiver" }}{{ end }}
{{- if .Values.lokiReceiver.openShiftClusterLogForwarder.enabled }}{{- $methods = append $methods "OSClusterLogForwarder" }}{{ end }}
version: {{ .Chart.Version }}
method: {{ .Values.gatherMethod }}
methods: {{ $methods | join "," }}
{{- end }}
Original file line number Diff line number Diff line change
@@ -1,4 +1,20 @@
{{- define "feature.podLogs.volumeGathering.alloy" }}
{{- $labelSelectors := list }}
{{- range $k, $v := .Values.volumeGathering.labelSelectors }}
{{- if kindIs "slice" $v }}
{{- $labelSelectors = append $labelSelectors (printf "%s in (%s)" $k (join "," $v)) }}
{{- else }}
{{- $labelSelectors = append $labelSelectors (printf "%s=%s" $k $v) }}
{{- end }}
{{- end }}
{{- $nodeLabelSelectors := list }}
{{- range $k, $v := .Values.volumeGathering.nodeLabelSelectors }}
{{- if kindIs "slice" $v }}
{{- $nodeLabelSelectors = append $nodeLabelSelectors (printf "%s in (%s)" $k (join "," $v)) }}
{{- else }}
{{- $nodeLabelSelectors = append $nodeLabelSelectors (printf "%s=%s" $k $v) }}
{{- end }}
{{- end }}
discovery.kubernetes "volume_gathering_pods" {
role = "pod"
selectors {
Expand All @@ -10,25 +26,25 @@ discovery.kubernetes "volume_gathering_pods" {
names = {{ .Values.namespaces | toJson }}
}
{{- end }}
{{- if or .Values.volumeGathering.labelSelectors .Values.volumeGathering.fieldSelectors }}
{{- if or $labelSelectors .Values.volumeGathering.fieldSelectors }}
selectors {
role = "pod"
{{- if .Values.volumeGathering.labelSelectors }}
label = {{ .Values.volumeGathering.labelSelectors | toJson }}
{{- if $labelSelectors }}
label = {{ $labelSelectors | join "," | quote }}
{{- end }}
{{- if .Values.volumeGathering.fieldSelectors }}
field = {{ .Values.volumeGathering.fieldSelectors | join "," | quote }}
{{- end }}
}
{{- end }}
{{- if or .Values.volumeGathering.nodeLabelSelectors .Values.volumeGathering.nodeFieldSelectors }}
{{- if or $nodeLabelSelectors .Values.volumeGathering.nodeFieldSelectors }}
attach_metadata {
node = true
}
selectors {
role = "node"
{{- if .Values.volumeGathering.nodeLabelSelectors }}
label = {{ .Values.volumeGathering.nodeLabelSelectors | toJson }}
{{- if $nodeLabelSelectors }}
label = {{ $nodeLabelSelectors | join "," | quote }}
{{- end }}
{{- if .Values.volumeGathering.nodeFieldSelectors }}
field = {{ .Values.volumeGathering.nodeFieldSelectors | join "," | quote }}
Expand Down Expand Up @@ -160,8 +176,8 @@ local.file_match "volume_gathering_pods" {

loki.source.file "volume_gathering_pods" {
targets = local.file_match.volume_gathering_pods.targets
{{- if .Values.volumeGathering.onlyGatherNewLogLines | default .Values.volumeGatherSettings.onlyGatherNewLogLines }}
tail_from_end = {{ .Values.volumeGathering.onlyGatherNewLogLines | default .Values.volumeGatherSettings.onlyGatherNewLogLines }}
{{- if .Values.volumeGathering.onlyGatherNewLogLines | default (dig "volumeGatherSettings" "onlyGatherNewLogLines" false .Values) }}
tail_from_end = {{ .Values.volumeGathering.onlyGatherNewLogLines | default (dig "volumeGatherSettings" "onlyGatherNewLogLines" false .Values) }}
{{- end }}
forward_to = [loki.process.pod_log_processor.receiver]
}
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 2ba7db6

Please sign in to comment.