...

Text file src/github.com/GoogleCloudPlatform/k8s-config-connector/crds/networkservices_v1beta1_networkservicesgrpcroute.yaml

Documentation: github.com/GoogleCloudPlatform/k8s-config-connector/crds

     1# Copyright 2020 Google LLC
     2#
     3# Licensed under the Apache License, Version 2.0 (the "License");
     4# you may not use this file except in compliance with the License.
     5# You may obtain a copy of the License at
     6#
     7#     http://www.apache.org/licenses/LICENSE-2.0
     8#
     9# Unless required by applicable law or agreed to in writing, software
    10# distributed under the License is distributed on an "AS IS" BASIS,
    11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12# See the License for the specific language governing permissions and
    13# limitations under the License.
    14
    15apiVersion: apiextensions.k8s.io/v1
    16kind: CustomResourceDefinition
    17metadata:
    18  annotations:
    19    cnrm.cloud.google.com/version: 1.106.0
    20  creationTimestamp: null
    21  labels:
    22    cnrm.cloud.google.com/dcl2crd: "true"
    23    cnrm.cloud.google.com/managed-by-kcc: "true"
    24    cnrm.cloud.google.com/stability-level: stable
    25    cnrm.cloud.google.com/system: "true"
    26  name: networkservicesgrpcroutes.networkservices.cnrm.cloud.google.com
    27spec:
    28  group: networkservices.cnrm.cloud.google.com
    29  names:
    30    categories:
    31    - gcp
    32    kind: NetworkServicesGRPCRoute
    33    plural: networkservicesgrpcroutes
    34    shortNames:
    35    - gcpnetworkservicesgrpcroute
    36    - gcpnetworkservicesgrpcroutes
    37    singular: networkservicesgrpcroute
    38  scope: Namespaced
    39  versions:
    40  - additionalPrinterColumns:
    41    - jsonPath: .metadata.creationTimestamp
    42      name: Age
    43      type: date
    44    - description: When 'True', the most recent reconcile of the resource succeeded
    45      jsonPath: .status.conditions[?(@.type=='Ready')].status
    46      name: Ready
    47      type: string
    48    - description: The reason for the value in 'Ready'
    49      jsonPath: .status.conditions[?(@.type=='Ready')].reason
    50      name: Status
    51      type: string
    52    - description: The last transition time for the value in 'Status'
    53      jsonPath: .status.conditions[?(@.type=='Ready')].lastTransitionTime
    54      name: Status Age
    55      type: date
    56    name: v1beta1
    57    schema:
    58      openAPIV3Schema:
    59        properties:
    60          apiVersion:
    61            description: 'apiVersion defines the versioned schema of this representation
    62              of an object. Servers should convert recognized schemas to the latest
    63              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources'
    64            type: string
    65          kind:
    66            description: 'kind is a string value representing the REST resource this
    67              object represents. Servers may infer this from the endpoint the client
    68              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds'
    69            type: string
    70          metadata:
    71            type: object
    72          spec:
    73            properties:
    74              description:
    75                description: Optional. A free-text description of the resource. Max
    76                  length 1024 characters.
    77                type: string
    78              gateways:
    79                items:
    80                  oneOf:
    81                  - not:
    82                      required:
    83                      - external
    84                    required:
    85                    - name
    86                  - not:
    87                      anyOf:
    88                      - required:
    89                        - name
    90                      - required:
    91                        - namespace
    92                    required:
    93                    - external
    94                  properties:
    95                    external:
    96                      description: 'Allowed value: The `selfLink` field of a `NetworkServicesGateway`
    97                        resource.'
    98                      type: string
    99                    name:
   100                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   101                      type: string
   102                    namespace:
   103                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   104                      type: string
   105                  type: object
   106                type: array
   107              hostnames:
   108                description: 'Required. Service hostnames with an optional port for
   109                  which this route describes traffic. Format: [:] Hostname is the
   110                  fully qualified domain name of a network host. This matches the
   111                  RFC 1123 definition of a hostname with 2 notable exceptions: - IPs
   112                  are not allowed. - A hostname may be prefixed with a wildcard label
   113                  (*.). The wildcard label must appear by itself as the first label.
   114                  Hostname can be “precise” which is a domain name without the terminating
   115                  dot of a network host (e.g. “foo.example.com”) or “wildcard”, which
   116                  is a domain name prefixed with a single wildcard label (e.g. *.example.com).
   117                  Note that as per RFC1035 and RFC1123, a label must consist of lower
   118                  case alphanumeric characters or ‘-’, and must start and end with
   119                  an alphanumeric character. No other punctuation is allowed. The
   120                  routes associated with a Router must have unique hostnames. If you
   121                  attempt to attach multiple routes with conflicting hostnames, the
   122                  configuration will be rejected. For example, while it is acceptable
   123                  for routes for the hostnames "*.foo.bar.com" and "*.bar.com" to
   124                  be associated with the same route, it is not possible to associate
   125                  two routes both with "*.bar.com" or both with "bar.com". In the
   126                  case that multiple routes match the hostname, the most specific
   127                  match will be selected. For example, "foo.bar.baz.com" will take
   128                  precedence over "*.bar.baz.com" and "*.bar.baz.com" will take precedence
   129                  over "*.baz.com". If a port is specified, then gRPC clients must
   130                  use the channel URI with the port to match this rule (i.e. "xds:///service:123"),
   131                  otherwise they must supply the URI without a port (i.e. "xds:///service").'
   132                items:
   133                  type: string
   134                type: array
   135              location:
   136                description: Immutable. The location for the resource
   137                type: string
   138              meshes:
   139                items:
   140                  oneOf:
   141                  - not:
   142                      required:
   143                      - external
   144                    required:
   145                    - name
   146                  - not:
   147                      anyOf:
   148                      - required:
   149                        - name
   150                      - required:
   151                        - namespace
   152                    required:
   153                    - external
   154                  properties:
   155                    external:
   156                      description: 'Allowed value: The `selfLink` field of a `NetworkServicesMesh`
   157                        resource.'
   158                      type: string
   159                    name:
   160                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   161                      type: string
   162                    namespace:
   163                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   164                      type: string
   165                  type: object
   166                type: array
   167              projectRef:
   168                description: Immutable. The Project that this resource belongs to.
   169                oneOf:
   170                - not:
   171                    required:
   172                    - external
   173                  required:
   174                  - name
   175                - not:
   176                    anyOf:
   177                    - required:
   178                      - name
   179                    - required:
   180                      - namespace
   181                  required:
   182                  - external
   183                properties:
   184                  external:
   185                    description: |-
   186                      The project for the resource
   187
   188                      Allowed value: The Google Cloud resource name of a `Project` resource (format: `projects/{{name}}`).
   189                    type: string
   190                  name:
   191                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   192                    type: string
   193                  namespace:
   194                    description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   195                    type: string
   196                type: object
   197              resourceID:
   198                description: Immutable. Optional. The name of the resource. Used for
   199                  creation and acquisition. When unset, the value of `metadata.name`
   200                  is used as the default.
   201                type: string
   202              rules:
   203                description: Required. A list of detailed rules defining how to route
   204                  traffic. Within a single GrpcRoute, the GrpcRoute.RouteAction associated
   205                  with the first matching GrpcRoute.RouteRule will be executed. At
   206                  least one rule must be supplied.
   207                items:
   208                  properties:
   209                    action:
   210                      description: Required. A detailed rule defining how to route
   211                        traffic. This field is required.
   212                      properties:
   213                        destinations:
   214                          description: Optional. The destination services to which
   215                            traffic should be forwarded. If multiple destinations
   216                            are specified, traffic will be split between Backend Service(s)
   217                            according to the weight field of these destinations.
   218                          items:
   219                            properties:
   220                              serviceRef:
   221                                oneOf:
   222                                - not:
   223                                    required:
   224                                    - external
   225                                  required:
   226                                  - name
   227                                - not:
   228                                    anyOf:
   229                                    - required:
   230                                      - name
   231                                    - required:
   232                                      - namespace
   233                                  required:
   234                                  - external
   235                                properties:
   236                                  external:
   237                                    description: |-
   238                                      Required. The URL of a destination service to which to route traffic. Must refer to either a BackendService or ServiceDirectoryService.
   239
   240                                      Allowed value: The Google Cloud resource name of a `ComputeBackendService` resource (format: `projects/{{project}}/global/backendServices/{{name}}`).
   241                                    type: string
   242                                  name:
   243                                    description: 'Name of the referent. More info:
   244                                      https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   245                                    type: string
   246                                  namespace:
   247                                    description: 'Namespace of the referent. More
   248                                      info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   249                                    type: string
   250                                type: object
   251                              weight:
   252                                description: 'Optional. Specifies the proportion of
   253                                  requests forwarded to the backend referenced by
   254                                  the serviceName field. This is computed as: weight/Sum(weights
   255                                  in this destination list). For non-zero values,
   256                                  there may be some epsilon from the exact proportion
   257                                  defined here depending on the precision an implementation
   258                                  supports. If only one serviceName is specified and
   259                                  it has a weight greater than 0, 100% of the traffic
   260                                  is forwarded to that backend. If weights are specified
   261                                  for any one service name, they need to be specified
   262                                  for all of them. If weights are unspecified for
   263                                  all services, then, traffic is distributed in equal
   264                                  proportions to all of them.'
   265                                format: int64
   266                                type: integer
   267                            required:
   268                            - serviceRef
   269                            type: object
   270                          type: array
   271                        faultInjectionPolicy:
   272                          description: Optional. The specification for fault injection
   273                            introduced into traffic to test the resiliency of clients
   274                            to destination service failure. As part of fault injection,
   275                            when clients send requests to a destination, delays can
   276                            be introduced on a percentage of requests before sending
   277                            those requests to the destination service. Similarly requests
   278                            from clients can be aborted by for a percentage of requests.
   279                            timeout and retry_policy will be ignored by clients that
   280                            are configured with a fault_injection_policy
   281                          properties:
   282                            abort:
   283                              description: The specification for aborting to client
   284                                requests.
   285                              properties:
   286                                httpStatus:
   287                                  description: The HTTP status code used to abort
   288                                    the request. The value must be between 200 and
   289                                    599 inclusive.
   290                                  format: int64
   291                                  type: integer
   292                                percentage:
   293                                  description: The percentage of traffic which will
   294                                    be aborted. The value must be between [0, 100]
   295                                  format: int64
   296                                  type: integer
   297                              type: object
   298                            delay:
   299                              description: The specification for injecting delay to
   300                                client requests.
   301                              properties:
   302                                fixedDelay:
   303                                  description: Specify a fixed delay before forwarding
   304                                    the request.
   305                                  type: string
   306                                percentage:
   307                                  description: The percentage of traffic on which
   308                                    delay will be injected. The value must be between
   309                                    [0, 100]
   310                                  format: int64
   311                                  type: integer
   312                              type: object
   313                          type: object
   314                        retryPolicy:
   315                          description: Optional. Specifies the retry policy associated
   316                            with this route.
   317                          properties:
   318                            numRetries:
   319                              description: Specifies the allowed number of retries.
   320                                This number must be > 0. If not specpfied, default
   321                                to 1.
   322                              format: int64
   323                              type: integer
   324                            retryConditions:
   325                              description: '- connect-failure: Router will retry on
   326                                failures connecting to Backend Services, for example
   327                                due to connection timeouts. - refused-stream: Router
   328                                will retry if the backend service resets the stream
   329                                with a REFUSED_STREAM error code. This reset type
   330                                indicates that it is safe to retry. - cancelled: Router
   331                                will retry if the gRPC status code in the response
   332                                header is set to cancelled - deadline-exceeded: Router
   333                                will retry if the gRPC status code in the response
   334                                header is set to deadline-exceeded - resource-exhausted:
   335                                Router will retry if the gRPC status code in the response
   336                                header is set to resource-exhausted - unavailable:
   337                                Router will retry if the gRPC status code in the response
   338                                header is set to unavailable'
   339                              items:
   340                                type: string
   341                              type: array
   342                          type: object
   343                        timeout:
   344                          description: Optional. Specifies the timeout for selected
   345                            route. Timeout is computed from the time the request has
   346                            been fully processed (i.e. end of stream) up until the
   347                            response has been completely processed. Timeout includes
   348                            all retries.
   349                          type: string
   350                      type: object
   351                    matches:
   352                      description: Optional. Matches define conditions used for matching
   353                        the rule against incoming gRPC requests. Each match is independent,
   354                        i.e. this rule will be matched if ANY one of the matches is
   355                        satisfied. If no matches field is specified, this rule will
   356                        unconditionally match traffic.
   357                      items:
   358                        properties:
   359                          headers:
   360                            description: Optional. Specifies a collection of headers
   361                              to match.
   362                            items:
   363                              properties:
   364                                key:
   365                                  description: Required. The key of the header.
   366                                  type: string
   367                                type:
   368                                  description: 'Optional. Specifies how to match against
   369                                    the value of the header. If not specified, a default
   370                                    value of EXACT is used. Possible values: MATCH_TYPE_UNSPECIFIED,
   371                                    MATCH_ANY, MATCH_ALL'
   372                                  type: string
   373                                value:
   374                                  description: Required. The value of the header.
   375                                  type: string
   376                              required:
   377                              - key
   378                              - value
   379                              type: object
   380                            type: array
   381                          method:
   382                            description: Optional. A gRPC method to match against.
   383                              If this field is empty or omitted, will match all methods.
   384                            properties:
   385                              caseSensitive:
   386                                description: Optional. Specifies that matches are
   387                                  case sensitive. The default value is true. case_sensitive
   388                                  must not be used with a type of REGULAR_EXPRESSION.
   389                                type: boolean
   390                              grpcMethod:
   391                                description: Required. Name of the method to match
   392                                  against. If unspecified, will match all methods.
   393                                type: string
   394                              grpcService:
   395                                description: Required. Name of the service to match
   396                                  against. If unspecified, will match all services.
   397                                type: string
   398                              type:
   399                                description: 'Optional. Specifies how to match against
   400                                  the name. If not specified, a default value of "EXACT"
   401                                  is used. Possible values: TYPE_UNSPECIFIED, EXACT,
   402                                  REGULAR_EXPRESSION'
   403                                type: string
   404                            required:
   405                            - grpcMethod
   406                            - grpcService
   407                            type: object
   408                        type: object
   409                      type: array
   410                  required:
   411                  - action
   412                  type: object
   413                type: array
   414            required:
   415            - hostnames
   416            - location
   417            - projectRef
   418            - rules
   419            type: object
   420          status:
   421            properties:
   422              conditions:
   423                description: Conditions represent the latest available observation
   424                  of the resource's current state.
   425                items:
   426                  properties:
   427                    lastTransitionTime:
   428                      description: Last time the condition transitioned from one status
   429                        to another.
   430                      type: string
   431                    message:
   432                      description: Human-readable message indicating details about
   433                        last transition.
   434                      type: string
   435                    reason:
   436                      description: Unique, one-word, CamelCase reason for the condition's
   437                        last transition.
   438                      type: string
   439                    status:
   440                      description: Status is the status of the condition. Can be True,
   441                        False, Unknown.
   442                      type: string
   443                    type:
   444                      description: Type is the type of the condition.
   445                      type: string
   446                  type: object
   447                type: array
   448              createTime:
   449                description: Output only. The timestamp when the resource was created.
   450                format: date-time
   451                type: string
   452              observedGeneration:
   453                description: ObservedGeneration is the generation of the resource
   454                  that was most recently observed by the Config Connector controller.
   455                  If this is equal to metadata.generation, then that means that the
   456                  current reported status reflects the most recent desired state of
   457                  the resource.
   458                type: integer
   459              selfLink:
   460                description: Output only. Server-defined URL of this resource
   461                type: string
   462              updateTime:
   463                description: Output only. The timestamp when the resource was updated.
   464                format: date-time
   465                type: string
   466            type: object
   467        required:
   468        - spec
   469        type: object
   470    served: true
   471    storage: true
   472    subresources:
   473      status: {}
   474status:
   475  acceptedNames:
   476    kind: ""
   477    plural: ""
   478  conditions: []
   479  storedVersions: []

View as plain text