Skip to content

Commit 89d73f4

Browse files
authored
✨ Enable federated learning observability (open-cluster-management-io#55)
* Obs-addon Signed-off-by: mrrr61 <mrrr61@outlook.com> * Add reference to otel addon in README Signed-off-by: mrrr61 <mrrr61@outlook.com> * Use markdown Signed-off-by: mrrr61 <mrrr61@outlook.com> * Fix: use the correct namespace of kepler. Signed-off-by: mrrr61 <mrrr61@outlook.com> * Update README Signed-off-by: mrrr61 <mrrr61@outlook.com> * Add doc: configure-environment-observability Signed-off-by: mrrr61 <mrrr61@outlook.com> * Update document Signed-off-by: mrrr61 <mrrr61@outlook.com> * modify dir name Signed-off-by: mrrr61 <mrrr61@outlook.com> * modify dir name: otel_addon to otel-addon Signed-off-by: mrrr61 <mrrr61@outlook.com> --------- Signed-off-by: mrrr61 <mrrr61@outlook.com>
1 parent 77d9568 commit 89d73f4

13 files changed

Lines changed: 836 additions & 0 deletions

federated-learning-controller/README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,10 @@ cluster1 true https://cluster1-control-plane:6443 True True
5151
cluster2 true https://cluster2-control-plane:6443 True True 3m
5252
```
5353

54+
#### Optional: Configure Environment for Observability
55+
56+
Please refer to the [Observability Setup](docs/configure-environment-observability.md) documentation for more details.
57+
5458
---
5559

5660
### Deploy Federated Learning Controller
38.6 KB
Loading
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
#!/bin/bash
2+
3+
# Generate Root CA
4+
openssl genrsa -out root-ca.key 4096
5+
openssl req -x509 -new -nodes -key root-ca.key -sha256 -days 3650 \
6+
-subj "/CN=My Root CA" \
7+
-out root-ca.crt
8+
9+
# Generate Client CA
10+
openssl genrsa -out client-ca.key 4096
11+
openssl req -x509 -new -nodes -key client-ca.key -sha256 -days 3650 \
12+
-subj "/CN=My Client CA" \
13+
-out client-ca.crt
14+
15+
# Generate Server Key + CSR + Signed Cert
16+
openssl genrsa -out server.key 2048
17+
openssl req -new -key server.key -out server.csr -config san.cnf
18+
19+
# Sign server cert with Root CA
20+
openssl x509 -req -in server.csr -CA root-ca.crt -CAkey root-ca.key \
21+
-CAcreateserial -out server.crt -days 825 -sha256 -extensions v3_req -extfile san.cnf
22+
23+
# Remove the secrets if they exist
24+
kubectl --context kind-hub delete secret prometheus-tls -n monitoring --ignore-not-found
25+
kubectl --context kind-hub delete secret otel-signer -n open-cluster-management-hub --ignore-not-found
26+
27+
# create prometheus-tls secret in monitoring namespace
28+
kubectl --context kind-hub create secret generic prometheus-tls -n monitoring \
29+
--from-file=server.crt=server.crt\
30+
--from-file=server.key=server.key \
31+
--from-file=client-ca.crt=client-ca.crt
32+
33+
# create otel-signer secret in open-cluster-management-hub namespace
34+
kubectl --context kind-hub create secret tls otel-signer -n open-cluster-management-hub \
35+
--cert=client-ca.crt\
36+
--key=client-ca.key
37+
38+
# replace root-ca.crt in deploy/resources/addon-template.yaml
39+
awk '{print " " $0}' root-ca.crt > root-ca.crt.tmp
40+
sed -i "/PROM_WEB_ROOT_CA/{
41+
r root-ca.crt.tmp
42+
d
43+
}" ../../deploy/resources/addon-template.yaml
44+
rm root-ca.crt.tmp
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[ req ]
2+
distinguished_name = req_distinguished_name
3+
req_extensions = v3_req
4+
prompt = no
5+
6+
[ req_distinguished_name ]
7+
CN = hub-control-plane
8+
9+
[ v3_req ]
10+
subjectAltName = @alt_names
11+
12+
[ alt_names ]
13+
DNS.1 = hub-control-plane
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
prometheus:
2+
prometheusSpec:
3+
enableRemoteWriteReceiver: true
4+
web:
5+
tlsConfig:
6+
keySecret:
7+
key: server.key
8+
name: prometheus-tls
9+
cert:
10+
secret:
11+
key: server.crt
12+
name: prometheus-tls
13+
client_ca:
14+
secret:
15+
key: client-ca.crt
16+
name: prometheus-tls
17+
clientAuthType: RequestClientCert
18+
service:
19+
type: NodePort
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
resources:
2+
- resources/addon-template.yaml
3+
- resources/placement.yaml
4+
- resources/cluster-management-addon.yaml
5+
- resources/addon-deployment-config.yaml
6+
- resources/addonmanager.role.yaml
7+
- resources/addonmanager.rolebinding.yaml
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_REMOTE_WRITE_ENDPOINT
9+
value: https://hub-control-plane:30090/api/v1/write

0 commit comments

Comments
 (0)