From 79d05b57d9e1997dc606930464a956db6aa8f3a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Medzi=C5=84ski?= Date: Mon, 26 Jan 2026 11:34:24 +0100 Subject: [PATCH 1/7] [opentelemetry-collector]: custom DaemonSet support Adds configurable apiVersion and extra updateStrategy fields for DaemonSet mode. This enables: - Using custom controllers like OpenKruise Advanced DaemonSet - Partition-based rollouts for safer canary deployments - In-place pod updates without recreation - Testing new API versions before they become stable Includes example and CI values for OpenKruise configuration. --- .../ci/daemonset-openkruise-values.yaml | 21 ++++ .../examples/README.md | 1 + .../rendered/configmap-agent.yaml | 92 +++++++++++++++ .../rendered/daemonset.yaml | 105 ++++++++++++++++++ .../rendered/serviceaccount.yaml | 15 +++ .../examples/daemonset-openkruise/values.yaml | 16 +++ .../templates/daemonset.yaml | 2 +- .../values.schema.json | 11 ++ charts/opentelemetry-collector/values.yaml | 15 +++ 9 files changed, 277 insertions(+), 1 deletion(-) create mode 100644 charts/opentelemetry-collector/ci/daemonset-openkruise-values.yaml create mode 100644 charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/configmap-agent.yaml create mode 100644 charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/daemonset.yaml create mode 100644 charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/serviceaccount.yaml create mode 100644 charts/opentelemetry-collector/examples/daemonset-openkruise/values.yaml diff --git a/charts/opentelemetry-collector/ci/daemonset-openkruise-values.yaml b/charts/opentelemetry-collector/ci/daemonset-openkruise-values.yaml new file mode 100644 index 0000000000..6a9ff87a76 --- /dev/null +++ b/charts/opentelemetry-collector/ci/daemonset-openkruise-values.yaml @@ -0,0 +1,21 @@ +mode: daemonset + +image: + repository: "ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-k8s" + +command: + name: "otelcol-k8s" + +resources: + limits: + cpu: 100m + memory: 200M + +daemonset: + apiVersion: apps.kruise.io/v1alpha1 + +rollout: + strategy: RollingUpdate + rollingUpdate: + maxUnavailable: 1 + partition: 0 diff --git a/charts/opentelemetry-collector/examples/README.md b/charts/opentelemetry-collector/examples/README.md index 8f2ac4c22f..6374e078f5 100644 --- a/charts/opentelemetry-collector/examples/README.md +++ b/charts/opentelemetry-collector/examples/README.md @@ -3,6 +3,7 @@ Here is a collection of common configurations for the OpenTelemetry collector. Each folder contains an example `values.yaml` and the resulting configurations that are generated by the opentelemetry-collector helm charts. - [Daemonset only](daemonset-only) +- [Daemonset with OpenKruise](daemonset-openkruise) - [Deployment only](deployment-only) - [Daemonset and deployment](daemonset-and-deployment) - [Log collection, including collector logs](daemonset-collector-logs) diff --git a/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/configmap-agent.yaml b/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/configmap-agent.yaml new file mode 100644 index 0000000000..6475ec1c60 --- /dev/null +++ b/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/configmap-agent.yaml @@ -0,0 +1,92 @@ +--- +# Source: opentelemetry-collector/templates/configmap-agent.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: example-opentelemetry-collector-agent + namespace: default + labels: + helm.sh/chart: opentelemetry-collector-0.144.0 + app.kubernetes.io/name: opentelemetry-collector + app.kubernetes.io/instance: example + app.kubernetes.io/version: "0.144.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-collector + app.kubernetes.io/component: agent-collector +data: + relay: | + exporters: + debug: {} + extensions: + health_check: + endpoint: ${env:MY_POD_IP}:13133 + processors: + batch: {} + memory_limiter: + check_interval: 5s + limit_percentage: 80 + spike_limit_percentage: 25 + receivers: + jaeger: + protocols: + grpc: + endpoint: ${env:MY_POD_IP}:14250 + thrift_compact: + endpoint: ${env:MY_POD_IP}:6831 + thrift_http: + endpoint: ${env:MY_POD_IP}:14268 + otlp: + protocols: + grpc: + endpoint: ${env:MY_POD_IP}:4317 + http: + endpoint: ${env:MY_POD_IP}:4318 + prometheus: + config: + scrape_configs: + - job_name: opentelemetry-collector + scrape_interval: 10s + static_configs: + - targets: + - ${env:MY_POD_IP}:8888 + zipkin: + endpoint: ${env:MY_POD_IP}:9411 + service: + extensions: + - health_check + pipelines: + logs: + exporters: + - debug + processors: + - memory_limiter + - batch + receivers: + - otlp + metrics: + exporters: + - debug + processors: + - memory_limiter + - batch + receivers: + - otlp + - prometheus + traces: + exporters: + - debug + processors: + - memory_limiter + - batch + receivers: + - otlp + - jaeger + - zipkin + telemetry: + metrics: + readers: + - pull: + exporter: + prometheus: + host: ${env:MY_POD_IP} + port: 8888 diff --git a/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/daemonset.yaml b/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/daemonset.yaml new file mode 100644 index 0000000000..3be7833bac --- /dev/null +++ b/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/daemonset.yaml @@ -0,0 +1,105 @@ +--- +# Source: opentelemetry-collector/templates/daemonset.yaml +apiVersion: apps.kruise.io/v1alpha1 +kind: DaemonSet +metadata: + name: example-opentelemetry-collector-agent + namespace: default + labels: + helm.sh/chart: opentelemetry-collector-0.144.0 + app.kubernetes.io/name: opentelemetry-collector + app.kubernetes.io/instance: example + app.kubernetes.io/version: "0.144.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-collector + app.kubernetes.io/component: agent-collector +spec: + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/name: opentelemetry-collector + app.kubernetes.io/instance: example + component: agent-collector + updateStrategy: + rollingUpdate: + maxUnavailable: 1 + partition: 0 + type: RollingUpdate + template: + metadata: + annotations: + checksum/config: d4535dacfefadbea526b1390f38ce6d3d6969ee590e0f0b3cfbdbc5587fef524 + + labels: + app.kubernetes.io/name: opentelemetry-collector + app.kubernetes.io/instance: example + component: agent-collector + + spec: + + serviceAccountName: example-opentelemetry-collector + automountServiceAccountToken: true + securityContext: + {} + containers: + - name: opentelemetry-collector + command: + - /otelcol-k8s + args: + - --config=/conf/relay.yaml + securityContext: + {} + image: "ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-k8s:0.144.0" + imagePullPolicy: IfNotPresent + ports: + + - name: jaeger-compact + containerPort: 6831 + protocol: UDP + hostPort: 6831 + - name: jaeger-grpc + containerPort: 14250 + protocol: TCP + hostPort: 14250 + - name: jaeger-thrift + containerPort: 14268 + protocol: TCP + hostPort: 14268 + - name: otlp + containerPort: 4317 + protocol: TCP + hostPort: 4317 + - name: otlp-http + containerPort: 4318 + protocol: TCP + hostPort: 4318 + - name: zipkin + containerPort: 9411 + protocol: TCP + hostPort: 9411 + env: + - name: MY_POD_IP + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: status.podIP + livenessProbe: + httpGet: + path: / + port: 13133 + readinessProbe: + httpGet: + path: / + port: 13133 + volumeMounts: + - mountPath: /conf + name: opentelemetry-collector-configmap + volumes: + - name: opentelemetry-collector-configmap + configMap: + name: example-opentelemetry-collector-agent + items: + - key: relay + path: relay.yaml + hostNetwork: false + hostPID: false diff --git a/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/serviceaccount.yaml b/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/serviceaccount.yaml new file mode 100644 index 0000000000..2f941c6743 --- /dev/null +++ b/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/serviceaccount.yaml @@ -0,0 +1,15 @@ +--- +# Source: opentelemetry-collector/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: example-opentelemetry-collector + namespace: default + labels: + helm.sh/chart: opentelemetry-collector-0.144.0 + app.kubernetes.io/name: opentelemetry-collector + app.kubernetes.io/instance: example + app.kubernetes.io/version: "0.144.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-collector + app.kubernetes.io/component: agent-collector diff --git a/charts/opentelemetry-collector/examples/daemonset-openkruise/values.yaml b/charts/opentelemetry-collector/examples/daemonset-openkruise/values.yaml new file mode 100644 index 0000000000..fa8afb0f41 --- /dev/null +++ b/charts/opentelemetry-collector/examples/daemonset-openkruise/values.yaml @@ -0,0 +1,16 @@ +mode: daemonset + +image: + repository: "ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-k8s" + +command: + name: "otelcol-k8s" + +daemonset: + apiVersion: apps.kruise.io/v1alpha1 + +rollout: + strategy: RollingUpdate + rollingUpdate: + maxUnavailable: 1 + partition: 0 diff --git a/charts/opentelemetry-collector/templates/daemonset.yaml b/charts/opentelemetry-collector/templates/daemonset.yaml index 6cc106e800..69cd45ec72 100644 --- a/charts/opentelemetry-collector/templates/daemonset.yaml +++ b/charts/opentelemetry-collector/templates/daemonset.yaml @@ -1,5 +1,5 @@ {{- if eq .Values.mode "daemonset" -}} -apiVersion: apps/v1 +apiVersion: {{ .Values.daemonset.apiVersion | default "apps/v1" }} kind: DaemonSet metadata: name: {{ include "opentelemetry-collector.fullname" . }}-agent diff --git a/charts/opentelemetry-collector/values.schema.json b/charts/opentelemetry-collector/values.schema.json index ce7e9d01b7..b2f0b18a38 100644 --- a/charts/opentelemetry-collector/values.schema.json +++ b/charts/opentelemetry-collector/values.schema.json @@ -1038,6 +1038,7 @@ "properties": { "rollingUpdate": { "type": "object", + "additionalProperties": true, "properties": { "maxSurge": { "$ref": "#/$defs/intOrString" @@ -1137,6 +1138,16 @@ } } }, + "daemonset": { + "type": "object", + "additionalProperties": false, + "properties": { + "apiVersion": { + "type": "string", + "description": "Override the default apiVersion for custom controllers or testing new API versions." + } + } + }, "networkPolicy": { "type": "object", "additionalProperties": false, diff --git a/charts/opentelemetry-collector/values.yaml b/charts/opentelemetry-collector/values.yaml index 0ac9fcfb9f..7804a4a239 100644 --- a/charts/opentelemetry-collector/values.yaml +++ b/charts/opentelemetry-collector/values.yaml @@ -646,6 +646,14 @@ rollout: # When 'mode: daemonset', maxSurge cannot be used when hostPort is set for any of the ports # maxSurge: 25% # maxUnavailable: 0 + # Custom controllers like OpenKruise support additional rollingUpdate fields: + # rollingUpdate: + # maxUnavailable: 1 + # partition: 0 + # paused: false + # selector: + # matchLabels: + # app: example strategy: RollingUpdate prometheusRule: @@ -672,6 +680,13 @@ statefulset: whenDeleted: Retain whenScaled: Retain +daemonset: + # Override the default apiVersion for custom controllers (e.g., OpenKruise) + # or for testing new API versions. + # If not set, defaults to "apps/v1". + # Example: apps.kruise.io/v1alpha1 + apiVersion: "" + networkPolicy: enabled: false From a5cfe00722037d50828e62fa71fbf5257f522c79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Medzi=C5=84ski?= Date: Sat, 21 Mar 2026 12:01:08 +0100 Subject: [PATCH 2/7] refactor(opentelemetry-collector): move apiVersion to top-level value Move .Values.daemonset.apiVersion to .Values.apiVersion so it applies uniformly to daemonset, deployment, and statefulset modes. --- .../ci/daemonset-openkruise-values.yaml | 3 +- .../templates/daemonset.yaml | 2 +- .../templates/deployment.yaml | 2 +- .../templates/statefulset.yaml | 2 +- .../values.schema.json | 214 ++++-------------- charts/opentelemetry-collector/values.yaml | 13 +- 6 files changed, 56 insertions(+), 180 deletions(-) diff --git a/charts/opentelemetry-collector/ci/daemonset-openkruise-values.yaml b/charts/opentelemetry-collector/ci/daemonset-openkruise-values.yaml index 6a9ff87a76..49b5974113 100644 --- a/charts/opentelemetry-collector/ci/daemonset-openkruise-values.yaml +++ b/charts/opentelemetry-collector/ci/daemonset-openkruise-values.yaml @@ -11,8 +11,7 @@ resources: cpu: 100m memory: 200M -daemonset: - apiVersion: apps.kruise.io/v1alpha1 +apiVersion: apps.kruise.io/v1alpha1 rollout: strategy: RollingUpdate diff --git a/charts/opentelemetry-collector/templates/daemonset.yaml b/charts/opentelemetry-collector/templates/daemonset.yaml index 69cd45ec72..132c23edcf 100644 --- a/charts/opentelemetry-collector/templates/daemonset.yaml +++ b/charts/opentelemetry-collector/templates/daemonset.yaml @@ -1,5 +1,5 @@ {{- if eq .Values.mode "daemonset" -}} -apiVersion: {{ .Values.daemonset.apiVersion | default "apps/v1" }} +apiVersion: {{ .Values.apiVersion | default "apps/v1" }} kind: DaemonSet metadata: name: {{ include "opentelemetry-collector.fullname" . }}-agent diff --git a/charts/opentelemetry-collector/templates/deployment.yaml b/charts/opentelemetry-collector/templates/deployment.yaml index 769177c546..41aba7d05b 100644 --- a/charts/opentelemetry-collector/templates/deployment.yaml +++ b/charts/opentelemetry-collector/templates/deployment.yaml @@ -1,5 +1,5 @@ {{- if eq .Values.mode "deployment" -}} -apiVersion: apps/v1 +apiVersion: {{ .Values.apiVersion | default "apps/v1" }} kind: Deployment metadata: name: {{ include "opentelemetry-collector.fullname" . }} diff --git a/charts/opentelemetry-collector/templates/statefulset.yaml b/charts/opentelemetry-collector/templates/statefulset.yaml index 7be4b3f1f6..3d89e2ed9d 100644 --- a/charts/opentelemetry-collector/templates/statefulset.yaml +++ b/charts/opentelemetry-collector/templates/statefulset.yaml @@ -1,5 +1,5 @@ {{- if eq .Values.mode "statefulset" -}} -apiVersion: apps/v1 +apiVersion: {{ .Values.apiVersion | default "apps/v1" }} kind: StatefulSet metadata: name: {{ include "opentelemetry-collector.fullname" . }} diff --git a/charts/opentelemetry-collector/values.schema.json b/charts/opentelemetry-collector/values.schema.json index b2f0b18a38..d0e68f8787 100644 --- a/charts/opentelemetry-collector/values.schema.json +++ b/charts/opentelemetry-collector/values.schema.json @@ -33,12 +33,11 @@ }, "mode": { "type": "string", - "enum": [ - "daemonset", - "deployment", - "statefulset", - "" - ] + "enum": ["daemonset", "deployment", "statefulset", ""] + }, + "apiVersion": { + "type": "string", + "description": "Override the default apiVersion for custom controllers or testing new API versions. Applies to daemonset, deployment, and statefulset modes." }, "namespaceOverride": { "type": "string", @@ -196,11 +195,7 @@ }, "pullPolicy": { "type": "string", - "enum": [ - "IfNotPresent", - "Always", - "Never" - ] + "enum": ["IfNotPresent", "Always", "Never"] } } }, @@ -243,9 +238,7 @@ "type": "boolean" } }, - "required": [ - "create" - ] + "required": ["create"] }, "clusterRole": { "type": "object", @@ -279,9 +272,7 @@ } } }, - "required": [ - "create" - ] + "required": ["create"] }, "podSecurityContext": { "type": "object" @@ -323,9 +314,7 @@ "type": "string" } }, - "required": [ - "name" - ] + "required": ["name"] } }, "initContainers": { @@ -338,9 +327,7 @@ "type": "string" } }, - "required": [ - "name" - ] + "required": ["name"] } }, "extraEnvs": { @@ -402,9 +389,7 @@ "type": "string" } }, - "required": [ - "enabled" - ] + "required": ["enabled"] } } }, @@ -417,10 +402,7 @@ "additionalProperties": false, "properties": { "cpu": { - "type": [ - "string", - "integer" - ] + "type": ["string", "integer"] }, "ephemeral-storage": { "type": "string" @@ -435,10 +417,7 @@ "additionalProperties": false, "properties": { "cpu": { - "type": [ - "string", - "integer" - ] + "type": ["string", "integer"] }, "ephemeral-storage": { "type": "string" @@ -494,14 +473,10 @@ }, "oneOf": [ { - "required": [ - "exec" - ] + "required": ["exec"] }, { - "required": [ - "httpGet" - ] + "required": ["httpGet"] } ] }, @@ -554,19 +529,13 @@ }, "oneOf": [ { - "required": [ - "exec" - ] + "required": ["exec"] }, { - "required": [ - "httpGet" - ] + "required": ["httpGet"] }, { - "required": [ - "sleep" - ] + "required": ["sleep"] } ] } @@ -697,13 +666,7 @@ }, "dnsPolicy": { "type": "string", - "enum": [ - "ClusterFirst", - "ClusterFirstWithHostNet", - "Default", - "None", - "" - ] + "enum": ["ClusterFirst", "ClusterFirstWithHostNet", "Default", "None", ""] }, "dnsConfig": { "type": "object" @@ -729,20 +692,11 @@ }, "trafficDistribution": { "type": "string", - "enum": [ - "PreferClose", - "PreferSameZone", - "PreferSameNode" - ] + "enum": ["PreferClose", "PreferSameZone", "PreferSameNode"] }, "type": { "type": "string", - "enum": [ - "ClusterIP", - "NodePort", - "LoadBalancer", - "ExternalName" - ] + "enum": ["ClusterIP", "NodePort", "LoadBalancer", "ExternalName"] }, "clusterIP": { "type": "string" @@ -761,19 +715,11 @@ }, "internalTrafficPolicy": { "type": "string", - "enum": [ - "Cluster", - "Local", - "" - ] + "enum": ["Cluster", "Local", ""] }, "externalTrafficPolicy": { "type": "string", - "enum": [ - "Cluster", - "Local", - "" - ] + "enum": ["Cluster", "Local", ""] } } }, @@ -810,27 +756,17 @@ }, "pathType": { "type": "string", - "enum": [ - "Exact", - "Prefix", - "ImplementationSpecific" - ] + "enum": ["Exact", "Prefix", "ImplementationSpecific"] }, "port": { "type": "integer" } }, - "required": [ - "path", - "pathType", - "port" - ] + "required": ["path", "pathType", "port"] } } }, - "required": [ - "paths" - ] + "required": ["paths"] } }, "tls": { @@ -896,17 +832,11 @@ "type": "integer" } }, - "required": [ - "path", - "pathType", - "port" - ] + "required": ["path", "pathType", "port"] } } }, - "required": [ - "paths" - ] + "required": ["paths"] } }, "tls": { @@ -928,15 +858,11 @@ } } }, - "required": [ - "name" - ] + "required": ["name"] } } }, - "required": [ - "enabled" - ] + "required": ["enabled"] }, "podMonitor": { "type": "object", @@ -954,9 +880,7 @@ "type": "object" } }, - "required": [ - "enabled" - ] + "required": ["enabled"] }, "serviceMonitor": { "type": "object", @@ -984,14 +908,10 @@ "default": [], "title": "The metricRelabelings Schema", "items": {}, - "examples": [ - [] - ] + "examples": [[]] } }, - "required": [ - "enabled" - ] + "required": ["enabled"] }, "podDisruptionBudget": { "type": "object", @@ -1000,9 +920,7 @@ "type": "boolean" } }, - "required": [ - "enabled" - ] + "required": ["enabled"] }, "autoscaling": { "type": "object", @@ -1029,9 +947,7 @@ } } }, - "required": [ - "enabled" - ] + "required": ["enabled"] }, "rollout": { "type": "object", @@ -1050,17 +966,11 @@ }, "strategy": { "type": "string", - "enum": [ - "OnDelete", - "Recreate", - "RollingUpdate" - ], + "enum": ["OnDelete", "Recreate", "RollingUpdate"], "default": "RollingUpdate" } }, - "required": [ - "strategy" - ] + "required": ["strategy"] }, "prometheusRule": { "type": "object", @@ -1085,27 +995,21 @@ "enabled": { "type": "boolean", "default": false, - "examples": [ - false - ] + "examples": [false] }, "additionalRuleLabels": { "type": "object", "default": {}, "required": [], "properties": {}, - "examples": [ - {} - ] + "examples": [{}] }, "additionalRuleAnnotations": { "type": "object", "default": {}, "required": [], "properties": {}, - "examples": [ - {} - ] + "examples": [{}] } }, "examples": [ @@ -1120,9 +1024,7 @@ "type": "object" } }, - "required": [ - "enabled" - ] + "required": ["enabled"] }, "statefulset": { "type": "object", @@ -1138,16 +1040,6 @@ } } }, - "daemonset": { - "type": "object", - "additionalProperties": false, - "properties": { - "apiVersion": { - "type": "string", - "description": "Override the default apiVersion for custom controllers or testing new API versions." - } - } - }, "networkPolicy": { "type": "object", "additionalProperties": false, @@ -1192,10 +1084,7 @@ "type": "array", "items": { "type": "object", - "required": [ - "name", - "value" - ], + "required": ["name", "value"], "properties": { "name": { "type": "string" @@ -1217,10 +1106,7 @@ "type": "array", "items": { "type": "object", - "required": [ - "name", - "value" - ], + "required": ["name", "value"], "properties": { "name": { "type": "string" @@ -1244,10 +1130,7 @@ "type": "array", "items": { "type": "object", - "required": [ - "name", - "value" - ], + "required": ["name", "value"], "properties": { "name": { "type": "string" @@ -1271,10 +1154,7 @@ "type": "array", "items": { "type": "object", - "required": [ - "name", - "value" - ], + "required": ["name", "value"], "properties": { "name": { "type": "string" @@ -1293,7 +1173,5 @@ "type": "boolean" } }, - "required": [ - "mode" - ] + "required": ["mode"] } diff --git a/charts/opentelemetry-collector/values.yaml b/charts/opentelemetry-collector/values.yaml index 7804a4a239..af72dddc96 100644 --- a/charts/opentelemetry-collector/values.yaml +++ b/charts/opentelemetry-collector/values.yaml @@ -8,6 +8,12 @@ fullnameOverride: "" # Valid values are "daemonset", "deployment", and "statefulset". mode: "" +# Override the default apiVersion for custom controllers (e.g., OpenKruise) +# or for testing new API versions. +# If not set, defaults to "apps/v1". +# Example: apps.kruise.io/v1alpha1 +apiVersion: "" + # Specify which namespace should be used to deploy the resources into namespaceOverride: "" @@ -680,13 +686,6 @@ statefulset: whenDeleted: Retain whenScaled: Retain -daemonset: - # Override the default apiVersion for custom controllers (e.g., OpenKruise) - # or for testing new API versions. - # If not set, defaults to "apps/v1". - # Example: apps.kruise.io/v1alpha1 - apiVersion: "" - networkPolicy: enabled: false From a4a5f46663106741b7c2f9b0b69da32b30825ea6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Medzi=C5=84ski?= Date: Sat, 21 Mar 2026 12:18:14 +0100 Subject: [PATCH 3/7] feat(opentelemetry-collector): add OpenKruise StatefulSet CI values and rollingUpdate support --- .../ci/statefulset-openkruise-values.yaml | 21 +++++++++++++++++++ .../templates/statefulset.yaml | 6 ++++++ 2 files changed, 27 insertions(+) create mode 100644 charts/opentelemetry-collector/ci/statefulset-openkruise-values.yaml diff --git a/charts/opentelemetry-collector/ci/statefulset-openkruise-values.yaml b/charts/opentelemetry-collector/ci/statefulset-openkruise-values.yaml new file mode 100644 index 0000000000..6bca7cc876 --- /dev/null +++ b/charts/opentelemetry-collector/ci/statefulset-openkruise-values.yaml @@ -0,0 +1,21 @@ +mode: statefulset + +image: + repository: "ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-k8s" + +command: + name: "otelcol-k8s" + +replicaCount: 2 +resources: + limits: + cpu: 100m + memory: 200M + +apiVersion: apps.kruise.io/v1beta1 + +rollout: + strategy: RollingUpdate + rollingUpdate: + maxUnavailable: 1 + partition: 0 diff --git a/charts/opentelemetry-collector/templates/statefulset.yaml b/charts/opentelemetry-collector/templates/statefulset.yaml index 3d89e2ed9d..ca3709f7a2 100644 --- a/charts/opentelemetry-collector/templates/statefulset.yaml +++ b/charts/opentelemetry-collector/templates/statefulset.yaml @@ -29,6 +29,12 @@ spec: {{- include "opentelemetry-collector.selectorLabels" . | nindent 6 }} {{- include "opentelemetry-collector.component" . | nindent 6 }} updateStrategy: + {{- if eq .Values.rollout.strategy "RollingUpdate" }} + {{- with .Values.rollout.rollingUpdate }} + rollingUpdate: + {{- toYaml . | nindent 6 }} + {{- end }} + {{- end }} type: {{ .Values.rollout.strategy }} template: metadata: From 8ed79df87fdff5626841760cf01f29b5253d6771 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Medzi=C5=84ski?= Date: Sat, 21 Mar 2026 12:32:18 +0100 Subject: [PATCH 4/7] feat(opentelemetry-collector): add statefulset-openkruise example and update daemonset-openkruise --- .../rendered/configmap-agent.yaml | 11 +- .../rendered/daemonset.yaml | 31 ++++- .../rendered/serviceaccount.yaml | 4 +- .../examples/daemonset-openkruise/values.yaml | 3 +- .../rendered/configmap-statefulset.yaml | 99 ++++++++++++++ .../rendered/service.yaml | 50 +++++++ .../rendered/serviceaccount.yaml | 15 +++ .../rendered/statefulset.yaml | 125 ++++++++++++++++++ .../statefulset-openkruise/values.yaml | 17 +++ 9 files changed, 345 insertions(+), 10 deletions(-) create mode 100644 charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/configmap-statefulset.yaml create mode 100644 charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/service.yaml create mode 100644 charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/serviceaccount.yaml create mode 100644 charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/statefulset.yaml create mode 100644 charts/opentelemetry-collector/examples/statefulset-openkruise/values.yaml diff --git a/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/configmap-agent.yaml b/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/configmap-agent.yaml index 6475ec1c60..91b07eccf7 100644 --- a/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/configmap-agent.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/configmap-agent.yaml @@ -6,10 +6,10 @@ metadata: name: example-opentelemetry-collector-agent namespace: default labels: - helm.sh/chart: opentelemetry-collector-0.144.0 + helm.sh/chart: opentelemetry-collector-0.147.1 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.144.0" + app.kubernetes.io/version: "0.147.0" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: opentelemetry-collector app.kubernetes.io/component: agent-collector @@ -90,3 +90,10 @@ data: prometheus: host: ${env:MY_POD_IP} port: 8888 + resource: + host.name: ${env:OTEL_K8S_NODE_NAME} + k8s.namespace.name: ${env:OTEL_K8S_NAMESPACE} + k8s.node.ip: ${env:OTEL_K8S_NODE_IP} + k8s.node.name: ${env:OTEL_K8S_NODE_NAME} + k8s.pod.ip: ${env:OTEL_K8S_POD_IP} + k8s.pod.name: ${env:OTEL_K8S_POD_NAME} diff --git a/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/daemonset.yaml b/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/daemonset.yaml index 3be7833bac..df9d5bee1c 100644 --- a/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/daemonset.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/daemonset.yaml @@ -6,10 +6,10 @@ metadata: name: example-opentelemetry-collector-agent namespace: default labels: - helm.sh/chart: opentelemetry-collector-0.144.0 + helm.sh/chart: opentelemetry-collector-0.147.1 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.144.0" + app.kubernetes.io/version: "0.147.0" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: opentelemetry-collector app.kubernetes.io/component: agent-collector @@ -28,7 +28,7 @@ spec: template: metadata: annotations: - checksum/config: d4535dacfefadbea526b1390f38ce6d3d6969ee590e0f0b3cfbdbc5587fef524 + checksum/config: 437dd551283410a5d92f3fd12b244da263fc90dc8b213d4e9c7ac02d340fe22e labels: app.kubernetes.io/name: opentelemetry-collector @@ -49,7 +49,7 @@ spec: - --config=/conf/relay.yaml securityContext: {} - image: "ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-k8s:0.144.0" + image: "ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-k8s:0.147.0" imagePullPolicy: IfNotPresent ports: @@ -83,6 +83,29 @@ spec: fieldRef: apiVersion: v1 fieldPath: status.podIP + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: OTEL_K8S_NODE_IP + valueFrom: + fieldRef: + fieldPath: status.hostIP + - name: OTEL_K8S_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + - name: OTEL_K8S_POD_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name + - name: OTEL_K8S_POD_IP + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: status.podIP livenessProbe: httpGet: path: / diff --git a/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/serviceaccount.yaml b/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/serviceaccount.yaml index 2f941c6743..3ff01c136e 100644 --- a/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/serviceaccount.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/serviceaccount.yaml @@ -6,10 +6,10 @@ metadata: name: example-opentelemetry-collector namespace: default labels: - helm.sh/chart: opentelemetry-collector-0.144.0 + helm.sh/chart: opentelemetry-collector-0.147.1 app.kubernetes.io/name: opentelemetry-collector app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.144.0" + app.kubernetes.io/version: "0.147.0" app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: opentelemetry-collector app.kubernetes.io/component: agent-collector diff --git a/charts/opentelemetry-collector/examples/daemonset-openkruise/values.yaml b/charts/opentelemetry-collector/examples/daemonset-openkruise/values.yaml index fa8afb0f41..4f72069938 100644 --- a/charts/opentelemetry-collector/examples/daemonset-openkruise/values.yaml +++ b/charts/opentelemetry-collector/examples/daemonset-openkruise/values.yaml @@ -6,8 +6,7 @@ image: command: name: "otelcol-k8s" -daemonset: - apiVersion: apps.kruise.io/v1alpha1 +apiVersion: apps.kruise.io/v1alpha1 rollout: strategy: RollingUpdate diff --git a/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/configmap-statefulset.yaml b/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/configmap-statefulset.yaml new file mode 100644 index 0000000000..0e8fd8c9af --- /dev/null +++ b/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/configmap-statefulset.yaml @@ -0,0 +1,99 @@ +--- +# Source: opentelemetry-collector/templates/configmap-statefulset.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: example-opentelemetry-collector-statefulset + namespace: default + labels: + helm.sh/chart: opentelemetry-collector-0.147.1 + app.kubernetes.io/name: opentelemetry-collector + app.kubernetes.io/instance: example + app.kubernetes.io/version: "0.147.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-collector + app.kubernetes.io/component: statefulset-collector +data: + relay: | + exporters: + debug: {} + extensions: + health_check: + endpoint: ${env:MY_POD_IP}:13133 + processors: + batch: {} + memory_limiter: + check_interval: 5s + limit_percentage: 80 + spike_limit_percentage: 25 + receivers: + jaeger: + protocols: + grpc: + endpoint: ${env:MY_POD_IP}:14250 + thrift_compact: + endpoint: ${env:MY_POD_IP}:6831 + thrift_http: + endpoint: ${env:MY_POD_IP}:14268 + otlp: + protocols: + grpc: + endpoint: ${env:MY_POD_IP}:4317 + http: + endpoint: ${env:MY_POD_IP}:4318 + prometheus: + config: + scrape_configs: + - job_name: opentelemetry-collector + scrape_interval: 10s + static_configs: + - targets: + - ${env:MY_POD_IP}:8888 + zipkin: + endpoint: ${env:MY_POD_IP}:9411 + service: + extensions: + - health_check + pipelines: + logs: + exporters: + - debug + processors: + - memory_limiter + - batch + receivers: + - otlp + metrics: + exporters: + - debug + processors: + - memory_limiter + - batch + receivers: + - otlp + - prometheus + traces: + exporters: + - debug + processors: + - memory_limiter + - batch + receivers: + - otlp + - jaeger + - zipkin + telemetry: + metrics: + readers: + - pull: + exporter: + prometheus: + host: ${env:MY_POD_IP} + port: 8888 + resource: + host.name: ${env:OTEL_K8S_NODE_NAME} + k8s.namespace.name: ${env:OTEL_K8S_NAMESPACE} + k8s.node.ip: ${env:OTEL_K8S_NODE_IP} + k8s.node.name: ${env:OTEL_K8S_NODE_NAME} + k8s.pod.ip: ${env:OTEL_K8S_POD_IP} + k8s.pod.name: ${env:OTEL_K8S_POD_NAME} diff --git a/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/service.yaml b/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/service.yaml new file mode 100644 index 0000000000..25c040b054 --- /dev/null +++ b/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/service.yaml @@ -0,0 +1,50 @@ +--- +# Source: opentelemetry-collector/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: example-opentelemetry-collector + namespace: default + labels: + helm.sh/chart: opentelemetry-collector-0.147.1 + app.kubernetes.io/name: opentelemetry-collector + app.kubernetes.io/instance: example + app.kubernetes.io/version: "0.147.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-collector + app.kubernetes.io/component: statefulset-collector + component: statefulset-collector +spec: + type: ClusterIP + ports: + + - name: jaeger-compact + port: 6831 + targetPort: 6831 + protocol: UDP + - name: jaeger-grpc + port: 14250 + targetPort: 14250 + protocol: TCP + - name: jaeger-thrift + port: 14268 + targetPort: 14268 + protocol: TCP + - name: otlp + port: 4317 + targetPort: 4317 + protocol: TCP + appProtocol: grpc + - name: otlp-http + port: 4318 + targetPort: 4318 + protocol: TCP + - name: zipkin + port: 9411 + targetPort: 9411 + protocol: TCP + selector: + app.kubernetes.io/name: opentelemetry-collector + app.kubernetes.io/instance: example + component: statefulset-collector + internalTrafficPolicy: Cluster diff --git a/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/serviceaccount.yaml b/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/serviceaccount.yaml new file mode 100644 index 0000000000..f4eb51d698 --- /dev/null +++ b/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/serviceaccount.yaml @@ -0,0 +1,15 @@ +--- +# Source: opentelemetry-collector/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: example-opentelemetry-collector + namespace: default + labels: + helm.sh/chart: opentelemetry-collector-0.147.1 + app.kubernetes.io/name: opentelemetry-collector + app.kubernetes.io/instance: example + app.kubernetes.io/version: "0.147.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-collector + app.kubernetes.io/component: statefulset-collector diff --git a/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/statefulset.yaml b/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/statefulset.yaml new file mode 100644 index 0000000000..38e65b39e4 --- /dev/null +++ b/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/statefulset.yaml @@ -0,0 +1,125 @@ +--- +# Source: opentelemetry-collector/templates/statefulset.yaml +apiVersion: apps.kruise.io/v1beta1 +kind: StatefulSet +metadata: + name: example-opentelemetry-collector + namespace: default + labels: + helm.sh/chart: opentelemetry-collector-0.147.1 + app.kubernetes.io/name: opentelemetry-collector + app.kubernetes.io/instance: example + app.kubernetes.io/version: "0.147.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-collector + app.kubernetes.io/component: statefulset-collector +spec: + serviceName: example-opentelemetry-collector + podManagementPolicy: Parallel + replicas: 2 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/name: opentelemetry-collector + app.kubernetes.io/instance: example + component: statefulset-collector + updateStrategy: + rollingUpdate: + maxUnavailable: 1 + partition: 0 + type: RollingUpdate + template: + metadata: + annotations: + checksum/config: b596df6da3e2ab894279b4de9d56f85f7043098f9cb2ddf6a7c6ca48f57ebac4 + + labels: + app.kubernetes.io/name: opentelemetry-collector + app.kubernetes.io/instance: example + component: statefulset-collector + + spec: + + serviceAccountName: example-opentelemetry-collector + automountServiceAccountToken: true + securityContext: + {} + containers: + - name: opentelemetry-collector + command: + - /otelcol-k8s + args: + - --config=/conf/relay.yaml + securityContext: + {} + image: "ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-k8s:0.147.0" + imagePullPolicy: IfNotPresent + ports: + + - name: jaeger-compact + containerPort: 6831 + protocol: UDP + - name: jaeger-grpc + containerPort: 14250 + protocol: TCP + - name: jaeger-thrift + containerPort: 14268 + protocol: TCP + - name: otlp + containerPort: 4317 + protocol: TCP + - name: otlp-http + containerPort: 4318 + protocol: TCP + - name: zipkin + containerPort: 9411 + protocol: TCP + env: + - name: MY_POD_IP + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: status.podIP + - name: OTEL_K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: OTEL_K8S_NODE_IP + valueFrom: + fieldRef: + fieldPath: status.hostIP + - name: OTEL_K8S_NAMESPACE + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.namespace + - name: OTEL_K8S_POD_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: metadata.name + - name: OTEL_K8S_POD_IP + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: status.podIP + livenessProbe: + httpGet: + path: / + port: 13133 + readinessProbe: + httpGet: + path: / + port: 13133 + volumeMounts: + - mountPath: /conf + name: opentelemetry-collector-configmap + volumes: + - name: opentelemetry-collector-configmap + configMap: + name: example-opentelemetry-collector-statefulset + items: + - key: relay + path: relay.yaml + hostNetwork: false + hostPID: false diff --git a/charts/opentelemetry-collector/examples/statefulset-openkruise/values.yaml b/charts/opentelemetry-collector/examples/statefulset-openkruise/values.yaml new file mode 100644 index 0000000000..65d88ca15b --- /dev/null +++ b/charts/opentelemetry-collector/examples/statefulset-openkruise/values.yaml @@ -0,0 +1,17 @@ +mode: statefulset + +image: + repository: "ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-k8s" + +command: + name: "otelcol-k8s" + +replicaCount: 2 + +apiVersion: apps.kruise.io/v1beta1 + +rollout: + strategy: RollingUpdate + rollingUpdate: + maxUnavailable: 1 + partition: 0 From 3de17e09f14b44bce7d7effb3e0db7dc9ca72fca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Medzi=C5=84ski?= Date: Sat, 21 Mar 2026 20:49:07 +0100 Subject: [PATCH 5/7] fix(opentelemetry-collector): fix CI failures --- .../ci/daemonset-openkruise-values.yaml | 20 -- .../ci/statefulset-openkruise-values.yaml | 21 -- .../values.schema.json | 200 ++++++++++++++---- 3 files changed, 158 insertions(+), 83 deletions(-) delete mode 100644 charts/opentelemetry-collector/ci/daemonset-openkruise-values.yaml delete mode 100644 charts/opentelemetry-collector/ci/statefulset-openkruise-values.yaml diff --git a/charts/opentelemetry-collector/ci/daemonset-openkruise-values.yaml b/charts/opentelemetry-collector/ci/daemonset-openkruise-values.yaml deleted file mode 100644 index 49b5974113..0000000000 --- a/charts/opentelemetry-collector/ci/daemonset-openkruise-values.yaml +++ /dev/null @@ -1,20 +0,0 @@ -mode: daemonset - -image: - repository: "ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-k8s" - -command: - name: "otelcol-k8s" - -resources: - limits: - cpu: 100m - memory: 200M - -apiVersion: apps.kruise.io/v1alpha1 - -rollout: - strategy: RollingUpdate - rollingUpdate: - maxUnavailable: 1 - partition: 0 diff --git a/charts/opentelemetry-collector/ci/statefulset-openkruise-values.yaml b/charts/opentelemetry-collector/ci/statefulset-openkruise-values.yaml deleted file mode 100644 index 6bca7cc876..0000000000 --- a/charts/opentelemetry-collector/ci/statefulset-openkruise-values.yaml +++ /dev/null @@ -1,21 +0,0 @@ -mode: statefulset - -image: - repository: "ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-k8s" - -command: - name: "otelcol-k8s" - -replicaCount: 2 -resources: - limits: - cpu: 100m - memory: 200M - -apiVersion: apps.kruise.io/v1beta1 - -rollout: - strategy: RollingUpdate - rollingUpdate: - maxUnavailable: 1 - partition: 0 diff --git a/charts/opentelemetry-collector/values.schema.json b/charts/opentelemetry-collector/values.schema.json index d0e68f8787..47c8fb8b13 100644 --- a/charts/opentelemetry-collector/values.schema.json +++ b/charts/opentelemetry-collector/values.schema.json @@ -33,7 +33,12 @@ }, "mode": { "type": "string", - "enum": ["daemonset", "deployment", "statefulset", ""] + "enum": [ + "daemonset", + "deployment", + "statefulset", + "" + ] }, "apiVersion": { "type": "string", @@ -195,7 +200,11 @@ }, "pullPolicy": { "type": "string", - "enum": ["IfNotPresent", "Always", "Never"] + "enum": [ + "IfNotPresent", + "Always", + "Never" + ] } } }, @@ -238,7 +247,9 @@ "type": "boolean" } }, - "required": ["create"] + "required": [ + "create" + ] }, "clusterRole": { "type": "object", @@ -272,7 +283,9 @@ } } }, - "required": ["create"] + "required": [ + "create" + ] }, "podSecurityContext": { "type": "object" @@ -314,7 +327,9 @@ "type": "string" } }, - "required": ["name"] + "required": [ + "name" + ] } }, "initContainers": { @@ -327,7 +342,9 @@ "type": "string" } }, - "required": ["name"] + "required": [ + "name" + ] } }, "extraEnvs": { @@ -389,7 +406,9 @@ "type": "string" } }, - "required": ["enabled"] + "required": [ + "enabled" + ] } } }, @@ -402,7 +421,10 @@ "additionalProperties": false, "properties": { "cpu": { - "type": ["string", "integer"] + "type": [ + "string", + "integer" + ] }, "ephemeral-storage": { "type": "string" @@ -417,7 +439,10 @@ "additionalProperties": false, "properties": { "cpu": { - "type": ["string", "integer"] + "type": [ + "string", + "integer" + ] }, "ephemeral-storage": { "type": "string" @@ -473,10 +498,14 @@ }, "oneOf": [ { - "required": ["exec"] + "required": [ + "exec" + ] }, { - "required": ["httpGet"] + "required": [ + "httpGet" + ] } ] }, @@ -529,13 +558,19 @@ }, "oneOf": [ { - "required": ["exec"] + "required": [ + "exec" + ] }, { - "required": ["httpGet"] + "required": [ + "httpGet" + ] }, { - "required": ["sleep"] + "required": [ + "sleep" + ] } ] } @@ -666,7 +701,13 @@ }, "dnsPolicy": { "type": "string", - "enum": ["ClusterFirst", "ClusterFirstWithHostNet", "Default", "None", ""] + "enum": [ + "ClusterFirst", + "ClusterFirstWithHostNet", + "Default", + "None", + "" + ] }, "dnsConfig": { "type": "object" @@ -692,11 +733,20 @@ }, "trafficDistribution": { "type": "string", - "enum": ["PreferClose", "PreferSameZone", "PreferSameNode"] + "enum": [ + "PreferClose", + "PreferSameZone", + "PreferSameNode" + ] }, "type": { "type": "string", - "enum": ["ClusterIP", "NodePort", "LoadBalancer", "ExternalName"] + "enum": [ + "ClusterIP", + "NodePort", + "LoadBalancer", + "ExternalName" + ] }, "clusterIP": { "type": "string" @@ -715,11 +765,19 @@ }, "internalTrafficPolicy": { "type": "string", - "enum": ["Cluster", "Local", ""] + "enum": [ + "Cluster", + "Local", + "" + ] }, "externalTrafficPolicy": { "type": "string", - "enum": ["Cluster", "Local", ""] + "enum": [ + "Cluster", + "Local", + "" + ] } } }, @@ -756,17 +814,27 @@ }, "pathType": { "type": "string", - "enum": ["Exact", "Prefix", "ImplementationSpecific"] + "enum": [ + "Exact", + "Prefix", + "ImplementationSpecific" + ] }, "port": { "type": "integer" } }, - "required": ["path", "pathType", "port"] + "required": [ + "path", + "pathType", + "port" + ] } } }, - "required": ["paths"] + "required": [ + "paths" + ] } }, "tls": { @@ -832,11 +900,17 @@ "type": "integer" } }, - "required": ["path", "pathType", "port"] + "required": [ + "path", + "pathType", + "port" + ] } } }, - "required": ["paths"] + "required": [ + "paths" + ] } }, "tls": { @@ -858,11 +932,15 @@ } } }, - "required": ["name"] + "required": [ + "name" + ] } } }, - "required": ["enabled"] + "required": [ + "enabled" + ] }, "podMonitor": { "type": "object", @@ -880,7 +958,9 @@ "type": "object" } }, - "required": ["enabled"] + "required": [ + "enabled" + ] }, "serviceMonitor": { "type": "object", @@ -908,10 +988,14 @@ "default": [], "title": "The metricRelabelings Schema", "items": {}, - "examples": [[]] + "examples": [ + [] + ] } }, - "required": ["enabled"] + "required": [ + "enabled" + ] }, "podDisruptionBudget": { "type": "object", @@ -920,7 +1004,9 @@ "type": "boolean" } }, - "required": ["enabled"] + "required": [ + "enabled" + ] }, "autoscaling": { "type": "object", @@ -947,7 +1033,9 @@ } } }, - "required": ["enabled"] + "required": [ + "enabled" + ] }, "rollout": { "type": "object", @@ -966,11 +1054,17 @@ }, "strategy": { "type": "string", - "enum": ["OnDelete", "Recreate", "RollingUpdate"], + "enum": [ + "OnDelete", + "Recreate", + "RollingUpdate" + ], "default": "RollingUpdate" } }, - "required": ["strategy"] + "required": [ + "strategy" + ] }, "prometheusRule": { "type": "object", @@ -995,21 +1089,27 @@ "enabled": { "type": "boolean", "default": false, - "examples": [false] + "examples": [ + false + ] }, "additionalRuleLabels": { "type": "object", "default": {}, "required": [], "properties": {}, - "examples": [{}] + "examples": [ + {} + ] }, "additionalRuleAnnotations": { "type": "object", "default": {}, "required": [], "properties": {}, - "examples": [{}] + "examples": [ + {} + ] } }, "examples": [ @@ -1024,7 +1124,9 @@ "type": "object" } }, - "required": ["enabled"] + "required": [ + "enabled" + ] }, "statefulset": { "type": "object", @@ -1084,7 +1186,10 @@ "type": "array", "items": { "type": "object", - "required": ["name", "value"], + "required": [ + "name", + "value" + ], "properties": { "name": { "type": "string" @@ -1106,7 +1211,10 @@ "type": "array", "items": { "type": "object", - "required": ["name", "value"], + "required": [ + "name", + "value" + ], "properties": { "name": { "type": "string" @@ -1130,7 +1238,10 @@ "type": "array", "items": { "type": "object", - "required": ["name", "value"], + "required": [ + "name", + "value" + ], "properties": { "name": { "type": "string" @@ -1154,7 +1265,10 @@ "type": "array", "items": { "type": "object", - "required": ["name", "value"], + "required": [ + "name", + "value" + ], "properties": { "name": { "type": "string" @@ -1173,5 +1287,7 @@ "type": "boolean" } }, - "required": ["mode"] + "required": [ + "mode" + ] } From 611022c573c3f0f9e8d474208f44fb653dd4d6ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Medzi=C5=84ski?= Date: Thu, 9 Apr 2026 19:09:24 +0200 Subject: [PATCH 6/7] refactor(opentelemetry-collector): make apiVersion required and remove openkruise examples --- .../examples/README.md | 1 - .../rendered/configmap-agent.yaml | 99 -------------- .../rendered/daemonset.yaml | 128 ------------------ .../rendered/serviceaccount.yaml | 15 -- .../examples/daemonset-openkruise/values.yaml | 15 -- .../rendered/configmap-statefulset.yaml | 99 -------------- .../rendered/service.yaml | 50 ------- .../rendered/serviceaccount.yaml | 15 -- .../rendered/statefulset.yaml | 125 ----------------- .../statefulset-openkruise/values.yaml | 17 --- .../templates/daemonset.yaml | 2 +- .../templates/deployment.yaml | 2 +- .../templates/statefulset.yaml | 2 +- .../values.schema.json | 2 +- charts/opentelemetry-collector/values.yaml | 15 +- 15 files changed, 6 insertions(+), 581 deletions(-) delete mode 100644 charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/configmap-agent.yaml delete mode 100644 charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/daemonset.yaml delete mode 100644 charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/serviceaccount.yaml delete mode 100644 charts/opentelemetry-collector/examples/daemonset-openkruise/values.yaml delete mode 100644 charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/configmap-statefulset.yaml delete mode 100644 charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/service.yaml delete mode 100644 charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/serviceaccount.yaml delete mode 100644 charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/statefulset.yaml delete mode 100644 charts/opentelemetry-collector/examples/statefulset-openkruise/values.yaml diff --git a/charts/opentelemetry-collector/examples/README.md b/charts/opentelemetry-collector/examples/README.md index 6374e078f5..8f2ac4c22f 100644 --- a/charts/opentelemetry-collector/examples/README.md +++ b/charts/opentelemetry-collector/examples/README.md @@ -3,7 +3,6 @@ Here is a collection of common configurations for the OpenTelemetry collector. Each folder contains an example `values.yaml` and the resulting configurations that are generated by the opentelemetry-collector helm charts. - [Daemonset only](daemonset-only) -- [Daemonset with OpenKruise](daemonset-openkruise) - [Deployment only](deployment-only) - [Daemonset and deployment](daemonset-and-deployment) - [Log collection, including collector logs](daemonset-collector-logs) diff --git a/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/configmap-agent.yaml b/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/configmap-agent.yaml deleted file mode 100644 index 91b07eccf7..0000000000 --- a/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/configmap-agent.yaml +++ /dev/null @@ -1,99 +0,0 @@ ---- -# Source: opentelemetry-collector/templates/configmap-agent.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: example-opentelemetry-collector-agent - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.147.1 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.147.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: agent-collector -data: - relay: | - exporters: - debug: {} - extensions: - health_check: - endpoint: ${env:MY_POD_IP}:13133 - processors: - batch: {} - memory_limiter: - check_interval: 5s - limit_percentage: 80 - spike_limit_percentage: 25 - receivers: - jaeger: - protocols: - grpc: - endpoint: ${env:MY_POD_IP}:14250 - thrift_compact: - endpoint: ${env:MY_POD_IP}:6831 - thrift_http: - endpoint: ${env:MY_POD_IP}:14268 - otlp: - protocols: - grpc: - endpoint: ${env:MY_POD_IP}:4317 - http: - endpoint: ${env:MY_POD_IP}:4318 - prometheus: - config: - scrape_configs: - - job_name: opentelemetry-collector - scrape_interval: 10s - static_configs: - - targets: - - ${env:MY_POD_IP}:8888 - zipkin: - endpoint: ${env:MY_POD_IP}:9411 - service: - extensions: - - health_check - pipelines: - logs: - exporters: - - debug - processors: - - memory_limiter - - batch - receivers: - - otlp - metrics: - exporters: - - debug - processors: - - memory_limiter - - batch - receivers: - - otlp - - prometheus - traces: - exporters: - - debug - processors: - - memory_limiter - - batch - receivers: - - otlp - - jaeger - - zipkin - telemetry: - metrics: - readers: - - pull: - exporter: - prometheus: - host: ${env:MY_POD_IP} - port: 8888 - resource: - host.name: ${env:OTEL_K8S_NODE_NAME} - k8s.namespace.name: ${env:OTEL_K8S_NAMESPACE} - k8s.node.ip: ${env:OTEL_K8S_NODE_IP} - k8s.node.name: ${env:OTEL_K8S_NODE_NAME} - k8s.pod.ip: ${env:OTEL_K8S_POD_IP} - k8s.pod.name: ${env:OTEL_K8S_POD_NAME} diff --git a/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/daemonset.yaml b/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/daemonset.yaml deleted file mode 100644 index df9d5bee1c..0000000000 --- a/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/daemonset.yaml +++ /dev/null @@ -1,128 +0,0 @@ ---- -# Source: opentelemetry-collector/templates/daemonset.yaml -apiVersion: apps.kruise.io/v1alpha1 -kind: DaemonSet -metadata: - name: example-opentelemetry-collector-agent - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.147.1 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.147.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: agent-collector -spec: - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - component: agent-collector - updateStrategy: - rollingUpdate: - maxUnavailable: 1 - partition: 0 - type: RollingUpdate - template: - metadata: - annotations: - checksum/config: 437dd551283410a5d92f3fd12b244da263fc90dc8b213d4e9c7ac02d340fe22e - - labels: - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - component: agent-collector - - spec: - - serviceAccountName: example-opentelemetry-collector - automountServiceAccountToken: true - securityContext: - {} - containers: - - name: opentelemetry-collector - command: - - /otelcol-k8s - args: - - --config=/conf/relay.yaml - securityContext: - {} - image: "ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-k8s:0.147.0" - imagePullPolicy: IfNotPresent - ports: - - - name: jaeger-compact - containerPort: 6831 - protocol: UDP - hostPort: 6831 - - name: jaeger-grpc - containerPort: 14250 - protocol: TCP - hostPort: 14250 - - name: jaeger-thrift - containerPort: 14268 - protocol: TCP - hostPort: 14268 - - name: otlp - containerPort: 4317 - protocol: TCP - hostPort: 4317 - - name: otlp-http - containerPort: 4318 - protocol: TCP - hostPort: 4318 - - name: zipkin - containerPort: 9411 - protocol: TCP - hostPort: 9411 - env: - - name: MY_POD_IP - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: status.podIP - - name: OTEL_K8S_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - - name: OTEL_K8S_NODE_IP - valueFrom: - fieldRef: - fieldPath: status.hostIP - - name: OTEL_K8S_NAMESPACE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - - name: OTEL_K8S_POD_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.name - - name: OTEL_K8S_POD_IP - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: status.podIP - livenessProbe: - httpGet: - path: / - port: 13133 - readinessProbe: - httpGet: - path: / - port: 13133 - volumeMounts: - - mountPath: /conf - name: opentelemetry-collector-configmap - volumes: - - name: opentelemetry-collector-configmap - configMap: - name: example-opentelemetry-collector-agent - items: - - key: relay - path: relay.yaml - hostNetwork: false - hostPID: false diff --git a/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/serviceaccount.yaml b/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/serviceaccount.yaml deleted file mode 100644 index 3ff01c136e..0000000000 --- a/charts/opentelemetry-collector/examples/daemonset-openkruise/rendered/serviceaccount.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -# Source: opentelemetry-collector/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: example-opentelemetry-collector - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.147.1 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.147.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: agent-collector diff --git a/charts/opentelemetry-collector/examples/daemonset-openkruise/values.yaml b/charts/opentelemetry-collector/examples/daemonset-openkruise/values.yaml deleted file mode 100644 index 4f72069938..0000000000 --- a/charts/opentelemetry-collector/examples/daemonset-openkruise/values.yaml +++ /dev/null @@ -1,15 +0,0 @@ -mode: daemonset - -image: - repository: "ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-k8s" - -command: - name: "otelcol-k8s" - -apiVersion: apps.kruise.io/v1alpha1 - -rollout: - strategy: RollingUpdate - rollingUpdate: - maxUnavailable: 1 - partition: 0 diff --git a/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/configmap-statefulset.yaml b/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/configmap-statefulset.yaml deleted file mode 100644 index 0e8fd8c9af..0000000000 --- a/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/configmap-statefulset.yaml +++ /dev/null @@ -1,99 +0,0 @@ ---- -# Source: opentelemetry-collector/templates/configmap-statefulset.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: example-opentelemetry-collector-statefulset - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.147.1 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.147.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: statefulset-collector -data: - relay: | - exporters: - debug: {} - extensions: - health_check: - endpoint: ${env:MY_POD_IP}:13133 - processors: - batch: {} - memory_limiter: - check_interval: 5s - limit_percentage: 80 - spike_limit_percentage: 25 - receivers: - jaeger: - protocols: - grpc: - endpoint: ${env:MY_POD_IP}:14250 - thrift_compact: - endpoint: ${env:MY_POD_IP}:6831 - thrift_http: - endpoint: ${env:MY_POD_IP}:14268 - otlp: - protocols: - grpc: - endpoint: ${env:MY_POD_IP}:4317 - http: - endpoint: ${env:MY_POD_IP}:4318 - prometheus: - config: - scrape_configs: - - job_name: opentelemetry-collector - scrape_interval: 10s - static_configs: - - targets: - - ${env:MY_POD_IP}:8888 - zipkin: - endpoint: ${env:MY_POD_IP}:9411 - service: - extensions: - - health_check - pipelines: - logs: - exporters: - - debug - processors: - - memory_limiter - - batch - receivers: - - otlp - metrics: - exporters: - - debug - processors: - - memory_limiter - - batch - receivers: - - otlp - - prometheus - traces: - exporters: - - debug - processors: - - memory_limiter - - batch - receivers: - - otlp - - jaeger - - zipkin - telemetry: - metrics: - readers: - - pull: - exporter: - prometheus: - host: ${env:MY_POD_IP} - port: 8888 - resource: - host.name: ${env:OTEL_K8S_NODE_NAME} - k8s.namespace.name: ${env:OTEL_K8S_NAMESPACE} - k8s.node.ip: ${env:OTEL_K8S_NODE_IP} - k8s.node.name: ${env:OTEL_K8S_NODE_NAME} - k8s.pod.ip: ${env:OTEL_K8S_POD_IP} - k8s.pod.name: ${env:OTEL_K8S_POD_NAME} diff --git a/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/service.yaml b/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/service.yaml deleted file mode 100644 index 25c040b054..0000000000 --- a/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/service.yaml +++ /dev/null @@ -1,50 +0,0 @@ ---- -# Source: opentelemetry-collector/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - name: example-opentelemetry-collector - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.147.1 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.147.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: statefulset-collector - component: statefulset-collector -spec: - type: ClusterIP - ports: - - - name: jaeger-compact - port: 6831 - targetPort: 6831 - protocol: UDP - - name: jaeger-grpc - port: 14250 - targetPort: 14250 - protocol: TCP - - name: jaeger-thrift - port: 14268 - targetPort: 14268 - protocol: TCP - - name: otlp - port: 4317 - targetPort: 4317 - protocol: TCP - appProtocol: grpc - - name: otlp-http - port: 4318 - targetPort: 4318 - protocol: TCP - - name: zipkin - port: 9411 - targetPort: 9411 - protocol: TCP - selector: - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - component: statefulset-collector - internalTrafficPolicy: Cluster diff --git a/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/serviceaccount.yaml b/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/serviceaccount.yaml deleted file mode 100644 index f4eb51d698..0000000000 --- a/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/serviceaccount.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -# Source: opentelemetry-collector/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: example-opentelemetry-collector - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.147.1 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.147.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: statefulset-collector diff --git a/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/statefulset.yaml b/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/statefulset.yaml deleted file mode 100644 index 38e65b39e4..0000000000 --- a/charts/opentelemetry-collector/examples/statefulset-openkruise/rendered/statefulset.yaml +++ /dev/null @@ -1,125 +0,0 @@ ---- -# Source: opentelemetry-collector/templates/statefulset.yaml -apiVersion: apps.kruise.io/v1beta1 -kind: StatefulSet -metadata: - name: example-opentelemetry-collector - namespace: default - labels: - helm.sh/chart: opentelemetry-collector-0.147.1 - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - app.kubernetes.io/version: "0.147.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-collector - app.kubernetes.io/component: statefulset-collector -spec: - serviceName: example-opentelemetry-collector - podManagementPolicy: Parallel - replicas: 2 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - component: statefulset-collector - updateStrategy: - rollingUpdate: - maxUnavailable: 1 - partition: 0 - type: RollingUpdate - template: - metadata: - annotations: - checksum/config: b596df6da3e2ab894279b4de9d56f85f7043098f9cb2ddf6a7c6ca48f57ebac4 - - labels: - app.kubernetes.io/name: opentelemetry-collector - app.kubernetes.io/instance: example - component: statefulset-collector - - spec: - - serviceAccountName: example-opentelemetry-collector - automountServiceAccountToken: true - securityContext: - {} - containers: - - name: opentelemetry-collector - command: - - /otelcol-k8s - args: - - --config=/conf/relay.yaml - securityContext: - {} - image: "ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-k8s:0.147.0" - imagePullPolicy: IfNotPresent - ports: - - - name: jaeger-compact - containerPort: 6831 - protocol: UDP - - name: jaeger-grpc - containerPort: 14250 - protocol: TCP - - name: jaeger-thrift - containerPort: 14268 - protocol: TCP - - name: otlp - containerPort: 4317 - protocol: TCP - - name: otlp-http - containerPort: 4318 - protocol: TCP - - name: zipkin - containerPort: 9411 - protocol: TCP - env: - - name: MY_POD_IP - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: status.podIP - - name: OTEL_K8S_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - - name: OTEL_K8S_NODE_IP - valueFrom: - fieldRef: - fieldPath: status.hostIP - - name: OTEL_K8S_NAMESPACE - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.namespace - - name: OTEL_K8S_POD_NAME - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: metadata.name - - name: OTEL_K8S_POD_IP - valueFrom: - fieldRef: - apiVersion: v1 - fieldPath: status.podIP - livenessProbe: - httpGet: - path: / - port: 13133 - readinessProbe: - httpGet: - path: / - port: 13133 - volumeMounts: - - mountPath: /conf - name: opentelemetry-collector-configmap - volumes: - - name: opentelemetry-collector-configmap - configMap: - name: example-opentelemetry-collector-statefulset - items: - - key: relay - path: relay.yaml - hostNetwork: false - hostPID: false diff --git a/charts/opentelemetry-collector/examples/statefulset-openkruise/values.yaml b/charts/opentelemetry-collector/examples/statefulset-openkruise/values.yaml deleted file mode 100644 index 65d88ca15b..0000000000 --- a/charts/opentelemetry-collector/examples/statefulset-openkruise/values.yaml +++ /dev/null @@ -1,17 +0,0 @@ -mode: statefulset - -image: - repository: "ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-k8s" - -command: - name: "otelcol-k8s" - -replicaCount: 2 - -apiVersion: apps.kruise.io/v1beta1 - -rollout: - strategy: RollingUpdate - rollingUpdate: - maxUnavailable: 1 - partition: 0 diff --git a/charts/opentelemetry-collector/templates/daemonset.yaml b/charts/opentelemetry-collector/templates/daemonset.yaml index 132c23edcf..49f34543db 100644 --- a/charts/opentelemetry-collector/templates/daemonset.yaml +++ b/charts/opentelemetry-collector/templates/daemonset.yaml @@ -1,5 +1,5 @@ {{- if eq .Values.mode "daemonset" -}} -apiVersion: {{ .Values.apiVersion | default "apps/v1" }} +apiVersion: {{ .Values.apiVersion }} kind: DaemonSet metadata: name: {{ include "opentelemetry-collector.fullname" . }}-agent diff --git a/charts/opentelemetry-collector/templates/deployment.yaml b/charts/opentelemetry-collector/templates/deployment.yaml index 41aba7d05b..8e8b9689c3 100644 --- a/charts/opentelemetry-collector/templates/deployment.yaml +++ b/charts/opentelemetry-collector/templates/deployment.yaml @@ -1,5 +1,5 @@ {{- if eq .Values.mode "deployment" -}} -apiVersion: {{ .Values.apiVersion | default "apps/v1" }} +apiVersion: {{ .Values.apiVersion }} kind: Deployment metadata: name: {{ include "opentelemetry-collector.fullname" . }} diff --git a/charts/opentelemetry-collector/templates/statefulset.yaml b/charts/opentelemetry-collector/templates/statefulset.yaml index ca3709f7a2..f4dbf93651 100644 --- a/charts/opentelemetry-collector/templates/statefulset.yaml +++ b/charts/opentelemetry-collector/templates/statefulset.yaml @@ -1,5 +1,5 @@ {{- if eq .Values.mode "statefulset" -}} -apiVersion: {{ .Values.apiVersion | default "apps/v1" }} +apiVersion: {{ .Values.apiVersion }} kind: StatefulSet metadata: name: {{ include "opentelemetry-collector.fullname" . }} diff --git a/charts/opentelemetry-collector/values.schema.json b/charts/opentelemetry-collector/values.schema.json index 47c8fb8b13..2989d1b925 100644 --- a/charts/opentelemetry-collector/values.schema.json +++ b/charts/opentelemetry-collector/values.schema.json @@ -1042,7 +1042,6 @@ "properties": { "rollingUpdate": { "type": "object", - "additionalProperties": true, "properties": { "maxSurge": { "$ref": "#/$defs/intOrString" @@ -1288,6 +1287,7 @@ } }, "required": [ + "apiVersion", "mode" ] } diff --git a/charts/opentelemetry-collector/values.yaml b/charts/opentelemetry-collector/values.yaml index af72dddc96..470fb2d166 100644 --- a/charts/opentelemetry-collector/values.yaml +++ b/charts/opentelemetry-collector/values.yaml @@ -8,11 +8,8 @@ fullnameOverride: "" # Valid values are "daemonset", "deployment", and "statefulset". mode: "" -# Override the default apiVersion for custom controllers (e.g., OpenKruise) -# or for testing new API versions. -# If not set, defaults to "apps/v1". -# Example: apps.kruise.io/v1alpha1 -apiVersion: "" +# Override the default apiVersion for custom controllers or for testing new API versions. +apiVersion: "apps/v1" # Specify which namespace should be used to deploy the resources into namespaceOverride: "" @@ -652,14 +649,6 @@ rollout: # When 'mode: daemonset', maxSurge cannot be used when hostPort is set for any of the ports # maxSurge: 25% # maxUnavailable: 0 - # Custom controllers like OpenKruise support additional rollingUpdate fields: - # rollingUpdate: - # maxUnavailable: 1 - # partition: 0 - # paused: false - # selector: - # matchLabels: - # app: example strategy: RollingUpdate prometheusRule: From 27d2b93c99fed0cf8cca3cb6da536c029f239218 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Medzi=C5=84ski?= Date: Fri, 10 Apr 2026 21:15:45 +0200 Subject: [PATCH 7/7] chore(opentelemetry-collector): bump to 0.150.0 --- charts/opentelemetry-collector/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/opentelemetry-collector/Chart.yaml b/charts/opentelemetry-collector/Chart.yaml index cbe1f9b0c9..c79b25b008 100644 --- a/charts/opentelemetry-collector/Chart.yaml +++ b/charts/opentelemetry-collector/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: opentelemetry-collector -version: 0.149.0 +version: 0.150.0 description: OpenTelemetry Collector Helm chart for Kubernetes type: application home: https://opentelemetry.io/