-
Notifications
You must be signed in to change notification settings - Fork 584
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
Feature gates for platforms, architecture, and installs #1895
Feature gates for platforms, architecture, and installs #1895
Conversation
Hello @stbenjam! Some important instructions when contributing to openshift/api: |
Skipping CI for Draft Pull Request. |
/test verify |
4d04ad3
to
86132e8
Compare
Testing locally with #1892. The platforms TRT cares about pass. Nutanix is missing a variant in Sippy (but is healthy), and OpenStack pass rates are low because the techpreview jobs aren't showing up (they lack a version in their job names)
|
86132e8
to
c9141fa
Compare
@@ -101,7 +105,7 @@ func QueriesFor(cloud, architecture, topology, featureGate string) []*SippyQuery | |||
ColumnField: "name", | |||
Not: false, | |||
OperatorValue: "contains", | |||
Value: fmt.Sprintf("[FeatureGate:%s]", featureGate), |
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.
This is what allowed us to handle both kube and openshift FeatureGate markers in tests. Can you refactor to ensure we get OCPFeatureGate and FeatureGate tags?
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.
I fixed to use the common suffix to both, FeatureGate:%s
, as the test pattern, is that ok?
if len(jobVariantsToCheck) == 0 { | ||
jobVariantsToCheck = append(jobVariantsToCheck, requiredSelfManagedJobVariants...) | ||
// See if the feature gate is specific to any optional platform | ||
optionalPlatformVariants := filterVariants(featureGate, optionalSelfManagedPlatformVariants, true) |
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.
is this actually, "platform variants that a featuregate is targeted for" versus "all platforms that we support"?
if len(jobVariantsToCheck) == 0 { | ||
jobVariantsToCheck = append(jobVariantsToCheck, requiredSelfManagedJobVariants...) | ||
// See if the feature gate is specific to any optional platform | ||
optionalPlatformVariants := filterVariants(featureGate, optionalSelfManagedPlatformVariants, true) |
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.
oh it isn't. I've misunderstood. This is a sometimes list versus the rest. Thinking about the factoring here.
@@ -363,6 +365,21 @@ var ( | |||
//}, | |||
} | |||
|
|||
// These are only checked if the feature gate is platform specific |
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.
Why shouldn't we always checks and if a featuregate is targeted at a particular variant, then restrict to just that one?
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.
Do you really care about enforcing on nutanix and openstack? These were new jobs added for install, and I didn't think they were proven stable enough to check every new feature gate unless it was specifically for them
@@ -456,8 +476,32 @@ func listTestResultFor(featureGate string, clusterProfiles sets.Set[string]) (ma | |||
return results, nil | |||
} | |||
|
|||
func filterVariants(featureGate string, variants []JobVariant, optional bool) []JobVariant { |
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.
if we looked at everything by default, then I think this doesn't need the "optional" flag.
When validating a feature gate has tests, try to determine if the feature gate is specific to a platform or architecture and only query those results. If it's an installer feature gate, then we don't require specific tests; use the existing `cluster install` tests.
ba6715b
to
18265e8
Compare
18265e8
to
4a42830
Compare
@stbenjam: all tests passed! Full PR test history. Your PR dashboard. 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. I understand the commands that are listed here. |
/lgtm |
/cherry-pick release-4.16 |
@deads2k: once the present PR merges, I will cherry-pick it on top of release-4.16 in a new PR and assign it to you. In response to this:
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. |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: deads2k, stbenjam The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@deads2k: new pull request created: #1910 In response to this:
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. |
[ART PR BUILD NOTIFIER] This PR has been included in build ose-cluster-config-api-container-v4.17.0-202405300213.p0.g16d44e6.assembly.stream.el9 for distgit ose-cluster-config-api. |
When validating a feature gate has tests, try to determine if the
feature gate is specific to a platform or architecture and only query
those results.
If it's an installer feature gate, then we don't require specific tests;
use the existing
cluster install
tests.