...

Text file src/sigs.k8s.io/gateway-api/config/crd/experimental/gateway.networking.k8s.io_gatewayclasses.yaml

Documentation: sigs.k8s.io/gateway-api/config/crd/experimental

     1apiVersion: apiextensions.k8s.io/v1
     2kind: CustomResourceDefinition
     3metadata:
     4  annotations:
     5    api-approved.kubernetes.io: https://github.com/kubernetes-sigs/gateway-api/pull/2466
     6    gateway.networking.k8s.io/bundle-version: v1.0.0
     7    gateway.networking.k8s.io/channel: experimental
     8  creationTimestamp: null
     9  name: gatewayclasses.gateway.networking.k8s.io
    10spec:
    11  group: gateway.networking.k8s.io
    12  names:
    13    categories:
    14    - gateway-api
    15    kind: GatewayClass
    16    listKind: GatewayClassList
    17    plural: gatewayclasses
    18    shortNames:
    19    - gc
    20    singular: gatewayclass
    21  scope: Cluster
    22  versions:
    23  - additionalPrinterColumns:
    24    - jsonPath: .spec.controllerName
    25      name: Controller
    26      type: string
    27    - jsonPath: .status.conditions[?(@.type=="Accepted")].status
    28      name: Accepted
    29      type: string
    30    - jsonPath: .metadata.creationTimestamp
    31      name: Age
    32      type: date
    33    - jsonPath: .spec.description
    34      name: Description
    35      priority: 1
    36      type: string
    37    name: v1
    38    schema:
    39      openAPIV3Schema:
    40        description: "GatewayClass describes a class of Gateways available to the
    41          user for creating Gateway resources. \n It is recommended that this resource
    42          be used as a template for Gateways. This means that a Gateway is based on
    43          the state of the GatewayClass at the time it was created and changes to
    44          the GatewayClass or associated parameters are not propagated down to existing
    45          Gateways. This recommendation is intended to limit the blast radius of changes
    46          to GatewayClass or associated parameters. If implementations choose to propagate
    47          GatewayClass changes to existing Gateways, that MUST be clearly documented
    48          by the implementation. \n Whenever one or more Gateways are using a GatewayClass,
    49          implementations SHOULD add the `gateway-exists-finalizer.gateway.networking.k8s.io`
    50          finalizer on the associated GatewayClass. This ensures that a GatewayClass
    51          associated with a Gateway is not deleted while in use. \n GatewayClass is
    52          a Cluster level resource."
    53        properties:
    54          apiVersion:
    55            description: 'APIVersion defines the versioned schema of this representation
    56              of an object. Servers should convert recognized schemas to the latest
    57              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    58            type: string
    59          kind:
    60            description: 'Kind is a string value representing the REST resource this
    61              object represents. Servers may infer this from the endpoint the client
    62              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    63            type: string
    64          metadata:
    65            type: object
    66          spec:
    67            description: Spec defines the desired state of GatewayClass.
    68            properties:
    69              controllerName:
    70                description: "ControllerName is the name of the controller that is
    71                  managing Gateways of this class. The value of this field MUST be
    72                  a domain prefixed path. \n Example: \"example.net/gateway-controller\".
    73                  \n This field is not mutable and cannot be empty. \n Support: Core"
    74                maxLength: 253
    75                minLength: 1
    76                pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\/[A-Za-z0-9\/\-._~%!$&'()*+,;=:]+$
    77                type: string
    78                x-kubernetes-validations:
    79                - message: Value is immutable
    80                  rule: self == oldSelf
    81              description:
    82                description: Description helps describe a GatewayClass with more details.
    83                maxLength: 64
    84                type: string
    85              parametersRef:
    86                description: "ParametersRef is a reference to a resource that contains
    87                  the configuration parameters corresponding to the GatewayClass.
    88                  This is optional if the controller does not require any additional
    89                  configuration. \n ParametersRef can reference a standard Kubernetes
    90                  resource, i.e. ConfigMap, or an implementation-specific custom resource.
    91                  The resource can be cluster-scoped or namespace-scoped. \n If the
    92                  referent cannot be found, the GatewayClass's \"InvalidParameters\"
    93                  status condition will be true. \n Support: Implementation-specific"
    94                properties:
    95                  group:
    96                    description: Group is the group of the referent.
    97                    maxLength: 253
    98                    pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
    99                    type: string
   100                  kind:
   101                    description: Kind is kind of the referent.
   102                    maxLength: 63
   103                    minLength: 1
   104                    pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
   105                    type: string
   106                  name:
   107                    description: Name is the name of the referent.
   108                    maxLength: 253
   109                    minLength: 1
   110                    type: string
   111                  namespace:
   112                    description: Namespace is the namespace of the referent. This
   113                      field is required when referring to a Namespace-scoped resource
   114                      and MUST be unset when referring to a Cluster-scoped resource.
   115                    maxLength: 63
   116                    minLength: 1
   117                    pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
   118                    type: string
   119                required:
   120                - group
   121                - kind
   122                - name
   123                type: object
   124            required:
   125            - controllerName
   126            type: object
   127          status:
   128            default:
   129              conditions:
   130              - lastTransitionTime: "1970-01-01T00:00:00Z"
   131                message: Waiting for controller
   132                reason: Waiting
   133                status: Unknown
   134                type: Accepted
   135            description: "Status defines the current state of GatewayClass. \n Implementations
   136              MUST populate status on all GatewayClass resources which specify their
   137              controller name."
   138            properties:
   139              conditions:
   140                default:
   141                - lastTransitionTime: "1970-01-01T00:00:00Z"
   142                  message: Waiting for controller
   143                  reason: Pending
   144                  status: Unknown
   145                  type: Accepted
   146                description: "Conditions is the current status from the controller
   147                  for this GatewayClass. \n Controllers should prefer to publish conditions
   148                  using values of GatewayClassConditionType for the type of each Condition."
   149                items:
   150                  description: "Condition contains details for one aspect of the current
   151                    state of this API Resource. --- This struct is intended for direct
   152                    use as an array at the field path .status.conditions.  For example,
   153                    \n type FooStatus struct{ // Represents the observations of a
   154                    foo's current state. // Known .status.conditions.type are: \"Available\",
   155                    \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
   156                    // +listType=map // +listMapKey=type Conditions []metav1.Condition
   157                    `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
   158                    protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
   159                  properties:
   160                    lastTransitionTime:
   161                      description: lastTransitionTime is the last time the condition
   162                        transitioned from one status to another. This should be when
   163                        the underlying condition changed.  If that is not known, then
   164                        using the time when the API field changed is acceptable.
   165                      format: date-time
   166                      type: string
   167                    message:
   168                      description: message is a human readable message indicating
   169                        details about the transition. This may be an empty string.
   170                      maxLength: 32768
   171                      type: string
   172                    observedGeneration:
   173                      description: observedGeneration represents the .metadata.generation
   174                        that the condition was set based upon. For instance, if .metadata.generation
   175                        is currently 12, but the .status.conditions[x].observedGeneration
   176                        is 9, the condition is out of date with respect to the current
   177                        state of the instance.
   178                      format: int64
   179                      minimum: 0
   180                      type: integer
   181                    reason:
   182                      description: reason contains a programmatic identifier indicating
   183                        the reason for the condition's last transition. Producers
   184                        of specific condition types may define expected values and
   185                        meanings for this field, and whether the values are considered
   186                        a guaranteed API. The value should be a CamelCase string.
   187                        This field may not be empty.
   188                      maxLength: 1024
   189                      minLength: 1
   190                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
   191                      type: string
   192                    status:
   193                      description: status of the condition, one of True, False, Unknown.
   194                      enum:
   195                      - "True"
   196                      - "False"
   197                      - Unknown
   198                      type: string
   199                    type:
   200                      description: type of condition in CamelCase or in foo.example.com/CamelCase.
   201                        --- Many .condition.type values are consistent across resources
   202                        like Available, but because arbitrary conditions can be useful
   203                        (see .node.status.conditions), the ability to deconflict is
   204                        important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
   205                      maxLength: 316
   206                      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])$
   207                      type: string
   208                  required:
   209                  - lastTransitionTime
   210                  - message
   211                  - reason
   212                  - status
   213                  - type
   214                  type: object
   215                maxItems: 8
   216                type: array
   217                x-kubernetes-list-map-keys:
   218                - type
   219                x-kubernetes-list-type: map
   220              supportedFeatures:
   221                description: 'SupportedFeatures is the set of features the GatewayClass
   222                  support. It MUST be sorted in ascending alphabetical order. '
   223                items:
   224                  description: SupportedFeature is used to describe distinct features
   225                    that are covered by conformance tests.
   226                  enum:
   227                  - Gateway
   228                  - GatewayPort8080
   229                  - GatewayStaticAddresses
   230                  - HTTPRoute
   231                  - HTTPRouteDestinationPortMatching
   232                  - HTTPRouteHostRewrite
   233                  - HTTPRouteMethodMatching
   234                  - HTTPRoutePathRedirect
   235                  - HTTPRoutePathRewrite
   236                  - HTTPRoutePortRedirect
   237                  - HTTPRouteQueryParamMatching
   238                  - HTTPRouteRequestMirror
   239                  - HTTPRouteRequestMultipleMirrors
   240                  - HTTPRouteResponseHeaderModification
   241                  - HTTPRouteSchemeRedirect
   242                  - Mesh
   243                  - ReferenceGrant
   244                  - TLSRoute
   245                  type: string
   246                maxItems: 64
   247                type: array
   248                x-kubernetes-list-type: set
   249            type: object
   250        required:
   251        - spec
   252        type: object
   253    served: true
   254    storage: false
   255    subresources:
   256      status: {}
   257  - additionalPrinterColumns:
   258    - jsonPath: .spec.controllerName
   259      name: Controller
   260      type: string
   261    - jsonPath: .status.conditions[?(@.type=="Accepted")].status
   262      name: Accepted
   263      type: string
   264    - jsonPath: .metadata.creationTimestamp
   265      name: Age
   266      type: date
   267    - jsonPath: .spec.description
   268      name: Description
   269      priority: 1
   270      type: string
   271    name: v1beta1
   272    schema:
   273      openAPIV3Schema:
   274        description: "GatewayClass describes a class of Gateways available to the
   275          user for creating Gateway resources. \n It is recommended that this resource
   276          be used as a template for Gateways. This means that a Gateway is based on
   277          the state of the GatewayClass at the time it was created and changes to
   278          the GatewayClass or associated parameters are not propagated down to existing
   279          Gateways. This recommendation is intended to limit the blast radius of changes
   280          to GatewayClass or associated parameters. If implementations choose to propagate
   281          GatewayClass changes to existing Gateways, that MUST be clearly documented
   282          by the implementation. \n Whenever one or more Gateways are using a GatewayClass,
   283          implementations SHOULD add the `gateway-exists-finalizer.gateway.networking.k8s.io`
   284          finalizer on the associated GatewayClass. This ensures that a GatewayClass
   285          associated with a Gateway is not deleted while in use. \n GatewayClass is
   286          a Cluster level resource."
   287        properties:
   288          apiVersion:
   289            description: 'APIVersion defines the versioned schema of this representation
   290              of an object. Servers should convert recognized schemas to the latest
   291              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
   292            type: string
   293          kind:
   294            description: 'Kind is a string value representing the REST resource this
   295              object represents. Servers may infer this from the endpoint the client
   296              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   297            type: string
   298          metadata:
   299            type: object
   300          spec:
   301            description: Spec defines the desired state of GatewayClass.
   302            properties:
   303              controllerName:
   304                description: "ControllerName is the name of the controller that is
   305                  managing Gateways of this class. The value of this field MUST be
   306                  a domain prefixed path. \n Example: \"example.net/gateway-controller\".
   307                  \n This field is not mutable and cannot be empty. \n Support: Core"
   308                maxLength: 253
   309                minLength: 1
   310                pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\/[A-Za-z0-9\/\-._~%!$&'()*+,;=:]+$
   311                type: string
   312                x-kubernetes-validations:
   313                - message: Value is immutable
   314                  rule: self == oldSelf
   315              description:
   316                description: Description helps describe a GatewayClass with more details.
   317                maxLength: 64
   318                type: string
   319              parametersRef:
   320                description: "ParametersRef is a reference to a resource that contains
   321                  the configuration parameters corresponding to the GatewayClass.
   322                  This is optional if the controller does not require any additional
   323                  configuration. \n ParametersRef can reference a standard Kubernetes
   324                  resource, i.e. ConfigMap, or an implementation-specific custom resource.
   325                  The resource can be cluster-scoped or namespace-scoped. \n If the
   326                  referent cannot be found, the GatewayClass's \"InvalidParameters\"
   327                  status condition will be true. \n Support: Implementation-specific"
   328                properties:
   329                  group:
   330                    description: Group is the group of the referent.
   331                    maxLength: 253
   332                    pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
   333                    type: string
   334                  kind:
   335                    description: Kind is kind of the referent.
   336                    maxLength: 63
   337                    minLength: 1
   338                    pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
   339                    type: string
   340                  name:
   341                    description: Name is the name of the referent.
   342                    maxLength: 253
   343                    minLength: 1
   344                    type: string
   345                  namespace:
   346                    description: Namespace is the namespace of the referent. This
   347                      field is required when referring to a Namespace-scoped resource
   348                      and MUST be unset when referring to a Cluster-scoped resource.
   349                    maxLength: 63
   350                    minLength: 1
   351                    pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
   352                    type: string
   353                required:
   354                - group
   355                - kind
   356                - name
   357                type: object
   358            required:
   359            - controllerName
   360            type: object
   361          status:
   362            default:
   363              conditions:
   364              - lastTransitionTime: "1970-01-01T00:00:00Z"
   365                message: Waiting for controller
   366                reason: Waiting
   367                status: Unknown
   368                type: Accepted
   369            description: "Status defines the current state of GatewayClass. \n Implementations
   370              MUST populate status on all GatewayClass resources which specify their
   371              controller name."
   372            properties:
   373              conditions:
   374                default:
   375                - lastTransitionTime: "1970-01-01T00:00:00Z"
   376                  message: Waiting for controller
   377                  reason: Pending
   378                  status: Unknown
   379                  type: Accepted
   380                description: "Conditions is the current status from the controller
   381                  for this GatewayClass. \n Controllers should prefer to publish conditions
   382                  using values of GatewayClassConditionType for the type of each Condition."
   383                items:
   384                  description: "Condition contains details for one aspect of the current
   385                    state of this API Resource. --- This struct is intended for direct
   386                    use as an array at the field path .status.conditions.  For example,
   387                    \n type FooStatus struct{ // Represents the observations of a
   388                    foo's current state. // Known .status.conditions.type are: \"Available\",
   389                    \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
   390                    // +listType=map // +listMapKey=type Conditions []metav1.Condition
   391                    `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
   392                    protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
   393                  properties:
   394                    lastTransitionTime:
   395                      description: lastTransitionTime is the last time the condition
   396                        transitioned from one status to another. This should be when
   397                        the underlying condition changed.  If that is not known, then
   398                        using the time when the API field changed is acceptable.
   399                      format: date-time
   400                      type: string
   401                    message:
   402                      description: message is a human readable message indicating
   403                        details about the transition. This may be an empty string.
   404                      maxLength: 32768
   405                      type: string
   406                    observedGeneration:
   407                      description: observedGeneration represents the .metadata.generation
   408                        that the condition was set based upon. For instance, if .metadata.generation
   409                        is currently 12, but the .status.conditions[x].observedGeneration
   410                        is 9, the condition is out of date with respect to the current
   411                        state of the instance.
   412                      format: int64
   413                      minimum: 0
   414                      type: integer
   415                    reason:
   416                      description: reason contains a programmatic identifier indicating
   417                        the reason for the condition's last transition. Producers
   418                        of specific condition types may define expected values and
   419                        meanings for this field, and whether the values are considered
   420                        a guaranteed API. The value should be a CamelCase string.
   421                        This field may not be empty.
   422                      maxLength: 1024
   423                      minLength: 1
   424                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
   425                      type: string
   426                    status:
   427                      description: status of the condition, one of True, False, Unknown.
   428                      enum:
   429                      - "True"
   430                      - "False"
   431                      - Unknown
   432                      type: string
   433                    type:
   434                      description: type of condition in CamelCase or in foo.example.com/CamelCase.
   435                        --- Many .condition.type values are consistent across resources
   436                        like Available, but because arbitrary conditions can be useful
   437                        (see .node.status.conditions), the ability to deconflict is
   438                        important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
   439                      maxLength: 316
   440                      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])$
   441                      type: string
   442                  required:
   443                  - lastTransitionTime
   444                  - message
   445                  - reason
   446                  - status
   447                  - type
   448                  type: object
   449                maxItems: 8
   450                type: array
   451                x-kubernetes-list-map-keys:
   452                - type
   453                x-kubernetes-list-type: map
   454              supportedFeatures:
   455                description: 'SupportedFeatures is the set of features the GatewayClass
   456                  support. It MUST be sorted in ascending alphabetical order. '
   457                items:
   458                  description: SupportedFeature is used to describe distinct features
   459                    that are covered by conformance tests.
   460                  enum:
   461                  - Gateway
   462                  - GatewayPort8080
   463                  - GatewayStaticAddresses
   464                  - HTTPRoute
   465                  - HTTPRouteDestinationPortMatching
   466                  - HTTPRouteHostRewrite
   467                  - HTTPRouteMethodMatching
   468                  - HTTPRoutePathRedirect
   469                  - HTTPRoutePathRewrite
   470                  - HTTPRoutePortRedirect
   471                  - HTTPRouteQueryParamMatching
   472                  - HTTPRouteRequestMirror
   473                  - HTTPRouteRequestMultipleMirrors
   474                  - HTTPRouteResponseHeaderModification
   475                  - HTTPRouteSchemeRedirect
   476                  - Mesh
   477                  - ReferenceGrant
   478                  - TLSRoute
   479                  type: string
   480                maxItems: 64
   481                type: array
   482                x-kubernetes-list-type: set
   483            type: object
   484        required:
   485        - spec
   486        type: object
   487    served: true
   488    storage: true
   489    subresources:
   490      status: {}
   491status:
   492  acceptedNames:
   493    kind: ""
   494    plural: ""
   495  conditions: null
   496  storedVersions: null

View as plain text