Skip to content
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

Add randomness in robustness cluster process version to test mixed version scenarios. #17923

Merged
merged 3 commits into from
May 22, 2024

Conversation

siyuanfoundation
Copy link
Contributor

@siyuanfoundation siyuanfoundation commented May 1, 2024

#17097

tested with

GO_TEST_FLAGS='--timeout=500m --count=200 --failfast' time make test-robustness
GO_TEST_FLAGS='--timeout=500m --count=200 --failfast' time make test-robustness-release-3.6
GO_TEST_FLAGS='--timeout=500m --count=200 --failfast' time make test-robustness-release-3.5

Please read https://github.com/etcd-io/etcd/blob/main/CONTRIBUTING.md#contribution-flow.

@k8s-ci-robot
Copy link

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@henrybear327
Copy link
Contributor

/cc @henrybear327

@k8s-ci-robot
Copy link

@henrybear327: GitHub didn't allow me to request PR reviews from the following users: henrybear327.

Note that only etcd-io members and repo collaborators can review this PR, and authors cannot review their own PRs.

In response to this:

/cc @henrybear327

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@siyuanfoundation siyuanfoundation changed the title [WIP] Add randomness in robustness cluster process version to test mixed version scenarios. Add randomness in robustness cluster process version to test mixed version scenarios. May 17, 2024
@siyuanfoundation siyuanfoundation marked this pull request as ready for review May 17, 2024 15:17
@serathius
Copy link
Member

This change is really really good, makes me excited that we are able to test mixed version clusters now, great job!

@@ -74,16 +69,29 @@ func exploratoryScenarios(t *testing.T) []testScenario {
options.ClusterOptions{options.WithTickMs(100), options.WithElectionMs(2000)}),
}

// 66% current version, 33% MinorityLastVersion and QuorumLastVersion
mixedVersionOption := options.WithClusterOptionGroups(
// 60% with all members of current version
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As a followup, it would be nice to have a weighted option, like in traffic.

return false
}
// snapshot-catchup-entries flag was backported in https://github.com/etcd-io/etcd/pull/17808
v3_5_13 := semver.Version{Major: 3, Minor: 5, Patch: 13}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: I cheated. The proper version that supports snapshot-catchup-entries is v3.5.14, but I didn't want to wait for release :P

for _, etcdCfg := range etcdCfgs {
aggArgs = append(aggArgs, etcdCfg.Args...)
}
assert.Subset(tb, aggArgs, expectArgsContain)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Heh, checking subset on flags :(

It would be great if we could not use arg list, but use ServerConfig like cluster, and only render args just before running.

@serathius
Copy link
Member

cc @MadhavJivrajani @fuweid @jmhbnz for more feedback.

Copy link
Contributor

@MadhavJivrajani MadhavJivrajani left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is awesome, thank you @siyuanfoundation!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

5 participants