Skip to content

Commit

Permalink
migrations: Change aws control host-container source metadata to object
Browse files Browse the repository at this point in the history
This migration will change the aws control host-container source
setting-generator from string to object setting-generator metadata
(that will generate source using sundog) on forward migration.
We will also add a strength file with value "weak".

In backward migration, it will reset the value of the source setting
generator as string and delete the strength metadata.
  • Loading branch information
vyaghras committed Jan 24, 2025
1 parent 36810b4 commit a74a9bc
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 0 deletions.
14 changes: 14 additions & 0 deletions sources/Cargo.lock

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

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[package]
name = "update-settings-generator-control"
version = "0.1.0"
authors = ["Shikha Vyaghra <[email protected]>"]
license = "Apache-2.0 OR MIT"
edition = "2021"
publish = false
# Don't rebuild crate just because of changes to README.
exclude = ["README.md"]


# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
migration-helpers.workspace = true
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
use migration_helpers::common_migrations::MetadataStringToStructMigration;
use migration_helpers::{migrate, Result};
use std::process;

const OLD_CONTROL_CTR_CMDLINE: &str =
"schnauzer-v2 render --requires 'aws@v1(helpers=[ecr-prefix])' --template '{{ ecr-prefix settings.aws.region }}/bottlerocket-control:v0.7.20'";
const NEW_CONTROL_CTR_CMDLINE: &str =
"schnauzer-v2 render --requires 'aws@v1(helpers=[ecr-prefix])' --template '{{ ecr-prefix settings.aws.region }}/bottlerocket-control:v0.7.20'";

/// We bumped the version of the default control container
fn run() -> Result<()> {
migrate(MetadataStringToStructMigration {
setting: "settings.host-containers.control.source",
old_cmdline: OLD_CONTROL_CTR_CMDLINE,
new_cmdline: NEW_CONTROL_CTR_CMDLINE,
skip_if_populated: true,
})
}

// 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);
}
}

0 comments on commit a74a9bc

Please sign in to comment.