sigs.k8s.io/gateway-api@v1.0.0/config/crd/standard/gateway.networking.k8s.io_gatewayclasses.yaml (about)

     1  apiVersion: apiextensions.k8s.io/v1
     2  kind: CustomResourceDefinition
     3  metadata:
     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
    10  spec:
    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: {}
   433  status:
   434    acceptedNames:
   435      kind: ""
   436      plural: ""
   437    conditions: null
   438    storedVersions: null