-
Notifications
You must be signed in to change notification settings - Fork 522
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove host container migration #4324
base: develop
Are you sure you want to change the base?
Remove host container migration #4324
Conversation
f3531f7
to
b77efc3
Compare
☝️ Changed the Version in Twoliter.toml |
sources/settings-migrations/v1.29.0/change-public-control-container-to-set-gen/src/main.rs
Outdated
Show resolved
Hide resolved
sources/settings-migrations/v1.29.0/change-public-control-container-to-set-gen/src/main.rs
Outdated
Show resolved
Hide resolved
sources/api/migration/migration-helpers/src/common_migrations.rs
Outdated
Show resolved
Hide resolved
sources/api/migration/migration-helpers/src/common_migrations.rs
Outdated
Show resolved
Hide resolved
sources/api/migration/migration-helpers/src/common_migrations.rs
Outdated
Show resolved
Hide resolved
sources/api/migration/migration-helpers/src/common_migrations.rs
Outdated
Show resolved
Hide resolved
e9f7de6
to
d1a7c76
Compare
…o table Update the source from string like: schnauzer-v2 render --requires 'aws@v1(helpers=[ecr-prefix])' --template '{{ ecr-prefix settings.aws.region }}/bottlerocket-admin:v0.11.14' To setting generator as object, that contains: - command - strength - skip-if-populated
We need to add these to match changes in Bottlerocket-core-kit Refer commit: bottlerocket-os/bottlerocket-core-kit@a72f6bd PR: bottlerocket-os/bottlerocket-core-kit#294
Updated the `commit_transaction` function to enable committing metadata from pending transactions. In commit transaction we will first commit metadata and then pending keys to correctly perform the check to identify if key exists or not. The strength handling among pending and committed transaction is as: If pending metadata is strong and committed metadata is weak, commit the pending setting. If pending metadata is weak, committed metadata is strong and the setting is already available, do not downgrade from strong to weak. Otherwise add the strength file with value as weak. If pending and committed metadata are the same, no action is performed. Additionally, made minor changes to metadata functions for improved access and flexibility: Introduced a `committed` field to dynamically access metadata in pending transactions. Replaced the hardcoded use of live committed metadata with this committed variable ans pass Committed::Live from previous usages. Refer commit: bottlerocket-os/bottlerocket-core-kit@20a435e Refer PR: bottlerocket-os/bottlerocket-core-kit#294
We rely that metadata can only be populated from defaults, and storewolf will repopulate the metadata from defaults.
In this migration we will remove the data and metadata if it matches with existing ones in datastore. We will rely on storewolf to populate correct metadata and data.
In this migration we will remove the data and metadata if it matches with existing ones in datastore. We will rely on storewolf to populate correct metadata and data.
In this migration we will remove the data and metadata if it matches with existing ones in datastore. We will rely on storewolf to populate correct metadata and data.
In this migration we will remove the data and metadata if it matches with existing ones in datastore. We will rely on storewolf to populate correct metadata and data.
Keep the source same as: public.ecr.aws/bottlerocket/bottlerocket-admin:v0.11.14 Add a strength metadata as weak so that the setting can be deleted on upgrade and downgrade.
… struct - RemoveWeakSettingsMigration: When we downgrade multiple version to a version where migrator is not aware of deleting the setting-generator as struct or the strength file. This migration will help us to delete the strength and setting generator metadata. - RemoveSchnauzerMigration: This will remove metadata(always) and data if the value matches with the value in existing datastore. - RemoveDataMigration: This will remove the data when value matches with existing data. - ResetMetadataMigration: Migration to remove all metadata on upgrade and downgrade. This metadata will be rewritten by storewolf. This migration will be used to convert a strong setting to a weak setting. Also deleted the test test_replaces_nothing for ReplaceSchnauzerMigration because we are deleting all the metadata as first step of the migrator, hence we will not have any metadata available in existing datastore to compare. We will assume that the settings generator in input metadata is same as Old schanuzer string and will always replace that with incoming setting generator string.
d1a7c76
to
afdc836
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice!
// Remove the weak settings on downgrade | ||
fn run() -> Result<()> { | ||
migrate(ResetMetadataMigration) | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: ResetMetadataMigration
could be embedded here since it's unlikely we'll make use of it as a common migration
/// We use this migration to remove a setting string if it matches the old value. | ||
pub struct RemoveOldData { | ||
pub setting: &'static str, | ||
pub old_val: &'static str, | ||
pub new_val: &'static str, | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
new_val
not used. Maybe rename this to RemoveMatchingString
const OLD_CONTROL_CTR: &str = "public.ecr.aws/bottlerocket/bottlerocket-control:v0.7.18"; | ||
const NEW_CONTROL_CTR: &str = "public.ecr.aws/bottlerocket/bottlerocket-control:v0.7.18"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Needs to be the latest public control container
const OLD_ADMIN_CTR: &str = "public.ecr.aws/bottlerocket/bottlerocket-admin:v0.11.14"; | ||
const NEW_ADMIN_CTR: &str = "public.ecr.aws/bottlerocket/bottlerocket-admin:v0.11.14"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
needs to be v0.11.16
pub struct RemoveSchnauzerMigration { | ||
pub setting: &'static str, | ||
pub old_cmdline: &'static str, | ||
pub new_cmdline: &'static str, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: unused?
Issue number:
Closes #
Description of changes:
Testing done:
Refer to testing in bottlerocket-os/bottlerocket-core-kit#294
Terms of contribution:
By submitting this pull request, I agree that this contribution is dual-licensed under the terms of both the Apache License, version 2.0, and the MIT license.