From a386ba294b15fb68cf920ce3d7891334c83db44e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hasan=20=C3=87elik?= Date: Fri, 18 Oct 2019 11:43:58 +0300 Subject: [PATCH] [stable/hazelcast] Various improvements and version bump (#17972) * Following improvements has been ported the charts: - Added an option to disable Service creation and define a name to use - Added management center service annotations and https port - Bump hazelcast to 3.12.3 and management center to 3.12.6 - convert README into asciidoc - nodeSelector for test scenarios Signed-off-by: hasancelik * increased the chart version number Signed-off-by: hasancelik * changed repo parameter at README Signed-off-by: hasancelik --- stable/hazelcast/Chart.yaml | 4 +- stable/hazelcast/README.adoc | 357 ++++++++++++++++++ stable/hazelcast/README.md | 160 -------- stable/hazelcast/templates/_helpers.tpl | 11 + .../templates/mancenter-ingress.yaml | 4 +- .../templates/mancenter-service.yaml | 10 +- stable/hazelcast/templates/service.yaml | 4 +- stable/hazelcast/templates/statefulset.yaml | 2 +- .../templates/tests/test-hazelcast.yaml | 4 + .../tests/test-management-center.yaml | 4 + stable/hazelcast/values.yaml | 14 +- 11 files changed, 405 insertions(+), 169 deletions(-) create mode 100644 stable/hazelcast/README.adoc delete mode 100644 stable/hazelcast/README.md diff --git a/stable/hazelcast/Chart.yaml b/stable/hazelcast/Chart.yaml index 4b6e119b5e..8f3b6af7d9 100644 --- a/stable/hazelcast/Chart.yaml +++ b/stable/hazelcast/Chart.yaml @@ -1,6 +1,6 @@ name: hazelcast -version: 2.2.0 -appVersion: "3.12.2" +version: 2.4.0 +appVersion: "3.12.3" tillerVersion: ">=2.7.2" kubeVersion: ">=1.9.0-0" description: Hazelcast IMDG is the most widely used in-memory data grid with hundreds of thousands of installed clusters around the world. It offers caching solutions ensuring that data is in the right place when it’s needed for optimal performance. diff --git a/stable/hazelcast/README.adoc b/stable/hazelcast/README.adoc new file mode 100644 index 0000000000..b3d6ff08a6 --- /dev/null +++ b/stable/hazelcast/README.adoc @@ -0,0 +1,357 @@ +:repo: helm/charts + +== Hazelcast + +http://hazelcast.com/[Hazelcast IMDG] is the most widely used in-memory data +grid with hundreds of thousands of installed clusters around the world. It +offers caching solutions ensuring that data is in the right place when it’s +needed for optimal performance. + +=== Quick Start + + +ifeval::["{repo}"=="hazelcast/charts"] +[source,bash] +---- +$ helm repo add hazelcast https://hazelcast.github.io/charts/ +$ helm repo update +$ helm install hazelcast/hazelcast +---- +endif::[] + +ifeval::["{repo}"=="helm/charts"] +[source,bash] +---- +$ helm install stable/hazelcast +---- +endif::[] + +=== Introduction + +This chart bootstraps a +https://github.com/hazelcast/hazelcast-docker/tree/master/hazelcast-kubernetes[Hazelcast] +and https://github.com/hazelcast/management-center-docker[Management Center] +deployments on a http://kubernetes.io[Kubernetes] cluster using the +https://helm.sh[Helm] package manager. + +=== Prerequisites + +* Kubernetes 1.9+ + +=== Installing the Chart + +To install the chart with the release name `+my-release+`: + +ifeval::["{repo}"=="hazelcast/charts"] +[source,bash] +---- +$ helm install --name my-release hazelcast/hazelcast +---- +endif::[] + +ifeval::["{repo}"=="helm/charts"] +[source,bash] +---- +$ helm install --name my-release stable/hazelcast +---- +endif::[] + +The command deploys Hazelcast on the Kubernetes cluster in the default +configuration. The link:#configuration[configuration] section lists the +parameters that can be configured during installation. + +____ +*Tip*: List all releases using `+helm list+` +____ + +=== Uninstalling the Chart + +To uninstall/delete the `+my-release+` deployment: + +[source,bash] +---- +$ helm delete my-release +---- + +The command removes all the Kubernetes components associated with the chart and +deletes the release. + +=== Configuration + +The following table lists the configurable parameters of the Hazelcast chart and +their default values. + +[width="100%",cols="22%,53%,25%",options="header",] +|=== +|Parameter |Description |Default +|`+image.repository+` |Hazelcast Image name |`+hazelcast/hazelcast-kubernetes+` + +|`+image.tag+` |Hazelcast Image tag |`+{VERSION}+` + +|`+image.pullPolicy+` |Image pull policy |`+IfNotPresent+` + +|`+image.pullSecrets+` |Specify docker-registry secret names as an array +|`+nil+` + +|`+cluster.memberCount+` |Number of Hazelcast members |2 + +|`+hazelcast.rest+` |Enable REST endpoints for Hazelcast member |`+true+` + +|`+hazelcast.javaOpts+` |Additional JAVA_OPTS properties for Hazelcast member +|`+nil+` + +|`+hazelcast.existingConfigMap+` |ConfigMap which contains Hazelcast +configuration file(s) that are used instead hazelcast.yaml embedded into +values.yaml |`+nil+` + +|`+hazelcast.yaml+` |Hazelcast YAML Configuration (`+hazelcast.yaml+` embedded +into `+values.yaml+`) |`+{DEFAULT_HAZELCAST_YAML}+` + +|`+hazelcast.configurationFiles+` |Hazelcast configuration files |`+nil+` + +|`+affinity+` | Hazelcast Node affinity |`+nil+` + +|`+nodeSelector+` |Hazelcast Node labels for pod assignment |`+nil+` + +|`+hostPort+` |Port under which Hazelcast PODs are exposed on the host machines +|`+nil+` + +|`+gracefulShutdown.enabled+` |Turn on and off Graceful Shutdown |`+true+` + +|`+gracefulShutdown.maxWaitSeconds+` |Maximum time to wait for the Hazelcast POD +to shut down |`+600+` + +|`+livenessProbe.enabled+` |Turn on and off liveness probe |`+true+` + +|`+livenessProbe.initialDelaySeconds+` |Delay before liveness probe is initiated +|`+30+` + +|`+livenessProbe.periodSeconds+` |How often to perform the probe |`+10+` + +|`+livenessProbe.timeoutSeconds+` |When the probe times out |`+5+` + +|`+livenessProbe.successThreshold+` |Minimum consecutive successes for the probe +to be considered successful after having failed |`+1+` + +|`+livenessProbe.failureThreshold+` |Minimum consecutive failures for the probe +to be considered failed after having succeeded. |`+3+` + +|`+readinessProbe.enabled+` |Turn on and off readiness probe |`+true+` + +|`+readinessProbe.initialDelaySeconds+` |Delay before readiness probe is +initiated |`+30+` + +|`+readinessProbe.periodSeconds+` |How often to perform the probe |`+10+` + +|`+readinessProbe.timeoutSeconds+` |When the probe times out |`+1+` + +|`+readinessProbe.successThreshold+` |Minimum consecutive successes for the +probe to be considered successful after having failed |`+1+` + +|`+readinessProbe.failureThreshold+` |Minimum consecutive failures for the probe +to be considered failed after having succeeded. |`+3+` + +|`+resources.limits.cpu+` |CPU resource limit |`+default+` + +|`+resources.limits.memory+` |Memory resource limit |`+default+` + +|`+resources.requests.cpu+` |CPU resource requests |`+default+` + +|`+resources.requests.memory+` |Memory resource requests |`+default+` + +|`+service.create+` |Enable installing Service |`+true+` + +|`+service.name+` |Name of Service, if not set, the name is generated using the +fullname template |`+nil+` + +|`+service.type+` |Kubernetes service type (`ClusterIP', `LoadBalancer', or +`NodePort') |`+ClusterIP+` + +|`+service.port+` |Kubernetes service port |`+5701+` + +|`+rbac.create+` |Enable installing RBAC Role authorization |`+true+` + +|`+serviceAccount.create+` |Enable installing Service Account |`+true+` + +|`+serviceAccount.name+` |Name of Service Account, if not set, the name is +generated using the fullname template |`+nil+` + +|`+securityContext.enabled+` |Enables Security Context for Hazelcast and +Management Center |`+true+` + +|`+securityContext.runAsUser+` |User ID used to run the Hazelcast and Management +Center containers |`+65534+` + +|`+securityContext.fsGroup+` |Group ID associated with the Hazelcast and +Management Center container |`+65534+` + +|`+metrics.enabled+` |Turn on and off JMX Prometheus metrics available at +`+/metrics+` |`+false+` + +|`+metrics.service.type+` |Type of the metrics service |`+ClusterIP+` + +|`+metrics.service.port+` |Port of the `+/metrics+` endpoint and the metrics +service |`+8080+` + +|`+metrics.service.annotations+` |Annotations for the Prometheus discovery | + +|`+customVolume+` |Configuration for a volume mounted as `/data/custom' (e.g. to +mount a volume with custom JARs) |`+nil+` + +|`+mancenter.enabled+` |Turn on and off Management Center application |`+true+` + +|`+mancenter.image.repository+` |Hazelcast Management Center Image name +|`+hazelcast/management-center+` + +|`+mancenter.image.tag+` |Hazelcast Management Center Image tag (NOTE: must be +the same or one minor release greater than Hazelcast image version) +|`+{VERSION}+` + +|`+mancenter.image.pullPolicy+` |Image pull policy |`+IfNotPresent+` + +|`+mancenter.image.pullSecrets+` |Specify docker-registry secret names as an +array |`+nil+` + +|`+mancenter.javaOpts+` |Additional JAVA_OPTS properties for Hazelcast +Management Center |`+nil+` + +|`+mancenter.licenseKey+` |License Key for Hazelcast Management Center, if not +provided, can be filled in the web interface |`+nil+` + +|`+mancenter.licenseKeySecretName+` |Kubernetes Secret Name, where Management +Center License Key is stored (can be used instead of licenseKey) |`+nil+` + +|`+mancenter.nodeSelector+` |Hazelcast Management Center node labels for pod +assignment |`+nil+` + +|`+mancenter.resources+` |CPU/Memory resource requests/limits |`+nil+` + +|`+mancenter.persistence.enabled+` |Enable Persistent Volume for Hazelcast +Management |`+true+` + +|`+mancenter.persistence.existingClaim+` |Name of the existing Persistence +Volume Claim, if not defined, a new is created |`+nil+` + +|`+mancenter.persistence.accessModes+` |Access Modes of the new Persistent +Volume Claim |`+ReadWriteOnce+` + +|`+mancenter.persistence.size+` |Size of the new Persistent Volume Claim +|`+8Gi+` + +|`+mancenter.service.type+` |Kubernetes service type (`ClusterIP', +`LoadBalancer', or `NodePort') |`+LoadBalancer+` + +|`+mancenter.service.port+` |Kubernetes service port |`+5701+` + +|`+mancenter.livenessProbe.enabled+` |Turn on and off liveness probe |`+true+` + +|`+mancenter.livenessProbe.initialDelaySeconds+` |Delay before liveness probe is +initiated |`+30+` + +|`+mancenter.livenessProbe.periodSeconds+` |How often to perform the probe +|`+10+` + +|`+mancenter.livenessProbe.timeoutSeconds+` |When the probe times out |`+5+` + +|`+mancenter.livenessProbe.successThreshold+` |Minimum consecutive successes for +the probe to be considered successful after having failed |`+1+` + +|`+mancenter.livenessProbe.failureThreshold+` |Minimum consecutive failures for +the probe to be considered failed after having succeeded. |`+3+` + +|`+mancenter.readinessProbe.enabled+` |Turn on and off readiness probe |`+true+` + +|`+mancenter.readinessProbe.initialDelaySeconds+` |Delay before readiness probe +is initiated |`+30+` + +|`+mancenter.readinessProbe.periodSeconds+` |How often to perform the probe +|`+10+` + +|`+mancenter.readinessProbe.timeoutSeconds+` |When the probe times out |`+1+` + +|`+mancenter.readinessProbe.successThreshold+` |Minimum consecutive successes +for the probe to be considered successful after having failed |`+1+` + +|`+mancenter.readinessProbe.failureThreshold+` |Minimum consecutive failures for +the probe to be considered failed after having succeeded. |`+3+` + +|`+mancenter.ingress.enabled+` |Enable ingress for the management center +|`+false+` + +|`+mancenter.ingress.annotations+` |Any annotations for the ingress |`+{}+` + +|`+mancenter.ingress.hosts+` |List of hostnames for ingress, see `+values.yaml+` +for example |`+[]+` + +|`+mancenter.ingress.tls+` |List of TLS configuration for ingress, see +`+values.yaml+` for example |`+[]+` +|=== + +Specify each parameter using the `+--set key=value[,key=value]+` argument to +`+helm install+`. For example, + + +ifeval::["{repo}"=="hazelcast/charts"] +[source,bash] +---- +$ helm install --name my-release \ + --set cluster.memberCount=3,hazelcast.rest=false \ + hazelcast/hazelcast +---- +endif::[] + +ifeval::["{repo}"=="helm/charts"] +[source,bash] +---- +$ helm install --name my-release \ + --set cluster.memberCount=3,hazelcast.rest=false \ + stable/hazelcast +---- +endif::[] + +The above command sets number of Hazelcast members to 3 and disables REST +endpoints. + +Alternatively, a YAML file that specifies the values for the parameters can be +provided while installing the chart. For example, + +ifeval::["{repo}"=="hazelcast/charts"] +[source,bash] +---- +$ helm install --name my-release -f values.yaml hazelcast/hazelcast +---- +endif::[] + + +ifeval::["{repo}"=="helm/charts"] +[source,bash] +---- +$ helm install --name my-release -f values.yaml stable/hazelcast +---- +endif::[] + +____ +*Tip*: You can use the default values.yaml +____ + +=== Custom Hazelcast configuration + +Custom Hazelcast configuration can be specified inside `+values.yaml+`, as the +`+hazelcast.yaml+` property. + +[source,yaml] +---- +hazelcast: + yaml: + hazelcast: + network: + join: + multicast: + enabled: false + kubernetes: + enabled: true + service-name: ${serviceName} + namespace: ${namespace} + resolve-not-ready-addresses: true + +---- diff --git a/stable/hazelcast/README.md b/stable/hazelcast/README.md deleted file mode 100644 index a861873b39..0000000000 --- a/stable/hazelcast/README.md +++ /dev/null @@ -1,160 +0,0 @@ -# Hazelcast - -[Hazelcast IMDG](http://hazelcast.com/) is the most widely used in-memory data grid with hundreds of thousands of installed clusters around the world. It offers caching solutions ensuring that data is in the right place when it’s needed for optimal performance. - -## Quick Start - -```bash -$ helm install stable/hazelcast -``` - -## Introduction - -This chart bootstraps a [Hazelcast](https://github.com/hazelcast/hazelcast-docker/tree/master/hazelcast-kubernetes) and [Management Center](https://github.com/hazelcast/management-center-docker) deployments on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. - -## Prerequisites - -- Kubernetes 1.9+ - -## Installing the Chart - -To install the chart with the release name `my-release`: - -```bash -$ helm install --name my-release stable/hazelcast -``` - -The command deploys Hazelcast on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation. - -> **Tip**: List all releases using `helm list` - -## Uninstalling the Chart - -To uninstall/delete the `my-release` deployment: - -```bash -$ helm delete my-release -``` - -The command removes all the Kubernetes components associated with the chart and deletes the release. - -## Configuration - -The following table lists the configurable parameters of the Hazelcast chart and their default values. - -| Parameter | Description | Default | -|--------------------------------------------|----------------------------------------------------------------------------------------------------------------|------------------------------------------------------| -| `image.repository` | Hazelcast Image name | `hazelcast/hazelcast-kubernetes` | -| `image.tag` | Hazelcast Image tag | `{VERSION}` | -| `image.pullPolicy` | Image pull policy | `IfNotPresent` | -| `image.pullSecrets` | Specify docker-registry secret names as an array | `nil` | -| `cluster.memberCount` | Number of Hazelcast members | 2 | -| `hazelcast.rest` | Enable REST endpoints for Hazelcast member | `true` | -| `hazelcast.javaOpts` | Additional JAVA_OPTS properties for Hazelcast member | `nil` | -| `hazelcast.existingConfigMap` | ConfigMap which contains Hazelcast configuration file(s) that are used instead hazelcast.yaml embedded into values.yaml | `nil` | -| `hazelcast.yaml` | Hazelcast YAML Configuration (`hazelcast.yaml` embedded into `values.yaml`) | `{DEFAULT_HAZELCAST_YAML}` | -| `hazelcast.configurationFiles` | Hazelcast configuration files | `nil` | -| `affinity` | Hazelcast Node affinity | `nil` | -| `nodeSelector` | Hazelcast Node labels for pod assignment | `nil` | -| `hostPort` | Port under which Hazelcast PODs are exposed on the host machines | `nil` | -| `gracefulShutdown.enabled` | Turn on and off Graceful Shutdown | `true` | -| `gracefulShutdown.maxWaitSeconds` | Maximum time to wait for the Hazelcast POD to shut down | `600` | -| `livenessProbe.enabled` | Turn on and off liveness probe | `true` | -| `livenessProbe.initialDelaySeconds` | Delay before liveness probe is initiated | `30` | -| `livenessProbe.periodSeconds` | How often to perform the probe | `10` | -| `livenessProbe.timeoutSeconds` | When the probe times out | `5` | -| `livenessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed | `1` | -| `livenessProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded. | `3` | -| `readinessProbe.enabled` | Turn on and off readiness probe | `true` | -| `readinessProbe.initialDelaySeconds` | Delay before readiness probe is initiated | `30` | -| `readinessProbe.periodSeconds` | How often to perform the probe | `10` | -| `readinessProbe.timeoutSeconds` | When the probe times out | `1` | -| `readinessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed | `1` | -| `readinessProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded. | `3` | -| `resources.limits.cpu` | CPU resource limit | `default` | -| `resources.limits.memory` | Memory resource limit | `default` | -| `resources.requests.cpu` | CPU resource requests | `default` | -| `resources.requests.memory` | Memory resource requests | `default` | -| `service.type` | Kubernetes service type ('ClusterIP', 'LoadBalancer', or 'NodePort') | `ClusterIP` | -| `service.port` | Kubernetes service port | `5701` | -| `rbac.create` | Enable installing RBAC Role authorization | `true` | -| `serviceAccount.create` | Enable installing Service Account | `true` | -| `serviceAccount.name` | Name of Service Account, if not set, the name is generated using the fullname template | `nil` | -| `securityContext.enabled` | Enables Security Context for Hazelcast and Management Center | `true` | -| `securityContext.runAsUser` | User ID used to run the Hazelcast and Management Center containers | `65534` | -| `securityContext.fsGroup` | Group ID associated with the Hazelcast and Management Center container | `65534` | -| `metrics.enabled` | Turn on and off JMX Prometheus metrics available at `/metrics` | `false` | -| `metrics.service.type` | Type of the metrics service | `ClusterIP` | -| `metrics.service.port` | Port of the `/metrics` endpoint and the metrics service | `8080` | -| `metrics.service.annotations` | Annotations for the Prometheus discovery | | -| `customVolume` | Configuration for a volume mounted as '/data/custom' (e.g. to mount a volume with custom JARs) | `nil` | -| `mancenter.enabled` | Turn on and off Management Center application | `true` | -| `mancenter.image.repository` | Hazelcast Management Center Image name | `hazelcast/management-center` | -| `mancenter.image.tag` | Hazelcast Management Center Image tag (NOTE: must be the same or one minor release greater than Hazelcast image version) | `{VERSION}` | -| `mancenter.image.pullPolicy` | Image pull policy | `IfNotPresent` | -| `mancenter.image.pullSecrets` | Specify docker-registry secret names as an array | `nil` | -| `mancenter.javaOpts` | Additional JAVA_OPTS properties for Hazelcast Management Center | `nil` | -| `mancenter.licenseKey` | License Key for Hazelcast Management Center, if not provided, can be filled in the web interface | `nil` | -| `mancenter.licenseKeySecretName` | Kubernetes Secret Name, where Management Center License Key is stored (can be used instead of licenseKey) | `nil` | -| `mancenter.nodeSelector` | Hazelcast Management Center node labels for pod assignment | `nil` | -| `mancenter.resources` | CPU/Memory resource requests/limits | `nil` | -| `mancenter.persistence.enabled` | Enable Persistent Volume for Hazelcast Management | `true` | -| `mancenter.persistence.existingClaim` | Name of the existing Persistence Volume Claim, if not defined, a new is created | `nil` | -| `mancenter.persistence.accessModes` | Access Modes of the new Persistent Volume Claim | `ReadWriteOnce` | -| `mancenter.persistence.size` | Size of the new Persistent Volume Claim | `8Gi` | -| `mancenter.service.type` | Kubernetes service type ('ClusterIP', 'LoadBalancer', or 'NodePort') | `LoadBalancer` | -| `mancenter.service.port` | Kubernetes service port | `5701` | -| `mancenter.livenessProbe.enabled` | Turn on and off liveness probe | `true` | -| `mancenter.livenessProbe.initialDelaySeconds` | Delay before liveness probe is initiated | `30` | -| `mancenter.livenessProbe.periodSeconds` | How often to perform the probe | `10` | -| `mancenter.livenessProbe.timeoutSeconds` | When the probe times out | `5` | -| `mancenter.livenessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed | `1` | -| `mancenter.livenessProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded. | `3` | -| `mancenter.readinessProbe.enabled` | Turn on and off readiness probe | `true` | -| `mancenter.readinessProbe.initialDelaySeconds` | Delay before readiness probe is initiated | `30` | -| `mancenter.readinessProbe.periodSeconds` | How often to perform the probe | `10` | -| `mancenter.readinessProbe.timeoutSeconds` | When the probe times out | `1` | -| `mancenter.readinessProbe.successThreshold`| Minimum consecutive successes for the probe to be considered successful after having failed | `1` | -| `mancenter.readinessProbe.failureThreshold`| Minimum consecutive failures for the probe to be considered failed after having succeeded. | `3` | -| `mancenter.ingress.enabled` | Enable ingress for the management center | `false` | -| `mancenter.ingress.annotations` | Any annotations for the ingress | `{}` | -| `mancenter.ingress.hosts` | List of hostnames for ingress, see `values.yaml` for example | `[]` | -| `mancenter.ingress.tls` | List of TLS configuration for ingress, see `values.yaml` for example | `[]` | - -Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, - -```bash -$ helm install --name my-release \ - --set cluster.memberCount=3,hazelcast.rest=false \ - stable/hazelcast -``` - -The above command sets number of Hazelcast members to 3 and disables REST endpoints. - -Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example, - -```bash -$ helm install --name my-release -f values.yaml stable/hazelcast -``` - -> **Tip**: You can use the default [values.yaml](values.yaml) - -## Custom Hazelcast configuration - -Custom Hazelcast configuration can be specified inside `values.yaml`, as the `hazelcast.yaml` property. - -```yaml -hazelcast: - yaml: - hazelcast: - network: - join: - multicast: - enabled: false - kubernetes: - enabled: true - service-name: ${serviceName} - namespace: ${namespace} - resolve-not-ready-addresses: true - -``` diff --git a/stable/hazelcast/templates/_helpers.tpl b/stable/hazelcast/templates/_helpers.tpl index e83e7bbef0..18a98770d6 100644 --- a/stable/hazelcast/templates/_helpers.tpl +++ b/stable/hazelcast/templates/_helpers.tpl @@ -42,6 +42,17 @@ Create the name of the service account to use {{- end -}} {{- end -}} +{{/* +Create the name of the service to use +*/}} +{{- define "hazelcast.serviceName" -}} +{{- if .Values.service.create -}} + {{ template "hazelcast.fullname" .}} +{{- else -}} + {{ default "default" .Values.service.name }} +{{- end -}} +{{- end -}} + {{/* Create a default fully qualified Management Center app name. We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). diff --git a/stable/hazelcast/templates/mancenter-ingress.yaml b/stable/hazelcast/templates/mancenter-ingress.yaml index b40424a4f2..7c3d4a3470 100644 --- a/stable/hazelcast/templates/mancenter-ingress.yaml +++ b/stable/hazelcast/templates/mancenter-ingress.yaml @@ -32,13 +32,13 @@ spec: paths: - backend: serviceName: {{ $serviceName }} - servicePort: mancenterport + servicePort: http {{- end }} {{- else }} - http: paths: - backend: serviceName: {{ $serviceName }} - servicePort: mancenterport + servicePort: http {{- end }} {{- end }} diff --git a/stable/hazelcast/templates/mancenter-service.yaml b/stable/hazelcast/templates/mancenter-service.yaml index 4ffe25e661..b3f8d539f3 100644 --- a/stable/hazelcast/templates/mancenter-service.yaml +++ b/stable/hazelcast/templates/mancenter-service.yaml @@ -2,6 +2,10 @@ apiVersion: v1 kind: Service metadata: +{{- if .Values.mancenter.service.annotations }} + annotations: +{{ toYaml .Values.mancenter.service.annotations | indent 4 }} +{{- end }} name: {{ template "mancenter.fullname" . }} labels: app.kubernetes.io/name: {{ template "hazelcast.name" . }} @@ -21,5 +25,9 @@ spec: - protocol: TCP port: {{ .Values.mancenter.service.port }} targetPort: mancenter - name: mancenterport + name: http + - protocol: TCP + port: {{ .Values.mancenter.service.httpsPort }} + targetPort: mancenter + name: https {{- end }} \ No newline at end of file diff --git a/stable/hazelcast/templates/service.yaml b/stable/hazelcast/templates/service.yaml index 363ed65e34..62ff86a786 100644 --- a/stable/hazelcast/templates/service.yaml +++ b/stable/hazelcast/templates/service.yaml @@ -1,7 +1,8 @@ +{{- if .Values.service.create }} apiVersion: v1 kind: Service metadata: - name: {{ template "hazelcast.fullname" . }} + name: {{ template "hazelcast.serviceName" . }} labels: app.kubernetes.io/name: {{ template "hazelcast.name" . }} helm.sh/chart: {{ template "hazelcast.chart" . }} @@ -21,3 +22,4 @@ spec: port: {{ .Values.service.port }} targetPort: hazelcast name: hzport +{{- end -}} diff --git a/stable/hazelcast/templates/statefulset.yaml b/stable/hazelcast/templates/statefulset.yaml index 098c2a6b6b..4f52763858 100644 --- a/stable/hazelcast/templates/statefulset.yaml +++ b/stable/hazelcast/templates/statefulset.yaml @@ -101,7 +101,7 @@ spec: value: "{{ .Values.metrics.service.port }}" {{- end }} - name: JAVA_OPTS - value: "-Dhazelcast.rest.enabled={{ .Values.hazelcast.rest }} -Dhazelcast.config=/data/hazelcast/hazelcast.yaml -DserviceName={{ template "hazelcast.fullname" . }} -Dnamespace={{ .Release.Namespace }} -Dhazelcast.mancenter.enabled={{ .Values.mancenter.enabled }} -Dhazelcast.mancenter.url=http://{{ template "mancenter.fullname" . }}:{{ .Values.mancenter.service.port }}/hazelcast-mancenter {{ if .Values.gracefulShutdown.enabled }}-Dhazelcast.shutdownhook.policy=GRACEFUL -Dhazelcast.shutdownhook.enabled=true -Dhazelcast.graceful.shutdown.max.wait={{ .Values.gracefulShutdown.maxWaitSeconds }} {{ end }} {{ if .Values.metrics.enabled }}-Dhazelcast.jmx=true{{ end }} {{ .Values.hazelcast.javaOpts }}" + value: "-Dhazelcast.rest.enabled={{ .Values.hazelcast.rest }} -Dhazelcast.config=/data/hazelcast/hazelcast.yaml -DserviceName={{ template "hazelcast.serviceName" . }} -Dnamespace={{ .Release.Namespace }} -Dhazelcast.mancenter.enabled={{ .Values.mancenter.enabled }} -Dhazelcast.mancenter.url=http://{{ template "mancenter.fullname" . }}:{{ .Values.mancenter.service.port }}/hazelcast-mancenter {{ if .Values.gracefulShutdown.enabled }}-Dhazelcast.shutdownhook.policy=GRACEFUL -Dhazelcast.shutdownhook.enabled=true -Dhazelcast.graceful.shutdown.max.wait={{ .Values.gracefulShutdown.maxWaitSeconds }} {{ end }} {{ if .Values.metrics.enabled }}-Dhazelcast.jmx=true{{ end }} {{ .Values.hazelcast.javaOpts }}" {{- if .Values.securityContext.enabled }} securityContext: runAsNonRoot: true diff --git a/stable/hazelcast/templates/tests/test-hazelcast.yaml b/stable/hazelcast/templates/tests/test-hazelcast.yaml index c45f472eaa..cd1668a754 100644 --- a/stable/hazelcast/templates/tests/test-hazelcast.yaml +++ b/stable/hazelcast/templates/tests/test-hazelcast.yaml @@ -19,6 +19,10 @@ spec: securityContext: runAsNonRoot: true runAsUser: 1001 + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 4 }} + {{- end }} containers: - name: "{{ template "hazelcast.fullname" . }}-test" image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" diff --git a/stable/hazelcast/templates/tests/test-management-center.yaml b/stable/hazelcast/templates/tests/test-management-center.yaml index 9d1c1d5389..5973301d5c 100644 --- a/stable/hazelcast/templates/tests/test-management-center.yaml +++ b/stable/hazelcast/templates/tests/test-management-center.yaml @@ -19,6 +19,10 @@ spec: securityContext: runAsNonRoot: true runAsUser: 1001 + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 4 }} + {{- end }} containers: - name: "{{ template "mancenter.fullname" . }}-test" image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" diff --git a/stable/hazelcast/values.yaml b/stable/hazelcast/values.yaml index bea4ab54fc..4edd5f6c6c 100644 --- a/stable/hazelcast/values.yaml +++ b/stable/hazelcast/values.yaml @@ -5,7 +5,7 @@ image: # repository is the Hazelcast image name repository: "hazelcast/hazelcast" # tag is the Hazelcast image tag - tag: "3.12.2" + tag: "3.12.3" # pullPolicy is the Docker image pull policy # It's recommended to change this to 'Always' if the image tag is 'latest' # ref: http://kubernetes.io/docs/user-guide/images/#updating-images @@ -120,6 +120,12 @@ readinessProbe: # Hazelcast Service properties service: + # Specifies whether a Service should be created + create: true + # The name of the Service to use. + # The name is used for service discovery by Hazelcast K8S discovery plugin. + # If not set and create is true, a name is generated using the fullname template + # name: # type defines the Kubernetes service type ('ClusterIP', 'LoadBalancer', or 'NodePort') type: ClusterIP # port is the Kubernetes service port @@ -175,7 +181,7 @@ mancenter: # repository is the Hazelcast Management Center image name repository: "hazelcast/management-center" # tag is the Hazelcast Management Center image tag - tag: "3.12.3" + tag: "3.12.6" # pullPolicy is the Docker image pull policy # It's recommended to change this to 'Always' if the image tag is 'latest' # ref: http://kubernetes.io/docs/user-guide/images/#updating-images @@ -241,6 +247,10 @@ mancenter: type: LoadBalancer # port is the Kubernetes service port port: 8080 + # service https port + httpsPort: 443 + # service annotations for management center + annotations: {} # Hazelcast Management Center Liveness probe livenessProbe: