Bugfix/pulsar manager init (#463)
* add some more logs to the pulsar manager test * fix admin secret "double-encoding" * make pulsar-manager-cluster-initialize.yaml "rerunnable"
This commit is contained in:
parent
17a4239733
commit
89c5987b17
10
.ci/helm.sh
10
.ci/helm.sh
@ -355,8 +355,10 @@ function ci::test_pulsar_manager() {
|
||||
echo "Testing pulsar manager"
|
||||
|
||||
until ${KUBECTL} get jobs -n ${NAMESPACE} ${CLUSTER}-pulsar-manager-init -o json | jq -r '.status.conditions[] | select (.type | test("Complete")).status' | grep True; do sleep 3; done
|
||||
|
||||
|
||||
${KUBECTL} describe job -n ${NAMESPACE} ${CLUSTER}-pulsar-manager-init
|
||||
${KUBECTL} logs -n ${NAMESPACE} job.batch/${CLUSTER}-pulsar-manager-init
|
||||
# this line errors in some tests? - i do not know why, but is really useful for debugging, try: cat ./pulsar-manager.log otherwise
|
||||
# ${KUBECTL} exec -n ${NAMESPACE} ${CLUSTER}-pulsar-manager-0 -- cat /pulsar-manager/pulsar-manager/pulsar-manager.log
|
||||
echo "Checking Podname"
|
||||
podname=$(${KUBECTL} get pods -n ${NAMESPACE} -l component=pulsar-manager --no-headers -o custom-columns=":metadata.name")
|
||||
echo "Getting pulsar manager UI password"
|
||||
@ -377,7 +379,7 @@ function ci::test_pulsar_manager() {
|
||||
LOGIN_JSESSIONID=$(${KUBECTL} exec -n ${NAMESPACE} ${podname} -- grep -o "JSESSIONID=[a-zA-Z0-9_]*" headers.txt | sed 's/^.*=//')
|
||||
|
||||
echo "Checking environment"
|
||||
envs=$(${KUBECTL} exec -n ${NAMESPACE} ${podname} -- curl -X GET http://localhost:9527/pulsar-manager/environments \
|
||||
envs=$(${KUBECTL} exec -n ${NAMESPACE} ${podname} -- curl -X GET http://127.0.0.1:9527/pulsar-manager/environments \
|
||||
-H 'Content-Type: application/json' \
|
||||
-H "token: $LOGIN_TOKEN" \
|
||||
-H "X-XSRF-TOKEN: $CSRF_TOKEN" \
|
||||
@ -393,7 +395,7 @@ function ci::test_pulsar_manager() {
|
||||
# Force manager to query broker for tenant info. This will require use of the manager's JWT, if JWT authentication is enabled.
|
||||
echo "Checking tenants"
|
||||
pulsar_env=$(echo $envs | jq -r '.data[0].name')
|
||||
tenants=$(${KUBECTL} exec -n ${NAMESPACE} ${podname} -- curl -X GET http://localhost:9527/pulsar-manager/admin/v2/tenants \
|
||||
tenants=$(${KUBECTL} exec -n ${NAMESPACE} ${podname} -- curl -X GET http://127.0.0.1:9527/pulsar-manager/admin/v2/tenants \
|
||||
-H 'Content-Type: application/json' \
|
||||
-H "token: $LOGIN_TOKEN" \
|
||||
-H "X-XSRF-TOKEN: $CSRF_TOKEN" \
|
||||
|
||||
@ -40,13 +40,13 @@ data:
|
||||
{{- $secretObj := lookup "v1" "Secret" $namespace $secretName | default dict }}
|
||||
{{- $secretData := (get $secretObj "data") | default dict }}
|
||||
|
||||
{{- $ui_user := (get $secretData "UI_USERNAME") | default (.Values.pulsar_manager.admin.ui_username) | default ("pulsar") | b64enc }}
|
||||
{{- $ui_password := (get $secretData "UI_PASSWORD") | default (.Values.pulsar_manager.admin.ui_password) | default (randAlphaNum 32) | b64enc }}
|
||||
{{- $ui_user := ((get $secretData "UI_USERNAME") | b64dec) | default (.Values.pulsar_manager.admin.ui_username) | default ("pulsar") | b64enc }}
|
||||
{{- $ui_password := ((get $secretData "UI_PASSWORD") | b64dec) | default (.Values.pulsar_manager.admin.ui_password) | default (randAlphaNum 32) | b64enc }}
|
||||
UI_USERNAME: {{ $ui_user | quote }}
|
||||
UI_PASSWORD: {{ $ui_password | quote }}
|
||||
|
||||
{{- $db_user := (get $secretData "DB_USERNAME") | default (.Values.pulsar_manager.admin.db_username) | default ("pulsar") | b64enc }}
|
||||
{{- $db_password := (get $secretData "DB_PASSWORD") | default (.Values.pulsar_manager.admin.db_password) | default (randAlphaNum 32) | b64enc }}
|
||||
{{- $db_user := ((get $secretData "DB_USERNAME") | b64dec) | default (.Values.pulsar_manager.admin.db_username) | default ("pulsar") | b64enc }}
|
||||
{{- $db_password := ((get $secretData "DB_PASSWORD") | b64dec) | default (.Values.pulsar_manager.admin.db_password) | default (randAlphaNum 32) | b64enc }}
|
||||
DB_USERNAME: {{ $db_user | quote }}
|
||||
DB_PASSWORD: {{ $db_password | quote }}
|
||||
|
||||
|
||||
@ -82,24 +82,41 @@ spec:
|
||||
- |
|
||||
ADMIN_URL={{ template "pulsar.fullname" . }}-{{ .Values.pulsar_manager.component }}-admin:{{ .Values.pulsar_manager.adminService.port }}
|
||||
CSRF_TOKEN=$(curl http://${ADMIN_URL}/pulsar-manager/csrf-token)
|
||||
{{/* set admin credentials */}}
|
||||
curl -v \
|
||||
-X PUT http://${ADMIN_URL}/pulsar-manager/users/superuser \
|
||||
-H "X-XSRF-TOKEN: $CSRF_TOKEN" \
|
||||
-H "Cookie: XSRF-TOKEN=$CSRF_TOKEN;" \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"name": "'"${USERNAME}"'", "password": "'"${PASSWORD}"'", "description": "Helm-managed Admin Account", "email": "'"${USERNAME}"'@pulsar.org"}'
|
||||
|
||||
UI_URL={{ template "pulsar.fullname" . }}-{{ .Values.pulsar_manager.component }}:{{ .Values.pulsar_manager.service.port }}
|
||||
{{/* login as admin */}}
|
||||
curl -v \
|
||||
|
||||
{{/* check if account is already existing */}}
|
||||
LOGIN_REPLY=$(curl -v \
|
||||
-X POST http://${UI_URL}/pulsar-manager/login \
|
||||
-H 'Accept: application/json, text/plain, */*' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-H "X-XSRF-TOKEN: $CSRF_TOKEN" \
|
||||
-H "Cookie: XSRF-TOKEN=$CSRF_TOKEN" \
|
||||
-sS -D headers.txt \
|
||||
-d '{"username": "'${USERNAME}'", "password": "'${PASSWORD}'"}'
|
||||
-d '{"username": "'${USERNAME}'", "password": "'${PASSWORD}'"}')
|
||||
echo "$LOGIN_REPLY"
|
||||
|
||||
if [ -n "$(echo "$LOGIN_REPLY" | grep 'success')" ]; then
|
||||
echo "account already exists"
|
||||
else
|
||||
echo "creating account"
|
||||
{{/* set admin credentials */}}
|
||||
curl -v \
|
||||
-X PUT http://${ADMIN_URL}/pulsar-manager/users/superuser \
|
||||
-H "X-XSRF-TOKEN: $CSRF_TOKEN" \
|
||||
-H "Cookie: XSRF-TOKEN=$CSRF_TOKEN;" \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"name": "'"${USERNAME}"'", "password": "'"${PASSWORD}"'", "description": "Helm-managed Admin Account", "email": "'"${USERNAME}"'@pulsar.org"}'
|
||||
{{/* login as admin */}}
|
||||
LOGIN_REPLY=$(curl -v \
|
||||
-X POST http://${UI_URL}/pulsar-manager/login \
|
||||
-H 'Accept: application/json, text/plain, */*' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-H "X-XSRF-TOKEN: $CSRF_TOKEN" \
|
||||
-H "Cookie: XSRF-TOKEN=$CSRF_TOKEN" \
|
||||
-sS -D headers.txt \
|
||||
-d '{"username": "'${USERNAME}'", "password": "'${PASSWORD}'"}')
|
||||
echo "$LOGIN_REPLY"
|
||||
fi
|
||||
|
||||
LOGIN_TOKEN=$(grep "token:" headers.txt | sed 's/^.*: //')
|
||||
LOGIN_JSESSSIONID=$(grep -o "JSESSIONID=[a-zA-Z0-9_]*" headers.txt | sed 's/^.*=//')
|
||||
@ -111,15 +128,25 @@ spec:
|
||||
BROKER_URL="https://{{ template "pulsar.fullname" . }}-{{ .Values.broker.component }}:{{ .Values.broker.ports.https }}"
|
||||
{{- end }}
|
||||
BOOKIE_URL="http://{{ template "pulsar.fullname" . }}-{{ .Values.bookkeeper.component }}:{{ .Values.bookkeeper.ports.http }}"
|
||||
echo '{ "name": "{{ template "pulsar.fullname" . }}", "broker": "'$BROKER_URL'", "bookie": "'$BOOKIE_URL'"}'
|
||||
|
||||
curl -v \
|
||||
ENVIRONMENT_REPLY=$(curl -v \
|
||||
-X PUT http://${UI_URL}/pulsar-manager/environments/environment \
|
||||
-H 'Content-Type: application/json' \
|
||||
-H "token: $LOGIN_TOKEN" \
|
||||
-H "X-XSRF-TOKEN: $CSRF_TOKEN" \
|
||||
-H "username: $USERNAME" \
|
||||
-H "Cookie: XSRF-TOKEN=$CSRF_TOKEN; JSESSIONID=$LOGIN_JSESSSIONID;" \
|
||||
-d '{ "name": "{{ template "pulsar.fullname" . }}", "broker": "'$BROKER_URL'", "bookie": "'$BOOKIE_URL'"}'
|
||||
-d '{ "name": "{{ template "pulsar.fullname" . }}", "broker": "'$BROKER_URL'", "bookie": "'$BOOKIE_URL'"}')
|
||||
echo "$ENVIRONMENT_REPLY"
|
||||
|
||||
if [ -n "$(echo "$ENVIRONMENT_REPLY" | grep -e 'success' -e 'exist')" ]; then
|
||||
echo "Successfully created / found existing environment"
|
||||
exit 0
|
||||
else
|
||||
echo "Error creating environment"
|
||||
exit 1
|
||||
fi
|
||||
env:
|
||||
- name: USERNAME
|
||||
valueFrom:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user