@@ -156,6 +156,15 @@ spec:
156
156
the previous version will cause a rollback to be attempted. Not all
157
157
rollbacks will succeed.
158
158
properties :
159
+ accept :
160
+ description : |-
161
+ accept allows an administrator to specify the names of ConditionalUpdateRisk
162
+ those are considered acceptable. A conditional update is accepted by Cluster-Version
163
+ operator only if all of its risks are acceptable.
164
+ items :
165
+ type : string
166
+ maxItems : 100
167
+ type : array
159
168
architecture :
160
169
description : |-
161
170
architecture is an optional field that indicates the desired
@@ -362,6 +371,157 @@ spec:
362
371
type : array
363
372
x-kubernetes-list-type : atomic
364
373
type : object
374
+ conditionalUpdateRisks :
375
+ description : |-
376
+ conditionalUpdateRisks represents issues for ConditionalUpdates.
377
+ The cluster-version operator will evaluate all risks associated to a conditional
378
+ update when it is the desired update and only accept it if all its associated
379
+ risks are in "spec.desiredUpdate.accept".
380
+ items :
381
+ description : |-
382
+ ConditionalUpdateRisk represents a reason and cluster-state
383
+ for not recommending a conditional update.
384
+ properties :
385
+ conditions :
386
+ description : |-
387
+ conditions represents the observations of the conditional update's
388
+ current status. Known types are:
389
+ * Apply, for whether the risk is applied to the current cluster.
390
+ items :
391
+ description : Condition contains details for one aspect of
392
+ the current state of this API Resource.
393
+ properties :
394
+ lastTransitionTime :
395
+ description : |-
396
+ lastTransitionTime is the last time the condition transitioned from one status to another.
397
+ This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
398
+ format : date-time
399
+ type : string
400
+ message :
401
+ description : |-
402
+ message is a human readable message indicating details about the transition.
403
+ This may be an empty string.
404
+ maxLength : 32768
405
+ type : string
406
+ observedGeneration :
407
+ description : |-
408
+ observedGeneration represents the .metadata.generation that the condition was set based upon.
409
+ For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
410
+ with respect to the current state of the instance.
411
+ format : int64
412
+ minimum : 0
413
+ type : integer
414
+ reason :
415
+ description : |-
416
+ reason contains a programmatic identifier indicating the reason for the condition's last transition.
417
+ Producers of specific condition types may define expected values and meanings for this field,
418
+ and whether the values are considered a guaranteed API.
419
+ The value should be a CamelCase string.
420
+ This field may not be empty.
421
+ maxLength : 1024
422
+ minLength : 1
423
+ pattern : ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
424
+ type : string
425
+ status :
426
+ description : status of the condition, one of True, False,
427
+ Unknown.
428
+ enum :
429
+ - " True"
430
+ - " False"
431
+ - Unknown
432
+ type : string
433
+ type :
434
+ description : type of condition in CamelCase or in foo.example.com/CamelCase.
435
+ maxLength : 316
436
+ pattern : ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
437
+ type : string
438
+ required :
439
+ - lastTransitionTime
440
+ - message
441
+ - reason
442
+ - status
443
+ - type
444
+ type : object
445
+ type : array
446
+ x-kubernetes-list-map-keys :
447
+ - type
448
+ x-kubernetes-list-type : map
449
+ matchingRules :
450
+ description : |-
451
+ matchingRules is a slice of conditions for deciding which
452
+ clusters match the risk and which do not. The slice is
453
+ ordered by decreasing precedence. The cluster-version
454
+ operator will walk the slice in order, and stop after the
455
+ first it can successfully evaluate. If no condition can be
456
+ successfully evaluated, the update will not be recommended.
457
+ items :
458
+ description : |-
459
+ ClusterCondition is a union of typed cluster conditions. The 'type'
460
+ property determines which of the type-specific properties are relevant.
461
+ When evaluated on a cluster, the condition may match, not match, or
462
+ fail to evaluate.
463
+ properties :
464
+ promql :
465
+ description : promql represents a cluster condition based
466
+ on PromQL.
467
+ properties :
468
+ promql :
469
+ description : |-
470
+ promql is a PromQL query classifying clusters. This query
471
+ query should return a 1 in the match case and a 0 in the
472
+ does-not-match case. Queries which return no time
473
+ series, or which return values besides 0 or 1, are
474
+ evaluation failures.
475
+ type : string
476
+ required :
477
+ - promql
478
+ type : object
479
+ type :
480
+ description : |-
481
+ type represents the cluster-condition type. This defines
482
+ the members and semantics of any additional properties.
483
+ enum :
484
+ - Always
485
+ - PromQL
486
+ type : string
487
+ required :
488
+ - type
489
+ type : object
490
+ minItems : 1
491
+ type : array
492
+ x-kubernetes-list-type : atomic
493
+ message :
494
+ description : |-
495
+ message provides additional information about the risk of
496
+ updating, in the event that matchingRules match the cluster
497
+ state. This is only to be consumed by humans. It may
498
+ contain Line Feed characters (U+000A), which should be
499
+ rendered as new lines.
500
+ minLength : 1
501
+ type : string
502
+ name :
503
+ description : |-
504
+ name is the CamelCase reason for not recommending a
505
+ conditional update, in the event that matchingRules match the
506
+ cluster state.
507
+ minLength : 1
508
+ type : string
509
+ url :
510
+ description : url contains information about this risk.
511
+ format : uri
512
+ minLength : 1
513
+ type : string
514
+ required :
515
+ - matchingRules
516
+ - message
517
+ - name
518
+ - url
519
+ type : object
520
+ maxItems : 1000
521
+ type : array
522
+ x-kubernetes-list-map-keys :
523
+ - name
524
+ x-kubernetes-list-type : map
365
525
conditionalUpdates :
366
526
description : |-
367
527
conditionalUpdates contains the list of updates that may be
@@ -475,18 +635,98 @@ spec:
475
635
- image
476
636
- version
477
637
type : object
638
+ riskNames :
639
+ description : |-
640
+ riskNames are names of status.conditionalUpdateRisks
641
+ that are associated with the release in a ConditionalUpdate.
642
+ The cluster-version operator will evaluate these risks and only
643
+ accept the update if there is at least one risk and for every risk
644
+ it is either not applied to the cluster or considered acceptable
645
+ by the cluster administrator.
646
+ items :
647
+ type : string
648
+ maxItems : 100
649
+ minItems : 1
650
+ type : array
651
+ x-kubernetes-list-type : set
478
652
risks :
479
653
description : |-
480
654
risks represents the range of issues associated with
481
655
updating to the target release. The cluster-version
482
656
operator will evaluate all entries, and only recommend the
483
657
update if there is at least one entry and all entries
484
658
recommend the update.
659
+ DEPRECATED: the risks has been deprecated by riskNames and will be removed in a future release.
485
660
items :
486
661
description : |-
487
662
ConditionalUpdateRisk represents a reason and cluster-state
488
663
for not recommending a conditional update.
489
664
properties :
665
+ conditions :
666
+ description : |-
667
+ conditions represents the observations of the conditional update's
668
+ current status. Known types are:
669
+ * Apply, for whether the risk is applied to the current cluster.
670
+ items :
671
+ description : Condition contains details for one aspect
672
+ of the current state of this API Resource.
673
+ properties :
674
+ lastTransitionTime :
675
+ description : |-
676
+ lastTransitionTime is the last time the condition transitioned from one status to another.
677
+ This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
678
+ format : date-time
679
+ type : string
680
+ message :
681
+ description : |-
682
+ message is a human readable message indicating details about the transition.
683
+ This may be an empty string.
684
+ maxLength : 32768
685
+ type : string
686
+ observedGeneration :
687
+ description : |-
688
+ observedGeneration represents the .metadata.generation that the condition was set based upon.
689
+ For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
690
+ with respect to the current state of the instance.
691
+ format : int64
692
+ minimum : 0
693
+ type : integer
694
+ reason :
695
+ description : |-
696
+ reason contains a programmatic identifier indicating the reason for the condition's last transition.
697
+ Producers of specific condition types may define expected values and meanings for this field,
698
+ and whether the values are considered a guaranteed API.
699
+ The value should be a CamelCase string.
700
+ This field may not be empty.
701
+ maxLength : 1024
702
+ minLength : 1
703
+ pattern : ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
704
+ type : string
705
+ status :
706
+ description : status of the condition, one of True,
707
+ False, Unknown.
708
+ enum :
709
+ - " True"
710
+ - " False"
711
+ - Unknown
712
+ type : string
713
+ type :
714
+ description : type of condition in CamelCase or in
715
+ foo.example.com/CamelCase.
716
+ maxLength : 316
717
+ pattern : ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
718
+ type : string
719
+ required :
720
+ - lastTransitionTime
721
+ - message
722
+ - reason
723
+ - status
724
+ - type
725
+ type : object
726
+ type : array
727
+ x-kubernetes-list-map-keys :
728
+ - type
729
+ x-kubernetes-list-type : map
490
730
matchingRules :
491
731
description : |-
492
732
matchingRules is a slice of conditions for deciding which
@@ -565,6 +805,7 @@ spec:
565
805
x-kubernetes-list-type : map
566
806
required :
567
807
- release
808
+ - riskNames
568
809
- risks
569
810
type : object
570
811
type : array
@@ -665,10 +906,11 @@ spec:
665
906
acceptedRisks :
666
907
description : |-
667
908
acceptedRisks records risks which were accepted to initiate the update.
668
- For example, it may menition an Upgradeable=False or missing signature
669
- that was overriden via desiredUpdate.force, or an update that was
909
+ For example, it may mention an Upgradeable=False or missing signature
910
+ that was overridden via desiredUpdate.force, or an update that was
670
911
initiated despite not being in the availableUpdates set of recommended
671
- update targets.
912
+ update targets, or in the conditionUpdates set and all associated risks
913
+ are specified in "spec.desiredUpdate.accept".
672
914
type : string
673
915
completionTime :
674
916
description : |-
0 commit comments