Skip to content

Commit

Permalink
Merge pull request #107 from SoftwareAG/dev-thr
Browse files Browse the repository at this point in the history
tpl function support in affinity value added. `topologySpreadConstraints` support added
  • Loading branch information
thomas-2020 authored Sep 6, 2024
2 parents 576e282 + c24973a commit ac30344
Show file tree
Hide file tree
Showing 27 changed files with 114 additions and 20 deletions.
2 changes: 1 addition & 1 deletion apigateway/helm/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 1.2.7
version: 1.2.8

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
Expand Down
11 changes: 9 additions & 2 deletions apigateway/helm/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -167,12 +167,14 @@ Sub-folder `examples` contains some *values* examples for more use-cases. To use
| `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. |
| `1.2.5` | Added possibility to read metering truststore password by secretKeyRef. <br> Added custom logging configuration for Kibana. |
| `1.2.6` | Fixed commons dependency to enable metering change from 1.2.5. |
| `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. |
| `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. |
| `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. |

## Values

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| affinity | object | `{}` | |
| affinity | object | `{}` | Set Pod (anti-) affinity for APIGW. You can use templates inside because `tpl` function is called for rendering. |
| apigw.adminPort | int | `5555` | The default administration port. Note in a default installation this port will also be used for runtime traffic. |
| apigw.adminSecretKey | string | `""` | The key that holds the admin secret key; defauls to "password" |
| apigw.adminSecretName | string | `""` | The secret that holds the admin password Depends on secrets.genereateAdminSecret; if true the setting will be ignored. |
Expand Down Expand Up @@ -205,6 +207,7 @@ Sub-folder `examples` contains some *values* examples for more use-cases. To use
| autoscaling.maxReplicas | int | `100` | |
| autoscaling.minReplicas | int | `1` | |
| autoscaling.targetCPUUtilizationPercentage | int | `80` | |
| elasticsearch.affinity | object | `{}` | Set Pod (anti-) affinity for ElasticSearch. You can use templates inside because `tpl` function is called for rendering. |
| 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" |
| elasticsearch.defaultNodeSet | object | `{"annotations":{},"count":1,"extraConfig":{},"extraInitContainers":{},"installMapperSizePlugin":true,"memoryMapping":false,"setMaxMapCount":true}` | Default Node Set |
| elasticsearch.defaultNodeSet.annotations | object | `{}` | Annotations for Elasticsearch |
Expand Down Expand Up @@ -235,6 +238,7 @@ Sub-folder `examples` contains some *values* examples for more use-cases. To use
| elasticsearch.storageClassName | string | `""` | Use the storage class. |
| 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. |
| 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. |
| elasticsearch.topologySpreadConstraints | object | `{}` | Set Pod topology spread constraints for ElasticSearch. You can use templates inside because `tpl` function is called for rendering. |
| elasticsearch.version | string | `"8.2.3"` | The ECK version to be used |
| extraConfigMaps | list | `[]` | Extra config maps for additional configurations such as extra ports, etc. |
| extraContainers | list | `[]` | Extra containers which should run in addition to the main container as a sidecar - name: do-something image: busybox command: ['do', 'something'] |
Expand Down Expand Up @@ -316,6 +320,7 @@ Sub-folder `examples` contains some *values* examples for more use-cases. To use
| ingresses.ui.tls[0].secretName | string | `nil` | |
| ingresses.ui.tls[0].secretProviderEnabled | bool | `false` | |
| ingresses.ui.tls[0].secretProviderSecretName | string | `nil` | |
| kibana.affinity | object | `{}` | Set Pod (anti-) affinity for Kibana. You can use templates inside because `tpl` function is called for rendering. |
| kibana.allowAnonymousStatus | bool | `true` | Enable anonymous access to /api/status. |
| kibana.annotations | object | `{}` | Annotations for Kibana |
| kibana.count | int | `1` | |
Expand Down Expand Up @@ -348,6 +353,7 @@ Sub-folder `examples` contains some *values* examples for more use-cases. To use
| kibana.tls.trustStoreName | string | `""` | File name of the p12 truststore for Kibana |
| kibana.tls.truststorePasswordSecret | string | `""` | Name of the k8s secret containing the password for above p12 truststore in key 'password' |
| 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). |
| kibana.topologySpreadConstraints | object | `{}` | Set Pod topology spread constraints for Kibana. You can use templates inside because `tpl` function is called for rendering. |
| kibana.version | string | `"8.2.3"` | The ECK version to be used |
| 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. |
| licenseConfigKey | string | `""` | |
Expand Down Expand Up @@ -400,3 +406,4 @@ Sub-folder `examples` contains some *values* examples for more use-cases. To use
| serviceMonitor.enabled | bool | `false` | Create and enable CRD ServiceMonitor. The default is `false`. |
| serviceMonitor.serviceName | string | `""` | Set the monitored service which is connected by ServiceMonitor. Default (if not set) is the `rt` runtime service. |
| tolerations | list | `[]` | |
| topologySpreadConstraints | object | `{}` | Set Pod topology spread constraints for APIGW. You can use templates inside because `tpl` function is called for rendering. |
4 changes: 3 additions & 1 deletion apigateway/helm/README.md.gotmpl
Original file line number Diff line number Diff line change
Expand Up @@ -168,5 +168,7 @@ Sub-folder `examples` contains some *values* examples for more use-cases. To use
| `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. |
| `1.2.5` | Added possibility to read metering truststore password by secretKeyRef. <br> Added custom logging configuration for Kibana. |
| `1.2.6` | Fixed commons dependency to enable metering change from 1.2.5. |
| `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. |
| `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. |
| `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. |

{{ template "chart.valuesSection" . }}
7 changes: 6 additions & 1 deletion apigateway/helm/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
# *
# */
{{ $apigwname := (include "common.names.fullname" $ ) }}
{{- $context := . }}
apiVersion: apps/v1
kind: Deployment
metadata:
Expand Down Expand Up @@ -227,7 +228,11 @@ spec:
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- tpl (toYaml .) $context | nindent 8 }}
{{- end }}
{{- with .Values.topologySpreadConstraints }}
topologySpreadConstraints:
{{- tpl (toYaml .) $context | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
Expand Down
9 changes: 9 additions & 0 deletions apigateway/helm/templates/elasticsearch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
# * limitations under the License.
# *
# */
{{- $context := . }}
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
Expand Down Expand Up @@ -98,6 +99,14 @@ spec:
{{ toYaml . | nindent 12 }}
{{- end }}
spec:
{{- with .Values.elasticsearch.affinity }}
affinity:
{{- tpl (toYaml .) $context | nindent 12 }}
{{- end }}
{{- with .Values.elasticsearch.topologySpreadConstraints }}
topologySpreadConstraints:
{{- tpl (toYaml .) $context | nindent 12 }}
{{- end }}
imagePullSecrets:
{{- toYaml .Values.imagePullSecrets | nindent 12 }}
containers:
Expand Down
9 changes: 9 additions & 0 deletions apigateway/helm/templates/kibana.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
# * limitations under the License.
# *
# */
{{- $context := . }}
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
Expand Down Expand Up @@ -85,6 +86,14 @@ spec:
{{ toYaml . | nindent 8 }}
{{- end }}
spec:
{{- with .Values.kibana.affinity }}
affinity:
{{- tpl (toYaml .) $context | nindent 8 }}
{{- end }}
{{- with .Values.kibana.topologySpreadConstraints }}
topologySpreadConstraints:
{{- tpl (toYaml .) $context | nindent 8 }}
{{- end }}
imagePullSecrets:
{{- toYaml .Values.imagePullSecrets | nindent 8 }}
{{- if .Values.kibana.serviceAccount.name }}
Expand Down
18 changes: 17 additions & 1 deletion apigateway/helm/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -228,8 +228,12 @@ nodeSelector: {}

tolerations: []

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

# -- Set Pod topology spread constraints for APIGW. You can use templates inside because `tpl` function is called for rendering.
topologySpreadConstraints: {}

# -- Value to add extra host aliases to APIGW container.
hostAliases: []

Expand Down Expand Up @@ -598,7 +602,13 @@ elasticsearch:
# -- The name of the secret holding the tls secret
# By default the name will be fullname of release + "es-tls-secret"
certificateSecretName: "{{ include \"common.names.fullname\" .}}-es-tls-secret"


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

# -- Set Pod topology spread constraints for ElasticSearch. You can use templates inside because `tpl` function is called for rendering.
topologySpreadConstraints: {}

# -- Node sets. See official ElasticSearch documentation at:
# https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-orchestration.html
# if you specify node sets here the defaultNodeSet will not be used.
Expand Down Expand Up @@ -635,6 +645,12 @@ kibana:
# -- The ECK version to be used
version: 8.2.3

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

# -- Set Pod topology spread constraints for Kibana. You can use templates inside because `tpl` function is called for rendering.
topologySpreadConstraints: {}

# -- The image that should be used.
# By default ECK will use the official Elasticsearch images.
# Overwrite this to use an image from an internal registry or any custom images.
Expand Down
2 changes: 1 addition & 1 deletion developerportal/helm/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 1.0.1
version: 1.0.2

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
Expand Down
4 changes: 3 additions & 1 deletion developerportal/helm/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,13 @@ helm install webmethods/developerportal devportal
|-----|------|
| `1.0.0` | Initial release |
| `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. |
| `1.0.2` | `tpl` function support in `affinity` value added. `topologySpreadConstraints` support added. |

## Values

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| affinity | object | `{}` | |
| affinity | object | `{}` | Set Pod (anti-) affinity. You can use templates inside because `tpl` function is called for rendering. |
| autoscaling.enabled | bool | `false` | |
| autoscaling.maxReplicas | int | `100` | |
| autoscaling.minReplicas | int | `1` | |
Expand Down Expand Up @@ -131,3 +132,4 @@ helm install webmethods/developerportal devportal
| 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 |
| serviceAccount.roleName | string | `""` | |
| tolerations | list | `[]` | |
| topologySpreadConstraints | object | `{}` | Set Pod topology spread constraints. You can use templates inside because `tpl` function is called for rendering. |
1 change: 1 addition & 0 deletions developerportal/helm/README.md.gotmpl
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,6 @@ helm install webmethods/developerportal devportal
|-----|------|
| `1.0.0` | Initial release |
| `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. |
| `1.0.2` | `tpl` function support in `affinity` value added. `topologySpreadConstraints` support added. |

{{ template "chart.valuesSection" . }}
7 changes: 6 additions & 1 deletion developerportal/helm/templates/statefulset.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
# * limitations under the License.
# *
# */
{{- $context := . }}
apiVersion: apps/v1
kind: StatefulSet
metadata:
Expand Down Expand Up @@ -59,8 +60,12 @@ spec:
- {{ include "common.names.fullname" . }}
topologyKey: kubernetes.io/hostname
{{- else if .Values.affinity }}
{{ toYaml .Values.affinity | nindent 8 }}
{{ tpl (toYaml .Values.affinity) $context | nindent 8 }}
{{- end }}
{{- with .Values.topologySpreadConstraints }}
topologySpreadConstraints:
{{- tpl (toYaml .) $context | nindent 8 }}
{{- end }}
containers:
- name: {{ include "common.names.fullname" . }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
Expand Down
4 changes: 4 additions & 0 deletions developerportal/helm/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,12 @@ nodeSelector: {}

tolerations: []

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

# -- Set Pod topology spread constraints. You can use templates inside because `tpl` function is called for rendering.
topologySpreadConstraints: {}

# -- Extra Labels
extraLabels: {}

Expand Down
2 changes: 1 addition & 1 deletion microservicesruntime/helm/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 1.0.5
version: 1.0.6

# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
Expand Down
4 changes: 3 additions & 1 deletion microservicesruntime/helm/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,12 +110,13 @@ helm install wm-msr webmethods/microservicesruntime \
| `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`. |
| `1.0.4` | Option in `values.yaml` to create a ServiceMonitor added. Some errors in Nginx external LB corrected |
| `1.0.5` | Value `trustStorePasswordFromSecret` added in `values.yaml` to support common `1.0.2` |
| `1.0.6` | `tpl` function support in `affinity` value added. `topologySpreadConstraints` support added. |

## Values

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| affinity | object | `{}` | |
| affinity | object | `{}` | Set Pod (anti-) affinity. You can use templates inside because `tpl` function is called for rendering. |
| autoscaling.enabled | bool | `false` | |
| autoscaling.maxReplicas | int | `100` | |
| autoscaling.minReplicas | int | `1` | |
Expand Down Expand Up @@ -209,4 +210,5 @@ helm install wm-msr webmethods/microservicesruntime \
| startupProbe | object | `{"failureThreshold":60,"periodSeconds":30,"tcpSocket":{"port":"http"}}` | startup probe for container |
| 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. |
| tolerations | list | `[]` | |
| topologySpreadConstraints | object | `{}` | Set Pod topology spread constraints. You can use templates inside because `tpl` function is called for rendering. |
| volumeClaimTemplates | list | `[]` | Volume Claim Templates, only to be used when running as a Statefulset (e.g. using client-side queuing) |
1 change: 1 addition & 0 deletions microservicesruntime/helm/README.md.gotmpl
Original file line number Diff line number Diff line change
Expand Up @@ -110,5 +110,6 @@ helm install wm-msr webmethods/microservicesruntime \
| `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`. |
| `1.0.4` | Option in `values.yaml` to create a ServiceMonitor added. Some errors in Nginx external LB corrected |
| `1.0.5` | Value `trustStorePasswordFromSecret` added in `values.yaml` to support common `1.0.2` |
| `1.0.6` | `tpl` function support in `affinity` value added. `topologySpreadConstraints` support added. |

{{ template "chart.valuesSection" . }}
8 changes: 6 additions & 2 deletions microservicesruntime/helm/templates/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
# * limitations under the License.
# *
# */

{{- $context := . }}
apiVersion: apps/v1
kind: {{ if .Values.statefulSet }}StatefulSet{{ else }}Deployment{{ end }}
metadata:
Expand Down Expand Up @@ -210,7 +210,11 @@ spec:
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- tpl (toYaml .) $context | nindent 8 }}
{{- end }}
{{- with .Values.topologySpreadConstraints }}
topologySpreadConstraints:
{{- tpl (toYaml .) $context | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
Expand Down
4 changes: 4 additions & 0 deletions microservicesruntime/helm/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -261,8 +261,12 @@ nodeSelector: {}

tolerations: []

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

# -- Set Pod topology spread constraints. You can use templates inside because `tpl` function is called for rendering.
topologySpreadConstraints: {}

# -- Deploy Nginx as external LB
externalLoadBalancer: false

Expand Down
2 changes: 1 addition & 1 deletion mywebmethodsserver/helm/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ apiVersion: v2
appVersion: "10.15"
description: My webMethods Server (MWS) Helm Chart for Kubernetes
name: mywebmethodsserver
version: 1.0.2
version: 1.0.3

dependencies:
- name: common
Expand Down
Loading

0 comments on commit ac30344

Please sign in to comment.