
---
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: []
