# Install Kloudfuse Using Helm

Kloudfuse install adheres to standard helm best practices.

After ensuring that the [prerequisites](https://docs.kloudfuse.com/platform/3.3.6/installation/#prerequisites) are complete, proceed with the following steps:

- [Login for Kloudfuse helm registry](https://docs.kloudfuse.com/platform/3.3.6/install/#helm-registry)
- [Create the `kfuse` namespace](https://docs.kloudfuse.com/platform/3.3.6/install/#namespace)
- [Create a secret for docker images](https://docs.kloudfuse.com/platform/3.3.6/install/#secret)
- [Create the `custom_values.yaml` file](https://docs.kloudfuse.com/platform/3.3.6/install/#yaml)
- [Install Kloudfuse](https://docs.kloudfuse.com/platform/3.3.6/install/#install)

## Login for Kloudfuse helm registry

Using the `token.json` you downloaded with your free trial request, run the following command:

```console
cat token.json | helm registry login -u _json_key --password-stdin https://us-east1-docker.pkg.dev
```

|     |     |
| --- | --- |
|    | In case of failure in this step, see [Registry login failure](https://docs.kloudfuse.com/platform/3.3.6/known-issues/#registry-login-failre). |

## Create the `kfuse` namespace

Create a new namespace `kfuse` to Install Kloudfuse.

```console
kubectl create ns kfuse
kubectl config set-context --current --namespace=kfuse
```

## Create a secret for docker images

Create a secret for helm to pull the required docker images:

```console
kubectl create secret docker-registry kfuse-image-pull-credentials \
        --namespace='kfuse' --docker-server 'us.gcr.io' --docker-username _json_key \
        --docker-email 'container-registry@mvp-demo-301906.iam.gserviceaccount.com' \
        --docker-password='"$(cat token.json)"'
```

## Create and modify the `custom_values.yaml` file

1. Create a `custom_values.yaml` file; if we shared a yaml file with you directly, then modify it as necessary:
2. Specify the required `orgId` value, typically the name of your company, to the `custom_values.yaml` file:

```yaml
global:
     orgId: <YOUR COMPANY NAME>
```

3. Specify the required `cloudProvider` value. Valid values are `aws`, `gcp`, and `azure`.

```yaml
global:
     cloudProvider: <ONE OF aws, gcp, or azure>
```

4. \[Optional\] Add a section in to `custom_values.yaml` to specify to your cloud provider.

See [Configure cloud-specific helm values](https://docs.kloudfuse.com/platform/3.3.6/install-ingress/).

## Install Kloudfuse

To install Kloudfuse, run the `upgrade` command:

```console
helm upgrade --install kfuse oci://us-east1-docker.pkg.dev/mvp-demo-301906/kfuse-helm/kfuse \
  -n kfuse \
  --version <VERSION> \
  -f custom-values.yaml
```

|     |     |
| --- | --- |
| **1** | `version`: Valid Kloudfuse release value; use the most recent one. |
