Skip to content

Conversation

eggfoobar
Copy link
Contributor

add feature gate to support DualReplica control plante topology as a featuregate for two node openshift deployments

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Feb 6, 2025
@openshift-ci-robot
Copy link

openshift-ci-robot commented Feb 6, 2025

@eggfoobar: This pull request references OCPEDGE-1512 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "4.19.0" version, but no target version was set.

In response to this:

add feature gate to support DualReplica control plante topology as a featuregate for two node openshift deployments

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 openshift-eng/jira-lifecycle-plugin repository.

Copy link
Contributor

openshift-ci bot commented Feb 6, 2025

Hello @eggfoobar! Some important instructions when contributing to openshift/api:
API design plays an important part in the user experience of OpenShift and as such API PRs are subject to a high level of scrutiny to ensure they follow our best practices. If you haven't already done so, please review the OpenShift API Conventions and ensure that your proposed changes are compliant. Following these conventions will help expedite the api review process for your PR.

@openshift-ci openshift-ci bot added the size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. label Feb 6, 2025
@eggfoobar eggfoobar force-pushed the add-dualreplica-featuregate branch from 4645129 to 80ff76b Compare February 6, 2025 15:34
@openshift-ci openshift-ci bot requested review from cgwalters and JoelSpeed February 6, 2025 15:36
@JoelSpeed
Copy link
Contributor

Skimming this, the generation looks out of date to me, can you try a PROTO_OPTIONAL=1 make update please

@eggfoobar eggfoobar force-pushed the add-dualreplica-featuregate branch from 80ff76b to b3d1ab0 Compare February 6, 2025 16:17
@eggfoobar
Copy link
Contributor Author

Skimming this, the generation looks out of date to me, can you try a PROTO_OPTIONAL=1 make update please

Hmm, so I didn't see anything change, I had forgotten to save a test file but other than that, nothing more got altered.

The verify-crd-schema is failing but when checking against the HighlyAvailableArbiter addition, which is similar, I didn't notice much difference that would trigger the failure with

�[0m�[91m		ConditionsMustHaveProperSSATags: 
�[0m�[91m			crd/controllerconfigs.machineconfiguration.openshift.io version/v1 field/^.status.condition must define valid condition properties: observedGeneration attribute is missing
�[0m�[91m		NoMaps: 
�[0m�[91m			crd/controllerconfigs.machineconfiguration.openshift.io version/v1 field/^.spec.dns.spec.privateZone.tags may not be a map
�[0m�[91m		NoMaps: 
�[0m�[91m			crd/controllerconfigs.machineconfiguration.openshift.io version/v1 field/^.spec.dns.spec.publicZone.tags may not be a map
�[0m�[91m		NoMaps: 
�[0m�[91m			crd/controllerconfigs.machineconfiguration.openshift.io version/v1 field/^.spec.images may not be a map

@JoelSpeed
Copy link
Contributor

This could be an issue with the tooling, but if you check the generated CRDs, your updated enum values are not being applied to the merged schemas, will need to look into this 🤔

@eggfoobar eggfoobar force-pushed the add-dualreplica-featuregate branch from b3d1ab0 to 9a92c12 Compare February 7, 2025 05:41
@eggfoobar
Copy link
Contributor Author

Yeah the way I had the tags was wrong, the tooling syntax parsing for the tags expects the FeatureGateAwareEnum:featureGate= to contain multiple values instead of it being multiple lines.

This might be something we might want to alter, since currently enabling one featureSet enables the other, unless using rules validation would be the preferable way to enforce this scenario. Just not sure how that would work since we would need to know the featureSet value.

@JoelSpeed
Copy link
Contributor

Yeah the way I had the tags was wrong, the tooling syntax parsing for the tags expects the FeatureGateAwareEnum:featureGate= to contain multiple values instead of it being multiple lines.

I think what you have now will work, but won't let us promote the two features independently. I'll need to look into this because I don't think we've had this scenario before, and the tooling will likely need an update to be able to handle this

@eggfoobar
Copy link
Contributor Author

I think that's fine, the two features are similar enough where that shouldn't be a problem.

@eggfoobar
Copy link
Contributor Author

eggfoobar commented Feb 7, 2025

Just to clarify your comment @JoelSpeed, Arbiter hits GA before DualReplica, and we remove it from the featureGate tag and just make it a Default, will that be a problem for Arbiter since DualReplica will more than likely stay in TP a release longer?

@JoelSpeed
Copy link
Contributor

That's correct. We need to teach the tooling to be able to understand what to do when one of the gates is enabled, but the other is not, I will try to find some time to look into that problem this week, unless you'd like to?

@eggfoobar
Copy link
Contributor Author

That's correct. We need to teach the tooling to be able to understand what to do when one of the gates is enabled, but the other is not, I will try to find some time to look into that problem this week, unless you'd like to?

Yeah, I can give it a shot, been meaning to become more familiar with the tooling

@eggfoobar
Copy link
Contributor Author

Hey @JoelSpeed got sometime to look at this today.

I think this might be a bit more difficult than I had originally thought, or more likely I don't have more context on this pattern. As it currently stands this can behave as expected if, for example, when we go GA with Arbiter by adding it to the Default featureSet, changing this featureGate="",enum=HighlyAvailable;SingleReplica;External to featureGate="",enum=HighlyAvailable;HighlyAvailableArbiter;SingleReplica;External and featureGate=HighlyAvailableArbiter;DualReplica to featureGate=DualReplica, then things seem to generate correctly.

However, if we wish the behavior to be that featureGate=HighlyAvailableArbiter;DualReplica stands as is and we just add Arbiter to the Default featureSet, then this seems to be a bit trickier. We'll probably need to define a key/value to split them apart when we generate the Default CRD.

Ideally, it would be better if we had featureGate=HighlyAvailableArbiter and featureGate=DualReplica, as their own separate values, but this seems like a tougher change since it works correctly for the most part until we get to this part in the code, we delegate to the upstream to merge the CRDs here, it seems that since the enum is a value it doesn't join them, it just overrides them with the last item in the sorted FeatureGate list, which happens to be HighlyAvailableArbiter

What do you think, any other avenues come to mind on how to approach this?

@JoelSpeed
Copy link
Contributor

It's hack and hustle this friday, I'll see if I can dig in then.

But your analysis is correct.

I think the only away around this is to try and work out the combinations, so, if a file exists that matches more gates (ie HighlyAvailable+DualReplica) then it should ignore HighlyAvailable and DualReplica files.

Then from the perspective of what does this look like in the API, we would have to have 4 entries

The enum for the fone for each of "", HighliyAvailable, DualReplica and HighlyAvailable;DualReplica

We could then tell it what behaviour we want in each combination, and have the correct promotion behaviour

@eggfoobar eggfoobar force-pushed the add-dualreplica-featuregate branch from 8475947 to 7caf83f Compare March 3, 2025 15:57
@eggfoobar
Copy link
Contributor Author

eggfoobar commented Mar 3, 2025

Discussed in slack, added a TODO comment and created a Jira ticket to keep track of the issue discussed here. The HighlyAvailableArbiter or DualReplica will not go GA until the problem discussed here is resolved. This is being moved along to unblock other work for TechPreview of DualReplica.

@jaypoulz
Copy link

jaypoulz commented Mar 3, 2025

/lgtm

The core changes are what we need, but I'm concerned with the error reported in by the verify-crd-schema job since it doesn't look related. do something need to be regenerated?

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Mar 3, 2025
@eggfoobar
Copy link
Contributor Author

eggfoobar commented Mar 3, 2025

/retest

I don't think we can do much more on the verify-crd-schema failure, since the fields are the same as the arbiter addition, in that PR we overrode this check, but Joel would know better on the next course of action.

@JoelSpeed
Copy link
Contributor

/override ci/prow/verify-crd-schema

Existing failures in a partial CRD manifest

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Mar 4, 2025
@JoelSpeed
Copy link
Contributor

/override ci/prow/verify-crd-schema

Existing failures in a partial CRD manifest

Copy link
Contributor

openshift-ci bot commented Mar 4, 2025

@JoelSpeed: Overrode contexts on behalf of JoelSpeed: ci/prow/verify-crd-schema

In response to this:

/override ci/prow/verify-crd-schema

Existing failures in a partial CRD manifest

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.

add feature gate to support DualReplica control plante topology as a featuregate for two node openshift deployments.

added todo to make sure we do not go GA with out resolving the
annotation issue.

Signed-off-by: ehila <[email protected]>
@eggfoobar eggfoobar force-pushed the add-dualreplica-featuregate branch from b7593dd to 8fb0163 Compare March 4, 2025 20:48
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Mar 4, 2025
@eggfoobar
Copy link
Contributor Author

Dang, got caught by another conflict from anther PR being merged in, rebased.

@eggfoobar
Copy link
Contributor Author

/override ci/prow/verify-crd-schema

Existing failures in a partial CRD manifest

Copy link
Contributor

openshift-ci bot commented Mar 4, 2025

@eggfoobar: eggfoobar unauthorized: /override is restricted to Repo administrators, approvers in top level OWNERS file, and the following github teams:openshift: openshift-release-oversight openshift-staff-engineers.

In response to this:

/override ci/prow/verify-crd-schema

Existing failures in a partial CRD manifest

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.

@jaypoulz
Copy link

jaypoulz commented Mar 4, 2025

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Mar 4, 2025
Copy link
Contributor

openshift-ci bot commented Mar 4, 2025

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: eggfoobar, jaypoulz, JoelSpeed

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@eggfoobar
Copy link
Contributor Author

Tried to override since nothing changed and we just needed to update due to conflict from another PR. @jerpeter1 Would you mind overriding verify-crd /override ci/prow/verify-crd-schema ?

@openshift-ci-robot
Copy link

/retest-required

Remaining retests: 0 against base HEAD 422203b and 2 for PR HEAD 8fb0163 in total

@jerpeter1
Copy link
Member

/override ci/prow/verify-crd-schema

Copy link
Contributor

openshift-ci bot commented Mar 4, 2025

@jerpeter1: Overrode contexts on behalf of jerpeter1: ci/prow/verify-crd-schema

In response to this:

/override ci/prow/verify-crd-schema

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.

@eggfoobar
Copy link
Contributor Author

/retest-required

@openshift-ci-robot
Copy link

/retest-required

Remaining retests: 0 against base HEAD 422203b and 2 for PR HEAD 8fb0163 in total

@eggfoobar
Copy link
Contributor Author

/test e2e-aws-ovn-hypershift

@qJkee
Copy link
Contributor

qJkee commented Mar 5, 2025

/override ci/prow/verify-crd-schema

Copy link
Contributor

openshift-ci bot commented Mar 5, 2025

@qJkee: qJkee unauthorized: /override is restricted to Repo administrators, approvers in top level OWNERS file, and the following github teams:openshift: openshift-release-oversight openshift-staff-engineers.

In response to this:

/override ci/prow/verify-crd-schema

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.

@JoelSpeed
Copy link
Contributor

/override ci/prow/verify-crd-schema

Existing failures in a partial CRD manifest

Copy link
Contributor

openshift-ci bot commented Mar 5, 2025

@JoelSpeed: Overrode contexts on behalf of JoelSpeed: ci/prow/verify-crd-schema

In response to this:

/override ci/prow/verify-crd-schema

Existing failures in a partial CRD manifest

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.

Copy link
Contributor

openshift-ci bot commented Mar 5, 2025

@eggfoobar: 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.

@openshift-merge-bot openshift-merge-bot bot merged commit 1cd9f24 into openshift:master Mar 5, 2025
23 checks passed
@openshift-bot
Copy link

[ART PR BUILD NOTIFIER]

Distgit: ose-cluster-config-api
This PR has been included in build ose-cluster-config-api-container-v4.19.0-202503051041.p0.g1cd9f24.assembly.stream.el9.
All builds following this will include this PR.

@eggfoobar eggfoobar deleted the add-dualreplica-featuregate branch March 5, 2025 12:34
@xueqzhan
Copy link

/payload-job periodic-ci-openshift-release-master-ci-4.19-e2e-gcp-ovn-techpreview-serial
/payload-job periodic-ci-openshift-release-master-ci-4.19-e2e-gcp-ovn-techpreview-serial
/payload-job periodic-ci-openshift-release-master-ci-4.19-e2e-gcp-ovn-techpreview-serial
/payload-job periodic-ci-openshift-release-master-ci-4.19-e2e-gcp-ovn-techpreview-serial

Please ignore for now. We are testing some payload failures

Copy link
Contributor

openshift-ci bot commented Mar 12, 2025

@xueqzhan: trigger 4 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-release-master-ci-4.19-e2e-gcp-ovn-techpreview-serial
  • periodic-ci-openshift-release-master-ci-4.19-e2e-gcp-ovn-techpreview-serial
  • periodic-ci-openshift-release-master-ci-4.19-e2e-gcp-ovn-techpreview-serial
  • periodic-ci-openshift-release-master-ci-4.19-e2e-gcp-ovn-techpreview-serial

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/119f0b60-ff7f-11ef-8cc1-b869ab0caa60-0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants