Skip to content

Commit 6811139

Browse files
authored
Prepare development cluster for OpenTelemetry (#1685)
This change implements an operator-based telemetry ingestion stack for development purposes. It's a somewhat large stack to deploy, so we keep it out of CI and exclusively add it to the `deploy/dev` setup. For convenience we also adjust the nativelink K8s deployment to set the `OTEL_EXPORTER_OTLP_ENDPOINT` and `OTEL_EXPORTER_OTLP_COMPRESSION` environment variables as per https://opentelemetry.io/docs/specs/otel/configuration/sdk-environment-variables/. These are currently a no-op and will be the only required change for existing deployments once we land the the corresponding Rust changes.
1 parent 23a64cf commit 6811139

File tree

16 files changed

+15518
-0
lines changed

16 files changed

+15518
-0
lines changed

deploy/dev/kustomization.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ kind: Kustomization
33

44
resources:
55
- ../../kubernetes/resources/flux
6+
- ../../kubernetes/resources/flux-dev
67
- ../../kubernetes/resources/nativelink-core
78
- ../../kubernetes/resources/gateway-routes
89
- ../../kubernetes/workers/resources/worker-init

kubernetes/components/worker/worker.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ spec:
3030
value: info
3131
- name: NATIVELINK_ENDPOINT
3232
value: nativelink
33+
- name: OTEL_EXPORTER_OTLP_ENDPOINT
34+
value: http://otel-collector-collector.default.svc:4317
35+
- name: OTEL_EXPORTER_OTLP_COMPRESSION
36+
value: zstd
3337
volumeMounts:
3438
- name: worker-config
3539
mountPath: /worker.json5

kubernetes/nativelink/nativelink.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ spec:
2020
env:
2121
- name: RUST_LOG
2222
value: info
23+
- name: OTEL_EXPORTER_OTLP_ENDPOINT
24+
value: http://otel-collector-collector.default.svc:4317
25+
- name: OTEL_EXPORTER_OTLP_COMPRESSION
26+
value: zstd
2327
ports:
2428
- containerPort: 9090
2529
- containerPort: 50051
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
apiVersion: v1
3+
kind: Namespace
4+
metadata:
5+
name: cert-manager
6+
---
7+
apiVersion: source.toolkit.fluxcd.io/v1
8+
kind: HelmRepository
9+
metadata:
10+
name: cert-manager
11+
namespace: flux-system
12+
spec:
13+
interval: 24h
14+
url: https://charts.jetstack.io
15+
---
16+
apiVersion: helm.toolkit.fluxcd.io/v2
17+
kind: HelmRelease
18+
metadata:
19+
name: cert-manager
20+
namespace: flux-system
21+
spec:
22+
interval: 30m
23+
targetNamespace: cert-manager
24+
chart:
25+
spec:
26+
chart: cert-manager
27+
version: "1.x"
28+
sourceRef:
29+
kind: HelmRepository
30+
name: cert-manager
31+
interval: 12h
32+
values:
33+
installCRDs: true
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
apiVersion: kustomize.config.k8s.io/v1beta1
3+
kind: Kustomization
4+
5+
resources:
6+
- cert-manager.yaml
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
---
2+
apiVersion: kustomize.toolkit.fluxcd.io/v1
3+
kind: Kustomization
4+
metadata:
5+
name: cert-manager
6+
namespace: flux-system
7+
spec:
8+
interval: 2m
9+
path: "./kubernetes/resources/cert-manager"
10+
prune: true
11+
force: true
12+
retryInterval: 20s
13+
# Don't set targetNamespace for this one as the cert-manager kustomization
14+
# needs to create a cert-manager namespace. The flux resources will live in
15+
# the flux-system namespace.
16+
wait: true
17+
sourceRef:
18+
kind: GitRepository
19+
name: nativelink-infra
20+
namespace: flux-system
21+
---
22+
apiVersion: kustomize.toolkit.fluxcd.io/v1
23+
kind: Kustomization
24+
metadata:
25+
name: olm
26+
namespace: flux-system
27+
spec:
28+
interval: 24h
29+
path: "./kubernetes/vendor/olm"
30+
prune: true
31+
force: true
32+
retryInterval: 20s
33+
# Don't set targetNamespace for this one as OLM mangages this itself.
34+
wait: true
35+
sourceRef:
36+
kind: GitRepository
37+
name: nativelink-infra
38+
namespace: flux-system
39+
---
40+
apiVersion: kustomize.toolkit.fluxcd.io/v1
41+
kind: Kustomization
42+
metadata:
43+
name: telemetry-operators
44+
namespace: flux-system
45+
spec:
46+
interval: 24h
47+
path: "./kubernetes/vendor/telemetry"
48+
prune: true
49+
force: true
50+
retryInterval: 20s
51+
targetNamespace: operators
52+
wait: true
53+
sourceRef:
54+
kind: GitRepository
55+
name: nativelink-infra
56+
namespace: flux-system
57+
dependsOn:
58+
- name: olm
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
apiVersion: kustomize.config.k8s.io/v1beta1
3+
kind: Kustomization
4+
5+
resources:
6+
- flux-kustomizations.yaml

kubernetes/vendor/olm/crds.yaml

Lines changed: 14930 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
apiVersion: kustomize.config.k8s.io/v1beta1
3+
kind: Kustomization
4+
5+
resources:
6+
- crds.yaml
7+
- olm.yaml

0 commit comments

Comments
 (0)