openshift / cluster-version-operator

Apache License 2.0
84 stars 191 forks source link

MULTIARCH-4559: pkg: Propagate Release.Architecture #1110

Closed wking closed 1 week ago

wking commented 1 week ago

Pass the new property around in all clusters, but only propagate it out to status in the in-cluster ClusterVersion when the relevant feature gate is enabled. Also includes a vendor bump to pull in openshift/api#2024.

openshift-ci-robot commented 1 week ago

@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](https://github.com/openshift/cluster-version-operator/pull/1110): >Pass the new property around in all clusters, but only propagate it out to `status` in the in-cluster ClusterVersion when the relevant feature gate is enabled. Also includes a vendor bump to pull in openshift/api#2024. Instructions for interacting with me using PR comments are available [here](https://prow.ci.openshift.org/command-help?repo=openshift%2Fcluster-version-operator). If you have questions or suggestions related to my behavior, please file an issue against the [openshift-eng/jira-lifecycle-plugin](https://github.com/openshift-eng/jira-lifecycle-plugin/issues/new) repository.
wking commented 1 week ago

/test any-multi-arch?

openshift-ci[bot] commented 1 week ago

@wking: The specified target(s) for /test were not found. The following commands are available to trigger required jobs:

The following commands are available to trigger optional jobs:

Use /test all to run the following jobs that were automatically triggered:

In response to [this](https://github.com/openshift/cluster-version-operator/pull/1110#issuecomment-2489474875): >/test any-multi-arch? Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.
openshift-ci[bot] commented 1 week ago

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: PratikMahajan, wking

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: - ~~[OWNERS](https://github.com/openshift/cluster-version-operator/blob/master/OWNERS)~~ [PratikMahajan,wking] Approvers can indicate their approval by writing `/approve` in a comment Approvers can cancel approval by writing `/approve cancel` in a comment
wking commented 1 week ago

e2e-aws-ovn-techpreview is using a single-arch release image (the only kind that Prow can currently build for CI), and there's no architecture set (as expected) in ClusterVersion status:

$ curl -s https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/pr-logs/pull/openshift_cluster-version-operator/1110/pull-ci-openshift-cluster-version-operator-master-e2e-aws-ovn-techpreview/1859327528825524224/artifacts/e2e-aws-ovn-techpreview/gather-extra/artifacts/clusterversion.json | jq '.items[].status' | grep architecture
      "message": "Payload loaded version=\"4.18.0-0.ci.test-2024-11-20-201451-ci-op-fl24z3yn-latest\" image=\"registry.build05.ci.openshift.org/ci-op-fl24z3yn/release@sha256:84d1c2e402c84c60cab015bd617a567ad92add1d2dc6f43192324ca9b489cb9e\" architecture=\"amd64\"",

The CRD does have the expected property available:

$ curl -s https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/pr-logs/pull/openshift_cluster-version-operator/1110/pull-ci-openshift-cluster-version-operator-master-e2e-aws-ovn-techpreview/1859327528825524224/artifacts/e2e-aws-ovn-techpreview/gather-must-gather/artifacts/must-gather.tar | tar -xOz registry-build05-ci-openshift-org-ci-op-fl24z3yn-stable-sha256-bc50366bd28cb4b3fa6b306a1d8e06544107c9df2a9e2dc5f1356d9585c99057/cluster-scoped-resources/apiextensions.k8s.io/customresourcedefinitions/clusterversions.config.openshift.io.yaml | yaml2json | jq '.spec.versions[].schema.openAPIV3Schema.properties.status' | grep architecture
          "architecture": {
            "description": "architecture is an optional field that indicates the\nvalue of the cluster architecture. In this context cluster\narchitecture means either a single architecture or a multi\narchitecture.\nValid values are 'Multi' and empty.",
              "architecture": {
                "description": "architecture is an optional field that indicates the\nvalue of the cluster architecture. In this context cluster\narchitecture means either a single architecture or a multi\narchitecture.\nValid values are 'Multi' and empty.",
        "architecture": {
          "description": "architecture is an optional field that indicates the\nvalue of the cluster architecture. In this context cluster\narchitecture means either a single architecture or a multi\narchitecture.\nValid values are 'Multi' and empty.",

And checking e2e-agnostic-ovn, we don't see the new property (because it's only tech-preview, and not yet part of the default feature set):

$ curl -s https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/pr-logs/pull/openshift_cluster-version-operator/1110/pull-ci-openshift-cluster-version-operator-master-e2e-agnostic-ovn/1859327528666140672/artifacts/e2e-agnostic-ovn/gather-must-gather/artifacts/must-gather.tar | tar -xOz registry-build09-ci-openshift-org-ci-op-fl24z3yn-stable-sha256-bc50366bd28cb4b3fa6b306a1d8e06544107c9df2a9e2dc5f1356d9585c99057/cluster-scoped-resources/apiextensions.k8s.io/customresourcedefinitions/clusterversions.config.openshift.io.yaml | yaml2json | jq '.spec.versions[].schema.openAPIV3Schema.properties.status' | grep -c architecture
0

And nothing in CVO logs that looks like "I tried to set architecture, but the Kube API server warned me that the property did not exist":

$ curl -s https://gcsweb-ci.apps.ci.l2s4.p1.openshiftapps.com/gcs/test-platform-results/pr-logs/pull/openshift_cluster-version-operator/1110/pull-ci-openshift-cluster-version-operator-master-e2e-agnostic-ovn/1859327528666140672/artifacts/e2e-agnostic-ovn/gather-extra/artifacts/pods/openshift-cluster-version_cluster-version-operator-7cf7684948-bnf8b_cluster-version-operator.log | grep -i architecture | grep -v 'Desired version from operator\|merge into existing history\|Synchronizing status\|Previous sync status'
I1120 21:20:46.700850       1 payload.go:402] Architecture from release-metadata (4.18.0-0.ci.test-2024-11-20-201646-ci-op-fl24z3yn-latest) retrieved from runtime: "amd64"
I1120 21:20:47.961366       1 start.go:590] CVO features for version 4.18.0-0.ci.test-2024-11-20-201646-ci-op-fl24z3yn-latest enabled at startup: {desiredVersion:4.18.0-0.ci.test-2024-11-20-201646-ci-op-fl24z3yn-latest unknownVersion:false reconciliationIssuesCondition:false statusReleaseArchitecture:false}
I1120 21:20:47.961433       1 featurechangestopper.go:123] Starting stop-on-features-change controller with startingRequiredFeatureSet="" startingCvoGates={desiredVersion:4.18.0-0.ci.test-2024-11-20-201646-ci-op-fl24z3yn-latest unknownVersion:false reconciliationIssuesCondition:false statusReleaseArchitecture:false}
I1120 21:20:47.961926       1 payload.go:402] Architecture from release-metadata (4.18.0-0.ci.test-2024-11-20-201646-ci-op-fl24z3yn-latest) retrieved from runtime: "amd64"
I1120 21:20:49.167932       1 sync_worker.go:431] Payload loaded from registry.build09.ci.openshift.org/ci-op-fl24z3yn/release@sha256:64813a6a0a859ad349d2dec6e3094e6526884eb9b7cdae72e97a248df53ca2c9 with hash Bqv_uxQZnnE=, architecture amd64
I1120 21:20:49.167980       1 event.go:377] Event(v1.ObjectReference{Kind:"ClusterVersion", Namespace:"openshift-cluster-version", Name:"version", UID:"", APIVersion:"config.openshift.io/v1", ResourceVersion:"", FieldPath:""}): type: 'Normal' reason: 'PayloadLoaded' Payload loaded version="4.18.0-0.ci.test-2024-11-20-201646-ci-op-fl24z3yn-latest" image="registry.build09.ci.openshift.org/ci-op-fl24z3yn/release@sha256:64813a6a0a859ad349d2dec6e3094e6526884eb9b7cdae72e97a248df53ca2c9" architecture="amd64"

So looks good to me, and I'm labeling this up so it can merge, and we can do post-merge testing in multi-arch nightlies, and we hopefully make 4.18's branch forking off :)

/label no-qe /label acknowledge-critical-fixes-only

wking commented 1 week ago

I dunno what the API LBs follow /readyz of kube-apiserver and stop sending requests before server shutdowns for external clients failure is saying, but I can't see how it would be related to this pull.

/override ci/prow/e2e-hypershift-conformance

openshift-ci[bot] commented 1 week ago

@wking: Overrode contexts on behalf of wking: ci/prow/e2e-hypershift-conformance

In response to [this](https://github.com/openshift/cluster-version-operator/pull/1110#issuecomment-2489698993): >I dunno what [the `API LBs follow /readyz of kube-apiserver and stop sending requests before server shutdowns for external clients` failure][1] is saying, but I can't see how it would be related to this pull. > >/override ci/prow/e2e-hypershift-conformance > >[1]: https://prow.ci.openshift.org/view/gs/test-platform-results/pr-logs/pull/openshift_cluster-version-operator/1110/pull-ci-openshift-cluster-version-operator-master-e2e-hypershift-conformance/1859327528926187520 Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.
openshift-ci[bot] commented 1 week ago

@wking: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/okd-scos-e2e-aws-ovn 28b3b40869b44ecd1d3cd3a7991467753cb1b5e1 link false /test okd-scos-e2e-aws-ovn

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
openshift-bot commented 1 week ago

[ART PR BUILD NOTIFIER]

Distgit: cluster-version-operator This PR has been included in build cluster-version-operator-container-v4.18.0-202411210007.p0.g75706cd.assembly.stream.el9. All builds following this will include this PR.