bottlerocket-os / bottlerocket

An operating system designed for hosting containers
https://bottlerocket.dev
Other
8.59k stars 506 forks source link

Move `schnauzer` to the `bottlerocket-settings-sdk` #4167

Open cbgbt opened 2 weeks ago

cbgbt commented 2 weeks ago

What I'd like: Configuration templates that are rendered by Bottlerocket's settings API are rendered using the schnauzer utility. The source code canonically lives in bottlerocket-core-kit; however, Bottlerocket migrations currently use schnauzer to perform migrations on template-based settings generators.

We need to consider some mechanism for sharing schnauzer as a library between this repository and core-kit. One potential solution would be to move schnauzer to the bottlerocket-settings-sdk.

cbgbt commented 2 weeks ago

One challenge here is that schnauzer depends on apiclient in order to fetch the settings needed to render a template. We may similarly need to publish Bottlerocket's apiclient as a standalone crate.

The apiclient is settings-model-agnostic; however, we would need to be more cautious regarding API client/server compatibility.