Skip to content

Commit ba57bde

Browse files
committed
Add manifest to deploy otel agent
Signed-off-by: Jian Qiu <[email protected]>
1 parent 233b4bf commit ba57bde

File tree

3 files changed

+218
-0
lines changed

3 files changed

+218
-0
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apiVersion: addon.open-cluster-management.io/v1alpha1
2+
kind: AddOnDeploymentConfig
3+
metadata:
4+
name: otel-config
5+
namespace: open-cluster-management-hub
6+
spec:
7+
customizedVariables:
8+
- name: PROM_ENDPOINT
9+
value: http://10.0.116.95:39090/api/v1/write
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
apiVersion: addon.open-cluster-management.io/v1alpha1
2+
kind: ClusterManagementAddOn
3+
metadata:
4+
annotations:
5+
addon.open-cluster-management.io/lifecycle: addon-manager
6+
name: otel
7+
spec:
8+
installStrategy:
9+
type: Manual
10+
supportedConfigs:
11+
- defaultConfig:
12+
name: otel-0.0.1
13+
group: addon.open-cluster-management.io
14+
resource: addontemplates
15+
- group: addon.open-cluster-management.io
16+
resource: addondeploymentconfigs
17+
defaultConfig:
18+
name: otel-config
19+
namespace: open-cluster-management-hub

otel-addon/deploy/template.yaml

Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
apiVersion: addon.open-cluster-management.io/v1alpha1
2+
kind: AddOnTemplate
3+
metadata:
4+
name: otel-0.0.1
5+
spec:
6+
addonName: otel
7+
agentSpec:
8+
workload:
9+
manifests:
10+
- apiVersion: apps/v1
11+
kind: Deployment
12+
metadata:
13+
name: deployment-collector-dev-opentelemetry-collector
14+
namespace: default
15+
spec:
16+
replicas: 1
17+
selector:
18+
matchLabels:
19+
app.kubernetes.io/instance: deployment-collector-dev
20+
app.kubernetes.io/name: opentelemetry-collector
21+
component: standalone-collector
22+
template:
23+
metadata:
24+
labels:
25+
app.kubernetes.io/instance: deployment-collector-dev
26+
app.kubernetes.io/name: opentelemetry-collector
27+
component: standalone-collector
28+
spec:
29+
containers:
30+
- args:
31+
- --config=/conf/relay.yaml
32+
command:
33+
- /otelcontribcol
34+
env:
35+
- name: MY_POD_IP
36+
valueFrom:
37+
fieldRef:
38+
apiVersion: v1
39+
fieldPath: status.podIP
40+
- name: K8S_NODE_NAME
41+
valueFrom:
42+
fieldRef:
43+
apiVersion: v1
44+
fieldPath: spec.nodeName
45+
image: quay.io/clyang82/otelcontribcol-dev:0.0.1
46+
imagePullPolicy: IfNotPresent
47+
livenessProbe:
48+
failureThreshold: 3
49+
httpGet:
50+
path: /
51+
port: 13133
52+
scheme: HTTP
53+
periodSeconds: 10
54+
successThreshold: 1
55+
timeoutSeconds: 1
56+
name: opentelemetry-collector
57+
ports:
58+
- containerPort: 6831
59+
name: jaeger-compact
60+
protocol: UDP
61+
- containerPort: 14250
62+
name: jaeger-grpc
63+
protocol: TCP
64+
- containerPort: 14268
65+
name: jaeger-thrift
66+
protocol: TCP
67+
- containerPort: 4317
68+
name: otlp
69+
protocol: TCP
70+
- containerPort: 4318
71+
name: otlp-http
72+
protocol: TCP
73+
- containerPort: 9411
74+
name: zipkin
75+
protocol: TCP
76+
readinessProbe:
77+
failureThreshold: 3
78+
httpGet:
79+
path: /
80+
port: 13133
81+
scheme: HTTP
82+
periodSeconds: 10
83+
successThreshold: 1
84+
timeoutSeconds: 1
85+
resources: {}
86+
securityContext: {}
87+
terminationMessagePath: /dev/termination-log
88+
terminationMessagePolicy: File
89+
volumeMounts:
90+
- mountPath: /conf
91+
name: opentelemetry-collector-configmap
92+
dnsPolicy: ClusterFirst
93+
restartPolicy: Always
94+
schedulerName: default-scheduler
95+
securityContext: {}
96+
serviceAccount: opentelemetry-collector-sa
97+
serviceAccountName: opentelemetry-collector-sa
98+
terminationGracePeriodSeconds: 30
99+
volumes:
100+
- configMap:
101+
defaultMode: 420
102+
items:
103+
- key: relay
104+
path: relay.yaml
105+
name: deployment-collector-dev-opentelemetry-collector
106+
name: opentelemetry-collector-configmap
107+
- apiVersion: v1
108+
data:
109+
relay: |
110+
exporters:
111+
debug: {}
112+
prometheusremotewrite:
113+
endpoint: {{PROM_ENDPOINT}}
114+
external_labels:
115+
cluster_name: cluster1
116+
extensions:
117+
health_check:
118+
endpoint: ${env:MY_POD_IP}:13133
119+
processors:
120+
batch: {}
121+
receivers:
122+
prometheus:
123+
config:
124+
scrape_configs:
125+
- job_name: opentelemetry-collector
126+
metrics_path: /metrics/cadvisor
127+
scheme: https
128+
tls_config:
129+
insecure_skip_verify: true
130+
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
131+
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
132+
kubernetes_sd_configs:
133+
- role: node
134+
relabel_configs:
135+
- action: labelmap
136+
regex: __meta_kubernetes_node_label_(.+)
137+
scrape_interval: 10s
138+
service:
139+
extensions:
140+
- health_check
141+
pipelines:
142+
metrics:
143+
exporters:
144+
- prometheusremotewrite
145+
processors:
146+
- batch
147+
receivers:
148+
- prometheus
149+
kind: ConfigMap
150+
metadata:
151+
name: deployment-collector-dev-opentelemetry-collector
152+
namespace: default
153+
- apiVersion: v1
154+
kind: ServiceAccount
155+
metadata:
156+
name: opentelemetry-collector-sa
157+
namespace: default
158+
- apiVersion: rbac.authorization.k8s.io/v1
159+
kind: ClusterRole
160+
metadata:
161+
name: otel-clusterrole
162+
rules:
163+
- nonResourceURLs:
164+
- /metrics
165+
- /metrics/cadvisor
166+
verbs:
167+
- get
168+
- apiGroups:
169+
- ""
170+
resources:
171+
- nodes
172+
- nodes/metrics
173+
verbs:
174+
- get
175+
- list
176+
- watch
177+
- apiVersion: rbac.authorization.k8s.io/v1
178+
kind: ClusterRoleBinding
179+
metadata:
180+
name: otel-clusterrolebinding
181+
roleRef:
182+
apiGroup: rbac.authorization.k8s.io
183+
kind: ClusterRole
184+
name: otel-clusterrole
185+
subjects:
186+
- kind: ServiceAccount
187+
name: opentelemetry-collector-sa
188+
namespace: default
189+
registration: []
190+

0 commit comments

Comments
 (0)