
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.4.1
  creationTimestamp: null
  name: rollouts.apps.rollouts.io
spec:
  group: apps.rollouts.io
  names:
    kind: Rollout
    listKind: RolloutList
    plural: rollouts
    singular: rollout
  scope: Namespaced
  versions:
  - 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:
              strategy:
                description: The deployment strategy to use to replace existing pods
                  with new ones.
                properties:
                  canary:
                    description: BlueGreen *BlueGreenStrategy `json:"blueGreen,omitempty"
                      protobuf:"bytes,1,opt,name=blueGreen"`
                    properties:
                      stableService:
                        description: CanaryService holds the name of a service which
                          selects pods with canary version and don't select any pods
                          with stable version. CanaryService string `json:"canaryService,omitempty"`
                          StableService holds the name of a service which selects
                          pods with stable version and don't select any pods with
                          canary version.
                        type: string
                      steps:
                        description: Steps define the order of phases to execute the
                          canary deployment
                        items:
                          description: CanaryStep defines a step of a canary workload.
                          properties:
                            pause:
                              description: Pause freezes the rollout by setting spec.Paused
                                to true. A Rollout will resume when spec.Paused is
                                reset to false.
                              properties:
                                duration:
                                  description: Duration the amount of time to wait
                                    before moving to the next step.
                                  format: int32
                                  type: integer
                              type: object
                            setWeight:
                              description: SetWeight sets what percentage of the canary
                                pods should receive
                              format: int32
                              type: integer
                          type: object
                        type: array
                      trafficRouting:
                        description: TrafficRouting hosts all the supported service
                          meshes supported to enable more fine-grained traffic routing
                        properties:
                          alb:
                            description: AlbTrafficRouting configuration for Nginx
                              ingress controller to control traffic routing
                            properties:
                              ingress:
                                description: Ingress refers to the name of an `Ingress`
                                  resource in the same namespace as the `Rollout`
                                type: string
                              tickets:
                                description: A/B Testing
                                properties:
                                  cookie:
                                    additionalProperties:
                                      type: string
                                    type: object
                                  header:
                                    additionalProperties:
                                      type: string
                                    type: object
                                type: object
                            required:
                            - ingress
                            type: object
                          nginx:
                            description: Nginx holds Nginx Ingress specific configuration
                              to route traffic
                            properties:
                              ingress:
                                description: Ingress refers to the name of an `Ingress`
                                  resource in the same namespace as the `Rollout`
                                type: string
                              tickets:
                                description: A/B Testing
                                properties:
                                  cookie:
                                    additionalProperties:
                                      type: string
                                    type: object
                                  header:
                                    additionalProperties:
                                      type: string
                                    type: object
                                type: object
                            required:
                            - ingress
                            type: object
                          type:
                            type: string
                        type: object
                    type: object
                type: object
              targetRef:
                description: TargetRef contains enough information to let you identify
                  a workload for Rollout
                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
            required:
            - strategy
            - targetRef
            type: object
          status:
            description: RolloutStatus defines the observed state of Rollout
            properties:
              canaryStatus:
                description: Canary describes the state of the canary rollout
                properties:
                  canaryReadyReplicas:
                    format: int32
                    type: integer
                  canaryReplicas:
                    description: CanaryReplicas the numbers of canary revision pods
                    format: int32
                    type: integer
                  canaryRevision:
                    description: CanaryRevision the hash of the current pod template
                    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
                required:
                - canaryReadyReplicas
                - canaryReplicas
                - canaryService
                - currentStepState
                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 deployment 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 SidecarSet. It corresponds to the SidecarSet's generation,
                  which is updated on mutation by the API Server.
                format: int64
                type: integer
              phase:
                description: Phase is the rollout phase. Clients should only rely
                  on the value if status.observedGeneration equals metadata.generation
                type: string
              stableRevision:
                description: StableRevision indicates the revision pods that has successfully
                  rolled out
                type: string
              updateRevision:
                description: UpdateRevision the hash of the current pod template
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
