1
1
{{- if .Values.haproxy.enabled }}
2
- {{- if not .Values.haproxy.pathbased.enabled }}
3
2
{{- $replicas := int .Values.replicaCount }}
4
3
{{- $releaseName := include "marklogic.fullname" . }}
5
4
{{- $namespace := .Release.Namespace }}
6
5
{{- $clusterDomain := .Values.clusterDomain }}
7
6
{{- $haproxyTlsEnabled := .Values.haproxy.tls.enabled }}
8
7
{{- $appServerTlsEnabled := .Values.tls.enableOnDefaultAppServers }}
9
8
{{- $certFileName := .Values.haproxy.tls.certFileName }}
10
-
9
+ {{- $appservicespath := .Values.haproxy.defaultAppServers.appservices.path }}
10
+ {{- $adminpath := .Values.haproxy.defaultAppServers.admin.path }}
11
+ {{- $managepath := .Values.haproxy.defaultAppServers.manage.path }}
11
12
apiVersion : v1
12
13
kind : ConfigMap
13
14
metadata :
24
25
defaults
25
26
log global
26
27
option forwardfor
27
- timeout client 60s
28
- timeout connect 60s
29
- timeout server 60s
28
+ timeout client 600s
29
+ timeout connect 600s
30
+ timeout server 600s
30
31
31
32
resolvers dns
32
33
# add nameserver from /etc/resolv.conf
57
58
# How long to wait for a successful resolution
58
59
timeout resolve 5s
59
60
61
+
60
62
{{- if .Values.haproxy.stats.enabled }}
61
63
frontend stats
62
64
mode http
71
73
stats admin if LOCALHOST
72
74
{{- end }}
73
75
74
-
75
-
76
76
{{- if .Values.haproxy.tcpports.enabled }}
77
77
{{- range $_, $v := .Values.haproxy.tcpports.ports }}
78
78
{{ $portNumber := printf "%v" (default $v.port $v.targetPort) }}
@@ -81,11 +81,119 @@ data:
81
81
mode tcp
82
82
balance leastconn
83
83
{{- range $i := until $replicas }}
84
- server {{ printf "%s-%s-%v" $releaseName $portNumber $i }} {{ $releaseName }}-{{ $i }}.{{ $releaseName }}.{{ $namespace }}.svc.{{ $clusterDomain }}:{{ $portNumber }} check resolvers dns init-addr none
84
+ server {{ printf "ml- %s-%s-%v" $releaseName $portNumber $i }} {{ $releaseName }}-{{ $i }}.{{ $releaseName }}.{{ $namespace }}.svc.{{ $clusterDomain }}:{{ $portNumber }} check resolvers dns init-addr none
85
85
{{- end }}
86
86
{{- end }}
87
87
{{- end }}
88
88
89
+ {{- if .Values.haproxy.pathbased.enabled }}
90
+
91
+ frontend marklogic
92
+ mode http
93
+ option httplog
94
+ bind :{{ .Values.haproxy.frontendPort }}
95
+ http-request set-header Host {{ $releaseName }}:80
96
+ http-request set-header REFERER http://{{ $releaseName }}:80
97
+ http-request set-header X-ML-QC-Path "{{ $appservicespath }}"
98
+ http-request set-header X-ML-ADM-Path "{{ $adminpath }}"
99
+ http-request set-header X-ML-MNG-Path "{{ $managepath }}"
100
+ use_backend marklogic-app-services if { path {{ $appservicespath }} } || { path_beg {{ $appservicespath }}/ }
101
+ use_backend marklogic-admin if { path {{ $adminpath }} } || { path_beg {{ $adminpath }}/ }
102
+ use_backend marklogic-manage if { path {{ $managepath }} } || { path_beg {{ $managepath }}/ }
103
+ {{- range $_, $v := .Values.haproxy.additionalAppServers }}
104
+ {{ $portNumber := printf "%v" (default $v.port $v.targetPort) }}
105
+ {{ $path := printf "%v" (default $v.path)}}
106
+ use_backend marklogic-{{$portNumber}} if { path {{ $path }} } || { path_beg {{ $path }}/ }
107
+ {{- end }}
108
+
109
+ backend marklogic-app-services
110
+ mode http
111
+ balance leastconn
112
+ option forwardfor
113
+ http-request replace-path {{ $appservicespath }}(/)?(.*) /\2
114
+ cookie haproxy insert indirect nocache maxidle 30m maxlife 4h
115
+ stick-table type string len 32 size 10k expire 4h
116
+ stick store-response res.cook(HostId)
117
+ stick store-response res.cook(SessionId)
118
+ stick match req.cook(HostId)
119
+ stick match req.cook(SessionId)
120
+ default-server check
121
+ {{- range $i := until $replicas }}
122
+ {{- if $appServerTlsEnabled }}
123
+ server {{ $releaseName }}-appservices-{{ $i }} {{ $releaseName }}-{{ $i }}.{{ $releaseName }}.{{ $namespace }}.svc.{{ $clusterDomain }}:8000 resolvers dns init-addr none cookie {{ $releaseName }}-appservices-{{ $i }} ssl verify none
124
+ {{- else }}
125
+ server {{ $releaseName }}-appservices-{{ $i }} {{ $releaseName }}-{{ $i }}.{{ $releaseName }}.{{ $namespace }}.svc.{{ $clusterDomain }}:8000 resolvers dns init-addr none cookie {{ $releaseName }}-appservices-{{ $i }}
126
+ {{- end }}
127
+ {{- end }}
128
+
129
+ backend marklogic-admin
130
+ mode http
131
+ balance leastconn
132
+ option forwardfor
133
+ http-request replace-path {{ $adminpath }}(/)?(.*) /\2
134
+ cookie haproxy insert indirect nocache maxidle 30m maxlife 4h
135
+ stick-table type string len 32 size 10k expire 4h
136
+ stick store-response res.cook(HostId)
137
+ stick store-response res.cook(SessionId)
138
+ stick match req.cook(HostId)
139
+ stick match req.cook(SessionId)
140
+ default-server check
141
+ {{- range $i := until $replicas }}
142
+ {{- if $appServerTlsEnabled }}
143
+ server {{ $releaseName }}-admin-{{ $i }} {{ $releaseName }}-{{ $i }}.{{ $releaseName }}.{{ $namespace }}.svc.{{ $clusterDomain }}:8001 resolvers dns init-addr none cookie {{ $releaseName }}-admin-{{ $i }} ssl verify none
144
+ {{- else }}
145
+ server {{ $releaseName }}-admin-{{ $i }} {{ $releaseName }}-{{ $i }}.{{ $releaseName }}.{{ $namespace }}.svc.{{ $clusterDomain }}:8001 resolvers dns init-addr none cookie {{ $releaseName }}-admin-{{ $i }}
146
+ {{- end }}
147
+ {{- end }}
148
+
149
+ backend marklogic-manage
150
+ mode http
151
+ balance leastconn
152
+ option forwardfor
153
+ http-request replace-path {{ $managepath }}(/)?(.*) /\2
154
+ cookie haproxy insert indirect nocache maxidle 30m maxlife 4h
155
+ stick-table type string len 32 size 10k expire 4h
156
+ stick store-response res.cook(HostId)
157
+ stick store-response res.cook(SessionId)
158
+ stick match req.cook(HostId)
159
+ stick match req.cook(SessionId)
160
+ default-server check
161
+ {{- range $i := until $replicas }}
162
+ {{- if $appServerTlsEnabled }}
163
+ server {{ $releaseName }}-manage-{{ $i }} {{ $releaseName }}-{{ $i }}.{{ $releaseName }}.{{ $namespace }}.svc.{{ $clusterDomain }}:8002 resolvers dns init-addr none cookie {{ $releaseName }}-manage-{{ $i }} ssl verify none
164
+ {{- else }}
165
+ server {{ $releaseName }}-manage-{{ $i }} {{ $releaseName }}-{{ $i }}.{{ $releaseName }}.{{ $namespace }}.svc.{{ $clusterDomain }}:8002 resolvers dns init-addr none cookie {{ $releaseName }}-manage-{{ $i }}
166
+ {{- end }}
167
+ {{- end }}
168
+
169
+ {{- range $_, $v := .Values.haproxy.additionalAppServers }}
170
+ {{ $portNumber := printf "%v" (default $v.port $v.targetPort) }}
171
+ {{ $portType := upper (printf "%s" $v.type) }}
172
+ {{ $path := printf "%v" (default $v.path)}}
173
+
174
+ backend marklogic-{{$portNumber}}
175
+ mode http
176
+ balance leastconn
177
+ option forwardfor
178
+ http-request replace-path {{$path}}(/)?(.*) /\2
179
+ cookie haproxy insert indirect nocache maxidle 30m maxlife 4h
180
+ stick-table type string len 32 size 10k expire 4h
181
+ stick store-response res.cook(HostId)
182
+ stick store-response res.cook(SessionId)
183
+ stick match req.cook(HostId)
184
+ stick match req.cook(SessionId)
185
+ default-server check
186
+ {{- range $i := until $replicas }}
187
+ {{- if $appServerTlsEnabled }}
188
+ server {{ printf "ml-%s-%s-%v" $releaseName $portNumber $i }} {{ $releaseName }}-{{ $i }}.{{ $releaseName }}.{{ $namespace }}.svc.{{ $clusterDomain }}:{{ $portNumber }} resolvers dns init-addr none cookie {{ $releaseName }}-{{ $portNumber }}-{{ $i }} ssl verify none
189
+ {{- else }}
190
+ server {{ printf "ml-%s-%s-%v" $releaseName $portNumber $i }} {{ $releaseName }}-{{ $i }}.{{ $releaseName }}.{{ $namespace }}.svc.{{ $clusterDomain }}:{{ $portNumber }} resolvers dns init-addr none cookie {{ $releaseName }}-{{ $portNumber }}-{{ $i }}
191
+ {{- end }}
192
+ {{- end }}
193
+ {{- end }}
194
+
195
+ {{- else }}
196
+
89
197
frontend marklogic-appservices
90
198
mode http
91
199
{{- if $haproxyTlsEnabled }}
@@ -206,7 +314,6 @@ data:
206
314
{{- end }}
207
315
{{- end }}
208
316
{{- end }}
317
+ {{- end }}
209
318
210
-
211
- {{- end }}
212
319
{{- end }}
0 commit comments