Skip to content
This repository was archived by the owner on Mar 11, 2025. It is now read-only.

Commit ac30344

Browse files
authored
Merge pull request #107 from SoftwareAG/dev-thr
tpl function support in affinity value added. `topologySpreadConstraints` support added
2 parents 576e282 + c24973a commit ac30344

27 files changed

+114
-20
lines changed

apigateway/helm/Chart.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ type: application
3333
# This is the chart version. This version number should be incremented each time you make changes
3434
# to the chart and its templates, including the app version.
3535
# Versions are expected to follow Semantic Versioning (https://semver.org/)
36-
version: 1.2.7
36+
version: 1.2.8
3737

3838
# This is the version number of the application being deployed. This version number should be
3939
# incremented each time you make changes to the application. Versions are not expected to

apigateway/helm/README.md

+9-2
Original file line numberDiff line numberDiff line change
@@ -167,12 +167,14 @@ Sub-folder `examples` contains some *values* examples for more use-cases. To use
167167
| `1.2.4` | Added Kibana extra container configuration, set by Values.kibana.extraContainers. <br> Added ServiceMonitor matchLabel for a specific service. The service is set by .Values.serviceMonitor.serviceName defaulting to API Gateways runtime service. |
168168
| `1.2.5` | Added possibility to read metering truststore password by secretKeyRef. <br> Added custom logging configuration for Kibana. |
169169
| `1.2.6` | Fixed commons dependency to enable metering change from 1.2.5. |
170-
| `1.2.7` | Added possibility to rename roleBinding for API Gateway, Kibana and Elasitcsearch. This allows for multiple deployments into the same namespace. Also, CRD ServiceMonitor selector corrected. Support of ES storage PVC annotations. |
170+
| `1.2.7` | Added possibility to rename roleBinding for API Gateway, Kibana and Elasticsearch. This allows for multiple deployments into the same namespace. Also, CRD ServiceMonitor selector corrected. Support of ES storage PVC annotations. |
171+
| `1.2.8` | `tpl` function support in `affinity` value added. `affinity` support added for Kibana and Elasticsearch. `topologySpreadConstraints` support added for APIGW, Elasticsearch and Kibana. |
172+
171173
## Values
172174

173175
| Key | Type | Default | Description |
174176
|-----|------|---------|-------------|
175-
| affinity | object | `{}` | |
177+
| affinity | object | `{}` | Set Pod (anti-) affinity for APIGW. You can use templates inside because `tpl` function is called for rendering. |
176178
| apigw.adminPort | int | `5555` | The default administration port. Note in a default installation this port will also be used for runtime traffic. |
177179
| apigw.adminSecretKey | string | `""` | The key that holds the admin secret key; defauls to "password" |
178180
| apigw.adminSecretName | string | `""` | The secret that holds the admin password Depends on secrets.genereateAdminSecret; if true the setting will be ignored. |
@@ -205,6 +207,7 @@ Sub-folder `examples` contains some *values* examples for more use-cases. To use
205207
| autoscaling.maxReplicas | int | `100` | |
206208
| autoscaling.minReplicas | int | `1` | |
207209
| autoscaling.targetCPUUtilizationPercentage | int | `80` | |
210+
| elasticsearch.affinity | object | `{}` | Set Pod (anti-) affinity for ElasticSearch. You can use templates inside because `tpl` function is called for rendering. |
208211
| elasticsearch.certificateSecretName | string | `"{{ include \"common.names.fullname\" .}}-es-tls-secret"` | The name of the secret holding the tls secret By default the name will be fullname of release + "es-tls-secret" |
209212
| elasticsearch.defaultNodeSet | object | `{"annotations":{},"count":1,"extraConfig":{},"extraInitContainers":{},"installMapperSizePlugin":true,"memoryMapping":false,"setMaxMapCount":true}` | Default Node Set |
210213
| elasticsearch.defaultNodeSet.annotations | object | `{}` | Annotations for Elasticsearch |
@@ -235,6 +238,7 @@ Sub-folder `examples` contains some *values* examples for more use-cases. To use
235238
| elasticsearch.storageClassName | string | `""` | Use the storage class. |
236239
| elasticsearch.tlsEnabled | bool | `false` | Whether the communication from APIGW and Kibana should be HTTPS Note: you will need to create certificate and a separate truststore for the communication. |
237240
| elasticsearch.tlsSecretName | string | `""` | The name of the elasticsearch secret. By default it will created by the fullname + "-es-tls-secret" if tlsEnabled is set to true. |
241+
| elasticsearch.topologySpreadConstraints | object | `{}` | Set Pod topology spread constraints for ElasticSearch. You can use templates inside because `tpl` function is called for rendering. |
238242
| elasticsearch.version | string | `"8.2.3"` | The ECK version to be used |
239243
| extraConfigMaps | list | `[]` | Extra config maps for additional configurations such as extra ports, etc. |
240244
| extraContainers | list | `[]` | Extra containers which should run in addition to the main container as a sidecar - name: do-something image: busybox command: ['do', 'something'] |
@@ -316,6 +320,7 @@ Sub-folder `examples` contains some *values* examples for more use-cases. To use
316320
| ingresses.ui.tls[0].secretName | string | `nil` | |
317321
| ingresses.ui.tls[0].secretProviderEnabled | bool | `false` | |
318322
| ingresses.ui.tls[0].secretProviderSecretName | string | `nil` | |
323+
| kibana.affinity | object | `{}` | Set Pod (anti-) affinity for Kibana. You can use templates inside because `tpl` function is called for rendering. |
319324
| kibana.allowAnonymousStatus | bool | `true` | Enable anonymous access to /api/status. |
320325
| kibana.annotations | object | `{}` | Annotations for Kibana |
321326
| kibana.count | int | `1` | |
@@ -348,6 +353,7 @@ Sub-folder `examples` contains some *values* examples for more use-cases. To use
348353
| kibana.tls.trustStoreName | string | `""` | File name of the p12 truststore for Kibana |
349354
| kibana.tls.truststorePasswordSecret | string | `""` | Name of the k8s secret containing the password for above p12 truststore in key 'password' |
350355
| kibana.tls.verificationMode | string | `"certificate"` | TLS verification mode. Either 'none', 'certificate' or 'full'. Full includes hostname verification (service name must be in alt dns for it to work). |
356+
| kibana.topologySpreadConstraints | object | `{}` | Set Pod topology spread constraints for Kibana. You can use templates inside because `tpl` function is called for rendering. |
351357
| kibana.version | string | `"8.2.3"` | The ECK version to be used |
352358
| license | string | `""` | Import the content as license key and create a ConfigMap named by `licenseConfigMap` value. You can copy/past the content of your provided license key file here. |
353359
| licenseConfigKey | string | `""` | |
@@ -400,3 +406,4 @@ Sub-folder `examples` contains some *values* examples for more use-cases. To use
400406
| serviceMonitor.enabled | bool | `false` | Create and enable CRD ServiceMonitor. The default is `false`. |
401407
| serviceMonitor.serviceName | string | `""` | Set the monitored service which is connected by ServiceMonitor. Default (if not set) is the `rt` runtime service. |
402408
| tolerations | list | `[]` | |
409+
| topologySpreadConstraints | object | `{}` | Set Pod topology spread constraints for APIGW. You can use templates inside because `tpl` function is called for rendering. |

apigateway/helm/README.md.gotmpl

+3-1
Original file line numberDiff line numberDiff line change
@@ -168,5 +168,7 @@ Sub-folder `examples` contains some *values* examples for more use-cases. To use
168168
| `1.2.4` | Added Kibana extra container configuration, set by Values.kibana.extraContainers. <br> Added ServiceMonitor matchLabel for a specific service. The service is set by .Values.serviceMonitor.serviceName defaulting to API Gateways runtime service. |
169169
| `1.2.5` | Added possibility to read metering truststore password by secretKeyRef. <br> Added custom logging configuration for Kibana. |
170170
| `1.2.6` | Fixed commons dependency to enable metering change from 1.2.5. |
171-
| `1.2.7` | Added possibility to rename roleBinding for API Gateway, Kibana and Elasitcsearch. This allows for multiple deployments into the same namespace. Also, CRD ServiceMonitor selector corrected. Support of ES storage PVC annotations. |
171+
| `1.2.7` | Added possibility to rename roleBinding for API Gateway, Kibana and Elasticsearch. This allows for multiple deployments into the same namespace. Also, CRD ServiceMonitor selector corrected. Support of ES storage PVC annotations. |
172+
| `1.2.8` | `tpl` function support in `affinity` value added. `affinity` support added for Kibana and Elasticsearch. `topologySpreadConstraints` support added for APIGW, Elasticsearch and Kibana. |
173+
172174
{{ template "chart.valuesSection" . }}

apigateway/helm/templates/deployment.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
# *
1818
# */
1919
{{ $apigwname := (include "common.names.fullname" $ ) }}
20+
{{- $context := . }}
2021
apiVersion: apps/v1
2122
kind: Deployment
2223
metadata:
@@ -227,7 +228,11 @@ spec:
227228
{{- end }}
228229
{{- with .Values.affinity }}
229230
affinity:
230-
{{- toYaml . | nindent 8 }}
231+
{{- tpl (toYaml .) $context | nindent 8 }}
232+
{{- end }}
233+
{{- with .Values.topologySpreadConstraints }}
234+
topologySpreadConstraints:
235+
{{- tpl (toYaml .) $context | nindent 8 }}
231236
{{- end }}
232237
{{- with .Values.tolerations }}
233238
tolerations:

apigateway/helm/templates/elasticsearch.yaml

+9
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
# * limitations under the License.
1919
# *
2020
# */
21+
{{- $context := . }}
2122
apiVersion: elasticsearch.k8s.elastic.co/v1
2223
kind: Elasticsearch
2324
metadata:
@@ -98,6 +99,14 @@ spec:
9899
{{ toYaml . | nindent 12 }}
99100
{{- end }}
100101
spec:
102+
{{- with .Values.elasticsearch.affinity }}
103+
affinity:
104+
{{- tpl (toYaml .) $context | nindent 12 }}
105+
{{- end }}
106+
{{- with .Values.elasticsearch.topologySpreadConstraints }}
107+
topologySpreadConstraints:
108+
{{- tpl (toYaml .) $context | nindent 12 }}
109+
{{- end }}
101110
imagePullSecrets:
102111
{{- toYaml .Values.imagePullSecrets | nindent 12 }}
103112
containers:

apigateway/helm/templates/kibana.yaml

+9
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
# * limitations under the License.
1717
# *
1818
# */
19+
{{- $context := . }}
1920
apiVersion: kibana.k8s.elastic.co/v1
2021
kind: Kibana
2122
metadata:
@@ -85,6 +86,14 @@ spec:
8586
{{ toYaml . | nindent 8 }}
8687
{{- end }}
8788
spec:
89+
{{- with .Values.kibana.affinity }}
90+
affinity:
91+
{{- tpl (toYaml .) $context | nindent 8 }}
92+
{{- end }}
93+
{{- with .Values.kibana.topologySpreadConstraints }}
94+
topologySpreadConstraints:
95+
{{- tpl (toYaml .) $context | nindent 8 }}
96+
{{- end }}
8897
imagePullSecrets:
8998
{{- toYaml .Values.imagePullSecrets | nindent 8 }}
9099
{{- if .Values.kibana.serviceAccount.name }}

apigateway/helm/values.yaml

+17-1
Original file line numberDiff line numberDiff line change
@@ -228,8 +228,12 @@ nodeSelector: {}
228228

229229
tolerations: []
230230

231+
# -- Set Pod (anti-) affinity for APIGW. You can use templates inside because `tpl` function is called for rendering.
231232
affinity: {}
232233

234+
# -- Set Pod topology spread constraints for APIGW. You can use templates inside because `tpl` function is called for rendering.
235+
topologySpreadConstraints: {}
236+
233237
# -- Value to add extra host aliases to APIGW container.
234238
hostAliases: []
235239

@@ -598,7 +602,13 @@ elasticsearch:
598602
# -- The name of the secret holding the tls secret
599603
# By default the name will be fullname of release + "es-tls-secret"
600604
certificateSecretName: "{{ include \"common.names.fullname\" .}}-es-tls-secret"
601-
605+
606+
# -- Set Pod (anti-) affinity for ElasticSearch. You can use templates inside because `tpl` function is called for rendering.
607+
affinity: {}
608+
609+
# -- Set Pod topology spread constraints for ElasticSearch. You can use templates inside because `tpl` function is called for rendering.
610+
topologySpreadConstraints: {}
611+
602612
# -- Node sets. See official ElasticSearch documentation at:
603613
# https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-orchestration.html
604614
# if you specify node sets here the defaultNodeSet will not be used.
@@ -635,6 +645,12 @@ kibana:
635645
# -- The ECK version to be used
636646
version: 8.2.3
637647

648+
# -- Set Pod (anti-) affinity for Kibana. You can use templates inside because `tpl` function is called for rendering.
649+
affinity: {}
650+
651+
# -- Set Pod topology spread constraints for Kibana. You can use templates inside because `tpl` function is called for rendering.
652+
topologySpreadConstraints: {}
653+
638654
# -- The image that should be used.
639655
# By default ECK will use the official Elasticsearch images.
640656
# Overwrite this to use an image from an internal registry or any custom images.

developerportal/helm/Chart.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ type: application
3333
# This is the chart version. This version number should be incremented each time you make changes
3434
# to the chart and its templates, including the app version.
3535
# Versions are expected to follow Semantic Versioning (https://semver.org/)
36-
version: 1.0.1
36+
version: 1.0.2
3737

3838
# This is the version number of the application being deployed. This version number should be
3939
# incremented each time you make changes to the application. Versions are not expected to

developerportal/helm/README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,13 @@ helm install webmethods/developerportal devportal
4747
|-----|------|
4848
| `1.0.0` | Initial release |
4949
| `1.0.1` | Supports wM version 11.0. Validate `devportal.port` value in `values.yaml` if you want to use wM image version 11.0. |
50+
| `1.0.2` | `tpl` function support in `affinity` value added. `topologySpreadConstraints` support added. |
5051

5152
## Values
5253

5354
| Key | Type | Default | Description |
5455
|-----|------|---------|-------------|
55-
| affinity | object | `{}` | |
56+
| affinity | object | `{}` | Set Pod (anti-) affinity. You can use templates inside because `tpl` function is called for rendering. |
5657
| autoscaling.enabled | bool | `false` | |
5758
| autoscaling.maxReplicas | int | `100` | |
5859
| autoscaling.minReplicas | int | `1` | |
@@ -131,3 +132,4 @@ helm install webmethods/developerportal devportal
131132
| serviceAccount.name | string | `""` | The name of the service account to use. If not set and create is true, a name is generated using the fullname template |
132133
| serviceAccount.roleName | string | `""` | |
133134
| tolerations | list | `[]` | |
135+
| topologySpreadConstraints | object | `{}` | Set Pod topology spread constraints. You can use templates inside because `tpl` function is called for rendering. |

developerportal/helm/README.md.gotmpl

+1
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,6 @@ helm install webmethods/developerportal devportal
4747
|-----|------|
4848
| `1.0.0` | Initial release |
4949
| `1.0.1` | Supports wM version 11.0. Validate `devportal.port` value in `values.yaml` if you want to use wM image version 11.0. |
50+
| `1.0.2` | `tpl` function support in `affinity` value added. `topologySpreadConstraints` support added. |
5051

5152
{{ template "chart.valuesSection" . }}

developerportal/helm/templates/statefulset.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
# * limitations under the License.
1717
# *
1818
# */
19+
{{- $context := . }}
1920
apiVersion: apps/v1
2021
kind: StatefulSet
2122
metadata:
@@ -59,8 +60,12 @@ spec:
5960
- {{ include "common.names.fullname" . }}
6061
topologyKey: kubernetes.io/hostname
6162
{{- else if .Values.affinity }}
62-
{{ toYaml .Values.affinity | nindent 8 }}
63+
{{ tpl (toYaml .Values.affinity) $context | nindent 8 }}
6364
{{- end }}
65+
{{- with .Values.topologySpreadConstraints }}
66+
topologySpreadConstraints:
67+
{{- tpl (toYaml .) $context | nindent 8 }}
68+
{{- end }}
6469
containers:
6570
- name: {{ include "common.names.fullname" . }}
6671
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"

developerportal/helm/values.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,12 @@ nodeSelector: {}
108108

109109
tolerations: []
110110

111+
# -- Set Pod (anti-) affinity. You can use templates inside because `tpl` function is called for rendering.
111112
affinity: {}
112113

114+
# -- Set Pod topology spread constraints. You can use templates inside because `tpl` function is called for rendering.
115+
topologySpreadConstraints: {}
116+
113117
# -- Extra Labels
114118
extraLabels: {}
115119

microservicesruntime/helm/Chart.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ type: application
2525
# This is the chart version. This version number should be incremented each time you make changes
2626
# to the chart and its templates, including the app version.
2727
# Versions are expected to follow Semantic Versioning (https://semver.org/)
28-
version: 1.0.5
28+
version: 1.0.6
2929

3030
# This is the version number of the application being deployed. This version number should be
3131
# incremented each time you make changes to the application. Versions are not expected to

microservicesruntime/helm/README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -110,12 +110,13 @@ helm install wm-msr webmethods/microservicesruntime \
110110
| `1.0.3` | Make Liveness and Readiness Probes as per current default. Both can now also be overwritten in a custom values file `values.yaml`. |
111111
| `1.0.4` | Option in `values.yaml` to create a ServiceMonitor added. Some errors in Nginx external LB corrected |
112112
| `1.0.5` | Value `trustStorePasswordFromSecret` added in `values.yaml` to support common `1.0.2` |
113+
| `1.0.6` | `tpl` function support in `affinity` value added. `topologySpreadConstraints` support added. |
113114

114115
## Values
115116

116117
| Key | Type | Default | Description |
117118
|-----|------|---------|-------------|
118-
| affinity | object | `{}` | |
119+
| affinity | object | `{}` | Set Pod (anti-) affinity. You can use templates inside because `tpl` function is called for rendering. |
119120
| autoscaling.enabled | bool | `false` | |
120121
| autoscaling.maxReplicas | int | `100` | |
121122
| autoscaling.minReplicas | int | `1` | |
@@ -209,4 +210,5 @@ helm install wm-msr webmethods/microservicesruntime \
209210
| startupProbe | object | `{"failureThreshold":60,"periodSeconds":30,"tcpSocket":{"port":"http"}}` | startup probe for container |
210211
| statefulSet | bool | `false` | StatefulSet or Deployment. You should only change this if you require Client Side queuing (CSQ) or functionality in IS which requires stable hostnames and filesystems. Default is false => Deployment. Keep in mind, you must disable CSQ on each webMethods messaging and JMS connection if you don't use stateful-sets. See examples in Process Engine deployment for disableing CSQ. |
211212
| tolerations | list | `[]` | |
213+
| topologySpreadConstraints | object | `{}` | Set Pod topology spread constraints. You can use templates inside because `tpl` function is called for rendering. |
212214
| volumeClaimTemplates | list | `[]` | Volume Claim Templates, only to be used when running as a Statefulset (e.g. using client-side queuing) |

microservicesruntime/helm/README.md.gotmpl

+1
Original file line numberDiff line numberDiff line change
@@ -110,5 +110,6 @@ helm install wm-msr webmethods/microservicesruntime \
110110
| `1.0.3` | Make Liveness and Readiness Probes as per current default. Both can now also be overwritten in a custom values file `values.yaml`. |
111111
| `1.0.4` | Option in `values.yaml` to create a ServiceMonitor added. Some errors in Nginx external LB corrected |
112112
| `1.0.5` | Value `trustStorePasswordFromSecret` added in `values.yaml` to support common `1.0.2` |
113+
| `1.0.6` | `tpl` function support in `affinity` value added. `topologySpreadConstraints` support added. |
113114

114115
{{ template "chart.valuesSection" . }}

microservicesruntime/helm/templates/deployment.yaml

+6-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
# * limitations under the License.
1717
# *
1818
# */
19-
19+
{{- $context := . }}
2020
apiVersion: apps/v1
2121
kind: {{ if .Values.statefulSet }}StatefulSet{{ else }}Deployment{{ end }}
2222
metadata:
@@ -210,7 +210,11 @@ spec:
210210
{{- end }}
211211
{{- with .Values.affinity }}
212212
affinity:
213-
{{- toYaml . | nindent 8 }}
213+
{{- tpl (toYaml .) $context | nindent 8 }}
214+
{{- end }}
215+
{{- with .Values.topologySpreadConstraints }}
216+
topologySpreadConstraints:
217+
{{- tpl (toYaml .) $context | nindent 8 }}
214218
{{- end }}
215219
{{- with .Values.tolerations }}
216220
tolerations:

microservicesruntime/helm/values.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -261,8 +261,12 @@ nodeSelector: {}
261261

262262
tolerations: []
263263

264+
# -- Set Pod (anti-) affinity. You can use templates inside because `tpl` function is called for rendering.
264265
affinity: {}
265266

267+
# -- Set Pod topology spread constraints. You can use templates inside because `tpl` function is called for rendering.
268+
topologySpreadConstraints: {}
269+
266270
# -- Deploy Nginx as external LB
267271
externalLoadBalancer: false
268272

mywebmethodsserver/helm/Chart.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ apiVersion: v2
2020
appVersion: "10.15"
2121
description: My webMethods Server (MWS) Helm Chart for Kubernetes
2222
name: mywebmethodsserver
23-
version: 1.0.2
23+
version: 1.0.3
2424

2525
dependencies:
2626
- name: common

0 commit comments

Comments
 (0)