diff --git a/sources/Cargo.lock b/sources/Cargo.lock index 30160c2a0a8..8bb6b3b20d3 100644 --- a/sources/Cargo.lock +++ b/sources/Cargo.lock @@ -2569,7 +2569,7 @@ dependencies = [ "serde_json", "settings-extension-autoscaling", "settings-extension-aws", - "settings-extension-bootstrap-container", + "settings-extension-bootstrap-containers", "settings-extension-cloudformation", "settings-extension-container-registry", "settings-extension-container-runtime", @@ -2581,6 +2581,7 @@ dependencies = [ "settings-extension-motd", "settings-extension-network", "settings-extension-ntp", + "settings-extension-oci-defaults", "settings-extension-oci-hooks", "settings-extension-pki", "settings-extension-updates", @@ -3534,7 +3535,7 @@ dependencies = [ ] [[package]] -name = "settings-extension-bootstrap-container" +name = "settings-extension-bootstrap-containers" version = "0.1.0" dependencies = [ "bottlerocket-settings-sdk", diff --git a/sources/Cargo.toml b/sources/Cargo.toml index 2adc968305a..14e8980234b 100644 --- a/sources/Cargo.toml +++ b/sources/Cargo.toml @@ -67,7 +67,7 @@ members = [ "settings-extensions/autoscaling", "settings-extensions/aws", - "settings-extensions/bootstrap-container", + "settings-extensions/bootstrap-containers", "settings-extensions/cloudformation", "settings-extensions/container-registry", "settings-extensions/container-runtime", diff --git a/sources/models/Cargo.toml b/sources/models/Cargo.toml index aae5ea49de4..2e39f365dcf 100644 --- a/sources/models/Cargo.toml +++ b/sources/models/Cargo.toml @@ -20,7 +20,7 @@ toml = "0.8" # settings extensions settings-extension-autoscaling = { path = "../settings-extensions/autoscaling", version = "0.1" } settings-extension-aws = { path = "../settings-extensions/aws", version = "0.1" } -settings-extension-bootstrap-container = { path = "../settings-extensions/bootstrap-container", version = "0.1" } +settings-extension-bootstrap-containers = { path = "../settings-extensions/bootstrap-containers", version = "0.1" } settings-extension-cloudformation = { path = "../settings-extensions/cloudformation", version = "0.1" } settings-extension-container-registry = { path = "../settings-extensions/container-registry", version = "0.1" } settings-extension-container-runtime = { path = "../settings-extensions/container-runtime", version = "0.1" } @@ -32,6 +32,7 @@ settings-extension-metrics = { path = "../settings-extensions/metrics", version settings-extension-motd = { path = "../settings-extensions/motd", version = "0.1" } settings-extension-network = { path = "../settings-extensions/network", version = "0.1" } settings-extension-ntp = { path = "../settings-extensions/ntp", version = "0.1" } +settings-extension-oci-defaults = { path = "../settings-extensions/oci-defaults", version = "0.1" } settings-extension-oci-hooks = { path = "../settings-extensions/oci-hooks", version = "0.1" } settings-extension-pki = { path = "../settings-extensions/pki", version = "0.1" } settings-extension-updates = { path = "../settings-extensions/updates", version = "0.1" } diff --git a/sources/models/src/aws-dev/mod.rs b/sources/models/src/aws-dev/mod.rs index c25c779fc3d..0bcae66ae5c 100644 --- a/sources/models/src/aws-dev/mod.rs +++ b/sources/models/src/aws-dev/mod.rs @@ -9,7 +9,7 @@ struct Settings { motd: settings_extension_motd::MotdV1, updates: settings_extension_updates::UpdatesSettingsV1, host_containers: settings_extension_host_containers::HostContainersSettingsV1, - bootstrap_containers: settings_extension_bootstrap_container::BootstrapContainerSettingsV1, + bootstrap_containers: settings_extension_bootstrap_containers::BootstrapContainersSettingsV1, ntp: settings_extension_ntp::NtpSettingsV1, network: settings_extension_network::NetworkSettingsV1, kernel: settings_extension_kernel::KernelSettingsV1, diff --git a/sources/models/src/aws-ecs-1-nvidia/mod.rs b/sources/models/src/aws-ecs-1-nvidia/mod.rs index 1f483483640..6cdb1fe0abd 100644 --- a/sources/models/src/aws-ecs-1-nvidia/mod.rs +++ b/sources/models/src/aws-ecs-1-nvidia/mod.rs @@ -1,7 +1,5 @@ use model_derive::model; -use crate::OciDefaults; - // Note: we have to use 'rename' here because the top-level Settings structure is the only one // that uses its name in serialization; internal structures use the field name that points to it #[model(rename = "settings", impl_default = true)] @@ -9,7 +7,7 @@ struct Settings { motd: settings_extension_motd::MotdV1, updates: settings_extension_updates::UpdatesSettingsV1, host_containers: settings_extension_host_containers::HostContainersSettingsV1, - bootstrap_containers: settings_extension_bootstrap_container::BootstrapContainerSettingsV1, + bootstrap_containers: settings_extension_bootstrap_containers::BootstrapContainersSettingsV1, ntp: settings_extension_ntp::NtpSettingsV1, network: settings_extension_network::NetworkSettingsV1, kernel: settings_extension_kernel::KernelSettingsV1, @@ -18,7 +16,7 @@ struct Settings { metrics: settings_extension_metrics::MetricsSettingsV1, pki: settings_extension_pki::PkiSettingsV1, container_registry: settings_extension_container_registry::RegistrySettingsV1, - oci_defaults: OciDefaults, + oci_defaults: settings_extension_oci_defaults::OciDefaultsV1, oci_hooks: settings_extension_oci_hooks::OciHooksSettingsV1, cloudformation: settings_extension_cloudformation::CloudFormationSettingsV1, autoscaling: settings_extension_autoscaling::AutoScalingSettingsV1, diff --git a/sources/models/src/aws-ecs-1/mod.rs b/sources/models/src/aws-ecs-1/mod.rs index 1f483483640..6cdb1fe0abd 100644 --- a/sources/models/src/aws-ecs-1/mod.rs +++ b/sources/models/src/aws-ecs-1/mod.rs @@ -1,7 +1,5 @@ use model_derive::model; -use crate::OciDefaults; - // Note: we have to use 'rename' here because the top-level Settings structure is the only one // that uses its name in serialization; internal structures use the field name that points to it #[model(rename = "settings", impl_default = true)] @@ -9,7 +7,7 @@ struct Settings { motd: settings_extension_motd::MotdV1, updates: settings_extension_updates::UpdatesSettingsV1, host_containers: settings_extension_host_containers::HostContainersSettingsV1, - bootstrap_containers: settings_extension_bootstrap_container::BootstrapContainerSettingsV1, + bootstrap_containers: settings_extension_bootstrap_containers::BootstrapContainersSettingsV1, ntp: settings_extension_ntp::NtpSettingsV1, network: settings_extension_network::NetworkSettingsV1, kernel: settings_extension_kernel::KernelSettingsV1, @@ -18,7 +16,7 @@ struct Settings { metrics: settings_extension_metrics::MetricsSettingsV1, pki: settings_extension_pki::PkiSettingsV1, container_registry: settings_extension_container_registry::RegistrySettingsV1, - oci_defaults: OciDefaults, + oci_defaults: settings_extension_oci_defaults::OciDefaultsV1, oci_hooks: settings_extension_oci_hooks::OciHooksSettingsV1, cloudformation: settings_extension_cloudformation::CloudFormationSettingsV1, autoscaling: settings_extension_autoscaling::AutoScalingSettingsV1, diff --git a/sources/models/src/aws-ecs-2-nvidia/mod.rs b/sources/models/src/aws-ecs-2-nvidia/mod.rs index 6cb087580fe..01277416c0f 100644 --- a/sources/models/src/aws-ecs-2-nvidia/mod.rs +++ b/sources/models/src/aws-ecs-2-nvidia/mod.rs @@ -1,6 +1,6 @@ use model_derive::model; -use crate::{BootSettings, OciDefaults}; +use crate::BootSettings; // Note: we have to use 'rename' here because the top-level Settings structure is the only one // that uses its name in serialization; internal structures use the field name that points to it @@ -9,7 +9,7 @@ struct Settings { motd: settings_extension_motd::MotdV1, updates: settings_extension_updates::UpdatesSettingsV1, host_containers: settings_extension_host_containers::HostContainersSettingsV1, - bootstrap_containers: settings_extension_bootstrap_container::BootstrapContainerSettingsV1, + bootstrap_containers: settings_extension_bootstrap_containers::BootstrapContainersSettingsV1, ntp: settings_extension_ntp::NtpSettingsV1, network: settings_extension_network::NetworkSettingsV1, kernel: settings_extension_kernel::KernelSettingsV1, @@ -19,7 +19,7 @@ struct Settings { metrics: settings_extension_metrics::MetricsSettingsV1, pki: settings_extension_pki::PkiSettingsV1, container_registry: settings_extension_container_registry::RegistrySettingsV1, - oci_defaults: OciDefaults, + oci_defaults: settings_extension_oci_defaults::OciDefaultsV1, oci_hooks: settings_extension_oci_hooks::OciHooksSettingsV1, cloudformation: settings_extension_cloudformation::CloudFormationSettingsV1, autoscaling: settings_extension_autoscaling::AutoScalingSettingsV1, diff --git a/sources/models/src/aws-ecs-2/mod.rs b/sources/models/src/aws-ecs-2/mod.rs index 6cb087580fe..01277416c0f 100644 --- a/sources/models/src/aws-ecs-2/mod.rs +++ b/sources/models/src/aws-ecs-2/mod.rs @@ -1,6 +1,6 @@ use model_derive::model; -use crate::{BootSettings, OciDefaults}; +use crate::BootSettings; // Note: we have to use 'rename' here because the top-level Settings structure is the only one // that uses its name in serialization; internal structures use the field name that points to it @@ -9,7 +9,7 @@ struct Settings { motd: settings_extension_motd::MotdV1, updates: settings_extension_updates::UpdatesSettingsV1, host_containers: settings_extension_host_containers::HostContainersSettingsV1, - bootstrap_containers: settings_extension_bootstrap_container::BootstrapContainerSettingsV1, + bootstrap_containers: settings_extension_bootstrap_containers::BootstrapContainersSettingsV1, ntp: settings_extension_ntp::NtpSettingsV1, network: settings_extension_network::NetworkSettingsV1, kernel: settings_extension_kernel::KernelSettingsV1, @@ -19,7 +19,7 @@ struct Settings { metrics: settings_extension_metrics::MetricsSettingsV1, pki: settings_extension_pki::PkiSettingsV1, container_registry: settings_extension_container_registry::RegistrySettingsV1, - oci_defaults: OciDefaults, + oci_defaults: settings_extension_oci_defaults::OciDefaultsV1, oci_hooks: settings_extension_oci_hooks::OciHooksSettingsV1, cloudformation: settings_extension_cloudformation::CloudFormationSettingsV1, autoscaling: settings_extension_autoscaling::AutoScalingSettingsV1, diff --git a/sources/models/src/aws-k8s-1.24-nvidia/mod.rs b/sources/models/src/aws-k8s-1.24-nvidia/mod.rs index f7b10e65532..473c050171d 100644 --- a/sources/models/src/aws-k8s-1.24-nvidia/mod.rs +++ b/sources/models/src/aws-k8s-1.24-nvidia/mod.rs @@ -1,4 +1,4 @@ -use crate::{BootSettings, KubernetesSettings, OciDefaults}; +use crate::{BootSettings, KubernetesSettings}; use model_derive::model; @@ -10,7 +10,7 @@ struct Settings { kubernetes: KubernetesSettings, updates: settings_extension_updates::UpdatesSettingsV1, host_containers: settings_extension_host_containers::HostContainersSettingsV1, - bootstrap_containers: settings_extension_bootstrap_container::BootstrapContainerSettingsV1, + bootstrap_containers: settings_extension_bootstrap_containers::BootstrapContainersSettingsV1, ntp: settings_extension_ntp::NtpSettingsV1, network: settings_extension_network::NetworkSettingsV1, kernel: settings_extension_kernel::KernelSettingsV1, @@ -19,7 +19,7 @@ struct Settings { metrics: settings_extension_metrics::MetricsSettingsV1, pki: settings_extension_pki::PkiSettingsV1, container_registry: settings_extension_container_registry::RegistrySettingsV1, - oci_defaults: OciDefaults, + oci_defaults: settings_extension_oci_defaults::OciDefaultsV1, oci_hooks: settings_extension_oci_hooks::OciHooksSettingsV1, cloudformation: settings_extension_cloudformation::CloudFormationSettingsV1, dns: settings_extension_dns::DnsSettingsV1, diff --git a/sources/models/src/aws-k8s-1.24/mod.rs b/sources/models/src/aws-k8s-1.24/mod.rs index f7b10e65532..473c050171d 100644 --- a/sources/models/src/aws-k8s-1.24/mod.rs +++ b/sources/models/src/aws-k8s-1.24/mod.rs @@ -1,4 +1,4 @@ -use crate::{BootSettings, KubernetesSettings, OciDefaults}; +use crate::{BootSettings, KubernetesSettings}; use model_derive::model; @@ -10,7 +10,7 @@ struct Settings { kubernetes: KubernetesSettings, updates: settings_extension_updates::UpdatesSettingsV1, host_containers: settings_extension_host_containers::HostContainersSettingsV1, - bootstrap_containers: settings_extension_bootstrap_container::BootstrapContainerSettingsV1, + bootstrap_containers: settings_extension_bootstrap_containers::BootstrapContainersSettingsV1, ntp: settings_extension_ntp::NtpSettingsV1, network: settings_extension_network::NetworkSettingsV1, kernel: settings_extension_kernel::KernelSettingsV1, @@ -19,7 +19,7 @@ struct Settings { metrics: settings_extension_metrics::MetricsSettingsV1, pki: settings_extension_pki::PkiSettingsV1, container_registry: settings_extension_container_registry::RegistrySettingsV1, - oci_defaults: OciDefaults, + oci_defaults: settings_extension_oci_defaults::OciDefaultsV1, oci_hooks: settings_extension_oci_hooks::OciHooksSettingsV1, cloudformation: settings_extension_cloudformation::CloudFormationSettingsV1, dns: settings_extension_dns::DnsSettingsV1, diff --git a/sources/models/src/aws-k8s-1.25-nvidia/mod.rs b/sources/models/src/aws-k8s-1.25-nvidia/mod.rs index f7b10e65532..473c050171d 100644 --- a/sources/models/src/aws-k8s-1.25-nvidia/mod.rs +++ b/sources/models/src/aws-k8s-1.25-nvidia/mod.rs @@ -1,4 +1,4 @@ -use crate::{BootSettings, KubernetesSettings, OciDefaults}; +use crate::{BootSettings, KubernetesSettings}; use model_derive::model; @@ -10,7 +10,7 @@ struct Settings { kubernetes: KubernetesSettings, updates: settings_extension_updates::UpdatesSettingsV1, host_containers: settings_extension_host_containers::HostContainersSettingsV1, - bootstrap_containers: settings_extension_bootstrap_container::BootstrapContainerSettingsV1, + bootstrap_containers: settings_extension_bootstrap_containers::BootstrapContainersSettingsV1, ntp: settings_extension_ntp::NtpSettingsV1, network: settings_extension_network::NetworkSettingsV1, kernel: settings_extension_kernel::KernelSettingsV1, @@ -19,7 +19,7 @@ struct Settings { metrics: settings_extension_metrics::MetricsSettingsV1, pki: settings_extension_pki::PkiSettingsV1, container_registry: settings_extension_container_registry::RegistrySettingsV1, - oci_defaults: OciDefaults, + oci_defaults: settings_extension_oci_defaults::OciDefaultsV1, oci_hooks: settings_extension_oci_hooks::OciHooksSettingsV1, cloudformation: settings_extension_cloudformation::CloudFormationSettingsV1, dns: settings_extension_dns::DnsSettingsV1, diff --git a/sources/models/src/aws-k8s-1.25/mod.rs b/sources/models/src/aws-k8s-1.25/mod.rs index f7b10e65532..473c050171d 100644 --- a/sources/models/src/aws-k8s-1.25/mod.rs +++ b/sources/models/src/aws-k8s-1.25/mod.rs @@ -1,4 +1,4 @@ -use crate::{BootSettings, KubernetesSettings, OciDefaults}; +use crate::{BootSettings, KubernetesSettings}; use model_derive::model; @@ -10,7 +10,7 @@ struct Settings { kubernetes: KubernetesSettings, updates: settings_extension_updates::UpdatesSettingsV1, host_containers: settings_extension_host_containers::HostContainersSettingsV1, - bootstrap_containers: settings_extension_bootstrap_container::BootstrapContainerSettingsV1, + bootstrap_containers: settings_extension_bootstrap_containers::BootstrapContainersSettingsV1, ntp: settings_extension_ntp::NtpSettingsV1, network: settings_extension_network::NetworkSettingsV1, kernel: settings_extension_kernel::KernelSettingsV1, @@ -19,7 +19,7 @@ struct Settings { metrics: settings_extension_metrics::MetricsSettingsV1, pki: settings_extension_pki::PkiSettingsV1, container_registry: settings_extension_container_registry::RegistrySettingsV1, - oci_defaults: OciDefaults, + oci_defaults: settings_extension_oci_defaults::OciDefaultsV1, oci_hooks: settings_extension_oci_hooks::OciHooksSettingsV1, cloudformation: settings_extension_cloudformation::CloudFormationSettingsV1, dns: settings_extension_dns::DnsSettingsV1, diff --git a/sources/models/src/aws-k8s-1.26-nvidia/mod.rs b/sources/models/src/aws-k8s-1.26-nvidia/mod.rs index f7b10e65532..473c050171d 100644 --- a/sources/models/src/aws-k8s-1.26-nvidia/mod.rs +++ b/sources/models/src/aws-k8s-1.26-nvidia/mod.rs @@ -1,4 +1,4 @@ -use crate::{BootSettings, KubernetesSettings, OciDefaults}; +use crate::{BootSettings, KubernetesSettings}; use model_derive::model; @@ -10,7 +10,7 @@ struct Settings { kubernetes: KubernetesSettings, updates: settings_extension_updates::UpdatesSettingsV1, host_containers: settings_extension_host_containers::HostContainersSettingsV1, - bootstrap_containers: settings_extension_bootstrap_container::BootstrapContainerSettingsV1, + bootstrap_containers: settings_extension_bootstrap_containers::BootstrapContainersSettingsV1, ntp: settings_extension_ntp::NtpSettingsV1, network: settings_extension_network::NetworkSettingsV1, kernel: settings_extension_kernel::KernelSettingsV1, @@ -19,7 +19,7 @@ struct Settings { metrics: settings_extension_metrics::MetricsSettingsV1, pki: settings_extension_pki::PkiSettingsV1, container_registry: settings_extension_container_registry::RegistrySettingsV1, - oci_defaults: OciDefaults, + oci_defaults: settings_extension_oci_defaults::OciDefaultsV1, oci_hooks: settings_extension_oci_hooks::OciHooksSettingsV1, cloudformation: settings_extension_cloudformation::CloudFormationSettingsV1, dns: settings_extension_dns::DnsSettingsV1, diff --git a/sources/models/src/aws-k8s-1.26/mod.rs b/sources/models/src/aws-k8s-1.26/mod.rs index f7b10e65532..473c050171d 100644 --- a/sources/models/src/aws-k8s-1.26/mod.rs +++ b/sources/models/src/aws-k8s-1.26/mod.rs @@ -1,4 +1,4 @@ -use crate::{BootSettings, KubernetesSettings, OciDefaults}; +use crate::{BootSettings, KubernetesSettings}; use model_derive::model; @@ -10,7 +10,7 @@ struct Settings { kubernetes: KubernetesSettings, updates: settings_extension_updates::UpdatesSettingsV1, host_containers: settings_extension_host_containers::HostContainersSettingsV1, - bootstrap_containers: settings_extension_bootstrap_container::BootstrapContainerSettingsV1, + bootstrap_containers: settings_extension_bootstrap_containers::BootstrapContainersSettingsV1, ntp: settings_extension_ntp::NtpSettingsV1, network: settings_extension_network::NetworkSettingsV1, kernel: settings_extension_kernel::KernelSettingsV1, @@ -19,7 +19,7 @@ struct Settings { metrics: settings_extension_metrics::MetricsSettingsV1, pki: settings_extension_pki::PkiSettingsV1, container_registry: settings_extension_container_registry::RegistrySettingsV1, - oci_defaults: OciDefaults, + oci_defaults: settings_extension_oci_defaults::OciDefaultsV1, oci_hooks: settings_extension_oci_hooks::OciHooksSettingsV1, cloudformation: settings_extension_cloudformation::CloudFormationSettingsV1, dns: settings_extension_dns::DnsSettingsV1, diff --git a/sources/models/src/aws-k8s-1.30-nvidia/mod.rs b/sources/models/src/aws-k8s-1.30-nvidia/mod.rs index f7b10e65532..473c050171d 100644 --- a/sources/models/src/aws-k8s-1.30-nvidia/mod.rs +++ b/sources/models/src/aws-k8s-1.30-nvidia/mod.rs @@ -1,4 +1,4 @@ -use crate::{BootSettings, KubernetesSettings, OciDefaults}; +use crate::{BootSettings, KubernetesSettings}; use model_derive::model; @@ -10,7 +10,7 @@ struct Settings { kubernetes: KubernetesSettings, updates: settings_extension_updates::UpdatesSettingsV1, host_containers: settings_extension_host_containers::HostContainersSettingsV1, - bootstrap_containers: settings_extension_bootstrap_container::BootstrapContainerSettingsV1, + bootstrap_containers: settings_extension_bootstrap_containers::BootstrapContainersSettingsV1, ntp: settings_extension_ntp::NtpSettingsV1, network: settings_extension_network::NetworkSettingsV1, kernel: settings_extension_kernel::KernelSettingsV1, @@ -19,7 +19,7 @@ struct Settings { metrics: settings_extension_metrics::MetricsSettingsV1, pki: settings_extension_pki::PkiSettingsV1, container_registry: settings_extension_container_registry::RegistrySettingsV1, - oci_defaults: OciDefaults, + oci_defaults: settings_extension_oci_defaults::OciDefaultsV1, oci_hooks: settings_extension_oci_hooks::OciHooksSettingsV1, cloudformation: settings_extension_cloudformation::CloudFormationSettingsV1, dns: settings_extension_dns::DnsSettingsV1, diff --git a/sources/models/src/aws-k8s-1.30/mod.rs b/sources/models/src/aws-k8s-1.30/mod.rs index f7b10e65532..473c050171d 100644 --- a/sources/models/src/aws-k8s-1.30/mod.rs +++ b/sources/models/src/aws-k8s-1.30/mod.rs @@ -1,4 +1,4 @@ -use crate::{BootSettings, KubernetesSettings, OciDefaults}; +use crate::{BootSettings, KubernetesSettings}; use model_derive::model; @@ -10,7 +10,7 @@ struct Settings { kubernetes: KubernetesSettings, updates: settings_extension_updates::UpdatesSettingsV1, host_containers: settings_extension_host_containers::HostContainersSettingsV1, - bootstrap_containers: settings_extension_bootstrap_container::BootstrapContainerSettingsV1, + bootstrap_containers: settings_extension_bootstrap_containers::BootstrapContainersSettingsV1, ntp: settings_extension_ntp::NtpSettingsV1, network: settings_extension_network::NetworkSettingsV1, kernel: settings_extension_kernel::KernelSettingsV1, @@ -19,7 +19,7 @@ struct Settings { metrics: settings_extension_metrics::MetricsSettingsV1, pki: settings_extension_pki::PkiSettingsV1, container_registry: settings_extension_container_registry::RegistrySettingsV1, - oci_defaults: OciDefaults, + oci_defaults: settings_extension_oci_defaults::OciDefaultsV1, oci_hooks: settings_extension_oci_hooks::OciHooksSettingsV1, cloudformation: settings_extension_cloudformation::CloudFormationSettingsV1, dns: settings_extension_dns::DnsSettingsV1, diff --git a/sources/models/src/metal-dev/mod.rs b/sources/models/src/metal-dev/mod.rs index 8c109858eb6..6e56dc820da 100644 --- a/sources/models/src/metal-dev/mod.rs +++ b/sources/models/src/metal-dev/mod.rs @@ -9,7 +9,7 @@ struct Settings { motd: settings_extension_motd::MotdV1, updates: settings_extension_updates::UpdatesSettingsV1, host_containers: settings_extension_host_containers::HostContainersSettingsV1, - bootstrap_containers: settings_extension_bootstrap_container::BootstrapContainerSettingsV1, + bootstrap_containers: settings_extension_bootstrap_containers::BootstrapContainersSettingsV1, ntp: settings_extension_ntp::NtpSettingsV1, network: settings_extension_network::NetworkSettingsV1, kernel: settings_extension_kernel::KernelSettingsV1, diff --git a/sources/models/src/metal-k8s-1.29/mod.rs b/sources/models/src/metal-k8s-1.29/mod.rs index 1952a128e55..161224cb2c8 100644 --- a/sources/models/src/metal-k8s-1.29/mod.rs +++ b/sources/models/src/metal-k8s-1.29/mod.rs @@ -1,6 +1,6 @@ use model_derive::model; -use crate::{BootSettings, KubernetesSettings, OciDefaults}; +use crate::{BootSettings, KubernetesSettings}; // Note: we have to use 'rename' here because the top-level Settings structure is the only one // that uses its name in serialization; internal structures use the field name that points to it @@ -10,7 +10,7 @@ struct Settings { kubernetes: KubernetesSettings, updates: settings_extension_updates::UpdatesSettingsV1, host_containers: settings_extension_host_containers::HostContainersSettingsV1, - bootstrap_containers: settings_extension_bootstrap_container::BootstrapContainerSettingsV1, + bootstrap_containers: settings_extension_bootstrap_containers::BootstrapContainersSettingsV1, ntp: settings_extension_ntp::NtpSettingsV1, network: settings_extension_network::NetworkSettingsV1, kernel: settings_extension_kernel::KernelSettingsV1, @@ -19,7 +19,7 @@ struct Settings { metrics: settings_extension_metrics::MetricsSettingsV1, pki: settings_extension_pki::PkiSettingsV1, container_registry: settings_extension_container_registry::RegistrySettingsV1, - oci_defaults: OciDefaults, + oci_defaults: settings_extension_oci_defaults::OciDefaultsV1, oci_hooks: settings_extension_oci_hooks::OciHooksSettingsV1, dns: settings_extension_dns::DnsSettingsV1, container_runtime: settings_extension_container_runtime::ContainerRuntimeSettingsV1, diff --git a/sources/models/src/vmware-dev/mod.rs b/sources/models/src/vmware-dev/mod.rs index 8c109858eb6..6e56dc820da 100644 --- a/sources/models/src/vmware-dev/mod.rs +++ b/sources/models/src/vmware-dev/mod.rs @@ -9,7 +9,7 @@ struct Settings { motd: settings_extension_motd::MotdV1, updates: settings_extension_updates::UpdatesSettingsV1, host_containers: settings_extension_host_containers::HostContainersSettingsV1, - bootstrap_containers: settings_extension_bootstrap_container::BootstrapContainerSettingsV1, + bootstrap_containers: settings_extension_bootstrap_containers::BootstrapContainersSettingsV1, ntp: settings_extension_ntp::NtpSettingsV1, network: settings_extension_network::NetworkSettingsV1, kernel: settings_extension_kernel::KernelSettingsV1, diff --git a/sources/models/src/vmware-k8s-1.30/mod.rs b/sources/models/src/vmware-k8s-1.30/mod.rs index eb9c842be52..fd071915fe0 100644 --- a/sources/models/src/vmware-k8s-1.30/mod.rs +++ b/sources/models/src/vmware-k8s-1.30/mod.rs @@ -1,6 +1,6 @@ use model_derive::model; -use crate::{BootSettings, KubernetesSettings, OciDefaults}; +use crate::{BootSettings, KubernetesSettings}; // Note: we have to use 'rename' here because the top-level Settings structure is the only one // that uses its name in serialization; internal structures use the field name that points to it @@ -10,7 +10,7 @@ struct Settings { kubernetes: KubernetesSettings, updates: settings_extension_updates::UpdatesSettingsV1, host_containers: settings_extension_host_containers::HostContainersSettingsV1, - bootstrap_containers: settings_extension_bootstrap_container::BootstrapContainerSettingsV1, + bootstrap_containers: settings_extension_bootstrap_containers::BootstrapContainersSettingsV1, ntp: settings_extension_ntp::NtpSettingsV1, network: settings_extension_network::NetworkSettingsV1, kernel: settings_extension_kernel::KernelSettingsV1, @@ -19,7 +19,7 @@ struct Settings { metrics: settings_extension_metrics::MetricsSettingsV1, pki: settings_extension_pki::PkiSettingsV1, container_registry: settings_extension_container_registry::RegistrySettingsV1, - oci_defaults: OciDefaults, + oci_defaults: settings_extension_oci_defaults::OciDefaultsV1, oci_hooks: settings_extension_oci_hooks::OciHooksSettingsV1, dns: settings_extension_dns::DnsSettingsV1, container_runtime: settings_extension_container_runtime::ContainerRuntimeSettingsV1, diff --git a/sources/settings-extensions/autoscaling/src/lib.rs b/sources/settings-extensions/autoscaling/src/lib.rs index e6bd27074ac..e1f8c390c25 100644 --- a/sources/settings-extensions/autoscaling/src/lib.rs +++ b/sources/settings-extensions/autoscaling/src/lib.rs @@ -43,7 +43,7 @@ mod test { use super::*; #[test] - fn test_generate_oci_hooks() { + fn test_generate_autoscaling() { assert_eq!( AutoScalingSettingsV1::generate(None, None).unwrap(), GenerateResult::Complete(AutoScalingSettingsV1 { should_wait: None }) @@ -51,7 +51,7 @@ mod test { } #[test] - fn test_serde_oci_hooks() { + fn test_serde_autoscaling() { let test_json = r#"{"should-wait":true}"#; let autoscaling: AutoScalingSettingsV1 = serde_json::from_str(test_json).unwrap(); diff --git a/sources/settings-extensions/bootstrap-container/Cargo.toml b/sources/settings-extensions/bootstrap-containers/Cargo.toml similarity index 92% rename from sources/settings-extensions/bootstrap-container/Cargo.toml rename to sources/settings-extensions/bootstrap-containers/Cargo.toml index 54b6450f5e4..7b311a42396 100644 --- a/sources/settings-extensions/bootstrap-container/Cargo.toml +++ b/sources/settings-extensions/bootstrap-containers/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "settings-extension-bootstrap-container" +name = "settings-extension-bootstrap-containers" version = "0.1.0" authors = ["Gaurav Sharma "] license = "Apache-2.0 OR MIT" diff --git a/sources/settings-extensions/bootstrap-container/bootstrap-container.toml b/sources/settings-extensions/bootstrap-containers/bootstrap-containers.toml similarity index 100% rename from sources/settings-extensions/bootstrap-container/bootstrap-container.toml rename to sources/settings-extensions/bootstrap-containers/bootstrap-containers.toml diff --git a/sources/settings-extensions/bootstrap-container/src/lib.rs b/sources/settings-extensions/bootstrap-containers/src/lib.rs similarity index 81% rename from sources/settings-extensions/bootstrap-container/src/lib.rs rename to sources/settings-extensions/bootstrap-containers/src/lib.rs index 845e4dcdc00..cfe7614fdc1 100644 --- a/sources/settings-extensions/bootstrap-container/src/lib.rs +++ b/sources/settings-extensions/bootstrap-containers/src/lib.rs @@ -6,11 +6,13 @@ use serde::{Deserialize, Deserializer, Serialize, Serializer}; use std::{collections::HashMap, convert::Infallible}; #[derive(Debug, Default, PartialEq)] -pub struct BootstrapContainerSettingsV1 { +pub struct BootstrapContainersSettingsV1 { pub bootstrap_containers: HashMap, } -impl Serialize for BootstrapContainerSettingsV1 { +// Custom serializer/deserializer added to maintain backwards +// compatibility with models created prior to settings extensions. +impl Serialize for BootstrapContainersSettingsV1 { fn serialize(&self, serializer: S) -> std::result::Result where S: Serializer, @@ -19,7 +21,7 @@ impl Serialize for BootstrapContainerSettingsV1 { } } -impl<'de> Deserialize<'de> for BootstrapContainerSettingsV1 { +impl<'de> Deserialize<'de> for BootstrapContainersSettingsV1 { fn deserialize(deserializer: D) -> std::result::Result where D: Deserializer<'de>, @@ -41,7 +43,7 @@ struct BootstrapContainer { type Result = std::result::Result; -impl SettingsModel for BootstrapContainerSettingsV1 { +impl SettingsModel for BootstrapContainersSettingsV1 { type PartialKind = Self; type ErrorKind = Infallible; @@ -50,7 +52,7 @@ impl SettingsModel for BootstrapContainerSettingsV1 { } fn set(_current_value: Option, _target: Self) -> Result<()> { - // Set anything that parses as BootstrapContainerSettingsV1. + // Set anything that parses as BootstrapContainersSettingsV1. Ok(()) } @@ -64,7 +66,7 @@ impl SettingsModel for BootstrapContainerSettingsV1 { } fn validate(_value: Self, _validated_settings: Option) -> Result<()> { - // Validate anything that parses as BootstrapContainerSettingsV1. + // Validate anything that parses as BootstrapContainersSettingsV1. Ok(()) } } @@ -75,12 +77,12 @@ mod test { use serde_json::json; #[test] - fn test_generate_bootstarp_container_settings() { - let generated = BootstrapContainerSettingsV1::generate(None, None).unwrap(); + fn test_generate_bootstrap_container_settings() { + let generated = BootstrapContainersSettingsV1::generate(None, None).unwrap(); assert_eq!( generated, - GenerateResult::Complete(BootstrapContainerSettingsV1 { + GenerateResult::Complete(BootstrapContainersSettingsV1 { bootstrap_containers: HashMap::new(), }) ) @@ -99,7 +101,7 @@ mod test { let test_json_str = test_json.to_string(); - let bootstrap_containers: BootstrapContainerSettingsV1 = + let bootstrap_containers: BootstrapContainersSettingsV1 = serde_json::from_str(&test_json_str).unwrap(); let mut expected_bootstrap_container: HashMap = @@ -121,7 +123,7 @@ mod test { assert_eq!( bootstrap_containers, - BootstrapContainerSettingsV1 { + BootstrapContainersSettingsV1 { bootstrap_containers: expected_bootstrap_container } ); diff --git a/sources/settings-extensions/bootstrap-container/src/main.rs b/sources/settings-extensions/bootstrap-containers/src/main.rs similarity index 72% rename from sources/settings-extensions/bootstrap-container/src/main.rs rename to sources/settings-extensions/bootstrap-containers/src/main.rs index dc2c7d8ac2f..a85c55128b4 100644 --- a/sources/settings-extensions/bootstrap-container/src/main.rs +++ b/sources/settings-extensions/bootstrap-containers/src/main.rs @@ -1,13 +1,13 @@ use bottlerocket_settings_sdk::{BottlerocketSetting, NullMigratorExtensionBuilder}; -use settings_extension_bootstrap_container::BootstrapContainerSettingsV1; +use settings_extension_bootstrap_containers::BootstrapContainersSettingsV1; use std::process::ExitCode; fn main() -> ExitCode { env_logger::init(); - match NullMigratorExtensionBuilder::with_name("bootstrap-container") + match NullMigratorExtensionBuilder::with_name("bootstrap-containers") .with_models(vec![ - BottlerocketSetting::::model(), + BottlerocketSetting::::model(), ]) .build() { diff --git a/sources/settings-extensions/host-containers/Cargo.toml b/sources/settings-extensions/host-containers/Cargo.toml index b58ded8bf30..2b03d013286 100644 --- a/sources/settings-extensions/host-containers/Cargo.toml +++ b/sources/settings-extensions/host-containers/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "settings-extension-host-containers" version = "0.1.0" -authors = ["Sam Berning "] +authors = ["Gaurav Sharma "] edition = "2021" license = "Apache-2.0 OR MIT" publish = false diff --git a/sources/settings-extensions/host-containers/src/lib.rs b/sources/settings-extensions/host-containers/src/lib.rs index 9df372856c8..b52b9b340f3 100644 --- a/sources/settings-extensions/host-containers/src/lib.rs +++ b/sources/settings-extensions/host-containers/src/lib.rs @@ -11,6 +11,8 @@ pub struct HostContainersSettingsV1 { pub host_containers: HashMap, } +// Custom serializer/deserializer added to maintain backwards +// compatibility with models created prior to settings extensions. impl Serialize for HostContainersSettingsV1 { fn serialize(&self, serializer: S) -> std::result::Result where @@ -54,12 +56,12 @@ impl SettingsModel for HostContainersSettingsV1 { } fn generate( - _existing_partial: Option, + existing_partial: Option, _dependent_settings: Option, ) -> Result> { - Ok(GenerateResult::Complete(HostContainersSettingsV1 { - host_containers: HashMap::new(), - })) + Ok(GenerateResult::Complete( + existing_partial.unwrap_or_default(), + )) } fn validate(_value: Self, _validated_settings: Option) -> Result<()> { diff --git a/sources/settings-extensions/network/Cargo.toml b/sources/settings-extensions/network/Cargo.toml index 5049786f6ff..1c4ae62aef3 100644 --- a/sources/settings-extensions/network/Cargo.toml +++ b/sources/settings-extensions/network/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "settings-extension-network" version = "0.1.0" -authors = ["Sam Berning "] +authors = ["Gaurav Sharma "] license = "Apache-2.0 OR MIT" edition = "2021" publish = false