J release changes
[ric-plt/ric-dep.git] / helm / infrastructure / subcharts / kong / crds / custom-resource-definitions.yaml
1 # generated using: kubectl kustomize 'github.com/kong/kubernetes-ingress-controller/config/crd?ref=v3.1.0'
2 apiVersion: apiextensions.k8s.io/v1
3 kind: CustomResourceDefinition
4 metadata:
5   annotations:
6     controller-gen.kubebuilder.io/version: v0.14.0
7   name: ingressclassparameterses.configuration.konghq.com
8 spec:
9   group: configuration.konghq.com
10   names:
11     kind: IngressClassParameters
12     listKind: IngressClassParametersList
13     plural: ingressclassparameterses
14     singular: ingressclassparameters
15   scope: Namespaced
16   versions:
17   - name: v1alpha1
18     schema:
19       openAPIV3Schema:
20         description: IngressClassParameters is the Schema for the IngressClassParameters
21           API.
22         properties:
23           apiVersion:
24             description: |-
25               APIVersion defines the versioned schema of this representation of an object.
26               Servers should convert recognized schemas to the latest internal value, and
27               may reject unrecognized values.
28               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
29             type: string
30           kind:
31             description: |-
32               Kind is a string value representing the REST resource this object represents.
33               Servers may infer this from the endpoint the client submits requests to.
34               Cannot be updated.
35               In CamelCase.
36               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
37             type: string
38           metadata:
39             type: object
40           spec:
41             description: Spec is the IngressClassParameters specification.
42             properties:
43               enableLegacyRegexDetection:
44                 default: false
45                 description: |-
46                   EnableLegacyRegexDetection automatically detects if ImplementationSpecific Ingress paths are regular expression
47                   paths using the legacy 2.x heuristic. The controller adds the "~" prefix to those paths if the Kong version is
48                   3.0 or higher.
49                 type: boolean
50               serviceUpstream:
51                 default: false
52                 description: Offload load-balancing to kube-proxy or sidecar.
53                 type: boolean
54             type: object
55         type: object
56     served: true
57     storage: true
58 ---
59 apiVersion: apiextensions.k8s.io/v1
60 kind: CustomResourceDefinition
61 metadata:
62   annotations:
63     controller-gen.kubebuilder.io/version: v0.14.0
64   name: kongclusterplugins.configuration.konghq.com
65 spec:
66   group: configuration.konghq.com
67   names:
68     categories:
69     - kong-ingress-controller
70     kind: KongClusterPlugin
71     listKind: KongClusterPluginList
72     plural: kongclusterplugins
73     shortNames:
74     - kcp
75     singular: kongclusterplugin
76   scope: Cluster
77   versions:
78   - additionalPrinterColumns:
79     - description: Name of the plugin
80       jsonPath: .plugin
81       name: Plugin-Type
82       type: string
83     - description: Age
84       jsonPath: .metadata.creationTimestamp
85       name: Age
86       type: date
87     - description: Indicates if the plugin is disabled
88       jsonPath: .disabled
89       name: Disabled
90       priority: 1
91       type: boolean
92     - description: Configuration of the plugin
93       jsonPath: .config
94       name: Config
95       priority: 1
96       type: string
97     - jsonPath: .status.conditions[?(@.type=="Programmed")].status
98       name: Programmed
99       type: string
100     name: v1
101     schema:
102       openAPIV3Schema:
103         description: KongClusterPlugin is the Schema for the kongclusterplugins API.
104         properties:
105           apiVersion:
106             description: |-
107               APIVersion defines the versioned schema of this representation of an object.
108               Servers should convert recognized schemas to the latest internal value, and
109               may reject unrecognized values.
110               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
111             type: string
112           config:
113             description: |-
114               Config contains the plugin configuration. It's a list of keys and values
115               required to configure the plugin.
116               Please read the documentation of the plugin being configured to set values
117               in here. For any plugin in Kong, anything that goes in the `config` JSON
118               key in the Admin API request, goes into this property.
119               Only one of `config` or `configFrom` may be used in a KongClusterPlugin, not both at once.
120             type: object
121             x-kubernetes-preserve-unknown-fields: true
122           configFrom:
123             description: |-
124               ConfigFrom references a secret containing the plugin configuration.
125               This should be used when the plugin configuration contains sensitive information,
126               such as AWS credentials in the Lambda plugin or the client secret in the OIDC plugin.
127               Only one of `config` or `configFrom` may be used in a KongClusterPlugin, not both at once.
128             properties:
129               secretKeyRef:
130                 description: Specifies a name, a namespace, and a key of a secret
131                   to refer to.
132                 properties:
133                   key:
134                     description: The key containing the value.
135                     type: string
136                   name:
137                     description: The secret containing the key.
138                     type: string
139                   namespace:
140                     description: The namespace containing the secret.
141                     type: string
142                 required:
143                 - key
144                 - name
145                 - namespace
146                 type: object
147             required:
148             - secretKeyRef
149             type: object
150           configPatches:
151             description: |-
152               ConfigPatches represents JSON patches to the configuration of the plugin.
153               Each item means a JSON patch to add something in the configuration,
154               where path is specified in `path` and value is in `valueFrom` referencing
155               a key in a secret.
156               When Config is specified, patches will be applied to the configuration in Config.
157               Otherwise, patches will be applied to an empty object.
158             items:
159               description: |-
160                 NamespacedConfigPatch is a JSON patch to add values from secrets to KongClusterPlugin
161                 to the generated configuration of plugin in Kong.
162               properties:
163                 path:
164                   description: Path is the JSON path to add the patch.
165                   type: string
166                 valueFrom:
167                   description: ValueFrom is the reference to a key of a secret where
168                     the patched value comes from.
169                   properties:
170                     secretKeyRef:
171                       description: Specifies a name, a namespace, and a key of a secret
172                         to refer to.
173                       properties:
174                         key:
175                           description: The key containing the value.
176                           type: string
177                         name:
178                           description: The secret containing the key.
179                           type: string
180                         namespace:
181                           description: The namespace containing the secret.
182                           type: string
183                       required:
184                       - key
185                       - name
186                       - namespace
187                       type: object
188                   required:
189                   - secretKeyRef
190                   type: object
191               required:
192               - path
193               - valueFrom
194               type: object
195             type: array
196           consumerRef:
197             description: ConsumerRef is a reference to a particular consumer.
198             type: string
199           disabled:
200             description: Disabled set if the plugin is disabled or not.
201             type: boolean
202           instance_name:
203             description: |-
204               InstanceName is an optional custom name to identify an instance of the plugin. This is useful when running the
205               same plugin in multiple contexts, for example, on multiple services.
206             type: string
207           kind:
208             description: |-
209               Kind is a string value representing the REST resource this object represents.
210               Servers may infer this from the endpoint the client submits requests to.
211               Cannot be updated.
212               In CamelCase.
213               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
214             type: string
215           metadata:
216             type: object
217           ordering:
218             description: |-
219               Ordering overrides the normal plugin execution order. It's only available on Kong Enterprise.
220               `<phase>` is a request processing phase (for example, `access` or `body_filter`) and
221               `<plugin>` is the name of the plugin that will run before or after the KongPlugin.
222               For example, a KongPlugin with `plugin: rate-limiting` and `before.access: ["key-auth"]`
223               will create a rate limiting plugin that limits requests _before_ they are authenticated.
224             properties:
225               after:
226                 additionalProperties:
227                   items:
228                     type: string
229                   type: array
230                 description: PluginOrderingPhase indicates which plugins in a phase
231                   should affect the target plugin's order
232                 type: object
233               before:
234                 additionalProperties:
235                   items:
236                     type: string
237                   type: array
238                 description: PluginOrderingPhase indicates which plugins in a phase
239                   should affect the target plugin's order
240                 type: object
241             type: object
242           plugin:
243             description: PluginName is the name of the plugin to which to apply the
244               config.
245             type: string
246           protocols:
247             description: |-
248               Protocols configures plugin to run on requests received on specific
249               protocols.
250             items:
251               description: |-
252                 KongProtocol is a valid Kong protocol.
253                 This alias is necessary to deal with https://github.com/kubernetes-sigs/controller-tools/issues/342
254               enum:
255               - http
256               - https
257               - grpc
258               - grpcs
259               - tcp
260               - tls
261               - udp
262               type: string
263             type: array
264           run_on:
265             description: |-
266               RunOn configures the plugin to run on the first or the second or both
267               nodes in case of a service mesh deployment.
268             enum:
269             - first
270             - second
271             - all
272             type: string
273           status:
274             description: Status represents the current status of the KongClusterPlugin
275               resource.
276             properties:
277               conditions:
278                 default:
279                 - lastTransitionTime: "1970-01-01T00:00:00Z"
280                   message: Waiting for controller
281                   reason: Pending
282                   status: Unknown
283                   type: Programmed
284                 description: |-
285                   Conditions describe the current conditions of the KongClusterPluginStatus.
286
287
288                   Known condition types are:
289
290
291                   * "Programmed"
292                 items:
293                   description: "Condition contains details for one aspect of the current
294                     state of this API Resource.\n---\nThis struct is intended for
295                     direct use as an array at the field path .status.conditions.  For
296                     example,\n\n\n\ttype FooStatus struct{\n\t    // Represents the
297                     observations of a foo's current state.\n\t    // Known .status.conditions.type
298                     are: \"Available\", \"Progressing\", and \"Degraded\"\n\t    //
299                     +patchMergeKey=type\n\t    // +patchStrategy=merge\n\t    // +listType=map\n\t
300                     \   // +listMapKey=type\n\t    Conditions []metav1.Condition `json:\"conditions,omitempty\"
301                     patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
302                     \   // other fields\n\t}"
303                   properties:
304                     lastTransitionTime:
305                       description: |-
306                         lastTransitionTime is the last time the condition transitioned from one status to another.
307                         This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
308                       format: date-time
309                       type: string
310                     message:
311                       description: |-
312                         message is a human readable message indicating details about the transition.
313                         This may be an empty string.
314                       maxLength: 32768
315                       type: string
316                     observedGeneration:
317                       description: |-
318                         observedGeneration represents the .metadata.generation that the condition was set based upon.
319                         For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
320                         with respect to the current state of the instance.
321                       format: int64
322                       minimum: 0
323                       type: integer
324                     reason:
325                       description: |-
326                         reason contains a programmatic identifier indicating the reason for the condition's last transition.
327                         Producers of specific condition types may define expected values and meanings for this field,
328                         and whether the values are considered a guaranteed API.
329                         The value should be a CamelCase string.
330                         This field may not be empty.
331                       maxLength: 1024
332                       minLength: 1
333                       pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
334                       type: string
335                     status:
336                       description: status of the condition, one of True, False, Unknown.
337                       enum:
338                       - "True"
339                       - "False"
340                       - Unknown
341                       type: string
342                     type:
343                       description: |-
344                         type of condition in CamelCase or in foo.example.com/CamelCase.
345                         ---
346                         Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
347                         useful (see .node.status.conditions), the ability to deconflict is important.
348                         The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
349                       maxLength: 316
350                       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])$
351                       type: string
352                   required:
353                   - lastTransitionTime
354                   - message
355                   - reason
356                   - status
357                   - type
358                   type: object
359                 maxItems: 8
360                 type: array
361                 x-kubernetes-list-map-keys:
362                 - type
363                 x-kubernetes-list-type: map
364             type: object
365         required:
366         - plugin
367         type: object
368         x-kubernetes-validations:
369         - message: Using both config and configFrom fields is not allowed.
370           rule: '!(has(self.config) && has(self.configFrom))'
371         - message: Using both configFrom and configPatches fields is not allowed.
372           rule: '!(has(self.configFrom) && has(self.configPatches))'
373         - message: The plugin field is immutable
374           rule: self.plugin == oldSelf.plugin
375     served: true
376     storage: true
377     subresources:
378       status: {}
379 ---
380 apiVersion: apiextensions.k8s.io/v1
381 kind: CustomResourceDefinition
382 metadata:
383   annotations:
384     controller-gen.kubebuilder.io/version: v0.14.0
385   name: kongconsumergroups.configuration.konghq.com
386 spec:
387   group: configuration.konghq.com
388   names:
389     categories:
390     - kong-ingress-controller
391     kind: KongConsumerGroup
392     listKind: KongConsumerGroupList
393     plural: kongconsumergroups
394     shortNames:
395     - kcg
396     singular: kongconsumergroup
397   scope: Namespaced
398   versions:
399   - additionalPrinterColumns:
400     - description: Age
401       jsonPath: .metadata.creationTimestamp
402       name: Age
403       type: date
404     - jsonPath: .status.conditions[?(@.type=="Programmed")].status
405       name: Programmed
406       type: string
407     name: v1beta1
408     schema:
409       openAPIV3Schema:
410         description: KongConsumerGroup is the Schema for the kongconsumergroups API.
411         properties:
412           apiVersion:
413             description: |-
414               APIVersion defines the versioned schema of this representation of an object.
415               Servers should convert recognized schemas to the latest internal value, and
416               may reject unrecognized values.
417               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
418             type: string
419           kind:
420             description: |-
421               Kind is a string value representing the REST resource this object represents.
422               Servers may infer this from the endpoint the client submits requests to.
423               Cannot be updated.
424               In CamelCase.
425               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
426             type: string
427           metadata:
428             type: object
429           status:
430             description: Status represents the current status of the KongConsumerGroup
431               resource.
432             properties:
433               conditions:
434                 default:
435                 - lastTransitionTime: "1970-01-01T00:00:00Z"
436                   message: Waiting for controller
437                   reason: Pending
438                   status: Unknown
439                   type: Programmed
440                 description: |-
441                   Conditions describe the current conditions of the KongConsumerGroup.
442
443
444                   Known condition types are:
445
446
447                   * "Programmed"
448                 items:
449                   description: "Condition contains details for one aspect of the current
450                     state of this API Resource.\n---\nThis struct is intended for
451                     direct use as an array at the field path .status.conditions.  For
452                     example,\n\n\n\ttype FooStatus struct{\n\t    // Represents the
453                     observations of a foo's current state.\n\t    // Known .status.conditions.type
454                     are: \"Available\", \"Progressing\", and \"Degraded\"\n\t    //
455                     +patchMergeKey=type\n\t    // +patchStrategy=merge\n\t    // +listType=map\n\t
456                     \   // +listMapKey=type\n\t    Conditions []metav1.Condition `json:\"conditions,omitempty\"
457                     patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
458                     \   // other fields\n\t}"
459                   properties:
460                     lastTransitionTime:
461                       description: |-
462                         lastTransitionTime is the last time the condition transitioned from one status to another.
463                         This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
464                       format: date-time
465                       type: string
466                     message:
467                       description: |-
468                         message is a human readable message indicating details about the transition.
469                         This may be an empty string.
470                       maxLength: 32768
471                       type: string
472                     observedGeneration:
473                       description: |-
474                         observedGeneration represents the .metadata.generation that the condition was set based upon.
475                         For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
476                         with respect to the current state of the instance.
477                       format: int64
478                       minimum: 0
479                       type: integer
480                     reason:
481                       description: |-
482                         reason contains a programmatic identifier indicating the reason for the condition's last transition.
483                         Producers of specific condition types may define expected values and meanings for this field,
484                         and whether the values are considered a guaranteed API.
485                         The value should be a CamelCase string.
486                         This field may not be empty.
487                       maxLength: 1024
488                       minLength: 1
489                       pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
490                       type: string
491                     status:
492                       description: status of the condition, one of True, False, Unknown.
493                       enum:
494                       - "True"
495                       - "False"
496                       - Unknown
497                       type: string
498                     type:
499                       description: |-
500                         type of condition in CamelCase or in foo.example.com/CamelCase.
501                         ---
502                         Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
503                         useful (see .node.status.conditions), the ability to deconflict is important.
504                         The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
505                       maxLength: 316
506                       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])$
507                       type: string
508                   required:
509                   - lastTransitionTime
510                   - message
511                   - reason
512                   - status
513                   - type
514                   type: object
515                 maxItems: 8
516                 type: array
517                 x-kubernetes-list-map-keys:
518                 - type
519                 x-kubernetes-list-type: map
520             type: object
521         type: object
522     served: true
523     storage: true
524     subresources:
525       status: {}
526 ---
527 apiVersion: apiextensions.k8s.io/v1
528 kind: CustomResourceDefinition
529 metadata:
530   annotations:
531     controller-gen.kubebuilder.io/version: v0.14.0
532   name: kongconsumers.configuration.konghq.com
533 spec:
534   group: configuration.konghq.com
535   names:
536     categories:
537     - kong-ingress-controller
538     kind: KongConsumer
539     listKind: KongConsumerList
540     plural: kongconsumers
541     shortNames:
542     - kc
543     singular: kongconsumer
544   scope: Namespaced
545   versions:
546   - additionalPrinterColumns:
547     - description: Username of a Kong Consumer
548       jsonPath: .username
549       name: Username
550       type: string
551     - description: Age
552       jsonPath: .metadata.creationTimestamp
553       name: Age
554       type: date
555     - jsonPath: .status.conditions[?(@.type=="Programmed")].status
556       name: Programmed
557       type: string
558     name: v1
559     schema:
560       openAPIV3Schema:
561         description: KongConsumer is the Schema for the kongconsumers API.
562         properties:
563           apiVersion:
564             description: |-
565               APIVersion defines the versioned schema of this representation of an object.
566               Servers should convert recognized schemas to the latest internal value, and
567               may reject unrecognized values.
568               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
569             type: string
570           consumerGroups:
571             description: |-
572               ConsumerGroups are references to consumer groups (that consumer wants to be part of)
573               provisioned in Kong.
574             items:
575               type: string
576             type: array
577           credentials:
578             description: |-
579               Credentials are references to secrets containing a credential to be
580               provisioned in Kong.
581             items:
582               type: string
583             type: array
584           custom_id:
585             description: |-
586               CustomID is a Kong cluster-unique existing ID for the consumer - useful for mapping
587               Kong with users in your existing database.
588             type: string
589           kind:
590             description: |-
591               Kind is a string value representing the REST resource this object represents.
592               Servers may infer this from the endpoint the client submits requests to.
593               Cannot be updated.
594               In CamelCase.
595               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
596             type: string
597           metadata:
598             type: object
599           status:
600             description: Status represents the current status of the KongConsumer
601               resource.
602             properties:
603               conditions:
604                 default:
605                 - lastTransitionTime: "1970-01-01T00:00:00Z"
606                   message: Waiting for controller
607                   reason: Pending
608                   status: Unknown
609                   type: Programmed
610                 description: |-
611                   Conditions describe the current conditions of the KongConsumer.
612
613
614                   Known condition types are:
615
616
617                   * "Programmed"
618                 items:
619                   description: "Condition contains details for one aspect of the current
620                     state of this API Resource.\n---\nThis struct is intended for
621                     direct use as an array at the field path .status.conditions.  For
622                     example,\n\n\n\ttype FooStatus struct{\n\t    // Represents the
623                     observations of a foo's current state.\n\t    // Known .status.conditions.type
624                     are: \"Available\", \"Progressing\", and \"Degraded\"\n\t    //
625                     +patchMergeKey=type\n\t    // +patchStrategy=merge\n\t    // +listType=map\n\t
626                     \   // +listMapKey=type\n\t    Conditions []metav1.Condition `json:\"conditions,omitempty\"
627                     patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
628                     \   // other fields\n\t}"
629                   properties:
630                     lastTransitionTime:
631                       description: |-
632                         lastTransitionTime is the last time the condition transitioned from one status to another.
633                         This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
634                       format: date-time
635                       type: string
636                     message:
637                       description: |-
638                         message is a human readable message indicating details about the transition.
639                         This may be an empty string.
640                       maxLength: 32768
641                       type: string
642                     observedGeneration:
643                       description: |-
644                         observedGeneration represents the .metadata.generation that the condition was set based upon.
645                         For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
646                         with respect to the current state of the instance.
647                       format: int64
648                       minimum: 0
649                       type: integer
650                     reason:
651                       description: |-
652                         reason contains a programmatic identifier indicating the reason for the condition's last transition.
653                         Producers of specific condition types may define expected values and meanings for this field,
654                         and whether the values are considered a guaranteed API.
655                         The value should be a CamelCase string.
656                         This field may not be empty.
657                       maxLength: 1024
658                       minLength: 1
659                       pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
660                       type: string
661                     status:
662                       description: status of the condition, one of True, False, Unknown.
663                       enum:
664                       - "True"
665                       - "False"
666                       - Unknown
667                       type: string
668                     type:
669                       description: |-
670                         type of condition in CamelCase or in foo.example.com/CamelCase.
671                         ---
672                         Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
673                         useful (see .node.status.conditions), the ability to deconflict is important.
674                         The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
675                       maxLength: 316
676                       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])$
677                       type: string
678                   required:
679                   - lastTransitionTime
680                   - message
681                   - reason
682                   - status
683                   - type
684                   type: object
685                 maxItems: 8
686                 type: array
687                 x-kubernetes-list-map-keys:
688                 - type
689                 x-kubernetes-list-type: map
690             type: object
691           username:
692             description: Username is a Kong cluster-unique username of the consumer.
693             type: string
694         type: object
695         x-kubernetes-validations:
696         - message: Need to provide either username or custom_id
697           rule: has(self.username) || has(self.custom_id)
698     served: true
699     storage: true
700     subresources:
701       status: {}
702 ---
703 apiVersion: apiextensions.k8s.io/v1
704 kind: CustomResourceDefinition
705 metadata:
706   annotations:
707     controller-gen.kubebuilder.io/version: v0.14.0
708   name: kongingresses.configuration.konghq.com
709 spec:
710   group: configuration.konghq.com
711   names:
712     categories:
713     - kong-ingress-controller
714     kind: KongIngress
715     listKind: KongIngressList
716     plural: kongingresses
717     shortNames:
718     - ki
719     singular: kongingress
720   scope: Namespaced
721   versions:
722   - name: v1
723     schema:
724       openAPIV3Schema:
725         description: KongIngress is the Schema for the kongingresses API.
726         properties:
727           apiVersion:
728             description: |-
729               APIVersion defines the versioned schema of this representation of an object.
730               Servers should convert recognized schemas to the latest internal value, and
731               may reject unrecognized values.
732               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
733             type: string
734           kind:
735             description: |-
736               Kind is a string value representing the REST resource this object represents.
737               Servers may infer this from the endpoint the client submits requests to.
738               Cannot be updated.
739               In CamelCase.
740               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
741             type: string
742           metadata:
743             type: object
744           proxy:
745             description: |-
746               Proxy defines additional connection options for the routes to be configured in the
747               Kong Gateway, e.g. `connection_timeout`, `retries`, etc.
748             properties:
749               connect_timeout:
750                 description: "The timeout in milliseconds for\testablishing a connection
751                   to the upstream server.\nDeprecated: use Service's \"konghq.com/connect-timeout\"
752                   annotation instead."
753                 minimum: 0
754                 type: integer
755               path:
756                 description: |-
757                   (optional) The path to be used in requests to the upstream server.
758                   Deprecated: use Service's "konghq.com/path" annotation instead.
759                 pattern: ^/.*$
760                 type: string
761               protocol:
762                 description: |-
763                   The protocol used to communicate with the upstream.
764                   Deprecated: use Service's "konghq.com/protocol" annotation instead.
765                 enum:
766                 - http
767                 - https
768                 - grpc
769                 - grpcs
770                 - tcp
771                 - tls
772                 - udp
773                 type: string
774               read_timeout:
775                 description: |-
776                   The timeout in milliseconds between two successive read operations
777                   for transmitting a request to the upstream server.
778                   Deprecated: use Service's "konghq.com/read-timeout" annotation instead.
779                 minimum: 0
780                 type: integer
781               retries:
782                 description: |-
783                   The number of retries to execute upon failure to proxy.
784                   Deprecated: use Service's "konghq.com/retries" annotation instead.
785                 minimum: 0
786                 type: integer
787               write_timeout:
788                 description: |-
789                   The timeout in milliseconds between two successive write operations
790                   for transmitting a request to the upstream server.
791                   Deprecated: use Service's "konghq.com/write-timeout" annotation instead.
792                 minimum: 0
793                 type: integer
794             type: object
795           route:
796             description: |-
797               Route define rules to match client requests.
798               Each Route is associated with a Service,
799               and a Service may have multiple Routes associated to it.
800             properties:
801               headers:
802                 additionalProperties:
803                   items:
804                     type: string
805                   type: array
806                 description: |-
807                   Headers contains one or more lists of values indexed by header name
808                   that will cause this Route to match if present in the request.
809                   The Host header cannot be used with this attribute.
810                   Deprecated: use Ingress' "konghq.com/headers" annotation instead.
811                 type: object
812               https_redirect_status_code:
813                 description: |-
814                   HTTPSRedirectStatusCode is the status code Kong responds with
815                   when all properties of a Route match except the protocol.
816                   Deprecated: use Ingress' "ingress.kubernetes.io/force-ssl-redirect" or
817                   "konghq.com/https-redirect-status-code" annotations instead.
818                 type: integer
819               methods:
820                 description: |-
821                   Methods is a list of HTTP methods that match this Route.
822                   Deprecated: use Ingress' "konghq.com/methods" annotation instead.
823                 items:
824                   type: string
825                 type: array
826               path_handling:
827                 description: |-
828                   PathHandling controls how the Service path, Route path and requested path
829                   are combined when sending a request to the upstream.
830                   Deprecated: use Ingress' "konghq.com/path-handling" annotation instead.
831                 enum:
832                 - v0
833                 - v1
834                 type: string
835               preserve_host:
836                 description: |-
837                   PreserveHost sets When matching a Route via one of the hosts domain names,
838                   use the request Host header in the upstream request headers.
839                   If set to false, the upstream Host header will be that of the Service’s host.
840                   Deprecated: use Ingress' "konghq.com/preserve-host" annotation instead.
841                 type: boolean
842               protocols:
843                 description: |-
844                   Protocols is an array of the protocols this Route should allow.
845                   Deprecated: use Ingress' "konghq.com/protocols" annotation instead.
846                 items:
847                   description: |-
848                     KongProtocol is a valid Kong protocol.
849                     This alias is necessary to deal with https://github.com/kubernetes-sigs/controller-tools/issues/342
850                   enum:
851                   - http
852                   - https
853                   - grpc
854                   - grpcs
855                   - tcp
856                   - tls
857                   - udp
858                   type: string
859                 type: array
860               regex_priority:
861                 description: |-
862                   RegexPriority is a number used to choose which route resolves a given request
863                   when several routes match it using regexes simultaneously.
864                   Deprecated: use Ingress' "konghq.com/regex-priority" annotation instead.
865                 type: integer
866               request_buffering:
867                 description: |-
868                   RequestBuffering sets whether to enable request body buffering or not.
869                   Deprecated: use Ingress' "konghq.com/request-buffering" annotation instead.
870                 type: boolean
871               response_buffering:
872                 description: |-
873                   ResponseBuffering sets whether to enable response body buffering or not.
874                   Deprecated: use Ingress' "konghq.com/response-buffering" annotation instead.
875                 type: boolean
876               snis:
877                 description: |-
878                   SNIs is a list of SNIs that match this Route when using stream routing.
879                   Deprecated: use Ingress' "konghq.com/snis" annotation instead.
880                 items:
881                   type: string
882                 type: array
883               strip_path:
884                 description: |-
885                   StripPath sets When matching a Route via one of the paths
886                   strip the matching prefix from the upstream request URL.
887                   Deprecated: use Ingress' "konghq.com/strip-path" annotation instead.
888                 type: boolean
889             type: object
890           upstream:
891             description: |-
892               Upstream represents a virtual hostname and can be used to loadbalance
893               incoming requests over multiple targets (e.g. Kubernetes `Services` can
894               be a target, OR `Endpoints` can be targets).
895             properties:
896               algorithm:
897                 description: |-
898                   Algorithm is the load balancing algorithm to use.
899                   Accepted values are: "round-robin", "consistent-hashing", "least-connections", "latency".
900                 enum:
901                 - round-robin
902                 - consistent-hashing
903                 - least-connections
904                 - latency
905                 type: string
906               hash_fallback:
907                 description: |-
908                   HashFallback defines What to use as hashing input
909                   if the primary hash_on does not return a hash.
910                   Accepted values are: "none", "consumer", "ip", "header", "cookie".
911                 type: string
912               hash_fallback_header:
913                 description: |-
914                   HashFallbackHeader is the header name to take the value from as hash input.
915                   Only required when "hash_fallback" is set to "header".
916                 type: string
917               hash_fallback_query_arg:
918                 description: HashFallbackQueryArg is the "hash_fallback" version of
919                   HashOnQueryArg.
920                 type: string
921               hash_fallback_uri_capture:
922                 description: HashFallbackURICapture is the "hash_fallback" version
923                   of HashOnURICapture.
924                 type: string
925               hash_on:
926                 description: |-
927                   HashOn defines what to use as hashing input.
928                   Accepted values are: "none", "consumer", "ip", "header", "cookie", "path", "query_arg", "uri_capture".
929                 type: string
930               hash_on_cookie:
931                 description: |-
932                   The cookie name to take the value from as hash input.
933                   Only required when "hash_on" or "hash_fallback" is set to "cookie".
934                 type: string
935               hash_on_cookie_path:
936                 description: |-
937                   The cookie path to set in the response headers.
938                   Only required when "hash_on" or "hash_fallback" is set to "cookie".
939                 type: string
940               hash_on_header:
941                 description: |-
942                   HashOnHeader defines the header name to take the value from as hash input.
943                   Only required when "hash_on" is set to "header".
944                 type: string
945               hash_on_query_arg:
946                 description: HashOnQueryArg is the query string parameter whose value
947                   is the hash input when "hash_on" is set to "query_arg".
948                 type: string
949               hash_on_uri_capture:
950                 description: |-
951                   HashOnURICapture is the name of the capture group whose value is the hash input when "hash_on" is set to
952                   "uri_capture".
953                 type: string
954               healthchecks:
955                 description: Healthchecks defines the health check configurations
956                   in Kong.
957                 properties:
958                   active:
959                     description: ActiveHealthcheck configures active health check
960                       probing.
961                     properties:
962                       concurrency:
963                         minimum: 1
964                         type: integer
965                       headers:
966                         additionalProperties:
967                           items:
968                             type: string
969                           type: array
970                         type: object
971                       healthy:
972                         description: |-
973                           Healthy configures thresholds and HTTP status codes
974                           to mark targets healthy for an upstream.
975                         properties:
976                           http_statuses:
977                             items:
978                               type: integer
979                             type: array
980                           interval:
981                             minimum: 0
982                             type: integer
983                           successes:
984                             minimum: 0
985                             type: integer
986                         type: object
987                       http_path:
988                         pattern: ^/.*$
989                         type: string
990                       https_sni:
991                         type: string
992                       https_verify_certificate:
993                         type: boolean
994                       timeout:
995                         minimum: 0
996                         type: integer
997                       type:
998                         type: string
999                       unhealthy:
1000                         description: |-
1001                           Unhealthy configures thresholds and HTTP status codes
1002                           to mark targets unhealthy.
1003                         properties:
1004                           http_failures:
1005                             minimum: 0
1006                             type: integer
1007                           http_statuses:
1008                             items:
1009                               type: integer
1010                             type: array
1011                           interval:
1012                             minimum: 0
1013                             type: integer
1014                           tcp_failures:
1015                             minimum: 0
1016                             type: integer
1017                           timeouts:
1018                             minimum: 0
1019                             type: integer
1020                         type: object
1021                     type: object
1022                   passive:
1023                     description: |-
1024                       PassiveHealthcheck configures passive checks around
1025                       passive health checks.
1026                     properties:
1027                       healthy:
1028                         description: |-
1029                           Healthy configures thresholds and HTTP status codes
1030                           to mark targets healthy for an upstream.
1031                         properties:
1032                           http_statuses:
1033                             items:
1034                               type: integer
1035                             type: array
1036                           interval:
1037                             minimum: 0
1038                             type: integer
1039                           successes:
1040                             minimum: 0
1041                             type: integer
1042                         type: object
1043                       type:
1044                         type: string
1045                       unhealthy:
1046                         description: |-
1047                           Unhealthy configures thresholds and HTTP status codes
1048                           to mark targets unhealthy.
1049                         properties:
1050                           http_failures:
1051                             minimum: 0
1052                             type: integer
1053                           http_statuses:
1054                             items:
1055                               type: integer
1056                             type: array
1057                           interval:
1058                             minimum: 0
1059                             type: integer
1060                           tcp_failures:
1061                             minimum: 0
1062                             type: integer
1063                           timeouts:
1064                             minimum: 0
1065                             type: integer
1066                         type: object
1067                     type: object
1068                   threshold:
1069                     type: number
1070                 type: object
1071               host_header:
1072                 description: |-
1073                   HostHeader is The hostname to be used as Host header
1074                   when proxying requests through Kong.
1075                 type: string
1076               slots:
1077                 description: Slots is the number of slots in the load balancer algorithm.
1078                 minimum: 10
1079                 type: integer
1080             type: object
1081         type: object
1082         x-kubernetes-validations:
1083         - message: '''proxy'' field is no longer supported, use Service''s annotations
1084             instead'
1085           rule: '!has(self.proxy)'
1086         - message: '''route'' field is no longer supported, use Ingress'' annotations
1087             instead'
1088           rule: '!has(self.route)'
1089     served: true
1090     storage: true
1091     subresources:
1092       status: {}
1093 ---
1094 apiVersion: apiextensions.k8s.io/v1
1095 kind: CustomResourceDefinition
1096 metadata:
1097   annotations:
1098     controller-gen.kubebuilder.io/version: v0.14.0
1099   name: konglicenses.configuration.konghq.com
1100 spec:
1101   group: configuration.konghq.com
1102   names:
1103     categories:
1104     - kong-ingress-controller
1105     kind: KongLicense
1106     listKind: KongLicenseList
1107     plural: konglicenses
1108     shortNames:
1109     - kl
1110     singular: konglicense
1111   scope: Cluster
1112   versions:
1113   - additionalPrinterColumns:
1114     - description: Age
1115       jsonPath: .metadata.creationTimestamp
1116       name: Age
1117       type: date
1118     - description: Enabled to configure on Kong gateway instances
1119       jsonPath: .enabled
1120       name: Enabled
1121       type: boolean
1122     name: v1alpha1
1123     schema:
1124       openAPIV3Schema:
1125         description: KongLicense stores a Kong enterprise license to apply to managed
1126           Kong gateway instances.
1127         properties:
1128           apiVersion:
1129             description: |-
1130               APIVersion defines the versioned schema of this representation of an object.
1131               Servers should convert recognized schemas to the latest internal value, and
1132               may reject unrecognized values.
1133               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
1134             type: string
1135           enabled:
1136             default: true
1137             description: |-
1138               Enabled is set to true to let controllers (like KIC or KGO) to reconcile it.
1139               Default value is true to apply the license by default.
1140             type: boolean
1141           kind:
1142             description: |-
1143               Kind is a string value representing the REST resource this object represents.
1144               Servers may infer this from the endpoint the client submits requests to.
1145               Cannot be updated.
1146               In CamelCase.
1147               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
1148             type: string
1149           metadata:
1150             type: object
1151           rawLicenseString:
1152             description: RawLicenseString is a string with the raw content of the
1153               license.
1154             type: string
1155           status:
1156             description: Status is the status of the KongLicense being processed by
1157               controllers.
1158             properties:
1159               controllers:
1160                 items:
1161                   description: |-
1162                     KongLicenseControllerStatus is the status of owning KongLicense being processed
1163                     identified by the controllerName field.
1164                   properties:
1165                     conditions:
1166                       default:
1167                       - lastTransitionTime: "1970-01-01T00:00:00Z"
1168                         message: Waiting for controller
1169                         reason: Pending
1170                         status: Unknown
1171                         type: Programmed
1172                       description: Conditions describe the current conditions of the
1173                         KongLicense on the controller.
1174                       items:
1175                         description: "Condition contains details for one aspect of
1176                           the current state of this API Resource.\n---\nThis struct
1177                           is intended for direct use as an array at the field path
1178                           .status.conditions.  For example,\n\n\n\ttype FooStatus
1179                           struct{\n\t    // Represents the observations of a foo's
1180                           current state.\n\t    // Known .status.conditions.type are:
1181                           \"Available\", \"Progressing\", and \"Degraded\"\n\t    //
1182                           +patchMergeKey=type\n\t    // +patchStrategy=merge\n\t    //
1183                           +listType=map\n\t    // +listMapKey=type\n\t    Conditions
1184                           []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\"
1185                           patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
1186                           \   // other fields\n\t}"
1187                         properties:
1188                           lastTransitionTime:
1189                             description: |-
1190                               lastTransitionTime is the last time the condition transitioned from one status to another.
1191                               This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
1192                             format: date-time
1193                             type: string
1194                           message:
1195                             description: |-
1196                               message is a human readable message indicating details about the transition.
1197                               This may be an empty string.
1198                             maxLength: 32768
1199                             type: string
1200                           observedGeneration:
1201                             description: |-
1202                               observedGeneration represents the .metadata.generation that the condition was set based upon.
1203                               For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
1204                               with respect to the current state of the instance.
1205                             format: int64
1206                             minimum: 0
1207                             type: integer
1208                           reason:
1209                             description: |-
1210                               reason contains a programmatic identifier indicating the reason for the condition's last transition.
1211                               Producers of specific condition types may define expected values and meanings for this field,
1212                               and whether the values are considered a guaranteed API.
1213                               The value should be a CamelCase string.
1214                               This field may not be empty.
1215                             maxLength: 1024
1216                             minLength: 1
1217                             pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
1218                             type: string
1219                           status:
1220                             description: status of the condition, one of True, False,
1221                               Unknown.
1222                             enum:
1223                             - "True"
1224                             - "False"
1225                             - Unknown
1226                             type: string
1227                           type:
1228                             description: |-
1229                               type of condition in CamelCase or in foo.example.com/CamelCase.
1230                               ---
1231                               Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
1232                               useful (see .node.status.conditions), the ability to deconflict is important.
1233                               The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
1234                             maxLength: 316
1235                             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])$
1236                             type: string
1237                         required:
1238                         - lastTransitionTime
1239                         - message
1240                         - reason
1241                         - status
1242                         - type
1243                         type: object
1244                       maxItems: 8
1245                       type: array
1246                       x-kubernetes-list-map-keys:
1247                       - type
1248                       x-kubernetes-list-type: map
1249                     controllerName:
1250                       description: |-
1251                         ControllerName is an identifier of the controller to reconcile this KongLicense.
1252                         Should be unique in the list of controller statuses.
1253                       type: string
1254                     controllerRef:
1255                       description: |-
1256                         ControllerRef is the reference of the controller to reconcile this KongLicense.
1257                         It is usually the name of (KIC/KGO) pod that reconciles it.
1258                       properties:
1259                         group:
1260                           description: |-
1261                             Group is the group of referent.
1262                             It should be empty if the referent is in "core" group (like pod).
1263                           maxLength: 253
1264                           pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
1265                           type: string
1266                         kind:
1267                           description: |-
1268                             Kind is the kind of the referent.
1269                             By default the nil kind means kind Pod.
1270                           maxLength: 63
1271                           minLength: 1
1272                           pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
1273                           type: string
1274                         name:
1275                           description: Name is the name of the referent.
1276                           maxLength: 253
1277                           minLength: 1
1278                           type: string
1279                         namespace:
1280                           description: |-
1281                             Namespace is the namespace of the referent.
1282                             It should be empty if the referent is cluster scoped.
1283                           maxLength: 63
1284                           minLength: 1
1285                           pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
1286                           type: string
1287                       required:
1288                       - name
1289                       type: object
1290                   required:
1291                   - controllerName
1292                   type: object
1293                 type: array
1294                 x-kubernetes-list-map-keys:
1295                 - controllerName
1296                 x-kubernetes-list-type: map
1297             type: object
1298         required:
1299         - enabled
1300         - rawLicenseString
1301         type: object
1302     served: true
1303     storage: true
1304     subresources:
1305       status: {}
1306 ---
1307 apiVersion: apiextensions.k8s.io/v1
1308 kind: CustomResourceDefinition
1309 metadata:
1310   annotations:
1311     controller-gen.kubebuilder.io/version: v0.14.0
1312   name: kongplugins.configuration.konghq.com
1313 spec:
1314   group: configuration.konghq.com
1315   names:
1316     categories:
1317     - kong-ingress-controller
1318     kind: KongPlugin
1319     listKind: KongPluginList
1320     plural: kongplugins
1321     shortNames:
1322     - kp
1323     singular: kongplugin
1324   scope: Namespaced
1325   versions:
1326   - additionalPrinterColumns:
1327     - description: Name of the plugin
1328       jsonPath: .plugin
1329       name: Plugin-Type
1330       type: string
1331     - description: Age
1332       jsonPath: .metadata.creationTimestamp
1333       name: Age
1334       type: date
1335     - description: Indicates if the plugin is disabled
1336       jsonPath: .disabled
1337       name: Disabled
1338       priority: 1
1339       type: boolean
1340     - description: Configuration of the plugin
1341       jsonPath: .config
1342       name: Config
1343       priority: 1
1344       type: string
1345     - jsonPath: .status.conditions[?(@.type=="Programmed")].status
1346       name: Programmed
1347       type: string
1348     name: v1
1349     schema:
1350       openAPIV3Schema:
1351         description: KongPlugin is the Schema for the kongplugins API.
1352         properties:
1353           apiVersion:
1354             description: |-
1355               APIVersion defines the versioned schema of this representation of an object.
1356               Servers should convert recognized schemas to the latest internal value, and
1357               may reject unrecognized values.
1358               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
1359             type: string
1360           config:
1361             description: |-
1362               Config contains the plugin configuration. It's a list of keys and values
1363               required to configure the plugin.
1364               Please read the documentation of the plugin being configured to set values
1365               in here. For any plugin in Kong, anything that goes in the `config` JSON
1366               key in the Admin API request, goes into this property.
1367               Only one of `config` or `configFrom` may be used in a KongPlugin, not both at once.
1368             type: object
1369             x-kubernetes-preserve-unknown-fields: true
1370           configFrom:
1371             description: |-
1372               ConfigFrom references a secret containing the plugin configuration.
1373               This should be used when the plugin configuration contains sensitive information,
1374               such as AWS credentials in the Lambda plugin or the client secret in the OIDC plugin.
1375               Only one of `config` or `configFrom` may be used in a KongPlugin, not both at once.
1376             properties:
1377               secretKeyRef:
1378                 description: Specifies a name and a key of a secret to refer to. The
1379                   namespace is implicitly set to the one of referring object.
1380                 properties:
1381                   key:
1382                     description: The key containing the value.
1383                     type: string
1384                   name:
1385                     description: The secret containing the key.
1386                     type: string
1387                 required:
1388                 - key
1389                 - name
1390                 type: object
1391             required:
1392             - secretKeyRef
1393             type: object
1394           configPatches:
1395             description: |-
1396               ConfigPatches represents JSON patches to the configuration of the plugin.
1397               Each item means a JSON patch to add something in the configuration,
1398               where path is specified in `path` and value is in `valueFrom` referencing
1399               a key in a secret.
1400               When Config is specified, patches will be applied to the configuration in Config.
1401               Otherwise, patches will be applied to an empty object.
1402             items:
1403               description: |-
1404                 ConfigPatch is a JSON patch (RFC6902) to add values from Secret to the generated configuration.
1405                 It is an equivalent of the following patch:
1406                 `{"op": "add", "path": {.Path}, "value": {.ComputedValueFrom}}`.
1407               properties:
1408                 path:
1409                   description: Path is the JSON-Pointer value (RFC6901) that references
1410                     a location within the target configuration.
1411                   type: string
1412                 valueFrom:
1413                   description: ValueFrom is the reference to a key of a secret where
1414                     the patched value comes from.
1415                   properties:
1416                     secretKeyRef:
1417                       description: Specifies a name and a key of a secret to refer
1418                         to. The namespace is implicitly set to the one of referring
1419                         object.
1420                       properties:
1421                         key:
1422                           description: The key containing the value.
1423                           type: string
1424                         name:
1425                           description: The secret containing the key.
1426                           type: string
1427                       required:
1428                       - key
1429                       - name
1430                       type: object
1431                   required:
1432                   - secretKeyRef
1433                   type: object
1434               required:
1435               - path
1436               - valueFrom
1437               type: object
1438             type: array
1439           consumerRef:
1440             description: ConsumerRef is a reference to a particular consumer.
1441             type: string
1442           disabled:
1443             description: Disabled set if the plugin is disabled or not.
1444             type: boolean
1445           instance_name:
1446             description: |-
1447               InstanceName is an optional custom name to identify an instance of the plugin. This is useful when running the
1448               same plugin in multiple contexts, for example, on multiple services.
1449             type: string
1450           kind:
1451             description: |-
1452               Kind is a string value representing the REST resource this object represents.
1453               Servers may infer this from the endpoint the client submits requests to.
1454               Cannot be updated.
1455               In CamelCase.
1456               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
1457             type: string
1458           metadata:
1459             type: object
1460           ordering:
1461             description: |-
1462               Ordering overrides the normal plugin execution order. It's only available on Kong Enterprise.
1463               `<phase>` is a request processing phase (for example, `access` or `body_filter`) and
1464               `<plugin>` is the name of the plugin that will run before or after the KongPlugin.
1465               For example, a KongPlugin with `plugin: rate-limiting` and `before.access: ["key-auth"]`
1466               will create a rate limiting plugin that limits requests _before_ they are authenticated.
1467             properties:
1468               after:
1469                 additionalProperties:
1470                   items:
1471                     type: string
1472                   type: array
1473                 description: PluginOrderingPhase indicates which plugins in a phase
1474                   should affect the target plugin's order
1475                 type: object
1476               before:
1477                 additionalProperties:
1478                   items:
1479                     type: string
1480                   type: array
1481                 description: PluginOrderingPhase indicates which plugins in a phase
1482                   should affect the target plugin's order
1483                 type: object
1484             type: object
1485           plugin:
1486             description: PluginName is the name of the plugin to which to apply the
1487               config.
1488             type: string
1489           protocols:
1490             description: |-
1491               Protocols configures plugin to run on requests received on specific
1492               protocols.
1493             items:
1494               description: |-
1495                 KongProtocol is a valid Kong protocol.
1496                 This alias is necessary to deal with https://github.com/kubernetes-sigs/controller-tools/issues/342
1497               enum:
1498               - http
1499               - https
1500               - grpc
1501               - grpcs
1502               - tcp
1503               - tls
1504               - udp
1505               type: string
1506             type: array
1507           run_on:
1508             description: |-
1509               RunOn configures the plugin to run on the first or the second or both
1510               nodes in case of a service mesh deployment.
1511             enum:
1512             - first
1513             - second
1514             - all
1515             type: string
1516           status:
1517             description: Status represents the current status of the KongPlugin resource.
1518             properties:
1519               conditions:
1520                 default:
1521                 - lastTransitionTime: "1970-01-01T00:00:00Z"
1522                   message: Waiting for controller
1523                   reason: Pending
1524                   status: Unknown
1525                   type: Programmed
1526                 description: |-
1527                   Conditions describe the current conditions of the KongPluginStatus.
1528
1529
1530                   Known condition types are:
1531
1532
1533                   * "Programmed"
1534                 items:
1535                   description: "Condition contains details for one aspect of the current
1536                     state of this API Resource.\n---\nThis struct is intended for
1537                     direct use as an array at the field path .status.conditions.  For
1538                     example,\n\n\n\ttype FooStatus struct{\n\t    // Represents the
1539                     observations of a foo's current state.\n\t    // Known .status.conditions.type
1540                     are: \"Available\", \"Progressing\", and \"Degraded\"\n\t    //
1541                     +patchMergeKey=type\n\t    // +patchStrategy=merge\n\t    // +listType=map\n\t
1542                     \   // +listMapKey=type\n\t    Conditions []metav1.Condition `json:\"conditions,omitempty\"
1543                     patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
1544                     \   // other fields\n\t}"
1545                   properties:
1546                     lastTransitionTime:
1547                       description: |-
1548                         lastTransitionTime is the last time the condition transitioned from one status to another.
1549                         This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
1550                       format: date-time
1551                       type: string
1552                     message:
1553                       description: |-
1554                         message is a human readable message indicating details about the transition.
1555                         This may be an empty string.
1556                       maxLength: 32768
1557                       type: string
1558                     observedGeneration:
1559                       description: |-
1560                         observedGeneration represents the .metadata.generation that the condition was set based upon.
1561                         For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
1562                         with respect to the current state of the instance.
1563                       format: int64
1564                       minimum: 0
1565                       type: integer
1566                     reason:
1567                       description: |-
1568                         reason contains a programmatic identifier indicating the reason for the condition's last transition.
1569                         Producers of specific condition types may define expected values and meanings for this field,
1570                         and whether the values are considered a guaranteed API.
1571                         The value should be a CamelCase string.
1572                         This field may not be empty.
1573                       maxLength: 1024
1574                       minLength: 1
1575                       pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
1576                       type: string
1577                     status:
1578                       description: status of the condition, one of True, False, Unknown.
1579                       enum:
1580                       - "True"
1581                       - "False"
1582                       - Unknown
1583                       type: string
1584                     type:
1585                       description: |-
1586                         type of condition in CamelCase or in foo.example.com/CamelCase.
1587                         ---
1588                         Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
1589                         useful (see .node.status.conditions), the ability to deconflict is important.
1590                         The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
1591                       maxLength: 316
1592                       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])$
1593                       type: string
1594                   required:
1595                   - lastTransitionTime
1596                   - message
1597                   - reason
1598                   - status
1599                   - type
1600                   type: object
1601                 maxItems: 8
1602                 type: array
1603                 x-kubernetes-list-map-keys:
1604                 - type
1605                 x-kubernetes-list-type: map
1606             type: object
1607         required:
1608         - plugin
1609         type: object
1610         x-kubernetes-validations:
1611         - message: Using both config and configFrom fields is not allowed.
1612           rule: '!(has(self.config) && has(self.configFrom))'
1613         - message: Using both configFrom and configPatches fields is not allowed.
1614           rule: '!(has(self.configFrom) && has(self.configPatches))'
1615         - message: The plugin field is immutable
1616           rule: self.plugin == oldSelf.plugin
1617     served: true
1618     storage: true
1619     subresources:
1620       status: {}
1621 ---
1622 apiVersion: apiextensions.k8s.io/v1
1623 kind: CustomResourceDefinition
1624 metadata:
1625   annotations:
1626     controller-gen.kubebuilder.io/version: v0.14.0
1627   labels:
1628     gateway.networking.k8s.io/policy: direct
1629   name: kongupstreampolicies.configuration.konghq.com
1630 spec:
1631   group: configuration.konghq.com
1632   names:
1633     categories:
1634     - kong-ingress-controller
1635     kind: KongUpstreamPolicy
1636     listKind: KongUpstreamPolicyList
1637     plural: kongupstreampolicies
1638     shortNames:
1639     - kup
1640     singular: kongupstreampolicy
1641   scope: Namespaced
1642   versions:
1643   - name: v1beta1
1644     schema:
1645       openAPIV3Schema:
1646         description: |-
1647           KongUpstreamPolicy allows configuring algorithm that should be used for load balancing traffic between Kong
1648           Upstream's Targets. It also allows configuring health checks for Kong Upstream's Targets.
1649
1650
1651           Its configuration is similar to Kong Upstream object (https://docs.konghq.com/gateway/latest/admin-api/#upstream-object),
1652           and it is applied to Kong Upstream objects created by the controller.
1653
1654
1655           It can be attached to Services. To attach it to a Service, it has to be annotated with
1656           `konghq.com/upstream-policy: <name>`, where `<name>` is the name of the KongUpstreamPolicy
1657           object in the same namespace as the Service.
1658
1659
1660           When attached to a Service, it will affect all Kong Upstreams created for the Service.
1661
1662
1663           When attached to a Service used in a Gateway API *Route rule with multiple BackendRefs, all of its Services MUST
1664           be configured with the same KongUpstreamPolicy. Otherwise, the controller will *ignore* the KongUpstreamPolicy.
1665
1666
1667           Note: KongUpstreamPolicy doesn't implement Gateway API's GEP-713 strictly.
1668           In particular, it doesn't use the TargetRef for attaching to Services and Gateway API *Routes - annotations are
1669           used instead. This is to allow reusing the same KongUpstreamPolicy for multiple Services and Gateway API *Routes.
1670         properties:
1671           apiVersion:
1672             description: |-
1673               APIVersion defines the versioned schema of this representation of an object.
1674               Servers should convert recognized schemas to the latest internal value, and
1675               may reject unrecognized values.
1676               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
1677             type: string
1678           kind:
1679             description: |-
1680               Kind is a string value representing the REST resource this object represents.
1681               Servers may infer this from the endpoint the client submits requests to.
1682               Cannot be updated.
1683               In CamelCase.
1684               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
1685             type: string
1686           metadata:
1687             type: object
1688           spec:
1689             description: Spec contains the configuration of the Kong upstream.
1690             properties:
1691               algorithm:
1692                 description: |-
1693                   Algorithm is the load balancing algorithm to use.
1694                   Accepted values are: "round-robin", "consistent-hashing", "least-connections", "latency".
1695                 enum:
1696                 - round-robin
1697                 - consistent-hashing
1698                 - least-connections
1699                 - latency
1700                 type: string
1701               hashOn:
1702                 description: |-
1703                   HashOn defines how to calculate hash for consistent-hashing load balancing algorithm.
1704                   Algorithm must be set to "consistent-hashing" for this field to have effect.
1705                 properties:
1706                   cookie:
1707                     description: Cookie is the name of the cookie to use as hash input.
1708                     type: string
1709                   cookiePath:
1710                     description: CookiePath is cookie path to set in the response
1711                       headers.
1712                     type: string
1713                   header:
1714                     description: Header is the name of the header to use as hash input.
1715                     type: string
1716                   input:
1717                     description: |-
1718                       Input allows using one of the predefined inputs (ip, consumer, path).
1719                       For other parametrized inputs, use one of the fields below.
1720                     enum:
1721                     - ip
1722                     - consumer
1723                     - path
1724                     type: string
1725                   queryArg:
1726                     description: QueryArg is the name of the query argument to use
1727                       as hash input.
1728                     type: string
1729                   uriCapture:
1730                     description: URICapture is the name of the URI capture group to
1731                       use as hash input.
1732                     type: string
1733                 type: object
1734               hashOnFallback:
1735                 description: |-
1736                   HashOnFallback defines how to calculate hash for consistent-hashing load balancing algorithm if the primary hash
1737                   function fails.
1738                   Algorithm must be set to "consistent-hashing" for this field to have effect.
1739                 properties:
1740                   cookie:
1741                     description: Cookie is the name of the cookie to use as hash input.
1742                     type: string
1743                   cookiePath:
1744                     description: CookiePath is cookie path to set in the response
1745                       headers.
1746                     type: string
1747                   header:
1748                     description: Header is the name of the header to use as hash input.
1749                     type: string
1750                   input:
1751                     description: |-
1752                       Input allows using one of the predefined inputs (ip, consumer, path).
1753                       For other parametrized inputs, use one of the fields below.
1754                     enum:
1755                     - ip
1756                     - consumer
1757                     - path
1758                     type: string
1759                   queryArg:
1760                     description: QueryArg is the name of the query argument to use
1761                       as hash input.
1762                     type: string
1763                   uriCapture:
1764                     description: URICapture is the name of the URI capture group to
1765                       use as hash input.
1766                     type: string
1767                 type: object
1768               healthchecks:
1769                 description: Healthchecks defines the health check configurations
1770                   in Kong.
1771                 properties:
1772                   active:
1773                     description: Active configures active health check probing.
1774                     properties:
1775                       concurrency:
1776                         description: Concurrency is the number of targets to check
1777                           concurrently.
1778                         minimum: 1
1779                         type: integer
1780                       headers:
1781                         additionalProperties:
1782                           items:
1783                             type: string
1784                           type: array
1785                         description: Headers is a list of HTTP headers to add to the
1786                           probe request.
1787                         type: object
1788                       healthy:
1789                         description: Healthy configures thresholds and HTTP status
1790                           codes to mark targets healthy for an upstream.
1791                         properties:
1792                           httpStatuses:
1793                             description: HTTPStatuses is a list of HTTP status codes
1794                               that Kong considers a success.
1795                             items:
1796                               description: HTTPStatus is an HTTP status code.
1797                               maximum: 599
1798                               minimum: 100
1799                               type: integer
1800                             type: array
1801                           interval:
1802                             description: Interval is the interval between active health
1803                               checks for an upstream in seconds when in a healthy
1804                               state.
1805                             minimum: 0
1806                             type: integer
1807                           successes:
1808                             description: Successes is the number of successes to consider
1809                               a target healthy.
1810                             minimum: 0
1811                             type: integer
1812                         type: object
1813                       httpPath:
1814                         description: HTTPPath is the path to use in GET HTTP request
1815                           to run as a probe.
1816                         pattern: ^/.*$
1817                         type: string
1818                       httpsSni:
1819                         description: HTTPSSNI is the SNI to use in GET HTTPS request
1820                           to run as a probe.
1821                         type: string
1822                       httpsVerifyCertificate:
1823                         description: HTTPSVerifyCertificate is a boolean value that
1824                           indicates if the certificate should be verified.
1825                         type: boolean
1826                       timeout:
1827                         description: Timeout is the probe timeout in seconds.
1828                         minimum: 0
1829                         type: integer
1830                       type:
1831                         description: |-
1832                           Type determines whether to perform active health checks using HTTP or HTTPS, or just attempt a TCP connection.
1833                           Accepted values are "http", "https", "tcp", "grpc", "grpcs".
1834                         enum:
1835                         - http
1836                         - https
1837                         - tcp
1838                         - grpc
1839                         - grpcs
1840                         type: string
1841                       unhealthy:
1842                         description: Unhealthy configures thresholds and HTTP status
1843                           codes to mark targets unhealthy for an upstream.
1844                         properties:
1845                           httpFailures:
1846                             description: HTTPFailures is the number of failures to
1847                               consider a target unhealthy.
1848                             minimum: 0
1849                             type: integer
1850                           httpStatuses:
1851                             description: HTTPStatuses is a list of HTTP status codes
1852                               that Kong considers a failure.
1853                             items:
1854                               description: HTTPStatus is an HTTP status code.
1855                               maximum: 599
1856                               minimum: 100
1857                               type: integer
1858                             type: array
1859                           interval:
1860                             description: Interval is the interval between active health
1861                               checks for an upstream in seconds when in an unhealthy
1862                               state.
1863                             minimum: 0
1864                             type: integer
1865                           tcpFailures:
1866                             description: TCPFailures is the number of TCP failures
1867                               in a row to consider a target unhealthy.
1868                             minimum: 0
1869                             type: integer
1870                           timeouts:
1871                             description: Timeouts is the number of timeouts in a row
1872                               to consider a target unhealthy.
1873                             minimum: 0
1874                             type: integer
1875                         type: object
1876                     type: object
1877                   passive:
1878                     description: Passive configures passive health check probing.
1879                     properties:
1880                       healthy:
1881                         description: Healthy configures thresholds and HTTP status
1882                           codes to mark targets healthy for an upstream.
1883                         properties:
1884                           httpStatuses:
1885                             description: HTTPStatuses is a list of HTTP status codes
1886                               that Kong considers a success.
1887                             items:
1888                               description: HTTPStatus is an HTTP status code.
1889                               maximum: 599
1890                               minimum: 100
1891                               type: integer
1892                             type: array
1893                           interval:
1894                             description: Interval is the interval between active health
1895                               checks for an upstream in seconds when in a healthy
1896                               state.
1897                             minimum: 0
1898                             type: integer
1899                           successes:
1900                             description: Successes is the number of successes to consider
1901                               a target healthy.
1902                             minimum: 0
1903                             type: integer
1904                         type: object
1905                       type:
1906                         description: |-
1907                           Type determines whether to perform passive health checks interpreting HTTP/HTTPS statuses,
1908                           or just check for TCP connection success.
1909                           Accepted values are "http", "https", "tcp", "grpc", "grpcs".
1910                         enum:
1911                         - http
1912                         - https
1913                         - tcp
1914                         - grpc
1915                         - grpcs
1916                         type: string
1917                       unhealthy:
1918                         description: Unhealthy configures thresholds and HTTP status
1919                           codes to mark targets unhealthy.
1920                         properties:
1921                           httpFailures:
1922                             description: HTTPFailures is the number of failures to
1923                               consider a target unhealthy.
1924                             minimum: 0
1925                             type: integer
1926                           httpStatuses:
1927                             description: HTTPStatuses is a list of HTTP status codes
1928                               that Kong considers a failure.
1929                             items:
1930                               description: HTTPStatus is an HTTP status code.
1931                               maximum: 599
1932                               minimum: 100
1933                               type: integer
1934                             type: array
1935                           interval:
1936                             description: Interval is the interval between active health
1937                               checks for an upstream in seconds when in an unhealthy
1938                               state.
1939                             minimum: 0
1940                             type: integer
1941                           tcpFailures:
1942                             description: TCPFailures is the number of TCP failures
1943                               in a row to consider a target unhealthy.
1944                             minimum: 0
1945                             type: integer
1946                           timeouts:
1947                             description: Timeouts is the number of timeouts in a row
1948                               to consider a target unhealthy.
1949                             minimum: 0
1950                             type: integer
1951                         type: object
1952                     type: object
1953                   threshold:
1954                     description: |-
1955                       Threshold is the minimum percentage of the upstream’s targets’ weight that must be available for the whole
1956                       upstream to be considered healthy.
1957                     type: integer
1958                 type: object
1959               slots:
1960                 description: |-
1961                   Slots is the number of slots in the load balancer algorithm.
1962                   If not set, the default value in Kong for the algorithm is used.
1963                 maximum: 65536
1964                 minimum: 10
1965                 type: integer
1966             type: object
1967           status:
1968             description: Status defines the current state of KongUpstreamPolicy
1969             properties:
1970               ancestors:
1971                 description: |-
1972                   Ancestors is a list of ancestor resources (usually Gateways) that are
1973                   associated with the policy, and the status of the policy with respect to
1974                   each ancestor. When this policy attaches to a parent, the controller that
1975                   manages the parent and the ancestors MUST add an entry to this list when
1976                   the controller first sees the policy and SHOULD update the entry as
1977                   appropriate when the relevant ancestor is modified.
1978
1979
1980                   Note that choosing the relevant ancestor is left to the Policy designers;
1981                   an important part of Policy design is designing the right object level at
1982                   which to namespace this status.
1983
1984
1985                   Note also that implementations MUST ONLY populate ancestor status for
1986                   the Ancestor resources they are responsible for. Implementations MUST
1987                   use the ControllerName field to uniquely identify the entries in this list
1988                   that they are responsible for.
1989
1990
1991                   Note that to achieve this, the list of PolicyAncestorStatus structs
1992                   MUST be treated as a map with a composite key, made up of the AncestorRef
1993                   and ControllerName fields combined.
1994
1995
1996                   A maximum of 16 ancestors will be represented in this list. An empty list
1997                   means the Policy is not relevant for any ancestors.
1998
1999
2000                   If this slice is full, implementations MUST NOT add further entries.
2001                   Instead they MUST consider the policy unimplementable and signal that
2002                   on any related resources such as the ancestor that would be referenced
2003                   here. For example, if this list was full on BackendTLSPolicy, no
2004                   additional Gateways would be able to reference the Service targeted by
2005                   the BackendTLSPolicy.
2006                 items:
2007                   description: |-
2008                     PolicyAncestorStatus describes the status of a route with respect to an
2009                     associated Ancestor.
2010
2011
2012                     Ancestors refer to objects that are either the Target of a policy or above it
2013                     in terms of object hierarchy. For example, if a policy targets a Service, the
2014                     Policy's Ancestors are, in order, the Service, the HTTPRoute, the Gateway, and
2015                     the GatewayClass. Almost always, in this hierarchy, the Gateway will be the most
2016                     useful object to place Policy status on, so we recommend that implementations
2017                     SHOULD use Gateway as the PolicyAncestorStatus object unless the designers
2018                     have a _very_ good reason otherwise.
2019
2020
2021                     In the context of policy attachment, the Ancestor is used to distinguish which
2022                     resource results in a distinct application of this policy. For example, if a policy
2023                     targets a Service, it may have a distinct result per attached Gateway.
2024
2025
2026                     Policies targeting the same resource may have different effects depending on the
2027                     ancestors of those resources. For example, different Gateways targeting the same
2028                     Service may have different capabilities, especially if they have different underlying
2029                     implementations.
2030
2031
2032                     For example, in BackendTLSPolicy, the Policy attaches to a Service that is
2033                     used as a backend in a HTTPRoute that is itself attached to a Gateway.
2034                     In this case, the relevant object for status is the Gateway, and that is the
2035                     ancestor object referred to in this status.
2036
2037
2038                     Note that a parent is also an ancestor, so for objects where the parent is the
2039                     relevant object for status, this struct SHOULD still be used.
2040
2041
2042                     This struct is intended to be used in a slice that's effectively a map,
2043                     with a composite key made up of the AncestorRef and the ControllerName.
2044                   properties:
2045                     ancestorRef:
2046                       description: |-
2047                         AncestorRef corresponds with a ParentRef in the spec that this
2048                         PolicyAncestorStatus struct describes the status of.
2049                       properties:
2050                         group:
2051                           default: gateway.networking.k8s.io
2052                           description: |-
2053                             Group is the group of the referent.
2054                             When unspecified, "gateway.networking.k8s.io" is inferred.
2055                             To set the core API group (such as for a "Service" kind referent),
2056                             Group must be explicitly set to "" (empty string).
2057
2058
2059                             Support: Core
2060                           maxLength: 253
2061                           pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
2062                           type: string
2063                         kind:
2064                           default: Gateway
2065                           description: |-
2066                             Kind is kind of the referent.
2067
2068
2069                             There are two kinds of parent resources with "Core" support:
2070
2071
2072                             * Gateway (Gateway conformance profile)
2073                             * Service (Mesh conformance profile, experimental, ClusterIP Services only)
2074
2075
2076                             Support for other resources is Implementation-Specific.
2077                           maxLength: 63
2078                           minLength: 1
2079                           pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$
2080                           type: string
2081                         name:
2082                           description: |-
2083                             Name is the name of the referent.
2084
2085
2086                             Support: Core
2087                           maxLength: 253
2088                           minLength: 1
2089                           type: string
2090                         namespace:
2091                           description: |-
2092                             Namespace is the namespace of the referent. When unspecified, this refers
2093                             to the local namespace of the Route.
2094
2095
2096                             Note that there are specific rules for ParentRefs which cross namespace
2097                             boundaries. Cross-namespace references are only valid if they are explicitly
2098                             allowed by something in the namespace they are referring to. For example:
2099                             Gateway has the AllowedRoutes field, and ReferenceGrant provides a
2100                             generic way to enable any other kind of cross-namespace reference.
2101
2102
2103                             <gateway:experimental:description>
2104                             ParentRefs from a Route to a Service in the same namespace are "producer"
2105                             routes, which apply default routing rules to inbound connections from
2106                             any namespace to the Service.
2107
2108
2109                             ParentRefs from a Route to a Service in a different namespace are
2110                             "consumer" routes, and these routing rules are only applied to outbound
2111                             connections originating from the same namespace as the Route, for which
2112                             the intended destination of the connections are a Service targeted as a
2113                             ParentRef of the Route.
2114                             </gateway:experimental:description>
2115
2116
2117                             Support: Core
2118                           maxLength: 63
2119                           minLength: 1
2120                           pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
2121                           type: string
2122                         port:
2123                           description: |-
2124                             Port is the network port this Route targets. It can be interpreted
2125                             differently based on the type of parent resource.
2126
2127
2128                             When the parent resource is a Gateway, this targets all listeners
2129                             listening on the specified port that also support this kind of Route(and
2130                             select this Route). It's not recommended to set `Port` unless the
2131                             networking behaviors specified in a Route must apply to a specific port
2132                             as opposed to a listener(s) whose port(s) may be changed. When both Port
2133                             and SectionName are specified, the name and port of the selected listener
2134                             must match both specified values.
2135
2136
2137                             <gateway:experimental:description>
2138                             When the parent resource is a Service, this targets a specific port in the
2139                             Service spec. When both Port (experimental) and SectionName are specified,
2140                             the name and port of the selected port must match both specified values.
2141                             </gateway:experimental:description>
2142
2143
2144                             Implementations MAY choose to support other parent resources.
2145                             Implementations supporting other types of parent resources MUST clearly
2146                             document how/if Port is interpreted.
2147
2148
2149                             For the purpose of status, an attachment is considered successful as
2150                             long as the parent resource accepts it partially. For example, Gateway
2151                             listeners can restrict which Routes can attach to them by Route kind,
2152                             namespace, or hostname. If 1 of 2 Gateway listeners accept attachment
2153                             from the referencing Route, the Route MUST be considered successfully
2154                             attached. If no Gateway listeners accept attachment from this Route,
2155                             the Route MUST be considered detached from the Gateway.
2156
2157
2158                             Support: Extended
2159
2160
2161                             <gateway:experimental>
2162                           format: int32
2163                           maximum: 65535
2164                           minimum: 1
2165                           type: integer
2166                         sectionName:
2167                           description: |-
2168                             SectionName is the name of a section within the target resource. In the
2169                             following resources, SectionName is interpreted as the following:
2170
2171
2172                             * Gateway: Listener Name. When both Port (experimental) and SectionName
2173                             are specified, the name and port of the selected listener must match
2174                             both specified values.
2175                             * Service: Port Name. When both Port (experimental) and SectionName
2176                             are specified, the name and port of the selected listener must match
2177                             both specified values. Note that attaching Routes to Services as Parents
2178                             is part of experimental Mesh support and is not supported for any other
2179                             purpose.
2180
2181
2182                             Implementations MAY choose to support attaching Routes to other resources.
2183                             If that is the case, they MUST clearly document how SectionName is
2184                             interpreted.
2185
2186
2187                             When unspecified (empty string), this will reference the entire resource.
2188                             For the purpose of status, an attachment is considered successful if at
2189                             least one section in the parent resource accepts it. For example, Gateway
2190                             listeners can restrict which Routes can attach to them by Route kind,
2191                             namespace, or hostname. If 1 of 2 Gateway listeners accept attachment from
2192                             the referencing Route, the Route MUST be considered successfully
2193                             attached. If no Gateway listeners accept attachment from this Route, the
2194                             Route MUST be considered detached from the Gateway.
2195
2196
2197                             Support: Core
2198                           maxLength: 253
2199                           minLength: 1
2200                           pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
2201                           type: string
2202                       required:
2203                       - name
2204                       type: object
2205                     conditions:
2206                       description: Conditions describes the status of the Policy with
2207                         respect to the given Ancestor.
2208                       items:
2209                         description: "Condition contains details for one aspect of
2210                           the current state of this API Resource.\n---\nThis struct
2211                           is intended for direct use as an array at the field path
2212                           .status.conditions.  For example,\n\n\n\ttype FooStatus
2213                           struct{\n\t    // Represents the observations of a foo's
2214                           current state.\n\t    // Known .status.conditions.type are:
2215                           \"Available\", \"Progressing\", and \"Degraded\"\n\t    //
2216                           +patchMergeKey=type\n\t    // +patchStrategy=merge\n\t    //
2217                           +listType=map\n\t    // +listMapKey=type\n\t    Conditions
2218                           []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\"
2219                           patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
2220                           \   // other fields\n\t}"
2221                         properties:
2222                           lastTransitionTime:
2223                             description: |-
2224                               lastTransitionTime is the last time the condition transitioned from one status to another.
2225                               This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
2226                             format: date-time
2227                             type: string
2228                           message:
2229                             description: |-
2230                               message is a human readable message indicating details about the transition.
2231                               This may be an empty string.
2232                             maxLength: 32768
2233                             type: string
2234                           observedGeneration:
2235                             description: |-
2236                               observedGeneration represents the .metadata.generation that the condition was set based upon.
2237                               For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
2238                               with respect to the current state of the instance.
2239                             format: int64
2240                             minimum: 0
2241                             type: integer
2242                           reason:
2243                             description: |-
2244                               reason contains a programmatic identifier indicating the reason for the condition's last transition.
2245                               Producers of specific condition types may define expected values and meanings for this field,
2246                               and whether the values are considered a guaranteed API.
2247                               The value should be a CamelCase string.
2248                               This field may not be empty.
2249                             maxLength: 1024
2250                             minLength: 1
2251                             pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
2252                             type: string
2253                           status:
2254                             description: status of the condition, one of True, False,
2255                               Unknown.
2256                             enum:
2257                             - "True"
2258                             - "False"
2259                             - Unknown
2260                             type: string
2261                           type:
2262                             description: |-
2263                               type of condition in CamelCase or in foo.example.com/CamelCase.
2264                               ---
2265                               Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
2266                               useful (see .node.status.conditions), the ability to deconflict is important.
2267                               The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
2268                             maxLength: 316
2269                             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])$
2270                             type: string
2271                         required:
2272                         - lastTransitionTime
2273                         - message
2274                         - reason
2275                         - status
2276                         - type
2277                         type: object
2278                       maxItems: 8
2279                       minItems: 1
2280                       type: array
2281                       x-kubernetes-list-map-keys:
2282                       - type
2283                       x-kubernetes-list-type: map
2284                     controllerName:
2285                       description: |-
2286                         ControllerName is a domain/path string that indicates the name of the
2287                         controller that wrote this status. This corresponds with the
2288                         controllerName field on GatewayClass.
2289
2290
2291                         Example: "example.net/gateway-controller".
2292
2293
2294                         The format of this field is DOMAIN "/" PATH, where DOMAIN and PATH are
2295                         valid Kubernetes names
2296                         (https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names).
2297
2298
2299                         Controllers MUST populate this field when writing status. Controllers should ensure that
2300                         entries to status populated with their ControllerName are cleaned up when they are no
2301                         longer necessary.
2302                       maxLength: 253
2303                       minLength: 1
2304                       pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\/[A-Za-z0-9\/\-._~%!$&'()*+,;=:]+$
2305                       type: string
2306                   required:
2307                   - ancestorRef
2308                   - controllerName
2309                   type: object
2310                 maxItems: 16
2311                 type: array
2312             required:
2313             - ancestors
2314             type: object
2315         type: object
2316         x-kubernetes-validations:
2317         - message: Only one of spec.hashOn.(input|cookie|header|uriCapture|queryArg)
2318             can be set.
2319           rule: 'has(self.spec.hashOn) ? [has(self.spec.hashOn.input), has(self.spec.hashOn.cookie),
2320             has(self.spec.hashOn.header), has(self.spec.hashOn.uriCapture), has(self.spec.hashOn.queryArg)].filter(fieldSet,
2321             fieldSet == true).size() <= 1 : true'
2322         - message: When spec.hashOn.cookie is set, spec.hashOn.cookiePath is required.
2323           rule: 'has(self.spec.hashOn) && has(self.spec.hashOn.cookie) ? has(self.spec.hashOn.cookiePath)
2324             : true'
2325         - message: When spec.hashOn.cookiePath is set, spec.hashOn.cookie is required.
2326           rule: 'has(self.spec.hashOn) && has(self.spec.hashOn.cookiePath) ? has(self.spec.hashOn.cookie)
2327             : true'
2328         - message: spec.algorithm must be set to "consistent-hashing" when spec.hashOn
2329             is set.
2330           rule: 'has(self.spec.hashOn) ? has(self.spec.algorithm) && self.spec.algorithm
2331             == "consistent-hashing" : true'
2332         - message: Only one of spec.hashOnFallback.(input|header|uriCapture|queryArg)
2333             can be set.
2334           rule: 'has(self.spec.hashOnFallback) ? [has(self.spec.hashOnFallback.input),
2335             has(self.spec.hashOnFallback.header), has(self.spec.hashOnFallback.uriCapture),
2336             has(self.spec.hashOnFallback.queryArg)].filter(fieldSet, fieldSet == true).size()
2337             <= 1 : true'
2338         - message: spec.algorithm must be set to "consistent-hashing" when spec.hashOnFallback
2339             is set.
2340           rule: 'has(self.spec.hashOnFallback) ? has(self.spec.algorithm) && self.spec.algorithm
2341             == "consistent-hashing" : true'
2342         - message: spec.hashOnFallback.cookie must not be set.
2343           rule: 'has(self.spec.hashOnFallback) ? !has(self.spec.hashOnFallback.cookie)
2344             : true'
2345         - message: spec.hashOnFallback.cookiePath must not be set.
2346           rule: 'has(self.spec.hashOnFallback) ? !has(self.spec.hashOnFallback.cookiePath)
2347             : true'
2348         - message: spec.healthchecks.passive.healthy.interval must not be set.
2349           rule: 'has(self.spec.healthchecks) && has(self.spec.healthchecks.passive)
2350             && has(self.spec.healthchecks.passive.healthy) ? !has(self.spec.healthchecks.passive.healthy.interval)
2351             : true'
2352         - message: spec.healthchecks.passive.unhealthy.interval must not be set.
2353           rule: 'has(self.spec.healthchecks) && has(self.spec.healthchecks.passive)
2354             && has(self.spec.healthchecks.passive.unhealthy) ? !has(self.spec.healthchecks.passive.unhealthy.interval)
2355             : true'
2356         - message: spec.hashOnFallback must not be set when spec.hashOn.cookie is
2357             set.
2358           rule: 'has(self.spec.hashOn) && has(self.spec.hashOn.cookie) ? !has(self.spec.hashOnFallback)
2359             : true'
2360     served: true
2361     storage: true
2362     subresources:
2363       status: {}
2364 ---
2365 apiVersion: apiextensions.k8s.io/v1
2366 kind: CustomResourceDefinition
2367 metadata:
2368   annotations:
2369     controller-gen.kubebuilder.io/version: v0.14.0
2370   name: kongvaults.configuration.konghq.com
2371 spec:
2372   group: configuration.konghq.com
2373   names:
2374     categories:
2375     - kong-ingress-controller
2376     kind: KongVault
2377     listKind: KongVaultList
2378     plural: kongvaults
2379     shortNames:
2380     - kv
2381     singular: kongvault
2382   scope: Cluster
2383   versions:
2384   - additionalPrinterColumns:
2385     - description: Name of the backend of the vault
2386       jsonPath: .spec.backend
2387       name: Backend Type
2388       type: string
2389     - description: Prefix of vault URI to reference the values in the vault
2390       jsonPath: .spec.prefix
2391       name: Prefix
2392       type: string
2393     - description: Age
2394       jsonPath: .metadata.creationTimestamp
2395       name: Age
2396       type: date
2397     - description: Description
2398       jsonPath: .spec.description
2399       name: Description
2400       priority: 1
2401       type: string
2402     - jsonPath: .status.conditions[?(@.type=="Programmed")].status
2403       name: Programmed
2404       type: string
2405     name: v1alpha1
2406     schema:
2407       openAPIV3Schema:
2408         description: |-
2409           KongVault is the schema for kongvaults API which defines a custom Kong vault.
2410           A Kong vault is a storage to store sensitive data, where the values can be referenced in configuration of plugins.
2411           See: https://docs.konghq.com/gateway/latest/kong-enterprise/secrets-management/
2412         properties:
2413           apiVersion:
2414             description: |-
2415               APIVersion defines the versioned schema of this representation of an object.
2416               Servers should convert recognized schemas to the latest internal value, and
2417               may reject unrecognized values.
2418               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
2419             type: string
2420           kind:
2421             description: |-
2422               Kind is a string value representing the REST resource this object represents.
2423               Servers may infer this from the endpoint the client submits requests to.
2424               Cannot be updated.
2425               In CamelCase.
2426               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
2427             type: string
2428           metadata:
2429             type: object
2430           spec:
2431             description: KongVaultSpec defines specification of a custom Kong vault.
2432             properties:
2433               backend:
2434                 description: |-
2435                   Backend is the type of the backend storing the secrets in the vault.
2436                   The supported backends of Kong is listed here:
2437                   https://docs.konghq.com/gateway/latest/kong-enterprise/secrets-management/backends/
2438                 minLength: 1
2439                 type: string
2440               config:
2441                 description: Config is the configuration of the vault. Varies for
2442                   different backends.
2443                 x-kubernetes-preserve-unknown-fields: true
2444               description:
2445                 description: Description is the additional information about the vault.
2446                 type: string
2447               prefix:
2448                 description: |-
2449                   Prefix is the prefix of vault URI for referencing values in the vault.
2450                   It is immutable after created.
2451                 minLength: 1
2452                 type: string
2453             required:
2454             - backend
2455             - prefix
2456             type: object
2457           status:
2458             description: KongVaultStatus represents the current status of the KongVault
2459               resource.
2460             properties:
2461               conditions:
2462                 default:
2463                 - lastTransitionTime: "1970-01-01T00:00:00Z"
2464                   message: Waiting for controller
2465                   reason: Pending
2466                   status: Unknown
2467                   type: Programmed
2468                 description: |-
2469                   Conditions describe the current conditions of the KongVaultStatus.
2470
2471
2472                   Known condition types are:
2473
2474
2475                   * "Programmed"
2476                 items:
2477                   description: "Condition contains details for one aspect of the current
2478                     state of this API Resource.\n---\nThis struct is intended for
2479                     direct use as an array at the field path .status.conditions.  For
2480                     example,\n\n\n\ttype FooStatus struct{\n\t    // Represents the
2481                     observations of a foo's current state.\n\t    // Known .status.conditions.type
2482                     are: \"Available\", \"Progressing\", and \"Degraded\"\n\t    //
2483                     +patchMergeKey=type\n\t    // +patchStrategy=merge\n\t    // +listType=map\n\t
2484                     \   // +listMapKey=type\n\t    Conditions []metav1.Condition `json:\"conditions,omitempty\"
2485                     patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t
2486                     \   // other fields\n\t}"
2487                   properties:
2488                     lastTransitionTime:
2489                       description: |-
2490                         lastTransitionTime is the last time the condition transitioned from one status to another.
2491                         This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
2492                       format: date-time
2493                       type: string
2494                     message:
2495                       description: |-
2496                         message is a human readable message indicating details about the transition.
2497                         This may be an empty string.
2498                       maxLength: 32768
2499                       type: string
2500                     observedGeneration:
2501                       description: |-
2502                         observedGeneration represents the .metadata.generation that the condition was set based upon.
2503                         For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
2504                         with respect to the current state of the instance.
2505                       format: int64
2506                       minimum: 0
2507                       type: integer
2508                     reason:
2509                       description: |-
2510                         reason contains a programmatic identifier indicating the reason for the condition's last transition.
2511                         Producers of specific condition types may define expected values and meanings for this field,
2512                         and whether the values are considered a guaranteed API.
2513                         The value should be a CamelCase string.
2514                         This field may not be empty.
2515                       maxLength: 1024
2516                       minLength: 1
2517                       pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
2518                       type: string
2519                     status:
2520                       description: status of the condition, one of True, False, Unknown.
2521                       enum:
2522                       - "True"
2523                       - "False"
2524                       - Unknown
2525                       type: string
2526                     type:
2527                       description: |-
2528                         type of condition in CamelCase or in foo.example.com/CamelCase.
2529                         ---
2530                         Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be
2531                         useful (see .node.status.conditions), the ability to deconflict is important.
2532                         The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
2533                       maxLength: 316
2534                       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])$
2535                       type: string
2536                   required:
2537                   - lastTransitionTime
2538                   - message
2539                   - reason
2540                   - status
2541                   - type
2542                   type: object
2543                 maxItems: 8
2544                 type: array
2545                 x-kubernetes-list-map-keys:
2546                 - type
2547                 x-kubernetes-list-type: map
2548             required:
2549             - conditions
2550             type: object
2551         required:
2552         - spec
2553         type: object
2554         x-kubernetes-validations:
2555         - message: The spec.prefix field is immutable
2556           rule: self.spec.prefix == oldSelf.spec.prefix
2557     served: true
2558     storage: true
2559     subresources:
2560       status: {}
2561 ---
2562 apiVersion: apiextensions.k8s.io/v1
2563 kind: CustomResourceDefinition
2564 metadata:
2565   annotations:
2566     controller-gen.kubebuilder.io/version: v0.14.0
2567   name: tcpingresses.configuration.konghq.com
2568 spec:
2569   group: configuration.konghq.com
2570   names:
2571     categories:
2572     - kong-ingress-controller
2573     kind: TCPIngress
2574     listKind: TCPIngressList
2575     plural: tcpingresses
2576     singular: tcpingress
2577   scope: Namespaced
2578   versions:
2579   - additionalPrinterColumns:
2580     - description: Address of the load balancer
2581       jsonPath: .status.loadBalancer.ingress[*].ip
2582       name: Address
2583       type: string
2584     - description: Age
2585       jsonPath: .metadata.creationTimestamp
2586       name: Age
2587       type: date
2588     name: v1beta1
2589     schema:
2590       openAPIV3Schema:
2591         description: TCPIngress is the Schema for the tcpingresses API.
2592         properties:
2593           apiVersion:
2594             description: |-
2595               APIVersion defines the versioned schema of this representation of an object.
2596               Servers should convert recognized schemas to the latest internal value, and
2597               may reject unrecognized values.
2598               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
2599             type: string
2600           kind:
2601             description: |-
2602               Kind is a string value representing the REST resource this object represents.
2603               Servers may infer this from the endpoint the client submits requests to.
2604               Cannot be updated.
2605               In CamelCase.
2606               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
2607             type: string
2608           metadata:
2609             type: object
2610           spec:
2611             description: Spec is the TCPIngress specification.
2612             properties:
2613               rules:
2614                 description: A list of rules used to configure the Ingress.
2615                 items:
2616                   description: |-
2617                     IngressRule represents a rule to apply against incoming requests.
2618                     Matching is performed based on an (optional) SNI and port.
2619                   properties:
2620                     backend:
2621                       description: |-
2622                         Backend defines the referenced service endpoint to which the traffic
2623                         will be forwarded to.
2624                       properties:
2625                         serviceName:
2626                           description: Specifies the name of the referenced service.
2627                           minLength: 1
2628                           type: string
2629                         servicePort:
2630                           description: Specifies the port of the referenced service.
2631                           format: int32
2632                           maximum: 65535
2633                           minimum: 1
2634                           type: integer
2635                       required:
2636                       - serviceName
2637                       - servicePort
2638                       type: object
2639                     host:
2640                       description: |-
2641                         Host is the fully qualified domain name of a network host, as defined
2642                         by RFC 3986.
2643                         If a Host is not specified, then port-based TCP routing is performed. Kong
2644                         doesn't care about the content of the TCP stream in this case.
2645                         If a Host is specified, the protocol must be TLS over TCP.
2646                         A plain-text TCP request cannot be routed based on Host. It can only
2647                         be routed based on Port.
2648                       type: string
2649                     port:
2650                       description: |-
2651                         Port is the port on which to accept TCP or TLS over TCP sessions and
2652                         route. It is a required field. If a Host is not specified, the requested
2653                         are routed based only on Port.
2654                       format: int32
2655                       maximum: 65535
2656                       minimum: 1
2657                       type: integer
2658                   required:
2659                   - backend
2660                   - port
2661                   type: object
2662                 type: array
2663               tls:
2664                 description: |-
2665                   TLS configuration. This is similar to the `tls` section in the
2666                   Ingress resource in networking.v1beta1 group.
2667                   The mapping of SNIs to TLS cert-key pair defined here will be
2668                   used for HTTP Ingress rules as well. Once can define the mapping in
2669                   this resource or the original Ingress resource, both have the same
2670                   effect.
2671                 items:
2672                   description: IngressTLS describes the transport layer security.
2673                   properties:
2674                     hosts:
2675                       description: |-
2676                         Hosts are a list of hosts included in the TLS certificate. The values in
2677                         this list must match the name/s used in the tlsSecret. Defaults to the
2678                         wildcard host setting for the loadbalancer controller fulfilling this
2679                         Ingress, if left unspecified.
2680                       items:
2681                         type: string
2682                       type: array
2683                     secretName:
2684                       description: SecretName is the name of the secret used to terminate
2685                         SSL traffic.
2686                       type: string
2687                   type: object
2688                 type: array
2689             type: object
2690           status:
2691             description: TCPIngressStatus defines the observed state of TCPIngress.
2692             properties:
2693               loadBalancer:
2694                 description: LoadBalancer contains the current status of the load-balancer.
2695                 properties:
2696                   ingress:
2697                     description: |-
2698                       Ingress is a list containing ingress points for the load-balancer.
2699                       Traffic intended for the service should be sent to these ingress points.
2700                     items:
2701                       description: |-
2702                         LoadBalancerIngress represents the status of a load-balancer ingress point:
2703                         traffic intended for the service should be sent to an ingress point.
2704                       properties:
2705                         hostname:
2706                           description: |-
2707                             Hostname is set for load-balancer ingress points that are DNS based
2708                             (typically AWS load-balancers)
2709                           type: string
2710                         ip:
2711                           description: |-
2712                             IP is set for load-balancer ingress points that are IP based
2713                             (typically GCE or OpenStack load-balancers)
2714                           type: string
2715                         ipMode:
2716                           description: |-
2717                             IPMode specifies how the load-balancer IP behaves, and may only be specified when the ip field is specified.
2718                             Setting this to "VIP" indicates that traffic is delivered to the node with
2719                             the destination set to the load-balancer's IP and port.
2720                             Setting this to "Proxy" indicates that traffic is delivered to the node or pod with
2721                             the destination set to the node's IP and node port or the pod's IP and port.
2722                             Service implementations may use this information to adjust traffic routing.
2723                           type: string
2724                         ports:
2725                           description: |-
2726                             Ports is a list of records of service ports
2727                             If used, every port defined in the service should have an entry in it
2728                           items:
2729                             properties:
2730                               error:
2731                                 description: |-
2732                                   Error is to record the problem with the service port
2733                                   The format of the error shall comply with the following rules:
2734                                   - built-in error values shall be specified in this file and those shall use
2735                                     CamelCase names
2736                                   - cloud provider specific error values must have names that comply with the
2737                                     format foo.example.com/CamelCase.
2738                                   ---
2739                                   The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
2740                                 maxLength: 316
2741                                 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])$
2742                                 type: string
2743                               port:
2744                                 description: Port is the port number of the service
2745                                   port of which status is recorded here
2746                                 format: int32
2747                                 type: integer
2748                               protocol:
2749                                 default: TCP
2750                                 description: |-
2751                                   Protocol is the protocol of the service port of which status is recorded here
2752                                   The supported values are: "TCP", "UDP", "SCTP"
2753                                 type: string
2754                             required:
2755                             - port
2756                             - protocol
2757                             type: object
2758                           type: array
2759                           x-kubernetes-list-type: atomic
2760                       type: object
2761                     type: array
2762                 type: object
2763             type: object
2764         type: object
2765     served: true
2766     storage: true
2767     subresources:
2768       status: {}
2769 ---
2770 apiVersion: apiextensions.k8s.io/v1
2771 kind: CustomResourceDefinition
2772 metadata:
2773   annotations:
2774     controller-gen.kubebuilder.io/version: v0.14.0
2775   name: udpingresses.configuration.konghq.com
2776 spec:
2777   group: configuration.konghq.com
2778   names:
2779     categories:
2780     - kong-ingress-controller
2781     kind: UDPIngress
2782     listKind: UDPIngressList
2783     plural: udpingresses
2784     singular: udpingress
2785   scope: Namespaced
2786   versions:
2787   - additionalPrinterColumns:
2788     - description: Address of the load balancer
2789       jsonPath: .status.loadBalancer.ingress[*].ip
2790       name: Address
2791       type: string
2792     - description: Age
2793       jsonPath: .metadata.creationTimestamp
2794       name: Age
2795       type: date
2796     name: v1beta1
2797     schema:
2798       openAPIV3Schema:
2799         description: UDPIngress is the Schema for the udpingresses API.
2800         properties:
2801           apiVersion:
2802             description: |-
2803               APIVersion defines the versioned schema of this representation of an object.
2804               Servers should convert recognized schemas to the latest internal value, and
2805               may reject unrecognized values.
2806               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
2807             type: string
2808           kind:
2809             description: |-
2810               Kind is a string value representing the REST resource this object represents.
2811               Servers may infer this from the endpoint the client submits requests to.
2812               Cannot be updated.
2813               In CamelCase.
2814               More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
2815             type: string
2816           metadata:
2817             type: object
2818           spec:
2819             description: Spec is the UDPIngress specification.
2820             properties:
2821               rules:
2822                 description: A list of rules used to configure the Ingress.
2823                 items:
2824                   description: |-
2825                     UDPIngressRule represents a rule to apply against incoming requests
2826                     wherein no Host matching is available for request routing, only the port
2827                     is used to match requests.
2828                   properties:
2829                     backend:
2830                       description: |-
2831                         Backend defines the Kubernetes service which accepts traffic from the
2832                         listening Port defined above.
2833                       properties:
2834                         serviceName:
2835                           description: Specifies the name of the referenced service.
2836                           minLength: 1
2837                           type: string
2838                         servicePort:
2839                           description: Specifies the port of the referenced service.
2840                           format: int32
2841                           maximum: 65535
2842                           minimum: 1
2843                           type: integer
2844                       required:
2845                       - serviceName
2846                       - servicePort
2847                       type: object
2848                     port:
2849                       description: |-
2850                         Port indicates the port for the Kong proxy to accept incoming traffic
2851                         on, which will then be routed to the service Backend.
2852                       format: int32
2853                       maximum: 65535
2854                       minimum: 1
2855                       type: integer
2856                   required:
2857                   - backend
2858                   - port
2859                   type: object
2860                 type: array
2861             type: object
2862           status:
2863             description: UDPIngressStatus defines the observed state of UDPIngress.
2864             properties:
2865               loadBalancer:
2866                 description: LoadBalancer contains the current status of the load-balancer.
2867                 properties:
2868                   ingress:
2869                     description: |-
2870                       Ingress is a list containing ingress points for the load-balancer.
2871                       Traffic intended for the service should be sent to these ingress points.
2872                     items:
2873                       description: |-
2874                         LoadBalancerIngress represents the status of a load-balancer ingress point:
2875                         traffic intended for the service should be sent to an ingress point.
2876                       properties:
2877                         hostname:
2878                           description: |-
2879                             Hostname is set for load-balancer ingress points that are DNS based
2880                             (typically AWS load-balancers)
2881                           type: string
2882                         ip:
2883                           description: |-
2884                             IP is set for load-balancer ingress points that are IP based
2885                             (typically GCE or OpenStack load-balancers)
2886                           type: string
2887                         ipMode:
2888                           description: |-
2889                             IPMode specifies how the load-balancer IP behaves, and may only be specified when the ip field is specified.
2890                             Setting this to "VIP" indicates that traffic is delivered to the node with
2891                             the destination set to the load-balancer's IP and port.
2892                             Setting this to "Proxy" indicates that traffic is delivered to the node or pod with
2893                             the destination set to the node's IP and node port or the pod's IP and port.
2894                             Service implementations may use this information to adjust traffic routing.
2895                           type: string
2896                         ports:
2897                           description: |-
2898                             Ports is a list of records of service ports
2899                             If used, every port defined in the service should have an entry in it
2900                           items:
2901                             properties:
2902                               error:
2903                                 description: |-
2904                                   Error is to record the problem with the service port
2905                                   The format of the error shall comply with the following rules:
2906                                   - built-in error values shall be specified in this file and those shall use
2907                                     CamelCase names
2908                                   - cloud provider specific error values must have names that comply with the
2909                                     format foo.example.com/CamelCase.
2910                                   ---
2911                                   The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
2912                                 maxLength: 316
2913                                 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])$
2914                                 type: string
2915                               port:
2916                                 description: Port is the port number of the service
2917                                   port of which status is recorded here
2918                                 format: int32
2919                                 type: integer
2920                               protocol:
2921                                 default: TCP
2922                                 description: |-
2923                                   Protocol is the protocol of the service port of which status is recorded here
2924                                   The supported values are: "TCP", "UDP", "SCTP"
2925                                 type: string
2926                             required:
2927                             - port
2928                             - protocol
2929                             type: object
2930                           type: array
2931                           x-kubernetes-list-type: atomic
2932                       type: object
2933                     type: array
2934                 type: object
2935             type: object
2936         type: object
2937     served: true
2938     storage: true
2939     subresources:
2940       status: {}