K3s on Libvirt Quickstart
Setting up extra terraform provider
Due to an issue in the terraform provider system,
you need to download and place the libvirt provider at a very specific
location in your home directory before deploying K3s.
You can find the libvirt provider version in modules/k3s/libvirt/versions.tf .
To keep things simple this version will be referred to as
$LIBVIRT_PROVIDER_VERSION in this documentation.
Go to https://github.com/dmacvicar/terraform-provider-libvirt/releases/tag/v$LIBVIRT_PROVIDER_VERSION
and find the correct link for your OS/CPU_ARCH
(an example is linux_amd64 , referred to as $OS_CPU_ARCH in the rest of this documentation).
|
mkdir -p ~/.local/share/terraform/plugins/registry.terraform.io/dmacvicar/libvirt/$LIBVIRT_PROVIDER_VERSION/$OS_CPU_ARCH/ mv terraform-provider-libvirt ~/.local/share/terraform/plugins/registry.terraform.io/dmacvicar/libvirt/$LIBVIRT_PROVIDER_VERSION/$OS_CPU_ARCH/terraform-provider-libvirt
shell
Prerequisites
-
Access to a functional Libvirt daemon
-
Knowledge of Terraform basics
Create the Terraform root module
module "cluster" { source = "git::https://github.com/camptocamp/camptocamp-devops-stack.git//modules/k3s/libvirt?ref=master" cluster_name = "my-cluster" node_count = 2 }
hcl
Terraform Outputs
Define outputs:
# terraform/outputs.tf output "argocd_auth_token" { sensitive = true value = module.cluster.argocd_auth_token } output "kubeconfig" { sensitive = true value = module.cluster.kubeconfig } output "repo_url" { value = module.cluster.repo_url } output "target_revision" { value = module.cluster.target_revision } output "app_of_apps_values" { sensitive = true value = module.cluster.app_of_apps_values }
hcl