Skip to content

MULTIARCH-4559: config/v1/types_cluster_version.go: Add 'architecture' to the release structure#2024

Merged
openshift-merge-bot[bot] merged 3 commits intoopenshift:masterfrom
wking:release-architecture-property
Nov 18, 2024
Merged

MULTIARCH-4559: config/v1/types_cluster_version.go: Add 'architecture' to the release structure#2024
openshift-merge-bot[bot] merged 3 commits intoopenshift:masterfrom
wking:release-architecture-property

Conversation

@wking
Copy link
Copy Markdown
Member

@wking wking commented Sep 10, 2024

As requested in the enhancement. Motivation for the new property from the enhancement:

There were a few options discussed in lieu of introducing a new ClusterVersion status field and the potential risks for doing so. The alternatives are highlighted with reasoning given for why they were not pursued:

  • Default ImportMode to PreserveOriginal everywhere: single-arch-release users maybe concerned about import size and the lack of metadata like dockerImageLayers and dockerImageMetadata for manifestlisted imagestream tags.
  • Clusters with homogeneous nodes running the multi payload who do not want to import manifestlists: The clusters can either migrate to single arch payloads or manually toggle the importMode through the image config CRD.
  • CVO provides architecural knowledge to the cluster-image-registry-operator through a configmap or the image config CRD: To limit the risk of many external consumers using CVO's status field to determine that their cluster is multi-arch ready, the idea was to expose this information to the specific controller. This solution is not necessary as we let other controller implementers decide if the CVO's new status field is the best fit for their use case.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Sep 10, 2024
@openshift-ci-robot
Copy link
Copy Markdown

openshift-ci-robot commented Sep 10, 2024

@wking: This pull request references MULTIARCH-4559 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.18.0" version, but no target version was set.

Details

In response to this:

As requested in the enhancement. Motivation for the new property from the enhancement:

There were a few options discussed in lieu of introducing a new ClusterVersion status field and the potential risks for doing so. The alternatives are highlighted with reasoning given for why they were not pursued:

  • Default ImportMode to PreserveOriginal everywhere: single-arch-release users maybe concerned about import size and the lack of metadata like dockerImageLayers and dockerImageMetadata for manifestlisted imagestream tags.
  • Clusters with homogeneous nodes running the multi payload who do not want to import manifestlists: The clusters can either migrate to single arch payloads or manually toggle the importMode through the image config CRD.
  • CVO provides architecural knowledge to the cluster-image-registry-operator through a configmap or the image config CRD: To limit the risk of many external consumers using CVO's status field to determine that their cluster is multi-arch ready, the idea was to expose this information to the specific controller. This solution is not necessary as we let other controller implementers decide if the CVO's new status field is the best fit for their use case.

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
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Sep 10, 2024

Hello @wking! 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/XS Denotes a PR that changes 0-9 lines, ignoring generated files. label Sep 10, 2024
Comment thread config/v1/types_cluster_version.go
@openshift-ci openshift-ci Bot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. and removed size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Sep 11, 2024
// Valid values are 'Multi' and empty.
//
// +optional
Architecture ClusterVersionArchitecture `json:"architecture,omitempty"`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Needs featuregate.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Which feature gate would you like? The enhancement is pretty thin in that section.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

the ImageStreamImportMode featuregate implemented here: #1928

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Feature gate added as of 7f3382e. The verify-crd-schema failures are all existing properties in the new-with-this-pull clusterversions.config.openshift.io/ImageStreamImportMode.yaml file, and they'll need the /override ci/prow/verify-crd-schema mentioned in the failure message.

// value of the cluster architecture. In this context cluster
// architecture means either a single architecture or a multi
// architecture.
// Valid values are 'Multi' and empty.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This may very well end up extended with more detail in the near future, but starting here is acceptable.

@Prashanth684
Copy link
Copy Markdown
Contributor

@wking any progress on this?

…ructure

As requested in the enhancement [1].  Motivation for the new property
from the enhancement [2]:

  There were a few options discussed in lieu of introducing a new
  ClusterVersion status field and the potential risks for doing
  so. The alternatives are highlighted with reasoning given for why
  they were not pursued:

  * Default ImportMode to PreserveOriginal everywhere:
    single-arch-release users maybe concerned about import size and
    the lack of metadata like dockerImageLayers and
    dockerImageMetadata for manifestlisted imagestream tags.

  * Clusters with homogeneous nodes running the multi payload who do
    not want to import manifestlists: The clusters can either migrate
    to single arch payloads or manually toggle the importMode through
    the image config CRD.

  * CVO provides architecural knowledge to the
    cluster-image-registry-operator through a configmap or the image
    config CRD: To limit the risk of many external consumers using
    CVO's status field to determine that their cluster is multi-arch
    ready, the idea was to expose this information to the specific
    controller. This solution is not necessary as we let other
    controller implementers decide if the CVO's new status field is
    the best fit for their use case.

David and Prashanth requested the ImageStreamImportMode feature gating
in [3].

[1]: https://github.com/openshift/enhancements/blob/36ef3f51e5b7bfb2d4af18d415ba762e0a0431ac/enhancements/multi-arch/dynamic-imagestream-importmode-setting.md#api-extensions
[2]: https://github.com/openshift/enhancements/blob/36ef3f51e5b7bfb2d4af18d415ba762e0a0431ac/enhancements/multi-arch/dynamic-imagestream-importmode-setting.md#motivations-for-a-new-clusterversion-status-property
[3]: openshift#2024 (comment)
@wking wking force-pushed the release-architecture-property branch from f153ad8 to 49ec891 Compare November 15, 2024 00:18
Generated using:

  $ PROTO_OPTIONAL=true make update
@wking wking force-pushed the release-architecture-property branch from 49ec891 to 31505ab Compare November 15, 2024 03:20
@openshift-ci openshift-ci Bot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Nov 15, 2024
wking added a commit to wking/openshift-api that referenced this pull request Nov 15, 2024
…ructure

As requested in the enhancement [1].  Motivation for the new property
from the enhancement [2]:

  There were a few options discussed in lieu of introducing a new
  ClusterVersion status field and the potential risks for doing
  so. The alternatives are highlighted with reasoning given for why
  they were not pursued:

  * Default ImportMode to PreserveOriginal everywhere:
    single-arch-release users maybe concerned about import size and
    the lack of metadata like dockerImageLayers and
    dockerImageMetadata for manifestlisted imagestream tags.

  * Clusters with homogeneous nodes running the multi payload who do
    not want to import manifestlists: The clusters can either migrate
    to single arch payloads or manually toggle the importMode through
    the image config CRD.

  * CVO provides architecural knowledge to the
    cluster-image-registry-operator through a configmap or the image
    config CRD: To limit the risk of many external consumers using
    CVO's status field to determine that their cluster is multi-arch
    ready, the idea was to expose this information to the specific
    controller. This solution is not necessary as we let other
    controller implementers decide if the CVO's new status field is
    the best fit for their use case.

David an Prashanth requested the ImageStreamImportMode feature gating
in [3].

[1]: https://github.com/openshift/enhancements/blob/36ef3f51e5b7bfb2d4af18d415ba762e0a0431ac/enhancements/multi-arch/dynamic-imagestream-importmode-setting.md#api-extensions
[2]: https://github.com/openshift/enhancements/blob/36ef3f51e5b7bfb2d4af18d415ba762e0a0431ac/enhancements/multi-arch/dynamic-imagestream-importmode-setting.md#motivations-for-a-new-clusterversion-status-property
[3]: openshift#2024 (comment)
@wking wking force-pushed the release-architecture-property branch from 31505ab to 86a5195 Compare November 15, 2024 03:48
…Mode: New tests

For the new feature-set flavor.  I copied AAA_ungated.yaml, added the
featureGate property, and then updated every existing Release
structure to set 'architecture: Multi'.
@wking wking force-pushed the release-architecture-property branch from fe67da3 to 7f3382e Compare November 15, 2024 15:27
@openshift-ci openshift-ci Bot added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. labels Nov 15, 2024
@Prashanth684
Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Nov 15, 2024
@deads2k
Copy link
Copy Markdown
Contributor

deads2k commented Nov 18, 2024

/override ci/prow/verify-crd-schema
/approve

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Nov 18, 2024

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

Details

In response to this:

/override ci/prow/verify-crd-schema
/approve

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.

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Nov 18, 2024

@wking: all tests passed!

Full PR test history. Your PR dashboard.

Details

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-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Nov 18, 2024

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: deads2k, Prashanth684, wking

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details 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 openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 18, 2024
@openshift-merge-bot openshift-merge-bot Bot merged commit 25d2eec into openshift:master Nov 18, 2024
@wking wking deleted the release-architecture-property branch November 19, 2024 01:49
@openshift-bot
Copy link
Copy Markdown

[ART PR BUILD NOTIFIER]

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

wking added a commit to wking/cluster-version-operator that referenced this pull request Nov 19, 2024
Pulling in [1].  Generated with:

  $ go get github.com/openshift/api@master
  $ go mod tidy
  $ go mod vendor
  $ git add -A go.* vendor

using:

  $ go version
  go version go1.23.1 linux/amd64

[1]: openshift/api#2024
Prashanth684 added a commit to Prashanth684/cluster-image-registry-operator that referenced this pull request Nov 26, 2024
…on desired Architecture

openshift/api#2024 introduces the architecture
property in the desired status field which indicates the architecture of
the cluster (or the architecture being reconciled to). Set import mode
based on this status - if "Multi", set importmode to PreserveOriginal,
else to Legacy.
Prashanth684 added a commit to Prashanth684/cluster-image-registry-operator that referenced this pull request Nov 26, 2024
…on desired Architecture

openshift/api#2024 introduces the architecture
property in the desired status field which indicates the architecture of
the cluster (or the architecture being reconciled to). Set import mode
based on this status - if "Multi", set importmode to PreserveOriginal,
else to Legacy.
Prashanth684 added a commit to Prashanth684/cluster-image-registry-operator that referenced this pull request Nov 26, 2024
…on desired Architecture

openshift/api#2024 introduces the architecture
property in the desired status field which indicates the architecture of
the cluster (or the architecture being reconciled to). Set import mode
based on this status - if "Multi", set importmode to PreserveOriginal,
else to Legacy.
Prashanth684 added a commit to Prashanth684/cluster-image-registry-operator that referenced this pull request Dec 3, 2024
…on desired Architecture

openshift/api#2024 introduces the architecture
property in the desired status field which indicates the architecture of
the cluster (or the architecture being reconciled to). Set import mode
based on this status - if "Multi", set importmode to PreserveOriginal,
else to Legacy.
Prashanth684 added a commit to Prashanth684/cluster-image-registry-operator that referenced this pull request Dec 3, 2024
…on desired Architecture

openshift/api#2024 introduces the architecture
property in the desired status field which indicates the architecture of
the cluster (or the architecture being reconciled to). Set import mode
based on this status - if "Multi", set importmode to PreserveOriginal,
else to Legacy.
Prashanth684 added a commit to Prashanth684/cluster-image-registry-operator that referenced this pull request Dec 3, 2024
…on desired Architecture

openshift/api#2024 introduces the architecture
property in the desired status field which indicates the architecture of
the cluster (or the architecture being reconciled to). Set import mode
based on this status - if "Multi", set importmode to PreserveOriginal,
else to Legacy.
Prashanth684 added a commit to Prashanth684/cluster-image-registry-operator that referenced this pull request Dec 17, 2024
…on desired Architecture

openshift/api#2024 introduces the architecture
property in the desired status field which indicates the architecture of
the cluster (or the architecture being reconciled to). Set import mode
based on this status - if "Multi", set importmode to PreserveOriginal,
else to Legacy.

Backport of openshift#1164
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.

5 participants