Skip to content

Commit 90b2fff

Browse files
authored
Merge pull request #65 from KubeKyrie/add-otel-trace
add OTEL trace env for helm chart
2 parents e5899c5 + 70f853e commit 90b2fff

File tree

6 files changed

+77
-5
lines changed

6 files changed

+77
-5
lines changed

charts/clusterpedia/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ type: application
1515
# This is the chart version. This version number should be incremented each time you make changes
1616
# to the chart and its templates, including the app version.
1717
# Versions are expected to follow Semantic Versioning (https://semver.org/)
18-
version: 2.1.0
18+
version: 2.2.0
1919

2020
# This is the version number of the application being deployed. This version number should be
2121
# incremented each time you make changes to the application. Versions are not expected to

charts/clusterpedia/README.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -228,13 +228,14 @@ rm /var/local/clusterpedia/internalstorage/<storage type>
228228
| apiserver.image.pullSecrets | list | `[]` | |
229229
| apiserver.image.registry | string | `"ghcr.io"` | |
230230
| apiserver.image.repository | string | `"clusterpedia-io/clusterpedia/apiserver"` | |
231-
| apiserver.image.tag | string | `"v0.7.0"` | |
231+
| apiserver.image.tag | string | `"v0.7.1"` | |
232232
| apiserver.labels | object | `{}` | |
233233
| apiserver.nodeSelector | object | `{}` | |
234234
| apiserver.podAnnotations | object | `{}` | |
235235
| apiserver.podLabels | object | `{}` | |
236236
| apiserver.replicaCount | int | `1` | |
237237
| apiserver.resources | object | `{}` | |
238+
| apiserver.telemetry.tracing | object | `{}` | |
238239
| apiserver.tolerations | list | `[]` | |
239240

240241
### ClustersynchroManager
@@ -247,7 +248,8 @@ rm /var/local/clusterpedia/internalstorage/<storage type>
247248
| clustersynchroManager.image.pullSecrets | list | `[]` | |
248249
| clustersynchroManager.image.registry | string | `"ghcr.io"` | |
249250
| clustersynchroManager.image.repository | string | `"clusterpedia-io/clusterpedia/clustersynchro-manager"` | |
250-
| clustersynchroManager.image.tag | string | `"v0.7.0"` | |
251+
| clustersynchroManager.image.tag | string | `"v0.7.1"` | |
252+
| clustersynchroManager.kubeStateMetrics.enabled | bool | `false` | |
251253
| clustersynchroManager.labels | object | `{}` | |
252254
| clustersynchroManager.leaderElect.leaseDuration | string | `"15s"` | |
253255
| clustersynchroManager.leaderElect.renewDeadline | string | `"10s"` | |
@@ -271,7 +273,7 @@ rm /var/local/clusterpedia/internalstorage/<storage type>
271273
| controllerManager.image.pullSecrets | list | `[]` | |
272274
| controllerManager.image.registry | string | `"ghcr.io"` | |
273275
| controllerManager.image.repository | string | `"clusterpedia-io/clusterpedia/controller-manager"` | |
274-
| controllerManager.image.tag | string | `"v0.7.0"` | |
276+
| controllerManager.image.tag | string | `"v0.7.1"` | |
275277
| controllerManager.labels | object | `{}` | |
276278
| controllerManager.nodeSelector | object | `{}` | |
277279
| controllerManager.podAnnotations | object | `{}` | |
@@ -281,4 +283,4 @@ rm /var/local/clusterpedia/internalstorage/<storage type>
281283
| controllerManager.tolerations | list | `[]` | |
282284

283285
----------------------------------------------
284-
Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/helm-docs)
286+
Autogenerated from chart metadata using [helm-docs](https://github.com/norwoodj/helm-docs)

charts/clusterpedia/templates/_helpers.tpl

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -361,3 +361,31 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this
361361
{{- define "clusterpedia.hookJob.image" -}}
362362
{{ include "common.images.image" (dict "imageRoot" .Values.hookJob.image "global" .Values.global) }}
363363
{{- end -}}
364+
365+
{{- define "clusterpedia.apiserver.tracing.env" -}}
366+
{{- if .Values.apiserver.telemetry.tracing.addOtelEnv }}
367+
{{- if not (empty .Values.apiserver.telemetry.tracing.endpoint) }}
368+
- name: OTEL_EXPORTER_OTLP_ENDPOINT
369+
value: {{ .Values.apiserver.telemetry.tracing.endpoint }}
370+
{{- end }}
371+
- name: OTEL_SERVICE_NAME
372+
value: {{ include "common.names.fullname" . }}-apiserver
373+
- name: OTEL_K8S_NAMESPACE
374+
valueFrom:
375+
fieldRef:
376+
apiVersion: v1
377+
fieldPath: metadata.namespace
378+
- name: OTEL_RESOURCE_ATTRIBUTES_NODE_NAME
379+
valueFrom:
380+
fieldRef:
381+
apiVersion: v1
382+
fieldPath: spec.nodeName
383+
- name: OTEL_RESOURCE_ATTRIBUTES_POD_NAME
384+
valueFrom:
385+
fieldRef:
386+
apiVersion: v1
387+
fieldPath: metadata.name
388+
- name: OTEL_RESOURCE_ATTRIBUTES
389+
value: 'k8s.namespace.name=$(OTEL_K8S_NAMESPACE),k8s.node.name=$(OTEL_RESOURCE_ATTRIBUTES_NODE_NAME),k8s.pod.name=$(OTEL_RESOURCE_ATTRIBUTES_POD_NAME)'
390+
{{- end -}}
391+
{{- end -}}

charts/clusterpedia/templates/apiserver-deployment.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,9 @@ spec:
119119
- /usr/local/bin/apiserver
120120
- --secure-port=443
121121
- --storage-config=/etc/clusterpedia/storage/internalstorage-config.yaml
122+
{{- if or (not (empty .Values.apiserver.telemetry.tracing.endpoint)) (not (empty .Values.apiserver.telemetry.tracing.samplingRatePerMillion)) }}
123+
- --tracing-config-file=/etc/clusterpedia/trace/tracing-config.yaml
124+
{{- end }}
122125
{{- with (include "clusterpedia.apiserver.featureGates" .) }}
123126
- {{ . }}
124127
{{- end }}
@@ -132,6 +135,7 @@ spec:
132135
secretKeyRef:
133136
name: {{ include "clusterpedia.internalstorage.fullname" . }}
134137
key: password
138+
{{- include "clusterpedia.apiserver.tracing.env" . | nindent 8 }}
135139
{{- if .Values.apiserver.enableSHA1Cert }}
136140
- name: GODEBUG
137141
value: netdns=go,x509sha1=1
@@ -143,6 +147,11 @@ spec:
143147
- name: internalstorage-config
144148
mountPath: /etc/clusterpedia/storage
145149
readOnly: true
150+
{{- if or (not (empty .Values.apiserver.telemetry.tracing.endpoint)) (not (empty .Values.apiserver.telemetry.tracing.samplingRatePerMillion)) }}
151+
- name: tracing-config
152+
mountPath: /etc/clusterpedia/trace
153+
readOnly: true
154+
{{- end }}
146155
serviceAccountName: {{ include "clusterpedia.apiserver.fullname" . }}
147156
{{- if .Values.apiserver.affinity }}
148157
affinity: {{- include "common.tplvalues.render" (dict "value" .Values.apiserver.affinity "context" $) | nindent 8 }}
@@ -160,3 +169,8 @@ spec:
160169
- name: scripts
161170
configMap:
162171
name: {{ include "clusterpedia.scripts.fullname" . }}
172+
{{- if or (not (empty .Values.apiserver.telemetry.tracing.endpoint)) (not (empty .Values.apiserver.telemetry.tracing.samplingRatePerMillion)) }}
173+
- name: tracing-config
174+
configMap:
175+
name: {{ include "clusterpedia.apiserver.fullname" .}}-tracing-config
176+
{{- end }}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{{- if or (not (empty .Values.apiserver.telemetry.tracing.endpoint)) (not (empty .Values.apiserver.telemetry.tracing.samplingRatePerMillion)) }}
2+
apiVersion: v1
3+
kind: ConfigMap
4+
metadata:
5+
name: {{ include "clusterpedia.apiserver.fullname" .}}-tracing-config
6+
namespace: {{ .Release.Namespace }}
7+
data:
8+
tracing-config.yaml: |
9+
apiVersion: apiserver.config.k8s.io/v1beta1
10+
kind: TracingConfiguration
11+
{{- if not (empty .Values.apiserver.telemetry.tracing.endpoint) }}
12+
endpoint: {{ .Values.apiserver.telemetry.tracing.endpoint }}
13+
{{- end -}}
14+
{{- if not (empty .Values.apiserver.telemetry.tracing.samplingRatePerMillion) }}
15+
samplingRatePerMillion: {{ .Values.apiserver.telemetry.tracing.samplingRatePerMillion }}
16+
{{- end -}}
17+
{{- end }}

charts/clusterpedia/values.yaml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,9 +166,20 @@ apiserver:
166166
## alpha: v0.3.0
167167
## AllowRawSQLQuery: false
168168

169+
## @param APIServerTracing add support for distributed tracing in the API Server
170+
## APIServerTracing: true
171+
169172
## @param apiserver.enableSHA1Cert specifies whether to allow SHA1 certificates for apiserver.
170173
enableSHA1Cert: false
171174

175+
## @param telemetry define flag whether to enable otel trace
176+
##
177+
telemetry:
178+
tracing:
179+
endpoint: "" # example "localhost:4317"
180+
samplingRatePerMillion: 0 # example 1000000, the number of samples to collect per million spans
181+
addOtelEnv: false
182+
172183
## clustersynchro manager config
173184
clustersynchroManager:
174185
## @param clustersynchroManager.workerNumber set the number of workers

0 commit comments

Comments
 (0)