Skip to content

Commit 14fefad

Browse files
committed
add auth to tier 1 and 2
Signed-off-by: MJarmo <michal.jarmolkiewicz@sap.com>
1 parent c818061 commit 14fefad

3 files changed

Lines changed: 105 additions & 29 deletions

File tree

showroom/kubectl/otel-ingress.yaml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
apiVersion: networking.k8s.io/v1
2+
kind: Ingress
3+
metadata:
4+
name: otelcol-agent-otlp
5+
namespace: tier-2
6+
annotations:
7+
dns.gardener.cloud/class: garden
8+
dns.gardener.cloud/dnsnames: otlp.ingress.otel-audit-log.msp06.shoot.gardener.cc-one.showroom.apeirora.eu
9+
dns.gardener.cloud/ttl: "600"
10+
cert.gardener.cloud/purpose: managed
11+
nginx.ingress.kubernetes.io/proxy-body-size: "10m"
12+
nginx.ingress.kubernetes.io/ssl-redirect: "true"
13+
spec:
14+
ingressClassName: nginx
15+
tls:
16+
- hosts:
17+
- otlp.ingress.otel-audit-log.msp06.shoot.gardener.cc-one.showroom.apeirora.eu
18+
secretName: otlp-certificate
19+
rules:
20+
- host: otlp.ingress.otel-audit-log.msp06.shoot.gardener.cc-one.showroom.apeirora.eu
21+
http:
22+
paths:
23+
- path: /v1/logs
24+
pathType: Prefix
25+
backend:
26+
service:
27+
name: otelcol-agent
28+
port:
29+
number: 4318
30+
- path: /v1/traces
31+
pathType: Prefix
32+
backend:
33+
service:
34+
name: otelcol-agent
35+
port:
36+
number: 4318
37+
- path: /v1/metrics
38+
pathType: Prefix
39+
backend:
40+
service:
41+
name: otelcol-agent
42+
port:
43+
number: 4318

showroom/kubectl/tier-1.yaml

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,14 @@ metadata:
99
name: dice-java-otelcol-config
1010
data:
1111
config.yaml: |
12+
extensions:
13+
basicauth/client:
14+
client_auth:
15+
# TEST-ONLY: plaintext credentials in a ConfigMap are NOT production-ready.
16+
# For production use a Kubernetes Secret and/or external secret store, and rotate credentials.
17+
username: tier1-ingest
18+
password: tier1-ingest-secret
19+
1220
receivers:
1321
otlp:
1422
protocols:
@@ -18,31 +26,34 @@ data:
1826
endpoint: 0.0.0.0:4318
1927
2028
processors:
21-
batch: # used to optimize export calls in all pipelines
29+
batch:
2230
send_batch_size: 1024
2331
timeout: 5s
2432
2533
exporters:
26-
otlp:
27-
endpoint: log-sink.tier-3.svc.cluster.local:4317
34+
otlphttp:
35+
endpoint: http://otelcol-agent.tier-2.svc.cluster.local:4318
2836
tls:
2937
insecure: true
38+
auth:
39+
authenticator: basicauth/client
3040
debug:
3141
3242
service:
43+
extensions: [basicauth/client]
3344
pipelines:
3445
logs:
3546
receivers: [otlp]
3647
processors: [batch]
37-
exporters: [otlp, debug]
48+
exporters: [otlphttp, debug]
3849
metrics:
3950
receivers: [otlp]
4051
processors: [batch]
41-
exporters: [otlp, debug]
52+
exporters: [otlphttp, debug]
4253
traces:
4354
receivers: [otlp]
4455
processors: [batch]
45-
exporters: [otlp, debug]
56+
exporters: [otlphttp, debug]
4657
---
4758
apiVersion: apps/v1
4859
kind: Deployment
@@ -87,7 +98,6 @@ spec:
8798
image: otel/opentelemetry-collector-contrib:latest
8899
imagePullPolicy: Always
89100
args:
90-
# see ConfigMap mapped as volume below
91101
- "--config=/etc/otelcol-contrib/config.yaml"
92102
ports:
93103
- name: otlp-grpc

showroom/kubectl/tier-2.yaml

Lines changed: 45 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,29 @@ data:
1717
create_directory: true
1818
health_check:
1919
endpoint: ${env:MY_POD_IP}:13133
20+
basicauth/server:
21+
htpasswd:
22+
inline: |
23+
# TEST-ONLY: plaintext htpasswd entries are NOT production-ready.
24+
# For production generate a bcrypt htpasswd line (e.g. `htpasswd -nbBC 10 USER PASS`)
25+
# and store it in a Kubernetes Secret (or external secret store).
26+
#####
27+
basicauth/client:
28+
client_auth:
29+
username: ${env:OPENSEARCH_USERNAME}
30+
password: ${env:OPENSEARCH_PASSWORD}
2031
2132
receivers:
2233
otlp:
2334
protocols:
2435
grpc:
2536
endpoint: 0.0.0.0:4317
37+
auth:
38+
authenticator: basicauth/server
2639
http:
2740
endpoint: 0.0.0.0:4318
41+
auth:
42+
authenticator: basicauth/server
2843
2944
processors:
3045
batch:
@@ -35,24 +50,34 @@ data:
3550
# Export logs directly to OpenSearch in namespace 'tier-3'.
3651
# If your OpenSearch installation requires authentication, provide username/password
3752
# via Kubernetes Secret and reference them using env vars in the DaemonSet below.
38-
elasticsearch:
39-
endpoints: ["http://opensearch-cluster-master.tier-3.svc.cluster.local:9200"]
40-
# username: "admin"
41-
# password: "changeme"
53+
opensearch:
54+
http:
55+
endpoint: https://opensearch-cluster-master.tier-3.svc.cluster.local:9200
56+
tls:
57+
insecure_skip_verify: true
58+
auth:
59+
authenticator: basicauth/client
60+
logs_index: otel-logs
61+
traces_index: otel-traces
4262
sending_queue:
4363
enabled: true
4464
storage: file_storage
45-
# retry_on_failure: # FIXME elasticsearch exporter doesn't support retry_on_failure yet
46-
# enabled: true
47-
debug:
65+
debug/logs:
66+
verbosity: detailed
67+
debug/metrics:
68+
verbosity: basic
4869
4970
service:
50-
extensions: [file_storage, health_check]
71+
extensions: [file_storage, health_check, basicauth/server, basicauth/client]
5172
pipelines:
5273
logs:
5374
receivers: [otlp]
5475
processors: [batch]
55-
exporters: [elasticsearch, debug]
76+
exporters: [opensearch, debug/logs]
77+
metrics:
78+
receivers: [otlp]
79+
processors: [batch]
80+
exporters: [debug/metrics]
5681
telemetry:
5782
metrics:
5883
readers:
@@ -134,16 +159,16 @@ spec:
134159
fieldRef:
135160
fieldPath: status.podIP
136161
# If OpenSearch requires basic auth, you can pass credentials via env vars
137-
# - name: OPENSEARCH_USERNAME
138-
# valueFrom:
139-
# secretKeyRef:
140-
# name: opensearch-credentials
141-
# key: username
142-
# - name: OPENSEARCH_PASSWORD
143-
# valueFrom:
144-
# secretKeyRef:
145-
# name: opensearch-credentials
146-
# key: password
162+
- name: OPENSEARCH_USERNAME
163+
valueFrom:
164+
secretKeyRef:
165+
name: opensearch-credentials
166+
key: username
167+
- name: OPENSEARCH_PASSWORD
168+
valueFrom:
169+
secretKeyRef:
170+
name: opensearch-credentials
171+
key: password
147172
resources:
148173
limits:
149174
memory: 256Mi
@@ -197,9 +222,7 @@ metadata:
197222
app: otelcol-agent
198223
component: otel-collector
199224
spec:
200-
type: ClusterIP
201-
internalTrafficPolicy: Local
202-
clusterIP: None
225+
type: LoadBalancer
203226
selector:
204227
app: otelcol-agent
205228
component: otel-collector

0 commit comments

Comments
 (0)