--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: batchreleases.rollouts.kruise.io spec: group: rollouts.kruise.io names: kind: BatchRelease listKind: BatchReleaseList plural: batchreleases singular: batchrelease scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .spec.targetReference.workloadRef.kind name: KIND type: string - jsonPath: .status.phase name: PHASE type: string - jsonPath: .status.canaryStatus.currentBatch name: BATCH type: integer - jsonPath: .status.canaryStatus.batchState name: BATCH-STATE type: string - jsonPath: .metadata.creationTimestamp name: AGE type: date name: v1alpha1 schema: openAPIV3Schema: properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: description: BatchReleaseSpec defines how to describe an update between different compRevision properties: cancelled: description: Cancel is true indicates this batch release plan is cancelled. type: boolean releasePlan: description: RolloutPlan is the details on how to rollout the resources properties: batchPartition: description: All pods in the batches up to the batchPartition (included) will have the target resource specification while the rest still is the stable revision. This is designed for the operators to manually rollout Default is nil, which means no partition and will release all batches. BatchPartition start from 0. format: int32 type: integer batches: description: 'Batches is the details on each batch of the ReleasePlan. Users can specify their batch plan in this field, such as: batches: - canaryReplicas: 1 # batches 0 - canaryReplicas: 2 # batches 1 - canaryReplicas: 5 # batches 2 Not that these canaryReplicas should be a non-decreasing sequence.' items: description: ReleaseBatch is used to describe how each batch release should be properties: canaryReplicas: anyOf: - type: integer - type: string description: 'CanaryReplicas is the number of upgraded pods that should have in this batch. it can be an absolute number (ex: 5) or a percentage of workload replicas. batches[i].canaryReplicas should less than or equal to batches[j].canaryReplicas if i < j.' x-kubernetes-int-or-string: true pauseSeconds: description: The wait time, in seconds, between instances batches, default = 0 format: int64 type: integer required: - canaryReplicas type: object type: array paused: description: Paused the rollout, the release progress will be paused util paused is false. default is false type: boolean type: object strategy: properties: cloneSetStrategy: type: string deploymentStrategy: type: string type: object targetReference: description: TargetRevisionName contains the name of the componentRevisionName that we need to upgrade to. properties: type: description: workloadRef, revisionRef default is workloadRef type: string workloadRef: description: WorkloadRef contains enough information to let you identify a workload for Rollout Batch release of the bypass properties: apiVersion: description: API Version of the referent type: string kind: description: Kind of the referent type: string name: description: Name of the referent type: string required: - apiVersion - kind - name type: object type: object required: - releasePlan - targetReference type: object status: description: BatchReleaseStatus defines the observed state of a release plan properties: canaryStatus: description: CanaryStatus describes the state of the canary rollout. properties: batchState: description: CurrentBatchState indicates the release state of the current batch. type: string currentBatch: description: The current batch the rollout is working on/blocked, it starts from 0 format: int32 type: integer lastBatchReadyTime: description: BatchReadyTime is the ready timestamp of the current batch or the last batch. This field is updated once a batch ready, and the batches[x].pausedSeconds relies on this field to calculate the real-time duration. format: date-time type: string updatedReadyReplicas: description: UpdatedReadyReplicas is the number upgraded Pods that have a Ready Condition. format: int32 type: integer updatedReplicas: description: UpdatedReplicas is the number of upgraded Pods. format: int32 type: integer required: - currentBatch type: object collisionCount: description: Count of hash collisions for creating canary Deployment. The controller uses this field as a collision avoidance mechanism when it needs to create the name for the newest canary Deployment. format: int32 type: integer conditions: description: Conditions represents the observed process state of each phase during executing the release plan. items: description: RolloutCondition describes the state of a rollout at a certain point. properties: lastTransitionTime: description: Last time the condition transitioned from one status to another. format: date-time type: string lastUpdateTime: description: The last time this condition was updated. format: date-time type: string message: description: A human readable message indicating details about the transition. type: string reason: description: The reason for the condition's last transition. type: string status: description: Phase of the condition, one of True, False, Unknown. type: string type: description: Type of rollout condition. type: string required: - message - reason - status - type type: object type: array observedGeneration: description: ObservedGeneration is the most recent generation observed for this BatchRelease. It corresponds to this BatchRelease's generation, which is updated on mutation by the API Server, and only if BatchRelease Spec was changed, its generation will increase 1. format: int64 type: integer observedReleasePlanHash: description: ObservedReleasePlanHash is a hash code of observed itself releasePlan.Batches. type: string observedWorkloadReplicas: description: ObservedWorkloadReplicas is observed replicas of target referenced workload. This field is designed to deal with scaling event during rollout, if this field changed, it means that the workload is scaling during rollout. format: int32 type: integer phase: description: Phase is the release plan phase, which indicates the current state of release plan state machine in BatchRelease controller. type: string stableRevision: description: StableRevision is the pod-template-hash of stable revision pod template. type: string updateRevision: description: UpdateRevision is the pod-template-hash of update revision pod template. type: string type: object type: object served: true storage: true subresources: status: {} status: acceptedNames: kind: "" plural: "" conditions: [] storedVersions: []