apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.6.2
  creationTimestamp: null
  name: contourdeployments.projectcontour.io
spec:
  preserveUnknownFields: false
  group: projectcontour.io
  names:
    kind: ContourDeployment
    listKind: ContourDeploymentList
    plural: contourdeployments
    shortNames:
      - contourdeploy
    singular: contourdeployment
  scope: Namespaced
  versions:
    - name: v1alpha1
      schema:
        openAPIV3Schema:
          description: ContourDeployment is the schema for a Contour Deployment.
          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: ContourDeploymentSpec defines the parameters of how a Contour
                instance should be configured.
              properties:
                config:
                  description: Config is the config that the instances of Contour are
                    to utilize.
                  properties:
                    debug:
                      default:
                        kubernetesLogLevel: 0
                        logLevel: info
                      description: Debug contains parameters to enable debug logging
                        and debug interfaces inside Contour.
                      properties:
                        address:
                          description: Defines the Contour debug address interface.
                          type: string
                        kubernetesLogLevel:
                          default: 0
                          description: "KubernetesDebugLogLevel defines the log level
                          which Contour will use when outputting Kubernetes specific
                          log information. \n Details: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/logging.md"
                          maximum: 9
                          minimum: 0
                          type: integer
                        logLevel:
                          description: DebugLogLevel defines the log level which Contour
                            will use when outputting log information.
                          enum:
                            - info
                            - debug
                          type: string
                        port:
                          description: Defines the Contour debug address port.
                          type: integer
                      required:
                        - logLevel
                      type: object
                    enableExternalNameService:
                      default: false
                      description: EnableExternalNameService allows processing of ExternalNameServices
                        Defaults to disabled for security reasons.
                      type: boolean
                    envoy:
                      default:
                        cluster:
                          dnsLookupFamily: auto
                        defaultHTTPVersions:
                          - HTTP/1.1
                          - HTTP/2
                        health:
                          address: 0.0.0.0
                          port: 8002
                        http:
                          accessLog: /dev/stdout
                          address: 0.0.0.0
                          port: 8080
                        https:
                          accessLog: /dev/stdout
                          address: 0.0.0.0
                          port: 8443
                        listener:
                          connectionBalancer: ""
                          disableAllowChunkedLength: false
                          tls:
                            cipherSuites:
                              - '[ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-ECDSA-CHACHA20-POLY1305]'
                              - '[ECDHE-RSA-AES128-GCM-SHA256|ECDHE-RSA-CHACHA20-POLY1305]'
                              - ECDHE-ECDSA-AES256-GCM-SHA384
                              - ECDHE-RSA-AES256-GCM-SHA384
                            minimumProtocolVersion: "1.2"
                          useProxyProtocol: false
                        logging:
                          accessLogFormat: envoy
                        metrics:
                          address: 0.0.0.0
                          port: 8002
                        network:
                          adminPort: 9001
                        service:
                          name: envoy
                          namespace: projectcontour
                      description: Envoy contains parameters for Envoy as well as how
                        to optionally configure a managed Envoy fleet.
                      properties:
                        clientCertificate:
                          description: ClientCertificate defines the namespace/name
                            of the Kubernetes secret containing the client certificate
                            and private key to be used when establishing TLS connection
                            to upstream cluster.
                          properties:
                            name:
                              type: string
                            namespace:
                              type: string
                          required:
                            - name
                            - namespace
                          type: object
                        cluster:
                          description: Cluster holds various configurable Envoy cluster
                            values that can be set in the config file.
                          properties:
                            dnsLookupFamily:
                              default: auto
                              description: "DNSLookupFamily defines how external names
                              are looked up When configured as V4, the DNS resolver
                              will only perform a lookup for addresses in the IPv4
                              family. If V6 is configured, the DNS resolver will only
                              perform a lookup for addresses in the IPv6 family. If
                              AUTO is configured, the DNS resolver will first perform
                              a lookup for addresses in the IPv6 family and fallback
                              to a lookup for addresses in the IPv4 family. Note:
                              This only applies to externalName clusters. \n See https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto.html#envoy-v3-api-enum-config-cluster-v3-cluster-dnslookupfamily
                              for more information."
                              enum:
                                - auto
                                - v4
                                - v6
                              type: string
                          required:
                            - dnsLookupFamily
                          type: object
                        defaultHTTPVersions:
                          description: DefaultHTTPVersions defines the default set of
                            HTTPS versions the proxy should accept. HTTP versions are
                            strings of the form "HTTP/xx". Supported versions are "HTTP/1.1"
                            and "HTTP/2".
                          items:
                            description: HTTPVersionType is the name of a supported
                              HTTP version.
                            enum:
                              - HTTP/1.1
                              - HTTP/2
                            type: string
                          type: array
                        health:
                          default:
                            address: 0.0.0.0
                            port: 8002
                          description: Health defines the endpoint Envoy uses to serve
                            health checks.
                          properties:
                            address:
                              description: Defines the health address interface.
                              minLength: 1
                              type: string
                            port:
                              description: Defines the health port.
                              type: integer
                          required:
                            - address
                            - port
                          type: object
                        http:
                          default:
                            accessLog: /dev/stdout
                            address: 0.0.0.0
                            port: 8080
                          description: Defines the HTTP Listener for Envoy.
                          properties:
                            accessLog:
                              description: AccessLog defines where Envoy logs are outputted
                                for this listener.
                              type: string
                            address:
                              description: Defines an Envoy Listener Address.
                              minLength: 1
                              type: string
                            port:
                              description: Defines an Envoy listener Port.
                              type: integer
                          required:
                            - accessLog
                            - address
                            - port
                          type: object
                        https:
                          default:
                            accessLog: /dev/stdout
                            address: 0.0.0.0
                            port: 8443
                          description: Defines the HTTP Listener for Envoy.
                          properties:
                            accessLog:
                              description: AccessLog defines where Envoy logs are outputted
                                for this listener.
                              type: string
                            address:
                              description: Defines an Envoy Listener Address.
                              minLength: 1
                              type: string
                            port:
                              description: Defines an Envoy listener Port.
                              type: integer
                          required:
                            - accessLog
                            - address
                            - port
                          type: object
                        listener:
                          description: Listener hold various configurable Envoy listener
                            values.
                          properties:
                            connectionBalancer:
                              description: ConnectionBalancer. If the value is exact,
                                the listener will use the exact connection balancer
                                See https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/listener.proto#envoy-api-msg-listener-connectionbalanceconfig
                                for more information.
                              enum:
                                - ""
                                - exact
                              type: string
                            disableAllowChunkedLength:
                              description: 'DisableAllowChunkedLength disables the RFC-compliant
                              Envoy behavior to strip the "Content-Length" header
                              if "Transfer-Encoding: chunked" is also set. This is
                              an emergency off-switch to revert back to Envoy''s default
                              behavior in case of failures. Please file an issue if
                              failures are encountered. See: https://github.com/projectcontour/contour/issues/3221'
                              type: boolean
                            tls:
                              description: TLS holds various configurable Envoy TLS
                                listener values.
                              properties:
                                cipherSuites:
                                  description: "CipherSuites defines the TLS ciphers
                                  to be supported by Envoy TLS listeners when negotiating
                                  TLS 1.2. Ciphers are validated against the set that
                                  Envoy supports by default. This parameter should
                                  only be used by advanced users. Note that these
                                  will be ignored when TLS 1.3 is in use. \n See:
                                  https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/transport_sockets/tls/v3/common.proto#extensions-transport-sockets-tls-v3-tlsparameters
                                  Note: This list is a superset of what is valid for
                                  stock Envoy builds and those using BoringSSL FIPS."
                                  items:
                                    enum:
                                      - '[ECDHE-ECDSA-AES128-GCM-SHA256|ECDHE-ECDSA-CHACHA20-POLY1305]'
                                      - '[ECDHE-RSA-AES128-GCM-SHA256|ECDHE-RSA-CHACHA20-POLY1305]'
                                      - ECDHE-ECDSA-AES128-GCM-SHA256
                                      - ECDHE-RSA-AES128-GCM-SHA256
                                      - ECDHE-ECDSA-AES128-SHA
                                      - ECDHE-RSA-AES128-SHA
                                      - AES128-GCM-SHA256
                                      - AES128-SHA
                                      - ECDHE-ECDSA-AES256-GCM-SHA384
                                      - ECDHE-RSA-AES256-GCM-SHA384
                                      - ECDHE-ECDSA-AES256-SHA
                                      - ECDHE-RSA-AES256-SHA
                                      - AES256-GCM-SHA384
                                      - AES256-SHA
                                    type: string
                                  type: array
                                minimumProtocolVersion:
                                  description: MinimumProtocolVersion is the minimum
                                    TLS version this vhost should negotiate. Valid options
                                    are `1.2` (default) and `1.3`.
                                  enum:
                                    - "1.2"
                                    - "1.3"
                                  type: string
                              required:
                                - cipherSuites
                                - minimumProtocolVersion
                              type: object
                            useProxyProtocol:
                              description: Use PROXY protocol for all listeners.
                              type: boolean
                          required:
                            - connectionBalancer
                            - disableAllowChunkedLength
                            - tls
                            - useProxyProtocol
                          type: object
                        logging:
                          description: Logging defines how Envoy's logs can be configured.
                          properties:
                            accessLogFormat:
                              description: AccessLogFormat sets the global access log
                                format. Valid options are 'envoy' or 'json'
                              enum:
                                - envoy
                                - json
                              type: string
                            accessLogFormatString:
                              description: AccessLogFormatString sets the access log
                                format when format is set to `envoy`. When empty, Envoy's
                                default format is used.
                              type: string
                            jsonFields:
                              description: AccessLogFields sets the fields that JSON
                                logging will output when AccessLogFormat is json.
                              items:
                                type: string
                              type: array
                          required:
                            - accessLogFormat
                          type: object
                        metrics:
                          default:
                            address: 0.0.0.0
                            port: 8002
                          description: Metrics defines the endpoint Envoy uses to serve
                            metrics.
                          properties:
                            address:
                              description: Defines the metrics address interface.
                              maxLength: 253
                              minLength: 1
                              type: string
                            port:
                              description: Defines the metrics port.
                              type: integer
                            tls:
                              description: TLS holds TLS file config details. Metrics
                                and health endpoints cannot have same port number when
                                metrics is served over HTTPS.
                              properties:
                                caFile:
                                  description: CA filename.
                                  type: string
                                certFile:
                                  description: Client certificate filename.
                                  type: string
                                keyFile:
                                  description: Client key filename.
                                  type: string
                              type: object
                          required:
                            - address
                            - port
                          type: object
                        network:
                          description: Network holds various configurable Envoy network
                            values.
                          properties:
                            adminPort:
                              default: 9001
                              description: Configure the port used to access the Envoy
                                Admin interface. If configured to port "0" then the
                                admin interface is disabled.
                              type: integer
                            numTrustedHops:
                              description: "XffNumTrustedHops defines the number of
                              additional ingress proxy hops from the right side of
                              the x-forwarded-for HTTP header to trust when determining
                              the origin client’s IP address. \n See https://www.envoyproxy.io/docs/envoy/v1.17.0/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto?highlight=xff_num_trusted_hops
                              for more information."
                              format: int32
                              type: integer
                          required:
                            - adminPort
                          type: object
                        service:
                          default:
                            name: envoy
                            namespace: projectcontour
                          description: Service holds Envoy service parameters for setting
                            Ingress status.
                          properties:
                            name:
                              type: string
                            namespace:
                              type: string
                          required:
                            - name
                            - namespace
                          type: object
                        timeouts:
                          description: Timeouts holds various configurable timeouts
                            that can be set in the config file.
                          properties:
                            connectionIdleTimeout:
                              description: "ConnectionIdleTimeout defines how long the
                              proxy should wait while there are no active requests
                              (for HTTP/1.1) or streams (for HTTP/2) before terminating
                              an HTTP connection. Set to \"infinity\" to disable the
                              timeout entirely. \n See https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#envoy-v3-api-field-config-core-v3-httpprotocoloptions-idle-timeout
                              for more information."
                              type: string
                            connectionShutdownGracePeriod:
                              description: "ConnectionShutdownGracePeriod defines how
                              long the proxy will wait between sending an initial
                              GOAWAY frame and a second, final GOAWAY frame when terminating
                              an HTTP/2 connection. During this grace period, the
                              proxy will continue to respond to new streams. After
                              the final GOAWAY frame has been sent, the proxy will
                              refuse new streams. \n See https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-drain-timeout
                              for more information."
                              type: string
                            delayedCloseTimeout:
                              description: "DelayedCloseTimeout defines how long envoy
                              will wait, once connection close processing has been
                              initiated, for the downstream peer to close the connection
                              before Envoy closes the socket associated with the connection.
                              \n Setting this timeout to 'infinity' will disable it,
                              equivalent to setting it to '0' in Envoy. Leaving it
                              unset will result in the Envoy default value being used.
                              \n See https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-delayed-close-timeout
                              for more information."
                              type: string
                            maxConnectionDuration:
                              description: "MaxConnectionDuration defines the maximum
                              period of time after an HTTP connection has been established
                              from the client to the proxy before it is closed by
                              the proxy, regardless of whether there has been activity
                              or not. Omit or set to \"infinity\" for no max duration.
                              \n See https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#envoy-v3-api-field-config-core-v3-httpprotocoloptions-max-connection-duration
                              for more information."
                              type: string
                            requestTimeout:
                              description: "RequestTimeout sets the client request timeout
                              globally for Contour. Note that this is a timeout for
                              the entire request, not an idle timeout. Omit or set
                              to \"infinity\" to disable the timeout entirely. \n
                              See https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-request-timeout
                              for more information."
                              type: string
                            streamIdleTimeout:
                              description: "StreamIdleTimeout defines how long the proxy
                              should wait while there is no request activity (for
                              HTTP/1.1) or stream activity (for HTTP/2) before terminating
                              the HTTP request or stream. Set to \"infinity\" to disable
                              the timeout entirely. \n See https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/filters/network/http_connection_manager/v3/http_connection_manager.proto#envoy-v3-api-field-extensions-filters-network-http-connection-manager-v3-httpconnectionmanager-stream-idle-timeout
                              for more information."
                              type: string
                          type: object
                      required:
                        - cluster
                        - defaultHTTPVersions
                        - http
                        - https
                        - listener
                        - logging
                        - metrics
                        - network
                        - service
                      type: object
                    gateway:
                      description: Gateway contains parameters for the gateway-api Gateway
                        that Contour is configured to serve traffic.
                      properties:
                        controllerName:
                          default: projectcontour.io/projectcontour/contour
                          description: ControllerName is used to determine whether Contour
                            should reconcile a GatewayClass. The string takes the form
                            of "projectcontour.io/<namespace>/contour". If unset, the
                            gatewayclass controller will not be started.
                          type: string
                      required:
                        - controllerName
                      type: object
                    health:
                      default:
                        address: 0.0.0.0
                        port: 8000
                      description: Health defines the endpoints Contour uses to serve
                        health checks.
                      properties:
                        address:
                          description: Defines the health address interface.
                          minLength: 1
                          type: string
                        port:
                          description: Defines the health port.
                          type: integer
                      required:
                        - address
                        - port
                      type: object
                    httpproxy:
                      default:
                        disablePermitInsecure: false
                      description: HTTPProxy defines parameters on HTTPProxy.
                      properties:
                        disablePermitInsecure:
                          description: DisablePermitInsecure disables the use of the
                            permitInsecure field in HTTPProxy.
                          type: boolean
                        fallbackCertificate:
                          description: FallbackCertificate defines the namespace/name
                            of the Kubernetes secret to use as fallback when a non-SNI
                            request is received.
                          properties:
                            name:
                              type: string
                            namespace:
                              type: string
                          required:
                            - name
                            - namespace
                          type: object
                        rootNamespaces:
                          description: Restrict Contour to searching these namespaces
                            for root ingress routes.
                          items:
                            type: string
                          type: array
                      required:
                        - disablePermitInsecure
                      type: object
                    ingress:
                      description: Ingress contains parameters for ingress options.
                      properties:
                        className:
                          description: Ingress Class Name Contour should use.
                          type: string
                        statusAddress:
                          description: Address to set in Ingress object status.
                          type: string
                      type: object
                    metrics:
                      default:
                        address: 0.0.0.0
                        port: 8000
                      description: Metrics defines the endpoint Contour uses to serve
                        metrics.
                      properties:
                        address:
                          description: Defines the metrics address interface.
                          maxLength: 253
                          minLength: 1
                          type: string
                        port:
                          description: Defines the metrics port.
                          type: integer
                        tls:
                          description: TLS holds TLS file config details. Metrics and
                            health endpoints cannot have same port number when metrics
                            is served over HTTPS.
                          properties:
                            caFile:
                              description: CA filename.
                              type: string
                            certFile:
                              description: Client certificate filename.
                              type: string
                            keyFile:
                              description: Client key filename.
                              type: string
                          type: object
                      required:
                        - address
                        - port
                      type: object
                    policy:
                      description: Policy specifies default policy applied if not overridden
                        by the user
                      properties:
                        applyToIngress:
                          description: ApplyToIngress determines if the Policies will
                            apply to ingress objects
                          type: boolean
                        requestHeaders:
                          description: RequestHeadersPolicy defines the request headers
                            set/removed on all routes
                          properties:
                            remove:
                              items:
                                type: string
                              type: array
                            set:
                              additionalProperties:
                                type: string
                              type: object
                          type: object
                        responseHeaders:
                          description: ResponseHeadersPolicy defines the response headers
                            set/removed on all routes
                          properties:
                            remove:
                              items:
                                type: string
                              type: array
                            set:
                              additionalProperties:
                                type: string
                              type: object
                          type: object
                      type: object
                    rateLimitService:
                      description: RateLimitService optionally holds properties of the
                        Rate Limit Service to be used for global rate limiting.
                      properties:
                        domain:
                          description: Domain is passed to the Rate Limit Service.
                          type: string
                        enableXRateLimitHeaders:
                          description: "EnableXRateLimitHeaders defines whether to include
                          the X-RateLimit headers X-RateLimit-Limit, X-RateLimit-Remaining,
                          and X-RateLimit-Reset (as defined by the IETF Internet-Draft
                          linked below), on responses to clients when the Rate Limit
                          Service is consulted for a request. \n ref. https://tools.ietf.org/id/draft-polli-ratelimit-headers-03.html"
                          type: boolean
                        extensionService:
                          description: ExtensionService identifies the extension service
                            defining the RLS.
                          properties:
                            name:
                              type: string
                            namespace:
                              type: string
                          required:
                            - name
                            - namespace
                          type: object
                        failOpen:
                          description: FailOpen defines whether to allow requests to
                            proceed when the Rate Limit Service fails to respond with
                            a valid rate limit decision within the timeout defined on
                            the extension service.
                          type: boolean
                      required:
                        - domain
                        - enableXRateLimitHeaders
                        - failOpen
                      type: object
                    xdsServer:
                      default:
                        address: 0.0.0.0
                        port: 8001
                        tls:
                          caFile: /certs/ca.crt
                          certFile: /certs/tls.crt
                          insecure: false
                          keyFile: /certs/tls.key
                        type: contour
                      description: XDSServer contains parameters for the xDS server.
                      properties:
                        address:
                          description: Defines the xDS gRPC API address which Contour
                            will serve.
                          minLength: 1
                          type: string
                        port:
                          description: Defines the xDS gRPC API port which Contour will
                            serve.
                          type: integer
                        tls:
                          description: TLS holds TLS file config details.
                          properties:
                            caFile:
                              description: CA filename.
                              type: string
                            certFile:
                              description: Client certificate filename.
                              type: string
                            insecure:
                              description: Allow serving the xDS gRPC API without TLS.
                              type: boolean
                            keyFile:
                              description: Client key filename.
                              type: string
                          required:
                            - insecure
                          type: object
                        type:
                          description: Defines the XDSServer to use for `contour serve`.
                          enum:
                            - contour
                            - envoy
                          type: string
                      required:
                        - address
                        - port
                        - type
                      type: object
                  type: object
                replicas:
                  default: 2
                  description: Replicas is the desired number of Contour replicas. If
                    unset, defaults to 2.
                  format: int32
                  minimum: 0
                  type: integer
              required:
                - config
              type: object
            status:
              description: ContourDeploymentStatus defines the observed state of a ContourDeployment
                resource.
              properties:
                conditions:
                  description: "Conditions contains the current status of the Contour
                  resource. \n Contour will update a single condition, `Valid`, that
                  is in normal-true polarity. \n Contour will not modify any other
                  Conditions set in this block, in case some other controller wants
                  to add a Condition."
                  items:
                    description: "DetailedCondition is an extension of the normal Kubernetes
                    conditions, with two extra fields to hold sub-conditions, which
                    provide more detailed reasons for the state (True or False) of
                    the condition. \n `errors` holds information about sub-conditions
                    which are fatal to that condition and render its state False.
                    \n `warnings` holds information about sub-conditions which are
                    not fatal to that condition and do not force the state to be False.
                    \n Remember that Conditions have a type, a status, and a reason.
                    \n The type is the type of the condition, the most important one
                    in this CRD set is `Valid`. `Valid` is a positive-polarity condition:
                    when it is `status: true` there are no problems. \n In more detail,
                    `status: true` means that the object is has been ingested into
                    Contour with no errors. `warnings` may still be present, and will
                    be indicated in the Reason field. There must be zero entries in
                    the `errors` slice in this case. \n `Valid`, `status: false` means
                    that the object has had one or more fatal errors during processing
                    into Contour.  The details of the errors will be present under
                    the `errors` field. There must be at least one error in the `errors`
                    slice if `status` is `false`. \n For DetailedConditions of types
                    other than `Valid`, the Condition must be in the negative polarity.
                    When they have `status` `true`, there is an error. There must
                    be at least one entry in the `errors` Subcondition slice. When
                    they have `status` `false`, there are no serious errors, and there
                    must be zero entries in the `errors` slice. In either case, there
                    may be entries in the `warnings` slice. \n Regardless of the polarity,
                    the `reason` and `message` fields must be updated with either
                    the detail of the reason (if there is one and only one entry in
                    total across both the `errors` and `warnings` slices), or `MultipleReasons`
                    if there is more than one entry."
                    properties:
                      errors:
                        description: "Errors contains a slice of relevant error subconditions
                        for this object. \n Subconditions are expected to appear when
                        relevant (when there is a error), and disappear when not relevant.
                        An empty slice here indicates no errors."
                        items:
                          description: "SubCondition is a Condition-like type intended
                          for use as a subcondition inside a DetailedCondition. \n
                          It contains a subset of the Condition fields. \n It is intended
                          for warnings and errors, so `type` names should use abnormal-true
                          polarity, that is, they should be of the form \"ErrorPresent:
                          true\". \n The expected lifecycle for these errors is that
                          they should only be present when the error or warning is,
                          and should be removed when they are not relevant."
                          properties:
                            message:
                              description: "Message is a human readable message indicating
                              details about the transition. \n This may be an empty
                              string."
                              maxLength: 32768
                              type: string
                            reason:
                              description: "Reason contains a programmatic identifier
                              indicating the reason for the condition's last transition.
                              Producers of specific condition types may define expected
                              values and meanings for this field, and whether the
                              values are considered a guaranteed API. \n The value
                              should be a CamelCase string. \n This field may not
                              be empty."
                              maxLength: 1024
                              minLength: 1
                              pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                              type: string
                            status:
                              description: Status of the condition, one of True, False,
                                Unknown.
                              enum:
                                - "True"
                                - "False"
                                - Unknown
                              type: string
                            type:
                              description: "Type of condition in `CamelCase` or in `foo.example.com/CamelCase`.
                              \n This must be in abnormal-true polarity, that is,
                              `ErrorFound` or `controller.io/ErrorFound`. \n The regex
                              it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)"
                              maxLength: 316
                              pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                              type: string
                          required:
                            - message
                            - reason
                            - status
                            - type
                          type: object
                        type: array
                      lastTransitionTime:
                        description: lastTransitionTime is the last time the condition
                          transitioned from one status to another. This should be when
                          the underlying condition changed.  If that is not known, then
                          using the time when the API field changed is acceptable.
                        format: date-time
                        type: string
                      message:
                        description: message is a human readable message indicating
                          details about the transition. This may be an empty string.
                        maxLength: 32768
                        type: string
                      observedGeneration:
                        description: observedGeneration represents the .metadata.generation
                          that the condition was set based upon. For instance, if .metadata.generation
                          is currently 12, but the .status.conditions[x].observedGeneration
                          is 9, the condition is out of date with respect to the current
                          state of the instance.
                        format: int64
                        minimum: 0
                        type: integer
                      reason:
                        description: reason contains a programmatic identifier indicating
                          the reason for the condition's last transition. Producers
                          of specific condition types may define expected values and
                          meanings for this field, and whether the values are considered
                          a guaranteed API. The value should be a CamelCase string.
                          This field may not be empty.
                        maxLength: 1024
                        minLength: 1
                        pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                        type: string
                      status:
                        description: status of the condition, one of True, False, Unknown.
                        enum:
                          - "True"
                          - "False"
                          - Unknown
                        type: string
                      type:
                        description: type of condition in CamelCase or in foo.example.com/CamelCase.
                          --- Many .condition.type values are consistent across resources
                          like Available, but because arbitrary conditions can be useful
                          (see .node.status.conditions), the ability to deconflict is
                          important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                        maxLength: 316
                        pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                        type: string
                      warnings:
                        description: "Warnings contains a slice of relevant warning
                        subconditions for this object. \n Subconditions are expected
                        to appear when relevant (when there is a warning), and disappear
                        when not relevant. An empty slice here indicates no warnings."
                        items:
                          description: "SubCondition is a Condition-like type intended
                          for use as a subcondition inside a DetailedCondition. \n
                          It contains a subset of the Condition fields. \n It is intended
                          for warnings and errors, so `type` names should use abnormal-true
                          polarity, that is, they should be of the form \"ErrorPresent:
                          true\". \n The expected lifecycle for these errors is that
                          they should only be present when the error or warning is,
                          and should be removed when they are not relevant."
                          properties:
                            message:
                              description: "Message is a human readable message indicating
                              details about the transition. \n This may be an empty
                              string."
                              maxLength: 32768
                              type: string
                            reason:
                              description: "Reason contains a programmatic identifier
                              indicating the reason for the condition's last transition.
                              Producers of specific condition types may define expected
                              values and meanings for this field, and whether the
                              values are considered a guaranteed API. \n The value
                              should be a CamelCase string. \n This field may not
                              be empty."
                              maxLength: 1024
                              minLength: 1
                              pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                              type: string
                            status:
                              description: Status of the condition, one of True, False,
                                Unknown.
                              enum:
                                - "True"
                                - "False"
                                - Unknown
                              type: string
                            type:
                              description: "Type of condition in `CamelCase` or in `foo.example.com/CamelCase`.
                              \n This must be in abnormal-true polarity, that is,
                              `ErrorFound` or `controller.io/ErrorFound`. \n The regex
                              it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)"
                              maxLength: 316
                              pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                              type: string
                          required:
                            - message
                            - reason
                            - status
                            - type
                          type: object
                        type: array
                    required:
                      - lastTransitionTime
                      - message
                      - reason
                      - status
                      - type
                    type: object
                  type: array
                  x-kubernetes-list-map-keys:
                    - type
                  x-kubernetes-list-type: map
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}