Kubernetes Config

The k8s_config resource allows Kubernetes configuraton to be applied on a k8s_cluster. You can specify a list of paths or individual files and health checks for the resources. A k8s_config only completes once the configuration has bene successfully applied and any health checks have passed. This allows you to create complex dependencies for your applications.

Minimal example

k8s_config "app" {
depends_on = ["helm.consul"]
cluster = "k8s_cluster.k3s"
paths = [
"./k8s_config/app",
"./k8s_config/dashboard",
]
wait_until_ready = true
}

Parameters

depends_on

Type: []string
Required: false

Depends on allows you to specify resources which should be created before this one. In the instance of a destruction, this container will be destroyed before resources in.

cluster

Type: string
Required: true

Reference to a k8s_clsuter resource where the configuration will be applied, must be specified using the convention k8s_cluster.<resource name>.

paths

Type: []string
Required: true

List of files or folders containing valid Kubernetes config.

wait_until_ready

Type: bool
Required: true

If true the k8s_config blocks until all resources in the specified paths progress to the ready state. Ready as a state is defined by Kubernetes and varies from resource to resource. For many kinds, ready is true when the resource has been successfully added or modified on the cluster.

health_check

Type: HealthCheck
Required: true

Define a health check for the k8s_config, the resource will only be marked as succesfully created when the health check passes. Health checks operate on the runing state of containers based on the pod selector.

health_check {
timeout = "120s"
pods = ["app.kubernetes.io/name=vault"]
}

Type health_check

A health_check stanza allows the definition of a health check which must pass before the k8s_config is marked as successfully created.

timeout

Type: duration
Required: true

The maximum duration to wait before marking the health check as failed. Expressed as a Go duration, e.g. 1s = 1 second, 100ms = 100 milliseconds.

pods

Type: []string
Required: true

Pod selector to use for checks, a Pod is marked as healthy when all containers in all pods returned by the selector string are marked as running.