K3s on Docker Quickstart

Prerequisites

  • Access to a functional Docker Engine,

  • CGroupv2 disabled (K3s does not support it for now),

  • Knowledge of Terraform basics

Create the Terraform root module

module "cluster" {
  source = "git::https://github.com/camptocamp/camptocamp-devops-stack.git//modules/k3s/docker?ref=master"

  cluster_name = "my-cluster"
}

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 "argocd_server" {
  value = module.cluster.argocd_server
}

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
}

Deploy the cluster

$ terraform init
$ terraform apply

You should see the services URL as Terraform outputs.

Get kubeconfig

$ terraform output -json kubeconfig | jq -r .

Destroy the cluster

$ terraform destroy