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

OCPBUGS-34906: Fix IngressController missing listTypes #1917

Merged
merged 1 commit into from
Jul 1, 2024

Conversation

gcs278
Copy link
Contributor

@gcs278 gcs278 commented Jun 5, 2024

Add missing listType to all IngressController CRD fields which resolves the errors must set x-kubernetes-list-type in the verify-crd-schema job.

The verify-crd-schema job won't run IngressController CRD checks on this PR because we aren't creating/moving/renaming any IngressController CRD files. However, when adding a TechPreview feature, such as in #1841, it will bifurcate the CRDs into feature sets and verify-crd-schema will fail. Example failure: https://prow.ci.openshift.org/view/gs/test-platform-results/pr-logs/pull/openshift_api/1841/pull-ci-openshift-api-master-verify-crd-schema/1798501310060826624

Though there are 3 options, atomic, set, and map, the API team has expressed desire NOT to use set. So, the listType options are limited to atomic and map.

Atomic

  • The listType=atomic is the default when it is not configured. Therefore, setting listType=atomic has essentially no risk of breaking compatibly.
  • The entire list will be replaced upon SSA merge.
  • At any point in time, a single manager owns the list.

Map

  • Must be a nested type (struct)
  • The key values (see listMapKey) must be unique in the list
  • Can be managed by multiple managers at any given time.

@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jun 5, 2024
Copy link
Contributor

openshift-ci bot commented Jun 5, 2024

Hello @gcs278! 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/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Jun 5, 2024
@openshift-ci openshift-ci bot requested review from cgwalters and knobunc June 5, 2024 21:18
@gcs278 gcs278 changed the title WIP Fix types_ingress.go missing listTypes WIP OCPBUGS-34906: Fix types_ingress.go missing listTypes Jun 5, 2024
@openshift-ci-robot openshift-ci-robot added jira/severity-moderate Referenced Jira bug's severity is moderate for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Jun 5, 2024
@openshift-ci-robot
Copy link

@gcs278: This pull request references Jira Issue OCPBUGS-34906, which is invalid:

  • expected the bug to target the "4.17.0" version, but no target version was set

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

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

@openshift-ci-robot openshift-ci-robot added jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. and removed jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Jun 5, 2024
@openshift-ci-robot
Copy link

@gcs278: This pull request references Jira Issue OCPBUGS-34906, which is valid. The bug has been moved to the POST state.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.17.0) matches configured target version for branch (4.17.0)
  • bug is in the state New, which is one of the valid states (NEW, ASSIGNED, POST)

Requesting review from QA contact:
/cc @lihongan

In response to this:

WIP

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.

@openshift-ci openshift-ci bot requested a review from lihongan June 5, 2024 23:32
@openshift-ci-robot openshift-ci-robot added jira/severity-important Referenced Jira bug's severity is important for the branch this PR is targeting. and removed jira/severity-moderate Referenced Jira bug's severity is moderate for the branch this PR is targeting. labels Jun 6, 2024
@openshift-ci-robot
Copy link

@gcs278: This pull request references Jira Issue OCPBUGS-34906, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.17.0) matches configured target version for branch (4.17.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)

Requesting review from QA contact:
/cc @lihongan

In response to this:

WIP

Add missing // +listType to fields in types_ingress.go and fields referenced by objects in types_ingress.go which resolves the errors must set x-kubernetes-list-type in the verify-crd-schema job.

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.

@openshift-ci openshift-ci bot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Jun 6, 2024
@openshift-ci openshift-ci bot added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Jun 6, 2024
@gcs278 gcs278 force-pushed the add-listtypes branch 3 times, most recently from 6d9a70a to e11496e Compare June 6, 2024 21:52
@gcs278 gcs278 changed the title WIP OCPBUGS-34906: Fix types_ingress.go missing listTypes WIP OCPBUGS-34906: Fix IngressController missing listTypes Jun 6, 2024
@gcs278
Copy link
Contributor Author

gcs278 commented Jun 7, 2024

Since verify-crd-schema won't run until there is a new file, I pushed up a hack commit (the commit from #1841) to force verify-crd-schema to run for IngressController. The results are here: https://prow.ci.openshift.org/view/gs/test-platform-results/pr-logs/pull/openshift_api/1917/pull-ci-openshift-api-master-verify-crd-schema/1798835607204532224

Only may not be a map errors left, which are in vendor code and not easily fixable. Unfortunately, this fix alone won't trigger verify-crd-schema to run for the IngressController API.

@openshift-ci-robot
Copy link

@gcs278: This pull request references Jira Issue OCPBUGS-34906, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.17.0) matches configured target version for branch (4.17.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)

Requesting review from QA contact:
/cc @lihongan

The bug has been updated to refer to the pull request using the external bug tracker.

In response to this:

Add missing listType to all IngressController CRD fields which resolves the errors must set x-kubernetes-list-type in the verify-crd-schema job.

Example failure: https://prow.ci.openshift.org/view/gs/test-platform-results/pr-logs/pull/openshift_api/1841/pull-ci-openshift-api-master-verify-crd-schema/1798501310060826624

Though there are 3 options, atomic, set, and map, the API team has expressed desire NOT to use set. So, the listType options are limited to atomic and map.

Atomic

  • The listType=atomic is the default when it is not configured. Therefore, setting listType=atomic has essentially no risk of breaking compatibly.
  • The entire list will be replaced upon SSA merge.
  • At any point in time, a single manager owns the list.

Map

  • Must be a nested type (struct)
  • The key values (see listMapKey) must be unique in the list
  • Can be managed by multiple managers at any given time.

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.

Add missing listType to all IngressController CRD fields which
resolves the error "must set x-kubernetes-list-type" in the
verify-crd-schema job.
@gcs278
Copy link
Contributor Author

gcs278 commented Jun 7, 2024

Just putting a hold in case we want NE team members to review too.
/hold

@openshift-ci openshift-ci bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jun 7, 2024
@JoelSpeed
Copy link
Contributor

/approve
/assign @Miciah

Miciah to LGTM and unhold assuming he is happy

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 10, 2024
@lihongan
Copy link
Contributor

/label qe-approved

@openshift-ci openshift-ci bot added the qe-approved Signifies that QE has signed off on this PR label Jun 11, 2024
@miheer
Copy link
Contributor

miheer commented Jun 16, 2024

/lgtm
/hold for @Miciah to review

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Jun 16, 2024
@Miciah
Copy link
Contributor

Miciah commented Jun 26, 2024

/lgtm
/hold cancel
Thanks!

@openshift-ci openshift-ci bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jun 26, 2024
Copy link
Contributor

openshift-ci bot commented Jun 26, 2024

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: gcs278, JoelSpeed, Miciah, miheer

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

@openshift-ci-robot
Copy link

/retest-required

Remaining retests: 0 against base HEAD 0689f00 and 2 for PR HEAD e3df50e in total

@gcs278
Copy link
Contributor Author

gcs278 commented Jun 26, 2024

Installation and unrelated failures
/retest

@gcs278
Copy link
Contributor Author

gcs278 commented Jun 26, 2024

/retest

1 similar comment
@JoelSpeed
Copy link
Contributor

/retest

@gcs278
Copy link
Contributor Author

gcs278 commented Jun 27, 2024

TechPreviews jobs are failing, looks like it's being investigated slack thread

e2e-upgrade-minor is permafailing with:
: [bz-etcd][invariant] alert/etcdMembersDown should not be at or above info. I searched around, and couldn't find anyone talking about this, so I asked in forum-ocp-testplatform: slack thread

@gcs278
Copy link
Contributor Author

gcs278 commented Jun 28, 2024

I believe the revert openshift/cluster-version-operator#1063 is supposed to fix the tech preview jobs:
/retest

@lihongan
Copy link
Contributor

lihongan commented Jul 1, 2024

/test e2e-upgrade-minor

@JoelSpeed
Copy link
Contributor

Reviewing the changes in this PR, the only payload affecting change adds an explicit atomic tag to a field, where this is the default behaviour when unspecified, I'm happy that we can skip the upgrade minor for now since we know it's broken.

/override ci/prow/e2e-upgrade-minor

Copy link
Contributor

openshift-ci bot commented Jul 1, 2024

@JoelSpeed: Overrode contexts on behalf of JoelSpeed: ci/prow/e2e-upgrade-minor

In response to this:

Reviewing the changes in this PR, the only payload affecting change adds an explicit atomic tag to a field, where this is the default behaviour when unspecified, I'm happy that we can skip the upgrade minor for now since we know it's broken.

/override ci/prow/e2e-upgrade-minor

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 Jul 1, 2024

@gcs278: 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 d3b3bb1 into openshift:master Jul 1, 2024
18 checks passed
@openshift-ci-robot
Copy link

@gcs278: Jira Issue OCPBUGS-34906: All pull requests linked via external trackers have merged:

Jira Issue OCPBUGS-34906 has been moved to the MODIFIED state.

In response to this:

Add missing listType to all IngressController CRD fields which resolves the errors must set x-kubernetes-list-type in the verify-crd-schema job.

The verify-crd-schema job won't run IngressController CRD checks on this PR because we aren't creating/moving/renaming any IngressController CRD files. However, when adding a TechPreview feature, such as in #1841, it will bifurcate the CRDs into feature sets and verify-crd-schema will fail. Example failure: https://prow.ci.openshift.org/view/gs/test-platform-results/pr-logs/pull/openshift_api/1841/pull-ci-openshift-api-master-verify-crd-schema/1798501310060826624

Though there are 3 options, atomic, set, and map, the API team has expressed desire NOT to use set. So, the listType options are limited to atomic and map.

Atomic

  • The listType=atomic is the default when it is not configured. Therefore, setting listType=atomic has essentially no risk of breaking compatibly.
  • The entire list will be replaced upon SSA merge.
  • At any point in time, a single manager owns the list.

Map

  • Must be a nested type (struct)
  • The key values (see listMapKey) must be unique in the list
  • Can be managed by multiple managers at any given time.

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.

@openshift-bot
Copy link

[ART PR BUILD NOTIFIER]

This PR has been included in build ose-cluster-config-api-container-v4.17.0-202407011041.p0.gd3b3bb1.assembly.stream.el9 for distgit ose-cluster-config-api.
All builds following this will include this PR.

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/severity-important Referenced Jira bug's severity is important for the branch this PR is targeting. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. 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. qe-approved Signifies that QE has signed off on this PR size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants