Skip to content

add opentelemetry-ebpf-instrumentation helm chart #1704

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 15 commits into
base: main
Choose a base branch
from

Conversation

NimrodAvni78
Copy link

@NimrodAvni78 NimrodAvni78 commented Jun 5, 2025

Helm chart for opentelemetry-ebpf-instrumentation, the helm chart is based on the original beyla helm chart

issue

Copy link
Member

@TylerHelmuth TylerHelmuth left a comment

Choose a reason for hiding this comment

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

We need to discuss this chart addition in the issue first

@ittai-coralogix
Copy link

We need to discuss this chart addition in the issue first

Hey @TylerHelmuth, just added a comment in the issue. Hope it clarifies everything.

Copy link

@mariomac mariomac left a comment

Choose a reason for hiding this comment

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

Looks great!

@NimrodAvni78
Copy link
Author

@mariomac iv'e added to k8s cache to the helm chart, so i would love a re-review

Copy link

@mariomac mariomac left a comment

Choose a reason for hiding this comment

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

LGTM!! Thanks for the contribution

- Integrate the chart with the Makefile for consistent tooling support.
- Add examples and render via `make generate-examples'.
@NimrodAvni78 NimrodAvni78 force-pushed the otel-ebpf-instrumentation branch from 9a6914d to f91fcfa Compare June 19, 2025 08:12
@NimrodAvni78
Copy link
Author

@TylerHelmuth i see that mario has approved
what are the next steps to get this merged?

@TylerHelmuth TylerHelmuth dismissed their stale review June 20, 2025 21:19

I still need to do a real review but wont have time till July. But I dont want to block anymore.

Copy link
Contributor

github-actions bot commented Jul 5, 2025

This PR was marked stale due to lack of activity. It will be closed in 14 days.

@github-actions github-actions bot added the Stale label Jul 5, 2025
@NimrodAvni78
Copy link
Author

hey @TylerHelmuth, are you available for a review of this?

@github-actions github-actions bot removed the Stale label Jul 7, 2025
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

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

- https://github.com/open-telemetry/opentelemetry-helm-charts
icon: https://opentelemetry.io/img/logos/opentelemetry-logo-nav.png
maintainers:
- 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

{{/*
Expand the name of the chart.
*/}}
{{- define "obi.name" -}}
Copy link
Member

Choose a reason for hiding this comment

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

Please prefix all the templates with the chart's name instead of obi

Copy link
Member

Choose a reason for hiding this comment

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

rename file to daemonset.yaml please.

Copy link
Member

Choose a reason for hiding this comment

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

Please rename to clusterrole.yaml

Copy link
Member

Choose a reason for hiding this comment

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

please rename to clusterrolebinding.yaml

Comment on lines 20 to 22
ebpf-instrument-config.yml: |
{{- if eq .Values.preset "network" }}
{{- if not .Values.config.data.network }}
network:
enable: true
{{- end }}
{{- end }}
{{- if eq .Values.preset "application" }}
{{- if not .Values.config.data.discovery }}
discovery:
services:
- k8s_namespace: .
exclude_services:
- exe_path: ".*ebpf-instrument.*|.*otelcol.*"
{{- end }}
{{- end }}
{{- toYaml .Values.config.data | nindent 4}}
{{- end }}
Copy link
Member

Choose a reason for hiding this comment

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

Lets move the configmap logic into a helper template like the other charts do

Comment on lines 3 to 8
global:
image:
# -- Global image registry to use if it needs to be overridden for some specific use cases (e.g local registries, custom images, ...)
registry: ""
# -- Optional set of global image pull secrets.
pullSecrets: []
Copy link
Member

Choose a reason for hiding this comment

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

Why do we need this and .Values.image?

Copy link
Author

Choose a reason for hiding this comment

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

there are 2 components, the obi agent and the k8s cache, this allows for configuring the same registry for both

Copy link
Member

Choose a reason for hiding this comment

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

global is a keyword in helm, can we nest this in a different section that is specific to this chart?

Copy link
Author

Choose a reason for hiding this comment

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

@mariomac wdyt, this was copied from the beyla helm chart

Choose a reason for hiding this comment

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

I'm fine replacing global by something more meaningful that doesn't collide with the keyword.

According to the block description, it seems something more related to the infrastructure setup (registry, pull secrets...). Maybe something like setup, infrastructure, login?

TBH I don't know about anyone using this section in Beyla.

Copy link
Member

Choose a reason for hiding this comment

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

I vote we simplify then and remove this capability. Users can configure each image in its own section instead.

@NimrodAvni78 NimrodAvni78 force-pushed the otel-ebpf-instrumentation branch from 4c568f9 to 8ae443f Compare July 27, 2025 09:54
@NimrodAvni78
Copy link
Author

@TylerHelmuth fixed all comments except changing the chart name
@MrAlias @mariomac wdyt the name should be?

@mariomac
Copy link

@NimrodAvni78 the name that we use for the executable and the docker image is ebpf-instrument. Maybe we can use it? The open-telemetry prefix will be already present, e.g.:

helm install my-obi open-telemetry/ebpf-instrument

@TylerHelmuth
Copy link
Member

The pattern to match is to include opentelemetry- in the chart some. So we could so open-telemetry/opentelemetry-ebpf-instrument if that matches the image name.

@NimrodAvni78 NimrodAvni78 force-pushed the otel-ebpf-instrumentation branch from f253362 to e39a935 Compare August 6, 2025 09:51
@@ -0,0 +1,327 @@
image:
# -- Opentelemetry eBPF Instrumentation image registry (defaults to docker.io)
registry: "docker.io"
Copy link
Contributor

Choose a reason for hiding this comment

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

I think makes sense to default to "" or ghcr, this is what we recommend for collector;

helm install my-opentelemetry-collector open-telemetry/opentelemetry-collector --set mode= --set image.repository="ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-k8s" --set command.name="otelcol-k8s"

We had a lot of issues with docker.io with publishing our images and rate-limiting

repository: otel/ebpf-instrument
# -- (string) Opentelemetry eBPF Instrumentation image tag. When empty, the Chart's appVersion is
# used.
tag: main
Copy link
Contributor

Choose a reason for hiding this comment

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

let's not default to main

Copy link
Author

Choose a reason for hiding this comment

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

@povilasv obi still doesn't have any official releases, a v0.1.0 release is planned tho, this is the only tag being pushed currently beside commit

Copy link
Contributor

Choose a reason for hiding this comment

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

I think this a bit troublesome to maintain, as it's very hard to know if a specific commit removed a flag or did breaking change, so one day this helm chart will work another day it won't.

Maybe it makes sense to wait for proper versions, before releasing the chart?

Copy link
Member

Choose a reason for hiding this comment

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

We absolutely should not release a chart that doesn't have an official image. We've had issues in the Collector SIG dealing with some dependencies that didn't have an official tag. I dont want that to happen here.

We should wait for the 0.1.0 release before merging this PR.

Comment on lines 294 to 298
registry: "docker.io"
# -- K8s Cache image repository.
repository: otel/opentelemetry-ebpf-k8s-cache
# -- (string) K8s Cache image tag. When empty, the Chart's appVersion is used.
tag: main
Copy link
Contributor

Choose a reason for hiding this comment

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

same comment as for main image / repository

@@ -0,0 +1,327 @@
image:
Copy link
Contributor

Choose a reason for hiding this comment

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

maybe also make sense to move config here under opentelemetry-ebpf-instrumentation (maybe some better/ shorter name) ? since we have two workflows cache and daemonset?

Copy link
Author

Choose a reason for hiding this comment

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

if i understand what you are suggestion we discussed here its better to seperate them

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants