On 3rd December, Stripe announced the open-sourcing of Skycfg which is a configuration builder for Kubernetes. Skycfg was developed by Stripe as an extension library for the Starlark language. It adds support for constructing Protocol Buffer messages.
The team states that as the implementation of Skycfg stabilizes, the public API surface will be expanded so that Skycfg can be combined with other Starlark extensions.
Benefits of Skycfg
- Skycfg ensures Type safety. It uses ‘Protobuf’ which has a statically-typed data model, and the type of every field is known to Skycfg when it’s building a configuration. Users are free from the risk of accidentally assigning a string to a number, a struct to a different struct, or forgetting to quote a YAML value.
- Users can reduce duplicated typing and share logic by defining helper functions.
- Starlark supports importing modules from other files. This can be used to share common code between configurations. These modules can protect service owners from complex Kubernetes logic.
- Skycfg supports limited dynamic behavior through the use of context variables, which let the Go caller pass arbitrary key:value pairs in the ctx parameter.
- Skycfg simplifies the configuration of Kubernetes services, Envoy routes, Terraform resources, and other complex configuration data.
Here is what users are saying about Skycfg over at HackerNews:
Head over to GitHub for all the code and supporting files.
Google Kubernetes Engine was down last Friday, users left clueless of outage status and RCA
Introducing Alpha Support for Volume Snapshotting in Kubernetes 1.12
‘AWS Service Operator’ for Kubernetes now available allowing the creation of AWS resources using kubectl