|
| 1 | +# Connecting the grafana-bridge datasource to the Grafana for CNSS instance |
| 2 | + |
| 3 | + |
| 4 | + |
| 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 | +``` |
0 commit comments