From 76ac7a003ada34002aaf47881f672361bdb10ba0 Mon Sep 17 00:00:00 2001 From: Cyrille Le Clerc Date: Wed, 20 May 2026 13:22:07 +0200 Subject: [PATCH 1/5] fix(kube-stack): inject prometheus receiver when targetAllocator enabled without scrape_configs_file When `scrape_configs_file` is empty and `targetAllocator.enabled: true`, the OpenTelemetry Operator expects a `prometheus` receiver in the collector config so it can patch in the `target_allocator` endpoint. Without it, reconciliation fails with: "no prometheus available as part of the configuration" This change injects a minimal prometheus receiver (empty scrape_configs) when one isn't already defined, and appends `prometheus` to the metrics pipeline receivers so target-allocator scraped metrics flow through. Fixes #2210 --- charts/opentelemetry-kube-stack/Chart.yaml | 2 +- .../examples/cloud-demo/rendered/bridge.yaml | 2 +- .../cloud-demo/rendered/collector.yaml | 2 +- .../examples/cloud-demo/rendered/hooks.yaml | 2 +- .../cloud-demo/rendered/instrumentation.yaml | 2 +- .../rendered/collector.yaml | 2 +- .../rendered/hooks.yaml | 2 +- .../rendered/collector.yaml | 2 +- .../rendered/hooks.yaml | 2 +- .../rendered/collector.yaml | 2 +- .../rendered/hooks.yaml | 2 +- .../rendered/clusterrole.yaml | 143 ++++++ .../rendered/collector.yaml | 349 +++++++++++++++ .../rendered/hooks.yaml | 64 +++ .../operator-webhook-with-cert-manager.yaml | 192 +++++++++ .../admission-webhooks/operator-webhook.yaml | 3 + .../opentelemetry-operator/certmanager.yaml | 43 ++ .../opentelemetry-operator/clusterrole.yaml | 408 ++++++++++++++++++ .../clusterrolebinding.yaml | 22 + .../opentelemetry-operator/deployment.yaml | 104 +++++ .../rendered/opentelemetry-operator/role.yaml | 199 +++++++++ .../opentelemetry-operator/rolebinding.yaml | 23 + .../opentelemetry-operator/service.yaml | 47 ++ .../serviceaccount.yaml | 16 + .../tests/test-certmanager-connection.yaml | 53 +++ .../tests/test-service-connection.yaml | 106 +++++ .../values.yaml | 20 + .../examples/default/rendered/collector.yaml | 2 +- .../examples/default/rendered/hooks.yaml | 2 +- .../rendered/collector.yaml | 6 +- .../rendered/hooks.yaml | 2 +- .../rendered/collector.yaml | 4 +- .../rendered/hooks.yaml | 2 +- .../prometheus-otel/rendered/collector.yaml | 2 +- .../kube-api-server/servicemonitor.yaml | 2 +- .../kube-controller-manager/service.yaml | 2 +- .../servicemonitor.yaml | 2 +- .../rendered/exporters/kube-dns/service.yaml | 2 +- .../exporters/kube-dns/servicemonitor.yaml | 2 +- .../rendered/exporters/kube-etcd/service.yaml | 2 +- .../exporters/kube-etcd/servicemonitor.yaml | 2 +- .../exporters/kube-proxy/service.yaml | 2 +- .../exporters/kube-proxy/servicemonitor.yaml | 2 +- .../exporters/kube-scheduler/service.yaml | 2 +- .../kube-scheduler/servicemonitor.yaml | 2 +- .../prometheus-otel/rendered/hooks.yaml | 2 +- .../rendered/collector.yaml | 2 +- .../secrets-csi-driver/rendered/hooks.yaml | 2 +- .../templates/_config.tpl | 15 + 49 files changed, 1842 insertions(+), 35 deletions(-) create mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/clusterrole.yaml create mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/collector.yaml create mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/hooks.yaml create mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml create mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml create mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/certmanager.yaml create mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/clusterrole.yaml create mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/clusterrolebinding.yaml create mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/deployment.yaml create mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/role.yaml create mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/rolebinding.yaml create mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/service.yaml create mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/serviceaccount.yaml create mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml create mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/tests/test-service-connection.yaml create mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/values.yaml diff --git a/charts/opentelemetry-kube-stack/Chart.yaml b/charts/opentelemetry-kube-stack/Chart.yaml index 55786916a7..517ac853cc 100644 --- a/charts/opentelemetry-kube-stack/Chart.yaml +++ b/charts/opentelemetry-kube-stack/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: opentelemetry-kube-stack -version: 0.15.0 +version: 0.15.1 description: | OpenTelemetry Quickstart chart for Kubernetes. Installs an operator and collector for an easy way to get started with Kubernetes observability. diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/bridge.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/bridge.yaml index caea42608a..a386b70f95 100644 --- a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/bridge.yaml +++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/bridge.yaml @@ -5,7 +5,7 @@ kind: OpAMPBridge metadata: name: example labels: - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/collector.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/collector.yaml index 2c992a1436..37c8c0858b 100644 --- a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/collector.yaml +++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/collector.yaml @@ -6,7 +6,7 @@ metadata: name: example-daemon namespace: default labels: - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/hooks.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/hooks.yaml index 3225d6dcc8..7abcc3a667 100644 --- a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/hooks.yaml +++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/hooks.yaml @@ -61,4 +61,4 @@ spec: - "delete" - "instrumentations,opampbridges,opentelemetrycollectors" - "-l" - - "helm.sh/chart=opentelemetry-kube-stack-0.15.0" + - "helm.sh/chart=opentelemetry-kube-stack-0.15.1" diff --git a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/instrumentation.yaml b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/instrumentation.yaml index 9fadae5cd1..7e3fe28f80 100644 --- a/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/instrumentation.yaml +++ b/charts/opentelemetry-kube-stack/examples/cloud-demo/rendered/instrumentation.yaml @@ -5,7 +5,7 @@ kind: Instrumentation metadata: name: example labels: - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/collector.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/collector.yaml index 9c641e9cd6..c150e452ec 100644 --- a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/collector.yaml +++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/collector.yaml @@ -6,7 +6,7 @@ metadata: name: example-daemon namespace: default labels: - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/hooks.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/hooks.yaml index 3225d6dcc8..7abcc3a667 100644 --- a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/hooks.yaml +++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-logs/rendered/hooks.yaml @@ -61,4 +61,4 @@ spec: - "delete" - "instrumentations,opampbridges,opentelemetrycollectors" - "-l" - - "helm.sh/chart=opentelemetry-kube-stack-0.15.0" + - "helm.sh/chart=opentelemetry-kube-stack-0.15.1" diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/collector.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/collector.yaml index a5b49b4375..c4a6342bd2 100644 --- a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/collector.yaml +++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/collector.yaml @@ -6,7 +6,7 @@ metadata: name: example-daemon namespace: default labels: - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/hooks.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/hooks.yaml index 3225d6dcc8..7abcc3a667 100644 --- a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/hooks.yaml +++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery-metrics/rendered/hooks.yaml @@ -61,4 +61,4 @@ spec: - "delete" - "instrumentations,opampbridges,opentelemetrycollectors" - "-l" - - "helm.sh/chart=opentelemetry-kube-stack-0.15.0" + - "helm.sh/chart=opentelemetry-kube-stack-0.15.1" diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/collector.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/collector.yaml index dee759c407..e6f55a5385 100644 --- a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/collector.yaml +++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/collector.yaml @@ -6,7 +6,7 @@ metadata: name: example-daemon namespace: default labels: - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/hooks.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/hooks.yaml index 3225d6dcc8..7abcc3a667 100644 --- a/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/hooks.yaml +++ b/charts/opentelemetry-kube-stack/examples/daemonset-annotation-discovery/rendered/hooks.yaml @@ -61,4 +61,4 @@ spec: - "delete" - "instrumentations,opampbridges,opentelemetrycollectors" - "-l" - - "helm.sh/chart=opentelemetry-kube-stack-0.15.0" + - "helm.sh/chart=opentelemetry-kube-stack-0.15.1" diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/clusterrole.yaml new file mode 100644 index 0000000000..afcdbda438 --- /dev/null +++ b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/clusterrole.yaml @@ -0,0 +1,143 @@ +--- +# Source: opentelemetry-kube-stack/templates/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: example-collector +rules: +- apiGroups: [""] + resources: + - namespaces + - nodes + - nodes/proxy + - nodes/metrics + - nodes/stats + - services + - endpoints + - pods + - events + - secrets + - persistentvolumeclaims + - persistentvolumes + verbs: ["get", "list", "watch"] +- apiGroups: ["monitoring.coreos.com"] + resources: + - servicemonitors + - podmonitors + - scrapeconfigs + - probes + verbs: ["get", "list", "watch"] +- apiGroups: + - extensions + resources: + - ingresses + verbs: ["get", "list", "watch"] +- apiGroups: + - apps + resources: + - daemonsets + - deployments + - replicasets + - statefulsets + verbs: ["get", "list", "watch"] +- apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: ["get", "list", "watch"] +- apiGroups: ["discovery.k8s.io"] + resources: + - endpointslices + verbs: ["get", "list", "watch"] +- nonResourceURLs: ["/metrics", "/metrics/cadvisor"] + verbs: ["get"] + +- verbs: + - get + - list + - watch + - create + - update + - patch + - delete + apiGroups: + - coordination.k8s.io + resources: + - leases +- apiGroups: + - "" + resources: + - events + - namespaces + - namespaces/status + - nodes + - nodes/spec + - pods + - pods/status + - replicationcontrollers + - replicationcontrollers/status + - resourcequotas + - services + verbs: + - get + - list + - watch +- apiGroups: + - apps + resources: + - daemonsets + - deployments + - replicasets + - statefulsets + verbs: + - get + - list + - watch +- apiGroups: + - extensions + resources: + - daemonsets + - deployments + - replicasets + verbs: + - get + - list + - watch +- apiGroups: + - batch + resources: + - jobs + - cronjobs + verbs: + - get + - list + - watch +- apiGroups: + - autoscaling + resources: + - horizontalpodautoscalers + verbs: + - get + - list + - watch +- apiGroups: ["events.k8s.io"] + resources: ["events"] + verbs: ["watch", "list"] +--- +# Source: opentelemetry-kube-stack/templates/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: example-daemon +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: example-collector +subjects: +- kind: ServiceAccount + # quirk of the Operator + name: "example-daemon-collector" + namespace: default +- kind: ServiceAccount + name: example-daemon-targetallocator + namespace: default diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/collector.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/collector.yaml new file mode 100644 index 0000000000..f64a12390b --- /dev/null +++ b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/collector.yaml @@ -0,0 +1,349 @@ +--- +# Source: opentelemetry-kube-stack/templates/collector.yaml +apiVersion: opentelemetry.io/v1beta1 +kind: OpenTelemetryCollector +metadata: + name: example-daemon + namespace: default + labels: + helm.sh/chart: opentelemetry-kube-stack-0.15.1 + app.kubernetes.io/version: "0.151.0" + app.kubernetes.io/managed-by: Helm + release: "example" +spec: + managementState: managed + mode: daemonset + config: + exporters: + debug: {} + extensions: + k8s_leader_elector/k8s_cluster: + auth_type: serviceAccount + lease_name: k8s.cluster.receiver.opentelemetry.io + lease_namespace: default + k8s_leader_elector/k8s_objects: + auth_type: serviceAccount + lease_name: k8s.objects.receiver.opentelemetry.io + lease_namespace: default + processors: + batch: + send_batch_max_size: 1500 + send_batch_size: 1000 + timeout: 1s + k8sattributes: + extract: + labels: + - from: pod + key: app.kubernetes.io/instance + tag_name: k8s.app.instance + - from: pod + key: app.kubernetes.io/component + tag_name: k8s.app.component + metadata: + - k8s.namespace.name + - k8s.pod.name + - k8s.pod.uid + - k8s.node.name + - k8s.pod.start_time + - k8s.deployment.name + - k8s.replicaset.name + - k8s.replicaset.uid + - k8s.daemonset.name + - k8s.daemonset.uid + - k8s.job.name + - k8s.job.uid + - k8s.container.name + - k8s.cronjob.name + - k8s.statefulset.name + - k8s.statefulset.uid + - container.image.tag + - container.image.name + - k8s.cluster.uid + - service.namespace + - service.name + - service.version + - service.instance.id + otel_annotations: true + filter: + node_from_env_var: OTEL_K8S_NODE_NAME + passthrough: false + pod_association: + - sources: + - from: resource_attribute + name: k8s.pod.uid + - sources: + - from: resource_attribute + name: k8s.pod.name + - from: resource_attribute + name: k8s.namespace.name + - from: resource_attribute + name: k8s.node.name + - sources: + - from: resource_attribute + name: k8s.pod.ip + - sources: + - from: resource_attribute + name: k8s.pod.name + - from: resource_attribute + name: k8s.namespace.name + - sources: + - from: connection + resource/hostname: + attributes: + - action: insert + from_attribute: k8s.node.name + key: host.name + resourcedetection/env: + detectors: + - env + - k8snode + override: false + timeout: 2s + receivers: + filelog: + exclude: [] + include: + - /var/log/pods/*/*/*.log + include_file_name: false + include_file_path: true + operators: + - id: container-parser + max_log_size: 102400 + type: container + retry_on_failure: + enabled: true + start_at: end + hostmetrics: + collection_interval: 10s + root_path: /hostfs + scrapers: + cpu: + metrics: + system.cpu.logical.count: + enabled: true + system.cpu.utilization: + enabled: true + disk: {} + filesystem: + exclude_fs_types: + fs_types: + - autofs + - binfmt_misc + - bpf + - cgroup2 + - configfs + - debugfs + - devpts + - devtmpfs + - fusectl + - hugetlbfs + - iso9660 + - mqueue + - nsfs + - overlay + - proc + - procfs + - pstore + - rpc_pipefs + - securityfs + - selinuxfs + - squashfs + - sysfs + - tracefs + match_type: strict + exclude_mount_points: + match_type: regexp + mount_points: + - /dev/* + - /proc/* + - /sys/* + - /run/k3s/containerd/* + - /var/lib/docker/* + - /var/lib/kubelet/* + - /snap/* + metrics: + system.filesystem.utilization: + enabled: true + load: {} + memory: + metrics: + system.memory.limit: + enabled: true + system.memory.utilization: + enabled: true + network: {} + paging: + metrics: + system.paging.usage: + enabled: true + system: + metrics: + system.uptime: + enabled: true + k8s_cluster: + allocatable_types_to_report: + - cpu + - memory + - storage + auth_type: serviceAccount + collection_interval: 10s + k8s_leader_elector: k8s_leader_elector/k8s_cluster + node_conditions_to_report: + - Ready + - MemoryPressure + - DiskPressure + - NetworkUnavailable + k8sobjects: + k8s_leader_elector: k8s_leader_elector/k8s_objects + objects: + - exclude_watch_type: + - DELETED + group: events.k8s.io + mode: watch + name: events + kubeletstats: + auth_type: serviceAccount + collection_interval: 15s + endpoint: https://${env:OTEL_K8S_NODE_IP}:10250 + extra_metadata_labels: + - container.id + - k8s.volume.type + insecure_skip_verify: true + k8s_api_config: + auth_type: serviceAccount + metric_groups: + - node + - pod + - volume + - container + metrics: + container.cpu.usage: + enabled: true + k8s.node.cpu.usage: + enabled: true + k8s.node.uptime: + enabled: true + k8s.pod.cpu.usage: + enabled: true + k8s.pod.uptime: + enabled: true + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + http: + endpoint: 0.0.0.0:4318 + prometheus: + config: + scrape_configs: [] + service: + extensions: + - k8s_leader_elector/k8s_objects + - k8s_leader_elector/k8s_cluster + pipelines: + logs: + exporters: + - debug + processors: + - k8sattributes + - resourcedetection/env + - resource/hostname + - batch + receivers: + - otlp + - filelog + - k8sobjects + metrics: + exporters: + - debug + processors: + - k8sattributes + - resourcedetection/env + - resource/hostname + - batch + receivers: + - otlp + - prometheus + - hostmetrics + - kubeletstats + - k8s_cluster + traces: + exporters: + - debug + processors: + - k8sattributes + - resourcedetection/env + - resource/hostname + - batch + receivers: + - otlp + imagePullPolicy: IfNotPresent + upgradeStrategy: automatic + terminationGracePeriodSeconds: 30 + resources: + limits: + cpu: 200m + memory: 500Mi + requests: + cpu: 100m + memory: 250Mi + securityContext: + {} + targetAllocator: + allocationStrategy: per-node + enabled: true + prometheusCR: + enabled: true + serviceMonitorSelector: {} + volumeMounts: + - name: varlogpods + mountPath: /var/log/pods + readOnly: true + - name: varlibdockercontainers + mountPath: /var/lib/docker/containers + readOnly: true + - name: hostfs + mountPath: /hostfs + readOnly: true + mountPropagation: HostToContainer + env: + - name: K8S_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - 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 + - name: OTEL_RESOURCE_ATTRIBUTES + value: "k8s.pod.name=$(OTEL_K8S_POD_NAME),k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),host.name=$(OTEL_K8S_NODE_NAME),k8s.node.ip=$(OTEL_K8S_NODE_IP),k8s.pod.ip=$(OTEL_K8S_POD_IP),k8s.cluster.name=unknown_k8s_cluster" + + volumes: + - name: varlogpods + hostPath: + path: /var/log/pods + - name: varlibdockercontainers + hostPath: + path: /var/lib/docker/containers + - name: hostfs + hostPath: + path: / diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/hooks.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/hooks.yaml new file mode 100644 index 0000000000..7abcc3a667 --- /dev/null +++ b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/hooks.yaml @@ -0,0 +1,64 @@ +--- +# Source: opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: v1 +kind: ServiceAccount +metadata: + name: delete-resources-sa + annotations: + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +--- +# Source: opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: delete-resources-role + annotations: + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +rules: + - apiGroups: + - opentelemetry.io + resources: + - instrumentations + - opampbridges + - opentelemetrycollectors + verbs: + - get + - list + - delete +--- +# Source: opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: delete-resources-rolebinding + annotations: + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: delete-resources-role +subjects: + - kind: ServiceAccount + name: delete-resources-sa +--- +# Source: opentelemetry-kube-stack/templates/hooks.yaml +apiVersion: batch/v1 +kind: Job +metadata: + name: opentelemetry-kube-stack-pre-delete-job + annotations: + "helm.sh/hook": pre-delete + "helm.sh/hook-delete-policy": hook-succeeded,hook-failed +spec: + template: + spec: + restartPolicy: Never + serviceAccountName: delete-resources-sa + containers: + - name: delete-resources + image: "rancher/kubectl:v1.34.1" + args: + - "delete" + - "instrumentations,opampbridges,opentelemetrycollectors" + - "-l" + - "helm.sh/chart=opentelemetry-kube-stack-0.15.1" diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml new file mode 100644 index 0000000000..7dbf1665c0 --- /dev/null +++ b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml @@ -0,0 +1,192 @@ +--- +# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml +apiVersion: admissionregistration.k8s.io/v1 +kind: MutatingWebhookConfiguration +metadata: + annotations: + cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert + labels: + helm.sh/chart: opentelemetry-operator-0.113.1 + app.kubernetes.io/name: opentelemetry-operator + app.kubernetes.io/version: "0.151.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-operator + app.kubernetes.io/instance: example + app.kubernetes.io/component: webhook + name: example-opentelemetry-operator-mutation +webhooks: + - admissionReviewVersions: + - v1 + clientConfig: + service: + name: example-opentelemetry-operator-webhook + namespace: default + path: /mutate-opentelemetry-io-v1alpha1-instrumentation + port: 443 + failurePolicy: Ignore + name: minstrumentation.kb.io + rules: + - apiGroups: + - opentelemetry.io + apiVersions: + - v1alpha1 + operations: + - CREATE + - UPDATE + resources: + - instrumentations + scope: Namespaced + sideEffects: None + timeoutSeconds: 10 + - admissionReviewVersions: + - v1 + clientConfig: + service: + name: example-opentelemetry-operator-webhook + namespace: default + path: /mutate-opentelemetry-io-v1beta1-opentelemetrycollector + port: 443 + failurePolicy: Ignore + name: mopentelemetrycollectorbeta.kb.io + rules: + - apiGroups: + - opentelemetry.io + apiVersions: + - v1beta1 + operations: + - CREATE + - UPDATE + resources: + - opentelemetrycollectors + scope: Namespaced + sideEffects: None + timeoutSeconds: 10 + - admissionReviewVersions: + - v1 + clientConfig: + service: + name: example-opentelemetry-operator-webhook + namespace: default + path: /mutate-v1-pod + port: 443 + failurePolicy: Ignore + name: mpod.kb.io + rules: + - apiGroups: + - "" + apiVersions: + - v1 + operations: + - CREATE + resources: + - pods + scope: Namespaced + sideEffects: None + timeoutSeconds: 10 +--- +# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml +apiVersion: admissionregistration.k8s.io/v1 +kind: ValidatingWebhookConfiguration +metadata: + annotations: + cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert + labels: + helm.sh/chart: opentelemetry-operator-0.113.1 + app.kubernetes.io/name: opentelemetry-operator + app.kubernetes.io/version: "0.151.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-operator + app.kubernetes.io/instance: example + app.kubernetes.io/component: webhook + name: example-opentelemetry-operator-validation +webhooks: + - admissionReviewVersions: + - v1 + clientConfig: + service: + name: example-opentelemetry-operator-webhook + namespace: default + path: /validate-opentelemetry-io-v1alpha1-instrumentation + port: 443 + failurePolicy: Ignore + name: vinstrumentationcreateupdate.kb.io + rules: + - apiGroups: + - opentelemetry.io + apiVersions: + - v1alpha1 + operations: + - CREATE + - UPDATE + resources: + - instrumentations + scope: Namespaced + sideEffects: None + timeoutSeconds: 10 + - admissionReviewVersions: + - v1 + clientConfig: + service: + name: example-opentelemetry-operator-webhook + namespace: default + path: /validate-opentelemetry-io-v1alpha1-instrumentation + port: 443 + failurePolicy: Ignore + name: vinstrumentationdelete.kb.io + rules: + - apiGroups: + - opentelemetry.io + apiVersions: + - v1alpha1 + operations: + - DELETE + resources: + - instrumentations + scope: Namespaced + sideEffects: None + timeoutSeconds: 10 + - admissionReviewVersions: + - v1 + clientConfig: + service: + name: example-opentelemetry-operator-webhook + namespace: default + path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector + port: 443 + failurePolicy: Ignore + name: vopentelemetrycollectorcreateupdatebeta.kb.io + rules: + - apiGroups: + - opentelemetry.io + apiVersions: + - v1beta1 + operations: + - CREATE + - UPDATE + resources: + - opentelemetrycollectors + scope: Namespaced + sideEffects: None + timeoutSeconds: 10 + - admissionReviewVersions: + - v1 + clientConfig: + service: + name: example-opentelemetry-operator-webhook + namespace: default + path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector + port: 443 + failurePolicy: Ignore + name: vopentelemetrycollectordeletebeta.kb.io + rules: + - apiGroups: + - opentelemetry.io + apiVersions: + - v1beta1 + operations: + - DELETE + resources: + - opentelemetrycollectors + scope: Namespaced + sideEffects: None + timeoutSeconds: 10 diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml new file mode 100644 index 0000000000..5b9ff5511d --- /dev/null +++ b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml @@ -0,0 +1,3 @@ +--- +# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook.yaml +--- diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/certmanager.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/certmanager.yaml new file mode 100644 index 0000000000..b7b5be3ffe --- /dev/null +++ b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/certmanager.yaml @@ -0,0 +1,43 @@ +--- +# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + labels: + helm.sh/chart: opentelemetry-operator-0.113.1 + app.kubernetes.io/name: opentelemetry-operator + app.kubernetes.io/version: "0.151.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-operator + app.kubernetes.io/instance: example + app.kubernetes.io/component: webhook + name: example-opentelemetry-operator-serving-cert + namespace: default +spec: + dnsNames: + - example-opentelemetry-operator-webhook.default.svc + - example-opentelemetry-operator-webhook.default.svc.cluster.local + issuerRef: + kind: Issuer + name: example-opentelemetry-operator-selfsigned-issuer + secretName: example-opentelemetry-operator-controller-manager-service-cert + subject: + organizationalUnits: + - example-opentelemetry-operator +--- +# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml +apiVersion: cert-manager.io/v1 +kind: Issuer +metadata: + labels: + helm.sh/chart: opentelemetry-operator-0.113.1 + app.kubernetes.io/name: opentelemetry-operator + app.kubernetes.io/version: "0.151.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-operator + app.kubernetes.io/instance: example + app.kubernetes.io/component: webhook + name: example-opentelemetry-operator-selfsigned-issuer + namespace: default +spec: + selfSigned: {} diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/clusterrole.yaml new file mode 100644 index 0000000000..05d1494af1 --- /dev/null +++ b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/clusterrole.yaml @@ -0,0 +1,408 @@ +--- +# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + helm.sh/chart: opentelemetry-operator-0.113.1 + app.kubernetes.io/name: opentelemetry-operator + app.kubernetes.io/version: "0.151.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-operator + app.kubernetes.io/instance: example + app.kubernetes.io/component: controller-manager + name: example-opentelemetry-operator-manager +rules: + - apiGroups: + - "" + resources: + - configmaps + - persistentvolumeclaims + - persistentvolumes + - pods + - serviceaccounts + - services + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - "" + resources: + - events + verbs: + - create + - get + - list + - patch + - watch + - apiGroups: + - "" + resources: + - namespaces + verbs: + - list + - watch + - apiGroups: + - "" + resources: + - namespaces/status + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - nodes/spec + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - pods/status + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - replicationcontrollers + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - replicationcontrollers/status + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - resourcequotas + verbs: + - get + - list + - watch + - apiGroups: + - apps + resources: + - daemonsets + - deployments + - statefulsets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - apps + - extensions + resources: + - replicasets + verbs: + - get + - list + - watch + - apiGroups: + - extensions + resources: + - daemonsets + verbs: + - get + - list + - watch + - apiGroups: + - extensions + resources: + - deployments + verbs: + - get + - list + - watch + - apiGroups: + - autoscaling + resources: + - horizontalpodautoscalers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - batch + resources: + - jobs + verbs: + - get + - list + - watch + - apiGroups: + - batch + resources: + - cronjobs + verbs: + - get + - list + - watch + - apiGroups: + - "" + resources: + - nodes/proxy + verbs: + - get + - apiGroups: + - "" + resources: + - nodes/stats + verbs: + - get + - apiGroups: + - config.openshift.io + resources: + - infrastructures + - infrastructures/status + verbs: + - get + - list + - watch + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - get + - list + - update + - apiGroups: + - discovery.k8s.io + resources: + - endpointslices + verbs: + - get + - list + - apiGroups: + - events.k8s.io + resources: + - events + verbs: + - create + - list + - patch + - watch + - apiGroups: + - gateway.networking.k8s.io + resources: + - httproutes + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - monitoring.coreos.com + resources: + - podmonitors + - servicemonitors + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - networking.k8s.io + resources: + - ingresses + - networkpolicies + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - opentelemetry.io + resources: + - instrumentations + verbs: + - get + - list + - patch + - update + - watch + - apiGroups: + - opentelemetry.io + resources: + - opampbridges + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - opentelemetry.io + resources: + - opampbridges/finalizers + verbs: + - update + - apiGroups: + - opentelemetry.io + resources: + - opampbridges/status + verbs: + - get + - patch + - update + - apiGroups: + - opentelemetry.io + resources: + - opentelemetrycollectors + verbs: + - get + - list + - patch + - update + - watch + - apiGroups: + - opentelemetry.io + resources: + - opentelemetrycollectors/finalizers + verbs: + - get + - patch + - update + - apiGroups: + - opentelemetry.io + resources: + - opentelemetrycollectors/status + verbs: + - get + - patch + - update + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - route.openshift.io + resources: + - routes + - routes/custom-host + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - opentelemetry.io + resources: + - targetallocators + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - opentelemetry.io + resources: + - targetallocators/status + verbs: + - get + - patch + - update + - apiGroups: + - opentelemetry.io + resources: + - targetallocators/finalizers + verbs: + - get + - patch + - update + - apiGroups: + - cert-manager.io + resources: + - issuers + - certificaterequests + - certificates + verbs: + - create + - get + - list + - watch + - update + - patch + - delete + - apiGroups: + - authentication.k8s.io + resources: + - tokenreviews + verbs: + - create + - apiGroups: + - authorization.k8s.io + resources: + - subjectaccessreviews + verbs: + - create +--- +# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + labels: + helm.sh/chart: opentelemetry-operator-0.113.1 + app.kubernetes.io/name: opentelemetry-operator + app.kubernetes.io/version: "0.151.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-operator + app.kubernetes.io/instance: example + app.kubernetes.io/component: controller-manager + name: example-opentelemetry-operator-metrics +rules: + - nonResourceURLs: + - /metrics + verbs: + - get diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/clusterrolebinding.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/clusterrolebinding.yaml new file mode 100644 index 0000000000..8259beef16 --- /dev/null +++ b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/clusterrolebinding.yaml @@ -0,0 +1,22 @@ +--- +# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrolebinding.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + labels: + helm.sh/chart: opentelemetry-operator-0.113.1 + app.kubernetes.io/name: opentelemetry-operator + app.kubernetes.io/version: "0.151.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-operator + app.kubernetes.io/instance: example + app.kubernetes.io/component: controller-manager + name: example-opentelemetry-operator-manager +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: example-opentelemetry-operator-manager +subjects: + - kind: ServiceAccount + name: opentelemetry-operator + namespace: default diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/deployment.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/deployment.yaml new file mode 100644 index 0000000000..2854112b68 --- /dev/null +++ b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/deployment.yaml @@ -0,0 +1,104 @@ +--- +# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/deployment.yaml +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + helm.sh/chart: opentelemetry-operator-0.113.1 + app.kubernetes.io/name: opentelemetry-operator + app.kubernetes.io/version: "0.151.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-operator + app.kubernetes.io/instance: example + app.kubernetes.io/component: controller-manager + name: example-opentelemetry-operator + namespace: default +spec: + replicas: 1 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/name: opentelemetry-operator + app.kubernetes.io/component: controller-manager + template: + metadata: + annotations: + kubectl.kubernetes.io/default-container: manager + labels: + helm.sh/chart: opentelemetry-operator-0.113.1 + app.kubernetes.io/name: opentelemetry-operator + app.kubernetes.io/version: "0.151.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-operator + app.kubernetes.io/instance: example + app.kubernetes.io/component: controller-manager + spec: + automountServiceAccountToken: true + hostNetwork: false + containers: + - args: + - --metrics-addr=0.0.0.0:8443 + - --metrics-secure=true + - --enable-leader-election + - --health-probe-addr=:8081 + - --webhook-port=9443 + - --collector-image=otel/opentelemetry-collector-k8s:0.151.0 + command: + - /manager + env: + - name: SERVICE_ACCOUNT_NAME + valueFrom: + fieldRef: + fieldPath: spec.serviceAccountName + - name: ENABLE_WEBHOOKS + value: "true" + image: "ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.151.0" + name: manager + imagePullPolicy: IfNotPresent + ports: + - containerPort: 8443 + name: metrics + protocol: TCP + - containerPort: 9443 + name: webhook-server + protocol: TCP + livenessProbe: + httpGet: + path: /healthz + port: 8081 + initialDelaySeconds: 15 + periodSeconds: 20 + readinessProbe: + httpGet: + path: /readyz + port: 8081 + initialDelaySeconds: 5 + periodSeconds: 10 + resources: + {} + volumeMounts: + - mountPath: /tmp/k8s-webhook-server/serving-certs + name: cert + readOnly: true + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + nodeSelector: + kubernetes.io/os: linux + serviceAccountName: opentelemetry-operator + terminationGracePeriodSeconds: 10 + volumes: + - name: cert + secret: + defaultMode: 420 + secretName: example-opentelemetry-operator-controller-manager-service-cert + securityContext: + fsGroup: 65532 + runAsGroup: 65532 + runAsNonRoot: true + runAsUser: 65532 diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/role.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/role.yaml new file mode 100644 index 0000000000..0a015afb82 --- /dev/null +++ b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/role.yaml @@ -0,0 +1,199 @@ +--- +# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/role.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + helm.sh/chart: opentelemetry-operator-0.113.1 + app.kubernetes.io/name: opentelemetry-operator + app.kubernetes.io/version: "0.151.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-operator + app.kubernetes.io/instance: example + app.kubernetes.io/component: controller-manager + name: example-opentelemetry-operator-leader-election + namespace: default +rules: + - apiGroups: + - "" + resources: + - configmaps + - pods + - serviceaccounts + - services + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - "" + resources: + - events + verbs: + - create + - patch + - apiGroups: + - "" + resources: + - namespaces + - secrets + verbs: + - get + - list + - watch + - apiGroups: + - apps + resources: + - daemonsets + - deployments + - statefulsets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - apps + resources: + - replicasets + verbs: + - get + - list + - watch + - apiGroups: + - autoscaling + resources: + - horizontalpodautoscalers + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - batch + resources: + - jobs + verbs: + - get + - list + - watch + - apiGroups: + - config.openshift.io + resources: + - infrastructures + - infrastructures/status + verbs: + - get + - list + - watch + - apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - get + - list + - update + - apiGroups: + - monitoring.coreos.com + resources: + - podmonitors + - servicemonitors + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - opentelemetry.io + resources: + - instrumentations + - opentelemetrycollectors + verbs: + - get + - list + - patch + - update + - watch + - apiGroups: + - opentelemetry.io + resources: + - opampbridges + - targetallocators + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - opentelemetry.io + resources: + - opampbridges/finalizers + verbs: + - update + - apiGroups: + - opentelemetry.io + resources: + - opampbridges/status + - opentelemetrycollectors/finalizers + - opentelemetrycollectors/status + - targetallocators/status + - targetallocators/finalizers + verbs: + - get + - patch + - update + - apiGroups: + - policy + resources: + - poddisruptionbudgets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch + - apiGroups: + - route.openshift.io + resources: + - routes + - routes/custom-host + verbs: + - create + - delete + - get + - list + - patch + - update + - watch diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/rolebinding.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/rolebinding.yaml new file mode 100644 index 0000000000..721fdb0099 --- /dev/null +++ b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/rolebinding.yaml @@ -0,0 +1,23 @@ +--- +# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/rolebinding.yaml +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + helm.sh/chart: opentelemetry-operator-0.113.1 + app.kubernetes.io/name: opentelemetry-operator + app.kubernetes.io/version: "0.151.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-operator + app.kubernetes.io/instance: example + app.kubernetes.io/component: controller-manager + name: example-opentelemetry-operator-leader-election + namespace: default +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: example-opentelemetry-operator-leader-election +subjects: + - kind: ServiceAccount + name: opentelemetry-operator + namespace: default diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/service.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/service.yaml new file mode 100644 index 0000000000..bf164a93d7 --- /dev/null +++ b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/service.yaml @@ -0,0 +1,47 @@ +--- +# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + labels: + helm.sh/chart: opentelemetry-operator-0.113.1 + app.kubernetes.io/name: opentelemetry-operator + app.kubernetes.io/version: "0.151.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-operator + app.kubernetes.io/instance: example + app.kubernetes.io/component: controller-manager + name: example-opentelemetry-operator + namespace: default +spec: + ports: + - name: metrics + port: 8443 + protocol: TCP + targetPort: metrics + selector: + app.kubernetes.io/name: opentelemetry-operator + app.kubernetes.io/component: controller-manager +--- +# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + labels: + helm.sh/chart: opentelemetry-operator-0.113.1 + app.kubernetes.io/name: opentelemetry-operator + app.kubernetes.io/version: "0.151.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-operator + app.kubernetes.io/instance: example + app.kubernetes.io/component: controller-manager + name: example-opentelemetry-operator-webhook + namespace: default +spec: + ports: + - port: 443 + protocol: TCP + targetPort: webhook-server + selector: + app.kubernetes.io/name: opentelemetry-operator + app.kubernetes.io/component: controller-manager diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/serviceaccount.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/serviceaccount.yaml new file mode 100644 index 0000000000..6abe418372 --- /dev/null +++ b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/serviceaccount.yaml @@ -0,0 +1,16 @@ +--- +# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/serviceaccount.yaml +apiVersion: v1 +kind: ServiceAccount +automountServiceAccountToken: true +metadata: + name: opentelemetry-operator + namespace: default + labels: + helm.sh/chart: opentelemetry-operator-0.113.1 + app.kubernetes.io/name: opentelemetry-operator + app.kubernetes.io/version: "0.151.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-operator + app.kubernetes.io/instance: example + app.kubernetes.io/component: controller-manager diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml new file mode 100644 index 0000000000..f86f50575c --- /dev/null +++ b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml @@ -0,0 +1,53 @@ +--- +# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-certmanager-connection.yaml +apiVersion: v1 +kind: Pod +metadata: + name: "example-opentelemetry-operator-cert-manager" + namespace: default + labels: + helm.sh/chart: opentelemetry-operator-0.113.1 + app.kubernetes.io/name: opentelemetry-operator + app.kubernetes.io/version: "0.151.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-operator + app.kubernetes.io/instance: example + app.kubernetes.io/component: webhook + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: "busybox:latest" + env: + - name: CERT_MANAGER_CLUSTERIP + value: "cert-manager-webhook" + - name: CERT_MANAGER_PORT + value: "443" + command: + - sh + - -c + # The following shell script tests if the cert-manager service is up. If the service is up, when we try + # to wget its exposed port, we will get an HTTP error 400. + - | + wget_output=$(wget -q "$CERT_MANAGER_CLUSTERIP:$CERT_MANAGER_PORT") + if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request" + then exit 0 + else exit 1 + fi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + restartPolicy: Never + nodeSelector: + kubernetes.io/os: linux + securityContext: + fsGroup: 65532 + runAsGroup: 65532 + runAsNonRoot: true + runAsUser: 65532 diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/tests/test-service-connection.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/tests/test-service-connection.yaml new file mode 100644 index 0000000000..79329c4b9b --- /dev/null +++ b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/tests/test-service-connection.yaml @@ -0,0 +1,106 @@ +--- +# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml +apiVersion: v1 +kind: Pod +metadata: + name: "example-opentelemetry-operator-metrics" + namespace: default + labels: + helm.sh/chart: opentelemetry-operator-0.113.1 + app.kubernetes.io/name: opentelemetry-operator + app.kubernetes.io/version: "0.151.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-operator + app.kubernetes.io/instance: example + app.kubernetes.io/component: controller-manager + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: "busybox:latest" + env: + - name: MANAGER_METRICS_SERVICE_CLUSTERIP + value: "example-opentelemetry-operator" + - name: MANAGER_METRICS_SERVICE_PORT + value: "8443" + command: + - sh + - -c + # The following shell script tests if the controller-manager-metrics-service is up. + # If the service is up, when we try to wget its exposed port, we will get an HTTP error 400. + - | + wget_output=$(wget -q "$MANAGER_METRICS_SERVICE_CLUSTERIP:$MANAGER_METRICS_SERVICE_PORT") + if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request" + then exit 0 + else exit 1 + fi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + restartPolicy: Never + nodeSelector: + kubernetes.io/os: linux + securityContext: + fsGroup: 65532 + runAsGroup: 65532 + runAsNonRoot: true + runAsUser: 65532 +--- +# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml +apiVersion: v1 +kind: Pod +metadata: + name: "example-opentelemetry-operator-webhook" + namespace: default + labels: + helm.sh/chart: opentelemetry-operator-0.113.1 + app.kubernetes.io/name: opentelemetry-operator + app.kubernetes.io/version: "0.151.0" + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/part-of: opentelemetry-operator + app.kubernetes.io/instance: example + app.kubernetes.io/component: controller-manager + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: "busybox:latest" + env: + - name: WEBHOOK_SERVICE_CLUSTERIP + value: "example-opentelemetry-operator-webhook" + - name: WEBHOOK_SERVICE_PORT + value: "443" + command: + - sh + - -c + # The following shell script tests if the webhook service is up. If the service is up, when we try + # to wget its exposed port, we will get an HTTP error 400. + - | + wget_output=$(wget -q "$WEBHOOK_SERVICE_CLUSTERIP:$WEBHOOK_SERVICE_PORT") + if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request" + then exit 0 + else exit 1 + fi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + runAsNonRoot: true + seccompProfile: + type: RuntimeDefault + restartPolicy: Never + nodeSelector: + kubernetes.io/os: linux + securityContext: + fsGroup: 65532 + runAsGroup: 65532 + runAsNonRoot: true + runAsUser: 65532 diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/values.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/values.yaml new file mode 100644 index 0000000000..ff99479b4e --- /dev/null +++ b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/values.yaml @@ -0,0 +1,20 @@ +collectors: + daemon: + # no prometheus scrape config file + scrape_configs_file: "" + presets: + kubeletMetrics: + enabled: true + hostMetrics: + enabled: true + kubernetesAttributes: + enabled: true + clusterMetrics: + enabled: true + # target allocator configuration to discover ServiceMonitor resources and distribute scrape targets across the DaemonSet pods + targetAllocator: + enabled: true + allocationStrategy: per-node + prometheusCR: + enabled: true + serviceMonitorSelector: {} diff --git a/charts/opentelemetry-kube-stack/examples/default/rendered/collector.yaml b/charts/opentelemetry-kube-stack/examples/default/rendered/collector.yaml index 3f4e144bc1..a030f9c8c0 100644 --- a/charts/opentelemetry-kube-stack/examples/default/rendered/collector.yaml +++ b/charts/opentelemetry-kube-stack/examples/default/rendered/collector.yaml @@ -6,7 +6,7 @@ metadata: name: example-daemon namespace: default labels: - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/default/rendered/hooks.yaml b/charts/opentelemetry-kube-stack/examples/default/rendered/hooks.yaml index 3225d6dcc8..7abcc3a667 100644 --- a/charts/opentelemetry-kube-stack/examples/default/rendered/hooks.yaml +++ b/charts/opentelemetry-kube-stack/examples/default/rendered/hooks.yaml @@ -61,4 +61,4 @@ spec: - "delete" - "instrumentations,opampbridges,opentelemetrycollectors" - "-l" - - "helm.sh/chart=opentelemetry-kube-stack-0.15.0" + - "helm.sh/chart=opentelemetry-kube-stack-0.15.1" diff --git a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/collector.yaml b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/collector.yaml index 96ca449389..beab5c2734 100644 --- a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/collector.yaml +++ b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/collector.yaml @@ -6,7 +6,7 @@ metadata: name: agent namespace: default labels: - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" @@ -232,7 +232,7 @@ metadata: name: gateway namespace: default labels: - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" @@ -365,7 +365,7 @@ metadata: name: ingress namespace: default labels: - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/hooks.yaml b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/hooks.yaml index 3225d6dcc8..7abcc3a667 100644 --- a/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/hooks.yaml +++ b/charts/opentelemetry-kube-stack/examples/isolated-multicollector-deployment/rendered/hooks.yaml @@ -61,4 +61,4 @@ spec: - "delete" - "instrumentations,opampbridges,opentelemetrycollectors" - "-l" - - "helm.sh/chart=opentelemetry-kube-stack-0.15.0" + - "helm.sh/chart=opentelemetry-kube-stack-0.15.1" diff --git a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/collector.yaml b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/collector.yaml index 1959a15b97..48a7957699 100644 --- a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/collector.yaml +++ b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/collector.yaml @@ -6,7 +6,7 @@ metadata: name: example-cluster-stats namespace: default labels: - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" @@ -173,7 +173,7 @@ metadata: name: example-daemon namespace: default labels: - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/hooks.yaml b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/hooks.yaml index 3225d6dcc8..7abcc3a667 100644 --- a/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/hooks.yaml +++ b/charts/opentelemetry-kube-stack/examples/no-leader-election-extension/rendered/hooks.yaml @@ -61,4 +61,4 @@ spec: - "delete" - "instrumentations,opampbridges,opentelemetrycollectors" - "-l" - - "helm.sh/chart=opentelemetry-kube-stack-0.15.0" + - "helm.sh/chart=opentelemetry-kube-stack-0.15.1" diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/collector.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/collector.yaml index ab2c31b2db..8bb4a114e5 100644 --- a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/collector.yaml +++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/collector.yaml @@ -6,7 +6,7 @@ metadata: name: example-daemon namespace: default labels: - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-api-server/servicemonitor.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-api-server/servicemonitor.yaml index 44bcb6fcfc..92ec8433d5 100644 --- a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-api-server/servicemonitor.yaml +++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-api-server/servicemonitor.yaml @@ -7,7 +7,7 @@ metadata: namespace: default labels: app: opentelemetry-kube-stack-apiserver - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-controller-manager/service.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-controller-manager/service.yaml index 989ef9b379..57ea57c54b 100644 --- a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-controller-manager/service.yaml +++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-controller-manager/service.yaml @@ -7,7 +7,7 @@ metadata: labels: app: opentelemetry-kube-stack-kube-controller-manager jobLabel: kube-controller-manager - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-controller-manager/servicemonitor.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-controller-manager/servicemonitor.yaml index 6c6924552f..3aa23b21fe 100644 --- a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-controller-manager/servicemonitor.yaml +++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-controller-manager/servicemonitor.yaml @@ -7,7 +7,7 @@ metadata: namespace: default labels: app: opentelemetry-kube-stack-kube-controller-manager - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-dns/service.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-dns/service.yaml index 79087a01e6..f67bf12190 100644 --- a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-dns/service.yaml +++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-dns/service.yaml @@ -7,7 +7,7 @@ metadata: labels: app: opentelemetry-kube-stack-kube-dns jobLabel: kube-dns - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-dns/servicemonitor.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-dns/servicemonitor.yaml index 6beb82db36..db82ca36d5 100644 --- a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-dns/servicemonitor.yaml +++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-dns/servicemonitor.yaml @@ -7,7 +7,7 @@ metadata: namespace: default labels: app: opentelemetry-kube-stack-kube-dns - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-etcd/service.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-etcd/service.yaml index fa816280b1..9f634d2070 100644 --- a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-etcd/service.yaml +++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-etcd/service.yaml @@ -7,7 +7,7 @@ metadata: labels: app: opentelemetry-kube-stack-kube-etcd jobLabel: kube-etcd - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-etcd/servicemonitor.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-etcd/servicemonitor.yaml index 368c7ceca4..3164220072 100644 --- a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-etcd/servicemonitor.yaml +++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-etcd/servicemonitor.yaml @@ -7,7 +7,7 @@ metadata: namespace: default labels: app: opentelemetry-kube-stack-kube-etcd - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-proxy/service.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-proxy/service.yaml index 38e5142e12..53791f83e4 100644 --- a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-proxy/service.yaml +++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-proxy/service.yaml @@ -7,7 +7,7 @@ metadata: labels: app: opentelemetry-kube-stack-kube-proxy jobLabel: kube-proxy - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-proxy/servicemonitor.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-proxy/servicemonitor.yaml index 91252ef6fc..c09529280b 100644 --- a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-proxy/servicemonitor.yaml +++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-proxy/servicemonitor.yaml @@ -7,7 +7,7 @@ metadata: namespace: default labels: app: opentelemetry-kube-stack-kube-proxy - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-scheduler/service.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-scheduler/service.yaml index f55b75cba9..fd20a57162 100644 --- a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-scheduler/service.yaml +++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-scheduler/service.yaml @@ -7,7 +7,7 @@ metadata: labels: app: opentelemetry-kube-stack-kube-scheduler jobLabel: kube-scheduler - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-scheduler/servicemonitor.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-scheduler/servicemonitor.yaml index 3616241b59..987620442d 100644 --- a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-scheduler/servicemonitor.yaml +++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/exporters/kube-scheduler/servicemonitor.yaml @@ -7,7 +7,7 @@ metadata: namespace: default labels: app: opentelemetry-kube-stack-kube-scheduler - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/hooks.yaml b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/hooks.yaml index 3225d6dcc8..7abcc3a667 100644 --- a/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/hooks.yaml +++ b/charts/opentelemetry-kube-stack/examples/prometheus-otel/rendered/hooks.yaml @@ -61,4 +61,4 @@ spec: - "delete" - "instrumentations,opampbridges,opentelemetrycollectors" - "-l" - - "helm.sh/chart=opentelemetry-kube-stack-0.15.0" + - "helm.sh/chart=opentelemetry-kube-stack-0.15.1" diff --git a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/collector.yaml b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/collector.yaml index cd27ca7d2d..21bc431781 100644 --- a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/collector.yaml +++ b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/collector.yaml @@ -6,7 +6,7 @@ metadata: name: example-daemon namespace: default labels: - helm.sh/chart: opentelemetry-kube-stack-0.15.0 + helm.sh/chart: opentelemetry-kube-stack-0.15.1 app.kubernetes.io/version: "0.151.0" app.kubernetes.io/managed-by: Helm release: "example" diff --git a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/hooks.yaml b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/hooks.yaml index 3225d6dcc8..7abcc3a667 100644 --- a/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/hooks.yaml +++ b/charts/opentelemetry-kube-stack/examples/secrets-csi-driver/rendered/hooks.yaml @@ -61,4 +61,4 @@ spec: - "delete" - "instrumentations,opampbridges,opentelemetrycollectors" - "-l" - - "helm.sh/chart=opentelemetry-kube-stack-0.15.0" + - "helm.sh/chart=opentelemetry-kube-stack-0.15.1" diff --git a/charts/opentelemetry-kube-stack/templates/_config.tpl b/charts/opentelemetry-kube-stack/templates/_config.tpl index e05e20c07b..1dcc91710d 100644 --- a/charts/opentelemetry-kube-stack/templates/_config.tpl +++ b/charts/opentelemetry-kube-stack/templates/_config.tpl @@ -4,6 +4,10 @@ Constructs the final config for the given collector This allows a user to supply a scrape_configs_file. This file is templated and loaded as a yaml array. If a user has already supplied a prometheus receiver config, the file's config is appended. Finally, the config is written as YAML. + +When no scrape_configs_file is supplied but the targetAllocator is enabled, a minimal prometheus +receiver (with an empty scrape_configs list) is injected if one isn't already defined, so the +target allocator has a receiver to populate. */}} {{- define "opentelemetry-kube-stack.config" -}} {{- $collector := .collector }} @@ -11,6 +15,17 @@ the config is written as YAML. {{- if .collector.scrape_configs_file }} {{- $config = (include "opentelemetry-kube-stack.collector.appendPrometheusScrapeFile" . | fromYaml) }} {{- $_ := set $collector "config" $config }} +{{- else if (dig "targetAllocator" "enabled" false .collector) }} +{{- $receivers := (dig "receivers" dict $config) }} +{{/* Inject a bare prometheus receiver (with an empty scrape_configs list) only if the user hasn't already defined one. The OpenTelemetry Operator requires a prometheus receiver to be present in the config so it can patch in the target_allocator endpoint */}} +{{- if not (hasKey $receivers "prometheus") }} +{{- $config = (mustMergeOverwrite $config (dict "receivers" (dict "prometheus" (dict "config" (dict "scrape_configs" list))))) }} +{{- $_ := set $collector "config" $config }} +{{- end }} +{{/* Ensure the prometheus receiver is wired into the metrics pipeline so the target allocator's scraped metrics actually flow through. Only modifies the pipeline when a metrics pipeline exists and prometheus is not already listed. */}} +{{- if and (dig "service" "pipelines" "metrics" false $config) (not (has "prometheus" (dig "service" "pipelines" "metrics" "receivers" list $config))) }} +{{- $_ := set $config.service.pipelines.metrics "receivers" (append ($config.service.pipelines.metrics.receivers | default list) "prometheus" | uniq) }} +{{- end }} {{- end }} {{- if .collector.presets.logsCollection.enabled }} {{- $_ := set $collector "exclude" (list (printf "/var/log/pods/%s_%s*_*/otc-container/*.log" .namespace (include "opentelemetry-kube-stack.collectorFullname" .))) }} From e8e6ceab3a0a22d58a410e1ca889cfed5174ee41 Mon Sep 17 00:00:00 2001 From: Cyrille Le Clerc Date: Wed, 20 May 2026 13:28:48 +0200 Subject: [PATCH 2/5] fix(kube-stack): trim whitespace around comments in _config.tpl Without {{- ... -}} trim markers, comments leave blank lines in the generated collector spec.config when rendered with plain helm template (the --output-dir mode used by make generate-examples already strips them, which is why the checked-in rendered examples don't show the issue). --- charts/opentelemetry-kube-stack/templates/_config.tpl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/charts/opentelemetry-kube-stack/templates/_config.tpl b/charts/opentelemetry-kube-stack/templates/_config.tpl index 1dcc91710d..2dc5cf58df 100644 --- a/charts/opentelemetry-kube-stack/templates/_config.tpl +++ b/charts/opentelemetry-kube-stack/templates/_config.tpl @@ -17,12 +17,12 @@ target allocator has a receiver to populate. {{- $_ := set $collector "config" $config }} {{- else if (dig "targetAllocator" "enabled" false .collector) }} {{- $receivers := (dig "receivers" dict $config) }} -{{/* Inject a bare prometheus receiver (with an empty scrape_configs list) only if the user hasn't already defined one. The OpenTelemetry Operator requires a prometheus receiver to be present in the config so it can patch in the target_allocator endpoint */}} +{{- /* Inject a bare prometheus receiver (with an empty scrape_configs list) only if the user hasn't already defined one. The OpenTelemetry Operator requires a prometheus receiver to be present in the config so it can patch in the target_allocator endpoint */ -}} {{- if not (hasKey $receivers "prometheus") }} {{- $config = (mustMergeOverwrite $config (dict "receivers" (dict "prometheus" (dict "config" (dict "scrape_configs" list))))) }} {{- $_ := set $collector "config" $config }} {{- end }} -{{/* Ensure the prometheus receiver is wired into the metrics pipeline so the target allocator's scraped metrics actually flow through. Only modifies the pipeline when a metrics pipeline exists and prometheus is not already listed. */}} +{{- /* Ensure the prometheus receiver is wired into the metrics pipeline so the target allocator's scraped metrics actually flow through. Only modifies the pipeline when a metrics pipeline exists and prometheus is not already listed. */ -}} {{- if and (dig "service" "pipelines" "metrics" false $config) (not (has "prometheus" (dig "service" "pipelines" "metrics" "receivers" list $config))) }} {{- $_ := set $config.service.pipelines.metrics "receivers" (append ($config.service.pipelines.metrics.receivers | default list) "prometheus" | uniq) }} {{- end }} From 36c7aa8b1a8bd823f5aa3bff47efbc1432b8e9b4 Mon Sep 17 00:00:00 2001 From: Cyrille Le Clerc Date: Thu, 21 May 2026 10:35:10 +0200 Subject: [PATCH 3/5] Remove mid-template comments --- charts/opentelemetry-kube-stack/templates/_config.tpl | 2 -- 1 file changed, 2 deletions(-) diff --git a/charts/opentelemetry-kube-stack/templates/_config.tpl b/charts/opentelemetry-kube-stack/templates/_config.tpl index 2dc5cf58df..0cb39498ca 100644 --- a/charts/opentelemetry-kube-stack/templates/_config.tpl +++ b/charts/opentelemetry-kube-stack/templates/_config.tpl @@ -17,12 +17,10 @@ target allocator has a receiver to populate. {{- $_ := set $collector "config" $config }} {{- else if (dig "targetAllocator" "enabled" false .collector) }} {{- $receivers := (dig "receivers" dict $config) }} -{{- /* Inject a bare prometheus receiver (with an empty scrape_configs list) only if the user hasn't already defined one. The OpenTelemetry Operator requires a prometheus receiver to be present in the config so it can patch in the target_allocator endpoint */ -}} {{- if not (hasKey $receivers "prometheus") }} {{- $config = (mustMergeOverwrite $config (dict "receivers" (dict "prometheus" (dict "config" (dict "scrape_configs" list))))) }} {{- $_ := set $collector "config" $config }} {{- end }} -{{- /* Ensure the prometheus receiver is wired into the metrics pipeline so the target allocator's scraped metrics actually flow through. Only modifies the pipeline when a metrics pipeline exists and prometheus is not already listed. */ -}} {{- if and (dig "service" "pipelines" "metrics" false $config) (not (has "prometheus" (dig "service" "pipelines" "metrics" "receivers" list $config))) }} {{- $_ := set $config.service.pipelines.metrics "receivers" (append ($config.service.pipelines.metrics.receivers | default list) "prometheus" | uniq) }} {{- end }} From c90fbc3014986083c20b7db37828f1802302e63c Mon Sep 17 00:00:00 2001 From: Cyrille Le Clerc Date: Thu, 21 May 2026 10:35:57 +0200 Subject: [PATCH 4/5] Remove example --- .../rendered/clusterrole.yaml | 143 ------ .../rendered/collector.yaml | 349 --------------- .../rendered/hooks.yaml | 64 --- .../operator-webhook-with-cert-manager.yaml | 192 --------- .../admission-webhooks/operator-webhook.yaml | 3 - .../opentelemetry-operator/certmanager.yaml | 43 -- .../opentelemetry-operator/clusterrole.yaml | 408 ------------------ .../clusterrolebinding.yaml | 22 - .../opentelemetry-operator/deployment.yaml | 104 ----- .../rendered/opentelemetry-operator/role.yaml | 199 --------- .../opentelemetry-operator/rolebinding.yaml | 23 - .../opentelemetry-operator/service.yaml | 47 -- .../serviceaccount.yaml | 16 - .../tests/test-certmanager-connection.yaml | 53 --- .../tests/test-service-connection.yaml | 106 ----- .../values.yaml | 20 - 16 files changed, 1792 deletions(-) delete mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/clusterrole.yaml delete mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/collector.yaml delete mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/hooks.yaml delete mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml delete mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml delete mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/certmanager.yaml delete mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/clusterrole.yaml delete mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/clusterrolebinding.yaml delete mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/deployment.yaml delete mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/role.yaml delete mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/rolebinding.yaml delete mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/service.yaml delete mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/serviceaccount.yaml delete mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml delete mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/tests/test-service-connection.yaml delete mode 100644 charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/values.yaml diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/clusterrole.yaml deleted file mode 100644 index afcdbda438..0000000000 --- a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/clusterrole.yaml +++ /dev/null @@ -1,143 +0,0 @@ ---- -# Source: opentelemetry-kube-stack/templates/clusterrole.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: example-collector -rules: -- apiGroups: [""] - resources: - - namespaces - - nodes - - nodes/proxy - - nodes/metrics - - nodes/stats - - services - - endpoints - - pods - - events - - secrets - - persistentvolumeclaims - - persistentvolumes - verbs: ["get", "list", "watch"] -- apiGroups: ["monitoring.coreos.com"] - resources: - - servicemonitors - - podmonitors - - scrapeconfigs - - probes - verbs: ["get", "list", "watch"] -- apiGroups: - - extensions - resources: - - ingresses - verbs: ["get", "list", "watch"] -- apiGroups: - - apps - resources: - - daemonsets - - deployments - - replicasets - - statefulsets - verbs: ["get", "list", "watch"] -- apiGroups: - - networking.k8s.io - resources: - - ingresses - verbs: ["get", "list", "watch"] -- apiGroups: ["discovery.k8s.io"] - resources: - - endpointslices - verbs: ["get", "list", "watch"] -- nonResourceURLs: ["/metrics", "/metrics/cadvisor"] - verbs: ["get"] - -- verbs: - - get - - list - - watch - - create - - update - - patch - - delete - apiGroups: - - coordination.k8s.io - resources: - - leases -- apiGroups: - - "" - resources: - - events - - namespaces - - namespaces/status - - nodes - - nodes/spec - - pods - - pods/status - - replicationcontrollers - - replicationcontrollers/status - - resourcequotas - - services - verbs: - - get - - list - - watch -- apiGroups: - - apps - resources: - - daemonsets - - deployments - - replicasets - - statefulsets - verbs: - - get - - list - - watch -- apiGroups: - - extensions - resources: - - daemonsets - - deployments - - replicasets - verbs: - - get - - list - - watch -- apiGroups: - - batch - resources: - - jobs - - cronjobs - verbs: - - get - - list - - watch -- apiGroups: - - autoscaling - resources: - - horizontalpodautoscalers - verbs: - - get - - list - - watch -- apiGroups: ["events.k8s.io"] - resources: ["events"] - verbs: ["watch", "list"] ---- -# Source: opentelemetry-kube-stack/templates/clusterrole.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: example-daemon -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: example-collector -subjects: -- kind: ServiceAccount - # quirk of the Operator - name: "example-daemon-collector" - namespace: default -- kind: ServiceAccount - name: example-daemon-targetallocator - namespace: default diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/collector.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/collector.yaml deleted file mode 100644 index f64a12390b..0000000000 --- a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/collector.yaml +++ /dev/null @@ -1,349 +0,0 @@ ---- -# Source: opentelemetry-kube-stack/templates/collector.yaml -apiVersion: opentelemetry.io/v1beta1 -kind: OpenTelemetryCollector -metadata: - name: example-daemon - namespace: default - labels: - helm.sh/chart: opentelemetry-kube-stack-0.15.1 - app.kubernetes.io/version: "0.151.0" - app.kubernetes.io/managed-by: Helm - release: "example" -spec: - managementState: managed - mode: daemonset - config: - exporters: - debug: {} - extensions: - k8s_leader_elector/k8s_cluster: - auth_type: serviceAccount - lease_name: k8s.cluster.receiver.opentelemetry.io - lease_namespace: default - k8s_leader_elector/k8s_objects: - auth_type: serviceAccount - lease_name: k8s.objects.receiver.opentelemetry.io - lease_namespace: default - processors: - batch: - send_batch_max_size: 1500 - send_batch_size: 1000 - timeout: 1s - k8sattributes: - extract: - labels: - - from: pod - key: app.kubernetes.io/instance - tag_name: k8s.app.instance - - from: pod - key: app.kubernetes.io/component - tag_name: k8s.app.component - metadata: - - k8s.namespace.name - - k8s.pod.name - - k8s.pod.uid - - k8s.node.name - - k8s.pod.start_time - - k8s.deployment.name - - k8s.replicaset.name - - k8s.replicaset.uid - - k8s.daemonset.name - - k8s.daemonset.uid - - k8s.job.name - - k8s.job.uid - - k8s.container.name - - k8s.cronjob.name - - k8s.statefulset.name - - k8s.statefulset.uid - - container.image.tag - - container.image.name - - k8s.cluster.uid - - service.namespace - - service.name - - service.version - - service.instance.id - otel_annotations: true - filter: - node_from_env_var: OTEL_K8S_NODE_NAME - passthrough: false - pod_association: - - sources: - - from: resource_attribute - name: k8s.pod.uid - - sources: - - from: resource_attribute - name: k8s.pod.name - - from: resource_attribute - name: k8s.namespace.name - - from: resource_attribute - name: k8s.node.name - - sources: - - from: resource_attribute - name: k8s.pod.ip - - sources: - - from: resource_attribute - name: k8s.pod.name - - from: resource_attribute - name: k8s.namespace.name - - sources: - - from: connection - resource/hostname: - attributes: - - action: insert - from_attribute: k8s.node.name - key: host.name - resourcedetection/env: - detectors: - - env - - k8snode - override: false - timeout: 2s - receivers: - filelog: - exclude: [] - include: - - /var/log/pods/*/*/*.log - include_file_name: false - include_file_path: true - operators: - - id: container-parser - max_log_size: 102400 - type: container - retry_on_failure: - enabled: true - start_at: end - hostmetrics: - collection_interval: 10s - root_path: /hostfs - scrapers: - cpu: - metrics: - system.cpu.logical.count: - enabled: true - system.cpu.utilization: - enabled: true - disk: {} - filesystem: - exclude_fs_types: - fs_types: - - autofs - - binfmt_misc - - bpf - - cgroup2 - - configfs - - debugfs - - devpts - - devtmpfs - - fusectl - - hugetlbfs - - iso9660 - - mqueue - - nsfs - - overlay - - proc - - procfs - - pstore - - rpc_pipefs - - securityfs - - selinuxfs - - squashfs - - sysfs - - tracefs - match_type: strict - exclude_mount_points: - match_type: regexp - mount_points: - - /dev/* - - /proc/* - - /sys/* - - /run/k3s/containerd/* - - /var/lib/docker/* - - /var/lib/kubelet/* - - /snap/* - metrics: - system.filesystem.utilization: - enabled: true - load: {} - memory: - metrics: - system.memory.limit: - enabled: true - system.memory.utilization: - enabled: true - network: {} - paging: - metrics: - system.paging.usage: - enabled: true - system: - metrics: - system.uptime: - enabled: true - k8s_cluster: - allocatable_types_to_report: - - cpu - - memory - - storage - auth_type: serviceAccount - collection_interval: 10s - k8s_leader_elector: k8s_leader_elector/k8s_cluster - node_conditions_to_report: - - Ready - - MemoryPressure - - DiskPressure - - NetworkUnavailable - k8sobjects: - k8s_leader_elector: k8s_leader_elector/k8s_objects - objects: - - exclude_watch_type: - - DELETED - group: events.k8s.io - mode: watch - name: events - kubeletstats: - auth_type: serviceAccount - collection_interval: 15s - endpoint: https://${env:OTEL_K8S_NODE_IP}:10250 - extra_metadata_labels: - - container.id - - k8s.volume.type - insecure_skip_verify: true - k8s_api_config: - auth_type: serviceAccount - metric_groups: - - node - - pod - - volume - - container - metrics: - container.cpu.usage: - enabled: true - k8s.node.cpu.usage: - enabled: true - k8s.node.uptime: - enabled: true - k8s.pod.cpu.usage: - enabled: true - k8s.pod.uptime: - enabled: true - otlp: - protocols: - grpc: - endpoint: 0.0.0.0:4317 - http: - endpoint: 0.0.0.0:4318 - prometheus: - config: - scrape_configs: [] - service: - extensions: - - k8s_leader_elector/k8s_objects - - k8s_leader_elector/k8s_cluster - pipelines: - logs: - exporters: - - debug - processors: - - k8sattributes - - resourcedetection/env - - resource/hostname - - batch - receivers: - - otlp - - filelog - - k8sobjects - metrics: - exporters: - - debug - processors: - - k8sattributes - - resourcedetection/env - - resource/hostname - - batch - receivers: - - otlp - - prometheus - - hostmetrics - - kubeletstats - - k8s_cluster - traces: - exporters: - - debug - processors: - - k8sattributes - - resourcedetection/env - - resource/hostname - - batch - receivers: - - otlp - imagePullPolicy: IfNotPresent - upgradeStrategy: automatic - terminationGracePeriodSeconds: 30 - resources: - limits: - cpu: 200m - memory: 500Mi - requests: - cpu: 100m - memory: 250Mi - securityContext: - {} - targetAllocator: - allocationStrategy: per-node - enabled: true - prometheusCR: - enabled: true - serviceMonitorSelector: {} - volumeMounts: - - name: varlogpods - mountPath: /var/log/pods - readOnly: true - - name: varlibdockercontainers - mountPath: /var/lib/docker/containers - readOnly: true - - name: hostfs - mountPath: /hostfs - readOnly: true - mountPropagation: HostToContainer - env: - - name: K8S_NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - - 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 - - name: OTEL_RESOURCE_ATTRIBUTES - value: "k8s.pod.name=$(OTEL_K8S_POD_NAME),k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_K8S_NODE_NAME),host.name=$(OTEL_K8S_NODE_NAME),k8s.node.ip=$(OTEL_K8S_NODE_IP),k8s.pod.ip=$(OTEL_K8S_POD_IP),k8s.cluster.name=unknown_k8s_cluster" - - volumes: - - name: varlogpods - hostPath: - path: /var/log/pods - - name: varlibdockercontainers - hostPath: - path: /var/lib/docker/containers - - name: hostfs - hostPath: - path: / diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/hooks.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/hooks.yaml deleted file mode 100644 index 7abcc3a667..0000000000 --- a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/hooks.yaml +++ /dev/null @@ -1,64 +0,0 @@ ---- -# Source: opentelemetry-kube-stack/templates/hooks.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - name: delete-resources-sa - annotations: - "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded ---- -# Source: opentelemetry-kube-stack/templates/hooks.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: delete-resources-role - annotations: - "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded -rules: - - apiGroups: - - opentelemetry.io - resources: - - instrumentations - - opampbridges - - opentelemetrycollectors - verbs: - - get - - list - - delete ---- -# Source: opentelemetry-kube-stack/templates/hooks.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: delete-resources-rolebinding - annotations: - "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: delete-resources-role -subjects: - - kind: ServiceAccount - name: delete-resources-sa ---- -# Source: opentelemetry-kube-stack/templates/hooks.yaml -apiVersion: batch/v1 -kind: Job -metadata: - name: opentelemetry-kube-stack-pre-delete-job - annotations: - "helm.sh/hook": pre-delete - "helm.sh/hook-delete-policy": hook-succeeded,hook-failed -spec: - template: - spec: - restartPolicy: Never - serviceAccountName: delete-resources-sa - containers: - - name: delete-resources - image: "rancher/kubectl:v1.34.1" - args: - - "delete" - - "instrumentations,opampbridges,opentelemetrycollectors" - - "-l" - - "helm.sh/chart=opentelemetry-kube-stack-0.15.1" diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml deleted file mode 100644 index 7dbf1665c0..0000000000 --- a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/admission-webhooks/operator-webhook-with-cert-manager.yaml +++ /dev/null @@ -1,192 +0,0 @@ ---- -# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml -apiVersion: admissionregistration.k8s.io/v1 -kind: MutatingWebhookConfiguration -metadata: - annotations: - cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert - labels: - helm.sh/chart: opentelemetry-operator-0.113.1 - app.kubernetes.io/name: opentelemetry-operator - app.kubernetes.io/version: "0.151.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-operator - app.kubernetes.io/instance: example - app.kubernetes.io/component: webhook - name: example-opentelemetry-operator-mutation -webhooks: - - admissionReviewVersions: - - v1 - clientConfig: - service: - name: example-opentelemetry-operator-webhook - namespace: default - path: /mutate-opentelemetry-io-v1alpha1-instrumentation - port: 443 - failurePolicy: Ignore - name: minstrumentation.kb.io - rules: - - apiGroups: - - opentelemetry.io - apiVersions: - - v1alpha1 - operations: - - CREATE - - UPDATE - resources: - - instrumentations - scope: Namespaced - sideEffects: None - timeoutSeconds: 10 - - admissionReviewVersions: - - v1 - clientConfig: - service: - name: example-opentelemetry-operator-webhook - namespace: default - path: /mutate-opentelemetry-io-v1beta1-opentelemetrycollector - port: 443 - failurePolicy: Ignore - name: mopentelemetrycollectorbeta.kb.io - rules: - - apiGroups: - - opentelemetry.io - apiVersions: - - v1beta1 - operations: - - CREATE - - UPDATE - resources: - - opentelemetrycollectors - scope: Namespaced - sideEffects: None - timeoutSeconds: 10 - - admissionReviewVersions: - - v1 - clientConfig: - service: - name: example-opentelemetry-operator-webhook - namespace: default - path: /mutate-v1-pod - port: 443 - failurePolicy: Ignore - name: mpod.kb.io - rules: - - apiGroups: - - "" - apiVersions: - - v1 - operations: - - CREATE - resources: - - pods - scope: Namespaced - sideEffects: None - timeoutSeconds: 10 ---- -# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook-with-cert-manager.yaml -apiVersion: admissionregistration.k8s.io/v1 -kind: ValidatingWebhookConfiguration -metadata: - annotations: - cert-manager.io/inject-ca-from: default/example-opentelemetry-operator-serving-cert - labels: - helm.sh/chart: opentelemetry-operator-0.113.1 - app.kubernetes.io/name: opentelemetry-operator - app.kubernetes.io/version: "0.151.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-operator - app.kubernetes.io/instance: example - app.kubernetes.io/component: webhook - name: example-opentelemetry-operator-validation -webhooks: - - admissionReviewVersions: - - v1 - clientConfig: - service: - name: example-opentelemetry-operator-webhook - namespace: default - path: /validate-opentelemetry-io-v1alpha1-instrumentation - port: 443 - failurePolicy: Ignore - name: vinstrumentationcreateupdate.kb.io - rules: - - apiGroups: - - opentelemetry.io - apiVersions: - - v1alpha1 - operations: - - CREATE - - UPDATE - resources: - - instrumentations - scope: Namespaced - sideEffects: None - timeoutSeconds: 10 - - admissionReviewVersions: - - v1 - clientConfig: - service: - name: example-opentelemetry-operator-webhook - namespace: default - path: /validate-opentelemetry-io-v1alpha1-instrumentation - port: 443 - failurePolicy: Ignore - name: vinstrumentationdelete.kb.io - rules: - - apiGroups: - - opentelemetry.io - apiVersions: - - v1alpha1 - operations: - - DELETE - resources: - - instrumentations - scope: Namespaced - sideEffects: None - timeoutSeconds: 10 - - admissionReviewVersions: - - v1 - clientConfig: - service: - name: example-opentelemetry-operator-webhook - namespace: default - path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector - port: 443 - failurePolicy: Ignore - name: vopentelemetrycollectorcreateupdatebeta.kb.io - rules: - - apiGroups: - - opentelemetry.io - apiVersions: - - v1beta1 - operations: - - CREATE - - UPDATE - resources: - - opentelemetrycollectors - scope: Namespaced - sideEffects: None - timeoutSeconds: 10 - - admissionReviewVersions: - - v1 - clientConfig: - service: - name: example-opentelemetry-operator-webhook - namespace: default - path: /validate-opentelemetry-io-v1beta1-opentelemetrycollector - port: 443 - failurePolicy: Ignore - name: vopentelemetrycollectordeletebeta.kb.io - rules: - - apiGroups: - - opentelemetry.io - apiVersions: - - v1beta1 - operations: - - DELETE - resources: - - opentelemetrycollectors - scope: Namespaced - sideEffects: None - timeoutSeconds: 10 diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml deleted file mode 100644 index 5b9ff5511d..0000000000 --- a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/admission-webhooks/operator-webhook.yaml +++ /dev/null @@ -1,3 +0,0 @@ ---- -# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/admission-webhooks/operator-webhook.yaml ---- diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/certmanager.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/certmanager.yaml deleted file mode 100644 index b7b5be3ffe..0000000000 --- a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/certmanager.yaml +++ /dev/null @@ -1,43 +0,0 @@ ---- -# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - labels: - helm.sh/chart: opentelemetry-operator-0.113.1 - app.kubernetes.io/name: opentelemetry-operator - app.kubernetes.io/version: "0.151.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-operator - app.kubernetes.io/instance: example - app.kubernetes.io/component: webhook - name: example-opentelemetry-operator-serving-cert - namespace: default -spec: - dnsNames: - - example-opentelemetry-operator-webhook.default.svc - - example-opentelemetry-operator-webhook.default.svc.cluster.local - issuerRef: - kind: Issuer - name: example-opentelemetry-operator-selfsigned-issuer - secretName: example-opentelemetry-operator-controller-manager-service-cert - subject: - organizationalUnits: - - example-opentelemetry-operator ---- -# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/certmanager.yaml -apiVersion: cert-manager.io/v1 -kind: Issuer -metadata: - labels: - helm.sh/chart: opentelemetry-operator-0.113.1 - app.kubernetes.io/name: opentelemetry-operator - app.kubernetes.io/version: "0.151.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-operator - app.kubernetes.io/instance: example - app.kubernetes.io/component: webhook - name: example-opentelemetry-operator-selfsigned-issuer - namespace: default -spec: - selfSigned: {} diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/clusterrole.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/clusterrole.yaml deleted file mode 100644 index 05d1494af1..0000000000 --- a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/clusterrole.yaml +++ /dev/null @@ -1,408 +0,0 @@ ---- -# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - labels: - helm.sh/chart: opentelemetry-operator-0.113.1 - app.kubernetes.io/name: opentelemetry-operator - app.kubernetes.io/version: "0.151.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-operator - app.kubernetes.io/instance: example - app.kubernetes.io/component: controller-manager - name: example-opentelemetry-operator-manager -rules: - - apiGroups: - - "" - resources: - - configmaps - - persistentvolumeclaims - - persistentvolumes - - pods - - serviceaccounts - - services - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - "" - resources: - - events - verbs: - - create - - get - - list - - patch - - watch - - apiGroups: - - "" - resources: - - namespaces - verbs: - - list - - watch - - apiGroups: - - "" - resources: - - namespaces/status - verbs: - - get - - list - - watch - - apiGroups: - - "" - resources: - - nodes/spec - verbs: - - get - - list - - watch - - apiGroups: - - "" - resources: - - pods/status - verbs: - - get - - list - - watch - - apiGroups: - - "" - resources: - - replicationcontrollers - verbs: - - get - - list - - watch - - apiGroups: - - "" - resources: - - replicationcontrollers/status - verbs: - - get - - list - - watch - - apiGroups: - - "" - resources: - - resourcequotas - verbs: - - get - - list - - watch - - apiGroups: - - apps - resources: - - daemonsets - - deployments - - statefulsets - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - apps - - extensions - resources: - - replicasets - verbs: - - get - - list - - watch - - apiGroups: - - extensions - resources: - - daemonsets - verbs: - - get - - list - - watch - - apiGroups: - - extensions - resources: - - deployments - verbs: - - get - - list - - watch - - apiGroups: - - autoscaling - resources: - - horizontalpodautoscalers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - batch - resources: - - jobs - verbs: - - get - - list - - watch - - apiGroups: - - batch - resources: - - cronjobs - verbs: - - get - - list - - watch - - apiGroups: - - "" - resources: - - nodes/proxy - verbs: - - get - - apiGroups: - - "" - resources: - - nodes/stats - verbs: - - get - - apiGroups: - - config.openshift.io - resources: - - infrastructures - - infrastructures/status - verbs: - - get - - list - - watch - - apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - create - - get - - list - - update - - apiGroups: - - discovery.k8s.io - resources: - - endpointslices - verbs: - - get - - list - - apiGroups: - - events.k8s.io - resources: - - events - verbs: - - create - - list - - patch - - watch - - apiGroups: - - gateway.networking.k8s.io - resources: - - httproutes - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - monitoring.coreos.com - resources: - - podmonitors - - servicemonitors - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - networking.k8s.io - resources: - - ingresses - - networkpolicies - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - opentelemetry.io - resources: - - instrumentations - verbs: - - get - - list - - patch - - update - - watch - - apiGroups: - - opentelemetry.io - resources: - - opampbridges - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - opentelemetry.io - resources: - - opampbridges/finalizers - verbs: - - update - - apiGroups: - - opentelemetry.io - resources: - - opampbridges/status - verbs: - - get - - patch - - update - - apiGroups: - - opentelemetry.io - resources: - - opentelemetrycollectors - verbs: - - get - - list - - patch - - update - - watch - - apiGroups: - - opentelemetry.io - resources: - - opentelemetrycollectors/finalizers - verbs: - - get - - patch - - update - - apiGroups: - - opentelemetry.io - resources: - - opentelemetrycollectors/status - verbs: - - get - - patch - - update - - apiGroups: - - policy - resources: - - poddisruptionbudgets - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - route.openshift.io - resources: - - routes - - routes/custom-host - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - opentelemetry.io - resources: - - targetallocators - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - opentelemetry.io - resources: - - targetallocators/status - verbs: - - get - - patch - - update - - apiGroups: - - opentelemetry.io - resources: - - targetallocators/finalizers - verbs: - - get - - patch - - update - - apiGroups: - - cert-manager.io - resources: - - issuers - - certificaterequests - - certificates - verbs: - - create - - get - - list - - watch - - update - - patch - - delete - - apiGroups: - - authentication.k8s.io - resources: - - tokenreviews - verbs: - - create - - apiGroups: - - authorization.k8s.io - resources: - - subjectaccessreviews - verbs: - - create ---- -# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrole.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - labels: - helm.sh/chart: opentelemetry-operator-0.113.1 - app.kubernetes.io/name: opentelemetry-operator - app.kubernetes.io/version: "0.151.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-operator - app.kubernetes.io/instance: example - app.kubernetes.io/component: controller-manager - name: example-opentelemetry-operator-metrics -rules: - - nonResourceURLs: - - /metrics - verbs: - - get diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/clusterrolebinding.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/clusterrolebinding.yaml deleted file mode 100644 index 8259beef16..0000000000 --- a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/clusterrolebinding.yaml +++ /dev/null @@ -1,22 +0,0 @@ ---- -# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/clusterrolebinding.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - labels: - helm.sh/chart: opentelemetry-operator-0.113.1 - app.kubernetes.io/name: opentelemetry-operator - app.kubernetes.io/version: "0.151.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-operator - app.kubernetes.io/instance: example - app.kubernetes.io/component: controller-manager - name: example-opentelemetry-operator-manager -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: example-opentelemetry-operator-manager -subjects: - - kind: ServiceAccount - name: opentelemetry-operator - namespace: default diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/deployment.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/deployment.yaml deleted file mode 100644 index 2854112b68..0000000000 --- a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/deployment.yaml +++ /dev/null @@ -1,104 +0,0 @@ ---- -# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - labels: - helm.sh/chart: opentelemetry-operator-0.113.1 - app.kubernetes.io/name: opentelemetry-operator - app.kubernetes.io/version: "0.151.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-operator - app.kubernetes.io/instance: example - app.kubernetes.io/component: controller-manager - name: example-opentelemetry-operator - namespace: default -spec: - replicas: 1 - revisionHistoryLimit: 10 - selector: - matchLabels: - app.kubernetes.io/name: opentelemetry-operator - app.kubernetes.io/component: controller-manager - template: - metadata: - annotations: - kubectl.kubernetes.io/default-container: manager - labels: - helm.sh/chart: opentelemetry-operator-0.113.1 - app.kubernetes.io/name: opentelemetry-operator - app.kubernetes.io/version: "0.151.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-operator - app.kubernetes.io/instance: example - app.kubernetes.io/component: controller-manager - spec: - automountServiceAccountToken: true - hostNetwork: false - containers: - - args: - - --metrics-addr=0.0.0.0:8443 - - --metrics-secure=true - - --enable-leader-election - - --health-probe-addr=:8081 - - --webhook-port=9443 - - --collector-image=otel/opentelemetry-collector-k8s:0.151.0 - command: - - /manager - env: - - name: SERVICE_ACCOUNT_NAME - valueFrom: - fieldRef: - fieldPath: spec.serviceAccountName - - name: ENABLE_WEBHOOKS - value: "true" - image: "ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator:0.151.0" - name: manager - imagePullPolicy: IfNotPresent - ports: - - containerPort: 8443 - name: metrics - protocol: TCP - - containerPort: 9443 - name: webhook-server - protocol: TCP - livenessProbe: - httpGet: - path: /healthz - port: 8081 - initialDelaySeconds: 15 - periodSeconds: 20 - readinessProbe: - httpGet: - path: /readyz - port: 8081 - initialDelaySeconds: 5 - periodSeconds: 10 - resources: - {} - volumeMounts: - - mountPath: /tmp/k8s-webhook-server/serving-certs - name: cert - readOnly: true - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - nodeSelector: - kubernetes.io/os: linux - serviceAccountName: opentelemetry-operator - terminationGracePeriodSeconds: 10 - volumes: - - name: cert - secret: - defaultMode: 420 - secretName: example-opentelemetry-operator-controller-manager-service-cert - securityContext: - fsGroup: 65532 - runAsGroup: 65532 - runAsNonRoot: true - runAsUser: 65532 diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/role.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/role.yaml deleted file mode 100644 index 0a015afb82..0000000000 --- a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/role.yaml +++ /dev/null @@ -1,199 +0,0 @@ ---- -# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/role.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - labels: - helm.sh/chart: opentelemetry-operator-0.113.1 - app.kubernetes.io/name: opentelemetry-operator - app.kubernetes.io/version: "0.151.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-operator - app.kubernetes.io/instance: example - app.kubernetes.io/component: controller-manager - name: example-opentelemetry-operator-leader-election - namespace: default -rules: - - apiGroups: - - "" - resources: - - configmaps - - pods - - serviceaccounts - - services - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - "" - resources: - - events - verbs: - - create - - patch - - apiGroups: - - "" - resources: - - namespaces - - secrets - verbs: - - get - - list - - watch - - apiGroups: - - apps - resources: - - daemonsets - - deployments - - statefulsets - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - apps - resources: - - replicasets - verbs: - - get - - list - - watch - - apiGroups: - - autoscaling - resources: - - horizontalpodautoscalers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - batch - resources: - - jobs - verbs: - - get - - list - - watch - - apiGroups: - - config.openshift.io - resources: - - infrastructures - - infrastructures/status - verbs: - - get - - list - - watch - - apiGroups: - - coordination.k8s.io - resources: - - leases - verbs: - - create - - get - - list - - update - - apiGroups: - - monitoring.coreos.com - resources: - - podmonitors - - servicemonitors - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - networking.k8s.io - resources: - - ingresses - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - opentelemetry.io - resources: - - instrumentations - - opentelemetrycollectors - verbs: - - get - - list - - patch - - update - - watch - - apiGroups: - - opentelemetry.io - resources: - - opampbridges - - targetallocators - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - opentelemetry.io - resources: - - opampbridges/finalizers - verbs: - - update - - apiGroups: - - opentelemetry.io - resources: - - opampbridges/status - - opentelemetrycollectors/finalizers - - opentelemetrycollectors/status - - targetallocators/status - - targetallocators/finalizers - verbs: - - get - - patch - - update - - apiGroups: - - policy - resources: - - poddisruptionbudgets - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - route.openshift.io - resources: - - routes - - routes/custom-host - verbs: - - create - - delete - - get - - list - - patch - - update - - watch diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/rolebinding.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/rolebinding.yaml deleted file mode 100644 index 721fdb0099..0000000000 --- a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/rolebinding.yaml +++ /dev/null @@ -1,23 +0,0 @@ ---- -# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/rolebinding.yaml -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - labels: - helm.sh/chart: opentelemetry-operator-0.113.1 - app.kubernetes.io/name: opentelemetry-operator - app.kubernetes.io/version: "0.151.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-operator - app.kubernetes.io/instance: example - app.kubernetes.io/component: controller-manager - name: example-opentelemetry-operator-leader-election - namespace: default -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: example-opentelemetry-operator-leader-election -subjects: - - kind: ServiceAccount - name: opentelemetry-operator - namespace: default diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/service.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/service.yaml deleted file mode 100644 index bf164a93d7..0000000000 --- a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/service.yaml +++ /dev/null @@ -1,47 +0,0 @@ ---- -# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - labels: - helm.sh/chart: opentelemetry-operator-0.113.1 - app.kubernetes.io/name: opentelemetry-operator - app.kubernetes.io/version: "0.151.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-operator - app.kubernetes.io/instance: example - app.kubernetes.io/component: controller-manager - name: example-opentelemetry-operator - namespace: default -spec: - ports: - - name: metrics - port: 8443 - protocol: TCP - targetPort: metrics - selector: - app.kubernetes.io/name: opentelemetry-operator - app.kubernetes.io/component: controller-manager ---- -# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/service.yaml -apiVersion: v1 -kind: Service -metadata: - labels: - helm.sh/chart: opentelemetry-operator-0.113.1 - app.kubernetes.io/name: opentelemetry-operator - app.kubernetes.io/version: "0.151.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-operator - app.kubernetes.io/instance: example - app.kubernetes.io/component: controller-manager - name: example-opentelemetry-operator-webhook - namespace: default -spec: - ports: - - port: 443 - protocol: TCP - targetPort: webhook-server - selector: - app.kubernetes.io/name: opentelemetry-operator - app.kubernetes.io/component: controller-manager diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/serviceaccount.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/serviceaccount.yaml deleted file mode 100644 index 6abe418372..0000000000 --- a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/serviceaccount.yaml +++ /dev/null @@ -1,16 +0,0 @@ ---- -# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/serviceaccount.yaml -apiVersion: v1 -kind: ServiceAccount -automountServiceAccountToken: true -metadata: - name: opentelemetry-operator - namespace: default - labels: - helm.sh/chart: opentelemetry-operator-0.113.1 - app.kubernetes.io/name: opentelemetry-operator - app.kubernetes.io/version: "0.151.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-operator - app.kubernetes.io/instance: example - app.kubernetes.io/component: controller-manager diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml deleted file mode 100644 index f86f50575c..0000000000 --- a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/tests/test-certmanager-connection.yaml +++ /dev/null @@ -1,53 +0,0 @@ ---- -# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-certmanager-connection.yaml -apiVersion: v1 -kind: Pod -metadata: - name: "example-opentelemetry-operator-cert-manager" - namespace: default - labels: - helm.sh/chart: opentelemetry-operator-0.113.1 - app.kubernetes.io/name: opentelemetry-operator - app.kubernetes.io/version: "0.151.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-operator - app.kubernetes.io/instance: example - app.kubernetes.io/component: webhook - annotations: - "helm.sh/hook": test -spec: - containers: - - name: wget - image: "busybox:latest" - env: - - name: CERT_MANAGER_CLUSTERIP - value: "cert-manager-webhook" - - name: CERT_MANAGER_PORT - value: "443" - command: - - sh - - -c - # The following shell script tests if the cert-manager service is up. If the service is up, when we try - # to wget its exposed port, we will get an HTTP error 400. - - | - wget_output=$(wget -q "$CERT_MANAGER_CLUSTERIP:$CERT_MANAGER_PORT") - if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request" - then exit 0 - else exit 1 - fi - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - restartPolicy: Never - nodeSelector: - kubernetes.io/os: linux - securityContext: - fsGroup: 65532 - runAsGroup: 65532 - runAsNonRoot: true - runAsUser: 65532 diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/tests/test-service-connection.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/tests/test-service-connection.yaml deleted file mode 100644 index 79329c4b9b..0000000000 --- a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/rendered/opentelemetry-operator/tests/test-service-connection.yaml +++ /dev/null @@ -1,106 +0,0 @@ ---- -# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml -apiVersion: v1 -kind: Pod -metadata: - name: "example-opentelemetry-operator-metrics" - namespace: default - labels: - helm.sh/chart: opentelemetry-operator-0.113.1 - app.kubernetes.io/name: opentelemetry-operator - app.kubernetes.io/version: "0.151.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-operator - app.kubernetes.io/instance: example - app.kubernetes.io/component: controller-manager - annotations: - "helm.sh/hook": test -spec: - containers: - - name: wget - image: "busybox:latest" - env: - - name: MANAGER_METRICS_SERVICE_CLUSTERIP - value: "example-opentelemetry-operator" - - name: MANAGER_METRICS_SERVICE_PORT - value: "8443" - command: - - sh - - -c - # The following shell script tests if the controller-manager-metrics-service is up. - # If the service is up, when we try to wget its exposed port, we will get an HTTP error 400. - - | - wget_output=$(wget -q "$MANAGER_METRICS_SERVICE_CLUSTERIP:$MANAGER_METRICS_SERVICE_PORT") - if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request" - then exit 0 - else exit 1 - fi - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - restartPolicy: Never - nodeSelector: - kubernetes.io/os: linux - securityContext: - fsGroup: 65532 - runAsGroup: 65532 - runAsNonRoot: true - runAsUser: 65532 ---- -# Source: opentelemetry-kube-stack/charts/opentelemetry-operator/templates/tests/test-service-connection.yaml -apiVersion: v1 -kind: Pod -metadata: - name: "example-opentelemetry-operator-webhook" - namespace: default - labels: - helm.sh/chart: opentelemetry-operator-0.113.1 - app.kubernetes.io/name: opentelemetry-operator - app.kubernetes.io/version: "0.151.0" - app.kubernetes.io/managed-by: Helm - app.kubernetes.io/part-of: opentelemetry-operator - app.kubernetes.io/instance: example - app.kubernetes.io/component: controller-manager - annotations: - "helm.sh/hook": test -spec: - containers: - - name: wget - image: "busybox:latest" - env: - - name: WEBHOOK_SERVICE_CLUSTERIP - value: "example-opentelemetry-operator-webhook" - - name: WEBHOOK_SERVICE_PORT - value: "443" - command: - - sh - - -c - # The following shell script tests if the webhook service is up. If the service is up, when we try - # to wget its exposed port, we will get an HTTP error 400. - - | - wget_output=$(wget -q "$WEBHOOK_SERVICE_CLUSTERIP:$WEBHOOK_SERVICE_PORT") - if wget_output=="wget: server returned error: HTTP/1.0 400 Bad Request" - then exit 0 - else exit 1 - fi - securityContext: - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - runAsNonRoot: true - seccompProfile: - type: RuntimeDefault - restartPolicy: Never - nodeSelector: - kubernetes.io/os: linux - securityContext: - fsGroup: 65532 - runAsGroup: 65532 - runAsNonRoot: true - runAsUser: 65532 diff --git a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/values.yaml b/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/values.yaml deleted file mode 100644 index ff99479b4e..0000000000 --- a/charts/opentelemetry-kube-stack/examples/daemonset-ta-no-scrape-config-file/values.yaml +++ /dev/null @@ -1,20 +0,0 @@ -collectors: - daemon: - # no prometheus scrape config file - scrape_configs_file: "" - presets: - kubeletMetrics: - enabled: true - hostMetrics: - enabled: true - kubernetesAttributes: - enabled: true - clusterMetrics: - enabled: true - # target allocator configuration to discover ServiceMonitor resources and distribute scrape targets across the DaemonSet pods - targetAllocator: - enabled: true - allocationStrategy: per-node - prometheusCR: - enabled: true - serviceMonitorSelector: {} From 2a9d6bf8f5c5e4a79373f5e2501e4aa6393b2dd8 Mon Sep 17 00:00:00 2001 From: Cyrille Le Clerc Date: Thu, 21 May 2026 22:58:03 +0200 Subject: [PATCH 5/5] Add CI test --- .../daemonset-ta-no-scrape-config-file.yaml | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 charts/opentelemetry-kube-stack/ci/daemonset-ta-no-scrape-config-file.yaml diff --git a/charts/opentelemetry-kube-stack/ci/daemonset-ta-no-scrape-config-file.yaml b/charts/opentelemetry-kube-stack/ci/daemonset-ta-no-scrape-config-file.yaml new file mode 100644 index 0000000000..ff99479b4e --- /dev/null +++ b/charts/opentelemetry-kube-stack/ci/daemonset-ta-no-scrape-config-file.yaml @@ -0,0 +1,20 @@ +collectors: + daemon: + # no prometheus scrape config file + scrape_configs_file: "" + presets: + kubeletMetrics: + enabled: true + hostMetrics: + enabled: true + kubernetesAttributes: + enabled: true + clusterMetrics: + enabled: true + # target allocator configuration to discover ServiceMonitor resources and distribute scrape targets across the DaemonSet pods + targetAllocator: + enabled: true + allocationStrategy: per-node + prometheusCR: + enabled: true + serviceMonitorSelector: {}