--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.7.0 creationTimestamp: null name: rollouts.rollouts.kruise.io spec: group: rollouts.kruise.io names: kind: Rollout listKind: RolloutList plural: rollouts singular: rollout scope: Namespaced versions: - additionalPrinterColumns: - description: The rollout status phase jsonPath: .status.phase name: STATUS type: string - description: The rollout canary status step jsonPath: .status.canaryStatus.currentStepIndex name: CANARY_STEP type: integer - description: The rollout canary status step state jsonPath: .status.canaryStatus.currentStepState name: CANARY_STATE type: string - description: The rollout canary status message jsonPath: .status.message name: MESSAGE type: string - jsonPath: .metadata.creationTimestamp name: AGE type: date name: v1alpha1 schema: openAPIV3Schema: description: Rollout is the Schema for the rollouts API 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: RolloutSpec defines the desired state of Rollout properties: objectRef: description: 'INSERT ADDITIONAL SPEC FIELDS - desired state of cluster Important: Run "make" to regenerate code after modifying this file ObjectRef indicates workload' properties: 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 strategy: description: rollout strategy properties: canary: description: CanaryStrategy defines parameters for a Replica Based Canary properties: steps: description: Steps define the order of phases to execute release in batches(20%, 40%, 60%, 80%, 100%) items: description: CanaryStep defines a step of a canary workload. properties: pause: description: Pause defines a pause stage for a rollout, manual or auto properties: duration: description: Duration the amount of time to wait before moving to the next step. format: int32 type: integer type: object replicas: anyOf: - type: integer - type: string description: 'Replicas is the number of expected canary pods in this batch it can be an absolute number (ex: 5) or a percentage of total pods.' x-kubernetes-int-or-string: true weight: description: SetWeight sets what percentage of the canary pods should receive format: int32 type: integer type: object type: array trafficRoutings: description: TrafficRoutings hosts all the supported service meshes supported to enable more fine-grained traffic routing todo current only support one items: description: TrafficRouting hosts all the different configuration for supported service meshes to enable more fine-grained traffic routing properties: gracePeriodSeconds: description: Optional duration in seconds the traffic provider(e.g. nginx ingress controller) consumes the service, ingress configuration changes gracefully. format: int32 type: integer ingress: description: Ingress holds Ingress specific configuration to route traffic, e.g. Nginx, Alb. properties: name: description: Name refers to the name of an `Ingress` resource in the same namespace as the `Rollout` type: string required: - name type: object service: description: Service holds the name of a service which selects pods with stable version and don't select any pods with canary version. type: string type: description: nginx, alb, istio etc. type: string required: - service - type type: object type: array type: object paused: description: Paused indicates that the Rollout is paused. Default value is false type: boolean type: object required: - objectRef - strategy type: object status: description: RolloutStatus defines the observed state of Rollout properties: canaryStatus: description: Canary describes the state of the canary rollout properties: canaryReadyReplicas: description: CanaryReadyReplicas the numbers of ready canary revision pods format: int32 type: integer canaryReplicas: description: CanaryReplicas the numbers of canary revision pods format: int32 type: integer canaryRevision: description: CanaryRevision is calculated by rollout based on podTemplateHash, and the internal logic flow uses It may be different from rs podTemplateHash in different k8s versions, so it cannot be used as service selector label type: string canaryService: description: CanaryService holds the name of a service which selects pods with canary version and don't select any pods with stable version. type: string currentStepIndex: description: CurrentStepIndex defines the current step of the rollout is on. If the current step index is null, the controller will execute the rollout. format: int32 type: integer currentStepState: type: string lastReadyTime: description: The last time this step pods is ready. format: date-time type: string message: type: string observedWorkloadGeneration: description: observedWorkloadGeneration is the most recent generation observed for this Rollout ref workload generation. format: int64 type: integer podTemplateHash: description: pod template hash is used as service selector label type: string rolloutHash: description: RolloutHash from rollout.spec object type: string required: - canaryReadyReplicas - canaryReplicas - canaryService - currentStepState - podTemplateHash type: object conditions: description: Conditions a list of conditions a rollout can have. 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 message: description: Message provides details on why the rollout is in its current phase type: string observedGeneration: description: observedGeneration is the most recent generation observed for this Rollout. format: int64 type: integer phase: description: BlueGreenStatus *BlueGreenStatus `json:"blueGreenStatus,omitempty"` Phase is the rollout phase. type: string stableRevision: description: CanaryRevision the hash of the canary pod template CanaryRevision string `json:"canaryRevision,omitempty"` StableRevision indicates the revision pods that has successfully rolled out type: string type: object type: object served: true storage: true subresources: status: {} status: acceptedNames: kind: "" plural: "" conditions: [] storedVersions: []