kubectl command-line tool installed on your local machine (see the [kubectl installation guide](https://kubernetes.io/docs/reference/kubectl/)).
- A fundamental understanding of Kubernetes concepts, such as deployments, pods, and applying manifests.
- Sufficient Kubernetes resources allocated based on your expected user load. Consult the [scaling for Enterprise](/deployment-guide/scale/scaling-for-enterprise#available-reference-architectures) documentation for resource requirements at different scales.
## Installation steps
The installation process involves setting up necessary operators and then deploying Mattermost itself.
### Step 1: Install the NGINX Ingress Controller
Follow the instructions in the [Kubernetes deployment documentation](https://kubernetes.github.io/ingress-nginx/deploy/) to install the NGINX ingress controller on your Kubernetes cluster. Mattermost recommends installing the Nginx Operator via helm, regardless of platform you are installing to.
### Step 2: Install the Mattermost Operator
The Mattermost Kubernetes Operator can be installed using Helm.
1. Install Helm (version 3.13.0 or later). See the [Helm quickstart documentation](https://helm.sh/docs/using_helm/) for installation instructions.
2. Add the Mattermost Helm repository:
``` sh
helm repo add mattermost https://helm.mattermost.com
```
3. Create a file named `config.yaml` and populate it with the contents of the [Mattermost operator values file](https://github.com/mattermost/mattermost-helm/blob/master/charts/mattermost-operator/values.yaml). This file allows for customization of the operator.
4. Create a namespace for the Mattermost Operator:
``` sh
kubectl create ns mattermost-operator
```
5. Install the Mattermost Operator. If you don't specify a version, the latest version of the Mattermost Operator will be installed. We recommend using the latest version of the Mattermost Operator.
``` sh
helm install | Key | Description | Required |
|---|---|---|
| accesskey | Base64-encoded access key for your storage service. | Yes |
| secretkey | Base64-encoded secret key for your storage service. | Yes |
| metadata.name | The name of the Kubernetes secret. | Yes |