Skip to main content
Version: 1.30.1

KFD Installation

Once you customized the configuration file to suit your needs, you are ready to install KFD.

From a system that has access to the resources needed for your cluster (either a pre-existing Kubernetes cluster, a set of pre-existing VMs or bare-metal machines or AWS CLI with a configured profile), navigate to the folder that contains your configuration file and run:

furyctl apply

furyctl will parse the configuration and will execute each phase in the following order: infrastructure -> kubernetes -> distribution -> plugins.

tip

Some modules (Monitoring, Logging, Tracing), by default, need a StorageClass to be already existing inside the Kubernetes cluster in order to dynamically provision their PersistentVolumeClaims. If there is no StorageClass available, furyctl will skip deploying the components that need one to function. Running furyctl again once a StorageClass is available will deploy these components.

To be able to install these modules, you can:

  • For components that can use an external S3-compatible bucket (Loki, Tempo, Mimir, Velero, etc.), change the backend property of these packages to externalEnpoint and provide the required credentials.

  • Put a CSI of your choice in your configuration file's plugins section and run furyctl apply without parameters two times: the first run will install all components but the ones that need storage and after the plugins phase the cluster will have a StorageClass, so the second time furyctl can also install those modules.

    You can do this instead if you want more control:

    furyctl apply --phase infrastructure # if applicable
    furyctl apply --phase kubernetes # if applicable
    furyctl apply --phase plugins
    furyctl apply
  • Install a CSI of your choice outside of KFD before running furyctl apply.

Post installation

After the installation, furyctl will write a kubeconfig file inside the same directory where you run it. You can use it to access your cluster with kubectl:

kubectl get nodes --kubeconfig ./kubeconfig
tip

If you don't have the kubeconfig file, for example because you are working in a team that shared with you the configuration file without the kubeconfig, you can retrieve it running:

furyctl get kubeconfig

If you need to add/change components inside your cluster, you can edit the configuration file and run furyctl apply again.