Playing around with using Taskfile to configure a local setup with k3d + apps and services.
Tested on:
The only things you need to have installed are:
Use the .env file to configure the environment variables used by tasks.
Tasks have aliases defined, but the commands in this README will use the full task name for clarity.
You can list all of the available tasks to see their aliases.
task -a
The tasks defined in the root Taskfile.yml are the tasks directly related to managing the k3d cluster.
You can configure the k3d cluster using the appropriate k3d config file in the configs dir.
The .env value CLUSTER_NAME
is used to name the cluster and reference the k3d config.
task create_cluster
task delete_cluster
task delete_all_clusters
Define tasks in DeployTasks.yml that deploy apps/services/etc to a k3d cluster.
Examples:
- Argo Workflows
- Nginx Ingress
- Secrets
- etc.
You can then reference those tasks as deployTasks:<name_of_task>
.
Simply add your manifests to the manifests dir then run.
task deployTasks:apply_all_manifests
You can define tasks to install apps from Helm charts. Add your custom values file to the values dir and reference it in your task.
For example:
There's currently a task defined to install Argo Workflows into the k3d cluster.
This task will fail if a cluster hasn't already been created
task deployTasks:install_argo_workflows
Define tasks in InstallTasks.yml that install apps/services/etc to your local machine.
Examples:
- orbstack
- kubectl
- helm
- etc.
You can then reference those tasks as installTasks:<name_of_task>
.
Most of these are internal tasks and aren't used via the CLI.