Skip to content

Conversation

@wking
Copy link
Member

@wking wking commented Sep 27, 2023

The outgoing run level 40 is from file creation in 8802379 (#503), but that commit does not give a motivation for selecting level 40. Moving to level 50 will align this manifest with the other migrator manifests:

$ oc adm release extract --to manifests quay.io/openshift-release-dev/ocp-release:4.14.0-rc.2-x86_64
$ ls manifests/*kube-storage-version-migrator*
manifests/0000_40_kube-storage-version-migrator-operator_00_config.crd.yaml
manifests/0000_50_cluster-kube-storage-version-migrator-operator_01_storage_migration_crd.yaml
manifests/0000_50_cluster-kube-storage-version-migrator-operator_01_storage_state_crd.yaml
manifests/0000_50_cluster-kube-storage-version-migrator-operator_02_namespace.yaml
...

catching up with openshift/cluster-kube-storage-version-migrator-operator@626f35773607 (openshift/cluster-kube-storage-version-migrator-operator#70). By consolidating, we remove the only remaining level-40 manifest, saving some time by shifting that manifest to the highly-parallel default level 50.

The new filename will require a small tweak to the Dockerfile's:

COPY vendor/github.com/openshift/api/operator/v1/*_kube-storage-version-migrator-operator_*.yaml* /manifests

but that can happen when we vendor-bump the operator to pull in this change.

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Sep 27, 2023

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 27, 2023
@openshift-ci openshift-ci bot requested review from jwforres and soltysh September 27, 2023 10:57
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Sep 27, 2023

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

@wking wking force-pushed the drop-run-level-opinions-for-KubeStorageVersionMigrator branch 2 times, most recently from 93383a8 to 99b7aca Compare September 28, 2023 06:21
@openshift-ci openshift-ci bot added size/S Denotes a PR that changes 10-29 lines, ignoring generated files. and removed size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Sep 28, 2023
@wking wking force-pushed the drop-run-level-opinions-for-KubeStorageVersionMigrator branch 2 times, most recently from af93229 to df6b19d Compare September 28, 2023 06:33
@openshift-ci openshift-ci bot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Sep 28, 2023
@wking wking force-pushed the drop-run-level-opinions-for-KubeStorageVersionMigrator branch 7 times, most recently from 72bc94e to 5c506ed Compare September 28, 2023 08:15
@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 Sep 28, 2023
@wking wking force-pushed the drop-run-level-opinions-for-KubeStorageVersionMigrator branch 4 times, most recently from 65b4303 to f80d681 Compare September 28, 2023 09:48
@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 Sep 28, 2023
@wking wking force-pushed the drop-run-level-opinions-for-KubeStorageVersionMigrator branch 2 times, most recently from 4a48fe0 to c2e991f Compare September 28, 2023 10:21
@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 Oct 2, 2023
wking added a commit to wking/openshift-api that referenced this pull request Oct 2, 2023
Addressing [1]:

  error running generator schemacheck on group operator.openshift.io:
  	could not run schemacheck generator for group/version operator.openshift.io/v1:
  		error in 0000_50_cluster-kube-storage-version-migrator-operator_00_config.crd.yaml: ListsMustHaveSSATags: crd/kubestorageversionmigrators.operator.openshift.io version/v1 field/^.status.generations must set x-kubernetes-list-type
  		error in 0000_50_cluster-kube-storage-version-migrator-operator_00_config.crd.yaml: ListsMustHaveSSATags: crd/kubestorageversionmigrators.operator.openshift.io version/v1 field/^.status.conditions must set x-kubernetes-list-type

The conditions labels are suggested by
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.go:

  // Condition contains details for one aspect of the current state of this API Resource.
  // ---
  // This struct is intended for direct use as an array at the field path .status.conditions.  For example,
  //
  //      type FooStatus struct{
  //          // Represents the observations of a foo's current state.
  //          // Known .status.conditions.type are: "Available", "Progressing", and "Degraded"
  //          // +patchMergeKey=type
  //          // +patchStrategy=merge
  //          // +listType=map
  //          // +listMapKey=type
  //          Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`

I'd initially declared generations atomic, because I can't think of
how patch-merging would work for that property, but David suggested
using tuples formed by (group, resource, namespace, name) [2].

[1]: https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_api/1601/pull-ci-openshift-api-master-verify-crd-schema/1706986191397588992#1:build-log.txt%3A6118-6121
[2]: openshift#1601 (comment)
@wking wking force-pushed the drop-run-level-opinions-for-KubeStorageVersionMigrator branch from a10c798 to c2be41d Compare October 2, 2023 19:11
The outgoing run level 40 is from file creation in 8802379 (add
KubeStorageVersionMigrator crd.yaml, 2019-10-29, openshift#503), but that
commit does not give a motivation for selecting level 40.  Moving to
level 50 will align this manifest with the other migrator manifests:

  $ oc adm release extract --to manifests quay.io/openshift-release-dev/ocp-release:4.14.0-rc.2-x86_64
  $ ls manifests/*kube-storage-version-migrator*
  manifests/0000_40_kube-storage-version-migrator-operator_00_config.crd.yaml
  manifests/0000_50_cluster-kube-storage-version-migrator-operator_01_storage_migration_crd.yaml
  manifests/0000_50_cluster-kube-storage-version-migrator-operator_01_storage_state_crd.yaml
  manifests/0000_50_cluster-kube-storage-version-migrator-operator_02_namespace.yaml
  manifests/0000_50_cluster-kube-storage-version-migrator-operator_03_configmap.yaml
  manifests/0000_50_cluster-kube-storage-version-migrator-operator_04_serviceaccount.yaml
  manifests/0000_50_cluster-kube-storage-version-migrator-operator_05_roles.yaml
  manifests/0000_50_cluster-kube-storage-version-migrator-operator_06_operatorconfig.yaml
  manifests/0000_50_cluster-kube-storage-version-migrator-operator_07_deployment-ibm-cloud-managed.yaml
  manifests/0000_50_cluster-kube-storage-version-migrator-operator_07_deployment.yaml
  manifests/0000_50_cluster-kube-storage-version-migrator-operator_08_service.yaml
  manifests/0000_50_cluster-kube-storage-version-migrator-operator_09_clusteroperator.yaml

catching up with
openshift/cluster-kube-storage-version-migrator-operator@626f35773607
(manifests: remove special runlevel, 2021-10-21,
openshift/cluster-kube-storage-version-migrator-operator#70).  By
consolidating, we remove the only remaining level-40 manifest, saving
some time by shifting that manifest to the highly-parallel default
level 50.

The new filename will require a small tweak to the Dockerfile's [1]:

  COPY vendor/github.com/openshift/api/operator/v1/*_kube-storage-version-migrator-operator_*.yaml* /manifests

but that can happen when we vendor-bump the operator to pull in this
change.

[1]: https://github.com/openshift/cluster-kube-storage-version-migrator-operator/blob/332cb1cd0f9a00c03e3f9d400ae8483abd03036c/images/ci/Dockerfile#L10C38-L10C98
@wking wking force-pushed the drop-run-level-opinions-for-KubeStorageVersionMigrator branch from c2be41d to 0be1199 Compare October 2, 2023 19:22
wking added a commit to wking/openshift-api that referenced this pull request Oct 2, 2023
Addressing [1]:

  error running generator schemacheck on group operator.openshift.io:
  	could not run schemacheck generator for group/version operator.openshift.io/v1:
  		error in 0000_50_cluster-kube-storage-version-migrator-operator_00_config.crd.yaml: ListsMustHaveSSATags: crd/kubestorageversionmigrators.operator.openshift.io version/v1 field/^.status.generations must set x-kubernetes-list-type
  		error in 0000_50_cluster-kube-storage-version-migrator-operator_00_config.crd.yaml: ListsMustHaveSSATags: crd/kubestorageversionmigrators.operator.openshift.io version/v1 field/^.status.conditions must set x-kubernetes-list-type

The conditions labels are suggested by
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.go:

  // Condition contains details for one aspect of the current state of this API Resource.
  // ---
  // This struct is intended for direct use as an array at the field path .status.conditions.  For example,
  //
  //      type FooStatus struct{
  //          // Represents the observations of a foo's current state.
  //          // Known .status.conditions.type are: "Available", "Progressing", and "Degraded"
  //          // +patchMergeKey=type
  //          // +patchStrategy=merge
  //          // +listType=map
  //          // +listMapKey=type
  //          Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`

I'd initially declared generations atomic, because I can't think of
how patch-merging would work for that property, but David suggested
using tuples formed by (group, resource, namespace, name) [2].

[1]: https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_api/1601/pull-ci-openshift-api-master-verify-crd-schema/1706986191397588992#1:build-log.txt%3A6118-6121
[2]: openshift#1601 (comment)
@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 Oct 2, 2023
@wking wking force-pushed the drop-run-level-opinions-for-KubeStorageVersionMigrator branch 2 times, most recently from 00bfe8a to 17465da Compare October 2, 2023 23:29
@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 Oct 2, 2023
wking added 2 commits October 2, 2023 16:57
Addressing [1]:

  error running generator schemacheck on group operator.openshift.io:
  	could not run schemacheck generator for group/version operator.openshift.io/v1:
  		error in 0000_50_cluster-kube-storage-version-migrator-operator_00_config.crd.yaml: ListsMustHaveSSATags: crd/kubestorageversionmigrators.operator.openshift.io version/v1 field/^.status.generations must set x-kubernetes-list-type
  		error in 0000_50_cluster-kube-storage-version-migrator-operator_00_config.crd.yaml: ListsMustHaveSSATags: crd/kubestorageversionmigrators.operator.openshift.io version/v1 field/^.status.conditions must set x-kubernetes-list-type

The conditions labels are suggested by
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.go:

  // Condition contains details for one aspect of the current state of this API Resource.
  // ---
  // This struct is intended for direct use as an array at the field path .status.conditions.  For example,
  //
  //      type FooStatus struct{
  //          // Represents the observations of a foo's current state.
  //          // Known .status.conditions.type are: "Available", "Progressing", and "Degraded"
  //          // +patchMergeKey=type
  //          // +patchStrategy=merge
  //          // +listType=map
  //          // +listMapKey=type
  //          Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"`

I'd initially declared generations atomic, because I can't think of
how patch-merging would work for that property, but David suggested
using tuples formed by (group, resource, namespace, name) [2].

[1]: https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_api/1601/pull-ci-openshift-api-master-verify-crd-schema/1706986191397588992#1:build-log.txt%3A6118-6121
[2]: openshift#1601 (comment)
…enerationStatus

I'm copying the OperatorCondition docs over from
vendor/k8s.io/apimachinery/pkg/apis/meta/v1/types.go's Condition type.
We need them for type, now that OperatorStatus is using that as a map
key, to avoid [1]:

  unable to create CRD instances: unable to create CRD "openshiftcontrollermanagers.operator.openshift.io": CustomResourceDefinition.apiextensions.k8s.io "openshiftcontrollermanagers.operator.openshift.io" is invalid: [spec.validation.openAPIV3Schema.properties[status].properties[conditions].items.properties[type].default: Required value: this property is in x-kubernetes-list-map-keys, so it must have a default or be a required property, spec.validation.openAPIV3Schema.properties[status].properties[generations].items.properties[group].default: Required value: this property is in x-kubernetes-list-map-keys, so it must have a default or be a required property, spec.validation.openAPIV3Schema.properties[status].properties[generations].items.properties[resource].default: Required value: this property is in x-kubernetes-list-map-keys, so it must have a default or be a required property, spec.validation.openAPIV3Schema.properties[status].properties[generations].items.properties[namespace].default: Required value: this property is in x-kubernetes-list-map-keys, so it must have a default or be a required property, spec.validation.openAPIV3Schema.properties[status].properties[generations].items.properties[name].default: Required value: this property is in x-kubernetes-list-map-keys, so it must have a default or be a required property]

and similar.  And while I was copying over the Godocs and Kubebuilder
flags for the type property, it seemed like I might as well do the
others too, but David felt that the risk of breaking operators was too
large, so for now I'm just bringing in the required-ness and not the
pattern and max-length constraints.  And for now I'm only touching the
properties used as map keys.

[1]: https://prow.ci.openshift.org/view/gs/origin-ci-test/pr-logs/pull/openshift_api/1601/pull-ci-openshift-api-master-integration/1708925642487107584
@wking wking force-pushed the drop-run-level-opinions-for-KubeStorageVersionMigrator branch from 17465da to d0cd4a0 Compare October 2, 2023 23:57
@openshift-merge-robot
Copy link
Contributor

@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/verify d0cd4a0 link true /test verify

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/test-infra repository. I understand the commands that are listed here.

@openshift-merge-robot
Copy link
Contributor

PR needs rebase.

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/test-infra repository.

@openshift-bot
Copy link

Issues go stale after 90d of inactivity.

Mark the issue as fresh by commenting /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
Exclude this issue from closing by commenting /lifecycle frozen.

If this issue is safe to close now please do so with /close.

/lifecycle stale

@openshift-ci openshift-ci bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jun 18, 2024
@openshift-bot
Copy link

Stale issues rot after 30d of inactivity.

Mark the issue as fresh by commenting /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.
Exclude this issue from closing by commenting /lifecycle frozen.

If this issue is safe to close now please do so with /close.

/lifecycle rotten
/remove-lifecycle stale

@openshift-ci openshift-ci bot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Aug 11, 2024
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Aug 15, 2024

@wking: The following tests 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/verify d0cd4a0 link true /test verify
ci/prow/e2e-aws-ovn d0cd4a0 link true /test e2e-aws-ovn
ci/prow/e2e-aws-serial d0cd4a0 link true /test e2e-aws-serial
ci/prow/e2e-upgrade d0cd4a0 link true /test e2e-upgrade
ci/prow/e2e-upgrade-minor d0cd4a0 link true /test e2e-upgrade-minor
ci/prow/e2e-aws-ovn-hypershift d0cd4a0 link true /test e2e-aws-ovn-hypershift
ci/prow/e2e-aws-serial-techpreview d0cd4a0 link true /test e2e-aws-serial-techpreview
ci/prow/e2e-aws-ovn-techpreview d0cd4a0 link true /test e2e-aws-ovn-techpreview
ci/prow/minor-images d0cd4a0 link true /test minor-images
ci/prow/minor-e2e-upgrade-minor d0cd4a0 link true /test minor-e2e-upgrade-minor

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

Rotten issues close after 30d of inactivity.

Reopen the issue by commenting /reopen.
Mark the issue as fresh by commenting /remove-lifecycle rotten.
Exclude this issue from closing again by commenting /lifecycle frozen.

/close

@openshift-ci openshift-ci bot closed this Sep 15, 2024
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Sep 15, 2024

@openshift-bot: Closed this PR.

In response to this:

Rotten issues close after 30d of inactivity.

Reopen the issue by commenting /reopen.
Mark the issue as fresh by commenting /remove-lifecycle rotten.
Exclude this issue from closing again by commenting /lifecycle frozen.

/close

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. 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.

4 participants