diff --git a/stable/hazelcast-jet/.helmignore b/stable/hazelcast-jet/.helmignore new file mode 100644 index 0000000000..06e1663c4d --- /dev/null +++ b/stable/hazelcast-jet/.helmignore @@ -0,0 +1,22 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj + diff --git a/stable/hazelcast-jet/Chart.yaml b/stable/hazelcast-jet/Chart.yaml new file mode 100644 index 0000000000..f7c5df6ed5 --- /dev/null +++ b/stable/hazelcast-jet/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v1 +appVersion: "0.7" +description: Hazelcast Jet is an application embeddable, distributed computing engine built on top of Hazelcast In-Memory Data Grid (IMDG). With Hazelcast IMDG providing storage functionality, Hazelcast Jet performs parallel execution to enable data-intensive applications to operate in near real-time. +name: hazelcast-jet +version: 1.0.0 +keywords: +- hazelcast +- jet +- streaming +home: http://jet.hazelcast.org/ +icon: http://hazelcast.com/images/logos/Hazelcast-Jet-Logo-Blue_Light_Icon_200px.png +sources: +- https://github.com/hazelcast/hazelcast-jet +maintainers: +- name: emin + email: emin@hazelcast.com +- name: leszko + email: rafal@hazelcast.com +- name: googlielmo + email: guglielmo@hazelcast.com +- name: mesutcelik + email: mesut@hazelcast.com +engine: gotpl diff --git a/stable/hazelcast-jet/OWNERS b/stable/hazelcast-jet/OWNERS new file mode 100644 index 0000000000..0407af7318 --- /dev/null +++ b/stable/hazelcast-jet/OWNERS @@ -0,0 +1,10 @@ +approvers: +- eminn +- leszko +- mesutcelik +- googlielmo +reviewers: +- eminn +- leszko +- mesutcelik +- googlielmo diff --git a/stable/hazelcast-jet/README.md b/stable/hazelcast-jet/README.md new file mode 100644 index 0000000000..c86788f8e1 --- /dev/null +++ b/stable/hazelcast-jet/README.md @@ -0,0 +1,171 @@ +# Hazelcast Jet + +[Hazelcast Jet](http://jet.hazelcast.org) is a distributed computing +platform built for high-performance stream processing and fast batch +processing. It embeds Hazelcast In-Memory Data Grid (IMDG) to provide +a lightweight, simple-to-deploy package that includes scalable +in-memory storage. + +Visit [jet.hazelcast.org](http://jet.hazelcast.org) to learn more +about the architecture and use cases. + +## Quick Start + +```bash +$ helm install hazelcast/hazelcast-jet +``` + +## Introduction + +This chart bootstraps a [Hazelcast Jet](https://github.com/hazelcast/hazelcast-jet-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 hazelcast/hazelcast-jet +``` + +The command deploys Hazelcast Jet 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 Jet Image name | `hazelcast/hazelcast-jet` | +| `image.tag` | Hazelcast Jet 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 Jet members | 2 | +| `jet.rest` | Enable REST endpoints for Hazelcast Jet member | `true` | +| `jet.javaOpts` | Additional JAVA_OPTS properties for Hazelcast Jet member | `nil` | +| `jet.configurationFiles` | Hazelcast configuration files | `{DEFAULT_HAZELCAST_XML}` | +| `nodeSelector` | Hazelcast Node labels for pod assignment | `nil` | +| `gracefulShutdown.enabled` | Turn on and off Graceful Shutdown | `true` | +| `gracefulShutdown.maxWaitSeconds` | Maximum time to wait for the Hazelcast Jet 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` | CPU/Memory resource requests/limits | `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` | + +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,serviceAccount.create=false \ + stable/hazelcast-jet +``` + +The above command sets number of Hazelcast Jet 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 hazelcast/hazelcast-jet +``` + +> **Tip**: You can use the default [values.yaml](values.yaml) + +## Custom Hazelcast IMDG and Jet configuration + +Custom Hazelcast IMDG and Hazelcast Jet configuration can be specified inside `values.yaml`, as the `jet.configurationFiles.hazelcast.xml` and `jet.configurationFiles.hazelcast-jet.xml` properties. + +```yaml +jet: + configurationFiles: + hazelcast.xml: |- + + + + + true + + + + + + + + + ${serviceName} + ${namespace} + + + + + + + + hazelcast-jet.xml: |- + + + + + 8 + + 100 + + 1 + + + + custom property + + + + 1024 + + 16384 + + 3 + + + + + 120 + + 5 + + false + + +``` diff --git a/stable/hazelcast-jet/templates/NOTES.txt b/stable/hazelcast-jet/templates/NOTES.txt new file mode 100644 index 0000000000..41ff67a54e --- /dev/null +++ b/stable/hazelcast-jet/templates/NOTES.txt @@ -0,0 +1,61 @@ +** Hazelcast Jet cluster is being deployed! ** + +------------------------------------------------------------------------------- +To access Hazelcast Jet within the Kubernetes cluster: + +- Use Hazelcast Client with Kubernetes Discovery Strategy pointing to DNS: {{ template "hazelcast-jet.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local. Read more at: https://github.com/hazelcast/hazelcast-kubernetes. + +{{- if .Values.jet.rest }} +- Use REST healtcheck endpoint: + $ curl http://{{ template "hazelcast-jet.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local:5701/hazelcast/health +{{- end }} + +------------------------------------------------------------------------------- + +To access Hazelcast from outside the Kubernetes cluster: + +- Use Hazelcast Client with Smart Routing disabled: +{{- if contains "LoadBalancer" .Values.service.type }} + *) Check service external IP: + $ export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "hazelcast-jet.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + *) In Hazelcast Client configuration: + clientConfig.getNetworkConfig().setSmartRouting(false); + clientConfig.getNetworkConfig().addAddress("$SERVICE_IP:{{ .Values.service.port }}"); +{{- else if contains "ClusterIP" .Values.service.type }} + *) Forward port from POD: + $ export POD=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "hazelcast-jet.name" . }}" -o jsonpath="{.items[0].metadata.name}") + $ kubectl port-forward --namespace {{ .Release.Namespace }} $POD 5701:5701 + *) In Hazelcast Client configure: + clientConfig.getNetworkConfig().setSmartRouting(false); + clientConfig.getNetworkConfig().addAddress("127.0.0.1:5701"); +{{- else if contains "NodePort" .Values.service.type }} + *) Check Node IP and Port: + $ export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + $ export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "hazelcast-jet.fullname" . }}) + *) In Hazelcast Client configure: + clientConfig.getNetworkConfig().setSmartRouting(false); + clientConfig.getNetworkConfig().addAddress("$NODE_IP:$NODE_PORT"); +{{- end }} + +{{- if .Values.jet.rest }} + +- Use REST healtcheck endpoint: +{{- if contains "LoadBalancer" .Values.service.type }} + *) Check service external IP: + $ export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "hazelcast-jet.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') + *) Get health info: + $ curl http://$SERVICE_IP:{{ .Values.service.port }}/hazelcast/health +{{- else if contains "ClusterIP" .Values.service.type }} + *) Forward port from POD: + $ export POD=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app={{ template "hazelcast-jet.name" . }}" -o jsonpath="{.items[0].metadata.name}") + $ kubectl port-forward --namespace {{ .Release.Namespace }} $POD 5701:5701 + *) Get health info: + $ curl http://127.0.0.1:5701/hazelcast/health +{{- else if contains "NodePort" .Values.service.type }} + *) Check Node IP and Port: + $ export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + $ export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "hazelcast-jet.fullname" . }}) + *) Get health info: + $ curl http://$NODE_IP:$NODE_PORT/hazelcast/health +{{- end }} +{{- end }} \ No newline at end of file diff --git a/stable/hazelcast-jet/templates/_helpers.tpl b/stable/hazelcast-jet/templates/_helpers.tpl new file mode 100644 index 0000000000..54acdd2115 --- /dev/null +++ b/stable/hazelcast-jet/templates/_helpers.tpl @@ -0,0 +1,43 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "hazelcast-jet.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "hazelcast-jet.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "hazelcast-jet.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Create the name of the service account to use +*/}} +{{- define "hazelcast-jet.serviceAccountName" -}} +{{- if .Values.serviceAccount.create -}} + {{ default (include "hazelcast-jet.fullname" .) .Values.serviceAccount.name }} +{{- else -}} + {{ default "default" .Values.serviceAccount.name }} +{{- end -}} +{{- end -}} diff --git a/stable/hazelcast-jet/templates/config.yaml b/stable/hazelcast-jet/templates/config.yaml new file mode 100644 index 0000000000..d44e8abd76 --- /dev/null +++ b/stable/hazelcast-jet/templates/config.yaml @@ -0,0 +1,16 @@ +{{- if .Values.jet.configurationFiles }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ template "hazelcast-jet.fullname" . }}-configuration + labels: + app: {{ template "hazelcast-jet.name" . }} + chart: {{ template "hazelcast-jet.chart" . }} + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +data: +{{- range $key, $val := .Values.jet.configurationFiles }} + {{ $key }}: |- +{{ $val | indent 4}} +{{- end }} +{{- end -}} diff --git a/stable/hazelcast-jet/templates/role.yaml b/stable/hazelcast-jet/templates/role.yaml new file mode 100644 index 0000000000..ab7ea83895 --- /dev/null +++ b/stable/hazelcast-jet/templates/role.yaml @@ -0,0 +1,19 @@ +{{- if .Values.rbac.create -}} +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: {{ template "hazelcast-jet.fullname" . }} + labels: + app: {{ template "hazelcast-jet.name" . }} + chart: {{ template "hazelcast-jet.chart" . }} + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +rules: +- apiGroups: + - "" + resources: + - endpoints + verbs: + - get + - list +{{- end -}} diff --git a/stable/hazelcast-jet/templates/rolebinding.yaml b/stable/hazelcast-jet/templates/rolebinding.yaml new file mode 100644 index 0000000000..0d9eafcbdb --- /dev/null +++ b/stable/hazelcast-jet/templates/rolebinding.yaml @@ -0,0 +1,19 @@ +{{- if .Values.rbac.create -}} +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: {{ template "hazelcast-jet.fullname" . }} + labels: + app: {{ template "hazelcast-jet.name" . }} + chart: {{ template "hazelcast-jet.chart" . }} + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: {{ template "hazelcast-jet.fullname" . }} +subjects: +- kind: ServiceAccount + name: {{ template "hazelcast-jet.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} +{{ end }} diff --git a/stable/hazelcast-jet/templates/service.yaml b/stable/hazelcast-jet/templates/service.yaml new file mode 100644 index 0000000000..807c91430d --- /dev/null +++ b/stable/hazelcast-jet/templates/service.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ template "hazelcast-jet.fullname" . }} + labels: + app: {{ template "hazelcast-jet.name" . }} + chart: {{ template "hazelcast-jet.chart" . }} + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +spec: + type: {{ .Values.service.type }} + {{- if .Values.service.clusterIP }} + clusterIP: {{ .Values.service.clusterIP }} + {{- end }} + selector: + app: {{ template "hazelcast-jet.name" . }} + release: "{{ .Release.Name }}" + ports: + - protocol: TCP + port: {{ .Values.service.port }} + targetPort: hazelcast-jet + name: hzport diff --git a/stable/hazelcast-jet/templates/serviceaccount.yaml b/stable/hazelcast-jet/templates/serviceaccount.yaml new file mode 100644 index 0000000000..8b131ac523 --- /dev/null +++ b/stable/hazelcast-jet/templates/serviceaccount.yaml @@ -0,0 +1,11 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ template "hazelcast-jet.serviceAccountName" . }} + labels: + app: {{ template "hazelcast-jet.name" . }} + chart: {{ template "hazelcast-jet.chart" . }} + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +{{- end -}} diff --git a/stable/hazelcast-jet/templates/statefulset.yaml b/stable/hazelcast-jet/templates/statefulset.yaml new file mode 100644 index 0000000000..dfc9aa4c3d --- /dev/null +++ b/stable/hazelcast-jet/templates/statefulset.yaml @@ -0,0 +1,76 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: {{ template "hazelcast-jet.fullname" . }} + labels: + app: {{ template "hazelcast-jet.name" . }} + chart: {{ template "hazelcast-jet.chart" . }} + release: "{{ .Release.Name }}" + heritage: "{{ .Release.Service }}" +spec: + replicas: {{ .Values.cluster.memberCount }} + selector: + matchLabels: + app: {{ template "hazelcast-jet.name" . }} + release: "{{ .Release.Name }}" + template: + metadata: + labels: + app: {{ template "hazelcast-jet.name" . }} + release: "{{ .Release.Name }}" + spec: + {{- if .Values.image.pullSecrets }} + imagePullSecrets: + {{- range .Values.image.pullSecrets }} + - name: {{ . }} + {{- end}} + {{- end}} + {{- if .Values.nodeSelector }} + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 8 }} + {{- end }} + {{- if .Values.gracefulShutdown.enabled }} + terminationGracePeriodSeconds: {{ .Values.gracefulShutdown.maxWaitSeconds }} + {{- end }} + containers: + - name: {{ template "hazelcast-jet.fullname" . }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy | quote }} + resources: +{{ toYaml .Values.resources | indent 10 }} + ports: + - name: hazelcast-jet + containerPort: 5701 + {{- if .Values.livenessProbe.enabled }} + livenessProbe: + httpGet: + path: /hazelcast/health/node-state + port: 5701 + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.livenessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + successThreshold: {{ .Values.livenessProbe.successThreshold }} + failureThreshold: {{ .Values.livenessProbe.failureThreshold }} + {{- end }} + {{- if .Values.readinessProbe.enabled }} + readinessProbe: + httpGet: + path: /hazelcast/health/node-state + port: 5701 + initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.readinessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }} + successThreshold: {{ .Values.readinessProbe.successThreshold }} + failureThreshold: {{ .Values.readinessProbe.failureThreshold }} + {{- end }} + volumeMounts: + - name: hazelcast-jet-storage + mountPath: /data/hazelcast-jet + env: + - name: JAVA_OPTS + value: "-Dhazelcast.rest.enabled={{ .Values.jet.rest }} -Dhazelcast.config=/data/hazelcast-jet/hazelcast.xml -Dhazelcast.jet.config=/data/hazelcast-jet/hazelcast-jet.xml -DserviceName={{ template "hazelcast-jet.fullname" . }} -Dnamespace={{ .Release.Namespace }} {{ if .Values.gracefulShutdown.enabled }}-Dhazelcast.shutdownhook.policy=GRACEFUL -Dhazelcast.shutdownhook.enabled=true -Dhazelcast.graceful.shutdown.max.wait={{ .Values.gracefulShutdown.maxWaitSeconds }} {{ end }} {{ .Values.jet.javaOpts }}" + serviceAccountName: {{ template "hazelcast-jet.serviceAccountName" . }} + volumes: + - name: hazelcast-jet-storage + configMap: + name: {{ template "hazelcast-jet.fullname" . }}-configuration diff --git a/stable/hazelcast-jet/values.yaml b/stable/hazelcast-jet/values.yaml new file mode 100644 index 0000000000..e021b4ff9d --- /dev/null +++ b/stable/hazelcast-jet/values.yaml @@ -0,0 +1,161 @@ +## Hazelcast Jet image version +## ref: https://hub.docker.com/r/hazelcast/hazelcast-jet/tags/ +## +image: + # repository is the Hazelcast Jet image name + repository: "hazelcast/hazelcast-jet" + # tag is the Hazelcast Jet image tag + tag: "0.7" + # 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 + # + pullPolicy: IfNotPresent + # pullSecrets is an array of docker-registry secret names + # Secrets must be manually created in the namespace. + # ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + # pullSecrets: + # - myRegistryKeySecretName + +# Cluster settings +cluster: + # memberCount is the number Hazelcast Jet members + memberCount: 2 + +# Hazelcast Jet properties +jet: + # rest is a flag used to enable REST endpoints for Hazelcast Jet member + rest: true + # javaOpts are additional JAVA_OPTS properties for Hazelcast Jet member + javaOpts: + # configurationFiles are Hazelcast Jet configuration files + configurationFiles: + hazelcast.xml: |- + + + + true + + + + + + + + + ${serviceName} + ${namespace} + + + + + + + hazelcast-jet.xml: |- + + + + + 8 + + 100 + + 1 + + + + custom property + + + + 1024 + + 16384 + + 3 + + + + + 120 + + 5 + + false + + + +# nodeSelector is an array of Hazelcast Node labels for POD assignments +# ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector +nodeSelector: {} + +gracefulShutdown: + enabled: true + maxWaitSeconds: 600 + +# Hazelcast Liveness probe +livenessProbe: + # enabled is a flag to used to enable liveness probe + enabled: true + # initialDelaySeconds is a delay before liveness probe is initiated + initialDelaySeconds: 30 + # periodSeconds decides how often to perform the probe + periodSeconds: 10 + # timeoutSeconds decides when the probe times out + timeoutSeconds: 5 + # successThreshold is the minimum consecutive successes for the probe to be considered successful after having failed + successThreshold: 1 + # failureThreshold is the minimum consecutive failures for the probe to be considered failed after having succeeded + failureThreshold: 3 + +# Hazelcast Readiness probe +readinessProbe: + # enabled is a flag to used to enable readiness probe + enabled: true + # initialDelaySeconds is a delay before readiness probe is initiated + initialDelaySeconds: 30 + # periodSeconds decides how often to perform the probe + periodSeconds: 10 + # timeoutSeconds decides when the probe times out + timeoutSeconds: 1 + # successThreshold is the minimum consecutive successes for the probe to be considered successful after having failed + successThreshold: 1 + # failureThreshold is the minimum consecutive failures for the probe to be considered failed after having succeeded + failureThreshold: 3 + +# Configure resource requests and limits +# ref: http://kubernetes.io/docs/user-guide/compute-resources/ +# +# resources: +# requests: +# memory: 256Mi +# cpu: 100m + +# Hazelcast Service properties +service: + # type defines the Kubernetes service type ('ClusterIP', 'LoadBalancer', or 'NodePort') + type: ClusterIP + # port is the Kubernetes service port + port: 5701 + # clusterIP set to None makes the service headless + # It is required if DNS Lookup is used (https://github.com/hazelcast/hazelcast-kubernetes#dns-lookup) + # clusterIP: "None" + +# Role-based Access Control +rbac: + # Specifies whether RBAC resources should be created + # It is not required if DNS Lookup is used (https://github.com/hazelcast/hazelcast-kubernetes#dns-lookup) + create: true + +serviceAccount: + # Specifies whether a ServiceAccount should be created + create: true + # The name of the ServiceAccount to use. + # If not set and create is true, a name is generated using the fullname template + name: