Skip to content

Commit

Permalink
Update Butane Config from v1.2.0 to v1.4.0
Browse files Browse the repository at this point in the history
* Rename Fedora CoreOS Config (FCC) to Butane Config
* Require any snippets customizations use version v1.4.0

* https://typhoon.psdn.io/advanced/customization/#hosts
  • Loading branch information
dghubble committed Jul 20, 2021
1 parent 810236f commit b603bbd
Show file tree
Hide file tree
Showing 25 changed files with 44 additions and 37 deletions.
7 changes: 7 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@ Notable changes between versions.

## 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

* Kubernetes [v1.21.3](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.21.md#v1213)
Expand Down
2 changes: 1 addition & 1 deletion aws/fedora-coreos/kubernetes/fcc/controller.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
variant: fcos
version: 1.2.0
version: 1.4.0
systemd:
units:
- name: etcd-member.service
Expand Down
4 changes: 2 additions & 2 deletions aws/fedora-coreos/kubernetes/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -84,13 +84,13 @@ variable "worker_target_groups" {

variable "controller_snippets" {
type = list(string)
description = "Controller Fedora CoreOS Config snippets"
description = "Controller Butane snippets"
default = []
}

variable "worker_snippets" {
type = list(string)
description = "Worker Fedora CoreOS Config snippets"
description = "Worker Butane snippets"
default = []
}

Expand Down
2 changes: 1 addition & 1 deletion aws/fedora-coreos/kubernetes/workers/fcc/worker.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
variant: fcos
version: 1.2.0
version: 1.4.0
systemd:
units:
- name: docker.service
Expand Down
2 changes: 1 addition & 1 deletion aws/fedora-coreos/kubernetes/workers/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ variable "target_groups" {

variable "snippets" {
type = list(string)
description = "Fedora CoreOS Config snippets"
description = "Butane snippets"
default = []
}

Expand Down
2 changes: 1 addition & 1 deletion azure/fedora-coreos/kubernetes/fcc/controller.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
variant: fcos
version: 1.2.0
version: 1.4.0
systemd:
units:
- name: etcd-member.service
Expand Down
4 changes: 2 additions & 2 deletions azure/fedora-coreos/kubernetes/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -65,13 +65,13 @@ variable "worker_priority" {

variable "controller_snippets" {
type = list(string)
description = "Controller Fedora CoreOS Config snippets"
description = "Controller Butane snippets"
default = []
}

variable "worker_snippets" {
type = list(string)
description = "Worker Fedora CoreOS Config snippets"
description = "Worker Butane snippets"
default = []
}

Expand Down
2 changes: 1 addition & 1 deletion azure/fedora-coreos/kubernetes/workers/fcc/worker.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
variant: fcos
version: 1.2.0
version: 1.4.0
systemd:
units:
- name: docker.service
Expand Down
2 changes: 1 addition & 1 deletion azure/fedora-coreos/kubernetes/workers/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ variable "priority" {

variable "snippets" {
type = list(string)
description = "Fedora CoreOS Config snippets"
description = "Butane snippets"
default = []
}

Expand Down
2 changes: 1 addition & 1 deletion bare-metal/fedora-coreos/kubernetes/fcc/controller.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
variant: fcos
version: 1.2.0
version: 1.4.0
systemd:
units:
- name: etcd-member.service
Expand Down
2 changes: 1 addition & 1 deletion bare-metal/fedora-coreos/kubernetes/fcc/worker.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
variant: fcos
version: 1.2.0
version: 1.4.0
systemd:
units:
- name: docker.service
Expand Down
2 changes: 1 addition & 1 deletion bare-metal/fedora-coreos/kubernetes/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ EOD

variable "snippets" {
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 = {}
}

Expand Down
2 changes: 1 addition & 1 deletion digital-ocean/fedora-coreos/kubernetes/fcc/controller.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
variant: fcos
version: 1.2.0
version: 1.4.0
systemd:
units:
- name: etcd-member.service
Expand Down
2 changes: 1 addition & 1 deletion digital-ocean/fedora-coreos/kubernetes/fcc/worker.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
variant: fcos
version: 1.2.0
version: 1.4.0
systemd:
units:
- name: docker.service
Expand Down
4 changes: 2 additions & 2 deletions digital-ocean/fedora-coreos/kubernetes/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,13 @@ variable "os_image" {

variable "controller_snippets" {
type = list(string)
description = "Controller Fedora CoreOS Config snippets"
description = "Controller Butane snippets"
default = []
}

variable "worker_snippets" {
type = list(string)
description = "Worker Fedora CoreOS Config snippets"
description = "Worker Butane snippets"
default = []
}

Expand Down
12 changes: 6 additions & 6 deletions docs/advanced/customization.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ Clusters are kept to a minimal Kubernetes control plane by offering components l

## 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
Snippets cannot be used to modify an already existing instance, the antithesis of immutable provisioning. Ignition fully declares a system on first boot only.
Expand All @@ -30,14 +30,14 @@ Controller and worker instances form a minimal and secure Kubernetes cluster on
!!! note
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.

```yaml
# custom-files
variant: fcos
version: 1.2.0
version: 1.4.0
storage:
files:
- path: /opt/hello
Expand Down Expand Up @@ -185,7 +185,7 @@ To set an alternative etcd image or Kubelet image, use a snippet to set a system
```yaml
# kubelet-image-override.yaml
variant: fcos <- remove for Flatcar Linux
version: 1.2.0 <- remove for Flatcar Linux
version: 1.4.0 <- remove for Flatcar Linux
systemd:
units:
- name: kubelet.service
Expand All @@ -201,7 +201,7 @@ To set an alternative etcd image or Kubelet image, use a snippet to set a system
```yaml
# etcd-image-override.yaml
variant: fcos <- remove for Flatcar Linux
version: 1.2.0 <- remove for Flatcar Linux
version: 1.4.0 <- remove for Flatcar Linux
systemd:
units:
- name: etcd-member.service
Expand Down
4 changes: 2 additions & 2 deletions docs/fedora-coreos/aws.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
| 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 |
| controller_snippets | Controller Fedora CoreOS Config snippets | [] | [examples](/advanced/customization/) |
| worker_snippets | Worker Fedora CoreOS Config snippets | [] | [examples](/advanced/customization/) |
| controller_snippets | Controller Butane snippets | [] | [examples](/advanced/customization/) |
| worker_snippets | Worker Butane snippets | [] | [examples](/advanced/customization/) |
| networking | Choice of networking provider | "calico" | "calico" or "cilium" or "flannel" |
| 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" |
Expand Down
4 changes: 2 additions & 2 deletions docs/fedora-coreos/azure.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
| 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 |
| controller_snippets | Controller Fedora CoreOS Config snippets | [] | [example](/advanced/customization/#usage) |
| worker_snippets | Worker Fedora CoreOS Config snippets | [] | [example](/advanced/customization/#usage) |
| controller_snippets | Controller Butane 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" |
| 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" |
Expand Down
2 changes: 1 addition & 1 deletion docs/fedora-coreos/bare-metal.md
Original file line number Diff line number Diff line change
Expand Up @@ -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" |
| networking | Choice of networking provider | "calico" | "calico" or "cilium" or "flannel" |
| 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" |
| 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" |
Expand Down
4 changes: 2 additions & 2 deletions docs/fedora-coreos/digitalocean.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |
| 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, ... |
| controller_snippets | Controller Fedora CoreOS Config snippets | [] | [example](/advanced/customization/) |
| worker_snippets | Worker Fedora CoreOS Config snippets | [] | [example](/advanced/customization/) |
| controller_snippets | Controller Butane snippets | [] | [example](/advanced/customization/) |
| worker_snippets | Worker Butane snippets | [] | [example](/advanced/customization/) |
| 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" |
| service_cidr | CIDR IPv4 range to assign to Kubernetes services | "10.3.0.0/16" | "10.3.0.0/24" |
Expand Down
4 changes: 2 additions & 2 deletions docs/fedora-coreos/google-cloud.md
Original file line number Diff line number Diff line change
Expand Up @@ -218,8 +218,8 @@ resource "google_dns_managed_zone" "zone-for-clusters" {
| os_stream | Fedora CoreOS stream for compute instances | "stable" | "stable", "testing", "next" |
| 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 |
| controller_snippets | Controller Fedora CoreOS Config snippets | [] | [examples](/advanced/customization/) |
| worker_snippets | Worker Fedora CoreOS Config snippets | [] | [examples](/advanced/customization/) |
| controller_snippets | Controller Butane snippets | [] | [examples](/advanced/customization/) |
| worker_snippets | Worker Butane snippets | [] | [examples](/advanced/customization/) |
| 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" |
| service_cidr | CIDR IPv4 range to assign to Kubernetes services | "10.3.0.0/16" | "10.3.0.0/24" |
Expand Down
2 changes: 1 addition & 1 deletion google-cloud/fedora-coreos/kubernetes/fcc/controller.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
variant: fcos
version: 1.2.0
version: 1.4.0
systemd:
units:
- name: etcd-member.service
Expand Down
4 changes: 2 additions & 2 deletions google-cloud/fedora-coreos/kubernetes/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -71,13 +71,13 @@ variable "worker_preemptible" {

variable "controller_snippets" {
type = list(string)
description = "Controller Fedora CoreOS Config snippets"
description = "Controller Butane snippets"
default = []
}

variable "worker_snippets" {
type = list(string)
description = "Worker Fedora CoreOS Config snippets"
description = "Worker Butane snippets"
default = []
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
variant: fcos
version: 1.2.0
version: 1.4.0
systemd:
units:
- name: docker.service
Expand Down
2 changes: 1 addition & 1 deletion google-cloud/fedora-coreos/kubernetes/workers/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ variable "preemptible" {

variable "snippets" {
type = list(string)
description = "Fedora CoreOS Config snippets"
description = "Butane snippets"
default = []
}

Expand Down

0 comments on commit b603bbd

Please sign in to comment.