Skip to content

Commit

Permalink
shared-defaults: add missing updog to list of network-affected services
Browse files Browse the repository at this point in the history
We need to regenerate updog's config when the network proxy setting
changes.

Includes the migration for network's affected-services metadata.
  • Loading branch information
etungsten committed Nov 7, 2023
1 parent 42ee808 commit 6014898
Show file tree
Hide file tree
Showing 13 changed files with 110 additions and 8 deletions.
3 changes: 3 additions & 0 deletions Release.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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",
]
7 changes: 7 additions & 0 deletions sources/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions sources/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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",

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[package]
name = "updog-network-affected"
version = "0.1.0"
authors = ["Erikson Tung <[email protected]>"]
license = "Apache-2.0 OR MIT"
edition = "2021"
publish = false

[dependencies]
migration-helpers = { path = "../../../migration-helpers", version = "0.1.0" }
Original file line number Diff line number Diff line change
@@ -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);
}
}
2 changes: 1 addition & 1 deletion sources/models/shared-defaults/defaults.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
Expand Down
2 changes: 1 addition & 1 deletion sources/models/shared-defaults/ecs.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down
2 changes: 1 addition & 1 deletion sources/models/shared-defaults/kubernetes-aws.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
Expand Down
2 changes: 1 addition & 1 deletion sources/models/shared-defaults/kubernetes-metal.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
2 changes: 1 addition & 1 deletion sources/models/shared-defaults/kubernetes-vmware.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
2 changes: 1 addition & 1 deletion sources/models/src/aws-dev/defaults.d/50-aws-dev.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
2 changes: 1 addition & 1 deletion sources/models/src/metal-dev/defaults.d/50-metal-dev.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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"]
Original file line number Diff line number Diff line change
Expand Up @@ -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"]

0 comments on commit 6014898

Please sign in to comment.