How bottlerocket-os/bottlerocket works
Bottlerocket is a Linux host OS for container workloads. Its documented settings workflow is to change system configuration through the API, with settings modeled and migrated across OS updates. The tree shows datastore implementations and many versioned migration programs, but not the API service, update orchestrator, or their runtime wiring; those links are therefore not inferred. Defaults and variant-specific configuration are also represented by the repository tree. The README’s partition-flip update mechanism and security design have no corresponding implementation paths in the supplied tree.
Main entry points: lib.rs Datastore API · settings-migrations Versioned migrations · settings-defaults Variant defaults · settings-plugins Settings plugins
Components 18
Settings configuration
- Settings API
- Variant defaults
sources/settings-defaults - Settings plugins
sources/settings-plugins
Datastore library
- Datastore API
sources/api/datastore/src/lib.rs - Memory store
sources/api/datastore/src/memory.rs - Filesystem store
sources/api/datastore/src/filesystem.rs - Key validation
sources/api/datastore/src/key.rs - Serialization
sources/api/datastore/src/serialization/mod.rs - Deserialization
sources/api/datastore/src/deserialization/mod.rs
Settings migrations
- Versioned migrations
sources/settings-migrations - Registry settings
sources/settings-migrations/archived/v1.4.0/registry-mirror-representation/src/main.rs - DNS settings
sources/settings-migrations/archived/v1.8.0/cluster-dns-ip-list/src/main.rs - Verifier plugins
sources/settings-migrations/v1.56.0/image-verifier-plugins-extensible/src/main.rs - Device plugin settings
sources/settings-migrations/v1.40.0/kubelet-device-plugins-cdi-settings/src/main.rs
OS capabilities
- Partition-flip updates
- Container host OS
Other components
- Operator or orchestrator
- Container workloads
Connections 16
- Operator or orchestrator → Settings API: changes settings
- Settings API → Datastore API: accesses settings
- Variant defaults → Datastore API: provides defaults
- Settings plugins → Datastore API: extends settings
- Datastore API → Memory store: uses backend
- Datastore API → Filesystem store: uses backend
- Datastore API → Key validation: validates keys
- Datastore API → Serialization: serializes data
- Datastore API → Deserialization: deserializes data
- Partition-flip updates → Versioned migrations: runs migrations
- Versioned migrations → Registry settings: includes migration
- Versioned migrations → DNS settings: includes migration
- Versioned migrations → Verifier plugins: includes migration
- Versioned migrations → Device plugin settings: includes migration
- Partition-flip updates → Container host OS: updates OS
- Container host OS → Container workloads: hosts workloads