mirror of
https://github.com/helm/charts.git
synced 2026-08-23 22:37:45 +00:00
:repo: helm/charts
== Hazelcast Jet
http://jet.hazelcast.org[Hazelcast Jet] 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 http://jet.hazelcast.org[jet.hazelcast.org] to learn more about the
architecture and use cases.
=== Quick Start
ifeval::["{repo}"=="hazelcast/charts"]
[source,bash]
----
$ helm repo add hazelcast https://hazelcast.github.io/charts/
$ helm repo update
$ helm install hazelcast/hazelcast-jet
----
endif::[]
ifeval::["{repo}"=="helm/charts"]
[source,bash]
----
$ helm install stable/hazelcast-jet
----
endif::[]
=== Introduction
This chart bootstraps a
https://github.com/hazelcast/hazelcast-jet-docker[Hazelcast Jet] and
https://github.com/hazelcast/hazelcast-jet-management-center-docker[Hazelcast
Jet 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-jet
----
endif::[]
ifeval::["{repo}"=="helm/charts"]
[source,bash]
----
$ helm install --name my-release stable/hazelcast-jet
----
endif::[]
The command deploys Hazelcast Jet 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 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.javaOpts+` |Additional JAVA_OPTS properties for Hazelcast Jet member
|`+nil+`
|`jet.loggingLevel` |Level of Hazelcast Jet logs (SEVERE, WARNING,
INFO, CONFIG, FINE, FINER, and FINEST); note that changing this value
requires setting `securityContext.runAsUser` to `0` |`nil`
|`+jet.yaml.hazelcast-jet+` and `+jet.yaml.hazelcast+` |Hazelcast Jet and IMDG
YAML configurations (`+hazelcast-jet.yaml+` and `+hazelcast.yaml+` embedded into
`+values.yaml+`) |`+{DEFAULT_JET_YAML}+` and `+{DEFAULT_HAZELCAST_YAML}+`
|`+jet.configurationFiles+` |Hazelcast configuration files |`+nil+`
|`+hostPort+` |Port under which Hazelcast Jet PODs are exposed on the host
machines |`+nil+`
|`+affinity+` |Hazelcast Node affinity |`+nil+`
|`+tolerations+` |Hazelcast Node tolerations |`+nil+`
|`+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+`
|`livenessProbe.path` |URL path that will be called to check liveness. |
`/hazelcast/health/node-state`
|`livenessProbe.port` |Port that will be used in liveness probe calls. |`nil`
|`livenessProbe.scheme` |HTTPS or HTTP scheme. |`HTTP`
|`+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+`
|`readinessProbe.path` |URL path that will be called to check readiness. |
`/hazelcast/health/ready`
|`readinessProbe.port` |Port that will be used in readiness probe calls. |`nil`
|`readinessProbe.scheme` |HTTPS or HTTP scheme. |`HTTP`
|`+resources+` |CPU/Memory resource requests/limits |`+nil+`
|`+service.type+` |Kubernetes service type (`ClusterIP', `LoadBalancer', or
`NodePort') |`+ClusterIP+`
|`+service.port+` |Kubernetes service port |`+5701+`
|`+service.clusterIP+` |IP of the service, "None" makes the service
headless |`+None+`
|`+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 Jet and
Hazelcast Jet Management Center |`+true+`
|`+securityContext.runAsUser+` |User ID used to run the Hazelcast Jet and
Hazelcast Jet Management Center containers |`+65534+`
|`securityContext.runAsGroup` |Primary Group ID used to run all processes in the
Hazelcast Jet and Hazelcast Jet Management Center containers | `+65534+`
|`+securityContext.fsGroup+` |Group ID associated with the Hazelcast Jet and
Hazelcast Jet Management Center container |`+65534+`
|`+securityContext.readOnlyRootFilesystem+` |Enables readOnlyRootFilesystem in
the Hazelcast Jet and Hazelcast Jet Management Center security containers |`+true+`
|`+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 |
|`+managementcenter.enabled+` |Turn on and off Hazelcast Jet Management Center
application |`+true+`
|`+managementcenter.image.repository+` |Hazelcast Jet Management Center Image
name |`+hazelcast/hazelcast-jet-management-center+`
|`+managementcenter.image.tag+` |Hazelcast Jet Management Center Image tag
(NOTE: must be the same or one minor release greater than Hazelcast image
version) |`+{VERSION}+`
|`+managementcenter.image.pullPolicy+` |Image pull policy |`+IfNotPresent+`
|`+managementcenter.image.pullSecrets+` |Specify docker-registry secret names as
an array |`+nil+`
|`+managementcenter.javaOpts+` |Additional JAVA_OPTS properties for Hazelcast
Jet Management Center |`+nil+`
|`+managementcenter.licenseKey+` |License Key for Hazelcast Jet Management
Center |`+nil+`
|`+managementcenter.licenseKeySecretName+` |Kubernetes Secret Name, where Jet
Management Center License Key is stored (can be used instead of licenseKey)
|`+nil+`
|`+managementcenter.affinity+` |Hazelcast Jet Management Center node affinity
|`+nil+`
|`+managementcenter.tolerations+` |Hazelcast Jet Management Center node
tolerations |`+nil+`
|`+managementcenter.nodeSelector+` |Hazelcast Jet Management Center node labels
for pod assignment |`+nil+`
|`+managementcenter.resources+` |CPU/Memory resource requests/limits |`+nil+`
|`+managementcenter.service.type+` |Kubernetes service type (`ClusterIP',
`LoadBalancer', or `NodePort') |`+ClusterIP+`
|`+managementcenter.service.port+` |Kubernetes service port |`+8081+`
|`+managementcenter.livenessProbe.enabled+` |Turn on and off liveness probe
|`+true+`
|`+managementcenter.livenessProbe.initialDelaySeconds+` |Delay before liveness
probe is initiated |`+30+`
|`+managementcenter.livenessProbe.periodSeconds+` |How often to perform the
probe |`+10+`
|`+managementcenter.livenessProbe.timeoutSeconds+` |When the probe times out
|`+5+`
|`+managementcenter.livenessProbe.successThreshold+` |Minimum consecutive
successes for the probe to be considered successful after having failed |`+1+`
|`+managementcenter.livenessProbe.failureThreshold+` |Minimum consecutive
failures for the probe to be considered failed after having succeeded. |`+3+`
|`+managementcenter.readinessProbe.enabled+` |Turn on and off readiness probe
|`+true+`
|`+managementcenter.readinessProbe.initialDelaySeconds+` |Delay before readiness
probe is initiated |`+30+`
|`+managementcenter.readinessProbe.periodSeconds+` |How often to perform the
probe |`+10+`
|`+managementcenter.readinessProbe.timeoutSeconds+` |When the probe times out
|`+1+`
|`+managementcenter.readinessProbe.successThreshold+` |Minimum consecutive
successes for the probe to be considered successful after having failed |`+1+`
|`+managementcenter.readinessProbe.failureThreshold+` |Minimum consecutive
failures for the probe to be considered failed after having succeeded. |`+3+`
|===
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,serviceAccount.create=false \
hazelcast/hazelcast-jet
----
endif::[]
ifeval::["{repo}"=="helm/charts"]
[source,bash]
----
$ helm install --name my-release \
--set cluster.memberCount=3,serviceAccount.create=false \
stable/hazelcast-jet
----
endif::[]
The above command sets number of Hazelcast Jet members to 3.
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-jet
----
endif::[]
ifeval::["{repo}"=="helm/charts"]
[source,bash]
----
$ helm install --name my-release -f values.yaml stable/hazelcast-jet
----
endif::[]
____
*Tip*: You can use the default values.yaml
____
=== Custom Hazelcast IMDG and Jet configuration
Custom Hazelcast IMDG and Hazelcast Jet configuration can be specified inside
`+values.yaml+`, as the `+jet.yaml.hazelcast+` and `+jet.yaml.hazelcast-jet+`
properties.
[source,yaml]
----
jet:
yaml:
hazelcast:
network:
join:
multicast:
enabled: false
kubernetes:
enabled: true
service-name: ${serviceName}
namespace: ${namespace}
resolve-not-ready-addresses: true
management-center:
enabled: ${hazelcast.mancenter.enabled}
url: ${hazelcast.mancenter.url}
hazelcast-jet:
instance:
flow-control-period: 100
backup-count: 1
scale-up-delay-millis: 10000
lossless-restart-enabled: false
edge-defaults:
queue-size: 1024
packet-size-limit: 16384
receive-window-multiplier: 3
metrics:
enabled: true
jmx-enabled: true
retention-seconds: 120
collection-interval-seconds: 5
metrics-for-data-structures: false
----
Alternatively, above parameters can be modified directly via `+helm+` commands.
For example,
ifeval::["{repo}"=="hazelcast/charts"]
[source,bash]
----
$ helm install --name my-jet-release \
--set jet.yaml.hazelcast-jet.instance.backup-count=2,jet.yaml.hazelcast.network.kubernetes.service-name=jet-service \
hazelcast/hazelcast-jet
----
endif::[]
ifeval::["{repo}"=="helm/charts"]
[source,bash]
----
$ helm install --name my-jet-release \
--set jet.yaml.hazelcast-jet.instance.backup-count=2,jet.yaml.hazelcast.network.kubernetes.service-name=jet-service \
stable/hazelcast-jet
----
endif::[]
== Notable changes
=== 1.4.0
Hazelcast REST Endpoints are no longer enabled by default and the
parameter `jet.rest` is no longer available. If you want to enable
REST, please add the related `endpoint-groups` to the Hazelcast
Configuration (`jet.yaml.hazelcast`). For example:
[source,yaml]
----
rest-api:
enabled: true
endpoint-groups:
HEALTH_CHECK:
enabled: true
CLUSTER_READ:
enabled: true
CLUSTER_WRITE:
enabled: true
----