Notable changes between releases.
- Update butane from v0.17.0 to v0.18.0 (#1079)
- 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)
- For Terraform, use poseidon/terraform-provider-ct
- For a CLI, use
butane
- Parse Ignition and render forward to Ignition v2 (spec v3.3)
- Ignition is forward compatible (e.g. a
v3.1
spec can be rendered asv3.3
safely)
- Ignition is forward compatible (e.g. a
If you still template Container Linux Configs via Matchbox, migrate to Butane by prepending:
variant: flatcar
version: 1.0.0
- 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
orflatcar
) to Ignition (for Matchbox to serve)
- 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)
- 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
toalpine:3.12
(#784)
- Publish Matchbox images from internal infra to Quay (
- Include
contrib/k8s
in release tarballs (#788) - Remove outdated systemd units (#817)
- Remove RPM spec file (Copr publishing stopped in v0.6)
- 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
toalpine:3.10
(#761) - Include
get-fedora-coreos
convenience script (#763) - Remove Kubernetes provisioning examples (#759)
- Remove rkt tutorials and docs (#765)
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)
- 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.
- Update Kubernetes example clusters to v1.14.1 (Terraform-based)
- 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
- Upgrade Kubernetes example clusters to v1.10.0 (Terraform-based)
- Upgrade Kubernetes example clusters to v1.8.5
- 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), useArgs
slice instead - Remove pixiecore support (deprecated in v0.5.0)
- Remove
ContextHandler
,ContextHandlerFunc
, andNewHandler
from thematchbox/http
package.
- 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
andprofiles
(Kubernetes) mask locksmithd
- Improve the installation documentation
- Move examples/etc/matchbox/cert-gen to scripts/tls
- Build Matchbox with Go 1.8.3 for images and binaries
- 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
- New terraform-provider-matchbox plugin for Terraform users!
- New hosted documentation on coreos.com
- Add
ProfileDelete
,GroupDelete
,IgnitionGet
andIgnitionDelete
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
- 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
- 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
tocontext
- Deprecate Profile
cmd
field map of kernel args - Deprecate Pixiecore support
- Drop build support for Go 1.6
- Move repo from github.com/coreos/coreos-baremetal to github.com/coreos/matchbox
- Rename
bootcfg
binary tomatchbox
- Rename
bootcfg
packages tomatchbox
- Publish a
quay.io/coreos/matchbox
container image. Thequay.io/coreos/bootcfg
image will no longer be updated. - Rename environment variable prefix from
BOOTCFG*
toMATCHBOX*
- Change config directory to
/etc/matchbox
- Change default
-data-path
to/var/lib/matchbox
- Change default
-assets-path
to/var/lib/matchbox/assets
- 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
- 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
- Add RPM packages to Copr
- Fix packaged
contrib/systemd
units - Update Go version to 1.7.4
- 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
- Add ARM and ARM64 release architectures (#309)
- Add guide for installing bootcfg on CoreOS (#306)
- Improvements to the bootcfg cert-gen script (#310)
- 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)
- 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)
- Allow query parameters to be used as template variables as
- gRPC API
- Add DialTimeout to gRPC client config (#273)
- Add IgnitionPut and Close to the client (#160,#193)
- 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}}
- 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 toscripts/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. Therkt-gc-force
script has been removed.
- 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)
- Profiles
- Move Profiles to JSON files under
/var/lib/bootcfg/profiles
- Rename
Spec
toProfile
(#104)
- Move Profiles to JSON files under
- Groups
- Move Groups to JSON files under
/var/lib/bootcfg/groups
- Require Group metadata to be valid JSON
- Rename Group field
spec
toprofile
- Rename Group field
require
toselector
(#147)
- Move Groups to JSON files under
- 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
- 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
- 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 settingBOOTCFG_PASSPHRASE
if needed
- Enable signing by providing a
- Add
metadata
endpoint which matches machines to custom metadata - Add
metadata
to group definitions inconfig.yaml
- 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
- 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.
Initial release of the coreos-baremetal Config Service.
- 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