1
1
apiVersion : apps/v1
2
2
kind : StatefulSet
3
3
metadata :
4
- name : {{ include "marklogic.fullname" . }}-{{ .Values.group.name}}
4
+ name : {{ include "marklogic.fullname" . }}
5
5
namespace : {{ .Release.Namespace }}
6
6
labels :
7
- app.kubernetes.io/component : marklogic-{{ .Values.group.name}}
8
7
{{- include "marklogic.labels" . | nindent 4 }}
9
8
spec :
10
9
serviceName : {{ include "marklogic.headlessServiceName" . }}
11
10
replicas : {{ .Values.replicaCount }}
12
11
selector :
13
12
matchLabels :
14
13
{{- include "marklogic.selectorLabels" . | nindent 6 }}
15
- app.kubernetes.io/component : marklogic-{{ .Values.group.name}}
16
14
template :
17
15
metadata :
18
16
labels :
19
17
{{- include "marklogic.selectorLabels" . | nindent 8 }}
20
- app.kubernetes.io/component : marklogic-{{ .Values.group.name}}
21
18
spec :
22
19
serviceAccountName : {{ include "marklogic.serviceAccountName" . }}
23
20
{{- with .Values.affinity }}
24
21
affinity : {{- toYaml . | nindent 8}}
25
22
{{- end }}
26
23
terminationGracePeriodSeconds : {{ .Values.terminationGracePeriod }}
27
- {{- if and ( ne .Values.bootstrapClusterName "") (eq .Values. bootstrapHostName "") }}
28
- initContainers :
29
- - name : init-checkGroup
24
+ {{- if ne .Values.bootstrapHostName "" }}
25
+ initContainers :
26
+ - name : check-group- init-container
30
27
image : " {{ .Values.image.repository }}:{{ .Values.image.tag }}"
31
28
command :
32
29
- bash
33
30
- ' -c'
34
31
- |
35
- echo '### Begin init Container ###'
36
-
37
- echo "BOOTSTRAP_CLUSTER_NAME: $BOOTSTRAP_CLUSTER_NAME"
38
- echo "MARKLOGIC_GROUP: $MARKLOGIC_GROUP"
32
+ echo '### Begin init container ###'
39
33
40
34
GROUP_CFG_TEMPLATE='{"group-name":"%s"}'
41
35
GROUP_CFG=$(printf "$GROUP_CFG_TEMPLATE" "$MARKLOGIC_GROUP")
42
36
43
- echo "GROUP_CFG: $GROUP_CFG"
44
-
45
- ML_GROUPS=`curl --anyauth -m 20 -s -X GET http://${BOOTSTRAP_CLUSTER_NAME}:8002/manage/v2/groups?format=json --anyauth --user ${MARKLOGIC_ADMIN_USERNAME}:${MARKLOGIC_ADMIN_PASSWORD} | jq '."group-default-list"."list-items"."list-item"'`;
46
- echo ML_GROUPS: $ML_GROUPS;
47
- if [[ $(jq <<< "${ML_GROUPS}" --arg MARKLOGIC_GROUP "$MARKLOGIC_GROUP" 'any(.nameref==$MARKLOGIC_GROUP)') == "true" ]]; then
48
- echo "Group is already configured."
37
+ GROUP_RESP_CODE=`curl --anyauth -m 20 -s -o /dev/null -w "%{http_code}" -X GET http://${BOOTSTRAP_HOST_NAME}:8002/manage/v2/groups/${MARKLOGIC_GROUP} --anyauth --user ${MARKLOGIC_ADMIN_USERNAME}:${MARKLOGIC_ADMIN_PASSWORD}`
38
+
39
+ if [[ ${GROUP_RESP_CODE} -eq 200 ]]; then
40
+ echo "Group $MARKLOGIC_GROUP is already configured on the MarkLogic cluster."
49
41
else
50
- echo $MARKLOGIC_GROUP does not exist, creating $MARKLOGIC_GROUP on ML cluster;
51
- resp=` curl --anyauth --user ${MARKLOGIC_ADMIN_USERNAME}:${MARKLOGIC_ADMIN_PASSWORD} -m 20 -s -X POST -d "${GROUP_CFG}" -H "Content-type: application/json" http://${BOOTSTRAP_CLUSTER_NAME }:8002/manage/v2/groups`;
42
+ echo "Group $MARKLOGIC_GROUP does not exist, creating $MARKLOGIC_GROUP on the MarkLogic cluster"
43
+ curl --anyauth --user ${MARKLOGIC_ADMIN_USERNAME}:${MARKLOGIC_ADMIN_PASSWORD} -m 20 -s -X POST -d "${GROUP_CFG}" -H "Content-type: application/json" http://${BOOTSTRAP_HOST_NAME }:8002/manage/v2/groups
52
44
sleep 20s
53
45
fi
46
+ echo '### init container execution completed ###'
54
47
env :
55
- - name : " BOOTSTRAP_CLUSTER_NAME "
56
- value : {{ .Values.bootstrapClusterName }}
48
+ - name : " BOOTSTRAP_HOST_NAME "
49
+ value : {{ .Values.bootstrapHostName }}
57
50
- name : MARKLOGIC_GROUP
58
51
value : {{ .Values.group.name }}
59
52
- name : MARKLOGIC_ADMIN_USERNAME
66
59
secretKeyRef :
67
60
name : {{ include "marklogic.fullname" . }}
68
61
key : password
69
- {{- end }}
62
+ {{- end }}
70
63
containers :
71
64
- name : marklogic-server
72
65
image : " {{ .Values.image.repository }}:{{ .Values.image.tag }}"
93
86
secretKeyRef :
94
87
name : {{ include "marklogic.fullname" . }}
95
88
key : password
96
- - name : " BOOTSTRAP_CLUSTER_NAME"
97
- value : {{ .Values.bootstrapClusterName }}
98
89
- name : MARKLOGIC_GROUP
99
90
value : {{ .Values.group.name }}
100
91
envFrom :
@@ -117,7 +108,7 @@ spec:
117
108
{{- toYaml .Values.extraContainerPorts | nindent 12 }}
118
109
{{- end }}
119
110
lifecycle :
120
- {{- if eq .Values.bootstrapClusterName "" }}
111
+ {{- if eq .Values.bootstrapHostName "" }}
121
112
postStart :
122
113
exec :
123
114
command :
@@ -131,20 +122,18 @@ spec:
131
122
echo "${TIMESTAMP} $@" > /proc/$pid/fd/1
132
123
}
133
124
134
- log "Info: [poststart] Poststart Hook Execution"
135
-
136
125
while [ ! -f /var/opt/MarkLogic/ready ]; do
137
- sleep 5
126
+ sleep 5s
138
127
done
139
-
140
- log "Info: [poststart] Updating Default group on cluster"
128
+ log "Info: [poststart] Begin Poststart Hook Execution"
129
+
141
130
GROUP_CFG_TEMPLATE='{"group-name":"%s"}'
142
131
GROUP_CFG=$(printf "$GROUP_CFG_TEMPLATE" "$MARKLOGIC_GROUP")
143
-
132
+ log "Info: [poststart] Updating Default group on cluster"
144
133
AUTH_CURL="curl --anyauth --user "${MARKLOGIC_ADMIN_USERNAME}":"${MARKLOGIC_ADMIN_PASSWORD}" -m 20 -s "
145
134
146
135
$AUTH_CURL -X PUT -H "Content-type: application/json" -d "${GROUP_CFG}" http://localhost:8002/manage/v2/groups/Default/properties
147
-
136
+ sleep 10s
148
137
log "Info: [poststart] Poststart Hook Execution Completed"
149
138
{{- end }}
150
139
preStop :
0 commit comments