diff --git a/CHANGES.md b/CHANGES.md index 6978ee56..7bc87153 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -11,10 +11,12 @@ * Stop requiring Ignition templates to use file extensions (#176) * Logging Improvements: * Show `bootcfg` message at the home path `/` - * Fix http package log messages and increase request logging (#173) + * Add structured loggging with Logrus (#254, #268) * Log requests for bootcfg hosted assets (#214) - * Error when an Ignition/Cloud-config template is rendered with a machine Group which is missing a metadata value. Previously, missing values defaulted to "no value" (#210) + * Fix http package log messages (#173) + * Error when a template is rendered with a machine Group which is missing a metadata value. Previously, missing values defaulted to "no value" (#210) * Add/improve rkt, Docker, Kubernetes, and binary/systemd deployment docs +* Add DialTimeout to gRPC client config (#273) #### Changes @@ -26,12 +28,16 @@ #### Examples -* Add self-hosted Kubernetes example (PXE boot or install to disk) +* Kubernetes + * Upgrade Kubernetes (static manifest) examples to v1.3.0 + * Add Kubernetes (self-hosted) example (PXE boot or install to disk) + * Mount /etc/resolv.conf into host kubelet for skydns and pod lookups (#237,#260) + * Fix a bug in the k8s example k8s-certs@.service file check (#156) + * Avoid systemd dependency failures and restart components (#257,#274) * Add CoreOS Torus distributed storage cluster example (PXE boot) * Add `create-uefi` subcommand to `scripts/libvirt` for UEFI/GRUB testing -* Upgrade Kubernetes examples to v1.3.0 +* Show CoreOS install to disk from a cached copy via bootcfg baseurl (#228) * Remove 8.8.8.8 from networkd example Ignition configs (#184) -* Fix a bug in the k8s example k8s-certs@.service file check (#156) * 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. diff --git a/README.md b/README.md index ad972d3f..4c2cc87c 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![Build Status](https://travis-ci.org/coreos/coreos-baremetal.svg?branch=master)](https://travis-ci.org/coreos/coreos-baremetal) [![GoDoc](https://godoc.org/github.com/coreos/coreos-baremetal?status.png)](https://godoc.org/github.com/coreos/coreos-baremetal) [![Docker Repository on Quay](https://quay.io/repository/coreos/bootcfg/status "Docker Repository on Quay")](https://quay.io/repository/coreos/bootcfg) [![IRC](https://img.shields.io/badge/irc-%23coreos-F04C5C.svg)](https://botbot.me/freenode/coreos) -CoreOS on Baremetal provides guides and a service for network booting and provisioning CoreOS clusters on virtual or physical hardware. +Guides and a service for network booting and provisioning CoreOS clusters on virtual or physical hardware. ## Guides @@ -16,14 +16,14 @@ CoreOS on Baremetal provides guides and a service for network booting and provis `bootcfg` is an HTTP and gRPC service that renders signed [Ignition configs](https://coreos.com/ignition/docs/latest/what-is-ignition.html), [cloud-configs](https://coreos.com/os/docs/latest/cloud-config.html), network boot configs, and metadata to machines to create CoreOS clusters. Groups match machines based on labels (e.g. MAC, UUID, stage, region) and use named Profiles for provisioning. Network boot endpoints provide PXE, iPXE, GRUB, and Pixiecore support. `bootcfg` can be deployed as a binary, as an [appc](https://github.com/appc/spec) container with [rkt](https://coreos.com/rkt/docs/latest/), or as a Docker container. * [bootcfg Service](Documentation/bootcfg.md) - * [Groups](Documentation/bootcfg.md#groups-and-metadata) * [Profiles](Documentation/bootcfg.md#profiles) + * [Groups](Documentation/bootcfg.md#groups-and-metadata) * [Ignition](Documentation/ignition.md) * [Cloud-Config](Documentation/cloud-config.md) * Tutorials (libvirt) * [bootcfg with rkt](Documentation/getting-started-rkt.md) * [bootcfg with Docker](Documentation/getting-started-docker.md) -* [Flags](Documentation/config.md) +* [Configuration](Documentation/config.md) * [HTTP API](Documentation/api.md) * [gRPC API](https://godoc.org/github.com/coreos/coreos-baremetal/bootcfg/client) * Backends @@ -40,7 +40,7 @@ CoreOS on Baremetal provides guides and a service for network booting and provis ### Examples -The [examples](examples) show how to network boot and provision higher-order CoreOS clusters. Network boot [libvirt](scripts/README.md#libvirt) VMs to try the examples on your Linux laptop. +The [examples](examples) network boot and provision CoreOS clusters. Network boot [libvirt](scripts/README.md#libvirt) VMs to try the examples on your Linux laptop. * Multi-node [Kubernetes cluster](Documentation/kubernetes.md) with TLS * Multi-node [self-hosted Kubernetes cluster](Documentation/bootkube.md) @@ -51,4 +51,4 @@ The [examples](examples) show how to network boot and provision higher-order Cor * [GRUB Netboot](Documentation/grub.md) CoreOS * iPXE Boot CoreOS with a root fs * iPXE Boot CoreOS - +* Lab [examples](https://github.com/dghubble/metal) diff --git a/bootcfg/http/cloud.go b/bootcfg/http/cloud.go index b5882da2..30f81e47 100644 --- a/bootcfg/http/cloud.go +++ b/bootcfg/http/cloud.go @@ -20,8 +20,8 @@ type CloudConfig struct { Content string } -// cloudHandler returns a handler that responds with the cloud config for the -// requester. +// cloudHandler returns a handler that responds with the cloud config matching +// the request. func (s *Server) cloudHandler(core server.Server) ContextHandler { fn := func(ctx context.Context, w http.ResponseWriter, req *http.Request) { group, err := groupFromContext(ctx) diff --git a/bootcfg/http/generic.go b/bootcfg/http/generic.go index d2e93195..c835e756 100644 --- a/bootcfg/http/generic.go +++ b/bootcfg/http/generic.go @@ -14,8 +14,8 @@ import ( pb "github.com/coreos/coreos-baremetal/bootcfg/server/serverpb" ) -// genericHandler returns a handler that responds with generic file for -// the requester. +// genericHandler returns a handler that responds with the generic config +// matching the request. func (s *Server) genericHandler(core server.Server) ContextHandler { fn := func(ctx context.Context, w http.ResponseWriter, req *http.Request) { group, err := groupFromContext(ctx) diff --git a/bootcfg/http/ignition.go b/bootcfg/http/ignition.go index 91fcdb48..f82777fe 100644 --- a/bootcfg/http/ignition.go +++ b/bootcfg/http/ignition.go @@ -16,7 +16,7 @@ import ( ) // ignitionHandler returns a handler that responds with the Ignition config -// for the requester. The Ignition file referenced in the Profile is parsed +// matching the request. The Ignition file referenced in the Profile is parsed // as raw Ignition (for .ign/.ignition) or rendered to a Fuze config (YAML) // and converted to Ignition. Ignition configs are served as HTTP JSON // responses. diff --git a/bootcfg/http/metadata.go b/bootcfg/http/metadata.go index a675c3c6..2f218d34 100644 --- a/bootcfg/http/metadata.go +++ b/bootcfg/http/metadata.go @@ -12,6 +12,8 @@ import ( const plainContentType = "plain/text" +// genericHandler returns a handler that responds with the metadata env file +// matching the request. func (s *Server) metadataHandler() ContextHandler { fn := func(ctx context.Context, w http.ResponseWriter, req *http.Request) { group, err := groupFromContext(ctx) diff --git a/bootcfg/http/parse_test.go b/bootcfg/http/parse_test.go index 06fb8894..ab9e8842 100644 --- a/bootcfg/http/parse_test.go +++ b/bootcfg/http/parse_test.go @@ -8,7 +8,6 @@ import ( "github.com/stretchr/testify/assert" ) - func TestLabelsFromRequest(t *testing.T) { emptyMap := map[string]string{} logger, _ := logtest.NewNullLogger() @@ -32,4 +31,4 @@ func TestLabelsFromRequest(t *testing.T) { assert.Nil(t, err) assert.Equal(t, c.labels, labelsFromRequest(logger, req)) } -} \ No newline at end of file +}