Update Butane Config from v1.2.0 to v1.4.0

* Rename Fedora CoreOS Config (FCC) to Butane Config
* Require any snippets customizations use version v1.4.0

* https://typhoon.psdn.io/advanced/customization/#hosts
This commit is contained in:
Dalton Hubble 2021-07-18 09:30:24 -07:00
parent 810236f6df
commit b603bbde3d
25 changed files with 44 additions and 37 deletions

View File

@ -4,6 +4,13 @@ Notable changes between versions.
## Latest ## Latest
### Fedora CoreOS
* Update Butane Config version from v1.2.0 to v1.4.0
* Rename Fedora CoreOS Config to Butane Config
* Require any [snippets](https://typhoon.psdn.io/advanced/customization/#hosts) customizations to update to v1.4.0
## v1.21.3 ## v1.21.3
* Kubernetes [v1.21.3](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.21.md#v1213) * Kubernetes [v1.21.3](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.21.md#v1213)

View File

@ -1,6 +1,6 @@
--- ---
variant: fcos variant: fcos
version: 1.2.0 version: 1.4.0
systemd: systemd:
units: units:
- name: etcd-member.service - name: etcd-member.service

View File

@ -84,13 +84,13 @@ variable "worker_target_groups" {
variable "controller_snippets" { variable "controller_snippets" {
type = list(string) type = list(string)
description = "Controller Fedora CoreOS Config snippets" description = "Controller Butane snippets"
default = [] default = []
} }
variable "worker_snippets" { variable "worker_snippets" {
type = list(string) type = list(string)
description = "Worker Fedora CoreOS Config snippets" description = "Worker Butane snippets"
default = [] default = []
} }

View File

@ -1,6 +1,6 @@
--- ---
variant: fcos variant: fcos
version: 1.2.0 version: 1.4.0
systemd: systemd:
units: units:
- name: docker.service - name: docker.service

View File

@ -77,7 +77,7 @@ variable "target_groups" {
variable "snippets" { variable "snippets" {
type = list(string) type = list(string)
description = "Fedora CoreOS Config snippets" description = "Butane snippets"
default = [] default = []
} }

View File

@ -1,6 +1,6 @@
--- ---
variant: fcos variant: fcos
version: 1.2.0 version: 1.4.0
systemd: systemd:
units: units:
- name: etcd-member.service - name: etcd-member.service

View File

@ -65,13 +65,13 @@ variable "worker_priority" {
variable "controller_snippets" { variable "controller_snippets" {
type = list(string) type = list(string)
description = "Controller Fedora CoreOS Config snippets" description = "Controller Butane snippets"
default = [] default = []
} }
variable "worker_snippets" { variable "worker_snippets" {
type = list(string) type = list(string)
description = "Worker Fedora CoreOS Config snippets" description = "Worker Butane snippets"
default = [] default = []
} }

View File

@ -1,6 +1,6 @@
--- ---
variant: fcos variant: fcos
version: 1.2.0 version: 1.4.0
systemd: systemd:
units: units:
- name: docker.service - name: docker.service

View File

@ -57,7 +57,7 @@ variable "priority" {
variable "snippets" { variable "snippets" {
type = list(string) type = list(string)
description = "Fedora CoreOS Config snippets" description = "Butane snippets"
default = [] default = []
} }

View File

@ -1,6 +1,6 @@
--- ---
variant: fcos variant: fcos
version: 1.2.0 version: 1.4.0
systemd: systemd:
units: units:
- name: etcd-member.service - name: etcd-member.service

View File

@ -1,6 +1,6 @@
--- ---
variant: fcos variant: fcos
version: 1.2.0 version: 1.4.0
systemd: systemd:
units: units:
- name: docker.service - name: docker.service

View File

@ -57,7 +57,7 @@ EOD
variable "snippets" { variable "snippets" {
type = map(list(string)) type = map(list(string))
description = "Map from machine names to lists of Fedora CoreOS Config snippets" description = "Map from machine names to lists of Butane snippets"
default = {} default = {}
} }

View File

@ -1,6 +1,6 @@
--- ---
variant: fcos variant: fcos
version: 1.2.0 version: 1.4.0
systemd: systemd:
units: units:
- name: etcd-member.service - name: etcd-member.service

View File

@ -1,6 +1,6 @@
--- ---
variant: fcos variant: fcos
version: 1.2.0 version: 1.4.0
systemd: systemd:
units: units:
- name: docker.service - name: docker.service

View File

@ -48,13 +48,13 @@ variable "os_image" {
variable "controller_snippets" { variable "controller_snippets" {
type = list(string) type = list(string)
description = "Controller Fedora CoreOS Config snippets" description = "Controller Butane snippets"
default = [] default = []
} }
variable "worker_snippets" { variable "worker_snippets" {
type = list(string) type = list(string)
description = "Worker Fedora CoreOS Config snippets" description = "Worker Butane snippets"
default = [] default = []
} }

View File

@ -12,9 +12,9 @@ Clusters are kept to a minimal Kubernetes control plane by offering components l
## Hosts ## Hosts
Typhoon uses the [Ignition](https://github.com/coreos/ignition) system of Fedora CoreOS and Flatcar Linux to immutably declare a system via first-boot disk provisioning. Fedora CoreOS uses a [Fedora CoreOS Config](https://docs.fedoraproject.org/en-US/fedora-coreos/fcct-config/) (FCC) and Flatcar Linux uses a [Container Linux Config](https://github.com/coreos/container-linux-config-transpiler/blob/master/doc/examples.md) (CLC). These define disk partitions, filesystems, systemd units, dropins, config files, mount units, raid arrays, and users. Typhoon uses the [Ignition](https://github.com/coreos/ignition) system of Fedora CoreOS and Flatcar Linux to immutably declare a system via first-boot disk provisioning. Fedora CoreOS uses a [Butane Config](https://coreos.github.io/butane/specs/) and Flatcar Linux uses a [Container Linux Config](https://github.com/coreos/container-linux-config-transpiler/blob/master/doc/examples.md) (CLC). These define disk partitions, filesystems, systemd units, dropins, config files, mount units, raid arrays, and users.
Controller and worker instances form a minimal and secure Kubernetes cluster on each platform. Typhoon provides the **snippets** feature to accept Fedora CoreOS Configs or Container Linux Configs to validate and additively merge into instance declarations. This allows advanced host customization and experimentation. Controller and worker instances form a minimal and secure Kubernetes cluster on each platform. Typhoon provides the **snippets** feature to accept Butane or Container Linux Configs to validate and additively merge into instance declarations. This allows advanced host customization and experimentation.
!!! note !!! note
Snippets cannot be used to modify an already existing instance, the antithesis of immutable provisioning. Ignition fully declares a system on first boot only. Snippets cannot be used to modify an already existing instance, the antithesis of immutable provisioning. Ignition fully declares a system on first boot only.
@ -30,14 +30,14 @@ Controller and worker instances form a minimal and secure Kubernetes cluster on
!!! note !!! note
Fedora CoreOS snippets require `terraform-provider-ct` v0.5+ Fedora CoreOS snippets require `terraform-provider-ct` v0.5+
Define a Fedora CoreOS Config (FCC) ([docs](https://docs.fedoraproject.org/en-US/fedora-coreos/fcct-config/), [config](https://github.com/coreos/fcct/blob/master/docs/configuration-v1_0.md), [examples](https://github.com/coreos/fcct/blob/master/docs/examples.md)) in version control near your Terraform workspace directory (e.g. perhaps in a `snippets` subdirectory). You may organize snippets into multiple files, if desired. Define a Butane Config ([docs](https://coreos.github.io/butane/specs/), [config](https://github.com/coreos/butane/blob/main/docs/config-fcos-v1_4.md)) in version control near your Terraform workspace directory (e.g. perhaps in a `snippets` subdirectory). You may organize snippets into multiple files, if desired.
For example, ensure an `/opt/hello` file is created with permissions 0644. For example, ensure an `/opt/hello` file is created with permissions 0644.
```yaml ```yaml
# custom-files # custom-files
variant: fcos variant: fcos
version: 1.2.0 version: 1.4.0
storage: storage:
files: files:
- path: /opt/hello - path: /opt/hello
@ -185,7 +185,7 @@ To set an alternative etcd image or Kubelet image, use a snippet to set a system
```yaml ```yaml
# kubelet-image-override.yaml # kubelet-image-override.yaml
variant: fcos <- remove for Flatcar Linux variant: fcos <- remove for Flatcar Linux
version: 1.2.0 <- remove for Flatcar Linux version: 1.4.0 <- remove for Flatcar Linux
systemd: systemd:
units: units:
- name: kubelet.service - name: kubelet.service
@ -201,7 +201,7 @@ To set an alternative etcd image or Kubelet image, use a snippet to set a system
```yaml ```yaml
# etcd-image-override.yaml # etcd-image-override.yaml
variant: fcos <- remove for Flatcar Linux variant: fcos <- remove for Flatcar Linux
version: 1.2.0 <- remove for Flatcar Linux version: 1.4.0 <- remove for Flatcar Linux
systemd: systemd:
units: units:
- name: etcd-member.service - name: etcd-member.service

View File

@ -216,8 +216,8 @@ Reference the DNS zone id with `aws_route53_zone.zone-for-clusters.zone_id`.
| disk_iops | IOPS of the EBS volume | 0 (i.e. auto) | 400 | | disk_iops | IOPS of the EBS volume | 0 (i.e. auto) | 400 |
| worker_target_groups | Target group ARNs to which worker instances should be added | [] | [aws_lb_target_group.app.id] | | worker_target_groups | Target group ARNs to which worker instances should be added | [] | [aws_lb_target_group.app.id] |
| worker_price | Spot price in USD for worker instances or 0 to use on-demand instances | 0 | 0.10 | | worker_price | Spot price in USD for worker instances or 0 to use on-demand instances | 0 | 0.10 |
| controller_snippets | Controller Fedora CoreOS Config snippets | [] | [examples](/advanced/customization/) | | controller_snippets | Controller Butane snippets | [] | [examples](/advanced/customization/) |
| worker_snippets | Worker Fedora CoreOS Config snippets | [] | [examples](/advanced/customization/) | | worker_snippets | Worker Butane snippets | [] | [examples](/advanced/customization/) |
| networking | Choice of networking provider | "calico" | "calico" or "cilium" or "flannel" | | networking | Choice of networking provider | "calico" | "calico" or "cilium" or "flannel" |
| network_mtu | CNI interface MTU (calico only) | 1480 | 8981 | | network_mtu | CNI interface MTU (calico only) | 1480 | 8981 |
| host_cidr | CIDR IPv4 range to assign to EC2 instances | "10.0.0.0/16" | "10.1.0.0/16" | | host_cidr | CIDR IPv4 range to assign to EC2 instances | "10.0.0.0/16" | "10.1.0.0/16" |

View File

@ -243,8 +243,8 @@ Reference the DNS zone with `azurerm_dns_zone.clusters.name` and its resource gr
| worker_type | Machine type for workers | "Standard_DS1_v2" | See below | | worker_type | Machine type for workers | "Standard_DS1_v2" | See below |
| disk_size | Size of the disk in GB | 30 | 100 | | disk_size | Size of the disk in GB | 30 | 100 |
| worker_priority | Set priority to Spot to use reduced cost surplus capacity, with the tradeoff that instances can be deallocated at any time | Regular | Spot | | worker_priority | Set priority to Spot to use reduced cost surplus capacity, with the tradeoff that instances can be deallocated at any time | Regular | Spot |
| controller_snippets | Controller Fedora CoreOS Config snippets | [] | [example](/advanced/customization/#usage) | | controller_snippets | Controller Butane snippets | [] | [example](/advanced/customization/#usage) |
| worker_snippets | Worker Fedora CoreOS Config snippets | [] | [example](/advanced/customization/#usage) | | worker_snippets | Worker Butane snippets | [] | [example](/advanced/customization/#usage) |
| networking | Choice of networking provider | "calico" | "calico" or "cilium" or "flannel" | | networking | Choice of networking provider | "calico" | "calico" or "cilium" or "flannel" |
| host_cidr | CIDR IPv4 range to assign to instances | "10.0.0.0/16" | "10.0.0.0/20" | | host_cidr | CIDR IPv4 range to assign to instances | "10.0.0.0/16" | "10.0.0.0/20" |
| pod_cidr | CIDR IPv4 range to assign to Kubernetes pods | "10.2.0.0/16" | "10.22.0.0/16" | | pod_cidr | CIDR IPv4 range to assign to Kubernetes pods | "10.2.0.0/16" | "10.22.0.0/16" |

View File

@ -335,7 +335,7 @@ Check the [variables.tf](https://github.com/poseidon/typhoon/blob/master/bare-me
| install_disk | Disk device where Fedora CoreOS should be installed | "sda" (not "/dev/sda" like Container Linux) | "sdb" | | install_disk | Disk device where Fedora CoreOS should be installed | "sda" (not "/dev/sda" like Container Linux) | "sdb" |
| networking | Choice of networking provider | "calico" | "calico" or "cilium" or "flannel" | | networking | Choice of networking provider | "calico" | "calico" or "cilium" or "flannel" |
| network_mtu | CNI interface MTU (calico-only) | 1480 | - | | network_mtu | CNI interface MTU (calico-only) | 1480 | - |
| snippets | Map from machine names to lists of Fedora CoreOS Config snippets | {} | [examples](/advanced/customization/) | | snippets | Map from machine names to lists of Butane snippets | {} | [examples](/advanced/customization/) |
| network_ip_autodetection_method | Method to detect host IPv4 address (calico-only) | "first-found" | "can-reach=10.0.0.1" | | network_ip_autodetection_method | Method to detect host IPv4 address (calico-only) | "first-found" | "can-reach=10.0.0.1" |
| pod_cidr | CIDR IPv4 range to assign to Kubernetes pods | "10.2.0.0/16" | "10.22.0.0/16" | | pod_cidr | CIDR IPv4 range to assign to Kubernetes pods | "10.2.0.0/16" | "10.22.0.0/16" |
| service_cidr | CIDR IPv4 range to assign to Kubernetes services | "10.3.0.0/16" | "10.3.0.0/24" | | service_cidr | CIDR IPv4 range to assign to Kubernetes services | "10.3.0.0/16" | "10.3.0.0/24" |

View File

@ -238,8 +238,8 @@ Digital Ocean requires the SSH public key be uploaded to your account, so you ma
| worker_count | Number of workers | 1 | 3 | | worker_count | Number of workers | 1 | 3 |
| controller_type | Droplet type for controllers | "s-2vcpu-2gb" | s-2vcpu-2gb, s-2vcpu-4gb, s-4vcpu-8gb, ... | | controller_type | Droplet type for controllers | "s-2vcpu-2gb" | s-2vcpu-2gb, s-2vcpu-4gb, s-4vcpu-8gb, ... |
| worker_type | Droplet type for workers | "s-1vcpu-2gb" | s-1vcpu-2gb, s-2vcpu-2gb, ... | | worker_type | Droplet type for workers | "s-1vcpu-2gb" | s-1vcpu-2gb, s-2vcpu-2gb, ... |
| controller_snippets | Controller Fedora CoreOS Config snippets | [] | [example](/advanced/customization/) | | controller_snippets | Controller Butane snippets | [] | [example](/advanced/customization/) |
| worker_snippets | Worker Fedora CoreOS Config snippets | [] | [example](/advanced/customization/) | | worker_snippets | Worker Butane snippets | [] | [example](/advanced/customization/) |
| networking | Choice of networking provider | "calico" | "calico" or "cilium" or "flannel" | | networking | Choice of networking provider | "calico" | "calico" or "cilium" or "flannel" |
| pod_cidr | CIDR IPv4 range to assign to Kubernetes pods | "10.2.0.0/16" | "10.22.0.0/16" | | pod_cidr | CIDR IPv4 range to assign to Kubernetes pods | "10.2.0.0/16" | "10.22.0.0/16" |
| service_cidr | CIDR IPv4 range to assign to Kubernetes services | "10.3.0.0/16" | "10.3.0.0/24" | | service_cidr | CIDR IPv4 range to assign to Kubernetes services | "10.3.0.0/16" | "10.3.0.0/24" |

View File

@ -218,8 +218,8 @@ resource "google_dns_managed_zone" "zone-for-clusters" {
| os_stream | Fedora CoreOS stream for compute instances | "stable" | "stable", "testing", "next" | | os_stream | Fedora CoreOS stream for compute instances | "stable" | "stable", "testing", "next" |
| disk_size | Size of the disk in GB | 30 | 100 | | disk_size | Size of the disk in GB | 30 | 100 |
| worker_preemptible | If enabled, Compute Engine will terminate workers randomly within 24 hours | false | true | | worker_preemptible | If enabled, Compute Engine will terminate workers randomly within 24 hours | false | true |
| controller_snippets | Controller Fedora CoreOS Config snippets | [] | [examples](/advanced/customization/) | | controller_snippets | Controller Butane snippets | [] | [examples](/advanced/customization/) |
| worker_snippets | Worker Fedora CoreOS Config snippets | [] | [examples](/advanced/customization/) | | worker_snippets | Worker Butane snippets | [] | [examples](/advanced/customization/) |
| networking | Choice of networking provider | "calico" | "calico" or "cilium" or "flannel" | | networking | Choice of networking provider | "calico" | "calico" or "cilium" or "flannel" |
| pod_cidr | CIDR IPv4 range to assign to Kubernetes pods | "10.2.0.0/16" | "10.22.0.0/16" | | pod_cidr | CIDR IPv4 range to assign to Kubernetes pods | "10.2.0.0/16" | "10.22.0.0/16" |
| service_cidr | CIDR IPv4 range to assign to Kubernetes services | "10.3.0.0/16" | "10.3.0.0/24" | | service_cidr | CIDR IPv4 range to assign to Kubernetes services | "10.3.0.0/16" | "10.3.0.0/24" |

View File

@ -1,6 +1,6 @@
--- ---
variant: fcos variant: fcos
version: 1.2.0 version: 1.4.0
systemd: systemd:
units: units:
- name: etcd-member.service - name: etcd-member.service

View File

@ -71,13 +71,13 @@ variable "worker_preemptible" {
variable "controller_snippets" { variable "controller_snippets" {
type = list(string) type = list(string)
description = "Controller Fedora CoreOS Config snippets" description = "Controller Butane snippets"
default = [] default = []
} }
variable "worker_snippets" { variable "worker_snippets" {
type = list(string) type = list(string)
description = "Worker Fedora CoreOS Config snippets" description = "Worker Butane snippets"
default = [] default = []
} }

View File

@ -1,6 +1,6 @@
--- ---
variant: fcos variant: fcos
version: 1.2.0 version: 1.4.0
systemd: systemd:
units: units:
- name: docker.service - name: docker.service

View File

@ -59,7 +59,7 @@ variable "preemptible" {
variable "snippets" { variable "snippets" {
type = list(string) type = list(string)
description = "Fedora CoreOS Config snippets" description = "Butane snippets"
default = [] default = []
} }