K3S Docker Terraform Module

The k3s/docker Terraform module provides a way to install and configure:

Requirements

Name Version

>= 0.14

~> 2.11

~> 2.0

~> 2.0

~> 2.0

~> 3.0

~> 3.0

tls

~> 3.0

Providers

Name Version

~> 2.0

~> 3.0

tls

~> 3.0

Modules

Name Source Version

camptocamp/k3s/docker

1.0.1

Inputs

Name Description Type Default Required

App of apps values overrides.

string

""

no

ArgoCD Server Secert Key to avoid regenerate token on redeploy.

string

null

no

The base domain used for Ingresses.

string

null

no

The api endpoint, when empty it’s the container’s IP.

string

null

no

The name of the Kubernetes cluster to create.

string

n/a

yes

Whether to enable minio object storage system

bool

true

no

Extra AppProjects objects to deploy.

list(any)

[]

no

Extra ApplicationSets objects to deploy.

list(any)

[]

no

Extra Applications objects to deploy.

list(any)

[]

no

The admin password for Grafana.

string

null

no

The K3s version to use

string

"v1.20.10-k3s1"

no

OIDC configuration for core applications.

object({
    issuer_url              = string
    oauth_url               = string
    token_url               = string
    api_url                 = string
    client_id               = string
    client_secret           = string
    oauth2_proxy_extra_args = list(string)
  })

null

no

The source repo URL of ArgoCD’s app of apps.

string

"https://github.com/camptocamp/devops-stack.git"

no

A list of repositories to add to ArgoCD.

map(map(string))

{}

no

Port mappings of the server container.

set(object({
    internal = number
    external = optional(number)
    ip       = optional(string)
    protocol = optional(string)
  }))

[]

no

The source target revision of ArgoCD’s app of apps.

string

"master"

no

Allow to disable wait for app of apps

bool

true

no

A map defining worker group configurations

map(object({
    node_count  = number
    node_labels = list(string)
    node_taints = list(string)
  }))
{
  "default": {
    "node_count": 2,
    "node_labels": [],
    "node_taints": []
  }
}

no

Outputs

Name Description

n/a

App of Apps values

The token to set in ARGOCD_AUTH_TOKEN environment variable.

The URL of the ArgoCD server.

The ArgoCD admin password.

n/a

The admin password for Grafana.

The password of Keycloak’s admin user.

The content of the KUBECONFIG file.

n/a

n/a