As of Nov 13, 2020, charts in this repo will no longer be updated. For more information, see the Helm Charts Deprecation and Archive Notice, and Update.
Rocket.Chat is free, unlimited and open source. Replace email, HipChat & Slack with the ultimate team chat software solution.
WARNING: Upgrading to chart version 1.1.x or higher (Rocket.Chat 1.0+) might require extra steps to retain the MongoDB data. See Upgrading to 1.1.0 for more details.
This chart is deprecated and no longer supported.
$ helm install stable/rocketchat --set mongodb.mongodbPassword=$(echo -n $(openssl rand -base64 32)),mongodb.mongodbRootPassword=$(echo -n $(openssl rand -base64 32))This chart bootstraps a Rocket.Chat Deployment on a Kubernetes cluster using the Helm package manager. It provisions a fully featured Rocket.Chat installation.
In addition, this chart supports scaling of Rocket.Chat for increased server capacity and high availability. For more information on Rocket.Chat and its capabilities, see its documentation.
The chart has an optional dependency on the MongoDB chart. By default, the MongoDB chart requires PV support on underlying infrastructure (may be disabled).
To install the chart with the release name rocketchat:
$ helm install --name rocketchat stable/rocketchatTo uninstall/delete the rocketchat deployment:
$ helm delete rocketchatThe following table lists the configurable parameters of the Rocket.Chat chart and their default values.
| Parameter | Description | Default |
|---|---|---|
image.repository |
Image repository | docker.io/rocketchat/rocket.chat |
image.tag |
Image tag | 3.2.2 |
image.pullPolicy |
Image pull policy | IfNotPresent |
host |
Hostname for Rocket.Chat. Also used for ingress (if enabled) | "" |
replicaCount |
Number of replicas to run | 1 |
smtp.enabled |
Enable SMTP for sending mails | false |
smtp.username |
Username of the SMTP account | "" |
smtp.password |
Password of the SMTP account | "" |
smtp.host |
Hostname of the SMTP server | "" |
smtp.port |
Port of the SMTP server | 587 |
extraEnv |
Extra environment variables for Rocket.Chat. Used with tpl function, so this needs to be a string |
"" |
podAntiAffinity |
Pod anti-affinity can prevent the scheduler from placing RocketChat replicas on the same node. The default value "soft" means that the scheduler should prefer to not schedule two replica pods onto the same node but no guarantee is provided. The value "hard" means that the scheduler is required to not schedule two replica pods onto the same node. The value "" will disable pod anti-affinity so that no anti-affinity rules will be configured. | "" |
podAntiAffinityTopologyKey |
If anti-affinity is enabled sets the topologyKey to use for anti-affinity. This can be changed to, for example failure-domain.beta.kubernetes.io/zone |
kubernetes.io/hostname |
affinity |
Assign custom affinity rules to the RocketChat instance https://kubernetes.io/docs/concepts/configuration/assign-pod-node/ | {} |
minAvailable |
Minimum number / percentage of pods that should remain scheduled | 1 |
externalMongodbUrl |
MongoDB URL if using an externally provisioned MongoDB | "" |
externalMongodbOplogUrl |
MongoDB OpLog URL if using an externally provisioned MongoDB. Required if externalMongodbUrl is set |
"" |
mongodb.enabled |
Enable or disable MongoDB dependency. Refer to the stable/mongodb docs for more information | true |
persistence.enabled |
Enable persistence using a PVC. This is not necessary if you're using the default (and recommended) GridFS file storage | false |
persistence.storageClass |
Storage class of the PVC to use | "" |
persistence.accessMode |
Access mode of the PVC | ReadWriteOnce |
persistence.size |
Size of the PVC | 8Gi |
persistence.existingClaim |
An Existing PVC name for rocketchat volume | "" |
resources |
Pod resource requests and limits | {} |
securityContext.enabled |
Enable security context for the pod | true |
securityContext.runAsUser |
User to run the pod as | 999 |
securityContext.fsGroup |
fs group to use for the pod | 999 |
serviceAccount.create |
Specifies whether a ServiceAccount should be created | true |
serviceAccount.name |
Name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | "" |
ingress.enabled |
If true, an ingress is created |
false |
ingress.annotations |
Annotations for the ingress | {} |
ingress.path |
Path of the ingress | / |
ingress.tls |
A list of IngressTLS items | [] |
livenessProbe.enabled |
Turn on and off liveness probe | true |
livenessProbe.initialDelaySeconds |
Delay before liveness probe is initiated | 60 |
livenessProbe.periodSeconds |
How often to perform the probe | 15 |
livenessProbe.timeoutSeconds |
When the probe times out | 5 |
livenessProbe.failureThreshold |
Minimum consecutive failures for the probe | 3 |
livenessProbe.successThreshold |
Minimum consecutive successes for the probe | 1 |
readinessProbe.enabled |
Turn on and off readiness probe | true |
readinessProbe.initialDelaySeconds |
Delay before readiness probe is initiated | 10 |
readinessProbe.periodSeconds |
How often to perform the probe | 15 |
readinessProbe.timeoutSeconds |
When the probe times out | 5 |
readinessProbe.failureThreshold |
Minimum consecutive failures for the probe | 3 |
readinessProbe.successThreshold |
Minimum consecutive successes for the probe | 1 |
service.annotations |
Annotations for the Rocket.Chat service | {} |
service.labels |
Additional labels for the Rocket.Chat service | {} |
service.type |
The service type to use | ClusterIP |
service.port |
The service port | 80 |
service.nodePort |
The node port used if the service is of type NodePort |
"" |
podLabels |
Additional pod labels for the Rocket.Chat pods | {} |
podAnnotations |
Additional pod annotations for the Rocket.Chat pods | {} |
Specify each parameter using the --set key=value[,key=value] argument to helm install.
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
$ helm install --name rocketchat -f values.yaml stable/rocketchatRocket.Chat uses a MongoDB instance to presist its data.
By default, the MongoDB chart is deployed and a single MongoDB instance is created as the primary in a replicaset.
Please refer to this chart for additional MongoDB configuration options.
If you are using chart defaults, make sure to set at least the mongodb.mongodbRootPassword, mongodb.mongodbUsername and mongodb.mongodbPassword values.
WARNING: The root credentials are used to connect to the MongoDB OpLog
This chart supports using an existing MongoDB instance. Use the `` configuration options and disable MongoDB with --set mongodb.enabled=false
extraEnv: |
- name: MONGO_OPTIONS
value: '{"ssl": "true"}'To increase the capacity of the server, you can scale up the number of Rocket.Chat server instances across available computing resources in your cluster, for example,
$ kubectl scale --replicas=3 deployment/rocketchatBy default, this chart creates one MongoDB instance as a Primary in a replicaset. This is the minimum requirement to run Rocket.Chat 1.x+. You can also scale up the capacity and availability of the MongoDB cluster independently. Please see the MongoDB chart for configuration information.
For information on running Rocket.Chat in scaled configurations, see the documentation for more details.
Rocket.Chat version 1.x requires a MongoDB ReplicaSet to be configured. When using the dependent stable/mongodb chart (mongodb.enabled=true), enabling ReplicaSet will drop the PVC and create new ones. Make sure to backup your current MongoDB and restore it after the upgrade.
Backwards compatibility is not guaranteed unless you modify the labels used on the chart's deployments. Use the workaround below to upgrade from versions previous to 1.0.0. The following example assumes that the release name is rocketchat:
$ kubectl delete deployment rocketchat-rocketchat --cascade=false