diff --git a/Release.toml b/Release.toml index aece4bc2822..2e4b1871ed4 100644 --- a/Release.toml +++ b/Release.toml @@ -246,3 +246,6 @@ version = "1.16.0" "migrate_v1.16.0_public-control-container-v0-7-5.lz4", "migrate_v1.16.0_schnauzer-v2-generators.lz4", ] +"(1.16.0, 1.16.1)" = [ + "migrate_v1.16.1_updog-network-affected.lz4", +] diff --git a/sources/Cargo.lock b/sources/Cargo.lock index 8058b922139..3e7f604dbd5 100644 --- a/sources/Cargo.lock +++ b/sources/Cargo.lock @@ -4444,6 +4444,13 @@ dependencies = [ "url", ] +[[package]] +name = "updog-network-affected" +version = "0.1.0" +dependencies = [ + "migration-helpers", +] + [[package]] name = "url" version = "2.4.1" diff --git a/sources/Cargo.toml b/sources/Cargo.toml index d13d462a177..e19d45e8ffc 100644 --- a/sources/Cargo.toml +++ b/sources/Cargo.toml @@ -78,6 +78,7 @@ members = [ "api/migration/migrations/v1.16.0/aws-control-container-v0-7-5", "api/migration/migrations/v1.16.0/public-control-container-v0-7-5", "api/migration/migrations/v1.16.0/schnauzer-v2-generators", + "api/migration/migrations/v1.16.1/updog-network-affected", "bloodhound", diff --git a/sources/api/migration/migrations/v1.16.1/updog-network-affected/Cargo.toml b/sources/api/migration/migrations/v1.16.1/updog-network-affected/Cargo.toml new file mode 100644 index 00000000000..8adc750edf4 --- /dev/null +++ b/sources/api/migration/migrations/v1.16.1/updog-network-affected/Cargo.toml @@ -0,0 +1,10 @@ +[package] +name = "updog-network-affected" +version = "0.1.0" +authors = ["Erikson Tung "] +license = "Apache-2.0 OR MIT" +edition = "2021" +publish = false + +[dependencies] +migration-helpers = { path = "../../../migration-helpers", version = "0.1.0" } diff --git a/sources/api/migration/migrations/v1.16.1/updog-network-affected/src/main.rs b/sources/api/migration/migrations/v1.16.1/updog-network-affected/src/main.rs new file mode 100644 index 00000000000..fdc0513ca21 --- /dev/null +++ b/sources/api/migration/migrations/v1.16.1/updog-network-affected/src/main.rs @@ -0,0 +1,81 @@ +use migration_helpers::common_migrations::{ + MetadataListReplacement, ReplaceMetadataListsMigration, +}; +use migration_helpers::{migrate, Result}; +use std::process; + +/// We updated the 'affected-services' list metadata for 'settings.network' to include +/// updog. The metadata list need to be restored to the prior value on downgrade and +/// updated to include updog on upgrades. +/// We're trying to match old values for different variants. +fn run() -> Result<()> { + migrate(ReplaceMetadataListsMigration(vec![ + MetadataListReplacement { + setting: "settings.network", + metadata: "affected-services", + old_vals: &["containerd", "host-containerd", "host-containers"], + new_vals: &["containerd", "host-containerd", "host-containers", "updog"], + }, + // For K8S variants + MetadataListReplacement { + setting: "settings.network", + metadata: "affected-services", + old_vals: &[ + "containerd", + "kubernetes", + "host-containerd", + "host-containers", + ], + new_vals: &[ + "containerd", + "kubernetes", + "host-containerd", + "host-containers", + "updog", + ], + }, + // For the ECS variants + MetadataListReplacement { + setting: "settings.network", + metadata: "affected-services", + old_vals: &[ + "containerd", + "docker", + "ecs", + "host-containerd", + "host-containers", + ], + new_vals: &[ + "containerd", + "docker", + "ecs", + "host-containerd", + "host-containers", + "updog", + ], + }, + // For *-dev variants + MetadataListReplacement { + setting: "settings.network", + metadata: "affected-services", + old_vals: &["containerd", "docker", "host-containerd", "host-containers"], + new_vals: &[ + "containerd", + "docker", + "host-containerd", + "host-containers", + "updog", + ], + }, + ])) +} + +// Returning a Result from main makes it print a Debug representation of the error, but with Snafu +// we have nice Display representations of the error, so we wrap "main" (run) and print any error. +// https://github.com/shepmaster/snafu/issues/110 +fn main() { + if let Err(e) = run() { + eprintln!("{}", e); + process::exit(1); + } +} diff --git a/sources/models/shared-defaults/defaults.toml b/sources/models/shared-defaults/defaults.toml index f86b071f6dc..c6b59f67432 100644 --- a/sources/models/shared-defaults/defaults.toml +++ b/sources/models/shared-defaults/defaults.toml @@ -78,7 +78,7 @@ path = "/etc/network/proxy.env" template-path = "/usr/share/templates/proxy-env" [metadata.settings.network] -affected-services = ["containerd", "host-containerd", "host-containers"] +affected-services = ["containerd", "host-containerd", "host-containers", "updog"] [metadata.settings.network.hostname] affected-services = ["hostname", "hosts"] diff --git a/sources/models/shared-defaults/ecs.toml b/sources/models/shared-defaults/ecs.toml index e5bfa08212e..48061b3c376 100644 --- a/sources/models/shared-defaults/ecs.toml +++ b/sources/models/shared-defaults/ecs.toml @@ -22,7 +22,7 @@ service-checks = ["apiserver", "chronyd", "containerd", "host-containerd", "dock # Network [metadata.settings.network] -affected-services = ["containerd", "docker", "ecs", "host-containerd", "host-containers"] +affected-services = ["containerd", "docker", "ecs", "host-containerd", "host-containers", "updog"] # Image registry credentials [metadata.settings.container-registry.credentials] diff --git a/sources/models/shared-defaults/kubernetes-aws.toml b/sources/models/shared-defaults/kubernetes-aws.toml index b7f32614cac..9990d92bc83 100644 --- a/sources/models/shared-defaults/kubernetes-aws.toml +++ b/sources/models/shared-defaults/kubernetes-aws.toml @@ -20,7 +20,7 @@ affected-services = ["kubernetes", "containerd"] service-checks = ["apiserver", "chronyd", "containerd", "host-containerd", "kubelet"] [metadata.settings.network] -affected-services = ["containerd", "kubernetes", "host-containerd", "host-containers"] +affected-services = ["containerd", "kubernetes", "host-containerd", "host-containers", "updog"] [services.autoscaling-warm-pool] configuration-files = ["warm-pool-wait-toml"] diff --git a/sources/models/shared-defaults/kubernetes-metal.toml b/sources/models/shared-defaults/kubernetes-metal.toml index 536acadfb98..64979768e9d 100644 --- a/sources/models/shared-defaults/kubernetes-metal.toml +++ b/sources/models/shared-defaults/kubernetes-metal.toml @@ -16,4 +16,4 @@ service-checks = ["apiserver", "chronyd", "containerd", "host-containerd", "kube # Network [metadata.settings.network] -affected-services = ["containerd", "kubernetes", "host-containerd", "host-containers"] +affected-services = ["containerd", "kubernetes", "host-containerd", "host-containers", "updog"] diff --git a/sources/models/shared-defaults/kubernetes-vmware.toml b/sources/models/shared-defaults/kubernetes-vmware.toml index f40df25e4b3..97df917988b 100644 --- a/sources/models/shared-defaults/kubernetes-vmware.toml +++ b/sources/models/shared-defaults/kubernetes-vmware.toml @@ -16,4 +16,4 @@ service-checks = ["apiserver", "chronyd", "containerd", "host-containerd", "kube # Network [metadata.settings.network] -affected-services = ["containerd", "kubernetes", "host-containerd", "host-containers"] +affected-services = ["containerd", "kubernetes", "host-containerd", "host-containers", "updog"] diff --git a/sources/models/src/aws-dev/defaults.d/50-aws-dev.toml b/sources/models/src/aws-dev/defaults.d/50-aws-dev.toml index 565e5422406..108db4a8a35 100644 --- a/sources/models/src/aws-dev/defaults.d/50-aws-dev.toml +++ b/sources/models/src/aws-dev/defaults.d/50-aws-dev.toml @@ -5,4 +5,4 @@ service-checks = ["apiserver", "chronyd", "containerd", "host-containerd", "dock # Network [metadata.settings.network] -affected-services = ["containerd", "docker", "host-containerd", "host-containers"] +affected-services = ["containerd", "docker", "host-containerd", "host-containers", "updog"] diff --git a/sources/models/src/metal-dev/defaults.d/50-metal-dev.toml b/sources/models/src/metal-dev/defaults.d/50-metal-dev.toml index 565e5422406..108db4a8a35 100644 --- a/sources/models/src/metal-dev/defaults.d/50-metal-dev.toml +++ b/sources/models/src/metal-dev/defaults.d/50-metal-dev.toml @@ -5,4 +5,4 @@ service-checks = ["apiserver", "chronyd", "containerd", "host-containerd", "dock # Network [metadata.settings.network] -affected-services = ["containerd", "docker", "host-containerd", "host-containers"] +affected-services = ["containerd", "docker", "host-containerd", "host-containers", "updog"] diff --git a/sources/models/src/vmware-dev/defaults.d/50-vmware-dev.toml b/sources/models/src/vmware-dev/defaults.d/50-vmware-dev.toml index fab449c9236..b2d2ce92ff0 100644 --- a/sources/models/src/vmware-dev/defaults.d/50-vmware-dev.toml +++ b/sources/models/src/vmware-dev/defaults.d/50-vmware-dev.toml @@ -5,4 +5,4 @@ service-checks = ["apiserver", "chronyd", "containerd", "host-containerd", "dock # Network [metadata.settings.network] -affected-services = ["containerd", "docker", "host-containerd", "host-containers"] +affected-services = ["containerd", "docker", "host-containerd", "host-containers", "updog"]