diff --git a/charts/k8s-monitoring/README.md b/charts/k8s-monitoring/README.md index a3150f93d..9535595fe 100644 --- a/charts/k8s-monitoring/README.md +++ b/charts/k8s-monitoring/README.md @@ -145,6 +145,7 @@ podLogs: | Key | Type | Default | Description | |-----|------|---------|-------------| +| alloy-logs.controller.type | string | `"daemonset"` | The type of controller to use for the Alloy Logs instance. | | alloy-logs.enabled | bool | `false` | Deploy the Alloy instance for collecting log data. | | alloy-logs.extraConfig | string | `""` | Extra Alloy configuration to be added to the configuration file. | | alloy-logs.liveDebugging.enabled | bool | `false` | Enable live debugging for the Alloy instance. Requires stability level to be set to "experimental". | @@ -155,6 +156,8 @@ podLogs: | Key | Type | Default | Description | |-----|------|---------|-------------| +| alloy-metrics.controller.replicas | int | `1` | The number of replicas for the Alloy Metrics instance. | +| alloy-metrics.controller.type | string | `"statefulset"` | The type of controller to use for the Alloy Metrics instance. | | alloy-metrics.enabled | bool | `false` | Deploy the Alloy instance for collecting metrics. | | alloy-metrics.extraConfig | string | `""` | Extra Alloy configuration to be added to the configuration file. | | alloy-metrics.liveDebugging.enabled | bool | `false` | Enable live debugging for the Alloy instance. Requires stability level to be set to "experimental". | @@ -165,6 +168,7 @@ podLogs: | Key | Type | Default | Description | |-----|------|---------|-------------| +| alloy-profiles.controller.type | string | `"daemonset"` | The type of controller to use for the Alloy Profiles instance. | | alloy-profiles.enabled | bool | `false` | Deploy the Alloy instance for gathering profiles. | | alloy-profiles.extraConfig | string | `""` | Extra Alloy configuration to be added to the configuration file. | | alloy-profiles.liveDebugging.enabled | bool | `false` | Enable live debugging for the Alloy instance. Requires stability level to be set to "experimental". | @@ -176,6 +180,7 @@ podLogs: | Key | Type | Default | Description | |-----|------|---------|-------------| | alloy-receiver.alloy.extraPorts | list | `[]` | The ports to expose for the Alloy receiver. | +| alloy-receiver.controller.type | string | `"daemonset"` | The type of controller to use for the Alloy Receiver instance. | | alloy-receiver.enabled | bool | `false` | Deploy the Alloy instance for opening receivers to collect application data. | | alloy-receiver.extraConfig | string | `""` | Extra Alloy configuration to be added to the configuration file. | | alloy-receiver.liveDebugging.enabled | bool | `false` | Enable live debugging for the Alloy instance. Requires stability level to be set to "experimental". | @@ -186,6 +191,8 @@ podLogs: | Key | Type | Default | Description | |-----|------|---------|-------------| +| alloy-singleton.controller.replicas | int | `1` | The number of replicas for the Alloy Singleton instance. This should remain a single instance to avoid duplicate data. | +| alloy-singleton.controller.type | string | `"deployment"` | The type of controller to use for the Alloy Singleton instance. | | alloy-singleton.enabled | bool | `false` | Deploy the Alloy instance for data sources required to be deployed on a single replica. | | alloy-singleton.extraConfig | string | `""` | Extra Alloy configuration to be added to the configuration file. | | alloy-singleton.liveDebugging.enabled | bool | `false` | Enable live debugging for the Alloy instance. Requires stability level to be set to "experimental". | @@ -288,8 +295,4 @@ podLogs: | Key | Type | Default | Description | |-----|------|---------|-------------| -| alloy-logs | object | `{"controller":{"nodeSelector":{"kubernetes.io/os":"linux"},"type":"daemonset"},"enabled":false,"extraConfig":"","liveDebugging":{"enabled":false},"logging":{"format":"logfmt","level":"info"}}` | An Alloy instance for collecting log data. | -| alloy-metrics | object | `{"crds":{"create":false},"enabled":false,"extraConfig":"","liveDebugging":{"enabled":false},"logging":{"format":"logfmt","level":"info"}}` | An Alloy instance for collecting metrics. | -| alloy-profiles | object | `{"enabled":false,"extraConfig":"","liveDebugging":{"enabled":false},"logging":{"format":"logfmt","level":"info"}}` | An Alloy instance for gathering profiles. | -| alloy-receiver | object | `{"alloy":{"extraPorts":[]},"controller":{"nodeSelector":{"kubernetes.io/os":"linux"},"type":"daemonset"},"enabled":false,"extraConfig":"","liveDebugging":{"enabled":false},"logging":{"format":"logfmt","level":"info"}}` | An Alloy instance for opening receivers to collect application data. | -| alloy-singleton | object | `{"controller":{"nodeSelector":{"kubernetes.io/os":"linux"},"podAnnotations":{"k8s.grafana.com/logs.job":"integrations/alloy"},"replicas":1,"type":"deployment"},"enabled":false,"extraConfig":"","liveDebugging":{"enabled":false},"logging":{"format":"logfmt","level":"info"}}` | An Alloy instance for data sources required to be deployed on a single replica. | +| extraObjects | list | `[]` | Deploy additional manifest objects | diff --git a/charts/k8s-monitoring/charts/k8s-monitoring-feature-annotation-autodiscovery-1.0.0.tgz b/charts/k8s-monitoring/charts/k8s-monitoring-feature-annotation-autodiscovery-1.0.0.tgz index 656ec5c4e..a4cca9b6a 100644 Binary files a/charts/k8s-monitoring/charts/k8s-monitoring-feature-annotation-autodiscovery-1.0.0.tgz and b/charts/k8s-monitoring/charts/k8s-monitoring-feature-annotation-autodiscovery-1.0.0.tgz differ diff --git a/charts/k8s-monitoring/charts/k8s-monitoring-feature-application-observability-1.0.0.tgz b/charts/k8s-monitoring/charts/k8s-monitoring-feature-application-observability-1.0.0.tgz index 7a8af015a..645ef4aef 100644 Binary files a/charts/k8s-monitoring/charts/k8s-monitoring-feature-application-observability-1.0.0.tgz and b/charts/k8s-monitoring/charts/k8s-monitoring-feature-application-observability-1.0.0.tgz differ diff --git a/charts/k8s-monitoring/charts/k8s-monitoring-feature-cluster-events-1.0.0.tgz b/charts/k8s-monitoring/charts/k8s-monitoring-feature-cluster-events-1.0.0.tgz index 130f06c3b..ba9366ef4 100644 Binary files a/charts/k8s-monitoring/charts/k8s-monitoring-feature-cluster-events-1.0.0.tgz and b/charts/k8s-monitoring/charts/k8s-monitoring-feature-cluster-events-1.0.0.tgz differ diff --git a/charts/k8s-monitoring/charts/k8s-monitoring-feature-cluster-metrics-1.0.0.tgz b/charts/k8s-monitoring/charts/k8s-monitoring-feature-cluster-metrics-1.0.0.tgz index 1bdfabc46..b269e48a0 100644 Binary files a/charts/k8s-monitoring/charts/k8s-monitoring-feature-cluster-metrics-1.0.0.tgz and b/charts/k8s-monitoring/charts/k8s-monitoring-feature-cluster-metrics-1.0.0.tgz differ diff --git a/charts/k8s-monitoring/charts/k8s-monitoring-feature-frontend-observability-1.0.0.tgz b/charts/k8s-monitoring/charts/k8s-monitoring-feature-frontend-observability-1.0.0.tgz index 9c8bcefd1..9ca076743 100644 Binary files a/charts/k8s-monitoring/charts/k8s-monitoring-feature-frontend-observability-1.0.0.tgz and b/charts/k8s-monitoring/charts/k8s-monitoring-feature-frontend-observability-1.0.0.tgz differ diff --git a/charts/k8s-monitoring/charts/k8s-monitoring-feature-integrations-1.0.0.tgz b/charts/k8s-monitoring/charts/k8s-monitoring-feature-integrations-1.0.0.tgz index 278408ab1..185a3781e 100644 Binary files a/charts/k8s-monitoring/charts/k8s-monitoring-feature-integrations-1.0.0.tgz and b/charts/k8s-monitoring/charts/k8s-monitoring-feature-integrations-1.0.0.tgz differ diff --git a/charts/k8s-monitoring/charts/k8s-monitoring-feature-pod-logs-1.0.0.tgz b/charts/k8s-monitoring/charts/k8s-monitoring-feature-pod-logs-1.0.0.tgz index dd9473716..3c356b8b5 100644 Binary files a/charts/k8s-monitoring/charts/k8s-monitoring-feature-pod-logs-1.0.0.tgz and b/charts/k8s-monitoring/charts/k8s-monitoring-feature-pod-logs-1.0.0.tgz differ diff --git a/charts/k8s-monitoring/charts/k8s-monitoring-feature-profiling-1.0.0.tgz b/charts/k8s-monitoring/charts/k8s-monitoring-feature-profiling-1.0.0.tgz index ecf10f548..69cd8d3a2 100644 Binary files a/charts/k8s-monitoring/charts/k8s-monitoring-feature-profiling-1.0.0.tgz and b/charts/k8s-monitoring/charts/k8s-monitoring-feature-profiling-1.0.0.tgz differ diff --git a/charts/k8s-monitoring/charts/k8s-monitoring-feature-prometheus-operator-objects-1.0.0.tgz b/charts/k8s-monitoring/charts/k8s-monitoring-feature-prometheus-operator-objects-1.0.0.tgz index f1fe6fdaf..249cd13ae 100644 Binary files a/charts/k8s-monitoring/charts/k8s-monitoring-feature-prometheus-operator-objects-1.0.0.tgz and b/charts/k8s-monitoring/charts/k8s-monitoring-feature-prometheus-operator-objects-1.0.0.tgz differ diff --git a/charts/k8s-monitoring/templates/extra-objects.yaml b/charts/k8s-monitoring/templates/extra-objects.yaml new file mode 100644 index 000000000..a9bb3b6ba --- /dev/null +++ b/charts/k8s-monitoring/templates/extra-objects.yaml @@ -0,0 +1,4 @@ +{{ range .Values.extraObjects }} +--- +{{ tpl (toYaml .) $ }} +{{ end }} diff --git a/charts/k8s-monitoring/tests/extra_objects_test.yaml b/charts/k8s-monitoring/tests/extra_objects_test.yaml new file mode 100644 index 000000000..534c04b58 --- /dev/null +++ b/charts/k8s-monitoring/tests/extra_objects_test.yaml @@ -0,0 +1,21 @@ +# yamllint disable rule:document-start rule:line-length rule:trailing-spaces +suite: Extra Objects test +templates: + - extra-objects.yaml +tests: + - it: creates extra objects + set: + extraObjects: + - apiVersion: v1 + kind: ConfigMap + metadata: + name: my-config + namespace: my-namespace + data: + key: value + asserts: + - containsDocument: + apiVersion: v1 + kind: ConfigMap + name: my-config + namespace: my-namespace diff --git a/charts/k8s-monitoring/values.schema.json b/charts/k8s-monitoring/values.schema.json index 2f2c379b3..690086019 100644 --- a/charts/k8s-monitoring/values.schema.json +++ b/charts/k8s-monitoring/values.schema.json @@ -628,6 +628,9 @@ "destinations": { "$ref": "#/definitions/destination-list" }, + "extraObjects": { + "type": "array" + }, "frontendObservability": { "type": "object", "properties": { diff --git a/charts/k8s-monitoring/values.yaml b/charts/k8s-monitoring/values.yaml index d2d31c5e6..72fd063e3 100644 --- a/charts/k8s-monitoring/values.yaml +++ b/charts/k8s-monitoring/values.yaml @@ -207,7 +207,7 @@ integrations: # Collectors (Alloy instances) # -# -- An Alloy instance for collecting metrics. +# An Alloy instance for collecting metrics. alloy-metrics: # -- Deploy the Alloy instance for collecting metrics. # @section -- Collectors - Alloy Metrics @@ -249,20 +249,28 @@ alloy-metrics: seccompProfile: type: "RuntimeDefault" - # @ignored controller: + # -- The type of controller to use for the Alloy Metrics instance. + # @section -- Collectors - Alloy Metrics type: statefulset + + # -- The number of replicas for the Alloy Metrics instance. + # @section -- Collectors - Alloy Metrics replicas: 1 + + # @ignored nodeSelector: kubernetes.io/os: linux + # @ignored podAnnotations: k8s.grafana.com/logs.job: integrations/alloy # Skip installation of the Grafana Alloy CRDs, since we don't use them in this chart + # @ignored crds: {create: false} -# -- An Alloy instance for data sources required to be deployed on a single replica. +# An Alloy instance for data sources required to be deployed on a single replica. alloy-singleton: # -- Deploy the Alloy instance for data sources required to be deployed on a single replica. # @section -- Collectors - Alloy Singleton @@ -300,11 +308,19 @@ alloy-singleton: type: "RuntimeDefault" controller: + # -- The type of controller to use for the Alloy Singleton instance. + # @section -- Collectors - Alloy Singleton type: deployment - replicas: 1 # Only one replica should be used, otherwise multiple copies of cluster events might get sent to Loki. + # -- The number of replicas for the Alloy Singleton instance. + # This should remain a single instance to avoid duplicate data. + # @section -- Collectors - Alloy Singleton + replicas: 1 + + # @ignored nodeSelector: kubernetes.io/os: linux + # @ignored podAnnotations: k8s.grafana.com/logs.job: integrations/alloy @@ -312,7 +328,7 @@ alloy-singleton: # @ignored crds: {create: false} -# -- An Alloy instance for collecting log data. +# An Alloy instance for collecting log data. alloy-logs: # -- Deploy the Alloy instance for collecting log data. # @section -- Collectors - Alloy Logs @@ -362,11 +378,15 @@ alloy-logs: type: "RuntimeDefault" controller: + # -- The type of controller to use for the Alloy Logs instance. + # @section -- Collectors - Alloy Logs type: daemonset + + # @ignored nodeSelector: kubernetes.io/os: linux -# -- An Alloy instance for opening receivers to collect application data. +# An Alloy instance for opening receivers to collect application data. alloy-receiver: # -- Deploy the Alloy instance for opening receivers to collect application data. # @section -- Collectors - Alloy Receiver @@ -409,11 +429,15 @@ alloy-receiver: type: "RuntimeDefault" controller: + # -- The type of controller to use for the Alloy Receiver instance. + # @section -- Collectors - Alloy Receiver type: daemonset + + # @ignored nodeSelector: kubernetes.io/os: linux -# -- An Alloy instance for gathering profiles. +# An Alloy instance for gathering profiles. alloy-profiles: # -- Deploy the Alloy instance for gathering profiles. # @section -- Collectors - Alloy Profiles @@ -455,13 +479,19 @@ alloy-profiles: runAsGroup: 0 runAsUser: 0 - # @ignored controller: + # -- The type of controller to use for the Alloy Profiles instance. + # @section -- Collectors - Alloy Profiles type: daemonset + + # @ignored hostPID: true + + # @ignored nodeSelector: kubernetes.io/os: linux + # @ignored tolerations: - effect: NoSchedule operator: Exists @@ -469,3 +499,24 @@ alloy-profiles: # Skip installation of the Grafana Alloy CRDs, since we don't use them in this chart # @ignored crds: {create: false} + +# -- Deploy additional manifest objects +extraObjects: [] +# - apiVersion: external-secrets.io/v1beta1 +# kind: ExternalSecret +# metadata: +# name: prometheus-secret +# spec: +# refreshInterval: 1h +# secretStoreRef: +# kind: SecretStore +# name: example +# target: +# template: +# data: +# prometheus_host: "{{ .Values.externalServices.prometheus.host }}" +# username: "{{`{{ .username }}`}}" +# password: "{{`{{ .password }}`}}" +# dataFrom: +# - extract: +# key: mysecret