@@ -96,7 +96,16 @@ deploy_pmm_server() {
9696 local additional_params=" --set platform=openshift --set sa=pmm-server --set supresshttp2=false"
9797 fi
9898
99- helm install monitoring -n " ${NAMESPACE} " --set imageTag=${IMAGE_PMM_SERVER#*: } --set imageRepo=${IMAGE_PMM_SERVER%:* } $additional_params https://percona-charts.storage.googleapis.com/pmm-server-$PMM_SERVER_VERSION .tgz
99+ kubectl delete clusterrole monitoring --ignore-not-found
100+ kubectl delete clusterrolebinding monitoring --ignore-not-found
101+
102+ helm install monitoring percona/pmm -n " ${NAMESPACE} " \
103+ --set fullnameOverride=monitoring \
104+ --version ${PMM_SERVER_VERSION} \
105+ --set imageTag=${IMAGE_PMM_SERVER#*: } \
106+ --set imageRepo=${IMAGE_PMM_SERVER%:* } \
107+ --set service.type=LoadBalancer \
108+ --force
100109
101110 until kubectl -n " ${NAMESPACE} " exec monitoring-0 -- bash -c " ls -l /proc/*/exe 2>/dev/null| grep postgres >/dev/null" ; do
102111 echo " Retry $retry "
@@ -110,15 +119,37 @@ deploy_pmm_server() {
110119}
111120
112121get_pmm_api_key () {
113- local key_name=$1
114-
115- if [[ -z $key_name ]]; then
116- key_name=" operator"
117- fi
118-
119- local ADMIN_PASSWORD
120- ADMIN_PASSWORD=$( kubectl -n " ${NAMESPACE} " exec monitoring-0 -- bash -c " printenv | grep ADMIN_PASSWORD | cut -d '=' -f2" )
121- curl --insecure -X POST -H " Content-Type: application/json" -d " {\" name\" :\" $key_name \" , \" role\" : \" Admin\" }" " https://admin:$ADMIN_PASSWORD @$( get_service_ip monitoring-service) /graph/api/auth/keys" | jq .key
122+ local key_name=$1
123+
124+ if [[ -z $key_name ]]; then
125+ key_name=" operator"
126+ fi
127+
128+ local ADMIN_PASSWORD
129+ ADMIN_PASSWORD=$( kubectl -n " ${NAMESPACE} " get secret pmm-secret -o jsonpath=" {.data.PMM_ADMIN_PASSWORD}" | base64 --decode)
130+
131+ if [[ -z $ADMIN_PASSWORD ]]; then
132+ echo " Error: ADMIN_PASSWORD is empty or not found!" >&2
133+ return 1
134+ fi
135+
136+ local response status_code json_response
137+ response=$( curl --insecure -s -X POST -H ' Content-Type: application/json' \
138+ -d " {\" name\" :\" ${key_name} \" , \" role\" : \" Admin\" }" \
139+ --user " admin:${ADMIN_PASSWORD} " \
140+ " https://$( get_service_ip monitoring-service) /graph/api/auth/keys" \
141+ -w " \n%{http_code}" )
142+
143+ status_code=$( echo " $response " | tail -n1)
144+ json_response=$( echo " $response " | sed ' $ d' )
145+
146+ if [[ " $status_code " -eq 200 ]]; then
147+ echo " $json_response " | jq -r ' .key'
148+ else
149+ echo " Error: Failed to get API key with HTTP status code: $status_code )" >&2
150+ echo " Response: $json_response " >&2
151+ return 1
152+ fi
122153}
123154
124155delete_pmm_api_key () {
0 commit comments