This provider manages k3d Kubernetes clusters.
The provider configuration follows more or less k3d's config file format:
provider "k3d" {}
resource "k3d_cluster" "mycluster" {
name = "mycluster"
servers = 1
agents = 2
kube_api {
host = "myhost.my.domain"
host_ip = "127.0.0.1"
host_port = 6445
}
image = "rancher/k3s:v1.20.4-k3s1"
network = "my-custom-net"
token = "superSecretToken"
volume {
source = "/my/host/path"
destination = "/path/in/node"
node_filters = [
"server[0]",
"agent[*]",
]
}
port {
host_port = 8080
container_port = 80
node_filters = [
"loadbalancer",
]
}
label {
key = "foo"
value = "bar"
node_filters = [
"agent[1]",
]
}
env {
key = "bar"
value = "baz"
node_filters = [
"server[0]",
]
}
registries {
create = {
name = "my-registry"
host = "my-registry.local"
image = "docker.io/some/registry"
host_port = "5001"
}
use = [
"k3d-myotherregistry:5000"
]
config = <<EOF
mirrors:
"my.company.registry":
endpoint:
- http://my.company.registry:5000
EOF
}
k3d {
disable_load_balancer = false
disable_image_volume = false
}
k3s {
extra_args = [{
arg = "--tls-san=my.host.domain",
node_filters = ["agent"]
}]
}
kubeconfig {
update_default_kubeconfig = true
switch_current_context = true
}
runtime {
gpu_request = "all"
}
}
- Clone the repository
- Enter the repository directory
- Build the provider using the Go
install
command:
$ go install
This provider uses Go modules. Please see the Go documentation for the most up to date information about using Go modules.
To add a new dependency github.com/author/dependency
to your Terraform provider:
go get github.com/author/dependency
go mod tidy
Then commit the changes to go.mod
and go.sum
.
If you wish to work on the provider, you'll first need Go installed on your machine (see Requirements above).
To compile the provider, run go install
. This will build the provider and put the provider binary in the $GOPATH/bin
directory.
To generate or update documentation, run go generate
.
In order to run the full suite of Acceptance tests, run make testacc
.
Note: Acceptance tests create real resources, and often cost money to run.
$ make testacc