apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: buildpipelines.example.invalid
spec:
  group: example.invalid
  scope: Namespaced
  names:
    plural: buildpipelines
    singular: buildpipeline
    kind: BuildPipeline
    shortNames:
      - bp
  versions:
    - name: v1alpha1
      served: true
      storage: true
      subresources:
        status: {}
      schema:
        openAPIV3Schema:
          type: object
          required:
            - spec
          properties:
            spec:
              type: object
              required:
                - stages
              properties:
                stages:
                  type: array
                  minItems: 1
                  items:
                    type: object
                    required:
                      - name
                    properties:
                      name:
                        type: string
                        pattern: "^[a-z][a-z0-9-]{0,30}$"
                      dependsOn:
                        type: array
                        items:
                          type: string
                retries:
                  type: integer
                  minimum: 0
                  maximum: 5
                  default: 1
            status:
              type: object
              properties:
                phase:
                  type: string
                  enum: [Pending, Running, Succeeded, Failed]
      additionalPrinterColumns:
        - name: Phase
          type: string
          jsonPath: .status.phase
