Skip to content

Latest commit

 

History

History
355 lines (271 loc) · 16.4 KB

CHANGES.md

File metadata and controls

355 lines (271 loc) · 16.4 KB

Matchbox

Notable changes between releases.

Latest

v0.11.0

  • Update butane from v0.17.0 to v0.18.0 (#1079)
    • Add support for fcos v1.5.0 Butane Configs
    • Add support for flatcar v1.1.0 Butane Configs
    • Render Ignition as Ignition spec v3.4.0

v0.10.0

  • Remove support for Ignition v0.35.0 (Ignition spec v2.x)
  • Remove support for Container Linux Configs (action required)
    • Container Linux Configs were a YAML format that rendered to Ignition (spec v2.x)
    • Flatcar Linux now supports Ignition v2 (spec v3.x)
    • Butane is a suitable YAML format that renders Ignition v2 (spec v3.x)
  • Upgrade Ignition from v0.35.0 (spec v2.x) to v2.14.0 (spec v3.x)
  • Update Go version (v1.20.2) and alpine base image (v3.17.3)
  • Add limited support for Matchbox rendering Butane configs (#997) (docs)
  • Recommend writing Butane via external tools (action required)
  • Parse Ignition and render forward to Ignition v2 (spec v3.3)
    • Ignition is forward compatible (e.g. a v3.1 spec can be rendered as v3.3 safely)

If you still template Container Linux Configs via Matchbox, migrate to Butane by prepending:

variant: flatcar
version: 1.0.0

v0.9.1

  • Add dependabot Go module update automation (#833)
  • Build multi-arch container images (amd64, arm64) (#823)
  • Update Go version (v1.18.4) and alpine base image (v3.16.1)
  • Move dnsmasq container image to its own repo (#840)
  • Deprecate rendering Container Linux Configs
    • Please migrate to serving CoreOS Ignition directly
    • Use tools like poseidon/ct or butane to validate and convert a Butane Config (focs or flatcar) to Ignition (for Matchbox to serve)

Docs/Examples

  • Migrate docs website to GitHub Pages (#976)
  • Update Fedora CoreOS images and configuration (#972)
  • Update Fedora CoreOS initrd karg for UEFI (#978)
  • Update Flatcar Linux examples to use Ignition v3.3.0 (#980)

v0.9.0

  • Refresh docs and examples for Fedora CoreOS and Flatcar Linux (#815, #816)
  • Update Kubernetes manifest examples (#791, #817)
  • Update Matchbox container image publishing (#795)
    • Publish Matchbox images from internal infra to Quay (quay.io/poseidon/matchbox)
    • Update Go version from v1.13.4 to v1.14.9
    • Update base image from alpine:3.10 to alpine:3.12 (#784)
  • Include contrib/k8s in release tarballs (#788)
  • Remove outdated systemd units (#817)
  • Remove RPM spec file (Copr publishing stopped in v0.6)

v0.8.3

  • Publish docs to https://matchbox.psdn.io (#769)
  • Update Go version from v1.11.7 to v1.13.4 (#766, #770)
  • Update container image base from alpine:3.9 to alpine:3.10 (#761)
  • Include get-fedora-coreos convenience script (#763)
  • Remove Kubernetes provisioning examples (#759)
  • Remove rkt tutorials and docs (#765)

v0.8.1 - v0.8.2

Releases v0.8.1 and v0.8.2 were not built cleanly

  • Release tags and container images have been removed
  • Caused by go get golint (module-aware) mutating go.mod on Travis (see #775, #777)

v0.8.0

  • Transfer Matchbox repo from coreos to poseidon GitHub Org
  • Publish container images at quay.io/poseidon/matchbox
  • Build Matchbox with Go v1.11.7 for images and binaries
  • Update container image base from alpine:3.6 to alpine:3.9
  • Render Container Linux Configs as Ignition v2.2.0
  • Validate raw Ignition configs with the v2.2 spec (warn-only)
    • Fix warnings that v2.2 configs are too new

Note: Release signing key has changed with the project move.

Examples

  • Update Kubernetes example clusters to v1.14.1 (Terraform-based)

v0.7.1 (2018-11-01)

  • Add kernel_args variable to the terraform bootkube-install cluster definition
  • Add get-flatcar helper script
  • Add optional TLS support to read-only HTTP API
  • Build Matchbox with Go 1.11.1 for images and binaries

Examples

  • Upgrade Kubernetes example clusters to v1.10.0 (Terraform-based)
  • Upgrade Kubernetes example clusters to v1.8.5

v0.7.0 (2017-12-12)

  • Add gRPC API endpoints for managing generic (experimental) templates
  • Update Container Linux config transpiler to v0.5.0
  • Update Ignition to v0.19.0, render v2.1.0 Ignition configs
  • Drop support for Container Linux versions below 1465.0.0 (breaking)
  • Build Matchbox with Go 1.8.5 for images and binaries
  • Remove Profile Cmdline map (deprecated in v0.5.0), use Args slice instead
  • Remove pixiecore support (deprecated in v0.5.0)
  • Remove ContextHandler, ContextHandlerFunc, and NewHandler from the matchbox/http package.

Examples / Modules

  • Upgrade Kubernetes example clusters to v1.8.4
  • Kubernetes examples clusters enable etcd TLS
  • Deploy the Container Linux Update Operator (CLUO) to coordinate reboots of Container Linux nodes in Kubernetes clusters. See the cluster addon docs.
  • Kubernetes examples (terraform and non-terraform) mask locksmithd
  • Terraform modules bootkube and profiles (Kubernetes) mask locksmithd

v0.6.1 (2017-05-25)

  • Improve the installation documentation
  • Move examples/etc/matchbox/cert-gen to scripts/tls
  • Build Matchbox with Go 1.8.3 for images and binaries

Examples

  • Upgrade self-hosted Kubernetes cluster examples to v1.6.4
  • Add NoSchedule taint to self-hosted Kubernetes controllers
  • Remove static Kubernetes and rktnetes cluster examples

v0.6.0 (2017-04-25)

  • New terraform-provider-matchbox plugin for Terraform users!
  • New hosted documentation on coreos.com
  • Add ProfileDelete, GroupDelete, IgnitionGet and IgnitionDelete gRPC endpoints
  • Build matchbox with Go 1.8 for container images and binaries
  • Generate code with gRPC v1.2.1 and matching Go protoc-gen-go plugin
  • Update Ignition to v0.14.0 and coreos-cloudinit to v1.13.0
  • Update "fuze" docs to the new name Container Linux Configs
  • Remove bootcmd binary from release tarballs

Examples

  • Upgrade Kubernetes v1.5.5 (static) example clusters
  • Upgrade Kubernetes v1.6.1 (self-hosted) example cluster
  • Use etcd3 by default in all clusters (remove etcd2 clusters)
  • Add Terraform examples for etcd3 and self-hosted Kubernetes 1.6.1

v0.5.0 (2017-01-23)

  • Rename project to CoreOS matchbox!
  • Add Profile args field to list kernel args
  • Update Fuze and Ignition to v0.11.2
  • Switch from golang.org/x/net/context to context
  • Deprecate Profile cmd field map of kernel args
  • Deprecate Pixiecore support
  • Drop build support for Go 1.6

Rename

  • Move repo from github.com/coreos/coreos-baremetal to github.com/coreos/matchbox
  • Rename bootcfg binary to matchbox
  • Rename bootcfg packages to matchbox
  • Publish a quay.io/coreos/matchbox container image. The quay.io/coreos/bootcfg image will no longer be updated.
  • Rename environment variable prefix from BOOTCFG* to MATCHBOX*
  • Change config directory to /etc/matchbox
  • Change default -data-path to /var/lib/matchbox
  • Change default -assets-path to /var/lib/matchbox/assets

Examples

  • Upgrade Kubernetes v1.5.1 (static) example clusters
  • Upgrade Kubernetes v1.5.1 (self-hosted) example cluster
  • Switch Kubernetes (self-hosted) to run flannel as pods
  • Combine rktnetes Ignition into Kubernetes static cluster

Migration

  • binary users should install the matchbox binary (see installation)
  • rkt/docker users should start using quay.io/coreos/matchbox (see installation)
  • RPM users should uninstall bootcfg and install matchbox (see installation)
  • Move /etc/bootcfg configs and certificates to /etc/matchbox
  • Move /var/lib/bootcfg data to /var/lib/matchbox
  • See the new contrib/systemd service examples
  • Remove the old bootcfg user if you created one

v0.4.2 (2016-12-7)

Improvements

  • Add RPM packages to Copr
  • Fix packaged contrib/systemd units
  • Update Go version to 1.7.4

Examples

  • Upgrade Kubernetes v1.4.6 (static manifest) example clusters
  • Upgrade Kubernetes v1.4.6 (rktnetes) example clusters
  • Upgrade Kubernetes v1.4.6 (self-hosted) example cluster

v0.4.1 (2016-10-17)

Improvements

  • Add ARM and ARM64 release architectures (#309)
  • Add guide for installing bootcfg on CoreOS (#306)
  • Improvements to the bootcfg cert-gen script (#310)

Examples

  • Add Kubernetes example with rkt container runtime (i.e. rktnetes)
  • Upgrade Kubernetes v1.4.1 (static manifest) example clusters
  • Upgrade Kubernetes v1.4.1 (rktnetes) example clusters
  • Upgrade Kubernetes v1.4.1 (self-hosted) example cluster
  • Add etcd3 example cluster (PXE in-RAM or install to disk)
  • Use DNS names (instead of IPs) in example clusters (except bootkube)

v0.4.0 (2016-07-21)

Features

  • Add/improve rkt, Docker, Kubernetes, and binary/systemd deployment docs
  • TLS Client Authentication:
    • Add gRPC API TLS and TLS client-to-server authentication (#140)
    • Enable gRPC API by providing a TLS server -cert-file and -key-file, and a -ca-file to authenticate client certificates
    • Provide the bootcmd tool a TLS client -cert-file and -key-file, and a -ca-file to verify the server identity.
  • Improvements to Ignition Support:
    • Allow Fuze YAML template files for Ignition 2.0.0 (#141)
    • Stop requiring Ignition templates to use file extensions (#176)
  • Logging Improvements:
    • Add structured logging with Logrus (#254, #268)
    • Log requests for bootcfg assets (#214)
    • Show bootcfg message at the home path /
    • Fix http package log messages (#173)
  • Templating:
    • Allow query parameters to be used as template variables as {{.request.query.foo}} (#182)
    • Support nested maps in responses from the "env file" metadata endpoint (#84)
    • Error when a template is rendered with variables which are missing a referenced key. Previously, missing lookups defaulted to "no value" (#210)
  • gRPC API
    • Add DialTimeout to gRPC client config (#273)
    • Add IgnitionPut and Close to the client (#160,#193)

Changes

  • gRPC API requires TLS client authentication
  • Replace Ignition YAML templates with Fuze templates
    • Fuze formalizes the transform from Fuze configs (YAML) to Ignition 2.0.0 (JSON)
    • Migrate templates from v0.3.0
    • Require CoreOS 1010.1.0 or newer
    • Drop support for Ignition v1 format
  • Replace template variable {{.query}} with {{.request.raw_query}}

Examples

  • Kubernetes
    • Upgrade Kubernetes v1.3.0 (static manifest) example clusters
    • Add Kubernetes v1.3.0-beta.2 (self-hosted) example cluster
    • Mount /etc/resolv.conf into host kubelet for skydns and pod DNS lookups (#237,#260)
    • Fix a bug in the k8s example k8s-certs@.service file check (#156)
    • Avoid systemd dependency failures by restarting components (#257,#274)
    • Verify Kubernetes v1.2.4 and v1.3.0 clusters pass conformance tests (#71,#265)
  • Add Torus distributed storage cluster example (PXE boot)
  • Add create-uefi subcommand to scripts/libvirt for UEFI/GRUB testing
  • Install CoreOS to disk from a cached copy via bootcfg baseurl (#228)
  • Remove 8.8.8.8 from networkd example Ignition configs (#184)
  • Match machines by MAC address in examples to simplify networkd device matching (#209)
  • With rkt 1.8+, you can use rkt gc --grace-period=0 to cleanup rkt IP assignments in examples. The rkt-gc-force script has been removed.

v0.3.0 (2016-04-14)

Features

  • Add server library package for implementing servers
  • Add initial gRPC client/server and a CLI tool
    • Allow listing, viewing, and creating Groups and Profiles
  • Add initial Grub net boot support examples
  • Add detached OpenPGP signature endpoints (.sig)
  • Document deployment as a binary with systemd
  • Upgrade from Go 1.5.3 to Go 1.6.1 (#139)

Changes

  • Profiles
    • Move Profiles to JSON files under /var/lib/bootcfg/profiles
    • Rename Spec to Profile (#104)
  • Groups
    • Move Groups to JSON files under /var/lib/bootcfg/groups
    • Require Group metadata to be valid JSON
    • Rename Group field spec to profile
    • Rename Group field require to selector (#147)
  • Allow asset serving to be disabled with -assets-path="" (#118)
  • Allow selector key/value pairs to be used in Ignition and Cloud config templates (#64)
  • Change default -data-path to /var/lib/bootcfg (#132)
  • Change default -assets-path to /var/lib/bootcfg/assets (#132)
  • Change the default assets download location to examples/assets
  • Stop parsing Groups from the -config YAML file. Remove the flag.
  • Remove HTTP /spec/id JSON endpoint

Examples

  • Convert all Cloud-Configs to Ignition
  • Kubernetes
    • Upgraded Kubernetes examples to v1.2.0 (#122)
    • Run Heapster service by default (#142)
    • Example multi-node Kubernetes cluster installed to disk
  • Example multi-node etcd cluster installed to disk
  • Example which PXE boots with or without a root partition
  • Setup fleet in multi-node example clusters

v0.2.0 (2016-02-09)

Features

  • Render Ignition config and cloud-configs as Go templates
  • Allow writing Ignition configs as YAML configs. Render as JSON for machines.
  • Add ASCII armored detached OpenPGP signature endpoints (.asc)
    • Enable signing by providing a -key-ring-path with a signing key and setting BOOTCFG_PASSPHRASE if needed
  • Add metadata endpoint which matches machines to custom metadata
  • Add metadata to group definitions in config.yaml

Changes

  • Require the -config flag if the default file path doesn't exist
  • Normalize user-defined MAC address tags
  • Rename flag -images-path to -assets-path
  • Rename endpoint /images to /assets

New Examples

  • Example TLS-authenticated Kubernetes cluster with rkt and CNI
  • Example TLS-authenticated Kubernetes cluster with Docker
  • Example custom metadata agent with Ignition, fetches metadata on boot and writes it to /run/metadata/bootcfg
  • Example CoreOS install to disk with Ignition
  • Update etcd cluster examples to use Ignition, rather than cloud-config.

v0.1.0 (2016-01-08)

Initial release of the coreos-baremetal Config Service.

Features

  • Match machines based on hardware attributes or free-form tag matchers
  • Render boot configs (kernel, initrd), Ignition configs, and Cloud-Init configs
  • Support for PXE, iPXE, and Pixiecore network boot environments