diff --git a/charts/Chart.yaml b/charts/Chart.yaml index fcbcdc4..4ff09f0 100644 --- a/charts/Chart.yaml +++ b/charts/Chart.yaml @@ -17,4 +17,4 @@ keywords: sources: - https://github.com/marklogic/marklogic-kubernetes - https://www.marklogic.com/ -version: 1.1.0 +version: 1.1.1 diff --git a/charts/templates/statefulset.yaml b/charts/templates/statefulset.yaml index 578a87a..1950214 100644 --- a/charts/templates/statefulset.yaml +++ b/charts/templates/statefulset.yaml @@ -315,41 +315,40 @@ spec: # Begin Group Configuration if [[ $POD_NAME == *-0 ]] && [[ $MARKLOGIC_CLUSTER_TYPE == "bootstrap" ]]; then [ -f /var/opt/MarkLogic/group_cfg ] && current_group_cfg=$(cat /var/opt/MarkLogic/group_cfg) - if [ "${MARKLOGIC_GROUP}:${XDQP_SSL_ENABLED}" = "${current_group_cfg}" ]; then - log "Info: [poststart] Group config has not changed, poststart hook complete" - exit 0 - fi - - log "Info: [poststart] Begin group configuration." - while [ ! -f /var/opt/MarkLogic/ready ]; do - log "[poststart] waiting for MarkLogic server to be ready" - sleep 5s - done + if [ "${MARKLOGIC_GROUP}:${XDQP_SSL_ENABLED}:${MARKLOGIC_JOIN_TLS_ENABLED}" = "${current_group_cfg}" ]; then + log "Info: [poststart] Group config has not changed, complete group configuration" + else + log "Info: [poststart] Begin group configuration." + while [ ! -f /var/opt/MarkLogic/ready ]; do + log "[poststart] waiting for MarkLogic server to be ready" + sleep 5s + done - GROUP_CFG_TEMPLATE='{"group-name":"%s", "xdqp-ssl-enabled":"%s"}' - GROUP_CFG=$(printf "$GROUP_CFG_TEMPLATE" "$MARKLOGIC_GROUP" "$XDQP_SSL_ENABLED") + GROUP_CFG_TEMPLATE='{"group-name":"%s", "xdqp-ssl-enabled":"%s"}' + GROUP_CFG=$(printf "$GROUP_CFG_TEMPLATE" "$MARKLOGIC_GROUP" "$XDQP_SSL_ENABLED") - log "Info: [poststart] Updating group configuration: ${GROUP_CFG}" - GROUP_RESP_CODE=`curl --retry 5 --retry-max-time 60 -o /tmp/restart_payload.xml -w "%{http_code}" --anyauth -m 20 -s -X PUT -H "Content-type: application/json" -d "${GROUP_CFG}" http://${MARKLOGIC_BOOTSTRAP_HOST}:8002/manage/v2/groups/Default/properties --user ${MARKLOGIC_ADMIN_USERNAME}:${MARKLOGIC_ADMIN_PASSWORD}` - - # check whether MarkLogic has restarted - if [[ ${GROUP_RESP_CODE} -eq 202 ]] || [[ ${GROUP_RESP_CODE} -eq 204 ]]; then - log "Info: [poststart] Successfully configured properties for $MARKLOGIC_GROUP group on the MarkLogic cluster." - TIMESTAMP=$(< /tmp/restart_payload.xml grep "last-startup" | sed 's%^.*\(.*\).*$%\1%') - rm -f /tmp/restart_payload.xml - if [[ -n ${TIMESTAMP} ]]; then - restart_check ${TIMESTAMP} - fi - if [[ $MARKLOGIC_IMAGE_TYPE == "rootless" ]]; then - sh -c 'echo -n '"${MARKLOGIC_GROUP}:${XDQP_SSL_ENABLED}"' > /var/opt/MarkLogic/group_cfg' + log "Info: [poststart] Updating group configuration: ${GROUP_CFG}" + GROUP_RESP_CODE=`curl --retry 5 --retry-max-time 60 -o /tmp/restart_payload.xml -w "%{http_code}" --anyauth -m 20 -s -X PUT -H "Content-type: application/json" -d "${GROUP_CFG}" http://${MARKLOGIC_BOOTSTRAP_HOST}:8002/manage/v2/groups/Default/properties --user ${MARKLOGIC_ADMIN_USERNAME}:${MARKLOGIC_ADMIN_PASSWORD}` + + # check whether MarkLogic has restarted + if [[ ${GROUP_RESP_CODE} -eq 202 ]] || [[ ${GROUP_RESP_CODE} -eq 204 ]]; then + log "Info: [poststart] Successfully configured properties for $MARKLOGIC_GROUP group on the MarkLogic cluster." + TIMESTAMP=$(< /tmp/restart_payload.xml grep "last-startup" | sed 's%^.*\(.*\).*$%\1%') + rm -f /tmp/restart_payload.xml + if [[ -n ${TIMESTAMP} ]]; then + restart_check ${TIMESTAMP} + fi + if [[ $MARKLOGIC_IMAGE_TYPE == "rootless" ]]; then + sh -c 'echo -n '"${MARKLOGIC_GROUP}:${XDQP_SSL_ENABLED}:${MARKLOGIC_JOIN_TLS_ENABLED}"' > /var/opt/MarkLogic/group_cfg' + else + sudo sh -c 'echo -n '"${MARKLOGIC_GROUP}:${XDQP_SSL_ENABLED}:${MARKLOGIC_JOIN_TLS_ENABLED}"' > /var/opt/MarkLogic/group_cfg' + fi + log "Info: [poststart] ${GROUP_CFG} saved" else - sudo sh -c 'echo -n '"${MARKLOGIC_GROUP}:${XDQP_SSL_ENABLED}"' > /var/opt/MarkLogic/group_cfg' + log "Error: [poststart] Failed to configure properties for $MARKLOGIC_GROUP group. + log "Error: [poststart] Expected response code 202 or 204, got "${GROUP_RESP_CODE}" + exit 1 fi - log "Info: [poststart] ${GROUP_CFG} saved" - else - log "Error: [poststart] Failed to configure properties for $MARKLOGIC_GROUP group. - log "Error: [poststart] Expected response code 202 or 204, got "${GROUP_RESP_CODE}" - exit 1 fi else log "Info: [poststart] This is not bootstrap host. Skipping group configuration." @@ -703,4 +702,4 @@ spec: {{- if .Values.additionalVolumeClaimTemplates }} {{- toYaml .Values.additionalVolumeClaimTemplates | nindent 4 }} {{- end }} - {{- end }} + {{- end }} \ No newline at end of file