From 82976ccd5b17d4fee3e2c406bcc050fc226c3621 Mon Sep 17 00:00:00 2001 From: khushijain21 Date: Thu, 22 Feb 2024 14:08:25 +0530 Subject: [PATCH 01/46] test --- deployments/helm/values.yaml | 1 + 1 file changed, 1 insertion(+) create mode 100644 deployments/helm/values.yaml diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml new file mode 100644 index 000000000..018bd18c6 --- /dev/null +++ b/deployments/helm/values.yaml @@ -0,0 +1 @@ +#Test \ No newline at end of file From 9a5858149a81c49157663464d8ce0a27469052d6 Mon Sep 17 00:00:00 2001 From: khushijain21 Date: Thu, 22 Feb 2024 14:39:19 +0530 Subject: [PATCH 02/46] chart.yaml --- deployments/helm/Chart.yaml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 deployments/helm/Chart.yaml diff --git a/deployments/helm/Chart.yaml b/deployments/helm/Chart.yaml new file mode 100644 index 000000000..b8d6caeeb --- /dev/null +++ b/deployments/helm/Chart.yaml @@ -0,0 +1,14 @@ + +apiVersion: v2 +name: grafana/beyla +version: 1.0.0 +appVersion: 1.2.0 +kubeVersion: "^1.8.0-0" +description: eBPF-based autoinstrumentation of HTTP and HTTPS services +sources: + - https://github.com/grafana/beyla +type: application +keywords: + - observability + - autoinstrumentation + - eBPF-based \ No newline at end of file From 5b3c5765d3b0b35bced096ebf7fa61b63b475f68 Mon Sep 17 00:00:00 2001 From: khushijain21 Date: Thu, 22 Feb 2024 15:24:37 +0530 Subject: [PATCH 03/46] service-account --- deployments/helm/Chart.yaml | 5 ++-- deployments/helm/Values.yaml | 16 ++++++++++ deployments/helm/templates/_helpers.tpl | 30 +++++++++++++++++++ .../helm/templates/service-account.yaml | 6 ++++ 4 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 deployments/helm/Values.yaml create mode 100644 deployments/helm/templates/_helpers.tpl create mode 100644 deployments/helm/templates/service-account.yaml diff --git a/deployments/helm/Chart.yaml b/deployments/helm/Chart.yaml index b8d6caeeb..50b7b53b7 100644 --- a/deployments/helm/Chart.yaml +++ b/deployments/helm/Chart.yaml @@ -1,9 +1,8 @@ apiVersion: v2 -name: grafana/beyla -version: 1.0.0 +name: beyla +version: 0.1.0 appVersion: 1.2.0 -kubeVersion: "^1.8.0-0" description: eBPF-based autoinstrumentation of HTTP and HTTPS services sources: - https://github.com/grafana/beyla diff --git a/deployments/helm/Values.yaml b/deployments/helm/Values.yaml new file mode 100644 index 000000000..629b52f26 --- /dev/null +++ b/deployments/helm/Values.yaml @@ -0,0 +1,16 @@ + +image: + repository: grafana/beyla + # Overrides the Grafana image tag whose default is the chart appVersion + tag: "main" + pullPolicy: IfNotPresent + +nameOverride: "" +fullnameOverride: "" + +serviceAccount: + create: true + name: + labels: {} + annotations: {} + diff --git a/deployments/helm/templates/_helpers.tpl b/deployments/helm/templates/_helpers.tpl new file mode 100644 index 000000000..103dec826 --- /dev/null +++ b/deployments/helm/templates/_helpers.tpl @@ -0,0 +1,30 @@ +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "beyla.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + + + +{{/* +Create the name of the service account to use +*/}} +{{- define "beyla.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "beyla.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/deployments/helm/templates/service-account.yaml b/deployments/helm/templates/service-account.yaml new file mode 100644 index 000000000..051dbbed7 --- /dev/null +++ b/deployments/helm/templates/service-account.yaml @@ -0,0 +1,6 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "beyla.serviceAccountName" . }} +{{- end }} From 7a2e0e2b7fe7c6b8a69db237548986d211c589aa Mon Sep 17 00:00:00 2001 From: khushijain21 Date: Thu, 22 Feb 2024 16:19:54 +0530 Subject: [PATCH 04/46] after helm create --- deployments/helm/.helmignore | 23 ++++ deployments/helm/Chart.yaml | 1 - deployments/helm/README.md | 1 + deployments/helm/Values.yaml | 16 --- deployments/helm/templates/NOTES.txt | 0 deployments/helm/templates/_helpers.tpl | 34 ++++- deployments/helm/templates/daemon-set.yml | 41 +++++++ deployments/helm/templates/hpa.yaml | 32 +++++ deployments/helm/templates/ingress.yaml | 61 +++++++++ .../helm/templates/service-account.yaml | 6 - .../helm/templates/serviceaccount.yaml | 13 ++ .../helm/templates/tests/test-connection.yaml | 15 +++ deployments/helm/values.yaml | 116 +++++++++++++++++- 13 files changed, 334 insertions(+), 25 deletions(-) create mode 100644 deployments/helm/.helmignore create mode 100644 deployments/helm/README.md delete mode 100644 deployments/helm/Values.yaml create mode 100644 deployments/helm/templates/NOTES.txt create mode 100644 deployments/helm/templates/daemon-set.yml create mode 100644 deployments/helm/templates/hpa.yaml create mode 100644 deployments/helm/templates/ingress.yaml delete mode 100644 deployments/helm/templates/service-account.yaml create mode 100644 deployments/helm/templates/serviceaccount.yaml create mode 100644 deployments/helm/templates/tests/test-connection.yaml diff --git a/deployments/helm/.helmignore b/deployments/helm/.helmignore new file mode 100644 index 000000000..0e8a0eb36 --- /dev/null +++ b/deployments/helm/.helmignore @@ -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/ diff --git a/deployments/helm/Chart.yaml b/deployments/helm/Chart.yaml index 50b7b53b7..b51be4b84 100644 --- a/deployments/helm/Chart.yaml +++ b/deployments/helm/Chart.yaml @@ -1,4 +1,3 @@ - apiVersion: v2 name: beyla version: 0.1.0 diff --git a/deployments/helm/README.md b/deployments/helm/README.md new file mode 100644 index 000000000..c1454fb48 --- /dev/null +++ b/deployments/helm/README.md @@ -0,0 +1 @@ +## Beyla \ No newline at end of file diff --git a/deployments/helm/Values.yaml b/deployments/helm/Values.yaml deleted file mode 100644 index 629b52f26..000000000 --- a/deployments/helm/Values.yaml +++ /dev/null @@ -1,16 +0,0 @@ - -image: - repository: grafana/beyla - # Overrides the Grafana image tag whose default is the chart appVersion - tag: "main" - pullPolicy: IfNotPresent - -nameOverride: "" -fullnameOverride: "" - -serviceAccount: - create: true - name: - labels: {} - annotations: {} - diff --git a/deployments/helm/templates/NOTES.txt b/deployments/helm/templates/NOTES.txt new file mode 100644 index 000000000..e69de29bb diff --git a/deployments/helm/templates/_helpers.tpl b/deployments/helm/templates/_helpers.tpl index 103dec826..9290a143b 100644 --- a/deployments/helm/templates/_helpers.tpl +++ b/deployments/helm/templates/_helpers.tpl @@ -1,3 +1,10 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "beyla.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + {{/* Create a default fully qualified app name. We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). @@ -16,7 +23,32 @@ If release name contains chart name it will be used as a full name. {{- end }} {{- end }} +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "beyla.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "beyla.labels" -}} +helm.sh/chart: {{ include "beyla.chart" . }} +{{ include "beyla.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} +{{/* +Selector labels +*/}} +{{- define "beyla.selectorLabels" -}} +app.kubernetes.io/name: {{ include "beyla.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} {{/* Create the name of the service account to use @@ -27,4 +59,4 @@ Create the name of the service account to use {{- else }} {{- default "default" .Values.serviceAccount.name }} {{- end }} -{{- end }} \ No newline at end of file +{{- end }} diff --git a/deployments/helm/templates/daemon-set.yml b/deployments/helm/templates/daemon-set.yml new file mode 100644 index 000000000..effecf6ee --- /dev/null +++ b/deployments/helm/templates/daemon-set.yml @@ -0,0 +1,41 @@ +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: beyla +spec: + selector: + matchLabels: + instrumentation: beyla + template: + metadata: + labels: + instrumentation: beyla + spec: + serviceAccountName: beyla + hostPID: true #important! + volumes: + - name: beyla-config + configMap: + name: beyla-config + containers: + - name: beyla + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + securityContext: + privileged: true + volumeMounts: + - mountPath: /config + name: beyla-config + env: + - name: BEYLA_CONFIG_PATH + value: "/config/beyla-config.yml" + - name: BEYLA_PRINT_TRACES + value: "true" + - name: BEYLA_OPEN_PORT + value: "8443" + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: "http://grafana-agent:4318" + - name: BEYLA_LOG_LEVEL + value: "DEBUG" + - name: OTEL_RESOURCE_ATTRIBUTES + value: "deployment.environment=production" \ No newline at end of file diff --git a/deployments/helm/templates/hpa.yaml b/deployments/helm/templates/hpa.yaml new file mode 100644 index 000000000..2adf251d4 --- /dev/null +++ b/deployments/helm/templates/hpa.yaml @@ -0,0 +1,32 @@ +{{- if .Values.autoscaling.enabled }} +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ include "beyla.fullname" . }} + labels: + {{- include "beyla.labels" . | nindent 4 }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ include "beyla.fullname" . }} + minReplicas: {{ .Values.autoscaling.minReplicas }} + maxReplicas: {{ .Values.autoscaling.maxReplicas }} + metrics: + {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} +{{- end }} diff --git a/deployments/helm/templates/ingress.yaml b/deployments/helm/templates/ingress.yaml new file mode 100644 index 000000000..629f7f44a --- /dev/null +++ b/deployments/helm/templates/ingress.yaml @@ -0,0 +1,61 @@ +{{- if .Values.ingress.enabled -}} +{{- $fullName := include "beyla.fullname" . -}} +{{- $svcPort := .Values.service.port -}} +{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} + {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} + {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} + {{- end }} +{{- end }} +{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1 +{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: + {{- include "beyla.labels" . | nindent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} + ingressClassName: {{ .Values.ingress.className }} + {{- end }} + {{- if .Values.ingress.tls }} + tls: + {{- range .Values.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} + {{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ .path }} + {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} + pathType: {{ .pathType }} + {{- end }} + backend: + {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} + service: + name: {{ $fullName }} + port: + number: {{ $svcPort }} + {{- else }} + serviceName: {{ $fullName }} + servicePort: {{ $svcPort }} + {{- end }} + {{- end }} + {{- end }} +{{- end }} diff --git a/deployments/helm/templates/service-account.yaml b/deployments/helm/templates/service-account.yaml deleted file mode 100644 index 051dbbed7..000000000 --- a/deployments/helm/templates/service-account.yaml +++ /dev/null @@ -1,6 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "beyla.serviceAccountName" . }} -{{- end }} diff --git a/deployments/helm/templates/serviceaccount.yaml b/deployments/helm/templates/serviceaccount.yaml new file mode 100644 index 000000000..494e440ea --- /dev/null +++ b/deployments/helm/templates/serviceaccount.yaml @@ -0,0 +1,13 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "beyla.serviceAccountName" . }} + labels: + {{- include "beyla.labels" . | nindent 4 }} + {{- with .Values.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +automountServiceAccountToken: {{ .Values.serviceAccount.automount }} +{{- end }} diff --git a/deployments/helm/templates/tests/test-connection.yaml b/deployments/helm/templates/tests/test-connection.yaml new file mode 100644 index 000000000..944e805ee --- /dev/null +++ b/deployments/helm/templates/tests/test-connection.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Pod +metadata: + name: "{{ include "beyla.fullname" . }}-test-connection" + labels: + {{- include "beyla.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['{{ include "beyla.fullname" . }}:{{ .Values.service.port }}'] + restartPolicy: Never diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index 018bd18c6..4f67aaf09 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -1 +1,115 @@ -#Test \ No newline at end of file +image: + repository: grafana/beyla + pullPolicy: IfNotPresent + # Overrides the image tag whose default is the chart appVersion. + tag: "main" + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + + +rbac: + create: true + ## Use an existing ClusterRole/Role (depending on rbac.namespaced false/true) + # useExistingRole: name-of-some-role + # useExistingClusterRole: name-of-some-clusterRole + pspEnabled: false + pspUseAppArmor: false + namespaced: false + extraRoleRules: [] + # - apiGroups: [] + # resources: [] + # verbs: [] + extraClusterRoleRules: [] + # - apiGroups: [] + # resources: [] + +serviceAccount: + # Specifies whether a service account should be created + create: true + # Automatically mount a ServiceAccount's API credentials? + automount: true + # Annotations to add to the service account + annotations: {} + # The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + name: "" + +podSecurityContext: {} + # fsGroup: 2000 + +securityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +service: + type: ClusterIP + port: 80 + +ingress: + enabled: false + className: "" + annotations: {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + hosts: + - host: chart-example.local + paths: + - path: / + pathType: ImplementationSpecific + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + +livenessProbe: + httpGet: + path: / + port: http +readinessProbe: + httpGet: + path: / + port: http + +autoscaling: + enabled: false + minReplicas: 1 + maxReplicas: 100 + targetCPUUtilizationPercentage: 80 + # targetMemoryUtilizationPercentage: 80 + +# Additional volumes on the output Deployment definition. +volumes: [] +# - name: foo +# secret: +# secretName: mysecret +# optional: false + +# Additional volumeMounts on the output Deployment definition. +volumeMounts: [] +# - name: foo +# mountPath: "/etc/foo" +# readOnly: true + +nodeSelector: {} + +tolerations: [] + +affinity: {} From 5e987ffc62421105caf334028c3b770eb952b7b6 Mon Sep 17 00:00:00 2001 From: Syed Nihal Date: Thu, 22 Feb 2024 17:19:27 +0530 Subject: [PATCH 05/46] adding rbac with changes for labels and annotations Signed-off-by: Syed Nihal --- .../helm/templates/cluster-role-binding.yaml | 20 +++++++++++++++++++ deployments/helm/templates/cluster-role.yaml | 19 ++++++++++++++++++ deployments/helm/templates/daemon-set.yml | 16 +++++++++++---- .../helm/templates/serviceaccount.yaml | 3 +++ deployments/helm/values.yaml | 4 ++++ 5 files changed, 58 insertions(+), 4 deletions(-) create mode 100644 deployments/helm/templates/cluster-role-binding.yaml create mode 100644 deployments/helm/templates/cluster-role.yaml diff --git a/deployments/helm/templates/cluster-role-binding.yaml b/deployments/helm/templates/cluster-role-binding.yaml new file mode 100644 index 000000000..a45c6ee90 --- /dev/null +++ b/deployments/helm/templates/cluster-role-binding.yaml @@ -0,0 +1,20 @@ +{{- if .Values.rbac.create }} +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{- define "beyla.fullname" -}} + labels: + {{- include "beyla.labels" . | nindent 4 }} + {{- with .Values.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +subjects: + - kind: ServiceAccount + name: {{ include "beyla.serviceAccountName" . }} + namespace: beyla +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{- define "beyla.fullname" -}} +{{- end }} \ No newline at end of file diff --git a/deployments/helm/templates/cluster-role.yaml b/deployments/helm/templates/cluster-role.yaml new file mode 100644 index 000000000..3d567d02e --- /dev/null +++ b/deployments/helm/templates/cluster-role.yaml @@ -0,0 +1,19 @@ +{{- if .Values.rbac.create }} +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{- define "beyla.fullname" -}} + labels: + {{- include "beyla.labels" . | nindent 4 }} + {{- with .Values.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +rules: + - apiGroups: ["apps"] + resources: ["replicasets"] + verbs: ["list", "watch"] + - apiGroups: [""] + resources: ["pods"] + verbs: ["list", "watch"] +{{- end }} \ No newline at end of file diff --git a/deployments/helm/templates/daemon-set.yml b/deployments/helm/templates/daemon-set.yml index effecf6ee..88ece753b 100644 --- a/deployments/helm/templates/daemon-set.yml +++ b/deployments/helm/templates/daemon-set.yml @@ -1,17 +1,25 @@ apiVersion: apps/v1 kind: DaemonSet metadata: - name: beyla + name: {{- define "beyla.fullname" -}} + labels: + {{- include "beyla.labels" . | nindent 4 }} + {{- with .Values.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} spec: selector: matchLabels: - instrumentation: beyla + instrumentation: {{- define "beyla.fullname" -}} template: metadata: labels: - instrumentation: beyla + instrumentation: {{- define "beyla.fullname" -}} spec: - serviceAccountName: beyla + {{- if .Values.serviceAccount.create -}} + serviceAccountName: {{ include "beyla.serviceAccountName" . }} + {{- end }} hostPID: true #important! volumes: - name: beyla-config diff --git a/deployments/helm/templates/serviceaccount.yaml b/deployments/helm/templates/serviceaccount.yaml index 494e440ea..4137cc097 100644 --- a/deployments/helm/templates/serviceaccount.yaml +++ b/deployments/helm/templates/serviceaccount.yaml @@ -5,6 +5,9 @@ metadata: name: {{ include "beyla.serviceAccountName" . }} labels: {{- include "beyla.labels" . | nindent 4 }} + {{- with .Values.serviceAccount.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} {{- with .Values.serviceAccount.annotations }} annotations: {{- toYaml . | nindent 4 }} diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index 4f67aaf09..b299164a8 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -8,6 +8,8 @@ imagePullSecrets: [] nameOverride: "" fullnameOverride: "" +## Deployment annotations +# annotations: {} rbac: create: true @@ -30,6 +32,8 @@ serviceAccount: create: true # Automatically mount a ServiceAccount's API credentials? automount: true + # ServiceAccount labels. + labels: {} # Annotations to add to the service account annotations: {} # The name of the service account to use. From b9f15586a80039e003b0eabc6b40590ffb0372ad Mon Sep 17 00:00:00 2001 From: Syed Nihal Date: Thu, 22 Feb 2024 17:27:29 +0530 Subject: [PATCH 06/46] adding rbac with changes for labels and annotations Signed-off-by: Syed Nihal --- deployments/helm/templates/cluster-role-binding.yaml | 4 ++-- deployments/helm/templates/cluster-role.yaml | 2 +- deployments/helm/templates/daemon-set.yml | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/deployments/helm/templates/cluster-role-binding.yaml b/deployments/helm/templates/cluster-role-binding.yaml index a45c6ee90..d0840db1b 100644 --- a/deployments/helm/templates/cluster-role-binding.yaml +++ b/deployments/helm/templates/cluster-role-binding.yaml @@ -2,7 +2,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: {{- define "beyla.fullname" -}} + name: {{- include "beyla.fullname" . -}} labels: {{- include "beyla.labels" . | nindent 4 }} {{- with .Values.annotations }} @@ -16,5 +16,5 @@ subjects: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: {{- define "beyla.fullname" -}} + name: {{- include "beyla.fullname" . -}} {{- end }} \ No newline at end of file diff --git a/deployments/helm/templates/cluster-role.yaml b/deployments/helm/templates/cluster-role.yaml index 3d567d02e..ae27240b8 100644 --- a/deployments/helm/templates/cluster-role.yaml +++ b/deployments/helm/templates/cluster-role.yaml @@ -2,7 +2,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: {{- define "beyla.fullname" -}} + name: {{- include "beyla.fullname" . -}} labels: {{- include "beyla.labels" . | nindent 4 }} {{- with .Values.annotations }} diff --git a/deployments/helm/templates/daemon-set.yml b/deployments/helm/templates/daemon-set.yml index 88ece753b..14302507c 100644 --- a/deployments/helm/templates/daemon-set.yml +++ b/deployments/helm/templates/daemon-set.yml @@ -1,7 +1,7 @@ apiVersion: apps/v1 kind: DaemonSet metadata: - name: {{- define "beyla.fullname" -}} + name: {{- include "beyla.fullname" . -}} labels: {{- include "beyla.labels" . | nindent 4 }} {{- with .Values.annotations }} @@ -11,11 +11,11 @@ metadata: spec: selector: matchLabels: - instrumentation: {{- define "beyla.fullname" -}} + instrumentation: {{- include "beyla.fullname" . -}} template: metadata: labels: - instrumentation: {{- define "beyla.fullname" -}} + instrumentation: {{- include "beyla.fullname" . -}} spec: {{- if .Values.serviceAccount.create -}} serviceAccountName: {{ include "beyla.serviceAccountName" . }} From 97ed5bc44d88ab2421c59b920e952aa6d1cd008e Mon Sep 17 00:00:00 2001 From: Syed Nihal Date: Thu, 22 Feb 2024 17:33:44 +0530 Subject: [PATCH 07/46] adding rbac with changes for labels and annotations Signed-off-by: Syed Nihal --- deployments/helm/templates/cluster-role-binding.yaml | 4 ++-- deployments/helm/templates/cluster-role.yaml | 2 +- deployments/helm/templates/daemon-set.yml | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/deployments/helm/templates/cluster-role-binding.yaml b/deployments/helm/templates/cluster-role-binding.yaml index d0840db1b..5846945cd 100644 --- a/deployments/helm/templates/cluster-role-binding.yaml +++ b/deployments/helm/templates/cluster-role-binding.yaml @@ -2,7 +2,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: - name: {{- include "beyla.fullname" . -}} + name: {{ include "beyla.fullname" . }} labels: {{- include "beyla.labels" . | nindent 4 }} {{- with .Values.annotations }} @@ -16,5 +16,5 @@ subjects: roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: {{- include "beyla.fullname" . -}} + name: {{ include "beyla.fullname" . }} {{- end }} \ No newline at end of file diff --git a/deployments/helm/templates/cluster-role.yaml b/deployments/helm/templates/cluster-role.yaml index ae27240b8..94ddccc77 100644 --- a/deployments/helm/templates/cluster-role.yaml +++ b/deployments/helm/templates/cluster-role.yaml @@ -2,7 +2,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: - name: {{- include "beyla.fullname" . -}} + name: {{ include "beyla.fullname" . }} labels: {{- include "beyla.labels" . | nindent 4 }} {{- with .Values.annotations }} diff --git a/deployments/helm/templates/daemon-set.yml b/deployments/helm/templates/daemon-set.yml index 14302507c..561ee024e 100644 --- a/deployments/helm/templates/daemon-set.yml +++ b/deployments/helm/templates/daemon-set.yml @@ -1,9 +1,9 @@ apiVersion: apps/v1 kind: DaemonSet metadata: - name: {{- include "beyla.fullname" . -}} + name: {{ include "beyla.fullname" . }} labels: - {{- include "beyla.labels" . | nindent 4 }} + {{- include "beyla.labels" . | nindent 2 }} {{- with .Values.annotations }} annotations: {{- toYaml . | nindent 4 }} @@ -11,13 +11,13 @@ metadata: spec: selector: matchLabels: - instrumentation: {{- include "beyla.fullname" . -}} + instrumentation: {{ include "beyla.fullname" . }} template: metadata: labels: - instrumentation: {{- include "beyla.fullname" . -}} + instrumentation: {{ include "beyla.fullname" . }} spec: - {{- if .Values.serviceAccount.create -}} + {{- if .Values.serviceAccount.create }} serviceAccountName: {{ include "beyla.serviceAccountName" . }} {{- end }} hostPID: true #important! From 566626484593023b5876176280c6986ad3e03a38 Mon Sep 17 00:00:00 2001 From: Syed Nihal Date: Thu, 22 Feb 2024 17:44:52 +0530 Subject: [PATCH 08/46] adding rbac with changes for labels and annotations Signed-off-by: Syed Nihal --- deployments/helm/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index b299164a8..5fac64a4a 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -8,7 +8,7 @@ imagePullSecrets: [] nameOverride: "" fullnameOverride: "" -## Deployment annotations +## DaemonSet annotations # annotations: {} rbac: From 7ba968617c0a861c2aadb05b610a71a9ddbbcf95 Mon Sep 17 00:00:00 2001 From: khushijain21 Date: Thu, 22 Feb 2024 14:08:25 +0530 Subject: [PATCH 09/46] test chart.yaml --- deployments/helm/Chart.yaml | 14 ++++++++++++++ deployments/helm/values.yaml | 1 + 2 files changed, 15 insertions(+) create mode 100644 deployments/helm/Chart.yaml create mode 100644 deployments/helm/values.yaml diff --git a/deployments/helm/Chart.yaml b/deployments/helm/Chart.yaml new file mode 100644 index 000000000..b8d6caeeb --- /dev/null +++ b/deployments/helm/Chart.yaml @@ -0,0 +1,14 @@ + +apiVersion: v2 +name: grafana/beyla +version: 1.0.0 +appVersion: 1.2.0 +kubeVersion: "^1.8.0-0" +description: eBPF-based autoinstrumentation of HTTP and HTTPS services +sources: + - https://github.com/grafana/beyla +type: application +keywords: + - observability + - autoinstrumentation + - eBPF-based \ No newline at end of file diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml new file mode 100644 index 000000000..018bd18c6 --- /dev/null +++ b/deployments/helm/values.yaml @@ -0,0 +1 @@ +#Test \ No newline at end of file From 632f31c40ca052903366fd11668b4e0951e3cde3 Mon Sep 17 00:00:00 2001 From: khushijain21 Date: Thu, 22 Feb 2024 15:24:37 +0530 Subject: [PATCH 10/46] service-account --- deployments/helm/Chart.yaml | 5 ++-- deployments/helm/Values.yaml | 16 ++++++++++ deployments/helm/templates/_helpers.tpl | 30 +++++++++++++++++++ .../helm/templates/service-account.yaml | 6 ++++ 4 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 deployments/helm/Values.yaml create mode 100644 deployments/helm/templates/_helpers.tpl create mode 100644 deployments/helm/templates/service-account.yaml diff --git a/deployments/helm/Chart.yaml b/deployments/helm/Chart.yaml index b8d6caeeb..50b7b53b7 100644 --- a/deployments/helm/Chart.yaml +++ b/deployments/helm/Chart.yaml @@ -1,9 +1,8 @@ apiVersion: v2 -name: grafana/beyla -version: 1.0.0 +name: beyla +version: 0.1.0 appVersion: 1.2.0 -kubeVersion: "^1.8.0-0" description: eBPF-based autoinstrumentation of HTTP and HTTPS services sources: - https://github.com/grafana/beyla diff --git a/deployments/helm/Values.yaml b/deployments/helm/Values.yaml new file mode 100644 index 000000000..629b52f26 --- /dev/null +++ b/deployments/helm/Values.yaml @@ -0,0 +1,16 @@ + +image: + repository: grafana/beyla + # Overrides the Grafana image tag whose default is the chart appVersion + tag: "main" + pullPolicy: IfNotPresent + +nameOverride: "" +fullnameOverride: "" + +serviceAccount: + create: true + name: + labels: {} + annotations: {} + diff --git a/deployments/helm/templates/_helpers.tpl b/deployments/helm/templates/_helpers.tpl new file mode 100644 index 000000000..103dec826 --- /dev/null +++ b/deployments/helm/templates/_helpers.tpl @@ -0,0 +1,30 @@ +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "beyla.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + + + +{{/* +Create the name of the service account to use +*/}} +{{- define "beyla.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "beyla.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/deployments/helm/templates/service-account.yaml b/deployments/helm/templates/service-account.yaml new file mode 100644 index 000000000..051dbbed7 --- /dev/null +++ b/deployments/helm/templates/service-account.yaml @@ -0,0 +1,6 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "beyla.serviceAccountName" . }} +{{- end }} From f1e31e982ea11d90feaf3e327a3e8164c7bc5f92 Mon Sep 17 00:00:00 2001 From: khushijain21 Date: Thu, 22 Feb 2024 16:19:54 +0530 Subject: [PATCH 11/46] after helm create adding rbac with changes for labels and annotations Signed-off-by: Syed Nihal adding rbac with changes for labels and annotations Signed-off-by: Syed Nihal adding rbac with changes for labels and annotations Signed-off-by: Syed Nihal --- deployments/helm/.helmignore | 23 ++++ deployments/helm/Chart.yaml | 1 - deployments/helm/README.md | 1 + deployments/helm/Values.yaml | 16 --- deployments/helm/templates/NOTES.txt | 0 deployments/helm/templates/_helpers.tpl | 34 ++++- .../helm/templates/cluster-role-binding.yaml | 20 +++ deployments/helm/templates/cluster-role.yaml | 19 +++ deployments/helm/templates/daemon-set.yml | 49 +++++++ deployments/helm/templates/hpa.yaml | 32 +++++ deployments/helm/templates/ingress.yaml | 61 +++++++++ .../helm/templates/service-account.yaml | 6 - .../helm/templates/serviceaccount.yaml | 16 +++ .../helm/templates/tests/test-connection.yaml | 15 +++ deployments/helm/values.yaml | 120 +++++++++++++++++- 15 files changed, 388 insertions(+), 25 deletions(-) create mode 100644 deployments/helm/.helmignore create mode 100644 deployments/helm/README.md delete mode 100644 deployments/helm/Values.yaml create mode 100644 deployments/helm/templates/NOTES.txt create mode 100644 deployments/helm/templates/cluster-role-binding.yaml create mode 100644 deployments/helm/templates/cluster-role.yaml create mode 100644 deployments/helm/templates/daemon-set.yml create mode 100644 deployments/helm/templates/hpa.yaml create mode 100644 deployments/helm/templates/ingress.yaml delete mode 100644 deployments/helm/templates/service-account.yaml create mode 100644 deployments/helm/templates/serviceaccount.yaml create mode 100644 deployments/helm/templates/tests/test-connection.yaml diff --git a/deployments/helm/.helmignore b/deployments/helm/.helmignore new file mode 100644 index 000000000..0e8a0eb36 --- /dev/null +++ b/deployments/helm/.helmignore @@ -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/ diff --git a/deployments/helm/Chart.yaml b/deployments/helm/Chart.yaml index 50b7b53b7..b51be4b84 100644 --- a/deployments/helm/Chart.yaml +++ b/deployments/helm/Chart.yaml @@ -1,4 +1,3 @@ - apiVersion: v2 name: beyla version: 0.1.0 diff --git a/deployments/helm/README.md b/deployments/helm/README.md new file mode 100644 index 000000000..c1454fb48 --- /dev/null +++ b/deployments/helm/README.md @@ -0,0 +1 @@ +## Beyla \ No newline at end of file diff --git a/deployments/helm/Values.yaml b/deployments/helm/Values.yaml deleted file mode 100644 index 629b52f26..000000000 --- a/deployments/helm/Values.yaml +++ /dev/null @@ -1,16 +0,0 @@ - -image: - repository: grafana/beyla - # Overrides the Grafana image tag whose default is the chart appVersion - tag: "main" - pullPolicy: IfNotPresent - -nameOverride: "" -fullnameOverride: "" - -serviceAccount: - create: true - name: - labels: {} - annotations: {} - diff --git a/deployments/helm/templates/NOTES.txt b/deployments/helm/templates/NOTES.txt new file mode 100644 index 000000000..e69de29bb diff --git a/deployments/helm/templates/_helpers.tpl b/deployments/helm/templates/_helpers.tpl index 103dec826..9290a143b 100644 --- a/deployments/helm/templates/_helpers.tpl +++ b/deployments/helm/templates/_helpers.tpl @@ -1,3 +1,10 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "beyla.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + {{/* Create a default fully qualified app name. We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). @@ -16,7 +23,32 @@ If release name contains chart name it will be used as a full name. {{- end }} {{- end }} +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "beyla.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "beyla.labels" -}} +helm.sh/chart: {{ include "beyla.chart" . }} +{{ include "beyla.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} +{{/* +Selector labels +*/}} +{{- define "beyla.selectorLabels" -}} +app.kubernetes.io/name: {{ include "beyla.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} {{/* Create the name of the service account to use @@ -27,4 +59,4 @@ Create the name of the service account to use {{- else }} {{- default "default" .Values.serviceAccount.name }} {{- end }} -{{- end }} \ No newline at end of file +{{- end }} diff --git a/deployments/helm/templates/cluster-role-binding.yaml b/deployments/helm/templates/cluster-role-binding.yaml new file mode 100644 index 000000000..5846945cd --- /dev/null +++ b/deployments/helm/templates/cluster-role-binding.yaml @@ -0,0 +1,20 @@ +{{- if .Values.rbac.create }} +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ include "beyla.fullname" . }} + labels: + {{- include "beyla.labels" . | nindent 4 }} + {{- with .Values.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +subjects: + - kind: ServiceAccount + name: {{ include "beyla.serviceAccountName" . }} + namespace: beyla +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ include "beyla.fullname" . }} +{{- end }} \ No newline at end of file diff --git a/deployments/helm/templates/cluster-role.yaml b/deployments/helm/templates/cluster-role.yaml new file mode 100644 index 000000000..94ddccc77 --- /dev/null +++ b/deployments/helm/templates/cluster-role.yaml @@ -0,0 +1,19 @@ +{{- if .Values.rbac.create }} +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ include "beyla.fullname" . }} + labels: + {{- include "beyla.labels" . | nindent 4 }} + {{- with .Values.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +rules: + - apiGroups: ["apps"] + resources: ["replicasets"] + verbs: ["list", "watch"] + - apiGroups: [""] + resources: ["pods"] + verbs: ["list", "watch"] +{{- end }} \ No newline at end of file diff --git a/deployments/helm/templates/daemon-set.yml b/deployments/helm/templates/daemon-set.yml new file mode 100644 index 000000000..561ee024e --- /dev/null +++ b/deployments/helm/templates/daemon-set.yml @@ -0,0 +1,49 @@ +apiVersion: apps/v1 +kind: DaemonSet +metadata: + name: {{ include "beyla.fullname" . }} + labels: + {{- include "beyla.labels" . | nindent 2 }} + {{- with .Values.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + selector: + matchLabels: + instrumentation: {{ include "beyla.fullname" . }} + template: + metadata: + labels: + instrumentation: {{ include "beyla.fullname" . }} + spec: + {{- if .Values.serviceAccount.create }} + serviceAccountName: {{ include "beyla.serviceAccountName" . }} + {{- end }} + hostPID: true #important! + volumes: + - name: beyla-config + configMap: + name: beyla-config + containers: + - name: beyla + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + securityContext: + privileged: true + volumeMounts: + - mountPath: /config + name: beyla-config + env: + - name: BEYLA_CONFIG_PATH + value: "/config/beyla-config.yml" + - name: BEYLA_PRINT_TRACES + value: "true" + - name: BEYLA_OPEN_PORT + value: "8443" + - name: OTEL_EXPORTER_OTLP_ENDPOINT + value: "http://grafana-agent:4318" + - name: BEYLA_LOG_LEVEL + value: "DEBUG" + - name: OTEL_RESOURCE_ATTRIBUTES + value: "deployment.environment=production" \ No newline at end of file diff --git a/deployments/helm/templates/hpa.yaml b/deployments/helm/templates/hpa.yaml new file mode 100644 index 000000000..2adf251d4 --- /dev/null +++ b/deployments/helm/templates/hpa.yaml @@ -0,0 +1,32 @@ +{{- if .Values.autoscaling.enabled }} +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ include "beyla.fullname" . }} + labels: + {{- include "beyla.labels" . | nindent 4 }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ include "beyla.fullname" . }} + minReplicas: {{ .Values.autoscaling.minReplicas }} + maxReplicas: {{ .Values.autoscaling.maxReplicas }} + metrics: + {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} +{{- end }} diff --git a/deployments/helm/templates/ingress.yaml b/deployments/helm/templates/ingress.yaml new file mode 100644 index 000000000..629f7f44a --- /dev/null +++ b/deployments/helm/templates/ingress.yaml @@ -0,0 +1,61 @@ +{{- if .Values.ingress.enabled -}} +{{- $fullName := include "beyla.fullname" . -}} +{{- $svcPort := .Values.service.port -}} +{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} + {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} + {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} + {{- end }} +{{- end }} +{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1 +{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: + {{- include "beyla.labels" . | nindent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} + ingressClassName: {{ .Values.ingress.className }} + {{- end }} + {{- if .Values.ingress.tls }} + tls: + {{- range .Values.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} + {{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ .path }} + {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} + pathType: {{ .pathType }} + {{- end }} + backend: + {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} + service: + name: {{ $fullName }} + port: + number: {{ $svcPort }} + {{- else }} + serviceName: {{ $fullName }} + servicePort: {{ $svcPort }} + {{- end }} + {{- end }} + {{- end }} +{{- end }} diff --git a/deployments/helm/templates/service-account.yaml b/deployments/helm/templates/service-account.yaml deleted file mode 100644 index 051dbbed7..000000000 --- a/deployments/helm/templates/service-account.yaml +++ /dev/null @@ -1,6 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "beyla.serviceAccountName" . }} -{{- end }} diff --git a/deployments/helm/templates/serviceaccount.yaml b/deployments/helm/templates/serviceaccount.yaml new file mode 100644 index 000000000..4137cc097 --- /dev/null +++ b/deployments/helm/templates/serviceaccount.yaml @@ -0,0 +1,16 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "beyla.serviceAccountName" . }} + labels: + {{- include "beyla.labels" . | nindent 4 }} + {{- with .Values.serviceAccount.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +automountServiceAccountToken: {{ .Values.serviceAccount.automount }} +{{- end }} diff --git a/deployments/helm/templates/tests/test-connection.yaml b/deployments/helm/templates/tests/test-connection.yaml new file mode 100644 index 000000000..944e805ee --- /dev/null +++ b/deployments/helm/templates/tests/test-connection.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Pod +metadata: + name: "{{ include "beyla.fullname" . }}-test-connection" + labels: + {{- include "beyla.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['{{ include "beyla.fullname" . }}:{{ .Values.service.port }}'] + restartPolicy: Never diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index 018bd18c6..b299164a8 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -1 +1,119 @@ -#Test \ No newline at end of file +image: + repository: grafana/beyla + pullPolicy: IfNotPresent + # Overrides the image tag whose default is the chart appVersion. + tag: "main" + +imagePullSecrets: [] +nameOverride: "" +fullnameOverride: "" + +## Deployment annotations +# annotations: {} + +rbac: + create: true + ## Use an existing ClusterRole/Role (depending on rbac.namespaced false/true) + # useExistingRole: name-of-some-role + # useExistingClusterRole: name-of-some-clusterRole + pspEnabled: false + pspUseAppArmor: false + namespaced: false + extraRoleRules: [] + # - apiGroups: [] + # resources: [] + # verbs: [] + extraClusterRoleRules: [] + # - apiGroups: [] + # resources: [] + +serviceAccount: + # Specifies whether a service account should be created + create: true + # Automatically mount a ServiceAccount's API credentials? + automount: true + # ServiceAccount labels. + labels: {} + # Annotations to add to the service account + annotations: {} + # The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + name: "" + +podSecurityContext: {} + # fsGroup: 2000 + +securityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +service: + type: ClusterIP + port: 80 + +ingress: + enabled: false + className: "" + annotations: {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + hosts: + - host: chart-example.local + paths: + - path: / + pathType: ImplementationSpecific + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + +livenessProbe: + httpGet: + path: / + port: http +readinessProbe: + httpGet: + path: / + port: http + +autoscaling: + enabled: false + minReplicas: 1 + maxReplicas: 100 + targetCPUUtilizationPercentage: 80 + # targetMemoryUtilizationPercentage: 80 + +# Additional volumes on the output Deployment definition. +volumes: [] +# - name: foo +# secret: +# secretName: mysecret +# optional: false + +# Additional volumeMounts on the output Deployment definition. +volumeMounts: [] +# - name: foo +# mountPath: "/etc/foo" +# readOnly: true + +nodeSelector: {} + +tolerations: [] + +affinity: {} From d032b987cb9df2c44da59272eedf58dcb2ab30b1 Mon Sep 17 00:00:00 2001 From: Syed Nihal Date: Thu, 22 Feb 2024 17:44:52 +0530 Subject: [PATCH 12/46] adding rbac with changes for labels and annotations Signed-off-by: Syed Nihal --- deployments/helm/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index b299164a8..5fac64a4a 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -8,7 +8,7 @@ imagePullSecrets: [] nameOverride: "" fullnameOverride: "" -## Deployment annotations +## DaemonSet annotations # annotations: {} rbac: From f75ac95d697a3347676bfcd9f566cbb6d7d9f8d1 Mon Sep 17 00:00:00 2001 From: Mario Macias Date: Thu, 22 Feb 2024 10:06:14 +0100 Subject: [PATCH 13/46] Replace BEYLA_OTEL_USE_EXPONENTIAL_HISTOGRAMS by standard environment variable (#635) --- docs/sources/configure/options.md | 25 ++++++++++++------ pkg/beyla/config.go | 11 ++++---- pkg/beyla/config_test.go | 2 ++ pkg/internal/export/otel/metrics.go | 39 +++++++++++++++++++++-------- 4 files changed, 55 insertions(+), 22 deletions(-) diff --git a/docs/sources/configure/options.md b/docs/sources/configure/options.md index ada98c32c..5b6211b03 100644 --- a/docs/sources/configure/options.md +++ b/docs/sources/configure/options.md @@ -757,6 +757,17 @@ It is disabled by default to avoid cardinality explosion. The `buckets` object allows overriding the bucket boundaries of diverse histograms. See [Overriding histogram buckets](#overriding-histogram-buckets) section for more details. +| YAML | Environment variable | Type | Default | +|-------------------------|------------------------------------------------------------|----------|-----------------------------| +| `histogram_aggregation` | `OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION` | `string` | `explicit_bucket_histogram` | + +Specifies the default aggregation to use for histogram instruments. + +Accepted values are: + +* `explicit_bucket_histogram` (default): use [Explicit Bucket Histogram Aggregation](https://opentelemetry.io/docs/specs/otel/metrics/sdk/#explicit-bucket-histogram-aggregation). +* `base2_exponential_bucket_histogram`: use [Base2 Exponential Bucket Histogram Aggregation](https://opentelemetry.io/docs/specs/otel/metrics/sdk/#base2-exponential-bucket-histogram-aggregation). + ### Overriding histogram buckets For both OpenTelemetry and Prometheus metrics exporters, you can override the histogram bucket @@ -800,14 +811,14 @@ conventions recommend a different set of bucket boundaries. ### Use native histograms and exponential histograms -For Prometheus [native histograms](https://prometheus.io/docs/concepts/metric_types/#histogram) are enabled if you have the `native-histograms` feature enabled. - -For OpenTelemetry you can use [exponential histograms](https://opentelemetry.io/docs/specs/otel/metrics/data-model/#exponentialhistogram) for the predefined histograms instead of defining the buckets manually. - -| YAML | Environment variable | Type | Default | -| ---------- | ------------------------------------------------------------------------- | ---- | ------- | -| `use_exponential_histograms` | `BEYLA_OTEL_USE_EXPONENTIAL_HISTOGRAMS` | `boolean` | `false` | +For Prometheus, [native histograms](https://prometheus.io/docs/concepts/metric_types/#histogram) are enabled if you +[enable the `native-histograms` feature in your Prometheus collector](https://prometheus.io/docs/prometheus/latest/feature_flags/#native-histograms). +For OpenTelemetry you can use [exponential histograms](https://opentelemetry.io/docs/specs/otel/metrics/data-model/#exponentialhistogram) +for the predefined histograms instead of defining the buckets manually. You need to set up the standard +[OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION](https://opentelemetry.io/docs/specs/otel/metrics/sdk_exporters/otlp/#additional-configuration) +environment variable. See the `histogram_aggregation` section in the [OTEL metrics exporter](#otel-metrics-exporter) section +for more information. ## OTEL traces exporter diff --git a/pkg/beyla/config.go b/pkg/beyla/config.go index 9805fc16d..4f3d49062 100644 --- a/pkg/beyla/config.go +++ b/pkg/beyla/config.go @@ -43,11 +43,12 @@ var defaultConfig = Config{ }, }, Metrics: otel.MetricsConfig{ - Protocol: otel.ProtocolUnset, - MetricsProtocol: otel.ProtocolUnset, - Interval: 5 * time.Second, - Buckets: otel.DefaultBuckets, - ReportersCacheLen: ReporterLRUSize, + Protocol: otel.ProtocolUnset, + MetricsProtocol: otel.ProtocolUnset, + Interval: 5 * time.Second, + Buckets: otel.DefaultBuckets, + ReportersCacheLen: ReporterLRUSize, + HistogramAggregation: otel.AggregationExplicit, }, Traces: otel.TracesConfig{ Protocol: otel.ProtocolUnset, diff --git a/pkg/beyla/config_test.go b/pkg/beyla/config_test.go index bdaa8e6c7..6be54c8c7 100644 --- a/pkg/beyla/config_test.go +++ b/pkg/beyla/config_test.go @@ -29,6 +29,7 @@ otel_metrics_export: endpoint: localhost:3030 buckets: duration_histogram: [0, 1, 2] + histogram_aggregation: base2_exponential_bucket_histogram prometheus_export: buckets: request_size_histogram: [0, 10, 20, 22] @@ -104,6 +105,7 @@ network: DurationHistogram: []float64{0, 1, 2}, RequestSizeHistogram: otel.DefaultBuckets.RequestSizeHistogram, }, + HistogramAggregation: "base2_exponential_bucket_histogram", }, Traces: otel.TracesConfig{ Protocol: otel.ProtocolUnset, diff --git a/pkg/internal/export/otel/metrics.go b/pkg/internal/export/otel/metrics.go index b90ddd590..6c5e01d19 100644 --- a/pkg/internal/export/otel/metrics.go +++ b/pkg/internal/export/otel/metrics.go @@ -39,6 +39,9 @@ const ( UsualPortGRPC = "4317" UsualPortHTTP = "4318" + + AggregationExplicit = "explicit_bucket_histogram" + AggregationExponential = "base2_exponential_bucket_histogram" ) type MetricsConfig struct { @@ -59,8 +62,8 @@ type MetricsConfig struct { ReportTarget bool `yaml:"report_target" env:"BEYLA_METRICS_REPORT_TARGET"` ReportPeerInfo bool `yaml:"report_peer" env:"BEYLA_METRICS_REPORT_PEER"` - Buckets Buckets `yaml:"buckets"` - UseExponentialHistograms bool `yaml:"use_exponential_histograms" env:"BEYLA_OTEL_USE_EXPONENTIAL_HISTOGRAMS"` + Buckets Buckets `yaml:"buckets"` + HistogramAggregation string `yaml:"histogram_aggregation" env:"OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION"` ReportersCacheLen int `yaml:"reporters_cache_len" env:"BEYLA_METRICS_REPORT_CACHE_LEN"` @@ -171,7 +174,9 @@ func newMetricsReporter(ctx context.Context, cfg *MetricsConfig, ctxInfo *global } func (mr *MetricsReporter) newMetricSet(service svc.ID) (*Metrics, error) { - mlog().Debug("creating new Metrics reporter", "service", service) + mlog := mlog().With("service", service) + mlog.Debug("creating new Metrics reporter") + useExponentialHistograms := isExponentialAggregation(mr.cfg, mlog) resources := otelResource(service) m := Metrics{ ctx: mr.ctx, @@ -179,13 +184,13 @@ func (mr *MetricsReporter) newMetricSet(service svc.ID) (*Metrics, error) { metric.WithResource(resources), metric.WithReader(metric.NewPeriodicReader(mr.exporter, metric.WithInterval(mr.cfg.Interval))), - metric.WithView(otelHistogramConfig(HTTPServerDuration, mr.cfg.Buckets.DurationHistogram, mr.cfg.UseExponentialHistograms)), - metric.WithView(otelHistogramConfig(HTTPClientDuration, mr.cfg.Buckets.DurationHistogram, mr.cfg.UseExponentialHistograms)), - metric.WithView(otelHistogramConfig(RPCServerDuration, mr.cfg.Buckets.DurationHistogram, mr.cfg.UseExponentialHistograms)), - metric.WithView(otelHistogramConfig(RPCClientDuration, mr.cfg.Buckets.DurationHistogram, mr.cfg.UseExponentialHistograms)), - metric.WithView(otelHistogramConfig(SQLClientDuration, mr.cfg.Buckets.DurationHistogram, mr.cfg.UseExponentialHistograms)), - metric.WithView(otelHistogramConfig(HTTPServerRequestSize, mr.cfg.Buckets.RequestSizeHistogram, mr.cfg.UseExponentialHistograms)), - metric.WithView(otelHistogramConfig(HTTPClientRequestSize, mr.cfg.Buckets.RequestSizeHistogram, mr.cfg.UseExponentialHistograms)), + metric.WithView(otelHistogramConfig(HTTPServerDuration, mr.cfg.Buckets.DurationHistogram, useExponentialHistograms)), + metric.WithView(otelHistogramConfig(HTTPClientDuration, mr.cfg.Buckets.DurationHistogram, useExponentialHistograms)), + metric.WithView(otelHistogramConfig(RPCServerDuration, mr.cfg.Buckets.DurationHistogram, useExponentialHistograms)), + metric.WithView(otelHistogramConfig(RPCClientDuration, mr.cfg.Buckets.DurationHistogram, useExponentialHistograms)), + metric.WithView(otelHistogramConfig(SQLClientDuration, mr.cfg.Buckets.DurationHistogram, useExponentialHistograms)), + metric.WithView(otelHistogramConfig(HTTPServerRequestSize, mr.cfg.Buckets.RequestSizeHistogram, useExponentialHistograms)), + metric.WithView(otelHistogramConfig(HTTPClientRequestSize, mr.cfg.Buckets.RequestSizeHistogram, useExponentialHistograms)), ), } // time units for HTTP and GRPC durations are in seconds, according to the OTEL specification: @@ -224,6 +229,20 @@ func (mr *MetricsReporter) newMetricSet(service svc.ID) (*Metrics, error) { return &m, nil } +func isExponentialAggregation(mc *MetricsConfig, mlog *slog.Logger) bool { + switch mc.HistogramAggregation { + case AggregationExponential: + return true + case AggregationExplicit: + // do nothing + default: + mlog.Warn("invalid value for histogram aggregation. Accepted values are: "+ + AggregationExponential+", "+AggregationExplicit+" (default). Using default", + "value", mc.HistogramAggregation) + } + return false +} + // TODO: restore as private func InstantiateMetricsExporter(ctx context.Context, cfg *MetricsConfig, log *slog.Logger) (metric.Exporter, error) { var err error From 32223dcbed5cac9ffa93fb95e8e9d49f43f00964 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 22 Feb 2024 10:07:28 +0100 Subject: [PATCH 14/46] Automatic update of offsets.json (#639) Co-authored-by: MattFrick --- pkg/internal/goexec/offsets.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/pkg/internal/goexec/offsets.json b/pkg/internal/goexec/offsets.json index 722a18bf2..a029f911b 100755 --- a/pkg/internal/goexec/offsets.json +++ b/pkg/internal/goexec/offsets.json @@ -118,7 +118,7 @@ "target": { "versions": { "oldest": "1.40.0", - "newest": "1.61.1" + "newest": "1.62.0" }, "offsets": [ { @@ -132,7 +132,7 @@ "s": { "versions": { "oldest": "1.40.0", - "newest": "1.61.1" + "newest": "1.62.0" }, "offsets": [ { @@ -146,7 +146,7 @@ "ctx": { "versions": { "oldest": "1.40.0", - "newest": "1.61.1" + "newest": "1.62.0" }, "offsets": [ { @@ -158,7 +158,7 @@ "method": { "versions": { "oldest": "1.40.0", - "newest": "1.61.1" + "newest": "1.62.0" }, "offsets": [ { @@ -170,7 +170,7 @@ "st": { "versions": { "oldest": "1.40.0", - "newest": "1.61.1" + "newest": "1.62.0" }, "offsets": [ { @@ -184,7 +184,7 @@ "nextID": { "versions": { "oldest": "1.40.0", - "newest": "1.61.1" + "newest": "1.62.0" }, "offsets": [ { @@ -226,7 +226,7 @@ "peer": { "versions": { "oldest": "1.60.0", - "newest": "1.61.1" + "newest": "1.62.0" }, "offsets": [ { @@ -252,7 +252,7 @@ "Addr": { "versions": { "oldest": "1.60.0", - "newest": "1.61.1" + "newest": "1.62.0" }, "offsets": [ { @@ -264,7 +264,7 @@ "LocalAddr": { "versions": { "oldest": "1.60.0", - "newest": "1.61.1" + "newest": "1.62.0" }, "offsets": [ { From a901739014dd52b9e34c22ee41df402d45cb2171 Mon Sep 17 00:00:00 2001 From: Nikola Grcevski <6207777+grcevski@users.noreply.github.com> Date: Thu, 22 Feb 2024 11:47:03 -0500 Subject: [PATCH 15/46] Fix missing go_trace_map cleanup (#638) --- bpf/go_common.h | 4 +--- bpf/go_grpc.c | 1 + bpf/go_nethttp.c | 7 ++++--- pkg/internal/ebpf/grpc/bpf_bpfel_arm64.o | Bin 110464 -> 110600 bytes pkg/internal/ebpf/grpc/bpf_bpfel_x86.o | Bin 111976 -> 112112 bytes .../ebpf/grpc/bpf_debug_bpfel_arm64.o | Bin 124560 -> 124696 bytes pkg/internal/ebpf/grpc/bpf_debug_bpfel_x86.o | Bin 126032 -> 126168 bytes pkg/internal/ebpf/grpc/bpf_tp_bpfel_arm64.o | Bin 131400 -> 131536 bytes pkg/internal/ebpf/grpc/bpf_tp_bpfel_x86.o | Bin 132904 -> 133048 bytes .../ebpf/grpc/bpf_tp_debug_bpfel_arm64.o | Bin 153608 -> 153744 bytes .../ebpf/grpc/bpf_tp_debug_bpfel_x86.o | Bin 155072 -> 155208 bytes pkg/internal/ebpf/nethttp/bpf_bpfel_arm64.o | Bin 164288 -> 164520 bytes pkg/internal/ebpf/nethttp/bpf_bpfel_x86.o | Bin 165760 -> 165992 bytes .../ebpf/nethttp/bpf_debug_bpfel_arm64.o | Bin 181200 -> 181432 bytes .../ebpf/nethttp/bpf_debug_bpfel_x86.o | Bin 182664 -> 182904 bytes .../ebpf/nethttp/bpf_tp_bpfel_arm64.o | Bin 189840 -> 190080 bytes pkg/internal/ebpf/nethttp/bpf_tp_bpfel_x86.o | Bin 191304 -> 191536 bytes .../ebpf/nethttp/bpf_tp_debug_bpfel_arm64.o | Bin 212736 -> 212976 bytes .../ebpf/nethttp/bpf_tp_debug_bpfel_x86.o | Bin 214200 -> 214432 bytes pkg/internal/netolly/ebpf/net_bpfel_arm64.go | 1 + pkg/internal/netolly/ebpf/net_bpfel_x86.go | 1 + test/integration/suites_test.go | 1 + 22 files changed, 9 insertions(+), 6 deletions(-) diff --git a/bpf/go_common.h b/bpf/go_common.h index 5f25d82b4..3ba4eee09 100644 --- a/bpf/go_common.h +++ b/bpf/go_common.h @@ -155,7 +155,6 @@ static __always_inline void server_trace_parent(void *goroutine_addr, tp_info_t static __always_inline u8 client_trace_parent(void *goroutine_addr, tp_info_t *tp_i, void *req_header) { // Get traceparent from the Request.Header u8 found_trace_id = 0; - u8 trace_id_exists = 0; // May get overriden when decoding existing traceparent or finding a server span, but otherwise we set sample ON tp_i->flags = 1; @@ -164,7 +163,6 @@ static __always_inline u8 client_trace_parent(void *goroutine_addr, tp_info_t *t void *traceparent_ptr = extract_traceparent_from_req_headers(req_header); if (traceparent_ptr != NULL) { unsigned char buf[TP_MAX_VAL_LENGTH]; - trace_id_exists = 1; long res = bpf_probe_read(buf, sizeof(buf), traceparent_ptr); if (res < 0) { bpf_dbg_printk("can't copy traceparent header"); @@ -194,7 +192,7 @@ static __always_inline u8 client_trace_parent(void *goroutine_addr, tp_info_t *t urand_bytes(tp_i->span_id, SPAN_ID_SIZE_BYTES); } - return trace_id_exists; + return found_trace_id; } diff --git a/bpf/go_grpc.c b/bpf/go_grpc.c index ef89abb14..beb354f95 100644 --- a/bpf/go_grpc.c +++ b/bpf/go_grpc.c @@ -236,6 +236,7 @@ int uprobe_server_handleStream_return(struct pt_regs *ctx) { done: bpf_map_delete_elem(&ongoing_grpc_server_requests, &goroutine_addr); bpf_map_delete_elem(&ongoing_grpc_request_status, &goroutine_addr); + bpf_map_delete_elem(&go_trace_map, &goroutine_addr); return 0; } diff --git a/bpf/go_nethttp.c b/bpf/go_nethttp.c index 6556800b7..9ae5cde77 100644 --- a/bpf/go_nethttp.c +++ b/bpf/go_nethttp.c @@ -211,6 +211,7 @@ static __always_inline int writeHeaderHelper(struct pt_regs *ctx, u64 req_offset done: bpf_map_delete_elem(&ongoing_http_server_requests, &goroutine_addr); + bpf_map_delete_elem(&go_trace_map, &goroutine_addr); return 0; } @@ -278,7 +279,7 @@ static __always_inline void roundTripStartHelper(struct pt_regs *ctx) { bpf_map_update_elem(&ongoing_http_client_requests_data, &goroutine_addr, &trace, BPF_ANY); #ifndef NO_HEADER_PROPAGATION - if (!existing_tp) { + //if (!existing_tp) { void *headers_ptr = 0; bpf_probe_read(&headers_ptr, sizeof(headers_ptr), (void*)(req + req_header_ptr_pos)); bpf_dbg_printk("goroutine_addr %lx, req ptr %llx, headers_ptr %llx", goroutine_addr, req, headers_ptr); @@ -286,7 +287,7 @@ static __always_inline void roundTripStartHelper(struct pt_regs *ctx) { if (headers_ptr) { bpf_map_update_elem(&header_req_map, &headers_ptr, &goroutine_addr, BPF_ANY); } - } + //} #endif } @@ -542,7 +543,7 @@ int uprobe_http2FramerWriteHeaders_returns(struct pt_regs *ctx) { bpf_probe_read(&n, sizeof(n), (void *)(w_ptr + 40)); bpf_probe_read(&cap, sizeof(cap), (void *)(w_ptr + 24)); - bpf_dbg_printk("Found f_info, this is the place to write to w = %llx, buf=%llx, n=%d, size=%d", w_ptr, buf_arr, n, cap); + bpf_dbg_printk("Found f_info, this is the place to write to w = %llx, buf=%llx, n=%lld, size=%lld", w_ptr, buf_arr, n, cap); if (buf_arr && n < (cap - HTTP2_ENCODED_HEADER_LEN)) { uint8_t tp_str[TP_MAX_VAL_LENGTH]; diff --git a/pkg/internal/ebpf/grpc/bpf_bpfel_arm64.o b/pkg/internal/ebpf/grpc/bpf_bpfel_arm64.o index 60c7c48fed4dad10c0b9471c8f2a6e581a211fd6..5b4f9a6d04b59aefe4de8163190ee1184c19415b 100644 GIT binary patch delta 9324 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 F{t3M~1JnQj diff --git a/pkg/internal/ebpf/grpc/bpf_bpfel_x86.o b/pkg/internal/ebpf/grpc/bpf_bpfel_x86.o index 4a3325f549ff683726770f08450cc144e4cda6b3..4561876e19e10855e07419a412466bfe83a14b06 100644 GIT binary patch delta 9648 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 delta 9531 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 delta 10447 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 K6#de9nf%`mOUL#A diff --git a/pkg/internal/ebpf/grpc/bpf_debug_bpfel_x86.o b/pkg/internal/ebpf/grpc/bpf_debug_bpfel_x86.o index 6ba7254fdb6db9f464ffe944ed907a25a426fcf8..27cc67ca59be3a0dabfa340a52489977ff9ec933 100644 GIT binary patch delta 10608 zcmeI1X;@TOn#a$nqJUCC2qJ}u6rh4=0;F9~K?}u*TUw0^Br#$X0;8Z5d-i+oSuRb@LCv2BRVK@-L;Y&H%UJD?-QUxSqjt+reG#so1Eugq#0A;qCSOc~ z%#t^Kv9mw3YZnU#XytReXg!O%<-aZkh0uHOV@iW<>A3AQ4Z-(9{}wt>h=4rkNw_-U zqHqCr(jHtFS(ig!(+16*Ak(x}b0hM9F!Krh1?;AT5W+SXKM^)V2M@um4|D+jdP5I` z&M;g;WV0>@=R!x59U1*nyD_(a{xHA{SP_DU<7XbU9l22IB3vQ3D3rpUiF-LxE`z=c zx*GavPMZaOmh}keHQLg7{X+&pd2oG+Yp51p6c@eTj1xK%7PU2_v>}?ol&7%UplrmXun8$gb_%5wUMUVO-e-&d7q1VBKD>WcdwQe9v#XLeF>6 z<^{%+@W9cGnS!cafNL!@rm!`hFteiE?cyrM(VTClnh!z>8H4U5uY~T++6Fz4v^ML_ z1>>l{DLf59+Kua3)*k59tP7xDU|kOVBI|1CS4nH(TcRQ%L;-q+gP}6DtSvL!$KKmU z+?p-xrchi8R<3SnD_0M+kt^;6xHy>k0Wj$rHNC^Gt*WL;XJhrqe`2fRYZk~%-zzo7 z#Ff4+5szj1wgtwREJx|b(7PkF6Wi9oK5Kh_S*oqw9s~W>_By#voAp+lT%@hU@7vmD z{Jx{Thu@vrpYS_gyN%x}Ep|toysBm4cf2-hN2+{Ldu2ybbX9@Tv``lb|%U1wdFgL?&>ke%%y?j-8)AczbnDf3)YF+ z=R1?)mvV&PAp(U>%0ylK-xat4#`zd(?;$dYpX|v{mpGX}fBZ;(yJ)Q|x=6 z*(&&)_HAua`c<}`<5=D2nmJmr`uTCTwtiP)A58e-VfK8%DcAbN+=iG*33Y7!nqyt` zB%#(a`_xfZ`WDZGZQm)ZKUmcKix-p>0S(IX`l@Io&h_3Q-ArrZ#dF_YXbRK)^6Az!@&I}UJYCB;uuH#_&BpQR{!ef z|H+SCCE7jv`z8!5F=`PS&Dl<5wyO773Dw+@gjmmMoA)OT-O3T-I6(umRqm%?bU|0j z*1>Utp}*8_?@yE$wD<$V`_N#ekc?}fp@eYb?qN;#Ty52Xh*&oiZMG@6as846f*aQr z-=PD;?eZJ##@kWyN6q0I-q$&woFa&R?oxDbMc+MNEAk~o4^>R#75%7I^xTNS-a(LP0gpy(z=|Jl^qki)S({;t@?0&0@ku+RnC;=|p0#44s_MGsz} zy?MBMNVZ~{pdC9L6`ikGrno!uo27kwIBMKN#rvG1Hz>MB(MJ{i8%1NeI1=Uki(+Y2 zbQmoa+>W0Vd#8mR_HFJC9i!Oi(!|Ya`z!Wgiq19lU}FT#R2+qhep1opie9J19*xSX zRxEoJ{cno?qoO}o^xu3-kM59NmdsxE_?)?gvlq=N75Y!XGFCfqG|)G+K0*45-#MAB zee)mD+PV*8eFOgylpMX~nly$pwQW0J6Ft}r>eCZtqId88=9EJ2EfTw%DVX#K5Ng1c z*ay=w^^?4gc-z3I@;mq~@Y2~GybF9x;XU9U1s(o<;Q1!&KPJj>`FfqRw;Xww*YU1h z6yrFxAJgV{IY`iG7iG*;Aqo}Xt)qna0sfeJZ1oim10Q7WI|h^CyF%0}>;yOYaWnJO zF~TdH4MN;xLj^K$o<)fm7gXRj;$|!v3de!nV5;!%;P3pAO(Zja1s;9eCUO0=}Rw6hMp^SOleN-WvDEH$E=7-=9X|aiFKdxndnf%vnqLH}~e0Q5oG+FG0 zp*IZ8mI2%!+@f#}n7$8Ciz$Oq;9%zTu|f>^&L+YXP64MezX^Z0o9Gcgp3FS-D?|wS z2`ywpL@sKGHMBzE-r!1w`-7|X%^5O^yAMNv-HVXCSD0PYGn?Iudi(jCnX3^$qMKc` z_{DEyJ_dh?3k}D4nc5#TPKa=~T?Cu#Z8wB*ghWJ$>}?k==851@$##(eZh?Le!>aQ{ zEJn;t;H=3)6mWd2!o`Z;34fU%mm7@s$Bo7inTEHPBUl+!gQ>>BXyx30SN5qRSO_f}6oq zp-J#NYVG1Cn0jP6cmnNN<2pDS9L8)l$ffw5@TY;jRt99q;0X29BgN=qzYOxgQ~@g# zv;Q z9zV`yw#Gy;m@0G?6-r!Y7o`fvgI$THzdIJ`IVF<6|%42B!A#0J>WY&Uk!#3KWQ=y@Imv!A##ID>gH*m2P=@`zEs7=a92 z*X^Q!BNS4GZJ5ECb+Gd$W^m>s;4%0-f+@qO0P$#Wy~5;gP}m7>W)8(Ta|WXp67N6N zco+;JVF4l-29;gRGvN>K79iZr%fR=!0z`(wIpADolw*X+ia!MYV&-#HUe5qgCGq}K zfmW#I2%WK^3ULRBM&_?W&?9L9#zre2HVTw(3*w1`s5tW(u;XyRosZ((fc8gWbbUjB z+4V@@eJbAn$m0Q`fHN356{~F{YRdd5*wqvu%9vjzJ{!>fC~OYQ{kdof`;Wk%mSc7; zRq!&{S=`aHx4`!;>*&c_UKnyFm>%WsLZdB zK75T$lydwx!1*iC0QUb3cD`&A72ujcA@nXYWLjV(mOp1j-ENQUB;`1L(o7jQWg%=) z!BSxFVdQ)O9MVOKU^I(LlGDKhrAT8Q3XaBz$Y9PVKXzUo<|_R?WSejT=D73Nps_h- z2BKkuRnC0(4E;Z6$~W(Q3ih0CQefB^#oYjhyQILVFu3zfe2K+?Om1iWlRVig+^TjS z+Yjis^JH9mb`^fvRkkNLv#V-n{r-F2SWx~xZJSH}#qTntMbJgBVSKZx^arZ4cqSD0PT>W@CyfbBG3oJA)gU zjrU}Q-syhXW5yh$byhfptE-uJ*GO=sL%5mulm9h`$YtJ*FC+2W9iogm2uA~FtwWSE zM-%U@d-{I)y7YdB#NiDNksM)W{<;Ud;g1|5P2pZ(4|DXx$h;AS`S}a{{KbC$azB5C z$zDMPQUTR|5o-N1Xz=ql`uWfM`CI(_ZGQfn24nWIDiGYw>;bEVVa%4_#cb?0kE8n) z?g?&Weh@trecd5im{)_7&pSjL^FHu^ix_iwjK=D7o(wGx5ljY*ov2wDE8jUp26HiZ ztOyi&;H{&~Gh`UHN5#y?;isKTg&$Wk8%ILSr&Y|xk#He)BH$jBAsOOeI0yq(;5IVs z+fz@ODpLYkKR8tm>uziSrlDXAFp4+t5fmJt@181O4BSZCtq*%Z_UQfy2ESukpeVpV zqj<)Pm8Z{#&-+7;c>u10ue~w#s0?#o)P)Yf>VcRJz>SJuJrEmpYB2wwN%>jlU+X+< zoqvN}MtNSdvCX3W0DJ-!kIW1d9z>wZ8i$L4;24w19|3=!!W6$iVe%J))x$=)!gScE zFc{;_I&9Q(1naO-uP_}p8o^W{{s(3Zgwoa@%iZWpZu2I0KCZ@ z-{N8Ru-vfux7xqZZ1Zs~g-Z9OT_JJAXjnV3qM zd(uqg!Rp3rEW5cK?}TwO0B5k@ctTW$FcS>1XSF=(EIlQ^t)s)GfaM4Fx3dEn{O6I;M zzJ#kn;mhD!g(-fE!dJkqX#5~h`W9Si3S;H)iph$BGALE}Dww|bQJ@U2;i4~e6s!u; z2RW6?dUf!1$SQ^Z3eMnXXr{;7N1vA{SQ*miC5u0UpwCMdQw49j4Q#IveT<=CrKfKv zDmN-j`O&wNc0YDEg1%+68z5YXbt!9Pr=V^Zs#Z*O@YXAQ8r-Dt8E}ijXTc(ye$1lJ=^L8lnY*tmCP}VQMhvrdklj?S+i*%o z$dJs@9dYLAM^4Mp;jbyCN_h9`w@%AxwkuMfbVl~Cd-{z0TevOetUmved_flL-(HeK zIvw;l=_Pba)_39N zOrC94YN7t^RXN0#h9a)X5zf~V&C0&3FTEy*I14IGOw$hmWu@MF4fUD)n4WT7_Wds( Chz#2R delta 10496 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 tc?$zZ?gcp(d6!*4liEs+eHY}l{{`G<{dNEV diff --git a/pkg/internal/ebpf/grpc/bpf_tp_bpfel_arm64.o b/pkg/internal/ebpf/grpc/bpf_tp_bpfel_arm64.o index ff029531b3dd7a9bf04ded87058524f80a224e0c..ff2041627a1ada8c01355eed1fcb4e500875ede0 100644 GIT binary patch delta 13925 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 diff --git a/pkg/internal/ebpf/grpc/bpf_tp_bpfel_x86.o b/pkg/internal/ebpf/grpc/bpf_tp_bpfel_x86.o index fd017589b3cfb7a11eb0fe6100b54ff04a722e4c..730ab44d9a1362b40d17a277af9c86a254f1b8cb 100644 GIT binary patch delta 14283 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 delta 14358 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 E2Mz{fYybcN diff --git a/pkg/internal/ebpf/grpc/bpf_tp_debug_bpfel_arm64.o b/pkg/internal/ebpf/grpc/bpf_tp_debug_bpfel_arm64.o index f2e225fb905564bb97893cd3b728e6479d03e3a7..5ee1c4770214e69f3c6d16344c735e60d802c7d6 100644 GIT binary patch delta 15841 zcmeI3YjhM*8OnT zx@S>U`?vQ#`#kELQ*|m$u-RSzoVz|xk1KmFKQ2W}GbW|%H9AwaYwxwxrT!GHiI%#| zm?-VhmR}8o`3ruLGVg^-B4a3tbr$ML-tBldjAmIy%zeLPMHx|Cf-xFoY& z3^~oXXVu72;~@EPe2C-UMb5W!#7=-+GrnCh^2UGXHIcn0krxh5`p+QDv#5 z{tbg%3)zP&r8<@akk>&@AteH>H*Q%yGJYzc0a_&2G@PC`cCJqL?1qNg7l7Z3#*nCRv2KR+_hq4f&_Ts5-_#XpehLvN5aQNUs312M z2<<+WH$!e@c?;xSEI$eP5XA&kPAsRUR#^4?QZE>d!3FZ%nXjEh6n3#{!yOqxxWSSxOIzU)7obX@oqY0+q~{k z^wgAJB~VYzeqgj^ULZs+T3>8D_`pvdy7!dMKr`Oh_~1Tx&VPvd>)=DrXyc6=f4xuo zw8Li$2HbdKLcP_4lk|Z-)E`%UdAtAh~7p z`Wv+2YGV~l}1np3i2aFjOFxTc|H3QapoHTl*c_CbCT z2Q{h^M=k3Ekn14#!?hhp5c0T|%QiltTVnw=-Z_$r`1_+X(8DbykAH|BYe{RI6Xl@^ z@58ZXv=BwcswXc%Q};f(09})^)r9=q)?^t(B%wRtQ{3|I)>)d&CgOzHjEP=kjCp#7 zR@8F$)7cdEv1hKcn(Xrmu@?&#HNO(_VU`1sPm*km*oIr(GJo4`9MG;u%Lm)h7e&Sw zJ0{^gd}lV!Gk0doQUg&~|#@#z-SoJ`*5okwI%aNVPR&1Qw_5K*X@d<4xo#X_} zpLcL28Dmc0!}>JHhe&SuL-R_i{^H#URP-IsA0KBg9>^lTo@nLGAV5N&I$XGBqA^^S z=pmn$RWB4pp%O2&W#jxo+YPe&0&u+;6CUIArC&qe_0mXfx8ZqtFys+0w`O`TlPkr5 z4YXV!;o?CN;wiMY4A(P;_DZ@o&B(<0QlkXtiN<1_PZ{^%yxiD~^Csgpod0Nay^=gP zw?>F)R56IW^Rk85&T+>;|69oIIOeeaG~@};?;t(OD}lTdvTz7N-ADczkY^f~?a9uZ z4J(p-Qp{tS23{r0-!WAF)^3YO6q- zFJ3JJWWc6auVb z?N{vexZhaVo;4neg4oZdKe6d^X8W#q0#*U`T^kiJZh9@pU&iXca<&>~JKK{H+1_Hd z8}@hR5a%CukDwI0pLrIu-Hu-{^G!3}KbRyJ=MAhs!}$&{+hgT>!g2dKhC(kj(TzUbZAXB z$(aw{&umx!J>$XGbG09h7hccJ%)8eL!!K@P4zqoCR~bLPo*N%zEx*!<7GvCj+(93+ zHkGU3UTfTRAjdOytqkePfZAtlK9D@~VrYH_B^G*t1~KUuCB!Snn+J2_-)HRzXeoVfXoqqKCEX_>wt%%` z?=vPI%9%Zf)uUN`T?DUYwkO|)2>Y`UeAsyIP;S=etR2r$|HW)qDdm^OKMv)L8TU)8 zPW*l>%9-ukb1So5c+i;rMzZ#xas3;kHN)8W#-u4U1u4<`HC9SOWZ;VDkxUslPqsv< zzmR3}zs!gaB{(x6ZEP74N_V7eMseuIf#mZ%^(T@C$2Mbe$E4w}Se1z(?Eyu8Pmw<{ zUhBwC{YufCQRKv+@vn|^{OR;)5+a69xr#hik*6y13`H(iufjP&9v5z>4^!mx6?x2EywcKnz!MZZXqZ&u`0iu{|F7v6qa8*uZY z+izX`^JR-}TwE>8V;Ndn%U#FjXf5x*Gs|%L*W-o#aacO1iay>1 zb}a1UM(~EkeY^$Sv9yo3f@7|goFxl>8j8E{_JoT}yCBdSd;kmNBdyv3?Sesm=bk80 zl`O<3(5;#V-%ymOVdiWi2p(A?gdg_7ZP>3U90zV@-Ua*cJy^dLc7u;ba3}MJ(}Z8R z+lA<5Mf`Lj+$T`1*DA1pxD%CDI31h;rV7u3z5fAS8+g zqe*naQ$}%c!l8!w9a$k=&|ZTw*c@d340cbqE*c}ai8%>Nq~~j0gqUZ8NA>99sLg&T zhC$J3E5IYc-3m_!(^m?r00o!|b}_#UF8EFtaSG>y3z>5-!fRPCdL)9&nElJ(;5ma9 zvSJf>6rP|#g@=Lb6&?w0WVZTGh^7c`X8s=WhQ>vSwg`L3V!yB*I@w{w4D7NJqeOQ^ zh92gNVfT2^75GL#JyH*j&xjJP2##ak0ejN0DB)#(7d$mDN)&@{DaHN22qU{cKBtsQ zg%I<>Q!rgCIfLE8D#h-Gy(WSK%uUGeE=R?f?fmp{gettg6b%SQi4d_LiepfuH9(PO zIeZHq+88B{Dm(;SgS9tnCSIj*#B4$V3P*z*nCFqb3Dc1I0r0>bLWC4{gFC@~s?mFJ za5hDWUMOxs;rhiwT(T7PPVeIqa2&JUBCle1!(JG{#mpsB(IZvp;fVYd>6m|10XtQ( z!va)ba1FXx;W%)RSuQlS=mCY@;D!ipWX3`x+yV3mvt8cNbidW*CJIa{z@UQzRp>Z4 ze{z)QQ8*9Wm|@vHmtc^VMu}!-J7630DA+xh;ubRB3XU(25~m}$$Ips~;E+^-Tfp25 zo?00t;xesUU=Pv^W_yqpgVi4NDRvs9Wf5G#Y!6a@H7o3UUZXJG^B}X}RIk|So;O8s zGqZiq+avOy22+KLFyoSzM)^e#E9?RUo?U8-;=nX0?J<#|FpY^qW_wH&D@ z)|kNkuY!UKybU$VzCB7*E1U`TW?S|rU|(DtB?=Y35?rkCBCt>4JaC!9@nCv2!0IlO zoc~uqAx>Zg!-Xoc4(#lVlCR;iVh$mOoJPTHzYW|UT+F-$?EEZBR4^Z*0=|wCmCWB! zydEs+%sH21HuPdi2g~_C9f}L_nWl*yh^K+u6efGS!ftRU^J5gyg<5D<1KtFC;vB*i z!CvOiVUJIAhzt$i(5Qt`v#<<%9io^Wh^Kqam+#P0&mq|ZTNT@u5)U!Igw6j5$r%no z8+VG65Q~-;I^^5deCQ~V{#?ui(ToZ)F9AEBcbwhBdmP~&mOa|;2>0l3;hz|CgnRTY za8ifEFRD4cwHvs2pBZFhCP7w39;rhIp(d z3YiasQ*dXCnZG3a30?S@N0ggG@79K9F2pl4{WRXaSib{I?@j^cSIukg)}9#Snv1ST z)C7ivEN(S89wQ6GK=LN=xfoe_Hk+eXXzB5Gtt(jVGp~U<94#0Tt=`Vf(Hd+vcdF4s z;b^BwZP!iUc2ie;X?j*_Z%0$-rq-G()@!Ln#}LqsXw7h;kzsQi^Y|-a--NlvEQj=G zj@I9;*G5EXcbeDuwe+mV;N)%8MZMc9=a1m{t-5Gn*5|c8?$=_Seye1RLre@R?W*}0 zfXkhtfq4ViS?v^U%(S!&sd0*Sh5Lg;%yMGXIz;&9RP7z?foOnm;t!uSMH2*J=IlkQ~@)E4p zWM6=n-vdrjsPIs*k9i0DGeamW!d@9+uZpk-BJ4qn{elXl0vaP6nj!+UN7zFV_R|se z?g)ENguPcXo>g`QT!~f>*e#4>w(VYK`6}6g?pJsS_$c!?=%KvRPSMHiU4S0_%qhB= zFCp&6{U-Kf0Ih){Sl>(9?9g1csr~>r}m@~x8x?jtWX8DTywTb7*$9p*n#sDL~ zAE;o5x#fOsoxk83$QjYXi@`-UJC!njTY*NEM~g~kIR`7EMRkOK0Bkps_Qeef)4sTg z+1?lPKG`owK^x-+X{tCM>ZszO~dj{UX2$xz=6nlph|k z=*vVE8MzQ*b#%BQH-eot(PvjA5FMVFvLax+B75MUa4(i1grRsJQ~n3A!bpbK$VFHa zAC3-B%*kL+Lv*-ebHURaqrM@B6otv?}-*Y%xz>3!5^=;R8jY0@KIEp*?J+1mS1A=SeA+WUWFgNyM#MP zUxEg@V*KGAnghj*uf!iwSoS z+++&kO!?DbAD8Ek5zVZ)mogN@h@;H=z}~Sj;cXmo9{99k_kg>Z{|vjQI7Y;&J?D!F z@4jsNX|_*T3jg`jW8{}_s*&uv@)-Hi8d{l1e+G_XX2t3IwDpy-1ng{&C?gb62H3tkaw2uagda4! zkU#kZZm(T%%ysD9kNR#;8raqIU*Ddwusgqt36JO1lpmv~5%r{o*xbatiR}2Th<*2< zM)Kn`9xjyOpKutH=n}omH&r3S5Lb9telIvV!xi3@ZwGtwT;Yka51dfo3QvrWz|#v| z;Y~U5RIt6pB(Cs7QO5V1>O-l5nH)T@)1H$mIOBS}zE5_A_nbD@u)PxYWS>j^Ihg$G zz)90xBFOee;!>CV`w7`8nZ0*t1N?g_a+ymsv#0wPSTxIBqD|qc;1IKw7k`*g?D4SM zBX>6CuW*TOwi8bU_eSIwx@?(WkV8Bi;w*)Dgt*crDwyp8D>Qh0D;5AWUh&Ma&m0Imm9-;Kg6^pJ-! z+L-4NH@F180!zCcuZ{UN*z>lc0t!zCcY;s(2Vjuhh)=c$@XAUGa5gx#1MPP7aUz(u z>9&0k7+-57UkLxi5I$HcJP1ttb@IOn_Mz=~Q&l)0Tm|;q4o)a)pr95%h71ELg$Qs4 zyMnaSw<|yu#9sWY3N$Hps&GhQs&Hq7f3E|RkOEQ*sK&JUC$fl-Gr=Yvs)Feie&%+WWa$ELdlRMK7o z&M0#W{F8hw*m<>E1eosz=PgHr!L*WYzgZ**PbFH+ij#1NFE^(?t>ybyO~X1+;})F} z!FrivtMQ23fy(u>3Y!GZLm)3R*$2a(r*I0mkogwalbcalg+1UZi~WKE79wD^;xHHv z0p>?3!1HbqR5%~p$Sf;(uUj-TzXkt1bVZwD9}Ig);S_MEWDHDM!yxV-JN$$I&ZD?J z{jC-czXjdhfgWHcdjjkk3de)dx%-aKjRXonb%Q#hg)>}6~%c_^e8+L+^cXJ*c)qA_y+{YbYYq? z=ih;Vac)tp@OfaL!V|$|HuEj@SJ(;!NP|Nav#fCK$yvwe%~@APCJ54-)Hp7>|O+fBU;W`KQ5N%>MoE0#Ej%#jLoQ6h168%)cXk9&fnJa#XjuEiZeyTAQKmqfhAbtky#^bM$`E@GbfVHn8 z`zde%tru+fu7H0B8lZ48xJuz9a5eK(_$T0T8q_fVDd0^M;Doh1vN;9Z&Kby_4DMv! zNdBEzK(M(Wf8t~?eGwt10^BH|Sm6{feIc>!$>1_Q*HY|5hPaPhf_6XTV5chPRp#2A z+F$i?mzgV`)rNZBxXf~(-^>j%S3Ro@j(-Xwr79eAaJ*q2dsa)=Q)Zigc~*PNW1H#M zbWWLLf~^YY;GoqUA!RlMB#aIjF`dQ-(o!?CSxeR(3(bkm+EBM0W`nu7SxX;&-xABq z{@Gm~km|D>n*vHP*W!=aR+Vj6fnFt-r&^CSYo=4HF|U77yGv^}yI$0iwO;e@FKVMx zyk40-d|Kfl(IMK+l2&*Xn)6%X)tC}?kiwradC9BM+zhkUXdWZyUh@m0HZ!FSdFV$z zYFdc-MtLgC#V~6@bA21~ber4Sv>95D`7J1geiNdmo#EPKz63M@Zh14A#?Ui z2w7;}123(rb>mCgthn>a(0)o8@+`y$*geFH6gfXgMO{egJ=O<=nR-||7hz@|*3z|L z>-C4VXEd$JjPJlTWWLmaGP+y8=+I_4{PY(aN>qjir%r{P;5_bEvM1pbRQMcllfvZR zt#C5f%RLTJekUnZIECg{nWCTo)e5IlfK=o}q5y+&q92J-A|`+OQ5YqgYxs5%55cKH z;RJ9ouZ@;Jp0D&1CrXyW`iYaxF;E_ju=i$=wXZ_-gCLu!LiGC`l|u?sJo^1k*iKza zzo!W+z~1cEm*3GY?zfok$FNzJk)}r$xKQB{;K>S)1eYp|pA?94g$IHw74F}zk&7Q?@W|Px3Kl#zqGm}PyHCFlDcKBa})KtSWlj>Pq*IuLzaG< zr&&?8wJyun&quhDKDXnoPYu(vHBTX4?I}?aC(U<<>p%B2DXLFeFU-+fJf3P^XUMIq z)j3xGz2>Q+^#F-<;O}w(tr43?%!pFgrBe-1Qldvz1;97-0f&F2HyYMyc{bD^{d*1w@Sie#?b#wFt zeL?F36ZG^e{W%&c|B0Co?vd7M@@Rp{B)k4^PfaSsbv5F delta 15553 zcmeI3d3;n=mdEd_C8-LjP$7h>>Q5VnL{9=d z2`!Q%AD8FV9G|D(UTCNle)#Q!+y`>4qJB`B>>3X-AD=JqxmjIZnG$!v$R0Hr8o7c6 z>TzGXax1PL^|~)oDb%G@f8TLa;YsN*a^8Y_K0YTPPs81h&zJa6q-K21arEh=qs~dA z8u;-cFSC=bve#|UDeCdcvC17(H%o+7eanBRGP3a(|BH$;T77Y`h)}n)bpQPR=s5J;=tkG(v5JpE_=gJdU_4ZiYljMD3(Gqp z*Rs3|@&T52Lq5%NGvv=%J`VXSmQO(bj^&e(ue00&*_~jNb!w%YB+%VrQL?&84TCM-xUtKgQC|!qUqMW_{#A=H7f|E+Ayh=%OViN9jZ0qn0zKB4S3Aq8lQhH zox&b{eYw%(e9X?HXahCB6!ICC{g6K=S)INQL*2M;-$NYGtViQt-aucBQl0e^aJ{8I z9oH50>3XSts}Nsf(XS;RNvjl8J@Na$0W1NSsEhRYINa7p*PA{iK@q#}p+(os4UYx&&86eGJz<>P}oos>g9%s(y*!6PyHGnEa^>&QDo{piSWN=xw~l65 zetJax^k_zO{G)pGsAI@SRT!bVj%8YIe^kACs(%LNuvpCwEo4P{k@*PodylFcj%7H1 zWOb|h{i%dltQI1rQumKK!;ZJ9myTsRf6dx+vtWW^>f8`PA*lGkhMuQO=K?Z4$GY?LKBR+YV;4Va?2~od0X) z6U_Y{6O@9pDTkQ{P5t*%u>*7Au#olFIp34a=3F_dt~!xv`SdaMxf297exrKR$&5a|HtGIR{E{U`ZlYcsSOD!kY|@{6@K$DX z7+zNEPi87D>L({N)BcrhF-dOJ?*;)_U0M5p_;WW}m&Rjc0A!W_5c@ zhU;fT?MQ_>Ts_|6nI8SP5EBp=3%$4lADS!q=%WPaN%lh?0yzyinjxEuZ8Mgh;n35< z*a10LO*`drO@gKmG~RHmYw9hhhUZO%2Fa0*{I^54V$F$!VjkxuV=2q2kXIrg#mvWN zg?jK*dMr`75hZFMqM#CDqk833X7nqp9Rw|&_!egKVO$tu|7{3AqkeQcvwuBn$8gkB%x0B3wy5#%W#n9E^>}tmc*3ZRIXvT- z&BAA@tKah|v(>Hd4ObSZhu@o!m!oG8A{BRRgnCNFb(|sU`Y9~a8aG4I->&Ag#@I<) z+Bm&6#THkF;?Rw~$>$LDCz1=Fa`myZ69#THDicoHCnfo1Nq$ZJ@@#tiA0*95N&eyq zHThgW-=8Jbcar?GBs*#Q!epdNlq4rea(_u4D#^K$JYAAY3|VbF7ae!Mq+ch=PpFs9 zd0fv)nw_fhfoI@;N%OWOzn(}nH0s%+=6&GtwMy2tv_i7=GfDrQB#W&*K9Q1~CdtDj zIZu+ihxO#W!_W`byKJ`Pl#<-zv|Q5vR{aIl-6CmfXpiFRJ}2q-N^+wlpOEA>N$!y3 zuO<0EBzZ`lUe*x3y1lmb6zq}Y3`ridP2K)sKV^R7Cm+71XdPpf#Kt`z%~B$lKd^Ys zgG-j)yLi=-^2UGr_@?}(MKMasw0Q9qEDcX$qy z{o+jh)lTOca5dh~U%@?Np0T!&fsWuqN_zMu@Shg-a4mS@k{;d#R+shg9`FbE>KvgL z^coa5Ym@I*Jj(M;^Y2zB_3!aneb z5H%7z!3`lCVBQ6PXR{FP%1M@`RdHzx;hG9P}V+HX5aJj@oz~&igu9p@f<1PCRdh4I1fG&* z6<&NlkXwl9bt~p^FFbo$hC<8-=i#7}558eaNOmXeB_UkOT!;M5+1R9*&HnI%DPBn- z8c<~wbvk2u)j*L{14WYI5CA9FT1A7ziQp2fn^$17Psft@5(Pkv%A^JHxJ z&NB2cvzb2^?7N|h*`faoEGrf0Dv90TGG={QsYDM*>;zYYu%CI?R8+u^9$_{s(2#=h zrwZJI0%M0_(!qiF1@PdBR?#ML7TBL^*e}2yQ)m^{%x1tE=4-IKZpRQZkHeR1(X*|h zIfUC%eMZ1JaEL9z5U|6;;3=h6(FLX{;2Sx=YgcpFFOnKr9%;6@cG2HP)KMHcfzHX#x(B9O$rz`4x3V7GT* zePDhT`MsT1QOf*Biua9GR55=Gc3#8eCHA4fUU%ZV#3^`86q-NOroT_khmI2Ie}bRbk6JPh!sB9Zu-(}00b8)! z^=>|53wHB^@bBAV6Q!Jg2ROFX<`dBy&C-&eR+7^OVk1rIu!suQKLn=N zCqMJ!+M=hGS93mux}dKjyy!hD?v^=d38ou;S4g}Rd=sWymdV<%Y9%GwtaS;i!?i_F z2cuPmM5{J)bF>UiK4Y7BG*gHe)T_N^vov~Ax6>#)5dcbU9_iQqQoL+GKbi+0h@ zd>K5n!!A0R``iuw$}YNyeV8lLp@{3mEX26d+*u8_ciBZQ^9k^@>vmBBHqVD{?003% z84EFu=&ixt$BDQ zro(L=pFP)t>2Mo*m~EBpbl7cU*6Y;Vb9U7mdqIe9w(E^;$9Irkz4LrVW1&cef-0AZ zlYMM%Sn#k~Q;35@HaMZj9s_%c#N=NpG1<$&@4-y4o`d1WJu&PiZ{ginSuJvrS>%jKzkgZnWNoIe2N%7e*k65AawUKsF%B=6T zZhLU6eHQ_}eX)+P{TpJh{eQI8`u_X9_Wy9Jy-R3|pHlMvf3r2W?*FaLcC5L%{!N>0 zmc8l4N@dXByxZPm?zZ$T9ldE%qDNvXP3>HJ@a=Og*gg@P8{73=x1i^dAnpauWxM`} z6lxJKVxck?G3=Ub(-*N4yZ%ieR&G5}nLl9t5G%uiWsbTBWv&UkvCPV_;A5zl2{y~z z1pgR6)*FPOczY>-RhUndvEm0PoYi5$$I!YMZ)?wn1uK>aE_f*{_{K{-1zgAZann-+ zu2cZoov^nuKT5nOOms8r&O)29P>Jxp0o&;PVFGV`dfxO>lzk{nKV(p>Jn)!6nCN1= zkL)e*#~Ulz+lbGiam>a$R+#?vDfVAIk>BG>AYSk3#P`8=TlnH&FUJ206^{%L_9AgF zu-S{V!13;Ik&ieOkk|<>WUd6;@rS8$<`2o9sztnvk^Tzu=mFuv?4aA0!j=^-+Sqps z*qa?5Jed(^fjcC-3*5>4HteoZ;lj~EP7cNR+2^L%# zu77)dk-bU(9UR4>o`MJc8X1p-6xAtC<;J0a51??i_YBWh zV8=K5@QnGH3hN3F&hJ~6!}of)sO3tVT*thW?074A6+?Rha*o>(oZF+zVDmbHhw9tF zo`Odlwzdtv{YZ|6&22I2w1jw}_6}@5Lq>hr z)(%_jGKZ*^I2jyZcHfU9c$q`AGEW1?l{-W`vj!f##-Sfa4>*N54bH;*Z57&XawNDK zjQ;S6Yj8-cc8FR-A(HX#n)s|k)G?a@1I$&hXVszt5>EuTgD*wmO$+vf7Q90;Uj@gX z#dNY6cH+KZI{03S#PdpuK2T({L*yzrwBnaM688a@Fpq{kxf#!{#Dl?Q65GKQU~2I) z_(zrs;b*&9K{`8M@NtO)W4hP{(Z6xK(1RaC?YNAUJ1 zd{m%W05)4agV`g6%w~nkB&Gt&navheNcpKjRT5K|*GWtb2-q?Ha*Ny9feNGoaL~G; z1)Wj=Dxh0pD!?0dV*|37%?1=oO!14bGv81^i4=eeD3h29sFIjkP$LDTITMhW3ZUOs z$dj^F%1`mzeUgF-=$4oYaA3=jdnij{DgZmx4F%*fn`2xkF~u*FnBw~?SYdWijl@(y z9kV&c4dCFcUV|31-7K(GVk)pxVk)qknalGDhoh&3RG=G71+2v!Nb%!2l{g-pEwL9| z1g?kgd-&L~S70g8`3IUq4yUMNcKimrh1)3t%n4v`w$CY=B}HnsQ?xNpf@Q7uv~ITfP2w-o+@bofT{0%tu zEP8;M>@l#XN*oQ&Vvb#n?~*S#MImz@*pBWkmpB&eCoaNdB!?I%YNP;m1Za>r7Thdx z47iPX85MXDEh5%-)+sT*El?%xcZlprV+NR<%lrq}2evpwp~OkxBIfU5&uMjt5{Xm6 zWfGIUoH^$~l!xb|%HV0DniLoC#=;I4h%e%Sa2XXc3ve)-_H5=U520T=wMX{hO@!nT zov5s28xJlCiB%@qlVGo4K8^gT-{8%K`3iXQHHWB?cm%js;_=`HgMGrRY(R2If4@HRw=Hi`nUsKl{=S>Gu9c!-$S!|tr| z;T*t;~5{C#}Oek8P+yVmG*zc?Rq; zz9SCNB`Mrs2j1dUgW`DAK!0pVX_Wzr*mjI8%!_ zpd?4HEaDuv&BAB9Htv9uV(BQ-793DMaGK@}EvEs0yfd-P^yX;g%pDvJ1EWX#GrnD= zWd8Cj3o@0m60hi#{k7As6{K_z^+V>5L$4&96BF%J4XUs_crtTJ|xV+qGhtl^X3ax&^d@0p!Wm-lshDn-n=! z#~689wdljjv^e^CgPbm5gQoI}wAF_dPY(S&LQWenjmS*Df{@c7Y(b>2(+(d-q4c8% zIX&Sf!e4fqly{VwZY4`AKBIWzJJ^Q?h|;GxQAFc^u@x%X#xu%IibFeiMoCf1nm#(C zysn@Z)}6(@R!cjFW;Qn!pHpVqd;#uR1p(~1(4QwL5y#?ECUHM-mBi%VDzOLLEwLBu zj?=^G@#4VQ5+lD)6iJGB3LtR;n0|Og38G#>`k@silS`6&I1$PUiDSTC9zoNeel$+DPFV0)MNA$m7qT}tAnNjab5s^Bi9GVWkM5bKbA2tFqFmYeJ-UFlDBbdqDj zB@MKsE3RC;$5WzWFKc&XSeCjPB-NKq_}@8=E>}gd?xnjaP3uQl{z-AIp>+d^vRbrN zV=U)~Eu5`ubk#i&SBCIriSKP%HP#ZNxc1NK$@7f%RIX*J&o;M56@Zv1@pKMQe%~Z<*82vU8kvUy)^lC2&r= zT4cFZDb#X`En_3v`9Gv|*|Z0XEn_U*1GP7bEjL?QKi00|uC!@`?y^jR_X@f-X!~%p zw0^2xy$i;CZO|-ez1j-8wQ2k4R;XQ}TdFo_He3ULuiZBruG!i?AY8A|tyUW}2e({p z1>GvNeYjbESgl>116QF9nhUK%TR}G%>DH`W!OhuRffgez)pF)p#=^K_9<&1%U|u2} f(hfrF?EFUqh4wwr(wVCbEj`$P)GrpajvGpoj^J1Qm%RXiyxZFVI0m z11bcHnF_cC1&t2DNWeq|3~n?djA4-%7-kGEGr{EzjylG9F7J1$PIWH*na}5a-e=zX z@7)j8b-w4Ed+u8I-s&{Xuernf-Bke@ercfBC)4%uz5{xz?*)0fVNL2!u~Iaw$&7Qz z#~L2)H)FQudZgiW*=dI!tQex_uI#4IFHan}O$tige})fBG+7&t+jEw}H3IV6`hoIf z-+5@dfP%O_X1N0LXZjcAGiT&LB07&N5mz&=zgsc7Uk2F{Aqb(3#z%r?%C0fEC9|9h zIbC19a`4bmkb=1Wfa{+{9%SX{J{ESVe|g{FW&g};9D9u?FI=3oNf55%GABb`0yzf% z`av#-9K@Z{8kQ>{uZQd-B?4{Im#-S^odT$a7RfagAJ6J_tCBr?prQ6v!0%=K_^NEr zL{JbHwIxrVRi5G7Z{_Mf4H~sx)AdE6WKS%#oU|FxWXYMN*B=ihj=h2n?;t`xmWM{57y(Wu3z4f| z&6*%0T{JZ-@4pS67w*3npA*-NH~pLY2=S*B_&2OwGe(9e1l4U!DpU~t`9jWQITP|? zmit0p!EzSlhgl9nev0Kh$j`Gp1#$z+Qz5^}@-)cDS-w1943eKPTmi%9EKi609n1NU zooUp*#cMO%gShvt@ zxVTG*6VT`Cx2}Ioj&5*1oIw5Pdt{ht4n847zrNHj*F7>=%F+7jM_-3IZv%B<-G&C_ zShR7BW)*>A!UL#?otvgx!J%4TgamuF6?}U zVm`xCB`%y zs7s?-oq2IO-7@ziP>@l3PmZ!5YjQm}&guj|0TLP*#SEN&#+_v%PrH-yn34)-EjG9 zG)43a`?K)rIbaP$1s8w0w;ocL~YSOX&&YtTTVel_gD2pZzkwDhq}q>`ou%o z?pdrqXzDAVU#LHN=rUQVA3BsRb^XGjY;P0$97Z&%W{aNrMz;28x&GskzWoP7(PJgW z7Tu4L6=^K<+supgO>bn&P5LWuWP1;=?IhbS=wBjO%qso%-}UW}MNQu?l*fLvMqQxN(eY@wqOrRu$%-)8$*)nb)!Q6ZX14 zieH3R*3e93eVZ*8*z<49rH(O{nlIR6iGBnn-pksHtliFR*Xvc? z`*ybXL)L!HUJiZx+gYP9*Y-^tEwWe;=0!`c0SmBSu`iMsD_wp^~~9nSVX&o(~1isSmdhqE)kXKgPoGkdKS z!LH|c{SYGDs9%8ZqipNVzD>;b_VsC`ELPvHZx3e= z+-hlE1EJjsxf>pSKf3H?IQKL&2=OBHlk_jc2?Jk&M2~z0JdQx7lXNp=S}f@CZ;ln> z81$p{p+_=2ry)^{lsF;w=tW0{O*#t=l4}U^eFPb6P7F#E|3P_7lMvss><2Hw;h*$D zT;d`9og;mF5ym}4j8_kYq2cvCgcV?bZxpLXKuu{j^D%S6(|g2StQo}~oAqVC%Px9} zwYjW)JBrUS+mGN^QTA??W^vu^`~l`qsNDYXFivC5WG-Povt84B^r7!&&(K*rmA&>b z+auP(Y}ez@U^JheWHFTUxFCO~Kk@D``K5mB-SOAa14$`>YosX&;l~{(3^V!hiLKd8 zetceTiKhS6ER+5hiu`TEf}i_bBo!iu|S`zo*D;iu_kg)(;;~Pu13Uwk2MX z`>fZ0Jl@MUR8i$B@)i2f6Um-gie{cZ>qN5eRz)+*-x+$DzWPM+jB>@QEAmc7eo2wv zQREYf{GopSL~`hFism~-j_=c1ZnuX!W4xljQjrTSd9>-Y zL^0g0$ZHk3N|B$^>rN(5tXDMq75QC7{(~Z4P~;yQuWDxO34>ix)0iR4R;x zx%gIN@~PN{Bkx}=8?yd=N1hQ%kv=`+e0t+sDKdGw@2StE`7BVw_VTsk8X*deZx+g| z&@Ss7M^^C^p0fvWkmILJYzJ52_2)U-po(A8rLzFR_dGJvQ zetHVNM1ei638y@Tb z91^x7o*lB_kkrp1Qkbs-PYF0gF1Q`?0Zgl|_#P^sxdlA2K!{@Yw<}zt*xj&~MRA46 zXn)33Op)1mfZ4$gPy?nBb6trRR60bMIUk%}4NkZ0CEz|a4$-1;Z*UnF*{!hc!xi^9 z;wu~rt|kt__~7d|z#%&TDRSANiF%|2T^tpl5KI-YQwiHopaN-S=wgNA!IjMBvQmy7P}mKw z&cNeK6(9#v)UX5A72&Qxk1*Q>wt%Su-7)@2Lon%>uLKX8;1CxT4uEU?mj45=C*(Us zJ+mFJ$se*DcEG`N6~>SqE`YtW9ilCYFETrE7)mO{5HM$hrxZIxeCDN-)X!{B(p<3G zgTavEK(n+UiVKV`Zry;J5;!r&+>@jbS3eX0o8t4GQFsnGSK)=_A%_SmiU1r66!wB?bxz)^v5)ODH6e%q+ zqKtV1@u`?d*K1C!_4%kd+xNkqGtKHss^Fi&?vl=){0@A@iq4)Ro(2wZLziBQrGDu= z)R-0IPz;Bl!W6*nTC%&r)RlilWgbER?*p1BW&g*)MdfG!+kZ0ZHp|JeN!Z`qm5p;( z$}UpQFn-Ww#;m2#CA*}+;ld2{BG}VS3K!Zzq2+bpky7L^j|KZM}_sh-bwby@z^n&lltSvPgl!94*7{uw@qeb zb}PjEs?kK1+bU)b*twIOka9VjkipgUUKQ7ZY%)Q&cl+^Y9>)IzU*U^9#L%$lT!+ zWz2Cn`@3tMqJr5+ysL50!*ZJpeT~fCW~T@wSi!diaol~&DRLC<0}e9#<|B9*g+K@N&#xywd5u9vyP&ql$RVB~l64JbIqn7dJ~kKIbL-}rQ+Ozm|8 zCckrbtSH7rBR})ODl}57WNPT|)2uh#YSiBJzfN3>8nB5G#UkpvszW4z_CkfpzgS_i zmw?r`i3)}3ZKBd-%s2aOqLv-(w}~c&>1`qmrV5#F6Zx^`_ZAnhs!$^Rr-cwYI``Vl zBJ}$AQG0C+o@Dknmz0ppdFf`G=oH25U~abY&d6T71OZc0u#T{OGjVU{zqHqe{`<}L z|8TFpRv0gCmJ|Pfw-xs0{lB)`j~75FwwvGiOqfT1a4y@;XXGklZVgr{YZb$`$u@Hpo9{Hg zAH-5_CMvUfA;i+yNSSBB&a&7`%dCivJcnkPV7ttL#aLh-z=DG?6mKTj`ABT%nYS7W z_miQym+r*c;$!HL;O1FYy#`t*`>(W~O?4QUPRl!yabNTm-I-6&=jDAsH_$ zl3hXtu#KvZ6*%{qd5?fSO|g+TjgP>i_s0tQ<0HlHeCXq z-f^Oo`3|tVpE37ojPwJLM+M@9-9ev`ZAhGGVc!9ZvG9$Ii@cu^2f%HL-2-lCo&&ol zH%`QJr_o1+R2 zM->dVN5_1wj>dIvJta8ioZ@nQDByM|+~+!n=K-+mqB%UHAA{`tIxaH5KOtYtlp3zI z&9%&qTVcnsWCw=!M##exU6Hx{KG}M^%vWn_*k|Bmzbo=)?foT2BH)V5_W|I9A+E@L zp9-FqZ?VzkS#+u;qdsgagDt7VC8`we18!ojhdpPh zON5#K0`{$NiB{$@%kb@Bnag}5z0WPgE#SaaI5MFk&ghr(1qO04B?4{3ne z?oph)Bjr*20_@C}6i}!HpaM!1rUEJzrWRo5js&DRgWWX3R6sMc-9up|KgDkiDGDl} zLt!ewg)Kv!69I*(fE;GK0PIwzzdgqJ3RC zTvA||{p~r`t}qqY!OZ1_gv-_0LMkvGOa=79W0O&V=TzZTFxK9PJq3*QQd|w+CAgf} zORAVRgL}H%qL#T9?2dPfCg#_`DLEmxXjT;d9Jgp;{(u7HxxH z32xD$*i&Ig9n1=me_t@_5aB^!)FHx&i=aqh#WDm;oaPo#nGUsJe}P-zpUKC-&iQUp z!Q2K8EJcgKv|V_YV{0l#i<$Gl-r2@Kek%us%s*C_xkYPKtPbY8Deo>+u8URH)8GIC zr7)8{4fcS-K5!0mE9}YjsH?&raEZksK>>3RuvBqKgF^+gb|(Vtb&E=c2Z3vt%?du? z7WK@d;2%IwG%5Bp*ux6@z^x|ZF*j>iiQ!|1TM)q6g5l|EwfGUR|0sHZnd}L$`xW+r z1I+ti?{Ug4@|pig@zA}c3MYXphzl?m$RPoWY9)XZ0qPY_0yit10B&K9xeEoJLyL%w zFY9DNXaH2{^)8Xq&6)u==Q3Xdd;hRYWXk-483W#xw zc7;cPFDg6^+@WwfIHkMQIXCM`Y{8E-B>|>1w~#z~_ z6wU;9vJQ1o~l zPmRKEa3S-puzPpmDPgVz_d!Lf6pjbiGQS3UA}Us|a6CB7+zxv}XunHbR21=G7tZ$7 z0xEz42AI438)}SgEQdJ&PJGLHks<#n;32dOuze-@A4LNcP6n4K97=+sloih*Ljv~2 zO6HRk;FR^ELIn`}z|D$18QjYJBl)*tS-?vI`4cCD>6-;&itk4J+)kb(d{EF=4Yorv zxPZA|IeOrnOB6Gsqs&yo{IxN$L4GB78N>I=Z26#3v{w$3V0xpo{cn!vv93rGbWkI8|d38B>NX;0m$Sx9*1s9%Z)Gh$&4;`80{t_^<_E0 zXaB$~+WmH;=w&%f8+VQFy{B*Eu9xKsrz|rv_se^H^liDC9C(K4?WMzbX}=scJcZ`1 zlJ3LmLgwaFMG5iE9+p1G@E$S;N57~9FY$v958Rzn^{ zo|GySANO#`u$ zkUng70~PSD^w$K>tmK@ zHlR1`)e0wob9qD|qJh|e=qEvxECmkt3dcc7KM7Lp9sW+H3egW}DB1bx_bw`j6{dLf zdzXlvx|Du@5>bFtvKsGfl~;CIMB`C-t!1Pqt}pmzg$II56&?&OR~Ub47nKV40B=#a zYh(IH@??gml)I41&>DZxw7aCIBdxRC8yZ)}Xls%@Rl_@ViyJ+u+M4d3K(JG{$#^25 z-Q}rQR85WP1GUQ#F0a$=WaENCT9)+WOzqU2H69(T-Q=lNR39|{Fj#BwcuHx-L8987 zZ#*zo`$&39lvYTiZoGDK=|XM`vGqDFg!RccN1HB7j74*_F zWQXCqUYjg08bx#~Gq%#L#W+JZ*a~qgHi~f5@;@-P6(Yw);|yub3||p$L8FLn?Z#HR z6&Po5)AHMl)VXkNHj3r~OWKTWgw@6w!k%{;sq=t-qi7!T1dOe8gOP4+hHt($+1*x# yCL_%@7R}ejU`g6a+L6VWm`HCK=b?3{T(B_S$XuX}(E^i=xeE}t!`Qk&%lr>}ICtzwh0*>R4;dhnZRP zVb+?nxcBbg-uvwHKKGF#{Hm+{6<2+ZEIc^M>z96Qy8npgOWP_xYT2Fkk9cWs*`1jX zC!cKj^@#b4ZSOtU@~<@?#(BpHA$CZdgm8|>sZA?dpXxsgO+Qc}j^D5xg8YfLYW)JO zuQqXJGN>KL1vBq}JjkX9K?vI5QE6z~UKHyT= zrRKeNG?h|mS;w-qfUGz;*``A%;m9)}FNJK!zY&n{gglcS?_xOwUJuz%dIZ{}{pG&V z-r0Z$p+#~Q;`F#SA(%RNFErGO5d8K*9t62jYNu+4xu-!a#PQEKW@)QxGyKn+*#{Is zqgJq3>j-Aa%W+QCE(Q~2i6I3-$y4XTlhRAbc^R&SI9`W557!Wm^EfC{JC1ib`h3z+ z=VVe1LO96F>ZH%vYXNjp>!_U~7gF79{o-1l3vH7!Uz>SF$jdA_?yxsAH;-EA$%vEh*^ zHnRv66TXCsc=H$Y%;3;Cvnja$(do#rMV5C#ZfE%^$frqe z8LQ2eBaIOeqW{huGh2T&=V_J)U^W~eS$k~zYpBtZ$I|04BUd%F%$$f4D1De~PW3{_ zhjCDsRN(lC^&!aTA@{?z9mgLbPi(1t{7IYH4XAMcF;s$kXN$~l>Dc*q^is=_UyVnv zw|v!@9_OYlpb$qc_KC?_%AVQO-aXf$ItL;9jb_`0{5{MhZ-D$)$dg)JPw%E!2c8*k z27%EG(sJS1fi^i=`+om)obwN4;aq+o%P1)nhuMssWU{v9z&t}k*~U$Qrsd-U=~S!l zpPxsUq8E}V$dW^6@~!nwu1BYtoe&^ELIdqiT))H;q0XW7I{CER@Zz6nMqJiLf*!5JLE?pufw|UhI~a9VrufGBuv?qm#&S>&lkvFTldlgg&R-MK7oNDL1xZW5h{|#MV_W&z^6^{vWqY`~KzIFoTxALQ_O@ z9m&FZ>=APyLMXFi7Io&{Bac9ze{{6mt5qINhrIr1Yrku*MCS{U_$#S>vSDz)$%{$HY69n)tMd-eo2>nb>%fiO-t&&TS(b5jTC(O`IS^GotF6qhq{F)Iuf1fS0xNZzO4@9f@*)c0)(D%g6eo zhQ1N{OSA(WljIcbd`Gris<~dz_6FJKZA7DL>RQq3*|vkV+OT(qj~orfhwSh!St+eI z&I8_L9-|$6JzJJ(zeTW3Y&*lYX3hIXw(Z1vZ5x7NQxkt>hc0%=y3Y(|l|D_|@J9B8 zt5|!Ez3z?i+7`o4BUjc)-0?&QTh4RNuVXx&TIR9r%ppOu)IYG-{20CqURh%^;q(w& z__;~E#QY)W{Dk>UZPn}PDFcxsK4ixJiao|@7f@m$YkOH+#cZ{EgEryKZ0|nSe#c(# zXa|pF<IXe1iF2W~&vyWae?xR=nlU>|mY4X2cS`%+?ecuI+j&TTa)G<9xgJ?OWNIPi{0z zH6}d7PG)Ni?Ap|~vt@x+`F6IqdXwp!#L*kH$KTG*e1o-vS^G7!RZp9C9uY=qu5fnd z;>~7+A?zDuw#ILtwkVuE=n!iI?DgqpZEN@vZ@&l3%vr3?*E+)4qbf|Ta}=~IAtz$- z2he47ucpURN_Rm&UGpAK8Wn;>OFjgTddRuR)ef093tH;!@j`5eev-EEc!v84NEE}D zAjDp6-SP3Wc0q&W9D{t%LdKqBM~UJ^%43*tgJd}XUI8WP3vs;tfcD4Z!v_~xWs>v)f1tnl>T$$GT>cf!c)d+tjTAOa_!-Fvde2&Tfo|fVt6;RwFF;| zv7d?IZ!CW*cccg9_OCN*GMh`tVzz2JOIvs%d;U_^&SkH4%+`qM%vL=PfYE$f$%0>F zgcI@$+L06EWt;ZZiRnwQ_ZlgHGagcm6u^0^DGHM3u$+VIk5~@idW9li#WMLEZCQUZ z!!F;_p6E=qovPCgcTOAGjk+Ku(CLCA|6P&oTFU!be$N*2F+DRCd8)SP{nTKwqPaqm z%N2QrBCk~Bb&4EP75UAU%(Hkv`tt{AEnk1IL?*7dbJ?1oRo=XO+3l6pEpvXex2QGXm&xGW~g^V-B51sGNjlG zE?5@jecE6U3VXoy%wNGi@>SGaVHdbLhTE9^mkHr&$Lj_2RhNmN zaGk}*%8H+oLznp;PZc1}01Ka4!H2>9kJ*Hic{h0ONt?(~xCor5@KSIgv(>|I#L!m>&U;?X`(!g-3wfEDpk9G!$V= z0WJo2D?A6>!`uh^nD1<&SK(Z+$8Yw~@_G20(uW?2;XLNuu)8m!fy}{=pcsoAWECrj zM}Vsp9t{pLTU}Te!}ZLQON1Eai4zSm_NEwno5?}30vVE$<3u~3G2=w?0z z_6FiaPYm}me-3-fh&a*5oHQSIo}4)0!W^Daj=>oJPAF!U;^q&9x(Z4- z1KC}$m&I@ebH-fQ7Yk9%Z1qqGO!3}Bq3*gk(ZoFPM?ws301t&d2#4`d3~P)N&7@!+ z0xrX5S^--vj)a{kK;d|B4fA7UZ^ANUeg`~oKfb^y>;kueDSq+-O!}rc(FG1tmlQ&= z;1(=HC@d}l_cB{8>Qn44*gY9he_|hV+g$WW6}p(&%3lEfK@VqO{ZoODqXOwQ=wi-5 z>;YFX8yih6dO%?pxF&`}%*I9&LXR+86=()i1wKIhlrfld89`Iw#e~S65hps?fj9>o z3Yhi<;G~i`QO|4zY+$|(cJ~z+Lgr?$cX6C(kKs<{ldz|hVF-e(_!^2i6>*{$Og&=F zQjux0HA#J7wF?7^ohE5s3>Pq4leCoC8uDP7qM$LaViugL6+4Y_T@2SVTVviBlfNBI z6<)g#ExrXk%*^3~qWgym(aQm>IU$CdJz&iV53@BVdvo$A5z*M1ws8H4# ztiMu4k+}vN2lK~psH}|>o-8v1@ikzd!ppz`g>%4p3VXqH`^Ro=Br3QbEIQ+iM`&aH zhoNwsjT1T0lf!Jg5JS!(kiz}J19O+U9fjCe?S54sD(5uEHUxiiFVzBqaVXRC2WuMXgnU~l8@PgqKX5Kg2H#w zE^3&U5O>-mU2Jn;OE0#I2DaD2o>v&{u>)Y&Ezurp2VY(t?IGe~a1J+g($(0~tFA+h zSwRjJa41xm0+cB10#h%3gUVcq0NzbDQO)+7!R0k*0NdZv*RPkeHK|H8eM*@S*ppxI#m^z|W`5eZip6Rtjz-3-?dVf~aE4zt4S1^wR;&TG|9pe9tCfIfDE zd@r85H?2nBq06)>3D=@ex7$TC%rrSIZew0ab`;meY)tBId+Qgv92F<`>+3hmjLb7| z@-^B-y~`|TXc>B8k4-c%7qlMPEC)J*X2F<<1I)sSNBijwXyl_y!u~%@YGtpm@k30;WQ&C5L*4C}Dnfun?Jz z4pGCLfJcAV9)}1q`-z)cAAL~nkil1w+54(PZ#rC}19c1ODK9(ILvfPt7sk89jKIsbbb(rw5a|7_Mi=JD~Bb*ueZ#;+1%K1*cI! zQe;5U3BVW5lHB-KO(mVD@Yy^FMOC> zWV2EU^GI41rSYPI*;s;$<3)9hzxpCfFUHo3FTE(!i*XbDsm|7mF~0~04F$a!hZP6n zPG;-PxR=@Jm9s+hF&n+og)f>uvjC%0zyUBdXgeC1QV<_`(KX&N^1$h2$2=m3Bsi2A zifD!kg~?t8R^K^73e!7B9kcb$(Zp=MbF?W;?;K&UF^`Owj^cPhUp+2x|5MEmg2i{y zTXhfE(HC>87FhCdBY$HP!5I9=lEZ~ zRsY~ledYh(s{c>isxP%}&Htrabx!N&y3GA=->K=dA3dj1q6yv%76sUFnLh(NX5b#k zY}~PnqYHw#Ke&MH#sVpcE(oZNWIei?dz~XFLQqqI#%5QB0L$=@Yx)}cWni%~K2nig zV8@#HA6BF`KC&{6ih!+(^uj+WgguDM8B~G%b=YDIhSxGET=nshm01mTZ;y{uYzw$} zXME%#nt0Amea9}mC6MfbEiBAN^bqgS-+?WdT8WRL`?1^evu-`ueJDQi`tdCI(zbX( ze|V%0_>%0$;BPZ|=1t&}s5rCvKo)O&fW>{;NR;o-@DmrK9dzlpAXX$q=GI!UqbecNbH*fJ8SOb^ZmrZ`-i_fsMZRki zLWDgVU;(TI9dLo9A$euwPnB5U-ZMhfElIWCl8)U85H z@Hj;u^G>kK=Zw6UzW`1h;*7kPcY)m_oRNj`6*wu!8Ce+peu@P*#!2txMttHq;6jDV zf>4yQg6c!5OmT3-PH&x5!LI#fg6qN5L)XDRq~0kSnKu(}cZw!v zD_$G(Hx#cC6;OBvxC`7AOvGpFJMhu=7`_sd0=x*Eb`njtM>!cxFY1%7G;GpH;fT9KpYViqVNURVd#2Ks#)-hWZ#JjdpfK`De z#ZDCtD@+ycit+EWV-ZpXC;-(MkEaG(1v;6n0`atI*omnC+}$Hg1>kNSiAOzBr7*>> zX13zj;O-p>KwVy^1f&9*6s7{&lz>z~m%>y4z3@?ktO9zJ{1m@WVT$hy#z!ka1>`VW zU0R|r6@YiE9~4lgWHK&La>LMqS$rUE|3q|69mnJSzH&QsV2E(IswiH~DAF#lWv zdx@bahhmV^C7PJ;1iL&g(Z+l~*q7%L?Ft9Loy<>D{sNciW_}Aithafz;&V13Lp;OpLx%Jnk~yA_;+ zKt5)&r^BA3upgYq{3PtD&8V!xZg7>!K|ulY5U^TtNQXm+`8WkQ;uobL<#dAiihs4RyYM5A`W6MkV6s_4N3q90yHa}0&Z703Eatif(kr`7BORk zH&P(c9RIIiAG+Tu@?y9EZ2UdNzZ$=bIOY^3>_9veT*_Pqo)E^fg2DlCmBM7NW^SPT zST1$UeG4Df$nLT*WW42mYsMsgMUZU_c za2c}|ze=$Wg}ug&@uv!mU5hdP5>GemPzo;k4i9n)PXsqAJPq8;Y!%R^*oVR%W;Wtu zL+EC1qxixldV-2#A{4y}PXqTUJQVC3U{-kKUHEcr$1-Cs0~aN_M1jH+!G#J>1D9IN zLmDiz6bLXB4pq!XjXjv9%%{li!ydvs=x$VC2qr1>OmI;E%Z}L^BI`pv*)N6N`cO|i zE8q%>u9yJb3TGli5AzNxFbBKRK(hxv0Z-4vGF7+;%wP6}~6<3h5m%%aH!98PatW)Syqr#ZSM^QPYhB ziSS2qeFJ$_=?9OZfUti2sGKJ|b?<93)nA&a<`CjQq&7ulrk_@*X%y}k6tYQQ^%_EY z^j+|hC9N;LCa>~Lq}fU-V4Q{cEgt&4!Y{g+sk3x}{S- zBhk1Cr*Uo6e|s8bw70s>$gAwZHtshn!+{h1A%hZe3QkoD4+hsMO#WeoQ^9=-`@kOV zafrf?Q=Y=e9~7mEB8>tloDQa6b5WuIR3QC&i;~4%_3GCx7%<`w7B2h9K zw?+CblBGz1mVS$5F%{Sqh%!}(ez`*lqER9Gp$#RAn-r#a^g|ofPQQDJFcr`@y!G=g z`J;Z7!vSSin^v0oqrkT)JQ`fBF#gsrY84&`u2Z-_c)P;x*2g}RXENM1+=W!ejje0r zY^$YP42hPzy!9`3+r|`k!-S~r7peJ0&&lvddEkuz*( z#$LbJ@G{(Pgt#(>Hz~Zlb>vK2l63E163z1q{jyoMxk39iQB@nnAqt-XkBQ-8g+GFQ zaSX3i_*2+7DSRHh{fDe4%(i*;oY}T{`l{Ks>!jX#VzzC`U|FtbUSkW&YJJx=wt2Ed zzi^FhO22yke<;0nJ@;DMrMAA2`c2o`W?^OTy4E%ud(U~g2tBh5mu9_^F0j$1P(P20 zt@9IocsX)(>Xqe&>n^$k^z(G7)-#vllBZYVV(a`=e`+aQ8};*qy`SpCuLIWTmDd6P zyh?wHQ0V7@*lIGb#|1{ZwClTYakbZ=y-4Z$h3joo5I6G%XwNOftVBAb-+F^>imS25 XM4|5k+8Sr+zq-EeVZQ1_;G|P=Q diff --git a/pkg/internal/ebpf/nethttp/bpf_bpfel_arm64.o b/pkg/internal/ebpf/nethttp/bpf_bpfel_arm64.o index 163de1c7ce43feb3f690c4e6e76eaa2359b42757..170d4c5fc2287cc57bb739645ef8d4cf1bc0e9dc 100644 GIT binary patch delta 15654 zcmeI2e|S{Yna9t$nF%wKA0$A?1V}OvevA<$D7!{M2tQ2(YE+bfh(iTTTC33oI|wpS zaW~7_H9G2zR4{Q_8!K*OW1Wat=`<|J@_1XTn z&$IhH+$WiPKJWXUANPIFJ@5V1^+2HQ!9Y{kYKy*D+L=AJR0?bxTYJyae$%J{wZC2} zvG9tC@wA~=%EFFCL#O&=L3~sG?eS@gZjOh7_sGK?KMc;6va{n~3tpG9q2q_6i!C{` zOhiN!)-;#b$$R5(9J@q596y8dbMeCCljJ+`1^7J@{~mt7jz4~U(y)Sc&QMN~qp(d`7e9D> z;_~?{{*uKvG9P1(GWRn#GoNJc1fw{VntYFCK9paJFF8>n--_RP;sLp@B;D88?M#>CH^W)MjsP8;R)TS-FEMw_?BOaFabY_uVoY?S94snpXp}EA%2h^rsZqYg zC|^4>)#iFb-r$r=hmiVVL-Djxe!(ce*-?0^W3F8^Q|85c|5#`jRmvfWo{Qw?6APaH zT#AtDMu=0`)Bj`N!7^rlaJ`%nd*w=JMIwtGI4uq?PVv*=hn$o`YS9XQ-{5}$H#&(# z>HiV@n!!H;r#Y!b>7N77F!*^X#)&gdwowKzz~D|N-zfeGxGM4D4RUJMxWh^!#5fNY z*5QEL(u5B?;#uI5`h>Mc-k%=p$0AL_U2}!-*1#wuW#p|-6JhYj6+-+P`q7<2R2ZBC zu4c}fC&YxkLev=S2iLne%6u8@{aqp^nptoM2@VO-!n}>RSBQ3li@}{>8t@CyU({oX z9)l-<``G?JG3bm&AqJQObC8-I62g~h){j{t2Ld`mGVsG7%a?&@!1I!N*w+KO|hvKL9vC+t`a_oJW!4?^v%L

0JC;!*wFi- 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 GiGKnxNM_vt delta 15689 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 a{NQ4dV{e01Nu^V~4PAG??rhs;jrt!l6_V}% diff --git a/pkg/internal/ebpf/nethttp/bpf_bpfel_x86.o b/pkg/internal/ebpf/nethttp/bpf_bpfel_x86.o index 60ee729c03d0d96adf20987c2fec73585667349f..ec283e3ec2c4a6c3f089042a9907c77c6c5be0f8 100644 GIT binary patch delta 15537 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 OXtDiucXqQi;eP=GG%(cw diff --git a/pkg/internal/ebpf/nethttp/bpf_debug_bpfel_arm64.o b/pkg/internal/ebpf/nethttp/bpf_debug_bpfel_arm64.o index ef1b9659f8ad9e3a48672fc63e6811b20aea3b04..cf6b3be3218fde57914ebf08a0488c7133aa69ea 100644 GIT binary patch delta 16868 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%0DOh4STRr;{uj=q4#CLhHTW#f{s zVLpa3v9Ol-cqY_60v`2gCe;0u^mzO!p{^G^CEKG0xjo`)@Q}un!NVzzD$jCU)VZE? z?6ZTj*OQKYLFjMvdD5YexB*;?ML}mLM~Ip9`Or(~vt#inPx=YDaM-q|i<*M3-(!Db zN)1Zzl~`y8-y?3-$sG_=?3K_b^(FL?o?@?rK8d}PGWB@>xn7$N@ydd*jvwfnV|;Fo?>qVY+uw8d|TLnn1ZjwK4OZ!68eZK_I5Zr z=+x>{?CoZj*qhLpVsF36&xj@X4zqy-U&R}}Y~&IPWh3{oUN&+GeG+>^tf%%U_SS3m zw2z0g;D7SDY~&K!h-o8l;|emsc4mpaoy@XvcR9G5S@vxSeX?)&Ml}Q4xcfDxjay=PgMvVr)pUu%$p@t~$B9}Y9i0FoM$3njFP-tWq|+_fo+`z038 zh$$F{n8l}c4z6bwpGGvMSlp;FxwJ)Na%ro^csh=|0Tzf4I~|;07N1h+(|sD$n0y-2 zm|R-VEG})(I7&W^ut0n&u~fJTdWp3ZjOlHdFva3-jVTrfrV*4hXw;%afTX~gR#zR{q(ORnspfpx7lf)0LERg&G$iHu>&)raTyqsZ0ol} zUx~ocD;%W?5cIL&J+Obbq53s01P_48=SCym7uF%XYCH}+#C$RIh4VbhhchR8nXw@A zdeYY;Ix-M+Eei!jW3`^E-*!A(c6 zM@3jaAN7m-;40>|#0Nc-(@FUfOn>=+C!Lf(1%u!rkDW78Ki#0`uY3X2Q-5$zVS=A8^8xNL(I#pv+o;!iXK4YZskpgRfzip<#`yzyWtke+%?gjb0VhH~^-_NcA6veryvuW9|WuU*lCtjf=s& z_@e4hFsQ_nKtHCF8py(9poy*MkojV8{zG0BVvc|-+P(HCx@1p07fdf8h27vV^G@j9 zPk2=;SYBq+cW9k9hf^P>(PQ&2Hju~Wea!N9n_e)=V|03KPA?d#!w? z{=8zV^}&b6*c|)H>5k_eH_Gun7oN-Gp^#d<5PxvYv#$8asBjBDV%_zTaoBj-y5eKw za3Q^W*NtDZDo<#}FIe+W7&T+%)AAsiBWnxep`&n__3#O!+IYv>g<6GIuSkjM!XmTP z@pn%c*XI~R@fm+LDhwlO-Ehvh)2Ov}oimD!7V9_XjOp_`a7y~|0M3^_Y9PnxM~#nY zg#F30F5j7#k|(UIl4!Nn`byH6UP2!c>Bqm}Z3xv4SP!a1S`ZoHl%JbBReOej2Lu?hYZh+eKkBP55Z_Lg$bG_E{rulo* z@3q!vnbV90Ygd+uP8@T;$8N4bC9HQzUFVp@3VX-}s>3SGhMHEYemrhZYJuvst|GP1 zF~{q<@vzkl^?Z6ytsiS`7eMHk)wy;r1uE>2XWKrZ!TgSTi#XIvxwn4Ha6#>KMisXj zvSvU%-#OcJxwhZo1=^nI3T$!6<96>fagS4Ptq!%xy$xHxBsIMY)Q7I8=U~cQKVqf%xnAL$Cko5Iwz(*O}hN3sd{z7qK76=&iq%nS~P@p`jPjQfUR4 z-X9CocGMwxgC4 z8q-V#9n;a~VA`+gfT^P4Bs8Y>LKjXC{wEbpK=VhRL(oAD*r%4651VD7lHNXFhd$|G z`WAo=vZtw}SM_uduP|`asCcoFfI6gC-*gDeVkD*xWvz=|_7LGPuTEl`d3p~_2Qke& zz4xVqcv(Duy!qawe1DlOQWO_zxiwN%ByTQ#N;?bg{Ud)DkJTX%1!33A2;ovn|aHTOrC z-Ip;TU#xNP293!Nn;g7bW18aw4nCqWP4F3wF_{G_drf8l7hAKonC}&Rs)=Yay=&t| zTg@?J%%5+wChsv{Hu|h%d$4Z~Su0*LucNz-m&`A?LnXNF#^JM00!=m1n!MMXZPt&o zR^k_Rw(m9P7z5TZ`UzQ+_L+0s^$n@c8?5GiXd)3vH4(6O0gVpp7>rP5(#!aXSS#qK z$=Xgot=2L8n2j~oKgz6 delta 16843 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 S?sOI%M9;h8&f^E|ivI?bW8F#s diff --git a/pkg/internal/ebpf/nethttp/bpf_debug_bpfel_x86.o b/pkg/internal/ebpf/nethttp/bpf_debug_bpfel_x86.o index 36ac7b1013cb5b2458b4c00af16d003c96cd48cc..e58d634ea87f61d96bd0b8fa33a9c89901adb735 100644 GIT binary patch delta 16932 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 diff --git a/pkg/internal/ebpf/nethttp/bpf_tp_bpfel_arm64.o b/pkg/internal/ebpf/nethttp/bpf_tp_bpfel_arm64.o index 18e068d93c1bde01cbbd3339d8a9bee71c18d04d..4127ecddda12450842397c2fea8b558022eb4f58 100644 GIT binary patch delta 21225 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 EJAFlNG5`Po delta 21360 zcmeI4e|(hHmH+SaB$Lb}8InmNOduo^At6!>L0Ow(fB~sQ)H=AV#+2%4?bopdI<|B- zDrJWLu=#G;I=o{0#BbHcE!Nb9HZI_#F0^4~YpS#xS8AiHORU(|1TBy->QoO|w%bDw+e+-D}~UzTT{Ezh*t<1anFcx0B<+<)bDjaF0t z=dN3Cg%4a=xzumf_TN2cTmR9`i~2jle`%dO@R9gx%Q|x4b2tCYvc7)cBcE=xtu+U( z{ESm<{q2Ff&;Q4Z|6gsqcKe$ftYZg$eeh?OmA$gw7|WQ7A6Wf6XJ(hZeYJ-}9*%7E z@G%bux;@{lT+yf_;#dAtw##K>xC{bDAGO&JyHImKgI0 z(p{uqYRpr3p|Vv-@9W=s_R`caq_}3igtGWCS!QYbQw2O;z$Xj%jRLmr_UwzjS?BU) zrup0qv#fwu74Ve>eDmG#!R-F@dsWt#`uDuI$ofYAPw@BQ{#Wt$NPpn{MS&N&$RGNT zzBjL=2@U$g-Tgi9w}e7FyvDstJ;&ADzvul$H*|9DS%zt3cFu%h*3`Vk& zES}^%KhlT#Lmw=){;q$`2aj4u5B%E)Pg`?;p;Z5#RfAA{Zin-XWvys_%`**e8FN~t z-&g5U=K|YWkgEAIDUp+nS*X&TD!sg(q@K=tm4A&&Z&vBgs`TeodWTAX)k~+`ivLOp z?pNu@RQe|>{qOVh4LYv!UsCBQl^%1|y$-yi^6i}q@`lzl=F`EQ`ScuTYmqglu32T7 zNM3w_^B}}mbSUvPDt)s`Z&m59sPwl~`XT2%m<#?$WgT*wimf>elk1X zXEj}x{fjQ^N1b)w`wxqU7V{Q0(C>+~F{93!uUnU<-dOJ~HdObcnD)U>c5T zGCThsYiaQO7u_6VGR4O1tN|p74Bg7a`@jpfWViKOUnxmVV*Qm&-^WrCaky$+{(Nb^5(x8@Ww;+zqO!N3rPsK7u5Oe1jpI>=Ah zW|&zj7-fBN*@R+p*%Y(5Y+7-OeCEf>O+F_D;wonGSvxcP%yck|%eoYk%VJ<^@E$aH z(P`Tx6gPl-SsyM-xjyUT4Ds2ZDnJH?lsvH8n2`b=WfqrBFpJA3nZ;#OIfnnqXEU53 zLuzJuBSHnpXW;^lFpJCDnWcOTOe63g7=ggFZIa9)PqTh?3PVn}*??q#$!9~%;k{<-Q(dmN_y~pg*eQG)Kk@c!F8x z$c)SIzf2NSmG?Q_*M7w`N5ag~!-$g89O)?FD6`CwSV8$DIFrJVpT-CT!bN6~734l1 zQA~4Uj9KQyxMG?UQw2QDyp3+_QOqlB<7q@?PK3cJ%8*IX$_g?k+QBp@7G7@5jZ2D5 zm*P#}nBvXgxZ-+nLa`5=X8tbh&0h|##r;ne{2elyI^pwLuR`J)@G$s2r0WoNOCP`p zC@ukyGhak~5KZICr~q5Rjd95?3>KRy7^Hb16VH_7nI>Kp^IB)w zqgG>+gozHxrul{W7iHd-y#s1Rm&iQxV~e4uSwt}{J*~V2S+oKBl49rQk6DXLIQ{lx z){`lB5%m|FC`WP(jeE(~LYkf6Ku%1}mYs#%FKL!b`)OxE?Ghef-p2O}?<`We8%DMk za=*~lLOMnrp{)gt^4;i2cNmF^JYNT{QaleFQS1XpncX#bVX^6Q8B_E$46bS|HVIZB z?gaNL15{yJ$$gN^&Y|Nx%g_VGKpdnW?lfkVoR~(eh9mVdu5L$ugqJ}nq0*PTXoY`H~4x{0U%MUxV4q0<&Uk}~DaWs-;i(xx3?yQ3B zlD&{cPGMTHEO-rMQ^mQ(>iBFd+h;LtSbo7A$W8WJhpZ>9R5O%AVV~(hgQ!s>t8lVY z?=w-w4d58_2Ix0MdmAs>WYSZAriUlT6} zmw8-=IpFK?nLha0-B^4I84EgnCPNu0Ks*oJ!EyLraKlwFpyTo;Fwd{UkYBUemz$r& zSA%7K64!%eeiHk@eJJ0f5n_H6TnGQ4<8EQ%065N!7xzlwFI7GcdF!Olq?s@MQ|O<9hrr*$ z?HU8qvNY&%%FURIj3K2^0j68-KqcPWqkwM|J0mbvuphh-@f*>|mH!$%?-+JQ%J;n;e)!=SsYCyxNF>%FVPz`kM*U21H>sPNCSqH0=0NdF|~MtS@dTVQ-f*eq$~6@ONC*@WWNKPq5`Bq6?CzJ zRFF_i6(pIZN4?BaL7!r(U`R39A7K{z6E=3o)Bwt$3b4;Rrw3EY0Qq!AF;#%K6t2E> zpp{uFzy|mn`!QzeKz9-RFC#z|B$Pp_pieRNU_cq9IWwY|IxxyC6^yC!WFPz9TzzDJ zCZ#f{0zYQBj0jcGs+cNhXO;>&n8gKMim8HxVzS@MEF+W}P#IJKHp^}Uq=F%EZdPx1 zgKn+|)T2?>rv^}klZvUrX=bU=V5yf5qP~==LIzc^iEf)Te5$w+98o+MjOE{52fhjY za({`5DtQ?4E|&i_JE8 zeBo6X5ycJQVZ|-rQD)dnxdz9SLI4UA%%SVC{X=V}nLi4?a8rqyQQQEgrw-IZlDB~A z85*%PIIQFW$Xl7eay|SX?8cCA#$KvmGe$&l130F*1srFV3KB{lfV`La_tXIlUxwN0 z#st0gm z6DO?Sr>2X{3@lN0?&96nQ4C8hwpxDXQ{aHV)P$Me1_vujbNkUy4|d>HrMdkl@p^C< z>x+GC@Z9=Ho(e!g_M2ZoMzFrrBv?T>$^1>o7e-1=ui_eTpJI~B{`Bw3UTbM?|LGo} zbe5WN=+ixkW7-DyS>;qd!#!uG{U#}_b&kHE9uL5@mwg!qf{t&Qw`Hy0=*I(7IKHCd z5-DYOMNE;>kKGmxI6o4&?xpPYVK0Ja3e?&AT)?&AT)^mu@_6r?YY z2cjrpE&Vis|vdFqlR}9uK&W-JK&Z z=N}Ke@Ur`Opy?I$c%U0`o^HQjcH=Ah@c1LMdz^nfkYEMzS6bNF^_qG-Fo|p$CAs7vKe>uV5zejN2Hg00&pJQp!KrQA>nYTNi+WtTz3%5 zj^fIL&aBt1xz{}dS?g$N?g7GGXi{(tOAzb2OW1g6?sSv520YI4rJpipDcAzk;+Nc+xWsk6KexJw)Qf2s4_>sDd%dZ8@#~Mbr^Q92>#Mo z-Et#Z+~qe>=BL4dm_K&_{35t=lRx(W_&>qXZoi4MKJnFH87<<}mB>gdg&uH*887ZN zfWOoLDiDBti22%^(9O8t3>WYS^KFpV-0IH_={?|3!k-(`2XDeDLuiXXH>OWO;qvW% zGsy<<;$BnuOAR1-5b_!3qB!0!_rh^Jw!|yIRm_I3u#yKMZ)IK=Phkbx;dhUmse*Md zunHV4Fwm7NfCfO`&HTTiAL_#pE3N}46gPpBikrc`!YLT2M@CvQ*kFeFIJovce{S}? zK|FvVhg=`pk1D1!`!U6IWYofw57mP-SN zndQ87lvx@uuH@9h3(8zVN@|y5LZkil4O{mgad&)o+M7V&Q7)KRT1uV}6mkg?4R2ifSCKXc!Q_NDqv@%E)7=(JUM-@aA zll^vP8KIaD{?|j)%?eUMTp6GWl8UK*B+tRRz$ zPMmd*{MhdbQ-!p{mk!W~wJN3xJHYx3KdQJfjnD9Qsf@YE=mwLY4q+X*cmyk(;x=$X z^qoDYu~8wl5VA9@_K{n#SwD;r!5jr&d<^TA;ui3T;x_OYGkoY?wDG5AQ27w#lgzID zF+>25Q|A9r1>^qQK{Ig+*pD4Q86a*0?c_w?enYlm6Vn@|{${DXi!$CvE``DQ*LgFpK?BB@aP9PD~%+ z8;60KDZiOwg&FYDX@BnEnfOn@w9lXsk;~6a@(|<^=F4tHh&YQN$$SejK3mbwyo7lGB}8gwG{!=#R^hEjG5#i$P>(`Nxv#!l8QHg(*@=Glsp9aAamzuP`)-`hWuDQ zr~#C*0U4Nw=k#z?6$n8-!Mq##OX>p#op$w!mxE^%uLGmboct z#1JYDfd`oVw?U593@W|^Jft`T9%bH4`s)H_Oz|b)am68UYML{|=QGU1FyKS?s`&FE z?yh%pz!W8nxt*114|J|Kl+lQc z4mLo%032mL1P;c_a+~Di;F?>@a+~DS;Hwg4xlctBZ%8;h-?ZkYC>?}sfNgC;%R^hr z%wPczF()B!O_t^M!^CsIBP{rX@ z0@=@!JOFts%Qt=&4W7cSTEJ1}+aRwwjd{r2M+_Inn12YqdIs~(N#XV;OPUTzpvkPQL2!ck4d}NX zMCTO;!F?_}zxyw%I@P!hHt~5{+O|@i;*mjS@yHOfcw|&Dd4#sHRG#d86!s>SoE$RE zEDo9R7~kH(sCL2&RVXY5s6jYwa#_68s^sTG-oY$hixzMfvv@78n7o#78B0GYklSeA zOAU|$X~pEW0cP>qU;&RXi`ODP&z^X#RWW(3gLp9tkpj7`ixtFeF~xA3v(&N9OWls~ zm5cVV#C`Z}K4rQ4Sm6u7!%7|i)4?;zPvW=jzbtp#N!;;yO#EWo-F6b+PF!KT2g$_y ziE+zfyH@HNc=z+pig&Drx;07M-sv(UG2V?2_m!C=&K>XIRAgU1BDkj_;4m+e(uD}~ zbFkz)m=6H1rNd?Jx6@>MM$Y-OJ5b>GxpwPMbOsza zl@BGMFCc!+2Pl#g`&QE8sBvCpD*(B?_v8t*(7h8mSLBzG^m(D(U4+ z()uR>Mj}$iljkGSAQzAYP@;^t{yA@)Q4vWZhOBMVTvm97S(Ylpiz_j$ZGOeHw1pK@ zM2aY;rLDu`d_;<}f~<9MW?9>MnPqKDE2gzAqnMVqL1tOnMif&-8gbe0 zACXiQP=t~IB3|obxiB@3e#MJJE^|a8Hx4TWa^t9CcO#;h+&IZBUYjalgY};(6fY*2 z#fubAG9QBiWsn=wN`c&%VHP(IC=MQUe)S%{woL&;t`W$IB|uFmrT`@YiR2WZ=v;&J zB|y=!1+fIEB(nr4Igmm*fJZ8CnZ$Ms*t&ZHh|F!Oc93(L*0;+BQZ zL+|4zBv}h&V@gK4<6wFU^<~H-doA~UsBi;#lI4e}Jl3}<#S6jH%j6hWNuABgU7UBFt?VuZ9z7 z3iF>s-a76DPa3<%L(A;XyI(f@Ys-Ep_Z_u%tZyW)b~f5}{yS=M&i=Nu%eGIh{~nA5 z&Z2R=5V(7Wii+H7SM}$pwZ0;^+EL@{TPxfnU>Ya4Gp!X)<9Dp{dMG1`0v9Z=aL;^+ z-EXpVRJdop#B#~%w-@@pu8Q1hcM2SdRk)v8CjHfafd+2M&Mvl}u~IR>d7CS8ABF4% zx5q1TM^?n=gQrWqp?;G1)(SJDI0BX_{CmjfZb4=64OJG#24w-BK+Cixo&%<733%H$-CRjnftI?}Cun(&Rm>N`lCx&mJBKMs$cUtbtwv^fpR&`%3o+85` z?_BPA<&E`D8w3I2pz~$F{Tut)jm~ueyP+(2t*7=>x3jI(e&M{r;`DD7ik)44yT;j3 zX8Y}TE_d!Jvs;~uC<@Q_I-4*tIMfPM__WUZl#ImQ$oW&vg#=2HGLSJ;h(uru& zc{pS*wKC3gA$v|84Zps6W)YE=RShwHra)h}1&Q!*)mc_;FI_fOAifB*i^TNdLw#*v zt1)K}S)C{lf7UgFV$M+#CtdA)`7gUY!6#FkH&LlI|tw28i;tgi~U zGCax7uBo*fOW`EvmU;FIY~lYR&Gsz<%1o>kS{V9iJ6*?pSKiORYfAH9Y2& zT#P^Q0v4Z;d#RBV+bc^A~{=#06+M=?^r#lLGcLDEJOzu6bm|S_hfKMqVH=b1tpS78ad-820CoWV>4qL9- z+4_wAS~mHtJyd1C`;0U9W&5Xg>_X?Im+hVQbeq%jiha4&>OB04{n0?xQf&2c4LYv^ z5zFiT#a?X>FLQeS#a?AqIrjrC2>!dB;g!r@iUOF(fGYSZ zb4;=dsRd5=qu*TI-BL5dnZ5h0nx$cIeaoKL*Eyf-zW(io$TvTr6sjNn zVfT)=r$@G)>(g#Sr(WpOj|^2_*ihjTpB^!E`;|WZ*wDt0`}9*ogG@g& z^zBdjvY!(pou$qT-H{^;YybLb>S8tN*QgwI@0;DHADKJ(2&ev*Q=>O@fAUC^ zTX#eET}KvdoqvO$=XWek1$b?MF9`6p0rmp?#qP#;PdIxQr|zd};Tj5P{hqnj7pu{L z{M7*e6IQ2nKk{zvrDfYqmhhipxd!)9rOK1I|1Odzv$cApuf=^Fzw}y#-!ydQBAxE@ zxIY2+ui$kMzyDaQ6n@lTg;LA6-@e3Ya?-b-?VReZffBAshoFQXbr!Sjyz>KmS%9w# z@J#`}J;2{Onpdlbk4{j(2=MO${9=IL)SDbVEo#DS8wl=WP8Sl<69l95Ip>7m_dNm9Dd}_B$+bU1L@~tUrO|(}y`Z#L2H% z)6{ji%5O9;la4UYV^*xcM!(=X)1CGDP1jlKd_d1HbH3}GSNLt2^Gm1xVkjeD4Vm~2 z8;Ifla{WNaId%T0d|Qw z;=ar)<&BH`>Hhs9W3*8SjurQ-#Qi4yN2+gDBz;ueZx{DNrbxfOUli$gi2HlQ{i=pi z9e*Iw9~Sp({645K_5G#ZQRz(gek0^RURtv8yhuMR?#uEeof>gJPu#bN`?R=kS)%AN z#kcwC`jW5{a?aPY!_M^BReqY0=k)1F^1dLFY7)rI+3ytTed7KhasLZ(|BSdlB<}wv z?%xsj%U3D7R-3v^+F`)l&k*;=i2IYp{W@{KrBEMn^cuZnhci{j>YdrTZKhLM=-=dg zdxhS7t5X+xBd^q`zUEfUPI|pRD^YR%j#3Z#Vak;LAb6V}s0{A`U*U%;!w-RHUsTFJ z0N%Hy#CySix}?O9g75W1mdXDUM>VOeAE!(L&7=DTKL&oVu>OnA(pb~;MnkDBi4W@k$5T%%Md1EuPcQmCU$HG>CNEA=zTXAWRe7aRw- zF&~C}{-a7|1V_Lf0nRbcMwEyQDo^!r!nu_2tWv$qA0-|^Hw$h64}ht{w?V#S*j2-V z=YvOCe;+Dc-Ko?#^WVTLzob++D)W1;iX(wqND2`sBm>;cyz&glyU+v79mKs#wKDGj zue%35B6uY@%gi28?Lr>$ppcgd;7;b}sDM7DdIAOpz|;d3XF~q0t45e@0b{IhU8XQ; zTNjec;>_eSk9?L83FNbu0H>JQXDY*NU6y6GF6$6XF3W+b!f8}^;cKqyDzT^LAfcBt zSfBMXTb~V;G8hBHLQXCl4e%JVb(xyv_keX-n0dz;m^jI2@nQl72{_4YyR=!zBao*9 z+{$cSmI>s~fvE@XBA1Q3s)rfl-@p1egZ0^AnC%!D4d{;vIgOEt0Mk-+a5ehh4w9rvz>LMubu+Vl zu3H4t7)dkR7PbmGjgf4C+nMbc$q{>Kk-d75KwW+}dLWW0Q$w7=j)_shG$zKG?UgYSE^ZX1e}@*|5F7nghHsbOi_Gag)mANrQd+xS$j&Mleij;o;LD6=+_RGsU-7L zq(4-q+L+%0&v~LuWrX|~$lJjuhwvt?g$&&6st#6o0laNLx=!%N!9ASeioyf;I$w2a zw{K7?hPhwihYUTUH}yFUwc|)`7p8S31?;GDJQ^PPs$@Usyz5&e*-BYf{z%*X$fK(MFHi3otu-v z-XB7W*L4k_7ekinHqwXRr;iYZ5!TjzLZp zoVO7V)hygZOZ-7FElI3=CO9cL1Wq%X$+@}QEJ3!EV=Ujk5#x7pxmjb70pbnd6&&|rP2@WO-6S3{ne=u+is1iJ`i&0b^7)?W$>R+1B&amH-@l@Lr5 zU2}k2n61Csd~PcGE6WPjUpdP<_OR37J&pQDHlm(Lre3kvDDz40$MXR}n5V1T!I5^j zk@*2|&DG^9!TbbxeMh-U30?GwAYz2jpnq-Fe=HiH_`aWv-(2FPTB-natyYo^>cz>)I8eS4j~j`t*#YiETN27(bTO=D{)8B%G%bHHuP zuS36aUPxsEa`cbMZ{@jwyelB@@!3;UAQjLbP#6dp7!Jrs0`l>Id?Fx62OL$wuwgv4 zwgQQO0_s%k5vpJ_^EFgqK#Sm6U^`zgI~(J1SxB{Fq9r%qNSp%m{P`I1ijeAzL+(ML z;v7t<>5%H81m>AwS|JdpAfM9)1I#8~XTUtZE{FUB*-&wO5^na1d96(MLx95O`L9NWX8dQ|}!B%pAm^W#Q7z7~w`u!+Wa0HxX#*4Yy@s|p}4*Jb6g;bvTPh@Wl9s*y0$MtoRW2Wu(*)s_%d9Dlff;9 zF^C@}1z2xm1>(uz3^P?=&LEb>f)|0?1ycocU~1vZ(2r*E?wIAaf}PB^f<43@YG^Ca zClsj0LxQQsBg|HRLNHaBmQ>VYTVR;k7MKuB_ETWbb`cfO$_loCcEMCY2eU08$7~De z6ify52`2jk%+~&hi=_uufD)(xEC7#c!I&^WKAjLu1>n6#(Z^IkGqWuK3*)2gw=vrW zWN81@_5c;oE(}ruor0-=9$}Ei%z$8O09MpTHDE~OC;KCU$^L{V5~zSMM!4+}DgbMw zB2xh^%(ew7X6u4h!BjxIV6vZMwmszahy*I2m)RE32QH54ZP?Xfxh)Vux7dSJ;HY3K zkYbB$kiyh&8RdB@jsz;;pY+(|;Zwm4;H2OgV1xrR4=nj0X0>RAN(*@c@>Z6wg?xRy zLS+T71Lv5Px#0i2PzXVxi}_v{sH&?_J%S_PUgo`!N9I+iKISLDtD7rSzu+`@P;dr3 z%xudqMn5tTf&yks)57KFqkxtQHO|}$K7Cn*3UhQMJ`J2?_FIH8Bjh2->1_SJOcSJ zv-R-^vx9y5P!2uBd@}9Z=PS(qz1&K_4e8_;JZNSt`~f_7PlYP%?1B3KxS39BA*j8# zncf^#=B=FFbfb5&^w!R9y0tRfO}FQd3K#!gZmuWrKFQx)f9E-|x!%gjs|v^d z!QWheVMJ`M)6$)q%bV+u{n7cmht2f~xn4zqiWgs(p;zk4D~rp~&x0e;N|j*wo#0r! zvba3m172TOSzL}1uLHNTKAENq>pxQsl6w&-WI18#78p!cDlCVLg5?h8C6LdXSE;ZZ zGIHW6;7-9L?`6K6>@BV=E=SFN3RZ%{kn^tX9P`nEu~LHB#+_h3tbe;t92cN!CZFAX zr&T7|!EwQ){qnegKDs~xyKAe&t~(tUgn5^pj|eV(v2+v9>R!E{{EBbbg0`oZKW zdt5L`tbcW&bX;)ofH^KW_MkW}pt$cJ7hHT$9v9HIJ6W^WIJ5OvxXzbbe{ywDvQ;ymVa9&Kc}+K}Ue|%+^2;vpp`LPbW=dAvNS*V0AO5D!dRcyBK?f zU#~3gh+Yh?>uSW@#R_>Ogmz+XV*V94a!;kc2wSEn9R^IjAM*?gPx%mpdn#3)c_X-f z0P~LEngKoIRcFQruYs)j@ygxF!?!iU-HHBO$#dtngwAB;EwJokx5YI4|TE zg1eaUVy+(ir3#aN1oA%SH^H&X!ipM2a-Y3$v4^X+A_}yJi#>b{xc2IBv4_*d9pPdR zUjRNc7gnQe5HIE$!(S?ZDY^y+9`Xg-cbu!S4E(X(HpxxphXZhR@D|K8yy43aM zb}y2aHKcF%9-9Tz-XpDVe7T4HWF%xb!R~hE1k+|`p4o2kcM4uKs8pBW5V#jy+zic@ zHn?pC`&s`k?>zqyVvrMT1%|Bx`?;{PL8tgZ*ar^wt&1aKrQGJOa=4{rUC|qK`LNWF!j(Fv$a1i@{@f` zyZ*6`bwQF6c+^q>EzH)(ZGx$Q46`jDEAmqT9fGL=U4qGeFW4OG*a8MwftU&yVzvbg zgNvhj8y-`ZTbIy&v~2(t7{>C~G8IS*e(Pd$W`XU;VgePIf&vv_xA@b78}fK=1SUdCk zz|G6hV}cXloW}_lKw&9L%L}dr_b`8-eX39bbXGQUgusO^y8lfc7*Yr)<) zCs?0PFrRxRCgUyWLjLrKSp#Py=DP_HnTvX^K(Mh&h4Dgs2s|ZIReX04x{8*ZRmC;& zH1Pavm1^or>DQhv*= z%+_mJ!Q{1e!f!s#xUNT@adS!T>L=4uB=J1qIjTH^QNcm7L`S=L%U7TnMJB#(e6z-vk2Cj2gW!!gTH z;(er0?wXH55Jx`-j=E-*N!&(^N0^px#5?ucx3P+R3CXoLS1B9uO|3dd+GAifZ_1!?Q+8VaOCT zQssYaZ|QYPEqbY{xIy&|a0L6xZCvUeaNXOb5c3C;W1l(8^1px=msc0JVTc!i^FqD| z+{wHQ?+aqsm*z0EP+f~SG$mTCdRgIYD4Y|oF2)(+wz&TFJD95IJ_gw+>zbHVS6z%b zmd9CcVpO8KxMN~tRFdam8>3Q!DMZ9Rfqm<yOk zvL>cT)yiz=#WrR;FLLBDfrlbh2g_-mq9vi8;e0eES^>PL~G1}yu4tV z^ST7nl-J8_r@R5dH02E%){`A~vI*A|%12noMy^q2>!C4b>meI?Y~%`KN}*}RdMLqc zBbN;{B&W!g^5uS{q6*kZVdQ~&eS8;ixgOhtrt6pZKNVM=7j>ev5VQdu}3huv5y(E zleugpvOEAe1ri&%Mg&vjqDbXg1qxkhjyyJUWtnZ{>R`5!i#9f7Ae_ySJ0?NZ+I=o7L0>Ae-<_)Xm zIp9&2XCPmI32#jBJTSeXCH zq9+8`f|Fos%p%C=q^ni4;91}lv+a#G=8K?T+giOlzbV=gjmBK)J( z#rK0I@PgyeAo?ndezW+kxE4%-r1FTqxY8|sD=y2)tMr#E-50%6U@)Sh#R<_YDdN%Mg!p~P>8n>s zo=Z%F7DvtQv29>Am?uam`&XLv_aXl=si@gJCVlgbnH5p9c?@1|^_874Ps?Gh*cdHN zkRCX>Ich#0O$MF^M>2(`i2G~D`zv5-Hd_45<&^8OCwf`5xcf!i1RlpIr_AROMpG;m?hQ!gT+F&9;1)qVkGpT>$aj{=#G2ghzk z_eOnr7TnMkEq=L;cr`d7y!agu`jTf_FnuSa)o?3TsQ9hy!-un3!G0+ObutEs z=}RGez?Y6?)*s~u5qV3_iC(<7dlyeTpYAtuP1s? ze=P1UbzUj#io2gLcf-|%MN{1h$4yl0zcseW?!mPUO$~cZ;xxI9$NHuCVBOJz7;`2?f*Qj3YG(jBnk^e7iYT%>eApUPY zDwyV@%L2W8sVN270_pV7VuK2mxs6K82EnysevVX90|ptD~^TqWZ{ zA00--p!8fo|6knn0e$vdl$H;Oo4B-by@SL-r_p>xRx|pC5W{J|n(IDQ<+K&ceJQmW(eC&%6+rvH~_pDf~2@TXbdnRXkzUUm~DFD5m?lr6;%3(1M? z!$W*3{?LD(pv%hXA45pCJx_A7pF3KPkBLpvGfsDB%wGXvFFzBcypsNKPth$E-mb4d z-JLm=>{y>zQ9{3UGDP%UcKVJST_idUe4m>7kQPb1zvC8<=T2P9b)v zxrOgs?mjam*1NQnwz+W2_3rECvA$)cwC=(!H@aov*x-s%+8u@4Kj(fnHaoMSly*06 z+a(uH{JQ(?x;e>9N;;3@w&f@;{G-oZ?ac1XmXut$v`2E`y!+fkRkOQ3Qql=Qr&n^} zydSyORm^Uty%Jp1z$)mZB<51Za;4cX#ckT@E z{Q-VlFu8WWU~=PYNAnU@{<%^e$%(TBlfxEE*5^It9;%)9`BE10*RsMf!)_t&-ubjX zIO_hy>DRjsxSrc~qHa2fl~0?#@}Rps(s3e|*tq)j_kd1bA2{fq<|b3R>5#k1N$IVJ zfE}mmZxLd_07P(Ze91j6(nBu71xqi%Qg&t063`jb2cYD})4J(pWbM;iUk2vS(BC4= z=mS7!SU3I|FFCyxFK)|P{jEQ{tK9h4^+CLn^c6@mdMmw*>Rt3Qq7UH3?LAXBjX@`` zw~iroNbjN-2kw_}}ddevPO*?%iK3)dQb d<*R7M=mx(TY5hH*n?&zH%S}$!O@DP4{1=X3bW#8S delta 21065 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 YE#7U!-TQ!c60-*_yC>>~PTS4@7n4UT2mk;8 diff --git a/pkg/internal/ebpf/nethttp/bpf_tp_debug_bpfel_arm64.o b/pkg/internal/ebpf/nethttp/bpf_tp_debug_bpfel_arm64.o index 446b631370ee7056109302543a7788b47f413368..548444372a80c3fd409862393632556eb33c9e61 100644 GIT binary patch delta 23427 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 delta 22957 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 a+cPa`vm1ea$25D(3fLQ6Z4a&}sQrIBpBJ$J diff --git a/pkg/internal/ebpf/nethttp/bpf_tp_debug_bpfel_x86.o b/pkg/internal/ebpf/nethttp/bpf_tp_debug_bpfel_x86.o index f58cef67a70ec15d2e7ecf3aca955f217e5a37f0..0031f355e3e8e6310a1a292490d6c256bdcf2c13 100644 GIT binary patch delta 23100 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 Yn-9*0Rcfw3>uhA#v)vy&yI|3O1A!IchyVZp diff --git a/pkg/internal/netolly/ebpf/net_bpfel_arm64.go b/pkg/internal/netolly/ebpf/net_bpfel_arm64.go index 70b212ba0..1ceaac6a3 100644 --- a/pkg/internal/netolly/ebpf/net_bpfel_arm64.go +++ b/pkg/internal/netolly/ebpf/net_bpfel_arm64.go @@ -1,5 +1,6 @@ // Code generated by bpf2go; DO NOT EDIT. //go:build arm64 +// +build arm64 package ebpf diff --git a/pkg/internal/netolly/ebpf/net_bpfel_x86.go b/pkg/internal/netolly/ebpf/net_bpfel_x86.go index e6b2dd4bd..967eef7d3 100644 --- a/pkg/internal/netolly/ebpf/net_bpfel_x86.go +++ b/pkg/internal/netolly/ebpf/net_bpfel_x86.go @@ -1,5 +1,6 @@ // Code generated by bpf2go; DO NOT EDIT. //go:build 386 || amd64 +// +build 386 amd64 package ebpf diff --git a/test/integration/suites_test.go b/test/integration/suites_test.go index a2451e942..3e237dd83 100644 --- a/test/integration/suites_test.go +++ b/test/integration/suites_test.go @@ -135,6 +135,7 @@ func TestSuite_OldestGoVersion(t *testing.T) { } func TestSuite_UnsupportedGoVersion(t *testing.T) { + t.Skip("seems flaky, we need to look into this") compose, err := docker.ComposeSuite("docker-compose-1.16.yml", path.Join(pathOutput, "test-suite-unsupported-go.log")) require.NoError(t, err) require.NoError(t, compose.Up()) From 4fa2007495eb8df584fdc3a9df732e7b1031807e Mon Sep 17 00:00:00 2001 From: khushijain21 Date: Fri, 23 Feb 2024 09:56:50 +0530 Subject: [PATCH 16/46] add release namespace --- deployments/helm/.helmignore | 1 + deployments/helm/templates/_helpers.tpl | 12 ++++++++++++ deployments/helm/templates/cluster-role-binding.yaml | 1 + deployments/helm/templates/cluster-role.yaml | 1 + deployments/helm/templates/daemon-set.yml | 1 + deployments/helm/templates/serviceaccount.yaml | 1 + deployments/helm/values.yaml | 3 +++ 7 files changed, 20 insertions(+) diff --git a/deployments/helm/.helmignore b/deployments/helm/.helmignore index 0e8a0eb36..63cec6436 100644 --- a/deployments/helm/.helmignore +++ b/deployments/helm/.helmignore @@ -21,3 +21,4 @@ .idea/ *.tmproj .vscode/ +.github diff --git a/deployments/helm/templates/_helpers.tpl b/deployments/helm/templates/_helpers.tpl index 9290a143b..efcdb0e30 100644 --- a/deployments/helm/templates/_helpers.tpl +++ b/deployments/helm/templates/_helpers.tpl @@ -23,6 +23,18 @@ If release name contains chart name it will be used as a full name. {{- end }} {{- end }} +{{/* +Allow the release namespace to be overridden for multi-namespace deployments in combined charts +*/}} +{{- define "beyla.namespace" -}} +{{- if .Values.namespaceOverride }} +{{- .Values.namespaceOverride }} +{{- else }} +{{- .Release.Namespace }} +{{- end }} +{{- end }} + + {{/* Create chart name and version as used by the chart label. */}} diff --git a/deployments/helm/templates/cluster-role-binding.yaml b/deployments/helm/templates/cluster-role-binding.yaml index 5846945cd..efae11d68 100644 --- a/deployments/helm/templates/cluster-role-binding.yaml +++ b/deployments/helm/templates/cluster-role-binding.yaml @@ -3,6 +3,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: {{ include "beyla.fullname" . }} + namespace: {{ include "beyla.namespace" .}} labels: {{- include "beyla.labels" . | nindent 4 }} {{- with .Values.annotations }} diff --git a/deployments/helm/templates/cluster-role.yaml b/deployments/helm/templates/cluster-role.yaml index 94ddccc77..651c778ed 100644 --- a/deployments/helm/templates/cluster-role.yaml +++ b/deployments/helm/templates/cluster-role.yaml @@ -3,6 +3,7 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: {{ include "beyla.fullname" . }} + namespace: {{ include "beyla.namespace" .}} labels: {{- include "beyla.labels" . | nindent 4 }} {{- with .Values.annotations }} diff --git a/deployments/helm/templates/daemon-set.yml b/deployments/helm/templates/daemon-set.yml index 561ee024e..41514ff69 100644 --- a/deployments/helm/templates/daemon-set.yml +++ b/deployments/helm/templates/daemon-set.yml @@ -2,6 +2,7 @@ apiVersion: apps/v1 kind: DaemonSet metadata: name: {{ include "beyla.fullname" . }} + namespace: {{ include "beyla.namespace" .}} labels: {{- include "beyla.labels" . | nindent 2 }} {{- with .Values.annotations }} diff --git a/deployments/helm/templates/serviceaccount.yaml b/deployments/helm/templates/serviceaccount.yaml index 4137cc097..54c876a29 100644 --- a/deployments/helm/templates/serviceaccount.yaml +++ b/deployments/helm/templates/serviceaccount.yaml @@ -3,6 +3,7 @@ apiVersion: v1 kind: ServiceAccount metadata: name: {{ include "beyla.serviceAccountName" . }} + namespace: {{ include "beyla.namespace" .}} labels: {{- include "beyla.labels" . | nindent 4 }} {{- with .Values.serviceAccount.labels }} diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index 5fac64a4a..56f842011 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -5,8 +5,11 @@ image: tag: "main" imagePullSecrets: [] + nameOverride: "" fullnameOverride: "" +## Override the deployment namespace +namespaceOverride: "" ## DaemonSet annotations # annotations: {} From 1b2675028e772b73bf3119fb3e749ee68e78b366 Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Fri, 23 Feb 2024 11:17:34 +0530 Subject: [PATCH 17/46] Update cluster-role.yaml --- deployments/helm/templates/cluster-role.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/deployments/helm/templates/cluster-role.yaml b/deployments/helm/templates/cluster-role.yaml index 651c778ed..118a877ac 100644 --- a/deployments/helm/templates/cluster-role.yaml +++ b/deployments/helm/templates/cluster-role.yaml @@ -3,7 +3,6 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: {{ include "beyla.fullname" . }} - namespace: {{ include "beyla.namespace" .}} labels: {{- include "beyla.labels" . | nindent 4 }} {{- with .Values.annotations }} @@ -17,4 +16,4 @@ rules: - apiGroups: [""] resources: ["pods"] verbs: ["list", "watch"] -{{- end }} \ No newline at end of file +{{- end }} From 8e7bf8b36c6cbae857318139d0f57611c55ade0e Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Fri, 23 Feb 2024 11:17:49 +0530 Subject: [PATCH 18/46] Update cluster-role-binding.yaml --- deployments/helm/templates/cluster-role-binding.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/deployments/helm/templates/cluster-role-binding.yaml b/deployments/helm/templates/cluster-role-binding.yaml index efae11d68..2b8141236 100644 --- a/deployments/helm/templates/cluster-role-binding.yaml +++ b/deployments/helm/templates/cluster-role-binding.yaml @@ -3,7 +3,6 @@ apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: {{ include "beyla.fullname" . }} - namespace: {{ include "beyla.namespace" .}} labels: {{- include "beyla.labels" . | nindent 4 }} {{- with .Values.annotations }} @@ -18,4 +17,4 @@ roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: {{ include "beyla.fullname" . }} -{{- end }} \ No newline at end of file +{{- end }} From b1332f604e6d410fa5c33225ffecaab63559eed8 Mon Sep 17 00:00:00 2001 From: khusjain Date: Fri, 23 Feb 2024 13:28:50 +0530 Subject: [PATCH 19/46] values.yaml --- deployments/helm/values.yaml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index 56f842011..5fc74e5ac 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -120,3 +120,29 @@ nodeSelector: {} tolerations: [] affinity: {} + +# Enable creating the grafana configmap +configmap: + create: true + ## Use an existing ClusterRole/Role (depending on rbac.namespaced false/true) + # useExistingRole: name-of-some-role + # useExistingClusterRole: name-of-some-clusterRole + namespaced: false + +## More configuration options available at https://grafana.com/docs/beyla/latest/configure/options/ +configmapData: + open_port: 8443 + routes: + unmatched: heuristic + log_level: debug + otel_traces_export: + endpoint: http://grafana-agent:4318 + discovery: + services: + - k8s_namespace: [default, demo] + attributes: + kubernetes: + enable: true + +## Env variables that will override configmap values +env: {} \ No newline at end of file From d9f0ac97bec7411afb16acbec471bef7e387a031 Mon Sep 17 00:00:00 2001 From: khusjain Date: Fri, 23 Feb 2024 13:57:29 +0530 Subject: [PATCH 20/46] configmap and env --- deployments/helm/templates/configmap.yaml | 16 ++++++++++++++++ deployments/helm/templates/daemon-set.yml | 18 ++++++++++-------- deployments/helm/values.yaml | 13 ++++++------- 3 files changed, 32 insertions(+), 15 deletions(-) create mode 100644 deployments/helm/templates/configmap.yaml diff --git a/deployments/helm/templates/configmap.yaml b/deployments/helm/templates/configmap.yaml new file mode 100644 index 000000000..090fab5b7 --- /dev/null +++ b/deployments/helm/templates/configmap.yaml @@ -0,0 +1,16 @@ +{{- if and .Values.createConfigmap (not .Values.useExistingConfigMap) }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "beyla.fullname" . }} + namespace: {{ include "beyla.namespace" . }} + labels: + {{- include "beyla.labels" . | nindent 4 }} + {{- with .Values.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +data: + beyla-config.yml: | + {{- toYaml .Values.configmapData | nindent 4}} +{{- end }} diff --git a/deployments/helm/templates/daemon-set.yml b/deployments/helm/templates/daemon-set.yml index 41514ff69..322ee5f48 100644 --- a/deployments/helm/templates/daemon-set.yml +++ b/deployments/helm/templates/daemon-set.yml @@ -25,7 +25,11 @@ spec: volumes: - name: beyla-config configMap: - name: beyla-config + {{- if .Values.useExistingConfigMap }} + name: {{ .Values.useExistingConfigMap }} + {{- else }} + name: {{ include "beyla.fullname" . }} + {{- end }} containers: - name: beyla image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" @@ -40,11 +44,9 @@ spec: value: "/config/beyla-config.yml" - name: BEYLA_PRINT_TRACES value: "true" - - name: BEYLA_OPEN_PORT - value: "8443" - - name: OTEL_EXPORTER_OTLP_ENDPOINT - value: "http://grafana-agent:4318" - - name: BEYLA_LOG_LEVEL - value: "DEBUG" - name: OTEL_RESOURCE_ATTRIBUTES - value: "deployment.environment=production" \ No newline at end of file + value: "deployment.environment=production" + {{- range $key, $value := .Values.env }} + - name: {{ $key }} + value: "{{ $value }}" + {{- end }} \ No newline at end of file diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index 5fc74e5ac..664e3f911 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -122,12 +122,9 @@ tolerations: [] affinity: {} # Enable creating the grafana configmap -configmap: - create: true - ## Use an existing ClusterRole/Role (depending on rbac.namespaced false/true) - # useExistingRole: name-of-some-role - # useExistingClusterRole: name-of-some-clusterRole - namespaced: false +createConfigmap: true +## or use an existing configmap +# useExistingConfigMap: name-of-some-configmap ## More configuration options available at https://grafana.com/docs/beyla/latest/configure/options/ configmapData: @@ -139,10 +136,12 @@ configmapData: endpoint: http://grafana-agent:4318 discovery: services: - - k8s_namespace: [default, demo] + - k8s_namespace: default attributes: kubernetes: enable: true ## Env variables that will override configmap values +## For example: +## BEYLA_BPF_WAKEUP_LEN: 100 env: {} \ No newline at end of file From 5c5cace30feab623ea5ee76ba3d023caee778d37 Mon Sep 17 00:00:00 2001 From: khusjain Date: Fri, 23 Feb 2024 14:18:05 +0530 Subject: [PATCH 21/46] secret ref --- deployments/helm/templates/daemon-set.yml | 9 +++++++-- deployments/helm/values.yaml | 8 +++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/deployments/helm/templates/daemon-set.yml b/deployments/helm/templates/daemon-set.yml index 322ee5f48..7921c3566 100644 --- a/deployments/helm/templates/daemon-set.yml +++ b/deployments/helm/templates/daemon-set.yml @@ -46,7 +46,12 @@ spec: value: "true" - name: OTEL_RESOURCE_ATTRIBUTES value: "deployment.environment=production" - {{- range $key, $value := .Values.env }} + {{- range $key, $value := .Values.env }} - name: {{ $key }} value: "{{ $value }}" - {{- end }} \ No newline at end of file + {{- end }} + {{- range $key, $value := .Values.envValueFrom }} + - name: {{ $key | quote }} + valueFrom: + {{- tpl (toYaml $value) $ | nindent 10 }} + {{- end }} \ No newline at end of file diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index 664e3f911..5bfd53ac1 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -144,4 +144,10 @@ configmapData: ## Env variables that will override configmap values ## For example: ## BEYLA_BPF_WAKEUP_LEN: 100 -env: {} \ No newline at end of file +env: {} + +envValueFrom: {} + # ENV_NAME: + # secretKeyRef: + # name: secret-name + # key: value_key \ No newline at end of file From 5f864ac11d0e7359aa9900fb5279005a26ef9c21 Mon Sep 17 00:00:00 2001 From: khusjain Date: Fri, 23 Feb 2024 14:46:42 +0530 Subject: [PATCH 22/46] values.yaml --- deployments/helm/values.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index 5bfd53ac1..71e2b5c03 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -134,6 +134,12 @@ configmapData: log_level: debug otel_traces_export: endpoint: http://grafana-agent:4318 + ## or alternatively use + # grafana: + # otlp: + # cloud_zone: prod-eu-west-0 + # cloud_instance_id: 123456 + # cloud_api_key: discovery: services: - k8s_namespace: default From b2879a6126c84541cbdc0e93d2e3b9a077d0e44a Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Fri, 23 Feb 2024 16:37:44 +0530 Subject: [PATCH 23/46] Update configmap.yaml --- deployments/helm/templates/configmap.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/deployments/helm/templates/configmap.yaml b/deployments/helm/templates/configmap.yaml index 090fab5b7..e39286aa1 100644 --- a/deployments/helm/templates/configmap.yaml +++ b/deployments/helm/templates/configmap.yaml @@ -3,7 +3,6 @@ apiVersion: v1 kind: ConfigMap metadata: name: {{ include "beyla.fullname" . }} - namespace: {{ include "beyla.namespace" . }} labels: {{- include "beyla.labels" . | nindent 4 }} {{- with .Values.annotations }} From ca8621c53518422c49399923e39b56f6a15de43a Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Fri, 23 Feb 2024 16:38:46 +0530 Subject: [PATCH 24/46] Update configmap.yaml --- deployments/helm/templates/configmap.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/deployments/helm/templates/configmap.yaml b/deployments/helm/templates/configmap.yaml index e39286aa1..090fab5b7 100644 --- a/deployments/helm/templates/configmap.yaml +++ b/deployments/helm/templates/configmap.yaml @@ -3,6 +3,7 @@ apiVersion: v1 kind: ConfigMap metadata: name: {{ include "beyla.fullname" . }} + namespace: {{ include "beyla.namespace" . }} labels: {{- include "beyla.labels" . | nindent 4 }} {{- with .Values.annotations }} From e9ec4abaafb73ab2a4e71e84afc5e93d54311b79 Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Fri, 23 Feb 2024 17:01:02 +0530 Subject: [PATCH 25/46] Update values.yaml --- deployments/helm/values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index 71e2b5c03..c8ea512a2 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -121,7 +121,7 @@ tolerations: [] affinity: {} -# Enable creating the grafana configmap + createConfigmap: true ## or use an existing configmap # useExistingConfigMap: name-of-some-configmap @@ -156,4 +156,4 @@ envValueFrom: {} # ENV_NAME: # secretKeyRef: # name: secret-name - # key: value_key \ No newline at end of file + # key: value_key From 2d05fc21a07dc2a4e634ba4ca2d410fbb4914663 Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Fri, 23 Feb 2024 17:02:03 +0530 Subject: [PATCH 26/46] Update configmap.yaml --- deployments/helm/templates/configmap.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployments/helm/templates/configmap.yaml b/deployments/helm/templates/configmap.yaml index 090fab5b7..f1b011b21 100644 --- a/deployments/helm/templates/configmap.yaml +++ b/deployments/helm/templates/configmap.yaml @@ -1,4 +1,4 @@ -{{- if and .Values.createConfigmap (not .Values.useExistingConfigMap) }} +{{- if (not .Values.useExistingConfigMap) }} apiVersion: v1 kind: ConfigMap metadata: From b32572923aa6555a7d516c1986708e3d446c1540 Mon Sep 17 00:00:00 2001 From: khusjain Date: Fri, 23 Feb 2024 20:42:17 +0530 Subject: [PATCH 27/46] values.yaml --- deployments/helm/values.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index c8ea512a2..a846b3536 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -121,9 +121,7 @@ tolerations: [] affinity: {} - -createConfigmap: true -## or use an existing configmap +# use an existing configmap # useExistingConfigMap: name-of-some-configmap ## More configuration options available at https://grafana.com/docs/beyla/latest/configure/options/ From d3e6ab44ca752155ec46451dbac0a71cab046eaa Mon Sep 17 00:00:00 2001 From: khusjain Date: Mon, 26 Feb 2024 10:25:34 +0530 Subject: [PATCH 28/46] configmap and daemonset changes --- deployments/helm/templates/daemon-set.yml | 6 +---- deployments/helm/templates/hpa.yaml | 32 ----------------------- 2 files changed, 1 insertion(+), 37 deletions(-) delete mode 100644 deployments/helm/templates/hpa.yaml diff --git a/deployments/helm/templates/daemon-set.yml b/deployments/helm/templates/daemon-set.yml index 7921c3566..d75d8e998 100644 --- a/deployments/helm/templates/daemon-set.yml +++ b/deployments/helm/templates/daemon-set.yml @@ -25,11 +25,7 @@ spec: volumes: - name: beyla-config configMap: - {{- if .Values.useExistingConfigMap }} - name: {{ .Values.useExistingConfigMap }} - {{- else }} - name: {{ include "beyla.fullname" . }} - {{- end }} + name: {{ default (include "beyla.fullname" .) .Values.useExistingConfigMap}} containers: - name: beyla image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" diff --git a/deployments/helm/templates/hpa.yaml b/deployments/helm/templates/hpa.yaml deleted file mode 100644 index 2adf251d4..000000000 --- a/deployments/helm/templates/hpa.yaml +++ /dev/null @@ -1,32 +0,0 @@ -{{- if .Values.autoscaling.enabled }} -apiVersion: autoscaling/v2 -kind: HorizontalPodAutoscaler -metadata: - name: {{ include "beyla.fullname" . }} - labels: - {{- include "beyla.labels" . | nindent 4 }} -spec: - scaleTargetRef: - apiVersion: apps/v1 - kind: Deployment - name: {{ include "beyla.fullname" . }} - minReplicas: {{ .Values.autoscaling.minReplicas }} - maxReplicas: {{ .Values.autoscaling.maxReplicas }} - metrics: - {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} - {{- end }} - {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} - - type: Resource - resource: - name: memory - target: - type: Utilization - averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} - {{- end }} -{{- end }} From 9e0c4e6b6ce5ea54fa1a0aa1e24115efa7959f8b Mon Sep 17 00:00:00 2001 From: khusjain Date: Mon, 26 Feb 2024 10:34:20 +0530 Subject: [PATCH 29/46] 101 --- deployments/helm/templates/cluster-role.yaml | 3 +++ deployments/helm/templates/daemon-set.yml | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/deployments/helm/templates/cluster-role.yaml b/deployments/helm/templates/cluster-role.yaml index 118a877ac..e415ea544 100644 --- a/deployments/helm/templates/cluster-role.yaml +++ b/deployments/helm/templates/cluster-role.yaml @@ -16,4 +16,7 @@ rules: - apiGroups: [""] resources: ["pods"] verbs: ["list", "watch"] + {{- with .Values.rbac.extraClusterRoleRules }} + {{- toYaml . | nindent 2 }} + {{- end}} {{- end }} diff --git a/deployments/helm/templates/daemon-set.yml b/deployments/helm/templates/daemon-set.yml index d75d8e998..47d4a8db5 100644 --- a/deployments/helm/templates/daemon-set.yml +++ b/deployments/helm/templates/daemon-set.yml @@ -49,5 +49,5 @@ spec: {{- range $key, $value := .Values.envValueFrom }} - name: {{ $key | quote }} valueFrom: - {{- tpl (toYaml $value) $ | nindent 10 }} + {{- tpl (toYaml $value) $ | nindent 16 }} {{- end }} \ No newline at end of file From bee8909d7cc5264d6b8373a7d0c8d6858e9f7cb8 Mon Sep 17 00:00:00 2001 From: khusjain Date: Mon, 26 Feb 2024 11:50:27 +0530 Subject: [PATCH 30/46] changed existing configmap --- deployments/helm/templates/configmap.yaml | 2 +- deployments/helm/templates/daemon-set.yml | 2 +- deployments/helm/values.yaml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/deployments/helm/templates/configmap.yaml b/deployments/helm/templates/configmap.yaml index f1b011b21..373b7fa5e 100644 --- a/deployments/helm/templates/configmap.yaml +++ b/deployments/helm/templates/configmap.yaml @@ -1,4 +1,4 @@ -{{- if (not .Values.useExistingConfigMap) }} +{{- if (not .Values.externalBeylaConfigMap) }} apiVersion: v1 kind: ConfigMap metadata: diff --git a/deployments/helm/templates/daemon-set.yml b/deployments/helm/templates/daemon-set.yml index 47d4a8db5..1c795f8d1 100644 --- a/deployments/helm/templates/daemon-set.yml +++ b/deployments/helm/templates/daemon-set.yml @@ -25,7 +25,7 @@ spec: volumes: - name: beyla-config configMap: - name: {{ default (include "beyla.fullname" .) .Values.useExistingConfigMap}} + name: {{ default (include "beyla.fullname" .) .Values.externalBeylaConfigMap}} containers: - name: beyla image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index a846b3536..2a6a01a33 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -121,8 +121,8 @@ tolerations: [] affinity: {} -# use an existing configmap -# useExistingConfigMap: name-of-some-configmap +# use an external configmap for Beyla - this will replace existing configmap from chart +# externalBeylaConfigMap: name-of-some-configmap ## More configuration options available at https://grafana.com/docs/beyla/latest/configure/options/ configmapData: From 20cf6b7809aab57bd6821eb03107fc259a7e8032 Mon Sep 17 00:00:00 2001 From: khusjain Date: Mon, 26 Feb 2024 14:31:39 +0530 Subject: [PATCH 31/46] clusterolebinding --- deployments/helm/templates/cluster-role-binding.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployments/helm/templates/cluster-role-binding.yaml b/deployments/helm/templates/cluster-role-binding.yaml index 2b8141236..41ada6d01 100644 --- a/deployments/helm/templates/cluster-role-binding.yaml +++ b/deployments/helm/templates/cluster-role-binding.yaml @@ -12,7 +12,7 @@ metadata: subjects: - kind: ServiceAccount name: {{ include "beyla.serviceAccountName" . }} - namespace: beyla + namespace: {{ include "beyla.namespace" .}} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole From e317ccb31af67147c136840b0e37dd196fd084be Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Mon, 26 Feb 2024 14:33:25 +0530 Subject: [PATCH 32/46] Update cluster-role-binding.yaml --- deployments/helm/templates/cluster-role-binding.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployments/helm/templates/cluster-role-binding.yaml b/deployments/helm/templates/cluster-role-binding.yaml index 2b8141236..41ada6d01 100644 --- a/deployments/helm/templates/cluster-role-binding.yaml +++ b/deployments/helm/templates/cluster-role-binding.yaml @@ -12,7 +12,7 @@ metadata: subjects: - kind: ServiceAccount name: {{ include "beyla.serviceAccountName" . }} - namespace: beyla + namespace: {{ include "beyla.namespace" .}} roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole From ee0c643259ac372e57e16a17452310f652d4b254 Mon Sep 17 00:00:00 2001 From: khusjain Date: Mon, 26 Feb 2024 15:24:57 +0530 Subject: [PATCH 33/46] added comments for external configmap --- deployments/helm/values.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index 2a6a01a33..9ef02149f 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -121,8 +121,10 @@ tolerations: [] affinity: {} -# use an external configmap for Beyla - this will replace existing configmap from chart -# externalBeylaConfigMap: name-of-some-configmap +# To use an external configmap for Beyla - this will replace existing configmap from chart +# kubectl create cm --from-file=beyla-config.yaml= -n +# externalBeylaConfigMap: + ## More configuration options available at https://grafana.com/docs/beyla/latest/configure/options/ configmapData: From c2006bc9949844a1801755ff6d92d8234ded49ab Mon Sep 17 00:00:00 2001 From: Syed Nihal Date: Tue, 27 Feb 2024 00:07:13 +0530 Subject: [PATCH 34/46] adding k8s service in helm chart to expose internal beyla metrics. Signed-off-by: Syed Nihal --- deployments/helm/templates/_helpers.tpl | 15 ++++++ deployments/helm/templates/daemon-set.yml | 10 +++- deployments/helm/templates/hpa.yaml | 32 ------------- deployments/helm/templates/service.yaml | 58 +++++++++++++++++++++++ deployments/helm/values.yaml | 33 +++++++++---- 5 files changed, 104 insertions(+), 44 deletions(-) delete mode 100644 deployments/helm/templates/hpa.yaml create mode 100644 deployments/helm/templates/service.yaml diff --git a/deployments/helm/templates/_helpers.tpl b/deployments/helm/templates/_helpers.tpl index efcdb0e30..a633b887f 100644 --- a/deployments/helm/templates/_helpers.tpl +++ b/deployments/helm/templates/_helpers.tpl @@ -72,3 +72,18 @@ Create the name of the service account to use {{- default "default" .Values.serviceAccount.name }} {{- end }} {{- end }} + + +{{/* +Returns the internal metrics port if set via environment variable or via yaml configuration. +Note: Precedence is given for environment variable +*/}} +{{- define "beyla.internalMetricsPort" -}} +{{- if .Values.env.BEYLA_INTERNAL_METRICS_PROMETHEUS_PORT }} +{{- print .Values.env.BEYLA_INTERNAL_METRICS_PROMETHEUS_PORT }} +{{ else if and (.Values.configmapData.prometheus_export) (ne (.Values.configmapData.prometheus_export.port | quote ) "") }} +{{- print .Values.configmapData.prometheus_export.port }} +{{- else }} +{{- print 0 }} +{{- end }} +{{- end }} diff --git a/deployments/helm/templates/daemon-set.yml b/deployments/helm/templates/daemon-set.yml index 47506c8aa..9f1ccfba3 100644 --- a/deployments/helm/templates/daemon-set.yml +++ b/deployments/helm/templates/daemon-set.yml @@ -1,3 +1,4 @@ +{{ $internalMetricsPort := include "beyla.internalMetricsPort" . }} apiVersion: apps/v1 kind: DaemonSet metadata: @@ -12,11 +13,11 @@ metadata: spec: selector: matchLabels: - instrumentation: {{ include "beyla.fullname" . }} +{{ include "beyla.selectorLabels" . | indent 6 }} template: metadata: labels: - instrumentation: {{ include "beyla.fullname" . }} +{{ include "beyla.selectorLabels" . | indent 8 }} spec: {{- if .Values.serviceAccount.create }} serviceAccountName: {{ include "beyla.serviceAccountName" . }} @@ -32,6 +33,11 @@ spec: imagePullPolicy: {{ .Values.image.pullPolicy }} securityContext: privileged: true + ports: + {{- if ne $internalMetricsPort "0" }} + - containerPort: {{ $internalMetricsPort }} + protocol: TCP + {{- end }} volumeMounts: - mountPath: /config name: beyla-config diff --git a/deployments/helm/templates/hpa.yaml b/deployments/helm/templates/hpa.yaml deleted file mode 100644 index 2adf251d4..000000000 --- a/deployments/helm/templates/hpa.yaml +++ /dev/null @@ -1,32 +0,0 @@ -{{- if .Values.autoscaling.enabled }} -apiVersion: autoscaling/v2 -kind: HorizontalPodAutoscaler -metadata: - name: {{ include "beyla.fullname" . }} - labels: - {{- include "beyla.labels" . | nindent 4 }} -spec: - scaleTargetRef: - apiVersion: apps/v1 - kind: Deployment - name: {{ include "beyla.fullname" . }} - minReplicas: {{ .Values.autoscaling.minReplicas }} - maxReplicas: {{ .Values.autoscaling.maxReplicas }} - metrics: - {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} - {{- end }} - {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} - - type: Resource - resource: - name: memory - target: - type: Utilization - averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} - {{- end }} -{{- end }} diff --git a/deployments/helm/templates/service.yaml b/deployments/helm/templates/service.yaml new file mode 100644 index 000000000..eb361c00e --- /dev/null +++ b/deployments/helm/templates/service.yaml @@ -0,0 +1,58 @@ +{{- if .Values.service.enabled }} +{{- $root := . }} +apiVersion: v1 +kind: Service +metadata: + name: {{ include "beyla.fullname" . }} + namespace: {{ include "beyla.namespace" .}} + labels: + {{- include "beyla.labels" . | nindent 4 }} + {{- with .Values.service.labels }} + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.service.annotations }} + annotations: + {{- tpl (toYaml . | nindent 4) $root }} + {{- end }} +spec: + {{- if (or (eq .Values.service.type "ClusterIP") (empty .Values.service.type)) }} + type: ClusterIP + {{- with .Values.service.clusterIP }} + clusterIP: {{ . }} + {{- end }} + {{- else if eq .Values.service.type "LoadBalancer" }} + type: LoadBalancer + {{- with .Values.service.loadBalancerIP }} + loadBalancerIP: {{ . }} + {{- end }} + {{- with .Values.service.loadBalancerClass }} + loadBalancerClass: {{ . }} + {{- end }} + {{- with .Values.service.loadBalancerSourceRanges }} + loadBalancerSourceRanges: + {{- toYaml . | nindent 4 }} + {{- end }} + {{- else }} + type: {{ .Values.service.type }} + {{- end }} + {{- with .Values.service.externalIPs }} + externalIPs: + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.service.externalTrafficPolicy }} + externalTrafficPolicy: {{ . }} + {{- end }} + ports: + - name: {{ .Values.service.portName }} + port: {{ .Values.service.port }} + protocol: TCP + targetPort: {{ tpl .Values.service.targetPort . }} + {{- with .Values.service.appProtocol }} + appProtocol: {{ . }} + {{- end }} + {{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }} + nodePort: {{ .Values.service.nodePort }} + {{- end }} + selector: + {{- include "beyla.selectorLabels" . | nindent 4 }} +{{- end }} \ No newline at end of file diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index 9ef02149f..57e238bdc 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -54,9 +54,25 @@ securityContext: {} # runAsNonRoot: true # runAsUser: 1000 +## Expose the beyla internal metrics service to be accessed from outside the cluster (LoadBalancer service). +## or access it from within the cluster (ClusterIP service). Set the service type and the port to serve it. +## ref: http://kubernetes.io/docs/user-guide/services/ +## service: + enabled: false type: ClusterIP + clusterIP: "" + loadBalancerIP: "" + loadBalancerClass: "" + loadBalancerSourceRanges: [] port: 80 + targetPort: '{{ include "beyla.internalMetricsPort" . }}' + ## Service annotations. Can be templated. + annotations: {} + labels: {} + portName: service + # Adds the appProtocol field to the service. This allows to work with istio protocol selection. Ex: "http" or "tcp" + appProtocol: "" ingress: enabled: false @@ -86,15 +102,6 @@ resources: {} # cpu: 100m # memory: 128Mi -livenessProbe: - httpGet: - path: / - port: http -readinessProbe: - httpGet: - path: / - port: http - autoscaling: enabled: false minReplicas: 1 @@ -146,11 +153,17 @@ configmapData: attributes: kubernetes: enable: true + # internal metrics reporting. Refer: https://grafana.com/docs/beyla/latest/configure/options/#internal-metrics-reporter + # If set, user can expose the metrics endpoint via k8s service by configuring .Values.service section + #prometheus_export: + #port: 9090 + #path: /metrics ## Env variables that will override configmap values ## For example: -## BEYLA_BPF_WAKEUP_LEN: 100 +## BEYLA_INTERNAL_METRICS_PROMETHEUS_PORT: 9090 env: {} + #BEYLA_INTERNAL_METRICS_PROMETHEUS_PORT: 9090 envValueFrom: {} # ENV_NAME: From f754ef84c06d480f1e7cee16ac46ea0b1afb3571 Mon Sep 17 00:00:00 2001 From: khusjain Date: Tue, 27 Feb 2024 11:23:19 +0530 Subject: [PATCH 35/46] affinity, updatestrategy, tolerations ... --- deployments/helm/templates/daemon-set.yml | 16 ++++++++++++++++ deployments/helm/values.yaml | 6 ++++++ 2 files changed, 22 insertions(+) diff --git a/deployments/helm/templates/daemon-set.yml b/deployments/helm/templates/daemon-set.yml index 1c795f8d1..c5cd533d3 100644 --- a/deployments/helm/templates/daemon-set.yml +++ b/deployments/helm/templates/daemon-set.yml @@ -13,6 +13,10 @@ spec: selector: matchLabels: instrumentation: {{ include "beyla.fullname" . }} + {{- with .Values.updateStrategy }} + strategy: + {{- toYaml . | trim | nindent 4 }} + {{- end }} template: metadata: labels: @@ -50,4 +54,16 @@ spec: - name: {{ $key | quote }} valueFrom: {{- tpl (toYaml $value) $ | nindent 16 }} + {{- end }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- tpl (toYaml .) $ | nindent 12 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 12 }} {{- end }} \ No newline at end of file diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index 9ef02149f..c8ab7b6c4 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -95,6 +95,12 @@ readinessProbe: path: / port: http + +## See `kubectl explain deployment.spec.strategy` for more +## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy +updateStrategy: + type: RollingUpdate + autoscaling: enabled: false minReplicas: 1 From 0fd2bdde237bb05ebbbeffa9e82d86239c3ee6db Mon Sep 17 00:00:00 2001 From: Nihal <38865967+wasim-nihal@users.noreply.github.com> Date: Thu, 29 Feb 2024 11:13:39 +0530 Subject: [PATCH 36/46] Update values.yaml --- deployments/helm/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index ced366f93..a72bb4397 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -162,7 +162,7 @@ configmapData: enable: true # internal metrics reporting. Refer: https://grafana.com/docs/beyla/latest/configure/options/#internal-metrics-reporter # If set, user can expose the metrics endpoint via k8s service by configuring .Values.service section - prometheus_export: + #prometheus_export: #port: 9090 #path: /metrics From 11d8d0292bb905c6a681909cc9c6b0d50ab297c8 Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Thu, 29 Feb 2024 12:57:53 +0530 Subject: [PATCH 37/46] Delete deployments/helm/templates/tests/test-connection.yaml --- .../helm/templates/tests/test-connection.yaml | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 deployments/helm/templates/tests/test-connection.yaml diff --git a/deployments/helm/templates/tests/test-connection.yaml b/deployments/helm/templates/tests/test-connection.yaml deleted file mode 100644 index 944e805ee..000000000 --- a/deployments/helm/templates/tests/test-connection.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: "{{ include "beyla.fullname" . }}-test-connection" - labels: - {{- include "beyla.labels" . | nindent 4 }} - annotations: - "helm.sh/hook": test -spec: - containers: - - name: wget - image: busybox - command: ['wget'] - args: ['{{ include "beyla.fullname" . }}:{{ .Values.service.port }}'] - restartPolicy: Never From 3cbd2f87bce0d22ddba6ca88dd5850c019f4dd81 Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Tue, 12 Mar 2024 14:59:33 +0530 Subject: [PATCH 38/46] Update values.yaml --- deployments/helm/values.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index a72bb4397..18161c059 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -116,7 +116,7 @@ autoscaling: targetCPUUtilizationPercentage: 80 # targetMemoryUtilizationPercentage: 80 -# Additional volumes on the output Deployment definition. +# Additional volumes on the output daemonset definition. volumes: [] # - name: foo # secret: @@ -145,7 +145,7 @@ configmapData: open_port: 8443 routes: unmatched: heuristic - log_level: debug + log_level: info otel_traces_export: endpoint: http://grafana-agent:4318 ## or alternatively use From cf99dc55062f94d61787b8a9b4b5a24a30ac57a2 Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Tue, 12 Mar 2024 15:03:08 +0530 Subject: [PATCH 39/46] Update values.yaml From de676a6e4a1d52250b5c7e5ed586cf13f3e44fba Mon Sep 17 00:00:00 2001 From: Khushi Jain Date: Sun, 17 Mar 2024 13:01:37 +0530 Subject: [PATCH 40/46] Delete deployments/helm/templates/NOTES.txt --- deployments/helm/templates/NOTES.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 deployments/helm/templates/NOTES.txt diff --git a/deployments/helm/templates/NOTES.txt b/deployments/helm/templates/NOTES.txt deleted file mode 100644 index e69de29bb..000000000 From c19a0d0857d291b3226b8cc6bcd49cce1b0d0042 Mon Sep 17 00:00:00 2001 From: khusjain Date: Sun, 17 Mar 2024 16:40:30 +0530 Subject: [PATCH 41/46] add readme --- deployments/helm/README.md | 74 ++++++++++++++++++++++- deployments/helm/templates/daemon-set.yml | 4 +- 2 files changed, 75 insertions(+), 3 deletions(-) diff --git a/deployments/helm/README.md b/deployments/helm/README.md index c1454fb48..29c93eb4e 100644 --- a/deployments/helm/README.md +++ b/deployments/helm/README.md @@ -1 +1,73 @@ -## Beyla \ No newline at end of file +# beyla + +![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.2.0](https://img.shields.io/badge/AppVersion-1.2.0-informational?style=flat-square) + +eBPF-based autoinstrumentation of HTTP and HTTPS services + +## Source Code + +* + +## Values + +| Key | Type | Default | Description | +|-----|------|---------|-------------| +| affinity | object | `{}` | | +| autoscaling.enabled | bool | `false` | | +| autoscaling.maxReplicas | int | `100` | | +| autoscaling.minReplicas | int | `1` | | +| autoscaling.targetCPUUtilizationPercentage | int | `80` | | +| configmapData.attributes.kubernetes.enable | bool | `true` | | +| configmapData.discovery.services[0].k8s_namespace | string | `"default"` | | +| configmapData.log_level | string | `"info"` | | +| configmapData.open_port | int | `8443` | | +| configmapData.otel_traces_export.endpoint | string | `"http://grafana-agent:4318"` | | +| configmapData.routes.unmatched | string | `"heuristic"` | | +| env | object | `{}` | | +| envValueFrom | object | `{}` | | +| fullnameOverride | string | `""` | | +| image.pullPolicy | string | `"IfNotPresent"` | | +| image.repository | string | `"grafana/beyla"` | | +| image.tag | string | `"main"` | | +| imagePullSecrets | list | `[]` | | +| ingress.annotations | object | `{}` | | +| ingress.className | string | `""` | | +| ingress.enabled | bool | `false` | | +| ingress.hosts[0].host | string | `"chart-example.local"` | | +| ingress.hosts[0].paths[0].path | string | `"/"` | | +| ingress.hosts[0].paths[0].pathType | string | `"ImplementationSpecific"` | | +| ingress.tls | list | `[]` | | +| nameOverride | string | `""` | | +| namespaceOverride | string | `""` | | +| nodeSelector | object | `{}` | | +| podSecurityContext | object | `{}` | | +| rbac.create | bool | `true` | | +| rbac.extraClusterRoleRules | list | `[]` | | +| rbac.extraRoleRules | list | `[]` | | +| rbac.namespaced | bool | `false` | | +| rbac.pspEnabled | bool | `false` | | +| rbac.pspUseAppArmor | bool | `false` | | +| resources | object | `{}` | | +| securityContext | object | `{}` | | +| service.annotations | object | `{}` | | +| service.appProtocol | string | `""` | | +| service.clusterIP | string | `""` | | +| service.enabled | bool | `false` | | +| service.labels | object | `{}` | | +| service.loadBalancerClass | string | `""` | | +| service.loadBalancerIP | string | `""` | | +| service.loadBalancerSourceRanges | list | `[]` | | +| service.port | int | `80` | | +| service.portName | string | `"service"` | | +| service.targetPort | string | `"{{ include \"beyla.internalMetricsPort\" . }}"` | | +| service.type | string | `"ClusterIP"` | | +| serviceAccount.annotations | object | `{}` | | +| serviceAccount.automount | bool | `true` | | +| serviceAccount.create | bool | `true` | | +| serviceAccount.labels | object | `{}` | | +| serviceAccount.name | string | `""` | | +| tolerations | list | `[]` | | +| updateStrategy.type | string | `"RollingUpdate"` | | +| volumeMounts | list | `[]` | | +| volumes | list | `[]` | | + diff --git a/deployments/helm/templates/daemon-set.yml b/deployments/helm/templates/daemon-set.yml index bcd38b912..3e6828191 100644 --- a/deployments/helm/templates/daemon-set.yml +++ b/deployments/helm/templates/daemon-set.yml @@ -43,11 +43,11 @@ spec: protocol: TCP {{- end }} volumeMounts: - - mountPath: /config + - mountPath: /etc/beyla/config name: beyla-config env: - name: BEYLA_CONFIG_PATH - value: "/config/beyla-config.yml" + value: "/etc/beyla/config/beyla-config.yml" - name: BEYLA_PRINT_TRACES value: "true" - name: OTEL_RESOURCE_ATTRIBUTES From cd6561b14fdb1b1d4ee260b02d99e7b21ab6fd2d Mon Sep 17 00:00:00 2001 From: khusjain Date: Sun, 17 Mar 2024 16:52:23 +0530 Subject: [PATCH 42/46] remove autoscaling --- deployments/helm/README.md | 4 ---- deployments/helm/values.yaml | 6 ------ 2 files changed, 10 deletions(-) diff --git a/deployments/helm/README.md b/deployments/helm/README.md index 29c93eb4e..7d1736ae8 100644 --- a/deployments/helm/README.md +++ b/deployments/helm/README.md @@ -13,10 +13,6 @@ eBPF-based autoinstrumentation of HTTP and HTTPS services | Key | Type | Default | Description | |-----|------|---------|-------------| | affinity | object | `{}` | | -| autoscaling.enabled | bool | `false` | | -| autoscaling.maxReplicas | int | `100` | | -| autoscaling.minReplicas | int | `1` | | -| autoscaling.targetCPUUtilizationPercentage | int | `80` | | | configmapData.attributes.kubernetes.enable | bool | `true` | | | configmapData.discovery.services[0].k8s_namespace | string | `"default"` | | | configmapData.log_level | string | `"info"` | | diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index 18161c059..8a43c1036 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -109,12 +109,6 @@ resources: {} updateStrategy: type: RollingUpdate -autoscaling: - enabled: false - minReplicas: 1 - maxReplicas: 100 - targetCPUUtilizationPercentage: 80 - # targetMemoryUtilizationPercentage: 80 # Additional volumes on the output daemonset definition. volumes: [] From 94a50431db20c11d72522a58d7a7d7845e576f4b Mon Sep 17 00:00:00 2001 From: khusjain Date: Sun, 17 Mar 2024 16:52:23 +0530 Subject: [PATCH 43/46] remove autoscaling --- deployments/helm/README.md | 4 ---- deployments/helm/values.yaml | 8 +------- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/deployments/helm/README.md b/deployments/helm/README.md index 29c93eb4e..7d1736ae8 100644 --- a/deployments/helm/README.md +++ b/deployments/helm/README.md @@ -13,10 +13,6 @@ eBPF-based autoinstrumentation of HTTP and HTTPS services | Key | Type | Default | Description | |-----|------|---------|-------------| | affinity | object | `{}` | | -| autoscaling.enabled | bool | `false` | | -| autoscaling.maxReplicas | int | `100` | | -| autoscaling.minReplicas | int | `1` | | -| autoscaling.targetCPUUtilizationPercentage | int | `80` | | | configmapData.attributes.kubernetes.enable | bool | `true` | | | configmapData.discovery.services[0].k8s_namespace | string | `"default"` | | | configmapData.log_level | string | `"info"` | | diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index 18161c059..3ed8ab1b2 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -2,7 +2,7 @@ image: repository: grafana/beyla pullPolicy: IfNotPresent # Overrides the image tag whose default is the chart appVersion. - tag: "main" + tag: "latest" imagePullSecrets: [] @@ -109,12 +109,6 @@ resources: {} updateStrategy: type: RollingUpdate -autoscaling: - enabled: false - minReplicas: 1 - maxReplicas: 100 - targetCPUUtilizationPercentage: 80 - # targetMemoryUtilizationPercentage: 80 # Additional volumes on the output daemonset definition. volumes: [] From 2968217278fb3a3017ed1f86d2c6b1fc5c4d08d4 Mon Sep 17 00:00:00 2001 From: khusjain Date: Tue, 26 Mar 2024 11:57:42 +0530 Subject: [PATCH 44/46] remove ingress, update configmap --- deployments/helm/values.yaml | 52 +++++++++++++----------------------- 1 file changed, 18 insertions(+), 34 deletions(-) diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index 3ed8ab1b2..3c656d51a 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -74,22 +74,6 @@ service: # Adds the appProtocol field to the service. This allows to work with istio protocol selection. Ex: "http" or "tcp" appProtocol: "" -ingress: - enabled: false - className: "" - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - hosts: - - host: chart-example.local - paths: - - path: / - pathType: ImplementationSpecific - tls: [] - # - secretName: chart-example-tls - # hosts: - # - chart-example.local - resources: {} # We usually recommend not to specify default resources and to leave this as a conscious # choice for the user. This also increases chances charts run on environments with little @@ -136,24 +120,24 @@ affinity: {} ## More configuration options available at https://grafana.com/docs/beyla/latest/configure/options/ configmapData: - open_port: 8443 - routes: - unmatched: heuristic - log_level: info - otel_traces_export: - endpoint: http://grafana-agent:4318 - ## or alternatively use - # grafana: - # otlp: - # cloud_zone: prod-eu-west-0 - # cloud_instance_id: 123456 - # cloud_api_key: - discovery: - services: - - k8s_namespace: default - attributes: - kubernetes: - enable: true + # open_port: 8443 + # routes: + # unmatched: heuristic + # log_level: info + # otel_traces_export: + # endpoint: http://grafana-agent:4318 + # ## or alternatively use + # # grafana: + # # otlp: + # # cloud_zone: prod-eu-west-0 + # # cloud_instance_id: 123456 + # # cloud_api_key: + # discovery: + # services: + # - k8s_namespace: default + # attributes: + # kubernetes: + # enable: true # internal metrics reporting. Refer: https://grafana.com/docs/beyla/latest/configure/options/#internal-metrics-reporter # If set, user can expose the metrics endpoint via k8s service by configuring .Values.service section #prometheus_export: From 0fe26ea1196a5fb516844c247ae81225ccb56e59 Mon Sep 17 00:00:00 2001 From: khusjain Date: Tue, 26 Mar 2024 20:44:10 +0530 Subject: [PATCH 45/46] remove all ingress changes --- deployments/helm/README.md | 16 +------ deployments/helm/templates/ingress.yaml | 61 ------------------------- 2 files changed, 2 insertions(+), 75 deletions(-) delete mode 100644 deployments/helm/templates/ingress.yaml diff --git a/deployments/helm/README.md b/deployments/helm/README.md index 7d1736ae8..fafadcb1e 100644 --- a/deployments/helm/README.md +++ b/deployments/helm/README.md @@ -13,26 +13,14 @@ eBPF-based autoinstrumentation of HTTP and HTTPS services | Key | Type | Default | Description | |-----|------|---------|-------------| | affinity | object | `{}` | | -| configmapData.attributes.kubernetes.enable | bool | `true` | | -| configmapData.discovery.services[0].k8s_namespace | string | `"default"` | | -| configmapData.log_level | string | `"info"` | | -| configmapData.open_port | int | `8443` | | -| configmapData.otel_traces_export.endpoint | string | `"http://grafana-agent:4318"` | | -| configmapData.routes.unmatched | string | `"heuristic"` | | +| configmapData | string | `nil` | | | env | object | `{}` | | | envValueFrom | object | `{}` | | | fullnameOverride | string | `""` | | | image.pullPolicy | string | `"IfNotPresent"` | | | image.repository | string | `"grafana/beyla"` | | -| image.tag | string | `"main"` | | +| image.tag | string | `"latest"` | | | imagePullSecrets | list | `[]` | | -| ingress.annotations | object | `{}` | | -| ingress.className | string | `""` | | -| ingress.enabled | bool | `false` | | -| ingress.hosts[0].host | string | `"chart-example.local"` | | -| ingress.hosts[0].paths[0].path | string | `"/"` | | -| ingress.hosts[0].paths[0].pathType | string | `"ImplementationSpecific"` | | -| ingress.tls | list | `[]` | | | nameOverride | string | `""` | | | namespaceOverride | string | `""` | | | nodeSelector | object | `{}` | | diff --git a/deployments/helm/templates/ingress.yaml b/deployments/helm/templates/ingress.yaml deleted file mode 100644 index 629f7f44a..000000000 --- a/deployments/helm/templates/ingress.yaml +++ /dev/null @@ -1,61 +0,0 @@ -{{- if .Values.ingress.enabled -}} -{{- $fullName := include "beyla.fullname" . -}} -{{- $svcPort := .Values.service.port -}} -{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }} - {{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }} - {{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}} - {{- end }} -{{- end }} -{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}} -apiVersion: networking.k8s.io/v1 -{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} -apiVersion: networking.k8s.io/v1beta1 -{{- else -}} -apiVersion: extensions/v1beta1 -{{- end }} -kind: Ingress -metadata: - name: {{ $fullName }} - labels: - {{- include "beyla.labels" . | nindent 4 }} - {{- with .Values.ingress.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - {{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }} - ingressClassName: {{ .Values.ingress.className }} - {{- end }} - {{- if .Values.ingress.tls }} - tls: - {{- range .Values.ingress.tls }} - - hosts: - {{- range .hosts }} - - {{ . | quote }} - {{- end }} - secretName: {{ .secretName }} - {{- end }} - {{- end }} - rules: - {{- range .Values.ingress.hosts }} - - host: {{ .host | quote }} - http: - paths: - {{- range .paths }} - - path: {{ .path }} - {{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }} - pathType: {{ .pathType }} - {{- end }} - backend: - {{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }} - service: - name: {{ $fullName }} - port: - number: {{ $svcPort }} - {{- else }} - serviceName: {{ $fullName }} - servicePort: {{ $svcPort }} - {{- end }} - {{- end }} - {{- end }} -{{- end }} From 6c266ea3ea7df4feb4d29a7ec260a00c40bef72e Mon Sep 17 00:00:00 2001 From: Syed Nihal Date: Thu, 28 Mar 2024 16:25:47 +0530 Subject: [PATCH 46/46] addressed review comments Signed-off-by: Syed Nihal --- deployments/helm/README.md | 82 +++++------ deployments/helm/templates/_helpers.tpl | 25 ++-- deployments/helm/templates/configmap.yaml | 7 +- deployments/helm/templates/daemon-set.yml | 37 ++--- deployments/helm/templates/service.yaml | 2 +- deployments/helm/values.yaml | 157 ++++++++++++++-------- 6 files changed, 179 insertions(+), 131 deletions(-) diff --git a/deployments/helm/README.md b/deployments/helm/README.md index fafadcb1e..94ac340ac 100644 --- a/deployments/helm/README.md +++ b/deployments/helm/README.md @@ -12,46 +12,50 @@ eBPF-based autoinstrumentation of HTTP and HTTPS services | Key | Type | Default | Description | |-----|------|---------|-------------| -| affinity | object | `{}` | | -| configmapData | string | `nil` | | -| env | object | `{}` | | -| envValueFrom | object | `{}` | | -| fullnameOverride | string | `""` | | -| image.pullPolicy | string | `"IfNotPresent"` | | -| image.repository | string | `"grafana/beyla"` | | -| image.tag | string | `"latest"` | | -| imagePullSecrets | list | `[]` | | -| nameOverride | string | `""` | | -| namespaceOverride | string | `""` | | -| nodeSelector | object | `{}` | | +| affinity | object | `{}` | used for scheduling of pods based on affinity rules | +| config.create | bool | `true` | set to true, to use the below default configurations | +| config.data | object | `{"attributes":{"kubernetes":{"enable":true}},"discovery":{"services":[{"k8s_namespace":"."}]},"prometheus_export":{"path":"/metrics","port":9090}}` | default value of beyla configuration | +| config.name | string | `""` | | +| env | object | `{"BEYLA_PRINT_TRACES":"true"}` | extra environment variables | +| envValueFrom | object | `{}` | extra environment variables to be set from resources such as k8s configMaps/secrets | +| fullnameOverride | string | `""` | Overrides the chart's computed fullname. | +| global.image.pullSecrets | list | `[]` | Optional set of global image pull secrets. | +| global.image.registry | string | `""` | Global image registry to use if it needs to be overridden for some specific use cases (e.g local registries, custom images, ...) | +| image.digest | string | `nil` | Beyla image's SHA256 digest (either in format "sha256:XYZ" or "XYZ"). When set, will override `image.tag`. | +| image.pullPolicy | string | `"IfNotPresent"` | Beyla image pull policy. | +| image.pullSecrets | list | `[]` | Optional set of image pull secrets. | +| image.registry | string | `"docker.io"` | Beyla image registry (defaults to docker.io) | +| image.repository | string | `"grafana/beyla"` | Beyla image repository. | +| image.tag | string | `nil` | Beyla image tag. When empty, the Chart's appVersion is used. | +| nameOverride | string | `""` | Overrides the chart's name | +| namespaceOverride | string | `""` | Override the deployment namespace | +| nodeSelector | object | `{}` | The nodeSelector field allows user to constrain which nodes your DaemonSet pods are scheduled to based on labels on the node | | podSecurityContext | object | `{}` | | -| rbac.create | bool | `true` | | -| rbac.extraClusterRoleRules | list | `[]` | | -| rbac.extraRoleRules | list | `[]` | | -| rbac.namespaced | bool | `false` | | -| rbac.pspEnabled | bool | `false` | | -| rbac.pspUseAppArmor | bool | `false` | | +| rbac.create | bool | `true` | Whether to create RBAC resources for Belya | +| rbac.extraClusterRoleRules | list | `[]` | Extra custer roles to be created for Belya | | resources | object | `{}` | | | securityContext | object | `{}` | | -| service.annotations | object | `{}` | | -| service.appProtocol | string | `""` | | -| service.clusterIP | string | `""` | | -| service.enabled | bool | `false` | | -| service.labels | object | `{}` | | -| service.loadBalancerClass | string | `""` | | -| service.loadBalancerIP | string | `""` | | -| service.loadBalancerSourceRanges | list | `[]` | | -| service.port | int | `80` | | -| service.portName | string | `"service"` | | -| service.targetPort | string | `"{{ include \"beyla.internalMetricsPort\" . }}"` | | -| service.type | string | `"ClusterIP"` | | -| serviceAccount.annotations | object | `{}` | | -| serviceAccount.automount | bool | `true` | | -| serviceAccount.create | bool | `true` | | -| serviceAccount.labels | object | `{}` | | -| serviceAccount.name | string | `""` | | -| tolerations | list | `[]` | | -| updateStrategy.type | string | `"RollingUpdate"` | | -| volumeMounts | list | `[]` | | -| volumes | list | `[]` | | +| service.annotations | object | `{}` | Service annotations. | +| service.appProtocol | string | `""` | Adds the appProtocol field to the service. This allows to work with istio protocol selection. Ex: "http" or "tcp" | +| service.clusterIP | string | `""` | cluster IP | +| service.enabled | bool | `true` | whether to create a service for internal metrics | +| service.labels | object | `{}` | Service labels. | +| service.loadBalancerClass | string | `""` | loadbalancer class name | +| service.loadBalancerIP | string | `""` | loadbalancer IP | +| service.loadBalancerSourceRanges | list | `[]` | source ranges for loadbalancer | +| service.port | int | `80` | service port | +| service.portName | string | `"service"` | name of the port for internal metrics service. | +| service.targetPort | int | `9090` | targetPort has to be configured based on the values of `BEYLA_INTERNAL_METRICS_PROMETHEUS_PORT` environment variable or the value of `prometheus_export.port` from beyla configuration file. see more at https://grafana.com/docs/beyla/latest/configure/options/#internal-metrics-reporter | +| service.type | string | `"ClusterIP"` | type of the service | +| serviceAccount.annotations | object | `{}` | Annotations to add to the service account | +| serviceAccount.automount | bool | `true` | Automatically mount a ServiceAccount's API credentials? | +| serviceAccount.create | bool | `true` | Specifies whether a service account should be created | +| serviceAccount.labels | object | `{}` | ServiceAccount labels. | +| serviceAccount.name | string | `""` | The name of the service account to use. If not set and create is true, a name is generated using the fullname template | +| tolerations | list | `[]` | Tolerations allow pods to be scheduled on nodes with specific taints | +| updateStrategy.type | string | `"RollingUpdate"` | update strategy type | +| volumeMounts | list | `[]` | Additional volumeMounts on the output Deployment definition. | +| volumes | list | `[]` | Additional volumes on the output daemonset definition. | +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.13.1](https://github.com/norwoodj/helm-docs/releases/v1.13.1) diff --git a/deployments/helm/templates/_helpers.tpl b/deployments/helm/templates/_helpers.tpl index 29c66d7e8..6d34b8fb0 100644 --- a/deployments/helm/templates/_helpers.tpl +++ b/deployments/helm/templates/_helpers.tpl @@ -75,19 +75,18 @@ Create the name of the service account to use {{/* -Returns the internal metrics port if set via environment variable or via yaml configuration. -Note: Precedence is given for environment variable +Calculate name of image ID to use for "beyla". */}} -{{- define "beyla.internalMetricsPort" -}} -{{- if .Values.env.BEYLA_INTERNAL_METRICS_PROMETHEUS_PORT }} -{{- print .Values.env.BEYLA_INTERNAL_METRICS_PROMETHEUS_PORT }} -{{ else if and (.Values.configmapData.prometheus_export) }} - {{- if ne (.Values.configmapData.prometheus_export.port | quote ) ""}} -{{- print .Values.configmapData.prometheus_export.port }} - {{- else }} - {{- print 0 }} - {{- end }} -{{- else }} -{{- print 0 }} +{{- define "beyla.imageId" -}} +{{- if .Values.image.digest }} +{{- $digest := .Values.image.digest }} +{{- if not (hasPrefix "sha256:" $digest) }} +{{- $digest = printf "sha256:%s" $digest }} {{- end }} +{{- printf "@%s" $digest }} +{{- else if .Values.image.tag }} +{{- printf ":%s" .Values.image.tag }} +{{- else }} +{{- printf ":%s" .Chart.AppVersion }} {{- end }} +{{- end }} \ No newline at end of file diff --git a/deployments/helm/templates/configmap.yaml b/deployments/helm/templates/configmap.yaml index 373b7fa5e..cd08c0901 100644 --- a/deployments/helm/templates/configmap.yaml +++ b/deployments/helm/templates/configmap.yaml @@ -1,4 +1,7 @@ -{{- if (not .Values.externalBeylaConfigMap) }} +{{- if and (not .Values.config.create) (eq .Values.config.name "") }} + {{- fail "if .Values.config.name is not set, then .Values.config.create should be set to true to use default configuration" }} +{{- end }} +{{- if and (.Values.config.create) (eq .Values.config.name "") }} apiVersion: v1 kind: ConfigMap metadata: @@ -12,5 +15,5 @@ metadata: {{- end }} data: beyla-config.yml: | - {{- toYaml .Values.configmapData | nindent 4}} + {{- toYaml .Values.config.data | nindent 4}} {{- end }} diff --git a/deployments/helm/templates/daemon-set.yml b/deployments/helm/templates/daemon-set.yml index 3e6828191..30f89d452 100644 --- a/deployments/helm/templates/daemon-set.yml +++ b/deployments/helm/templates/daemon-set.yml @@ -1,11 +1,10 @@ -{{ $internalMetricsPort := include "beyla.internalMetricsPort" . }} apiVersion: apps/v1 kind: DaemonSet metadata: name: {{ include "beyla.fullname" . }} namespace: {{ include "beyla.namespace" .}} labels: - {{- include "beyla.labels" . | nindent 2 }} + {{- include "beyla.labels" . | nindent 4 }} {{- with .Values.annotations }} annotations: {{- toYaml . | nindent 4 }} @@ -15,7 +14,7 @@ spec: matchLabels: {{ include "beyla.selectorLabels" . | indent 6 }} {{- with .Values.updateStrategy }} - strategy: + updateStrategy: {{- toYaml . | trim | nindent 4 }} {{- end }} template: @@ -27,31 +26,18 @@ spec: serviceAccountName: {{ include "beyla.serviceAccountName" . }} {{- end }} hostPID: true #important! - volumes: - - name: beyla-config - configMap: - name: {{ default (include "beyla.fullname" .) .Values.externalBeylaConfigMap}} containers: - name: beyla - image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + image: {{ .Values.global.image.registry | default .Values.image.registry }}/{{ .Values.image.repository }}{{ include "beyla.imageId" . }} imagePullPolicy: {{ .Values.image.pullPolicy }} securityContext: privileged: true ports: - {{- if ne $internalMetricsPort "0" }} - - containerPort: {{ $internalMetricsPort }} + - containerPort: {{ .Values.service.targetPort }} protocol: TCP - {{- end }} - volumeMounts: - - mountPath: /etc/beyla/config - name: beyla-config env: - name: BEYLA_CONFIG_PATH value: "/etc/beyla/config/beyla-config.yml" - - name: BEYLA_PRINT_TRACES - value: "true" - - name: OTEL_RESOURCE_ATTRIBUTES - value: "deployment.environment=production" {{- range $key, $value := .Values.env }} - name: {{ $key }} value: "{{ $value }}" @@ -73,3 +59,18 @@ spec: tolerations: {{- toYaml . | nindent 12 }} {{- end }} + volumeMounts: + - mountPath: /etc/beyla/config + name: beyla-config + {{- if or .Values.global.image.pullSecrets .Values.image.pullSecrets }} + imagePullSecrets: + {{- if .Values.global.image.pullSecrets }} + {{- toYaml .Values.global.image.pullSecrets | nindent 4 }} + {{- else }} + {{- toYaml .Values.image.pullSecrets | nindent 4 }} + {{- end }} + {{- end }} + volumes: + - name: beyla-config + configMap: + name: {{ default (include "beyla.fullname" .) .Values.config.name }} \ No newline at end of file diff --git a/deployments/helm/templates/service.yaml b/deployments/helm/templates/service.yaml index eb361c00e..a3e252068 100644 --- a/deployments/helm/templates/service.yaml +++ b/deployments/helm/templates/service.yaml @@ -46,7 +46,7 @@ spec: - name: {{ .Values.service.portName }} port: {{ .Values.service.port }} protocol: TCP - targetPort: {{ tpl .Values.service.targetPort . }} + targetPort: {{ .Values.service.targetPort }} {{- with .Values.service.appProtocol }} appProtocol: {{ . }} {{- end }} diff --git a/deployments/helm/values.yaml b/deployments/helm/values.yaml index 3c656d51a..8c8023371 100644 --- a/deployments/helm/values.yaml +++ b/deployments/helm/values.yaml @@ -1,45 +1,58 @@ +## Global properties for image pulling override the values defined under `image.registry`. +## If you want to override only one image registry, use the specific fields but if you want to override them all, use `global.image.registry` +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: [] + image: + # -- Beyla image registry (defaults to docker.io) + registry: "docker.io" + # -- Beyla image repository. repository: grafana/beyla + # -- (string) Beyla image tag. When empty, the Chart's appVersion is + # used. + tag: null + # -- Beyla image's SHA256 digest (either in format "sha256:XYZ" or "XYZ"). When set, will override `image.tag`. + digest: null + # -- Beyla image pull policy. pullPolicy: IfNotPresent - # Overrides the image tag whose default is the chart appVersion. - tag: "latest" - -imagePullSecrets: [] + # -- Optional set of image pull secrets. + pullSecrets: [] +# -- Overrides the chart's name nameOverride: "" + +# -- Overrides the chart's computed fullname. fullnameOverride: "" -## Override the deployment namespace + +# -- Override the deployment namespace namespaceOverride: "" ## DaemonSet annotations # annotations: {} rbac: + # -- Whether to create RBAC resources for Belya create: true - ## Use an existing ClusterRole/Role (depending on rbac.namespaced false/true) - # useExistingRole: name-of-some-role - # useExistingClusterRole: name-of-some-clusterRole - pspEnabled: false - pspUseAppArmor: false - namespaced: false - extraRoleRules: [] - # - apiGroups: [] - # resources: [] - # verbs: [] + # -- Extra custer roles to be created for Belya extraClusterRoleRules: [] # - apiGroups: [] # resources: [] serviceAccount: - # Specifies whether a service account should be created + # -- Specifies whether a service account should be created create: true - # Automatically mount a ServiceAccount's API credentials? + # -- Automatically mount a ServiceAccount's API credentials? automount: true - # ServiceAccount labels. + # -- ServiceAccount labels. labels: {} - # Annotations to add to the service account + # -- Annotations to add to the service account annotations: {} - # The name of the service account to use. + # -- The name of the service account to use. # If not set and create is true, a name is generated using the fullname template name: "" @@ -54,24 +67,36 @@ securityContext: {} # runAsNonRoot: true # runAsUser: 1000 -## Expose the beyla internal metrics service to be accessed from outside the cluster (LoadBalancer service). +## -- Expose the beyla internal metrics service to be accessed from outside the cluster (LoadBalancer service). ## or access it from within the cluster (ClusterIP service). Set the service type and the port to serve it. ## ref: http://kubernetes.io/docs/user-guide/services/ ## service: + # -- whether to create a service for internal metrics enabled: false + # -- type of the service type: ClusterIP + # -- cluster IP clusterIP: "" + # -- loadbalancer IP loadBalancerIP: "" + # -- loadbalancer class name loadBalancerClass: "" + # -- source ranges for loadbalancer loadBalancerSourceRanges: [] + # -- service port port: 80 - targetPort: '{{ include "beyla.internalMetricsPort" . }}' - ## Service annotations. Can be templated. + # -- targetPort has to be configured based on the values of `BEYLA_INTERNAL_METRICS_PROMETHEUS_PORT` environment variable + # or the value of `prometheus_export.port` from beyla configuration file. + # see more at https://grafana.com/docs/beyla/latest/configure/options/#internal-metrics-reporter + targetPort: 9090 + # -- Service annotations. annotations: {} + # -- Service labels. labels: {} + # -- name of the port for internal metrics service. portName: service - # Adds the appProtocol field to the service. This allows to work with istio protocol selection. Ex: "http" or "tcp" + # -- Adds the appProtocol field to the service. This allows to work with istio protocol selection. Ex: "http" or "tcp" appProtocol: "" resources: {} @@ -88,68 +113,84 @@ resources: {} -## See `kubectl explain deployment.spec.strategy` for more -## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy +## -- See `kubectl explain daemonset.spec.updateStrategy` for more +## ref: https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/#daemonset-update-strategy updateStrategy: + # -- update strategy type type: RollingUpdate -# Additional volumes on the output daemonset definition. +# -- Additional volumes on the output daemonset definition. volumes: [] # - name: foo # secret: # secretName: mysecret # optional: false -# Additional volumeMounts on the output Deployment definition. +# -- Additional volumeMounts on the output Deployment definition. volumeMounts: [] # - name: foo # mountPath: "/etc/foo" # readOnly: true +# -- The nodeSelector field allows user to constrain which nodes your DaemonSet pods are scheduled to based on labels on the node nodeSelector: {} +# -- Tolerations allow pods to be scheduled on nodes with specific taints tolerations: [] +# -- used for scheduling of pods based on affinity rules affinity: {} -# To use an external configmap for Beyla - this will replace existing configmap from chart -# kubectl create cm --from-file=beyla-config.yaml= -n -# externalBeylaConfigMap: - - ## More configuration options available at https://grafana.com/docs/beyla/latest/configure/options/ -configmapData: - # open_port: 8443 - # routes: - # unmatched: heuristic - # log_level: info - # otel_traces_export: - # endpoint: http://grafana-agent:4318 - # ## or alternatively use - # # grafana: - # # otlp: - # # cloud_zone: prod-eu-west-0 - # # cloud_instance_id: 123456 - # # cloud_api_key: - # discovery: - # services: - # - k8s_namespace: default - # attributes: - # kubernetes: - # enable: true - # internal metrics reporting. Refer: https://grafana.com/docs/beyla/latest/configure/options/#internal-metrics-reporter - # If set, user can expose the metrics endpoint via k8s service by configuring .Values.service section - #prometheus_export: - #port: 9090 - #path: /metrics +## The below default configuration +## 1. looks for ALL the services in the host +## 2. export metrics as prometheus metrics by default at 9090 port +## 3. enables kubernetes attribute +## Note: The default configuration is used if config.create=true and config.name="" +config: + # -- set to true, to use the below default configurations + create: true + ## -- Provide the name of the external configmap containing the beyla configuration. + ## To create configmap from configuration file, user can use the below command. Note: The name 'beyla-config.yaml' is important. + ## `kubectl create cm --from-file=beyla-config.yaml= -n ` + ## If empty, default configuration below is used. + name: "" + # -- default value of beyla configuration + data: + # open_port: 8443 + # routes: + # unmatched: heuristic + # log_level: info + # otel_traces_export: + # endpoint: http://grafana-agent:4318 + ## or alternatively use + # grafana: + # otlp: + # cloud_zone: prod-eu-west-0 + # cloud_instance_id: 123456 + # cloud_api_key: + discovery: + services: + - k8s_namespace: . + attributes: + kubernetes: + enable: true + ## internal metrics reporting. Refer: https://grafana.com/docs/beyla/latest/configure/options/#internal-metrics-reporter + ## If set, user can expose the metrics endpoint via k8s service by configuring .Values.service section + prometheus_export: + port: 9090 + path: /metrics ## Env variables that will override configmap values ## For example: ## BEYLA_INTERNAL_METRICS_PROMETHEUS_PORT: 9090 -env: {} +# -- extra environment variables +env: #BEYLA_INTERNAL_METRICS_PROMETHEUS_PORT: 9090 + BEYLA_PRINT_TRACES: "true" +# -- extra environment variables to be set from resources such as k8s configMaps/secrets envValueFrom: {} # ENV_NAME: # secretKeyRef: