-
Notifications
You must be signed in to change notification settings - Fork 584
[OTA-1545] Extend ClusterVersion for accepted risks #2360
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
Conversation
|
Hello @hongkailiu! Some important instructions when contributing to openshift/api: |
6dc1e06 to
e780c3a
Compare
5218865 to
4b05550
Compare
f03a0de to
73dc822
Compare
- Add a new field 'clusterversion.spec.desiredUpdate.acceptRisks': It containsthe names of conditional update risks that are considered acceptable. - Move `clusterversion.status.conditionalUpdates.risks` two levels up as `clusterversion.status.conditionalUpdateRisks`. It contains all the risks for `clusterversion.status.conditionalUpdates`. - Add new field 'clusterversion.status.conditionalUpdates.riskNames': It contains the names of risk for the conditional update. It deprecates `clusterversion.status.conditionalUpdates.risks`. - Add a new field 'clusterversion.status.conditionalUpdateRisks.conditions': It contains the observations of the conditional update risk's current status.
The changes introduced by this pull are currently gated by a feature and there is not yet a mechanism to determine for existing fields which parts of docs should be included in which enabled features. We may revert this commit when the feature is promoted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (11)
config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-TechPreviewNoUpgrade.crd.yaml (2)
459-618: Remove minItems constraint from status field conditionalUpdateRisks.At line 614,
conditionalUpdateRiskshasminItems: 1, but this is a server-generated status field. The system must be able to represent states where no conditional update risks have been identified. Enforcing a minimum of one entry prevents accurate status reporting.This issue was previously identified in past reviews but remains unresolved.
🔎 Suggested fix
Remove the
minItems: 1constraint:maxItems: 500 - minItems: 1 type: array
743-757: Remove minItems constraint from status field riskNames.At line 755,
riskNameshasminItems: 1, but this status field should be able to represent conditional updates with zero applicable risks. TheAppliescondition in each risk entry determines cluster applicability—an emptyriskNamesarray validly represents an update with no risks applicable to the current cluster.This issue was previously identified in past reviews but remains unresolved.
🔎 Suggested fix
Remove the
minItems: 1constraint:maxItems: 500 - minItems: 1 type: arrayconfig/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-CustomNoUpgrade.crd.yaml (2)
459-618: Remove minItems constraint from status field conditionalUpdateRisks.At line 614,
conditionalUpdateRiskshasminItems: 1on a server-generated status field. This constraint should be removed to allow the API to accurately represent states with no identified conditional update risks.This is the same issue present in the TechPreviewNoUpgrade CRD variant and was previously flagged in past reviews.
🔎 Suggested fix
maxItems: 500 - minItems: 1 type: array
743-757: Remove minItems constraint from status field riskNames.At line 755, the
riskNamesstatus field hasminItems: 1, preventing representation of conditional updates with zero applicable risks. This constraint should be removed.This is the same issue present in the TechPreviewNoUpgrade CRD variant and was previously flagged in past reviews.
🔎 Suggested fix
maxItems: 500 - minItems: 1 type: arrayconfig/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ClusterUpdateAcceptRisks.yaml (1)
411-481: Fix docs vs. schema mismatch for conditions lengthBoth
conditionalUpdateRisks[].conditionsandconditionalUpdates[].risks[].conditionsdescribe “conditions must not contain more than one entry”, but the schema allows up to 8 entries (maxItems: 8,minItems: 1with a CEL rule requiring anAppliescondition).Either:
- keep
maxItems: 8and update the descriptions to reflect the actual[1,8]range, or- change
maxItemsback to 1 if only a single condition is truly intended.Given earlier discussions about future headroom, aligning the comments with the current
maxItems: 8constraint is likely the right fix.Also applies to: 699-770
config/v1/types_cluster_version.go (1)
869-881: AlignConditionalUpdateRisk.Conditionsdocs withMaxItems=8The comments state “conditions must not contain more than one entry”, but the markers allow 1–8 entries:
+kubebuilder:validation:MaxItems=8+kubebuilder:validation:MinItems=1- CEL requires at least one
Appliescondition.To avoid confusion, either:
- update the comment to describe the actual
[1,8]range (and mention theAppliesrequirement), or- lower
MaxItemsto 1 if only a single condition is really intended (which would also require regenerating CRDs).Given the prior decision to allow room for more condition types, updating the docs to match
MaxItems=8is the better option.openapi/generated_openapi/zz_generated.openapi.go (2)
9348-9367: Verify MaxLength constraint was generated for AcceptRisk.name.The description states "must not exceed 256 characters," but the schema lacks the
MaxLengthfield inSchemaProps. A previous review flagged this same issue and marked it as addressed, yet the constraint is still absent. Verify the source file contains+kubebuilder:validation:MaxLength=256and re-run OpenAPI generation.#!/bin/bash # Verify kubebuilder marker exists in source and check generation timestamp rg -A 2 'type AcceptRisk struct' config/v1/types_cluster_version.go # Check if MaxLength appears anywhere in the AcceptRisk schema rg -A 25 'schema_openshift_api_config_v1_AcceptRisk' openapi/generated_openapi/zz_generated.openapi.go | grep -i maxlength
9348-9367: Re-run OpenAPI generation to include all validation constraints.Multiple schemas are missing validation constraints that are explicitly mentioned in their descriptions but absent from
SchemaProps:
- AcceptRisk.name (lines 9355-9361): Missing
MaxLength: 256- conditionalUpdateRisks (lines 11688-11699): Missing
MaxItems: 500andMinItems: 1- riskNames (lines 11937-11949): Missing
MaxItems: 500,MinItems: 1, and itemsMaxLength: 256- conditions (lines 12022-12033): Missing
MaxItems: 1- acceptRisks (lines 20977-20988): Missing
MaxItems: 1000Previous reviews flagged these issues and marked them as addressed, yet the constraints remain absent in the current code. This suggests the OpenAPI generation step was not re-run after the source fixes, or the generation tooling is not properly translating kubebuilder validation markers into OpenAPI schema constraints.
Since this is a generated file, verify the source (
config/v1/types_cluster_version.go) contains the appropriate kubebuilder markers and re-run the OpenAPI generation:#!/bin/bash # Verify all kubebuilder validation markers exist in source echo "=== Checking AcceptRisk.Name ===" rg -A 3 'type AcceptRisk struct' config/v1/types_cluster_version.go echo -e "\n=== Checking ConditionalUpdateRisks ===" rg -B 2 'ConditionalUpdateRisks.*\[\]ConditionalUpdateRisk' config/v1/types_cluster_version.go echo -e "\n=== Checking riskNames ===" rg -B 3 'RiskNames.*\[\]string' config/v1/types_cluster_version.go echo -e "\n=== Checking conditions ===" rg -B 3 'Conditions.*\[\].*Condition' config/v1/types_cluster_version.go echo -e "\n=== Checking acceptRisks ===" rg -B 2 'AcceptRisks.*\[\]AcceptRisk' config/v1/types_cluster_version.goAlso applies to: 11676-11708, 11928-11950, 12010-12034, 20965-20996
config/v1/zz_generated.swagger_doc_generated.go (1)
801-812: ClarifyconditionalUpdateRisksdoc to matchApplies/acceptRiskssemanticsThe
conditionalUpdateRisksdescription on Line 811 currently implies that all risks for a conditional update must be listed inspec.desiredUpdate.acceptRisks, regardless of whether they actually apply to this cluster. That contradicts the more precise contract described onConditionalUpdate.riskNames(Line 834), where a conditional update is acceptable if each risk either:
- does not apply (
Appliescondition is false), or- applies and its name is present in
spec.desiredUpdate.acceptRisks.Consider rewording the field doc (in
config/v1/types_cluster_version.go, then regenerating swagger) to either:
- Explicitly mention the
Appliescondition, e.g. “Only risks whoseAppliescondition is true must be present inspec.desiredUpdate.acceptRisksfor the update to proceed.”, or- Keep this field’s text high-level and defer to
ConditionalUpdate.riskNamesfor the exact gating semantics.This keeps API docs consistent and avoids confusing admins about when a risk must be explicitly accepted.
config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-DevPreviewNoUpgrade.crd.yaml (2)
459-618: Status field should not enforce minItems constraint.The
conditionalUpdateRisksstatus field at line 614 still hasminItems: 1. As flagged in previous reviews, this prevents the system from reporting an empty risks list when no risks are identified for the current cluster state, which is a valid scenario. Status fields should allow empty arrays.🔎 Recommended fix
Remove the
minItems: 1constraint at line 614:maxItems: 500 - minItems: 1 type: array
743-757: Remove minItems constraint from status riskNames.The
riskNamesfield at line 755 still enforcesminItems: 1, but this is part of the status representation for each conditional update. As previously flagged, a conditional update may legitimately have zero applicable risks for a given cluster, making an emptyriskNamesarray a valid state. This constraint prevents the API from accurately reflecting such situations.🔎 Recommended fix
Remove the
minItems: 1constraint at line 755:maxItems: 500 - minItems: 1 type: array
📜 Review details
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Cache: Disabled due to data retention organization setting
Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting
📒 Files selected for processing (25)
config/v1/tests/clusterversions.config.openshift.io/ClusterUpdateAcceptRisks.yamlconfig/v1/types_cluster_version.goconfig/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-CustomNoUpgrade.crd.yamlconfig/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-Default.crd.yamlconfig/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-DevPreviewNoUpgrade.crd.yamlconfig/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-OKD.crd.yamlconfig/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-TechPreviewNoUpgrade.crd.yamlconfig/v1/zz_generated.deepcopy.goconfig/v1/zz_generated.featuregated-crd-manifests.yamlconfig/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/AAA_ungated.yamlconfig/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ClusterUpdateAcceptRisks.yamlconfig/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ImageStreamImportMode.yamlconfig/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/SignatureStores.yamlconfig/v1/zz_generated.swagger_doc_generated.gofeatures.mdfeatures/features.goopenapi/generated_openapi/zz_generated.openapi.gopayload-manifests/featuregates/featureGate-Hypershift-Default.yamlpayload-manifests/featuregates/featureGate-Hypershift-DevPreviewNoUpgrade.yamlpayload-manifests/featuregates/featureGate-Hypershift-OKD.yamlpayload-manifests/featuregates/featureGate-Hypershift-TechPreviewNoUpgrade.yamlpayload-manifests/featuregates/featureGate-SelfManagedHA-Default.yamlpayload-manifests/featuregates/featureGate-SelfManagedHA-DevPreviewNoUpgrade.yamlpayload-manifests/featuregates/featureGate-SelfManagedHA-OKD.yamlpayload-manifests/featuregates/featureGate-SelfManagedHA-TechPreviewNoUpgrade.yaml
🚧 Files skipped from review as they are similar to previous changes (10)
- payload-manifests/featuregates/featureGate-SelfManagedHA-DevPreviewNoUpgrade.yaml
- config/v1/tests/clusterversions.config.openshift.io/ClusterUpdateAcceptRisks.yaml
- features.md
- payload-manifests/featuregates/featureGate-Hypershift-Default.yaml
- config/v1/zz_generated.deepcopy.go
- payload-manifests/featuregates/featureGate-SelfManagedHA-TechPreviewNoUpgrade.yaml
- payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml
- config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/AAA_ungated.yaml
- config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-Default.crd.yaml
- config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-OKD.crd.yaml
🧰 Additional context used
📓 Path-based instructions (1)
**
⚙️ CodeRabbit configuration file
-Focus on major issues impacting performance, readability, maintainability and security. Avoid nitpicks and avoid verbosity.
Files:
features/features.gopayload-manifests/featuregates/featureGate-Hypershift-TechPreviewNoUpgrade.yamlopenapi/generated_openapi/zz_generated.openapi.gopayload-manifests/featuregates/featureGate-SelfManagedHA-OKD.yamlconfig/v1/zz_generated.featuregated-crd-manifests.yamlpayload-manifests/featuregates/featureGate-Hypershift-DevPreviewNoUpgrade.yamlconfig/v1/types_cluster_version.goconfig/v1/zz_generated.swagger_doc_generated.goconfig/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ImageStreamImportMode.yamlconfig/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ClusterUpdateAcceptRisks.yamlconfig/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-DevPreviewNoUpgrade.crd.yamlconfig/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-TechPreviewNoUpgrade.crd.yamlpayload-manifests/featuregates/featureGate-Hypershift-OKD.yamlconfig/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-CustomNoUpgrade.crd.yamlconfig/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/SignatureStores.yaml
🧬 Code graph analysis (2)
config/v1/types_cluster_version.go (1)
config/v1/zz_generated.swagger_doc_generated.go (3)
ConditionalUpdate(839-841)ConditionalUpdateRisk(852-854)AcceptRisk(732-734)
config/v1/zz_generated.swagger_doc_generated.go (1)
config/v1/types_cluster_version.go (1)
AcceptRisk(766-773)
🔇 Additional comments (22)
payload-manifests/featuregates/featureGate-SelfManagedHA-OKD.yaml (1)
80-82: LGTM! Feature gate addition is correctly positioned.The "ClusterUpdateAcceptRisks" feature gate entry is properly formatted and alphabetically ordered within the disabled features list, consistent with the PR's objective to introduce risk acceptance functionality for cluster updates.
config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/ImageStreamImportMode.yaml (1)
589-589: LGTM! Defensive constraints and documentation improvement.The added
maxItemsconstraints (200 risks per conditional update, 500 total conditional updates) are reasonable defensive limits that prevent unbounded array growth. The typo fix in theacceptedRisksdescription improves documentation quality.Also applies to: 599-599, 709-709
features/features.go (1)
669-676: LGTM! Feature gate properly configured.The
FeatureGateClusterUpdateAcceptRisksfeature gate is correctly configured with:
- Appropriate Jira component and contact person
- Correct feature sets (DevPreviewNoUpgrade, TechPreviewNoUpgrade)
- Valid enhancement PR reference
The naming follows the established pattern, and the previous typo noted in past reviews has been corrected.
config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-TechPreviewNoUpgrade.crd.yaml (1)
159-186: LGTM! Spec field validation is appropriate.The
acceptRisksfield is properly configured as an optional spec field with reasonable constraints:
minItems: 1is acceptable here because this is user-provided configuration—if no risks are being accepted, the field can be omitted entirely- maxItems: 1000 provides a reasonable upper bound
- Map-based list type ensures uniqueness by name
- Field-level validations (maxLength: 256, minLength: 1) are appropriate
payload-manifests/featuregates/featureGate-Hypershift-OKD.yaml (1)
80-82: LGTM! Feature gate correctly disabled for OKD.The
ClusterUpdateAcceptRisksfeature gate is appropriately added to the disabled list for the Hypershift-OKD environment, consistent with it being available only in DevPreviewNoUpgrade and TechPreviewNoUpgrade feature sets.payload-manifests/featuregates/featureGate-Hypershift-DevPreviewNoUpgrade.yaml (1)
133-135: LGTM! Feature gate correctly enabled for DevPreviewNoUpgrade.The
ClusterUpdateAcceptRisksfeature gate is appropriately added to the enabled list for the Hypershift-DevPreviewNoUpgrade environment, consistent with the feature gate configuration that enables it for DevPreviewNoUpgrade and TechPreviewNoUpgrade feature sets.payload-manifests/featuregates/featureGate-Hypershift-TechPreviewNoUpgrade.yaml (1)
145-147: ClusterUpdateAcceptRisks gate wiring looks correctNew feature gate is enabled in the TechPreviewNoUpgrade Hypershift manifest in the same pattern/position as adjacent gates. No issues from a schema or rollout perspective.
config/v1/zz_generated.featuregated-crd-manifests.yaml (1)
143-145: Feature-gated CRD registration is consistentAdding
ClusterUpdateAcceptRisksto the ClusterVersion FeatureGates block matches the new gate and associated CRDs; structure and ordering are fine.config/v1/zz_generated.featuregated-crd-manifests/clusterversions.config.openshift.io/SignatureStores.yaml (1)
618-620: Array caps and doc tweak align with Go API
maxItemsvalues forstatus.conditionalUpdates.risks(200) andstatus.conditionalUpdates(500) match the Go+kubebuilder:validation:MaxItemsmarkers and help keep CRD cost reasonable; the acceptedRisks description fix is also correct. No further changes needed.Also applies to: 628-628, 727-731
config/v1/types_cluster_version.go (2)
195-205: Status-level conditional update caps and risk aggregation look goodCapping
ConditionalUpdatesat 500 and addingConditionalUpdateRisks(map keyed by name, max 500, min 1) matches the generated CRDs and the intended aggregation model. This should keep CRD/CEL cost under control while preserving enough headroom for real-world graphs.Also applies to: 207-218
828-840: RiskNames and Risks constraints are consistent and appropriateThe new
RiskNamesfield (min 1, max 500, per-item max length 256, set semantics) andRiskscap (MaxItems=200withMinItems=1) align with the CRD schema and the expected usage patterns. This balances etcd/CRD cost concerns with practical headroom; no further changes needed here.Also applies to: 847-848
openapi/generated_openapi/zz_generated.openapi.go (3)
166-172: LGTM!The registration of the
AcceptRiskschema in the OpenAPI definitions map is correct.
12080-12086: LGTM!The dependency on
k8s.io/apimachinery/pkg/apis/meta/v1.Conditionis correctly added to match the conditions field reference.
21048-21054: LGTM!The description update clarifies what
acceptedRisksrecords, providing better documentation for API users.config/v1/zz_generated.swagger_doc_generated.go (5)
727-734: AcceptRisk Swagger docs match struct validationDescription and length constraints for
namealign withAcceptRiskintypes_cluster_version.go(non-empty, ≤256 chars). No issues.
831-836:riskNamesdocumentation accurately reflects conditional-update gatingThe
riskNamesdescription clearly ties each name toconditionalUpdateRisks, explains theAppliescondition, and states the “does not apply or is accepted” rule, along with uniqueness and cardinality limits. Looks correct and complete.
843-850:ConditionalUpdateRisk.conditionsconstraints are coherentDoc correctly introduces the
Appliescondition, enforces unique types, and caps the list at one entry, matching the “single-condition” intent from the PR. No further changes needed.
888-895:acceptRisksfield description aligns with intended behaviorThe doc explains the role of
acceptRisks, its relationship to conditional-update risks across releases, and uniqueness/cardinality limits. Semantics are consistent with the newAcceptRisktype and the conditional-update flow.
901-910:acceptedRiskshistory documentation is precise and user-facingThe updated description for
UpdateHistory.acceptedRisksclearly conveys what is recorded (force overrides, non-recommended targets, etc.) and fixes the previous typo. No issues.config/v1/zz_generated.crd-manifests/0000_00_cluster-version-operator_01_clusterversions-DevPreviewNoUpgrade.crd.yaml (3)
159-186: Well-designed acceptRisks field structure.The
acceptRisksfield properly usesminItems: 1with "optional" semantics, meaning administrators don't have to set the field, but if they do, they must provide at least one entry. This prevents accidentally submitting an empty risk acceptance list. The validation constraints (maxItems: 1000, name length 1-256, unique names via map-type) are appropriate.
770-841: Strong validation for risk conditions.The conditions array properly enforces constraints through both schema validation (minItems: 1, maxItems: 8) and CEL validation requiring exactly one condition of type 'Applies'. This ensures risks always have applicability status while allowing room for additional condition types in the future.
1033-1033: Good catch on the typo fix.Correcting "menition" to "mention" improves the documentation quality.
|
The "unknown version reference "machine-os"" from the okd-scos-images job is caused by this. We will have to wait for its fix, right? The budget error on crdify. @JoelSpeed I guess you will override it if I understand the covnersation correctly. Let me know if you need me to do anything else for this pull. |
|
/override ci/prow/verify-crdify We are adding high limits to existing lists, and are confident this shouldn't impact existing clusters /override ci/prow/okd-scos-images Known issue with this job |
|
@JoelSpeed: Overrode contexts on behalf of JoelSpeed: ci/prow/okd-scos-images, ci/prow/verify-crdify DetailsIn 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 kubernetes-sigs/prow repository. |
|
@wking is cool with the limits (and the pruning on the CVO implementation). This one is good to go! |
|
/lgtm |
|
Scheduling tests matching the |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: everettraven, JoelSpeed, petr-muller The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/retest-required |
|
The failure seems not relevant to this pull and there are green runs from other pulls. /retest-required |
|
/test e2e-gcp |
|
/override ci/prow/e2e-aws-serial-techpreview An issue with the pipeline controller, these shouldn't be on this PR |
|
@JoelSpeed: Overrode contexts on behalf of JoelSpeed: ci/prow/e2e-aws-serial, ci/prow/e2e-aws-serial-techpreview DetailsIn 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 kubernetes-sigs/prow repository. |
|
/verified by "CI" |
|
@hongkailiu: This PR has been marked as verified by DetailsIn 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. |
|
@hongkailiu: The following test failed, say
Full PR test history. Your PR dashboard. DetailsInstructions 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. |
|
@JoelSpeed would it be up to you to And after a lot of discussion on this pull, I think all of those are intentional tightenings, and we have a plan (OTA-1805) to derisk if we're flubbing our assessments (although with the current numbers, I'd be extremely surprised if they tripped any existing cluster). Ah, and looks like you'd done that before, but because Prow wants fresh success after some unrelated pull merged, you're on the hook to keep doing it until the run you override happens to stay fresh long enough for us to merge before some other API change merges and makes your override stale 😅 |
|
/override ci/prow/verify-crdify Intentional tightening that we have discussed |
|
@JoelSpeed: Overrode contexts on behalf of JoelSpeed: ci/prow/verify-crdify DetailsIn 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 kubernetes-sigs/prow repository. |
The API extensions is proposed in openshift/enhancements#1807
clusterversion.spec.desiredUpdate.acceptRisks: Itcontainsthe names of conditional update risks that are considered
acceptable.
clusterversion.status.conditionalUpdates.riskstwo levels up asclusterversion.status.conditionalUpdateRisks. It contains all the risksfor
clusterversion.status.conditionalUpdates.contains the names of risk for the conditional update. It deprecates
clusterversion.status.conditionalUpdates.risks.It contains the observations of the conditional update risk's current
status.