Skip to content
Open
Show file tree
Hide file tree
Changes from 13 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
TMP_DIRECTORY = ./tmp
CHARTS ?= opentelemetry-collector opentelemetry-operator opentelemetry-demo opentelemetry-ebpf opentelemetry-kube-stack
CHARTS ?= opentelemetry-collector opentelemetry-operator opentelemetry-demo opentelemetry-ebpf opentelemetry-kube-stack opentelemetry-ebpf-instrumentation
OPERATOR_APP_VERSION ?= "$(shell cat ./charts/opentelemetry-operator/Chart.yaml | sed -nr 's/appVersion: ([0-9]+\.[0-9]+\.[0-9]+)/\1/p')"

.PHONY: generate-examples
Expand Down
9 changes: 8 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# OpenTelemetry Helm Charts

[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/opentelemetry-helm)](https://artifacthub.io/packages/search?repo=opentelemetry-helm)

This repository contains [Helm](https://helm.sh/) charts for OpenTelemetry project.
Expand Down Expand Up @@ -38,6 +38,13 @@ The chart can be used to install [OpenTelemetry Operator](https://github.com/ope
in a Kubernetes cluster. More detailed documentation can be found in
[OpenTelemetry Operator chart directory](./charts/opentelemetry-operator).


### OpenTelemetry eBPF Instrumentation

The chart can be used to install [OpenTelemetry eBPF Instrumentation](https://github.com/open-telemetry/opentelemetry-ebpf-instrumentation)
in a Kubernetes cluster. More detailed documentation can be found in
[OpenTelemetry Operator chart directory](./charts/opentelemetry-ebpf-instrumentation).

## Contributing

See [CONTRIBUTING.md](./CONTRIBUTING.md).
Expand Down
23 changes: 23 additions & 0 deletions charts/opentelemetry-ebpf-instrumentation/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
17 changes: 17 additions & 0 deletions charts/opentelemetry-ebpf-instrumentation/Chart.yaml
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you update the github workflows so that this chart is tested? chart-testing will do a default install if there is no ci folder

Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
apiVersion: v2
name: opentelemetry-ebpf-instrumentation
version: 0.1.0
description: OpenTelemetry eBPF instrumentation Helm chart for Kubernetes
type: application
home: https://opentelemetry.io/
sources:
- https://github.com/coralogix/opentelemetry-helm-charts
- https://github.com/open-telemetry/opentelemetry-helm-charts
icon: https://opentelemetry.io/img/logos/opentelemetry-logo-nav.png
maintainers:
- name: dmitryax
- name: jaronoff97
- name: TylerHelmuth
- name: nimrodavni78
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- name: nimrodavni78
- name: dmitryax
- name: jaronoff97
- name: TylerHelmuth
- name: nimrodavni78

appVersion: 0.1.0
28 changes: 28 additions & 0 deletions charts/opentelemetry-ebpf-instrumentation/README.md
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add a section detailing requirements

Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# OpenTelemetry Collector eBPF Helm Chart

The helm chart installs [OpenTelemetry eBPF Instrumentation](https://github.com/open-telemetry/opentelemetry-ebpf-instrumentation)
in kubernetes cluster.

## Prerequisites

- Kubernetes 1.24+
- Helm 3.9+

## Installing the Chart

Add OpenTelemetry Helm repository:

```console
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
```

To install the chart with the release name my-opentelemetry-ebpf, run the following command:

```console
helm install my-opentelemetry-ebpf-instrumentation open-telemetry/opentelemetry-ebpf-instrumentation
```

### Other configuration options

The [values.yaml](./values.yaml) file contains information about all other configuration
options for this chart.
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
# Source: opentelemetry-ebpf-instrumentation/templates/clusterrole.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: example-opentelemetry-ebpf-instrumentation
labels:
helm.sh/chart: opentelemetry-ebpf-instrumentation-0.1.0
app.kubernetes.io/name: opentelemetry-ebpf-instrumentation
app.kubernetes.io/instance: example
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: obi
app.kubernetes.io/component: rbac
rules:
- apiGroups: [ "apps" ]
resources: [ "replicasets" ]
verbs: [ "list", "watch" ]
- apiGroups: [ "" ]
resources: [ "pods", "services", "nodes" ]
verbs: [ "list", "watch", "get" ]
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
# Source: opentelemetry-ebpf-instrumentation/templates/clusterrolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: example-opentelemetry-ebpf-instrumentation
labels:
helm.sh/chart: opentelemetry-ebpf-instrumentation-0.1.0
app.kubernetes.io/name: opentelemetry-ebpf-instrumentation
app.kubernetes.io/instance: example
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: obi
app.kubernetes.io/component: rbac
subjects:
- kind: ServiceAccount
name: example-opentelemetry-ebpf-instrumentation
namespace: default
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: example-opentelemetry-ebpf-instrumentation
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
# Source: opentelemetry-ebpf-instrumentation/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: example-opentelemetry-ebpf-instrumentation
namespace: default
labels:
helm.sh/chart: opentelemetry-ebpf-instrumentation-0.1.0
app.kubernetes.io/name: opentelemetry-ebpf-instrumentation
app.kubernetes.io/instance: example
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: obi
app.kubernetes.io/component: config
data:
ebpf-instrument-config.yml: |
attributes:
kubernetes:
enable: true
discovery:
exclude_services:
- exe_path: .*ebpf-instrument.*|.*otelcol.*
services:
- k8s_namespace: .
filter:
network:
k8s_dst_owner_name:
not_match: '{kube*,*jaeger-agent*,*prometheus*,*promtail*,*grafana-agent*}'
k8s_src_owner_name:
not_match: '{kube*,*jaeger-agent*,*prometheus*,*promtail*,*grafana-agent*}'
otel_metrics_export:
endpoint: http://${HOST_IP}:4318
otel_traces_export:
endpoint: http://${HOST_IP}:4317
prometheus_export:
path: /metrics
port: 9090
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
# Source: opentelemetry-ebpf-instrumentation/templates/daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: example-opentelemetry-ebpf-instrumentation
namespace: default
labels:
helm.sh/chart: opentelemetry-ebpf-instrumentation-0.1.0
app.kubernetes.io/name: opentelemetry-ebpf-instrumentation
app.kubernetes.io/instance: example
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: obi
app.kubernetes.io/component: workload
spec:
selector:
matchLabels:
app.kubernetes.io/name: opentelemetry-ebpf-instrumentation
app.kubernetes.io/instance: example
updateStrategy:
type: RollingUpdate
template:
metadata:
annotations:
checksum/config: 2ddd12b5cac5f3eab28d8bc500cb3db81df076a39a5143c879aed1772dfdc4ee
labels:
helm.sh/chart: opentelemetry-ebpf-instrumentation-0.1.0
app.kubernetes.io/name: opentelemetry-ebpf-instrumentation
app.kubernetes.io/instance: example
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: obi
app.kubernetes.io/component: workload
spec:
serviceAccountName: example-opentelemetry-ebpf-instrumentation
hostPID: true
initContainers:
containers:
- name: ebpf-instrument
image: docker.io/otel/ebpf-instrument:main
imagePullPolicy: IfNotPresent
securityContext:
privileged: true
ports:
- name: metrics
containerPort: 9090
protocol: TCP
env:
- name: OTEL_EBPF_CONFIG_PATH
value: "/etc/ebpf-instrument/config/ebpf-instrument-config.yml"
- name: HOST_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.hostIP
volumeMounts:
- mountPath: /etc/ebpf-instrument/config
name: ebpf-instrument-config
volumes:
- name: ebpf-instrument-config
configMap:
name: example-opentelemetry-ebpf-instrumentation
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
# Source: opentelemetry-ebpf-instrumentation/templates/serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: example-opentelemetry-ebpf-instrumentation
namespace: default
labels:
helm.sh/chart: opentelemetry-ebpf-instrumentation-0.1.0
app.kubernetes.io/name: opentelemetry-ebpf-instrumentation
app.kubernetes.io/instance: example
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: obi
app.kubernetes.io/component: rbac
automountServiceAccountToken: true
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
# Source: opentelemetry-ebpf-instrumentation/templates/cache-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: opentelemetry-ebpf-instrumentation-k8s-cache
namespace: default
labels:
helm.sh/chart: opentelemetry-ebpf-instrumentation-0.1.0
app.kubernetes.io/name: opentelemetry-ebpf-instrumentation-k8s-cache
app.kubernetes.io/instance: example
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: obi
app.kubernetes.io/component: workload
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: opentelemetry-ebpf-instrumentation-k8s-cache
template:
metadata:
labels:
helm.sh/chart: opentelemetry-ebpf-instrumentation-0.1.0
app.kubernetes.io/name: opentelemetry-ebpf-instrumentation-k8s-cache
app.kubernetes.io/instance: example
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: obi
spec:
serviceAccountName: example-opentelemetry-ebpf-instrumentation
containers:
- name: obi-k8s-cache
image: docker.io/otel/opentelemetry-ebpf-k8s-cache:main
imagePullPolicy: IfNotPresent
ports:
- containerPort: 50055
protocol: TCP
name: grpc
env:
- name: OTEL_EBPF_K8S_CACHE_PORT
value: "50055"
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
# Source: opentelemetry-ebpf-instrumentation/templates/cache-service.yaml
apiVersion: v1
kind: Service
metadata:
name: opentelemetry-ebpf-instrumentation-k8s-cache
namespace: default
labels:
helm.sh/chart: opentelemetry-ebpf-instrumentation-0.1.0
app.kubernetes.io/name: opentelemetry-ebpf-instrumentation-k8s-cache
app.kubernetes.io/instance: example
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: obi
app.kubernetes.io/component: networking
spec:
ports:
- port: 50055
protocol: TCP
targetPort: grpc
name: grpc
selector:
app.kubernetes.io/name: opentelemetry-ebpf-instrumentation-k8s-cache
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
# Source: opentelemetry-ebpf-instrumentation/templates/clusterrole.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: example-opentelemetry-ebpf-instrumentation
labels:
helm.sh/chart: opentelemetry-ebpf-instrumentation-0.1.0
app.kubernetes.io/name: opentelemetry-ebpf-instrumentation
app.kubernetes.io/instance: example
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: obi
app.kubernetes.io/component: rbac
rules:
- apiGroups: [ "apps" ]
resources: [ "replicasets" ]
verbs: [ "list", "watch" ]
- apiGroups: [ "" ]
resources: [ "pods", "services", "nodes" ]
verbs: [ "list", "watch", "get" ]
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
# Source: opentelemetry-ebpf-instrumentation/templates/clusterrolebinding.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: example-opentelemetry-ebpf-instrumentation
labels:
helm.sh/chart: opentelemetry-ebpf-instrumentation-0.1.0
app.kubernetes.io/name: opentelemetry-ebpf-instrumentation
app.kubernetes.io/instance: example
app.kubernetes.io/version: "0.1.0"
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/part-of: obi
app.kubernetes.io/component: rbac
subjects:
- kind: ServiceAccount
name: example-opentelemetry-ebpf-instrumentation
namespace: default
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: example-opentelemetry-ebpf-instrumentation
Loading
Loading