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

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

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

wking
Copy link
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.

…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.

[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
@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

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.

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.

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

openshift-ci bot commented Sep 10, 2024

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: wking
Once this PR has been reviewed and has the lgtm label, please assign deads2k for approval. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found 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 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
Copy link
Contributor

openshift-ci bot commented Sep 11, 2024

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

// Valid values are 'Multi' and empty.
//
// +optional
Architecture ClusterVersionArchitecture `json:"architecture,omitempty"`
Copy link
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
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
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

// 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
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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants