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:
Now we can finally add them to our Garden config.
First, add your values to the project level Garden configuration file at the root of your project:
apiVersion: garden.io/v1
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>
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:providers:
- name: kubernetes
buildMode: "cluster-buildkit" # <--- Add this
# ...
We also recommend taking a look at our in-depth guide on build modes which explains the pros and cons of different modes and how to configure them.
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.