Plugins
The plugin
phase provides a way to manage the installation of custom manifests and Helm charts with furyctl
. This is intended to customize the cluster to your needs, for example you could add your CSI here. It's NOT intended as a way to install actual workload inside the cluster.
This phase gives you two ways to install additional resources, which can also be used together:
- Helm: you can specify a list of Helm chart and relative values files.
furyctl
will executehelm
using those parameters. - Kustomize: if you prefer to have more control over the manifests, or if your required software does not provide a Helm chart, you can use a list of Kustomize projects, which will be built by
furyctl
to be applied inside the cluster.
Helm
To create Helm releases within a KFD cluster, you can create the plugins.helm
object and use the following parameters:
repositories
: a list of repositories to be added to Helm. For each repository you want to add, you must provide:name
: the name of the repository.url
: the url of the repository.
releases
: a list of releases to be applied inside the KFD cluster. For each of them, you can provide the following options:name
: the name of the release.disableValidationOnInstall
: disables runninghelm diff
validation when installing the plugin, it will still be done when upgrading.set
: If you want to provide single variables instead of avalues
file, you can do so here. For each variable, you must provide:name
: the name of the variable.value
: the value of the variable.
namespace
: the namespace in which to install the releasechart
: the Chart to be used.values
: a list of paths tovalues
files to be appliedversion
: the version of the Chart to be used.
Kustomize
To create Kustomize installation within a KFD cluster, you can create the plugins.kustomize
array and use the following parameters for each object you want to insert:
name
: a user-friendly name for this Kustomize projectfolder
: the path to a folder that contains the root Kustomize project
Example
As an example, if you wanted to insert the kubernetes-dashboard inside your KFD cluster, you can use the following snippet inside the furyctl.yaml
file:
plugins:
helm:
repositories:
- name: kubernetes-dashboard
url: https://kubernetes.github.io/dashboard/
releases:
- name: kubernetes-dashboard
namespace: kubernetes-dashboard
chart: kubernetes-dashboard/kubernetes-dashboard
values:
- "/path/to/values.yaml"
Another example, this time using Kustomize, can be the installation of Local Path Provisioner. Create a kustomization.yaml
inside a folder named plugins/local-path-provisioner
at the same level as your furyctl.yaml
file:
# plugins/local-path-provisioner/kustomization.yaml
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://github.com/rancher/local-path-provisioner/master/deploy
Use the following snippet inside furyctl.yaml
:
plugins:
kustomize:
- name: local-path-provisioner
folder: "./plugins/local-path-provisioner"