> For the complete documentation index, see [llms.txt](https://docs.garden.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.garden.io/acorn-0.12/kubernetes-plugins/remote-k8s/configure-provider.md).

# 4. Configure the Provider

Once you've completed steps 1-3 on the previous pages you should have all the values at hand to configure Garden's Kubernetes plugin.

In particular, you should have:

* The context for your Kubernetes cluster ([see step 1](/acorn-0.12/kubernetes-plugins/remote-k8s/create-cluster.md)).
* The name(s) and namespace(s) of the ImagePullSecret(s) used by your cluster ([see step 2](/acorn-0.12/kubernetes-plugins/remote-k8s/configure-registry.md)).
* The hostname for your services ([see step 3](/acorn-0.12/kubernetes-plugins/remote-k8s/ingress-and-dns.md)).
* A TLS secret (optional) ([see step 3](/acorn-0.12/kubernetes-plugins/remote-k8s/ingress-and-dns.md)).

Now we can finally add them to our Garden config.

## 1. Add initial config

First, add your values to the project level Garden configuration file at the root of your project:

```yaml
kind: Project

environments:
  - name: remote
    variables:
      hostname: <THE HOSTNAME FROM STEP 3>

providers:
  - name: kubernetes
    environments: [remote]
    imagePullSecrets: # You can set multiple secrets here
      - name: <THE IMAGE PULL SECRET FROM STEP 2>
        namespace: <THE IMAGE PULL SECRET NAMESPACE FROM STEP 2>
    deploymentRegistry:
      hostname: <THE REGISTRY HOSTNAME CONFIGURED IN STEP 2>
      namespace: <THE REGISTRY NAMESPACE CONFIGURED IN STEP 2>
    context: <THE KUBE CONTEXT FROM STEP 1>
    defaultHostname: <THE HOSTNAME FROM STEP 3>
```

### 2. Select build mode

Next, select a "build mode".

You can choose between building your images locally with Docker using the `local-docker` build mode or remotely, in the cluster itself.

Note that even if you choose the `local-docker` build mode, you still need to configure a container registry that Garden can push to and set an ImagePullSecret so that Kubernetes can pull your images.

In general, we recommend doing remote building with the `cluster-buildkit` build mode.

This means you don't need Docker running on your laptop and you're able to share build caches with your team and across environments.

To use the `cluster-buildkit` build mode, add the following to your configuration:

```yaml
providers:
  - name: kubernetes
    buildMode: "cluster-buildkit" # <--- Add this
    # ...
```

We also recommend taking a look at our [in-depth guide on build modes](/acorn-0.12/kubernetes-plugins/advanced/in-cluster-building.md) which explains the pros and cons of different modes and how to configure them.

### 3. Initialize the plugin

Finally, initialize the plugin by running:

```
garden plugins kubernetes cluster-init
```

And that's it! Your Kubernetes plugin is now configured and you can proceed to deploying your project to Kubernetes with Garden.

Next we recommend learning more about configuring [Kubernetes modules](/acorn-0.12/kubernetes-plugins/module-types.md).
