apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    api-approved.openshift.io: https://github.com/openshift/api/pull/470
    include.release.openshift.io/ibm-cloud-managed: "true"
    include.release.openshift.io/self-managed-high-availability: "true"
    include.release.openshift.io/single-node-developer: "true"
  name: builds.config.openshift.io
spec:
  group: config.openshift.io
  names:
    kind: Build
    listKind: BuildList
    plural: builds
    singular: build
  preserveUnknownFields: false
  scope: Cluster
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        description: "Build configures the behavior of OpenShift builds for the entire
          cluster. This includes default settings that can be overridden in BuildConfig
          objects, and overrides which are applied to all builds. \n The canonical
          name is \"cluster\""
        type: object
        required:
        - spec
        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: Spec holds user-settable values for the build controller
              configuration
            type: object
            properties:
              additionalTrustedCA:
                description: "AdditionalTrustedCA is a reference to a ConfigMap containing
                  additional CAs that should be trusted for image pushes and pulls
                  during builds. The namespace for this config map is openshift-config.
                  \n DEPRECATED: Additional CAs for image pull and push should be
                  set on image.config.openshift.io/cluster instead."
                type: object
                required:
                - name
                properties:
                  name:
                    description: name is the metadata.name of the referenced config
                      map
                    type: string
              buildDefaults:
                description: BuildDefaults controls the default information for Builds
                type: object
                properties:
                  defaultProxy:
                    description: "DefaultProxy contains the default proxy settings
                      for all build operations, including image pull/push and source
                      download. \n Values can be overrode by setting the `HTTP_PROXY`,
                      `HTTPS_PROXY`, and `NO_PROXY` environment variables in the build
                      config's strategy."
                    type: object
                    properties:
                      httpProxy:
                        description: httpProxy is the URL of the proxy for HTTP requests.  Empty
                          means unset and will not result in an env var.
                        type: string
                      httpsProxy:
                        description: httpsProxy is the URL of the proxy for HTTPS
                          requests.  Empty means unset and will not result in an env
                          var.
                        type: string
                      noProxy:
                        description: noProxy is a comma-separated list of hostnames
                          and/or CIDRs for which the proxy should not be used. Empty
                          means unset and will not result in an env var.
                        type: string
                      readinessEndpoints:
                        description: readinessEndpoints is a list of endpoints used
                          to verify readiness of the proxy.
                        type: array
                        items:
                          type: string
                      trustedCA:
                        description: "trustedCA is a reference to a ConfigMap containing
                          a CA certificate bundle. The trustedCA field should only
                          be consumed by a proxy validator. The validator is responsible
                          for reading the certificate bundle from the required key
                          \"ca-bundle.crt\", merging it with the system default trust
                          bundle, and writing the merged trust bundle to a ConfigMap
                          named \"trusted-ca-bundle\" in the \"openshift-config-managed\"
                          namespace. Clients that expect to make proxy connections
                          must use the trusted-ca-bundle for all HTTPS requests to
                          the proxy, and may use the trusted-ca-bundle for non-proxy
                          HTTPS requests as well. \n The namespace for the ConfigMap
                          referenced by trustedCA is \"openshift-config\". Here is
                          an example ConfigMap (in yaml): \n apiVersion: v1 kind:
                          ConfigMap metadata:  name: user-ca-bundle  namespace: openshift-config
                          \ data:    ca-bundle.crt: |      -----BEGIN CERTIFICATE-----
                          \     Custom CA certificate bundle.      -----END CERTIFICATE-----"
                        type: object
                        required:
                        - name
                        properties:
                          name:
                            description: name is the metadata.name of the referenced
                              config map
                            type: string
                  env:
                    description: Env is a set of default environment variables that
                      will be applied to the build if the specified variables do not
                      exist on the build
                    type: array
                    items:
                      description: EnvVar represents an environment variable present
                        in a Container.
                      type: object
                      required:
                      - name
                      properties:
                        name:
                          description: Name of the environment variable. Must be a
                            C_IDENTIFIER.
                          type: string
                        value:
                          description: 'Variable references $(VAR_NAME) are expanded
                            using the previous defined environment variables in the
                            container and any service environment variables. If a
                            variable cannot be resolved, the reference in the input
                            string will be unchanged. The $(VAR_NAME) syntax can be
                            escaped with a double $$, ie: $$(VAR_NAME). Escaped references
                            will never be expanded, regardless of whether the variable
                            exists or not. Defaults to "".'
                          type: string
                        valueFrom:
                          description: Source for the environment variable's value.
                            Cannot be used if value is not empty.
                          type: object
                          properties:
                            configMapKeyRef:
                              description: Selects a key of a ConfigMap.
                              type: object
                              required:
                              - key
                              properties:
                                key:
                                  description: The key to select.
                                  type: string
                                name:
                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                    TODO: Add other useful fields. apiVersion, kind,
                                    uid?'
                                  type: string
                                optional:
                                  description: Specify whether the ConfigMap or its
                                    key must be defined
                                  type: boolean
                            fieldRef:
                              description: 'Selects a field of the pod: supports metadata.name,
                                metadata.namespace, `metadata.labels[''<KEY>'']`,
                                `metadata.annotations[''<KEY>'']`, spec.nodeName,
                                spec.serviceAccountName, status.hostIP, status.podIP,
                                status.podIPs.'
                              type: object
                              required:
                              - fieldPath
                              properties:
                                apiVersion:
                                  description: Version of the schema the FieldPath
                                    is written in terms of, defaults to "v1".
                                  type: string
                                fieldPath:
                                  description: Path of the field to select in the
                                    specified API version.
                                  type: string
                            resourceFieldRef:
                              description: 'Selects a resource of the container: only
                                resources limits and requests (limits.cpu, limits.memory,
                                limits.ephemeral-storage, requests.cpu, requests.memory
                                and requests.ephemeral-storage) are currently supported.'
                              type: object
                              required:
                              - resource
                              properties:
                                containerName:
                                  description: 'Container name: required for volumes,
                                    optional for env vars'
                                  type: string
                                divisor:
                                  description: Specifies the output format of the
                                    exposed resources, defaults to "1"
                                  pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  x-kubernetes-int-or-string: true
                                resource:
                                  description: 'Required: resource to select'
                                  type: string
                            secretKeyRef:
                              description: Selects a key of a secret in the pod's
                                namespace
                              type: object
                              required:
                              - key
                              properties:
                                key:
                                  description: The key of the secret to select from.  Must
                                    be a valid secret key.
                                  type: string
                                name:
                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                                    TODO: Add other useful fields. apiVersion, kind,
                                    uid?'
                                  type: string
                                optional:
                                  description: Specify whether the Secret or its key
                                    must be defined
                                  type: boolean
                  gitProxy:
                    description: "GitProxy contains the proxy settings for git operations
                      only. If set, this will override any Proxy settings for all
                      git commands, such as git clone. \n Values that are not set
                      here will be inherited from DefaultProxy."
                    type: object
                    properties:
                      httpProxy:
                        description: httpProxy is the URL of the proxy for HTTP requests.  Empty
                          means unset and will not result in an env var.
                        type: string
                      httpsProxy:
                        description: httpsProxy is the URL of the proxy for HTTPS
                          requests.  Empty means unset and will not result in an env
                          var.
                        type: string
                      noProxy:
                        description: noProxy is a comma-separated list of hostnames
                          and/or CIDRs for which the proxy should not be used. Empty
                          means unset and will not result in an env var.
                        type: string
                      readinessEndpoints:
                        description: readinessEndpoints is a list of endpoints used
                          to verify readiness of the proxy.
                        type: array
                        items:
                          type: string
                      trustedCA:
                        description: "trustedCA is a reference to a ConfigMap containing
                          a CA certificate bundle. The trustedCA field should only
                          be consumed by a proxy validator. The validator is responsible
                          for reading the certificate bundle from the required key
                          \"ca-bundle.crt\", merging it with the system default trust
                          bundle, and writing the merged trust bundle to a ConfigMap
                          named \"trusted-ca-bundle\" in the \"openshift-config-managed\"
                          namespace. Clients that expect to make proxy connections
                          must use the trusted-ca-bundle for all HTTPS requests to
                          the proxy, and may use the trusted-ca-bundle for non-proxy
                          HTTPS requests as well. \n The namespace for the ConfigMap
                          referenced by trustedCA is \"openshift-config\". Here is
                          an example ConfigMap (in yaml): \n apiVersion: v1 kind:
                          ConfigMap metadata:  name: user-ca-bundle  namespace: openshift-config
                          \ data:    ca-bundle.crt: |      -----BEGIN CERTIFICATE-----
                          \     Custom CA certificate bundle.      -----END CERTIFICATE-----"
                        type: object
                        required:
                        - name
                        properties:
                          name:
                            description: name is the metadata.name of the referenced
                              config map
                            type: string
                  imageLabels:
                    description: ImageLabels is a list of docker labels that are applied
                      to the resulting image. User can override a default label by
                      providing a label with the same name in their Build/BuildConfig.
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          description: Name defines the name of the label. It must
                            have non-zero length.
                          type: string
                        value:
                          description: Value defines the literal value of the label.
                          type: string
                  resources:
                    description: Resources defines resource requirements to execute
                      the build.
                    type: object
                    properties:
                      limits:
                        description: 'Limits describes the maximum amount of compute
                          resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                        type: object
                        additionalProperties:
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          anyOf:
                          - type: integer
                          - type: string
                          x-kubernetes-int-or-string: true
                      requests:
                        description: 'Requests describes the minimum amount of compute
                          resources required. If Requests is omitted for a container,
                          it defaults to Limits if that is explicitly specified, otherwise
                          to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/'
                        type: object
                        additionalProperties:
                          pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                          anyOf:
                          - type: integer
                          - type: string
                          x-kubernetes-int-or-string: true
              buildOverrides:
                description: BuildOverrides controls override settings for builds
                type: object
                properties:
                  forcePull:
                    description: ForcePull overrides, if set, the equivalent value
                      in the builds, i.e. false disables force pull for all builds,
                      true enables force pull for all builds, independently of what
                      each build specifies itself
                    type: boolean
                  imageLabels:
                    description: ImageLabels is a list of docker labels that are applied
                      to the resulting image. If user provided a label in their Build/BuildConfig
                      with the same name as one in this list, the user's label will
                      be overwritten.
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          description: Name defines the name of the label. It must
                            have non-zero length.
                          type: string
                        value:
                          description: Value defines the literal value of the label.
                          type: string
                  nodeSelector:
                    description: NodeSelector is a selector which must be true for
                      the build pod to fit on a node
                    type: object
                    additionalProperties:
                      type: string
                  tolerations:
                    description: Tolerations is a list of Tolerations that will override
                      any existing tolerations set on a build pod.
                    type: array
                    items:
                      description: The pod this Toleration is attached to tolerates
                        any taint that matches the triple <key,value,effect> using
                        the matching operator <operator>.
                      type: object
                      properties:
                        effect:
                          description: Effect indicates the taint effect to match.
                            Empty means match all taint effects. When specified, allowed
                            values are NoSchedule, PreferNoSchedule and NoExecute.
                          type: string
                        key:
                          description: Key is the taint key that the toleration applies
                            to. Empty means match all taint keys. If the key is empty,
                            operator must be Exists; this combination means to match
                            all values and all keys.
                          type: string
                        operator:
                          description: Operator represents a key's relationship to
                            the value. Valid operators are Exists and Equal. Defaults
                            to Equal. Exists is equivalent to wildcard for value,
                            so that a pod can tolerate all taints of a particular
                            category.
                          type: string
                        tolerationSeconds:
                          description: TolerationSeconds represents the period of
                            time the toleration (which must be of effect NoExecute,
                            otherwise this field is ignored) tolerates the taint.
                            By default, it is not set, which means tolerate the taint
                            forever (do not evict). Zero and negative values will
                            be treated as 0 (evict immediately) by the system.
                          type: integer
                          format: int64
                        value:
                          description: Value is the taint value the toleration matches
                            to. If the operator is Exists, the value should be empty,
                            otherwise just a regular string.
                          type: string
    served: true
    storage: true
    subresources:
      status: {}
