Add Container Linux Config snippets feature

* Introduce the ability to support Container Linux Config
"snippets" for controllers and workers on cloud platforms.
This allows end-users to customize hosts by providing Container
Linux configs that are additively merged into the base configs
defined by Typhoon. Config snippets are validated, merged, and
show any errors during `terraform plan`
* Example uses include adding systemd units, network configs,
mounts, files, raid arrays, or other disk provisioning features
provided by Container Linux Configs (using Ignition low-level)
* Requires terraform-provider-ct v0.2.1 plugin
This commit is contained in:
Dalton Hubble
2018-02-20 08:36:21 -08:00
parent 88aa9a46e5
commit f3730b2bfa
14 changed files with 83 additions and 19 deletions

View File

@ -3,9 +3,9 @@ variable "cluster_name" {
description = "Unique cluster name"
}
variable "ssh_authorized_key" {
variable "region" {
type = "string"
description = "SSH public key for logging in as user 'core'"
description = "Google Cloud region (e.g. us-central1, see `gcloud compute regions list`)."
}
variable "network" {
@ -30,11 +30,6 @@ variable "count" {
description = "Number of controller compute instances the instance group should manage"
}
variable "region" {
type = "string"
description = "Google Cloud region (e.g. us-central1, see `gcloud compute regions list`)."
}
variable "machine_type" {
type = "string"
description = "Machine type for compute instances (e.g. gcloud compute machine-types list)"
@ -51,12 +46,22 @@ variable "disk_size" {
description = "The size of the disk in gigabytes."
}
// configuration
# configuration
variable "networking" {
description = "Choice of networking provider (flannel or calico)"
type = "string"
default = "flannel"
default = "calico"
}
variable "kubeconfig" {
type = "string"
description = "Generated Kubelet kubeconfig"
}
variable "ssh_authorized_key" {
type = "string"
description = "SSH public key for logging in as user 'core'"
}
variable "service_cidr" {
@ -75,7 +80,8 @@ variable "cluster_domain_suffix" {
default = "cluster.local"
}
variable "kubeconfig" {
type = "string"
description = "Generated Kubelet kubeconfig"
variable "clc_snippets" {
type = "list"
description = "Container Linux Config snippets"
default = []
}