...

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

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

     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: standard
     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            type: object
   221        required:
   222        - spec
   223        type: object
   224    served: true
   225    storage: false
   226    subresources:
   227      status: {}
   228  - additionalPrinterColumns:
   229    - jsonPath: .spec.controllerName
   230      name: Controller
   231      type: string
   232    - jsonPath: .status.conditions[?(@.type=="Accepted")].status
   233      name: Accepted
   234      type: string
   235    - jsonPath: .metadata.creationTimestamp
   236      name: Age
   237      type: date
   238    - jsonPath: .spec.description
   239      name: Description
   240      priority: 1
   241      type: string
   242    name: v1beta1
   243    schema:
   244      openAPIV3Schema:
   245        description: "GatewayClass describes a class of Gateways available to the
   246          user for creating Gateway resources. \n It is recommended that this resource
   247          be used as a template for Gateways. This means that a Gateway is based on
   248          the state of the GatewayClass at the time it was created and changes to
   249          the GatewayClass or associated parameters are not propagated down to existing
   250          Gateways. This recommendation is intended to limit the blast radius of changes
   251          to GatewayClass or associated parameters. If implementations choose to propagate
   252          GatewayClass changes to existing Gateways, that MUST be clearly documented
   253          by the implementation. \n Whenever one or more Gateways are using a GatewayClass,
   254          implementations SHOULD add the `gateway-exists-finalizer.gateway.networking.k8s.io`
   255          finalizer on the associated GatewayClass. This ensures that a GatewayClass
   256          associated with a Gateway is not deleted while in use. \n GatewayClass is
   257          a Cluster level resource."
   258        properties:
   259          apiVersion:
   260            description: 'APIVersion defines the versioned schema of this representation
   261              of an object. Servers should convert recognized schemas to the latest
   262              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
   263            type: string
   264          kind:
   265            description: 'Kind is a string value representing the REST resource this
   266              object represents. Servers may infer this from the endpoint the client
   267              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   268            type: string
   269          metadata:
   270            type: object
   271          spec:
   272            description: Spec defines the desired state of GatewayClass.
   273            properties:
   274              controllerName:
   275                description: "ControllerName is the name of the controller that is
   276                  managing Gateways of this class. The value of this field MUST be
   277                  a domain prefixed path. \n Example: \"example.net/gateway-controller\".
   278                  \n This field is not mutable and cannot be empty. \n Support: Core"
   279                maxLength: 253
   280                minLength: 1
   281                pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\/[A-Za-z0-9\/\-._~%!$&'()*+,;=:]+$
   282                type: string
   283                x-kubernetes-validations:
   284                - message: Value is immutable
   285                  rule: self == oldSelf
   286              description:
   287                description: Description helps describe a GatewayClass with more details.
   288                maxLength: 64
   289                type: string
   290              parametersRef:
   291                description: "ParametersRef is a reference to a resource that contains
   292                  the configuration parameters corresponding to the GatewayClass.
   293                  This is optional if the controller does not require any additional
   294                  configuration. \n ParametersRef can reference a standard Kubernetes
   295                  resource, i.e. ConfigMap, or an implementation-specific custom resource.
   296                  The resource can be cluster-scoped or namespace-scoped. \n If the
   297                  referent cannot be found, the GatewayClass's \"InvalidParameters\"
   298                  status condition will be true. \n Support: Implementation-specific"
   299                properties:
   300                  group:
   301                    description: Group is the group of the referent.
   302                    maxLength: 253
   303                    pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
   304                    type: string
   305                  kind:
   306                    description: Kind is kind of the referent.
   307                    maxLength: 63
   308                    minLength: 1
   309                    pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
   310                    type: string
   311                  name:
   312                    description: Name is the name of the referent.
   313                    maxLength: 253
   314                    minLength: 1
   315                    type: string
   316                  namespace:
   317                    description: Namespace is the namespace of the referent. This
   318                      field is required when referring to a Namespace-scoped resource
   319                      and MUST be unset when referring to a Cluster-scoped resource.
   320                    maxLength: 63
   321                    minLength: 1
   322                    pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
   323                    type: string
   324                required:
   325                - group
   326                - kind
   327                - name
   328                type: object
   329            required:
   330            - controllerName
   331            type: object
   332          status:
   333            default:
   334              conditions:
   335              - lastTransitionTime: "1970-01-01T00:00:00Z"
   336                message: Waiting for controller
   337                reason: Waiting
   338                status: Unknown
   339                type: Accepted
   340            description: "Status defines the current state of GatewayClass. \n Implementations
   341              MUST populate status on all GatewayClass resources which specify their
   342              controller name."
   343            properties:
   344              conditions:
   345                default:
   346                - lastTransitionTime: "1970-01-01T00:00:00Z"
   347                  message: Waiting for controller
   348                  reason: Pending
   349                  status: Unknown
   350                  type: Accepted
   351                description: "Conditions is the current status from the controller
   352                  for this GatewayClass. \n Controllers should prefer to publish conditions
   353                  using values of GatewayClassConditionType for the type of each Condition."
   354                items:
   355                  description: "Condition contains details for one aspect of the current
   356                    state of this API Resource. --- This struct is intended for direct
   357                    use as an array at the field path .status.conditions.  For example,
   358                    \n type FooStatus struct{ // Represents the observations of a
   359                    foo's current state. // Known .status.conditions.type are: \"Available\",
   360                    \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
   361                    // +listType=map // +listMapKey=type Conditions []metav1.Condition
   362                    `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
   363                    protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
   364                  properties:
   365                    lastTransitionTime:
   366                      description: lastTransitionTime is the last time the condition
   367                        transitioned from one status to another. This should be when
   368                        the underlying condition changed.  If that is not known, then
   369                        using the time when the API field changed is acceptable.
   370                      format: date-time
   371                      type: string
   372                    message:
   373                      description: message is a human readable message indicating
   374                        details about the transition. This may be an empty string.
   375                      maxLength: 32768
   376                      type: string
   377                    observedGeneration:
   378                      description: observedGeneration represents the .metadata.generation
   379                        that the condition was set based upon. For instance, if .metadata.generation
   380                        is currently 12, but the .status.conditions[x].observedGeneration
   381                        is 9, the condition is out of date with respect to the current
   382                        state of the instance.
   383                      format: int64
   384                      minimum: 0
   385                      type: integer
   386                    reason:
   387                      description: reason contains a programmatic identifier indicating
   388                        the reason for the condition's last transition. Producers
   389                        of specific condition types may define expected values and
   390                        meanings for this field, and whether the values are considered
   391                        a guaranteed API. The value should be a CamelCase string.
   392                        This field may not be empty.
   393                      maxLength: 1024
   394                      minLength: 1
   395                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
   396                      type: string
   397                    status:
   398                      description: status of the condition, one of True, False, Unknown.
   399                      enum:
   400                      - "True"
   401                      - "False"
   402                      - Unknown
   403                      type: string
   404                    type:
   405                      description: type of condition in CamelCase or in foo.example.com/CamelCase.
   406                        --- Many .condition.type values are consistent across resources
   407                        like Available, but because arbitrary conditions can be useful
   408                        (see .node.status.conditions), the ability to deconflict is
   409                        important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
   410                      maxLength: 316
   411                      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])$
   412                      type: string
   413                  required:
   414                  - lastTransitionTime
   415                  - message
   416                  - reason
   417                  - status
   418                  - type
   419                  type: object
   420                maxItems: 8
   421                type: array
   422                x-kubernetes-list-map-keys:
   423                - type
   424                x-kubernetes-list-type: map
   425            type: object
   426        required:
   427        - spec
   428        type: object
   429    served: true
   430    storage: true
   431    subresources:
   432      status: {}
   433status:
   434  acceptedNames:
   435    kind: ""
   436    plural: ""
   437  conditions: null
   438  storedVersions: null

View as plain text