Deployment Tools

Deployment Tools refer to the tools that are used to deploy manifests to the cluster. This can be a GitOps based deployment tool, or an apply based deployment tool. The Deployment Tool is responsible for managing the deployment of manifests to the cluster and synchronizing the cluster state with the desired state defined in the manifests.

Kubectl

Using Kubectl as the deployment tool enables applying kustomizations and waiting for their completion. It utilizes kubectl apply -k with --prune and the alpha feature --applyset to manage deployments via a central kustomization.yaml file, allowing you to add or remove resources by updating the file. Additionally, kubectl rollout status -k provides deployment status updates.

Kubectl is the default deployment tool for ksail, because it is built on official Kubernetes tooling, developed and maintained by the Kubernetes project and community. This makes it a reliable and straightforward choice, especially for small projects or testing new features. However, it does not provide GitOps-based deployment capabilities.

Flux

Using Flux as the deployment tool will create a Kubernetes cluster with Flux installed. By default it will use an OCIRepository source to sync the cluster with the local registry. It will also use a FluxKustomization to sync files referenced by the k8s/kustomization.yaml file.

ArgoCD

Warning

This option is not supported yet.

Using ArgoCD as the deployment tool will create a Kubernetes cluster with ArgoCD installed. It provides a declarative GitOps approach to continuous delivery, allowing you to manage your Kubernetes resources by synchronizing them with external state sources.