...

Text file src/github.com/openshift/api/route/v1/route.crd.yaml

Documentation: github.com/openshift/api/route/v1

     1apiVersion: apiextensions.k8s.io/v1
     2kind: CustomResourceDefinition
     3metadata:
     4  annotations:
     5    api-approved.openshift.io: https://github.com/openshift/api/pull/1228
     6  name: routes.route.openshift.io
     7spec:
     8  group: route.openshift.io
     9  names:
    10    kind: Route
    11    plural: routes
    12    singular: route
    13  scope: Namespaced
    14  versions:
    15    - additionalPrinterColumns:
    16        - jsonPath: .status.ingress[0].host
    17          name: Host
    18          type: string
    19        - jsonPath: .status.ingress[0].conditions[?(@.type=="Admitted")].status
    20          name: Admitted
    21          type: string
    22        - jsonPath: .spec.to.name
    23          name: Service
    24          type: string
    25        - jsonPath: .spec.tls.type
    26          name: TLS
    27          type: string
    28      name: v1
    29      schema:
    30        openAPIV3Schema:
    31          description: "A route allows developers to expose services through an HTTP(S) aware load balancing and proxy layer via a public DNS entry. The route may further specify TLS options and a certificate, or specify a public CNAME that the router should also accept for HTTP and HTTPS traffic. An administrator typically configures their router to be visible outside the cluster firewall, and may also add additional security, caching, or traffic controls on the service content. Routers usually talk directly to the service endpoints. \n Once a route is created, the `host` field may not be changed. Generally, routers use the oldest route with a given host when resolving conflicts. \n Routers are subject to additional customization and may support additional controls via the annotations field. \n Because administrators may configure multiple routers, the route status field is used to return information to clients about the names and states of the route under each router. If a client chooses a duplicate name, for instance, the route status conditions are used to indicate the route cannot be chosen. \n To enable HTTP/2 ALPN on a route it requires a custom (non-wildcard) certificate. This prevents connection coalescing by clients, notably web browsers. We do not support HTTP/2 ALPN on routes that use the default certificate because of the risk of connection re-use/coalescing. Routes that do not have their own custom certificate will not be HTTP/2 ALPN-enabled on either the frontend or the backend. \n Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer)."
    32          properties:
    33            apiVersion:
    34              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'
    35              type: string
    36            kind:
    37              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'
    38              type: string
    39            metadata:
    40              type: object
    41            spec:
    42              allOf:
    43                - anyOf:
    44                    - properties:
    45                        path:
    46                          maxLength: 0
    47                    - properties:
    48                        tls:
    49                          enum:
    50                            - null
    51                    - not:
    52                        properties:
    53                          tls:
    54                            properties:
    55                              termination:
    56                                enum:
    57                                  - passthrough
    58                - anyOf:
    59                    - not:
    60                        properties:
    61                          host:
    62                            maxLength: 0
    63                    - not:
    64                        properties:
    65                          wildcardPolicy:
    66                            enum:
    67                              - Subdomain
    68              description: spec is the desired state of the route
    69              properties:
    70                alternateBackends:
    71                  description: alternateBackends allows up to 3 additional backends to be assigned to the route. Only the Service kind is allowed, and it will be defaulted to Service. Use the weight field in RouteTargetReference object to specify relative preference.
    72                  items:
    73                    description: RouteTargetReference specifies the target that resolve into endpoints. Only the 'Service' kind is allowed. Use 'weight' field to emphasize one over others.
    74                    properties:
    75                      kind:
    76                        default: Service
    77                        description: The kind of target that the route is referring to. Currently, only 'Service' is allowed
    78                        enum:
    79                          - Service
    80                          - ""
    81                        type: string
    82                      name:
    83                        description: name of the service/target that is being referred to. e.g. name of the service
    84                        minLength: 1
    85                        type: string
    86                      weight:
    87                        default: 100
    88                        description: weight as an integer between 0 and 256, default 100, that specifies the target's relative weight against other target reference objects. 0 suppresses requests to this backend.
    89                        format: int32
    90                        maximum: 256
    91                        minimum: 0
    92                        type: integer
    93                    required:
    94                      - kind
    95                      - name
    96                    type: object
    97                  maxItems: 3
    98                  type: array
    99                host:
   100                  description: host is an alias/DNS that points to the service. Optional. If not specified a route name will typically be automatically chosen. Must follow DNS952 subdomain conventions.
   101                  maxLength: 253
   102                  pattern: ^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$
   103                  type: string
   104                path:
   105                  description: path that the router watches for, to route traffic for to the service. Optional
   106                  pattern: ^/
   107                  type: string
   108                port:
   109                  description: If specified, the port to be used by the router. Most routers will use all endpoints exposed by the service by default - set this value to instruct routers which port to use.
   110                  properties:
   111                    targetPort:
   112                      allOf:
   113                        - not:
   114                            enum:
   115                              - 0
   116                        - not:
   117                            enum:
   118                              - ""
   119                      x-kubernetes-int-or-string: true
   120                  required:
   121                    - targetPort
   122                  type: object
   123                subdomain:
   124                  description: "subdomain is a DNS subdomain that is requested within the ingress controller's domain (as a subdomain). If host is set this field is ignored. An ingress controller may choose to ignore this suggested name, in which case the controller will report the assigned name in the status.ingress array or refuse to admit the route. If this value is set and the server does not support this field host will be populated automatically. Otherwise host is left empty. The field may have multiple parts separated by a dot, but not all ingress controllers may honor the request. This field may not be changed after creation except by a user with the update routes/custom-host permission. \n Example: subdomain `frontend` automatically receives the router subdomain `apps.mycluster.com` to have a full hostname `frontend.apps.mycluster.com`."
   125                  maxLength: 253
   126                  pattern: ^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$
   127                  type: string
   128                tls:
   129                  allOf:
   130                    - anyOf:
   131                        - properties:
   132                            caCertificate:
   133                              maxLength: 0
   134                            certificate:
   135                              maxLength: 0
   136                            destinationCACertificate:
   137                              maxLength: 0
   138                            key:
   139                              maxLength: 0
   140                        - not:
   141                            properties:
   142                              termination:
   143                                enum:
   144                                  - passthrough
   145                    - anyOf:
   146                        - properties:
   147                            destinationCACertificate:
   148                              maxLength: 0
   149                        - not:
   150                            properties:
   151                              termination:
   152                                enum:
   153                                  - edge
   154                    - anyOf:
   155                        - properties:
   156                            insecureEdgeTerminationPolicy:
   157                              enum:
   158                                - ""
   159                                - None
   160                                - Allow
   161                                - Redirect
   162                        - not:
   163                            properties:
   164                              termination:
   165                                enum:
   166                                  - edge
   167                                  - reencrypt
   168                    - anyOf:
   169                        - properties:
   170                            insecureEdgeTerminationPolicy:
   171                              enum:
   172                                - ""
   173                                - None
   174                                - Redirect
   175                        - not:
   176                            properties:
   177                              termination:
   178                                enum:
   179                                  - passthrough
   180                  description: The tls field provides the ability to configure certificates and termination for the route.
   181                  properties:
   182                    caCertificate:
   183                      description: caCertificate provides the cert authority certificate contents
   184                      type: string
   185                    certificate:
   186                      description: certificate provides certificate contents. This should be a single serving certificate, not a certificate chain. Do not include a CA certificate.
   187                      type: string
   188                    destinationCACertificate:
   189                      description: destinationCACertificate provides the contents of the ca certificate of the final destination.  When using reencrypt termination this file should be provided in order to have routers use it for health checks on the secure connection. If this field is not specified, the router may provide its own destination CA and perform hostname validation using the short service name (service.namespace.svc), which allows infrastructure generated certificates to automatically verify.
   190                      type: string
   191                    insecureEdgeTerminationPolicy:
   192                      description: "insecureEdgeTerminationPolicy indicates the desired behavior for insecure connections to a route. While each router may make its own decisions on which ports to expose, this is normally port 80. \n * Allow - traffic is sent to the server on the insecure port (default) * Disable - no traffic is allowed on the insecure port. * Redirect - clients are redirected to the secure port."
   193                      type: string
   194                    key:
   195                      description: key provides key file contents
   196                      type: string
   197                    termination:
   198                      description: "termination indicates termination type. \n * edge - TLS termination is done by the router and http is used to communicate with the backend (default) * passthrough - Traffic is sent straight to the destination without the router providing TLS termination * reencrypt - TLS termination is done by the router and https is used to communicate with the backend"
   199                      enum:
   200                        - edge
   201                        - reencrypt
   202                        - passthrough
   203                      type: string
   204                  required:
   205                    - termination
   206                  type: object
   207                to:
   208                  description: to is an object the route should use as the primary backend. Only the Service kind is allowed, and it will be defaulted to Service. If the weight field (0-256 default 100) is set to zero, no traffic will be sent to this backend.
   209                  properties:
   210                    kind:
   211                      default: Service
   212                      description: The kind of target that the route is referring to. Currently, only 'Service' is allowed
   213                      enum:
   214                        - Service
   215                        - ""
   216                      type: string
   217                    name:
   218                      description: name of the service/target that is being referred to. e.g. name of the service
   219                      minLength: 1
   220                      type: string
   221                    weight:
   222                      default: 100
   223                      description: weight as an integer between 0 and 256, default 100, that specifies the target's relative weight against other target reference objects. 0 suppresses requests to this backend.
   224                      format: int32
   225                      maximum: 256
   226                      minimum: 0
   227                      type: integer
   228                  required:
   229                    - kind
   230                    - name
   231                  type: object
   232                wildcardPolicy:
   233                  default: None
   234                  description: Wildcard policy if any for the route. Currently only 'Subdomain' or 'None' is allowed.
   235                  enum:
   236                    - None
   237                    - Subdomain
   238                    - ""
   239                  type: string
   240              required:
   241                - to
   242              type: object
   243            status:
   244              description: status is the current state of the route
   245              properties:
   246                ingress:
   247                  description: ingress describes the places where the route may be exposed. The list of ingress points may contain duplicate Host or RouterName values. Routes are considered live once they are `Ready`
   248                  items:
   249                    description: RouteIngress holds information about the places where a route is exposed.
   250                    properties:
   251                      conditions:
   252                        description: Conditions is the state of the route, may be empty.
   253                        items:
   254                          description: RouteIngressCondition contains details for the current condition of this route on a particular router.
   255                          properties:
   256                            lastTransitionTime:
   257                              description: RFC 3339 date and time when this condition last transitioned
   258                              format: date-time
   259                              type: string
   260                            message:
   261                              description: Human readable message indicating details about last transition.
   262                              type: string
   263                            reason:
   264                              description: (brief) reason for the condition's last transition, and is usually a machine and human readable constant
   265                              type: string
   266                            status:
   267                              description: Status is the status of the condition. Can be True, False, Unknown.
   268                              type: string
   269                            type:
   270                              description: Type is the type of the condition. Currently only Admitted.
   271                              type: string
   272                          required:
   273                            - status
   274                            - type
   275                          type: object
   276                        type: array
   277                      host:
   278                        description: Host is the host string under which the route is exposed; this value is required
   279                        type: string
   280                      routerCanonicalHostname:
   281                        description: CanonicalHostname is the external host name for the router that can be used as a CNAME for the host requested for this route. This value is optional and may not be set in all cases.
   282                        type: string
   283                      routerName:
   284                        description: Name is a name chosen by the router to identify itself; this value is required
   285                        type: string
   286                      wildcardPolicy:
   287                        description: Wildcard policy is the wildcard policy that was allowed where this route is exposed.
   288                        type: string
   289                    type: object
   290                  type: array
   291              type: object
   292          required:
   293            - spec
   294          type: object
   295      served: true
   296      storage: true
   297      subresources:
   298        status: {}

View as plain text