Skip to content

Commit cc210a7

Browse files
committed
add documentation how to deploy bridge in a k8s/OCP environment
1 parent 8a20426 commit cc210a7

10 files changed

+484
-0
lines changed

docs/bridge_connect_grafana_ocp.png

133 KB
Loading

docs/connect_bridge_to_grafana_ocp.md

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
# Connecting the grafana-bridge datasource to the Grafana for CNSS instance
2+
3+
4+
![](/docs/bridge_connect_grafana_ocp.png)
5+
6+
The grafana-serviceaccount serviceAccount, created during [Grafana instance deployment](/docs/grafana_deployment_ocp.md), was created alongside the Grafana instance.
7+
You need grant the grafana-serviceaccount access rights to the ibm-spectrum-scale-operator clusterRole.
8+
9+
```
10+
[root@mycluster-inf grafana_deployment]# oc get sa
11+
NAME SECRETS AGE
12+
builder 2 10m
13+
default 2 10m
14+
deployer 2 10m
15+
grafana-operator 2 5m12s
16+
grafana-serviceaccount 2 78s
17+
18+
[root@mycluster-inf grafana_deployment]# oc describe serviceAccount grafana-serviceaccount
19+
Name: grafana-serviceaccount
20+
Namespace: my-grafana
21+
Labels: <none>
22+
Annotations: <none>
23+
Image pull secrets: grafana-serviceaccount-dockercfg-jc27p
24+
Mountable secrets: grafana-serviceaccount-token-5qvz4
25+
grafana-serviceaccount-dockercfg-jc27p
26+
Tokens: grafana-serviceaccount-token-5pgt5
27+
grafana-serviceaccount-token-5qvz4
28+
Events: <none>
29+
30+
[root@mycluster-inf grafana_deployment]# oc adm policy add-cluster-role-to-user ibm-spectrum-scale-operator -z grafana-serviceaccount
31+
clusterrole.rbac.authorization.k8s.io/ibm-spectrum-scale-operator added: "grafana-serviceaccount"
32+
33+
```
34+
35+
36+
The bearer token for this serviceAccount is used to authenticate the access to grafana-bridge dataSource in the my-grafana namespace. The following command will display this token.
37+
38+
```
39+
[root@mycluster-inf grafana_deployment]# oc serviceaccounts get-token grafana-serviceaccount -n my-grafana
40+
eyJhbGciOiJSUzI1NiIsImtpZCI6IlFIV0dLT1ZITlpqQ1lXc05TNUNkVjZ2MDFJVUp2SjFnR3lkR2IzWU9HSmsifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJteS1ncmFmYW5hIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImdyYWZhbmEtc2VydmljZWFjY291bnQtdG9rZW4tNXF2ejQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZ3JhZmFuYS1zZXJ2aWNlYWNjb3VudCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjY3MjY0ZmU0LWFlYTMtNDQxNC05NDU5LTE2NTg2NzU2NTRiMyIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpteS1ncmFmYW5hOmdyYWZhbmEtc2VydmljZWFjY291bnQifQ.hd0nRch8LksC8yDCCoNtCgvqnicZiDPX7nez_EcbSp41qteKGx5mrMoif15XeWSl-sJQPhEu92ACaJYdXCUazl-5rTzB8aa0AYjn0tom8Y_5fISxyeGBraj7Otfrc1LVFXtnc9GpzwfY8R_jPYAfEu10ToRe-TvgXWTBnFp-qPMrlZhN4psdfmvFFVw_228Q1jXp16A1a1O5J9ZfNWSXsKrjDqnRYHa2O0JyHh8kp5QVlCnpNjk7DoXnawkhuOypAn257cudnlPYVdSj_lQ2jm4nIXC5eZ5lxFk6JXe5oLGxSKm92ls2LbZoUF48qpEwmGGCfRZPifsR1DzA0xwWFQ
41+
```
42+
43+
Substituite ${BEARER_TOKEN} with the output of the command above in the grafana-bridge-datasource.yaml
44+
Also 'TLS cert ${TLS_CERT}', 'TLS key ${TLS_KEY}' need to be replaced with TLS key and certificate, we have generated for the grafana-bridge.
45+
46+
The GrafanaDataSource deployment script for the grafana-bridge datasource will look as below:
47+
48+
```
49+
apiVersion: integreatly.org/v1alpha1
50+
kind: GrafanaDataSource
51+
metadata:
52+
name: bridge-grafanadatasource
53+
namespace: my-grafana
54+
spec:
55+
datasources:
56+
- access: proxy
57+
editable: true
58+
isDefault: true
59+
jsonData:
60+
httpHeaderName1: 'Authorization'
61+
timeInterval: 5s
62+
tlsSkipVerify: true
63+
tlsAuth: true
64+
name: grafana-bridge
65+
type: opentsdb
66+
secureJsonData:
67+
tlsClientCert: |
68+
-----BEGIN CERTIFICATE-----
69+
MIIDNzCCAh+gAwIBAgIJAMlcr+FBcrAnMA0GCSqGSIb3DQEBCwUAMDIxFzAVBgNV
70+
BAMMDmdyYWZhbmEtYnJpZGdlMRcwFQYDVQQKDA5ncmFmYW5hLWJyaWRnZTAeFw0y
71+
MDEyMDcxNzA5NTlaFw0yMTEyMDcxNzA5NTlaMDIxFzAVBgNVBAMMDmdyYWZhbmEt
72+
YnJpZGdlMRcwFQYDVQQKDA5ncmFmYW5hLWJyaWRnZTCCASIwDQYJKoZIhvcNAQEB
73+
BQADggEPADCCAQoCggEBANnu/Q6r2f3PHxO/9U+Wfkrvi52tRU8D/jHP/4yxQhOG
74+
W35EtxpW4HHaNNvEOVJ0+JBz+tJ9lG0FMG1k1dsfr/uAjyNzWuncE5O3peMiIdEg
75+
zgn7i0PeQJCMpah4hUVeLG6dLAXVllXeY8wKSv0rHByTyHJ0o5LgvZRExuqRgSIF
76+
zHBlGSqbrReVzaJgjhrJ8e49OqtuNrONsPCWDvck4JUIFOFYUrkpY+HOylRyCT/6
77+
a+h9fYtWGJB+25seqn8+edXn4lvu/bBLFnlJDgVnBlokMv3fSV+t2jPNDId25xpy
78+
+pXY8g1N/mytG0t/OU9bdrLmM+LTpDN56FzKpO9hbCkCAwEAAaNQME4wHQYDVR0O
79+
BBYEFHycTF2dzsCbGtMNyOSkRVsPlcCSMB8GA1UdIwQYMBaAFHycTF2dzsCbGtMN
80+
yOSkRVsPlcCSMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAGgpZvr1
81+
LzsNOUz8gNl6ZoH2rNaMkdPxngRpjAeXpypXMA02KDSVkBl02pWp3KwdsKporhmR
82+
0a0Fz0dPFZQYFNi/zNK/BUDh66rRtzecg0Zw8ne7+YVhYlZDsG1R7GFdIudHz12y
83+
kIBylbrb56LG4ltBvfaS5iWmuqnXuC+rjzKNCMSoBDdp+L+7objrt4qdThFVUOQ3
84+
HCBDNH5DPxm5Md2pVy4qfU7apxAndE+29PYaw02FMfGHN5wTS6wU5gI62o1FivMT
85+
O+6FAarz5qVR/D09GhoohwQDT8m5N2hfS61JQ/f3iN3KUYK00ppwWzJeumabVY+Z
86+
/tXxmBkn7N2CkrQ=
87+
-----END CERTIFICATE-----
88+
tlsClientKey: |
89+
-----BEGIN PRIVATE KEY-----
90+
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDZ7v0Oq9n9zx8T
91+
v/VPln5K74udrUVPA/4xz/+MsUIThlt+RLcaVuBx2jTbxDlSdPiQc/rSfZRtBTBt
92+
ZNXbH6/7gI8jc1rp3BOTt6XjIiHRIM4J+4tD3kCQjKWoeIVFXixunSwF1ZZV3mPM
93+
Ckr9Kxwck8hydKOS4L2URMbqkYEiBcxwZRkqm60Xlc2iYI4ayfHuPTqrbjazjbDw
94+
lg73JOCVCBThWFK5KWPhzspUcgk/+mvofX2LVhiQftubHqp/PnnV5+Jb7v2wSxZ5
95+
SQ4FZwZaJDL930lfrdozzQyHducacvqV2PINTf5srRtLfzlPW3ay5jPi06Qzeehc
96+
yqTvYWwpAgMBAAECggEAXcWGX1S0hJAlWBMlk2w2xTmTQnI2u0wFiRttYvU2cD5E
97+
ie05N/0fr/1q9xDUdVVdSpKM3xsnzU0JTFix6AoXZ8kmTeOpv6xxRAMmPrgGAvzx
98+
irwQbVBpSYkrEnVhKrrdtW6tbYk8mZAKMtZO8+Yjv2wbOJxVcbKAABcj2/RlsuQu
99+
N03bAdxBWfPMj/Du1HHI3G+zJ9b8y0AV96tC6Yb4QOIIGXiX2q3aHUJYApn++/FC
100+
dzyaKOIQ128v/WFQnHf6lCGdTEfGXUjMWY0RR7eqj8lNDtRg1gvpN964KI7BHvke
101+
sRSIT+bSi9D1t4hOSxjDs4XCk6B3ykefhPPq0vk8gQKBgQD6kUcyssmY3T9hCL6X
102+
UB4BmSa0XIXLyWydG0Vmlvjw8ca/waCRkIqv+NDeoq7PTCul2poHPMT7/aVEHo5t
103+
UCf9hqIHYp7C0sOPl5y72WpsAYNi7hZjZvqYnLzNqi0UwmtWQZCrqOp9bPXixDnf
104+
h/lfpjk9FOS48NXp26TTSBLJ2QKBgQDeqJUkMblyk7+uz5AEq0XujQ9WmxLmA7/W
105+
Ylz0Hj7uEYlHSwPh63+HlrOhVZAefa/wnjlwgF5ZGnrkSxDJzzAhpwNjk5lb8j6j
106+
5ty1xa72YykI2sNoshdZ/qEy+CJAigf4xisDDd70xOR/q70F3TdOQJTVPQGd17Gt
107+
Uh40Smhy0QKBgQCNc1gTKdUe47+0wp/9ga/+zPuJlDW/7mzPYCbUnGPaeVLuy5se
108+
sc9pOfiHxqUSx3hYf8i2TzsQ2obiprFWyopY2Bk+PBFOAHd/52IGtd0bLduDDM88
109+
vFS5tLntDKW4c2zu28KU9Z2ywsEojAfzxaoksgzcC6B3OxY3l9Q7phNdOQKBgDKo
110+
yp4cjiQKh78/THYzfcrD32yGBeu9iKU/ZgTI6OqDpOdKowyA51gzKpWXgR3e3Ovz
111+
JAB7xHujcbiFd8Fi2YGenT/HskngOO5TtX3KB3/ZmdmA5JrqgjOgoo6VND3Y6e1p
112+
MRoVyteIALEnou81oMK2IObPZZHDJJLZrzOYhmExAoGBAO3eEcGuNOJQ0C+7L6fM
113+
ehAHRd4XxCH0p4/lAI+qQZxmkRfho1IXg/sAQoFXCF2dj+hMZ9nlV26m3n6iZxFY
114+
bjRUDSzBGHtV+WhPLzrKrsRFn4USCQHDA9+0aL2jGnfwC3En4SeMfk/3usLPVSAX
115+
B4MtCX8SrTMkQ7PutwU2/R+i
116+
-----END PRIVATE KEY-----
117+
httpHeaderValue1: 'eyJhbGciOiJSUzI1NiIsImtpZCI6IlFIV0dLT1ZITlpqQ1lXc05TNUNkVjZ2MDFJVUp2SjFnR3lkR2IzWU9HSmsifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJteS1ncmFmYW5hIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6ImdyYWZhbmEtc2VydmljZWFjY291bnQtdG9rZW4tNXF2ejQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZ3JhZmFuYS1zZXJ2aWNlYWNjb3VudCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjY3MjY0ZmU0LWFlYTMtNDQxNC05NDU5LTE2NTg2NzU2NTRiMyIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpteS1ncmFmYW5hOmdyYWZhbmEtc2VydmljZWFjY291bnQifQ.hd0nRch8LksC8yDCCoNtCgvqnicZiDPX7nez_EcbSp41qteKGx5mrMoif15XeWSl-sJQPhEu92ACaJYdXCUazl-5rTzB8aa0AYjn0tom8Y_5fISxyeGBraj7Otfrc1LVFXtnc9GpzwfY8R_jPYAfEu10ToRe-TvgXWTBnFp-qPMrlZhN4psdfmvFFVw_228Q1jXp16A1a1O5J9ZfNWSXsKrjDqnRYHa2O0JyHh8kp5QVlCnpNjk7DoXnawkhuOypAn257cudnlPYVdSj_lQ2jm4nIXC5eZ5lxFk6JXe5oLGxSKm92ls2LbZoUF48qpEwmGGCfRZPifsR1DzA0xwWFQ'
118+
url: 'https://grafana-bridge.spectrum-scale-ns.svc.cluster.local:8443'
119+
version: 1
120+
name: grafana-bridge-datasource.yaml
121+
122+
```
123+
124+
125+
create the grafana-bridge GrafanaDataSource from the yaml file
126+
127+
```
128+
[root@mycluster-inf grafana_deployment]# oc create -f grafana-bridge-datasource.yaml
129+
grafanadatasource.integreatly.org/bridge-grafanadatasource created
130+
131+
[root@mycluster-inf grafana_deployment]# oc get GrafanaDataSource -n my-grafana
132+
NAME AGE
133+
bridge-grafanadatasource 25s
134+
135+
[root@mycluster-inf grafana_deployment]# oc get configmap -n my-grafana
136+
NAME DATA AGE
137+
grafana-config 1 12h
138+
grafana-datasources 1 12h
139+
grafana-operator-lock 0 12h
140+
141+
```

docs/explore_grafana_ocp.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Explore Grafana WEB interface for CNSS project in a k8s/OCP environment
2+
3+
4+
5+
Explore the grafana-route instance properties
6+
7+
```
8+
[root@mycluster-inf grafana_deployment]# oc get route
9+
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
10+
grafana-route grafana-route-my-grafana.apps.mycluster.os.fyre.ibm.com grafana-service 3000 edge None
11+
12+
[root@mycluster-inf grafana_deployment]# oc describe route grafana-route
13+
Name: grafana-route
14+
Namespace: my-grafana
15+
Created: 21 hours ago
16+
Labels: <none>
17+
Annotations: openshift.io/host.generated=true
18+
Requested Host: grafana-route-my-grafana.apps.mycluster.os.fyre.ibm.com
19+
exposed on router default (host apps.mycluster.os.fyre.ibm.com) 21 hours ago
20+
Path: <none>
21+
TLS Termination: edge
22+
Insecure Policy: <none>
23+
Endpoint Port: 3000
24+
25+
Service: grafana-service
26+
Weight: 100 (100%)
27+
Endpoints: 10.254.12.208:3000
28+
29+
```
30+
31+
32+
In a browser put the 'Requested Host' URL to open a Grafana user interface. Click on ‘Sign In’ from the bottom left menu of Grafana, and log in using the default username and password configured earlier(root/secret).
33+
34+
![](/docs/grafana_ui_login_view.png)
35+
36+
37+
Click on Configuration > Data Sources in the side menu and you’ll be taken to the data sources page where you can review and test grafana-bridge datasource settings.
38+
39+
![](/docs/grafana_ui_datasource_view.png)
40+
41+
42+
Now, an editable Grafana interface appears and you can view your custom Grafana dashboards or create your own.

docs/grafana-operator-installed.png

59 KB
Loading

0 commit comments

Comments
 (0)