diff --git a/content/en/docs/advanced_features/hostedclusterpackage-api.md b/content/en/docs/advanced_features/hostedclusterpackage-api.md
new file mode 100644
index 0000000..a191d33
--- /dev/null
+++ b/content/en/docs/advanced_features/hostedclusterpackage-api.md
@@ -0,0 +1,227 @@
+---
+title: HostedClusterPackage API
+weight: 1201
+images: []
+mermaid: true
+---
+
+**Note**: The `HostedClusterPackage` API is experimental and subject to
+change in the future.
+
+The `HostedClusterPackage` API extends Package Operator with progressive
+rollout capabilities for Packages targeting HyperShift Hosted Control Planes
+(HCP). It introduces a cluster-scoped custom resource, the
+`HostedClusterPackage`, which governs the lifecycle and update process of
+Packages across all hosted control planes within a HyperShift Management
+Cluster.
+
+## Overview
+
+This API allows for the central rollout of `Packages` to all hosted control
+planes on a given management cluster. It provides facilities to control
+rollout strategies, significantly reducing the "blast radius" of failed
+upgrades compared to simultaneous updates. It also simplifies the
+configuration required to deliver objects into an HCP namespace by reducing
+the dependency on multiple systems down to a single API.
+
+```mermaid
+flowchart LR
+ subgraph "HyperShift Management Cluster"
+ metrics-hsp["HostedClusterPackage
example-package"]
+ subgraph "Namespace: my-cluster-x"
+ ns-c1["Package
example-package"]
+ end
+ subgraph "Namespace: my-cluster-y"
+ ns-c2["Package
example-package"]
+ end
+ end
+ metrics-hsp--->ns-c1
+ metrics-hsp--->ns-c2
+```
+
+### Key Features
+
+* **Progressive Rollout**: Updates are rolled out gradually to `HostedClusters`
+ rather than all at once.
+* **Lifecycle Automation**: Automatically creates Packages for new
+ `HostedClusters` and deletes them when the cluster is removed.
+* **Status & Monitoring**: Provides status updates on the number
+ of available, unavailable, or updated packages.
+* **Simplified Configuration**: Reduces the configuration surface from
+ multiple objects to just the `HostedClusterPackage` API.
+
+## HostedClusterPackage Resource
+
+The newly introduced `HostedClusterPackage` resource configuration object
+for this functionality. It coordinates the rollout process and which
+`HostedClusters` in the fleet are targeted.
+
+### Targeting Clusters
+
+The list of `HostedCluster` objects can be limited by specifying an optional
+label selector.
+
+Example selecting `HostedCluster`s with the `foo: bar` label.
+
+```yaml
+spec:
+ hostedClusterSelector:
+ matchLabels:
+ foo: bar
+ template: {}
+```
+
+### Partitioning
+
+To control the order of updates, you can attach an optional partition
+configuration to the Package API. This ensures that all items within a
+specific group are processed before the rollout moves to the next group.
+
+* **Grouping**: The configuration uses labels on the HostedCluster object to
+ assign groups (e.g., hypershift.openshift.io/risk-group).
+* **Ordering**: Groups can be ordered via a static list or by alphanumeric
+ ascending order.
+* **Implicit Handling**: HostedClusters without the specified label or with
+ unknown values are placed in an implicit "unknown" group and upgraded last.
+* **Dynamic Regrouping**: If a cluster's label changes to an earlier group
+ during an upgrade, the process will jump back to handle that group before
+ continuing.
+
+Example for `static` ordering:
+
+```yaml
+spec:
+ partition:
+ labelKey: hypershift.openshift.io/risk-group
+ order:
+ static:
+ - early
+ - normal
+ - late
+```
+
+Example for `alphanumeric` ordering:
+
+```yaml
+spec:
+ partition:
+ labelKey: hypershift.openshift.io/risk-group
+ order:
+ alphanumericAsc: {}
+```
+
+### Progression Strategies
+
+The API supports configurable progression strategies to control the speed
+and safety of the rollout.
+
+### Rolling Upgrade
+
+The `rollingUpgrade` strategy is designed to keep service disruptions to a
+minimum.
+
+* `maxUnavailable`: Configures the maximum number of Package instances that
+ can be updating or unavailable at the same time. If a Package is already
+ unavailable before the upgrade starts, it counts towards this limit. These
+ unavailable packages are prioritized for updates to prevent accumulating
+ faulty versions.
+
+```yaml
+spec:
+ strategy:
+ rollingUpgrade:
+ maxUnavailable: 1
+```
+
+## Status & Observability
+
+The `HostedClusterPackage` API exposes status information to help you track the
+progress of a rollout and the health of the fleet. This status can help you
+understand if an update is proceeding smoothly or if it has stalled due to
+errors.
+
+### Rollout State
+
+The status subresource provides high-level metrics regarding the rollout
+process. These fields allow you to quickly assess the distribution of package
+versions across your `HostedClusters`:
+
+* **Updated Packages**: The number of `HostedClusters` that have successfully
+ received the latest version of the Package.
+
+* **Available Packages**: The number of `HostedClusters` where the Package is
+ currently healthy and serving traffic based on `Available=True` status condition
+ of the Package
+
+* **Unavailable Packages**: The number of HostedClusters where the Package is
+ currently degraded or updating. This count is used to enforce the
+ maxUnavailable limit defined in the progression strategy.
+
+### Progression Logic
+
+The controller uses the status of individual Packages to determine if the
+rollout can proceed to the next target.
+
+* **Success**: If a targeted HostedCluster successfully updates and becomes
+ available, the operator proceeds to select the next cluster in the partition.
+
+* **Failure**: If a Package update fails or becomes unavailable, the rollout
+ pauses for that target hosted cluster. This prevents the propagation of errors
+ to the rest of the fleet.
+
+Example `Status` and `Conditions` for a successful rollout:
+
+```yaml
+status:
+ availablePackages: 3
+ conditions:
+ - lastTransitionTime: "2026-02-05T06:59:51Z"
+ message: 3/3 packages available.
+ observedGeneration: 2
+ reason: EnoughPackagesAvailable
+ status: "True"
+ type: Available
+ - lastTransitionTime: "2026-02-05T06:59:57Z"
+ message: 3/3 packages progressed.
+ observedGeneration: 2
+ reason: AllPackagesProgressed
+ status: "False"
+ type: Progressing
+ - lastTransitionTime: "2026-02-05T06:57:57Z"
+ message: 0/3 packages paused.
+ observedGeneration: 2
+ reason: NoPackagePaused
+ status: "False"
+ type: HasPausedPackage
+ observedGeneration: 2
+ progressedPackages: 3
+ totalPackages: 3
+ updatedPackages: 3
+```
+
+## Configuration Example
+
+The following YAML example demonstrates a HostedClusterPackage configured with
+risk-based partitioning and a rolling upgrade strategy.
+
+```yaml
+apiVersion: package-operator.run/v1alpha1
+kind: HostedClusterPackage
+metadata:
+ name: example-hosted-cluster-package
+spec:
+ template:
+ metadata:
+ labels:
+ foo: bar
+ spec:
+ image: some-registry.io/foo-bar/test:v0.0.1
+ # Partition Configuration
+ partition:
+ labelKey: hypershift.openshift.io/risk-group
+ order:
+ alphanumericAsc: {}
+ strategy:
+ rollingUpgrade:
+ maxUnavailable: 1 # Max packages to update concurrently
+```
diff --git a/content/en/docs/api_reference/package-operator-api.md b/content/en/docs/api_reference/package-operator-api.md
index afcf099..6635254 100644
--- a/content/en/docs/api_reference/package-operator-api.md
+++ b/content/en/docs/api_reference/package-operator-api.md
@@ -47,6 +47,7 @@ containing basic building blocks that other auxiliary APIs can build on top of.
* [ClusterObjectSlice](#clusterobjectslice)
* [ClusterObjectTemplate](#clusterobjecttemplate)
* [ClusterPackage](#clusterpackage)
+* [HostedClusterPackage](#hostedclusterpackage)
* [ObjectDeployment](#objectdeployment)
* [ObjectSet](#objectset)
* [ObjectSetPhase](#objectsetphase)
@@ -124,6 +125,7 @@ status:
kind: sadipscing
name: sed
namespace: diam
+ version: nonumy
revision: 42
templateHash: consetetur
@@ -178,22 +180,23 @@ spec:
app.kubernetes.io/name: example-operator
lifecycleState: Active
phases:
- - class: eirmod
- name: nonumy
+ - class: tempor
+ name: eirmod
objects:
- collisionProtection: Prevent
conditionMappings:
- - destinationType: lorem
- sourceType: tempor
+ - destinationType: ipsum
+ sourceType: lorem
object:
apiVersion: apps/v1
kind: Deployment
metadata:
name: example-deployment
slices:
- - ipsum
+ - dolor
previous:
- name: previous-revision
+ revision: 42
successDelaySeconds: 42
status:
conditions:
@@ -202,12 +205,13 @@ status:
status: "True"
type: Available
controllerOf:
- - group: amet
- kind: sit
- name: consetetur
- namespace: sadipscing
+ - group: consetetur
+ kind: amet
+ name: sadipscing
+ namespace: elitr
+ version: sed
remotePhases:
- - name: dolor
+ - name: sit
uid: 3490a790-05f8-4bd7-8333-1001c49fccd2
revision: 42
@@ -257,8 +261,8 @@ spec:
objects:
- collisionProtection: Prevent
conditionMappings:
- - destinationType: sed
- sourceType: elitr
+ - destinationType: nonumy
+ sourceType: diam
object:
apiVersion: apps/v1
kind: Deployment
@@ -273,10 +277,11 @@ status:
- status: "True"
type: Available
controllerOf:
- - group: nonumy
- kind: diam
- name: eirmod
- namespace: tempor
+ - group: tempor
+ kind: eirmod
+ name: lorem
+ namespace: ipsum
+ version: dolor
```
@@ -305,8 +310,8 @@ metadata:
objects:
- collisionProtection: Prevent
conditionMappings:
- - destinationType: ipsum
- sourceType: lorem
+ - destinationType: amet
+ sourceType: sit
object:
apiVersion: apps/v1
kind: Deployment
@@ -338,15 +343,15 @@ metadata:
name: example
spec:
sources:
- - apiVersion: sit
+ - apiVersion: sadipscing
items:
- - destination: sed
- key: elitr
- kind: amet
- name: sadipscing
- namespace: consetetur
+ - destination: eirmod
+ key: nonumy
+ kind: elitr
+ name: diam
+ namespace: sed
optional: true
- template: dolor
+ template: consetetur
status:
conditions:
- message: Latest Revision is Available.
@@ -354,10 +359,11 @@ status:
status: "True"
type: Available
controllerOf:
- group: nonumy
- kind: diam
- name: eirmod
- namespace: tempor
+ group: lorem
+ kind: tempor
+ name: ipsum
+ namespace: dolor
+ version: sit
```
@@ -382,9 +388,9 @@ kind: ClusterPackage
metadata:
name: example
spec:
- component: ipsum
+ component: consetetur
config: {}
- image: lorem
+ image: amet
paused: true
status:
conditions:
@@ -393,7 +399,7 @@ status:
status: "True"
type: Available
revision: 42
- unpackedHash: dolor
+ unpackedHash: sadipscing
```
@@ -405,6 +411,68 @@ status:
| `status`
PackageStatus | PackageStatus defines the observed state of a Package. |
+### HostedClusterPackage
+
+HostedClusterPackage defines package to be rolled out on every HyperShift HostedCluster.
+Experimental: Subject to change.
+
+
+**Example**
+
+```yaml
+apiVersion: package-operator.run/v1alpha1
+kind: HostedClusterPackage
+metadata:
+ name: example
+spec:
+ hostedClusterSelector: {}
+ partition:
+ labelKey: diam
+ order:
+ alphanumericAsc: {}
+ static:
+ - nonumy
+ strategy: '{instant:{}}'
+ template:
+ metadata: {}
+ spec:
+ component: sed
+ config: {}
+ image: elitr
+ paused: true
+status:
+ availablePackages: 42
+ conditions:
+ - message: Latest Revision is Available.
+ reason: Available
+ status: "True"
+ type: Available
+ observedGeneration: 42
+ partitions:
+ - availablePackages: 42
+ name: eirmod
+ observedGeneration: 42
+ progressedPackages: 42
+ totalPackages: 42
+ updatedPackages: 42
+ processing:
+ - name: tempor
+ namespace: lorem
+ uid: 3490a790-05f8-4bd7-8333-1001c49fccd2
+ progressedPackages: 42
+ totalPackages: 42
+ updatedPackages: 42
+
+```
+
+
+| Field | Description |
+| ----- | ----------- |
+| `metadata`
metav1.ObjectMeta | |
+| `spec`
HostedClusterPackageSpec | HostedClusterPackageSpec is the description of a HostedClusterPackage. |
+| `status`
HostedClusterPackageStatus | HostedClusterPackageStatus describes the status of a HostedClusterPackage. |
+
+
### ObjectDeployment
ObjectDeployment is the Schema for the ObjectDeployments API
@@ -448,20 +516,20 @@ spec:
matchLabels:
app.kubernetes.io/name: example-operator
phases:
- - class: amet
- name: sit
+ - class: dolor
+ name: ipsum
objects:
- collisionProtection: Prevent
conditionMappings:
- - destinationType: sadipscing
- sourceType: consetetur
+ - destinationType: amet
+ sourceType: sit
object:
apiVersion: apps/v1
kind: Deployment
metadata:
name: example-deployment
slices:
- - elitr
+ - consetetur
successDelaySeconds: 42
status:
collisionCount: 42
@@ -471,12 +539,13 @@ status:
status: "True"
type: Available
controllerOf:
- - group: nonumy
- kind: diam
- name: eirmod
- namespace: tempor
+ - group: sed
+ kind: elitr
+ name: diam
+ namespace: nonumy
+ version: eirmod
revision: 42
- templateHash: sed
+ templateHash: sadipscing
```
@@ -530,22 +599,23 @@ spec:
app.kubernetes.io/name: example-operator
lifecycleState: Active
phases:
- - class: ipsum
- name: lorem
+ - class: lorem
+ name: tempor
objects:
- collisionProtection: Prevent
conditionMappings:
- - destinationType: sit
- sourceType: dolor
+ - destinationType: dolor
+ sourceType: ipsum
object:
apiVersion: apps/v1
kind: Deployment
metadata:
name: example-deployment
slices:
- - amet
+ - sit
previous:
- name: previous-revision
+ revision: 42
successDelaySeconds: 42
status:
conditions:
@@ -554,12 +624,13 @@ status:
status: "True"
type: Available
controllerOf:
- - group: elitr
- kind: sadipscing
- name: sed
- namespace: diam
+ - group: sadipscing
+ kind: consetetur
+ name: elitr
+ namespace: sed
+ version: diam
remotePhases:
- - name: consetetur
+ - name: amet
uid: 3490a790-05f8-4bd7-8333-1001c49fccd2
revision: 42
@@ -629,6 +700,7 @@ status:
kind: tempor
name: ipsum
namespace: dolor
+ version: sit
```
@@ -658,8 +730,8 @@ metadata:
objects:
- collisionProtection: Prevent
conditionMappings:
- - destinationType: amet
- sourceType: sit
+ - destinationType: consetetur
+ sourceType: amet
object:
apiVersion: apps/v1
kind: Deployment
@@ -692,15 +764,15 @@ metadata:
namespace: default
spec:
sources:
- - apiVersion: sadipscing
+ - apiVersion: elitr
items:
- - destination: eirmod
- key: nonumy
- kind: elitr
- name: diam
- namespace: sed
+ - destination: tempor
+ key: eirmod
+ kind: sed
+ name: nonumy
+ namespace: diam
optional: true
- template: consetetur
+ template: sadipscing
status:
conditions:
- message: Latest Revision is Available.
@@ -708,10 +780,11 @@ status:
status: "True"
type: Available
controllerOf:
- group: lorem
- kind: tempor
- name: ipsum
- namespace: dolor
+ group: ipsum
+ kind: lorem
+ name: dolor
+ namespace: sit
+ version: amet
```
@@ -737,9 +810,9 @@ metadata:
name: example
namespace: default
spec:
- component: amet
+ component: sadipscing
config: {}
- image: sit
+ image: consetetur
paused: true
status:
conditions:
@@ -748,7 +821,7 @@ status:
status: "True"
type: Available
revision: 42
- unpackedHash: consetetur
+ unpackedHash: elitr
```
@@ -836,6 +909,7 @@ ClusterObjectSetSpec defines the desired state of a ClusterObjectSet.
| ----- | ----------- |
| `lifecycleState`
ObjectSetLifecycleState | Specifies the lifecycle state of the ClusterObjectSet. |
| `previous`
[]PreviousRevisionReference | Previous revisions of the ClusterObjectSet to adopt objects from. |
+| `revision`
int64 | Computed revision number, monotonically increasing. |
| `phases`
[]ObjectSetTemplatePhase | Reconcile phase configuration for a ObjectSet.
Phases will be reconciled in order and the contained objects checked
against given probes before continuing with the next phase. |
| `availabilityProbes`
[]ObjectSetProbe | Availability Probes check objects that are part of the package.
All probes need to succeed for a package to be considered Available.
Failing probes will prevent the reconciliation of objects in later phases. |
| `successDelaySeconds`
int32 | Success Delay Seconds applies a wait period from the time an
Object Set is available to the time it is marked as successful.
This can be used to prevent false reporting of success when
the underlying objects may initially satisfy the availability
probes, but are ultimately unstable. |
@@ -852,7 +926,7 @@ ClusterObjectSetStatus defines the observed state of a ClusterObjectSet.
| Field | Description |
| ----- | ----------- |
| `conditions`
[]metav1.Condition | Conditions is a list of status conditions ths object is in. |
-| `revision`
int64 | Computed revision number, monotonically increasing. |
+| `revision`
int64 | Deprecated: use .spec.revision instead |
| `remotePhases`
[]RemotePhaseReference | Remote phases aka ClusterObjectSetPhase objects. |
| `controllerOf`
[]ControlledObjectReference | References all objects controlled by this instance. |
@@ -885,6 +959,7 @@ ControlledObjectReference an object controlled by this object.
| `group` required
string | Object Group. |
| `name` required
string | Object Name. |
| `namespace`
string | Object Namespace. |
+| `version` required
string | Object Version. |
Used in:
@@ -897,6 +972,135 @@ Used in:
* [ObjectTemplateStatus](#objecttemplatestatus)
+### HostedClusterPackagePartitionOrderSpec
+
+HostedClusterPackagePartitionOrderSpec describes ordering for a partition.
+
+| Field | Description |
+| ----- | ----------- |
+| `static`
[]string | Allows to define a static partition order.
The special * key matches anything not explicitly part of the list.
Unknown risk-groups or HostedClusters without label
will be put into an implicit "unknown" group and
will get upgraded LAST. |
+| `alphanumericAsc`
HostedClusterPackagePartitionOrderAlphanumericAsc | |
+
+
+Used in:
+* [HostedClusterPackagePartitionSpec](#hostedclusterpackagepartitionspec)
+
+
+### HostedClusterPackagePartitionSpec
+
+HostedClusterPackagePartitionSpec describes settings to partition HostedClusters into groups for upgrades.
+Partitions will be upgraded after each other:
+Upgrades in the next partition will only start after the previous has finished.
+HostedClusters without the label will be put into an implicit "unknown" group
+and will get upgraded LAST.
+
+| Field | Description |
+| ----- | ----------- |
+| `labelKey` required
string | LabelKey defines a labelKey to group objects on. |
+| `order`
HostedClusterPackagePartitionOrderSpec | Controls how partitions are ordered.
By default items will be sorted AlphaNumeric ascending. |
+
+
+Used in:
+* [HostedClusterPackageSpec](#hostedclusterpackagespec)
+
+
+### HostedClusterPackagePartitionStatus
+
+HostedClusterPackagePartitionStatus describes the status of a partition.
+
+| Field | Description |
+| ----- | ----------- |
+| `name` required
string | Name of the partition. |
+| `observedGeneration`
int32 | The generation observed by the HostedClusterPackage controller. |
+| `availablePackages`
int32 | Total number of available Packages targeted by this HostedClusterPackage. |
+| `progressedPackages`
int32 | Total number of Packages with Progressing=False and Unpacked=True conditions. |
+| `updatedPackages`
int32 | Total number of non-terminated Packages targeted by this HostedClusterPackage that have the desired template spec. |
+| `totalPackages`
int32 | Total number of non-terminated Packages targeted by this HostedClusterPackage. |
+
+
+Used in:
+* [HostedClusterPackageStatus](#hostedclusterpackagestatus)
+
+
+### HostedClusterPackageRefStatus
+
+HostedClusterPackageRefStatus holds a reference to upgrades in-flight.
+
+| Field | Description |
+| ----- | ----------- |
+| `uid` required
types.UID | |
+| `name` required
string | |
+| `namespace`
string | |
+
+
+Used in:
+* [HostedClusterPackageStatus](#hostedclusterpackagestatus)
+
+
+### HostedClusterPackageSpec
+
+HostedClusterPackageSpec is the description of a HostedClusterPackage.
+
+| Field | Description |
+| ----- | ----------- |
+| `strategy` required
HostedClusterPackageStrategy | HostedClusterPackageStrategy describes the rollout strategy for a HostedClusterPackage. |
+| `hostedClusterSelector`
metav1.LabelSelector | HostedClusterSelector is a label query matching HostedClusters that the Package should be rolled out to. |
+| `template` required
PackageTemplateSpec | Template describes the Package that should be created when new
HostedClusters matching the hostedClusterSelector are detected. |
+| `partition`
HostedClusterPackagePartitionSpec | Partition HostedClusters by label value.
All packages in the same partition will have to be upgraded
before progressing to the next partition. |
+
+
+Used in:
+* [HostedClusterPackage](#hostedclusterpackage)
+
+
+### HostedClusterPackageStatus
+
+HostedClusterPackageStatus describes the status of a HostedClusterPackage.
+
+| Field | Description |
+| ----- | ----------- |
+| `conditions`
[]metav1.Condition | Conditions is a list of status conditions this object is in. |
+| `partitions`
[]HostedClusterPackagePartitionStatus | Count of packages found by partition. |
+| `processing`
[]HostedClusterPackageRefStatus | Processing set of packages during upgrade. |
+| `observedGeneration`
int32 | The generation observed by the HostedClusterPackage controller. |
+| `availablePackages`
int32 | Total number of available Packages targeted by this HostedClusterPackage. |
+| `progressedPackages`
int32 | Total number of Packages with Progressing=False and Unpacked=True conditions. |
+| `updatedPackages`
int32 | Total number of non-terminated Packages targeted by this HostedClusterPackage that have the desired template spec. |
+| `totalPackages`
int32 | Total number of non-terminated Packages targeted by this HostedClusterPackage. |
+
+
+Used in:
+* [HostedClusterPackage](#hostedclusterpackage)
+
+
+### HostedClusterPackageStrategy
+
+HostedClusterPackageStrategy describes the rollout strategy for a HostedClusterPackage.
+
+| Field | Description |
+| ----- | ----------- |
+| `instant`
HostedClusterPackageStrategyInstant | Updates all matching Packages instantly. |
+| `rollingUpgrade`
HostedClusterPackageStrategyRollingUpgrade | Performs a rolling upgrade according to maxUnavailable. |
+
+
+Used in:
+* [HostedClusterPackageSpec](#hostedclusterpackagespec)
+
+
+### HostedClusterPackageStrategyRollingUpgrade
+
+HostedClusterPackageStrategyRollingUpgrade describes the
+rolling upgrade strategy for HostedClusterPackages.
+
+| Field | Description |
+| ----- | ----------- |
+| `maxUnavailable` required
int | MaxUnavailable defines how many Packages may become unavailable during upgrade at the same time.
Cannot be below 1, because we cannot surge to create more instances. |
+
+
+Used in:
+* [HostedClusterPackageStrategy](#hostedclusterpackagestrategy)
+
+
### ObjectDeploymentSpec
ObjectDeploymentSpec defines the desired state of an ObjectDeployment.
@@ -1006,6 +1210,7 @@ ObjectSetSpec defines the desired state of a ObjectSet.
| ----- | ----------- |
| `lifecycleState`
ObjectSetLifecycleState | Specifies the lifecycle state of the ObjectSet. |
| `previous`
[]PreviousRevisionReference | Previous revisions of the ObjectSet to adopt objects from. |
+| `revision`
int64 | Computed revision number, monotonically increasing. |
| `phases`
[]ObjectSetTemplatePhase | Reconcile phase configuration for a ObjectSet.
Phases will be reconciled in order and the contained objects checked
against given probes before continuing with the next phase. |
| `availabilityProbes`
[]ObjectSetProbe | Availability Probes check objects that are part of the package.
All probes need to succeed for a package to be considered Available.
Failing probes will prevent the reconciliation of objects in later phases. |
| `successDelaySeconds`
int32 | Success Delay Seconds applies a wait period from the time an
Object Set is available to the time it is marked as successful.
This can be used to prevent false reporting of success when
the underlying objects may initially satisfy the availability
probes, but are ultimately unstable. |
@@ -1022,7 +1227,7 @@ ObjectSetStatus defines the observed state of a ObjectSet.
| Field | Description |
| ----- | ----------- |
| `conditions`
[]metav1.Condition | Conditions is a list of status conditions ths object is in. |
-| `revision`
int64 | Computed revision number, monotonically increasing. |
+| `revision`
int64 | Deprecated: use .spec.revision instead |
| `remotePhases`
[]RemotePhaseReference | Remote phases aka ObjectSetPhase objects. |
| `controllerOf`
[]ControlledObjectReference | References all objects controlled by this instance. |
@@ -1171,6 +1376,7 @@ PackageSpec specifies a package.
Used in:
+* [PackageTemplateSpec](#packagetemplatespec)
* [ClusterPackage](#clusterpackage)
* [Package](#package)
@@ -1191,6 +1397,20 @@ Used in:
* [Package](#package)
+### PackageTemplateSpec
+
+PackageTemplateSpec describes the data a package should have when created from a template.
+
+| Field | Description |
+| ----- | ----------- |
+| `metadata`
metav1.ObjectMeta | Standard object's metadata.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata |
+| `spec` required
PackageSpec | Specification of the desired behavior of the package. |
+
+
+Used in:
+* [HostedClusterPackageSpec](#hostedclusterpackagespec)
+
+
### PreviousRevisionReference
PreviousRevisionReference references a previous revision of an ObjectSet or ClusterObjectSet.