Deploy with Kubernetes
Deploy on a kubernetes cluster using our official helm chart.
Using the Helm package manager, the helm chart bootstraps a Rocket.Chat deployment on a Kubernetes cluster. It provisions a fully featured Rocket.Chat installation. Additionally, this chart supports the scaling of Rocket.Chat for increased server capacity and high availability.
Prerequisites Details
The chart has an optional dependency on the MongoDB chart. By default, the MongoDB chart requires PV support on underlying infrastructure which may be disabled.
Installing the Chart
Confirm that you have helm3 binary insalled, then add the chart repository with the following command:
To install the chart ,you can either define your configuration options in a values file or pass the configuration parameters via command line arguments.
Define the configurations in a file
We recommend defining the configuration parameters inside a Values.yaml
file with at least the non-root user's password and the root password before passing it to helm. You must set at least the database and root password in the values file.
Now, install with the following command:
Set the configurations parameters via command line arguments
Optionally, you can use the --set
flag to pass the configuration parameters to helm.
Starting from chart version 5.4.3, username, password, and database entries must be arrays of the same length due to MongoDB dependency. Rocket.Chat will use the first entries of those arrays for its own use.
mongodb.auth.usernames
array defaults to{rocketchat}
andmongodb.auth.databases
array defaults to{rocketchat}.
Uninstalling the Chart
To uninstall/delete the rocketchat
deployment:
Configuration
The following table lists the configurable parameters of the Rocket.Chat chart and their default values.
Specify each parameter using the --set key=value[,key=value]
argument to helm install
. Alternatively, you can update the YAML file that specifies the values for the parameters to be provided while installing the chart.
Database Setup
Rocket.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, set the mongodb.auth.rootPassword
and mongodb.auth.passwords
.
Using an External Database
This chart supports using an existing MongoDB instance. Use the configuration options and disable the chart's MongoDB with --set mongodb.enabled=false
Configuring Additional Environment Variables
Specifying aditional volumes
Sometimes, it's necessary to include extra sets of files by means of exposing them to the container as a mountpoint. The most common use case is the inclusion of SSL CA certificates.
To increase the server's capacity, you can increase the number of Rocket.Chat server instances across available computing resources in your cluster. For example,
By default, the chart creates one MongoDB instance as a Primary in a replicaset. You can also scale up the capacity and availability of the MongoDB cluster independently.
See MongoDB chart for configuration information. To learn more on running Rocket.Chat in scaled configurations, visit the Configure MongoDB Replicaset guide.
Manage MongoDB secrets
The chart provides several ways to manage the connection for MongoDB apart from the primary mongodb.auth
values. They include:
Values passed to the chart (externalMongodbUrl, externalMongodbOplogUrl)
An ExistingMongodbSecret containing the MongoURL and MongoOplogURL
Upgrading
To 5.4.3
Due to changes on the upstream MongoDB chart, some deprecated variables have been renamed, which changed how this chart generates its manifests. Here are the values that need updates:
mongodb.auth.username
is no longer supported and has been changed tomongodb.auth.usernames
array. If you set it to something custom (defaults torocketchat
), make sure you update it to an array, and the entry is the first entry in that array, as that's what Rocket.Chat will use to connect to the database.mongodb.auth.password
is no longer supported and has been changed tomongodb.auth.passwords
array. Update your values file to make it an array, and ensure it's the first entry of that array.mongodb.auth.database
is no longer supported and has been changed tomongodb.auth.databases
. Update your values file, convert it to an array, and ensure it's the first entry of that array.mongodb.auth.rootUsername
andmongodb.auth.rootPassword
remain the same.
usernames
,passwords
anddatabases
arrays must be of the same length. Rocket.Chat chart will use the first entry for its mongodb connection string inMONGO_URL
andMONGO_OPLOG_URL
.
The used image tag gets updated in most cases on each chart update. The same is true for the MongoDB chart we use as our dependency. Before version 5.4.3, we used the chart version 10.x.x. Starting from 5.4.3, the dependency chart version has been updated to the latest available version, 13.x.x. This chart defaults to MongoDB 6.0.x at the moment.
As a warning, this chart will not handle MongoDB upgrades and will depend on the user to ensure the supprted version is runnning.
The upgrade will fail if any of the following requirements are not met :
Must not skip a MongoDB release. For example, 4.2.x to 5.0.x will fail.
Current
featureCompatibilityVersion
must be compatible with the version the user is trying to upgrade to. For example—if the current database version and feature compatibility is 4.4 and 4.2, respectively, but the user is trying to upgrade to 5.0, it'll fail.
The chart will not check if the mongodb version is supported by the Rocket.Chat version considering deployments that might occur in an airgapped environment. You can check the release notes to confirm that.
To get the currently deployed MongoDB version, the easiest method is to get into the mongo shell and run db.version()
. You are advised to pin your MongoDB dependency in the values file.
To learn more about the Rocket.Chat helm chart, visit the Github repository.
References
Last updated