1# GENERATED FILE: edits made by hand will not be preserved.
2---
3apiVersion: apiextensions.k8s.io/v1
4kind: CustomResourceDefinition
5metadata:
6 annotations:
7 controller-gen.kubebuilder.io/version: v0.6.2
8 name: authservices.getambassador.io
9spec:
10 conversion:
11 strategy: Webhook
12 webhook:
13 clientConfig:
14 service:
15 name: emissary-apiext
16 namespace: emissary-system
17 conversionReviewVersions:
18 - v1beta1
19 group: getambassador.io
20 names:
21 categories:
22 - ambassador-crds
23 kind: AuthService
24 listKind: AuthServiceList
25 plural: authservices
26 singular: authservice
27 preserveUnknownFields: false
28 scope: Namespaced
29 versions:
30 - name: v1
31 schema:
32 openAPIV3Schema:
33 description: AuthService is the Schema for the authservices API
34 properties:
35 apiVersion:
36 description: 'APIVersion defines the versioned schema of this representation
37 of an object. Servers should convert recognized schemas to the latest
38 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
39 type: string
40 kind:
41 description: 'Kind is a string value representing the REST resource this
42 object represents. Servers may infer this from the endpoint the client
43 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
44 type: string
45 metadata:
46 type: object
47 spec:
48 description: AuthServiceSpec defines the desired state of AuthService
49 properties:
50 add_auth_headers:
51 additionalProperties:
52 type: string
53 type: object
54 add_linkerd_headers:
55 type: boolean
56 allow_request_body:
57 type: boolean
58 allowed_authorization_headers:
59 items:
60 type: string
61 type: array
62 allowed_request_headers:
63 items:
64 type: string
65 type: array
66 ambassador_id:
67 description: "AmbassadorID declares which Ambassador instances should
68 pay attention to this resource. May either be a string or a list
69 of strings. If no value is provided, the default is: \n \tambassador_id:
70 \t- \"default\""
71 items:
72 type: string
73 oneOf:
74 - type: string
75 - type: array
76 auth_service:
77 type: string
78 failure_mode_allow:
79 type: boolean
80 include_body:
81 properties:
82 allow_partial:
83 type: boolean
84 max_bytes:
85 description: These aren't pointer types because they are required.
86 type: integer
87 required:
88 - allow_partial
89 - max_bytes
90 type: object
91 path_prefix:
92 type: string
93 proto:
94 enum:
95 - http
96 - grpc
97 type: string
98 protocol_version:
99 enum:
100 - v2
101 - v3
102 type: string
103 status_on_error:
104 description: Why isn't this just an int??
105 properties:
106 code:
107 type: integer
108 type: object
109 timeout_ms:
110 type: integer
111 tls:
112 description: BoolOrString is a type that can hold a Boolean or a string.
113 oneOf:
114 - type: string
115 - type: boolean
116 v3CircuitBreakers:
117 items:
118 properties:
119 max_connections:
120 type: integer
121 max_pending_requests:
122 type: integer
123 max_requests:
124 type: integer
125 max_retries:
126 type: integer
127 priority:
128 enum:
129 - default
130 - high
131 type: string
132 type: object
133 type: array
134 v3StatsName:
135 type: string
136 required:
137 - auth_service
138 type: object
139 type: object
140 served: true
141 storage: false
142 - name: v2
143 schema:
144 openAPIV3Schema:
145 description: AuthService is the Schema for the authservices API
146 properties:
147 apiVersion:
148 description: 'APIVersion defines the versioned schema of this representation
149 of an object. Servers should convert recognized schemas to the latest
150 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
151 type: string
152 kind:
153 description: 'Kind is a string value representing the REST resource this
154 object represents. Servers may infer this from the endpoint the client
155 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
156 type: string
157 metadata:
158 type: object
159 spec:
160 description: AuthServiceSpec defines the desired state of AuthService
161 properties:
162 add_auth_headers:
163 additionalProperties:
164 type: string
165 type: object
166 add_linkerd_headers:
167 type: boolean
168 allow_request_body:
169 type: boolean
170 allowed_authorization_headers:
171 items:
172 type: string
173 type: array
174 allowed_request_headers:
175 items:
176 type: string
177 type: array
178 ambassador_id:
179 description: "AmbassadorID declares which Ambassador instances should
180 pay attention to this resource. May either be a string or a list
181 of strings. If no value is provided, the default is: \n \tambassador_id:
182 \t- \"default\""
183 items:
184 type: string
185 oneOf:
186 - type: string
187 - type: array
188 auth_service:
189 type: string
190 failure_mode_allow:
191 type: boolean
192 include_body:
193 properties:
194 allow_partial:
195 type: boolean
196 max_bytes:
197 description: These aren't pointer types because they are required.
198 type: integer
199 required:
200 - allow_partial
201 - max_bytes
202 type: object
203 path_prefix:
204 type: string
205 proto:
206 enum:
207 - http
208 - grpc
209 type: string
210 protocol_version:
211 enum:
212 - v2
213 - v3
214 type: string
215 status_on_error:
216 description: Why isn't this just an int??
217 properties:
218 code:
219 type: integer
220 type: object
221 timeout_ms:
222 type: integer
223 tls:
224 description: BoolOrString is a type that can hold a Boolean or a string.
225 oneOf:
226 - type: string
227 - type: boolean
228 v3CircuitBreakers:
229 items:
230 properties:
231 max_connections:
232 type: integer
233 max_pending_requests:
234 type: integer
235 max_requests:
236 type: integer
237 max_retries:
238 type: integer
239 priority:
240 enum:
241 - default
242 - high
243 type: string
244 type: object
245 type: array
246 v3StatsName:
247 type: string
248 required:
249 - auth_service
250 type: object
251 type: object
252 served: true
253 storage: true
254 - name: v3alpha1
255 schema:
256 openAPIV3Schema:
257 description: AuthService is the Schema for the authservices API
258 properties:
259 apiVersion:
260 description: 'APIVersion defines the versioned schema of this representation
261 of an object. Servers should convert recognized schemas to the latest
262 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
263 type: string
264 kind:
265 description: 'Kind is a string value representing the REST resource this
266 object represents. Servers may infer this from the endpoint the client
267 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
268 type: string
269 metadata:
270 type: object
271 spec:
272 description: AuthServiceSpec defines the desired state of AuthService
273 properties:
274 add_auth_headers:
275 additionalProperties:
276 type: string
277 type: object
278 add_linkerd_headers:
279 type: boolean
280 allow_request_body:
281 description: 'TODO(lukeshu): In v3alpha2, drop allow_request_body
282 in favor of include_body. allow_request_body has been deprecated
283 for a long time.'
284 type: boolean
285 allowed_authorization_headers:
286 items:
287 type: string
288 type: array
289 allowed_request_headers:
290 items:
291 type: string
292 type: array
293 ambassador_id:
294 description: "AmbassadorID declares which Ambassador instances should
295 pay attention to this resource. If no value is provided, the default
296 is: \n \tambassador_id: \t- \"default\" \n TODO(lukeshu): In v3alpha2,
297 consider renaming all of the `ambassador_id` (singular) fields to
298 `ambassador_ids` (plural)."
299 items:
300 type: string
301 type: array
302 auth_service:
303 description: 'TODO(lukeshu): In v3alpha2, consider renameing `auth_service`
304 to just `service`, for consistency with the other resource types.'
305 type: string
306 circuit_breakers:
307 items:
308 properties:
309 max_connections:
310 type: integer
311 max_pending_requests:
312 type: integer
313 max_requests:
314 type: integer
315 max_retries:
316 type: integer
317 priority:
318 enum:
319 - default
320 - high
321 type: string
322 type: object
323 type: array
324 failure_mode_allow:
325 type: boolean
326 include_body:
327 properties:
328 allow_partial:
329 type: boolean
330 max_bytes:
331 description: These aren't pointer types because they are required.
332 type: integer
333 required:
334 - allow_partial
335 - max_bytes
336 type: object
337 path_prefix:
338 type: string
339 proto:
340 enum:
341 - http
342 - grpc
343 type: string
344 protocol_version:
345 enum:
346 - v2
347 - v3
348 type: string
349 stats_name:
350 type: string
351 status_on_error:
352 description: 'TODO(lukeshu): In v3alpha2, consider getting rid of
353 this struct type in favor of just using an int (i.e. `statusOnError:
354 500` instead of the current `statusOnError: { code: 500 }`).'
355 properties:
356 code:
357 type: integer
358 type: object
359 timeout_ms:
360 description: 'TODO(lukeshu): In v3alpha2, change all of the `{foo}_ms`/`MillisecondDuration`
361 fields to `{foo}`/`metav1.Duration`.'
362 type: integer
363 tls:
364 type: string
365 v2ExplicitTLS:
366 description: V2ExplicitTLS controls some vanity/stylistic elements
367 when converting from v3alpha1 to v2. The values in an V2ExplicitTLS
368 should not in any way affect the runtime operation of Emissary;
369 except that it may affect internal names in the Envoy config, which
370 may in turn affect stats names. But it should not affect any end-user
371 observable behavior.
372 properties:
373 serviceScheme:
374 description: "ServiceScheme specifies how to spell and capitalize
375 the scheme-part of the service URL. \n Acceptable values are
376 \"http://\" (case-insensitive), \"https://\" (case-insensitive),
377 or \"\". The value is used if it agrees with whether or not
378 this resource enables TLS origination, or if something else
379 in the resource overrides the scheme."
380 pattern: ^([hH][tT][tT][pP][sS]?://)?$
381 type: string
382 tls:
383 description: "TLS controls whether and how to represent the \"tls\"
384 field when its value could be implied by the \"service\" field.
385 \ In v2, there were a lot of different ways to spell an \"empty\"
386 value, and this field specifies which way to spell it (and will
387 therefore only be used if the value will indeed be empty). \n
388 \ | Value | Representation | Meaning
389 of representation | |--------------+---------------------------------------+------------------------------------|
390 \ | \"\" | omit the field |
391 defer to service (no TLSContext) | | \"null\" | store
392 an explicit \"null\" in the field | defer to service (no TLSContext)
393 \ | | \"string\" | store an empty string in the field
394 \ | defer to service (no TLSContext) | | \"bool:false\"
395 | store a Boolean \"false\" in the field | defer to service
396 (no TLSContext) | | \"bool:true\" | store a Boolean \"true\"
397 in the field | originate TLS (no TLSContext) | \n If
398 the meaning of the representation contradicts anything else
399 (if a TLSContext is to be used, or in the case of \"bool:true\"
400 if TLS is not to be originated), then this field is ignored."
401 enum:
402 - ""
403 - "null"
404 - bool:true
405 - bool:false
406 - string
407 type: string
408 type: object
409 required:
410 - auth_service
411 type: object
412 type: object
413 served: true
414 storage: false
415---
416apiVersion: apiextensions.k8s.io/v1
417kind: CustomResourceDefinition
418metadata:
419 annotations:
420 controller-gen.kubebuilder.io/version: v0.6.2
421 name: consulresolvers.getambassador.io
422spec:
423 conversion:
424 strategy: Webhook
425 webhook:
426 clientConfig:
427 service:
428 name: emissary-apiext
429 namespace: emissary-system
430 conversionReviewVersions:
431 - v1beta1
432 group: getambassador.io
433 names:
434 categories:
435 - ambassador-crds
436 kind: ConsulResolver
437 listKind: ConsulResolverList
438 plural: consulresolvers
439 singular: consulresolver
440 preserveUnknownFields: false
441 scope: Namespaced
442 versions:
443 - name: v1
444 schema:
445 openAPIV3Schema:
446 description: ConsulResolver is the Schema for the ConsulResolver API
447 properties:
448 apiVersion:
449 description: 'APIVersion defines the versioned schema of this representation
450 of an object. Servers should convert recognized schemas to the latest
451 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
452 type: string
453 kind:
454 description: 'Kind is a string value representing the REST resource this
455 object represents. Servers may infer this from the endpoint the client
456 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
457 type: string
458 metadata:
459 type: object
460 spec:
461 description: ConsulResolver tells Ambassador to use Consul to resolve
462 services. In addition to the AmbassadorID, it needs information about
463 which Consul server and DC to use.
464 properties:
465 address:
466 type: string
467 ambassador_id:
468 description: "AmbassadorID declares which Ambassador instances should
469 pay attention to this resource. May either be a string or a list
470 of strings. If no value is provided, the default is: \n \tambassador_id:
471 \t- \"default\""
472 items:
473 type: string
474 oneOf:
475 - type: string
476 - type: array
477 datacenter:
478 type: string
479 type: object
480 type: object
481 served: true
482 storage: false
483 - name: v2
484 schema:
485 openAPIV3Schema:
486 description: ConsulResolver is the Schema for the ConsulResolver API
487 properties:
488 apiVersion:
489 description: 'APIVersion defines the versioned schema of this representation
490 of an object. Servers should convert recognized schemas to the latest
491 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
492 type: string
493 kind:
494 description: 'Kind is a string value representing the REST resource this
495 object represents. Servers may infer this from the endpoint the client
496 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
497 type: string
498 metadata:
499 type: object
500 spec:
501 description: ConsulResolver tells Ambassador to use Consul to resolve
502 services. In addition to the AmbassadorID, it needs information about
503 which Consul server and DC to use.
504 properties:
505 address:
506 type: string
507 ambassador_id:
508 description: "AmbassadorID declares which Ambassador instances should
509 pay attention to this resource. May either be a string or a list
510 of strings. If no value is provided, the default is: \n \tambassador_id:
511 \t- \"default\""
512 items:
513 type: string
514 oneOf:
515 - type: string
516 - type: array
517 datacenter:
518 type: string
519 type: object
520 type: object
521 served: true
522 storage: true
523 - name: v3alpha1
524 schema:
525 openAPIV3Schema:
526 description: ConsulResolver is the Schema for the ConsulResolver API
527 properties:
528 apiVersion:
529 description: 'APIVersion defines the versioned schema of this representation
530 of an object. Servers should convert recognized schemas to the latest
531 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
532 type: string
533 kind:
534 description: 'Kind is a string value representing the REST resource this
535 object represents. Servers may infer this from the endpoint the client
536 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
537 type: string
538 metadata:
539 type: object
540 spec:
541 description: ConsulResolver tells Ambassador to use Consul to resolve
542 services. In addition to the AmbassadorID, it needs information about
543 which Consul server and DC to use.
544 properties:
545 address:
546 type: string
547 ambassador_id:
548 description: "AmbassadorID declares which Ambassador instances should
549 pay attention to this resource. If no value is provided, the default
550 is: \n \tambassador_id: \t- \"default\" \n TODO(lukeshu): In v3alpha2,
551 consider renaming all of the `ambassador_id` (singular) fields to
552 `ambassador_ids` (plural)."
553 items:
554 type: string
555 type: array
556 datacenter:
557 type: string
558 type: object
559 type: object
560 served: true
561 storage: false
562---
563apiVersion: apiextensions.k8s.io/v1
564kind: CustomResourceDefinition
565metadata:
566 annotations:
567 controller-gen.kubebuilder.io/version: v0.6.2
568 name: devportals.getambassador.io
569spec:
570 conversion:
571 strategy: Webhook
572 webhook:
573 clientConfig:
574 service:
575 name: emissary-apiext
576 namespace: emissary-system
577 conversionReviewVersions:
578 - v1beta1
579 group: getambassador.io
580 names:
581 categories:
582 - ambassador-crds
583 kind: DevPortal
584 listKind: DevPortalList
585 plural: devportals
586 singular: devportal
587 preserveUnknownFields: false
588 scope: Namespaced
589 versions:
590 - name: v1
591 schema:
592 openAPIV3Schema:
593 description: "DevPortal is the Schema for the DevPortals API \n DevPortal
594 resources specify the `what` and `how` is shown in a DevPortal: \n 1. `what`
595 is in a DevPortal can be controlled with \n - a `selector`, that can
596 be used for filtering `Mappings`. \n - a `docs` listing of (services,
597 url) \n 2. `how` is a pointer to some `contents` (a checkout of a Git repository
598 \ with go-templates/markdown/css). \n Multiple `DevPortal`s can exist
599 in the cluster, and the Dev Portal server will show them at different endpoints.
600 A `DevPortal` resource with a special name, `ambassador`, will be used for
601 configuring the default Dev Portal (served at `/docs/` by default)."
602 properties:
603 apiVersion:
604 description: 'APIVersion defines the versioned schema of this representation
605 of an object. Servers should convert recognized schemas to the latest
606 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
607 type: string
608 kind:
609 description: 'Kind is a string value representing the REST resource this
610 object represents. Servers may infer this from the endpoint the client
611 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
612 type: string
613 metadata:
614 type: object
615 spec:
616 description: DevPortalSpec defines the desired state of DevPortal
617 properties:
618 ambassador_id:
619 description: "AmbassadorID declares which Ambassador instances should
620 pay attention to this resource. May either be a string or a list
621 of strings. If no value is provided, the default is: \n \tambassador_id:
622 \t- \"default\""
623 items:
624 type: string
625 oneOf:
626 - type: string
627 - type: array
628 content:
629 description: Content specifies where the content shown in the DevPortal
630 come from
631 properties:
632 branch:
633 type: string
634 dir:
635 type: string
636 url:
637 type: string
638 type: object
639 default:
640 description: Default must be true when this is the default DevPortal
641 type: boolean
642 docs:
643 description: Docs is a static docs definition
644 items:
645 description: 'DevPortalDocsSpec is a static documentation definition:
646 instead of using a Selector for finding documentation for services,
647 users can provide a static list of <service>:<URL> tuples. These
648 services will be shown in the Dev Portal with the documentation
649 obtained from this URL.'
650 properties:
651 service:
652 description: Service is the service being documented
653 type: string
654 timeout_ms:
655 description: Timeout specifies the amount of time devportal
656 will wait for the downstream service to report an openapi
657 spec back
658 type: integer
659 url:
660 description: URL is the URL used for obtaining docs
661 type: string
662 type: object
663 type: array
664 naming_scheme:
665 description: Describes how to display "services" in the DevPortal.
666 Default namespace.name
667 enum:
668 - namespace.name
669 - name.prefix
670 type: string
671 preserve_servers:
672 description: Configures this DevPortal to use server definitions from
673 the openAPI doc instead of rewriting them based on the url used
674 for the connection.
675 type: boolean
676 search:
677 description: DevPortalSearchSpec allows configuration over search
678 functionality for the DevPortal
679 properties:
680 enabled:
681 type: boolean
682 type:
683 description: 'Type of search. "title-only" does a fuzzy search
684 over openapi and page titles "all-content" will fuzzy search
685 over all openapi and page content. "title-only" is the default.
686 warning: using all-content may incur a larger memory footprint'
687 enum:
688 - title-only
689 - all-content
690 type: string
691 type: object
692 selector:
693 description: Selector is used for choosing what is shown in the DevPortal
694 properties:
695 matchLabels:
696 additionalProperties:
697 type: string
698 description: MatchLabels specifies the list of labels that must
699 be present in Mappings for being present in this DevPortal.
700 type: object
701 matchNamespaces:
702 description: MatchNamespaces is a list of namespaces that will
703 be included in this DevPortal.
704 items:
705 type: string
706 type: array
707 type: object
708 type: object
709 type: object
710 served: true
711 storage: false
712 - name: v2
713 schema:
714 openAPIV3Schema:
715 description: "DevPortal is the Schema for the DevPortals API \n DevPortal
716 resources specify the `what` and `how` is shown in a DevPortal: \n 1. `what`
717 is in a DevPortal can be controlled with \n - a `selector`, that can
718 be used for filtering `Mappings`. \n - a `docs` listing of (services,
719 url) \n 2. `how` is a pointer to some `contents` (a checkout of a Git repository
720 \ with go-templates/markdown/css). \n Multiple `DevPortal`s can exist
721 in the cluster, and the Dev Portal server will show them at different endpoints.
722 A `DevPortal` resource with a special name, `ambassador`, will be used for
723 configuring the default Dev Portal (served at `/docs/` by default)."
724 properties:
725 apiVersion:
726 description: 'APIVersion defines the versioned schema of this representation
727 of an object. Servers should convert recognized schemas to the latest
728 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
729 type: string
730 kind:
731 description: 'Kind is a string value representing the REST resource this
732 object represents. Servers may infer this from the endpoint the client
733 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
734 type: string
735 metadata:
736 type: object
737 spec:
738 description: DevPortalSpec defines the desired state of DevPortal
739 properties:
740 ambassador_id:
741 description: "AmbassadorID declares which Ambassador instances should
742 pay attention to this resource. May either be a string or a list
743 of strings. If no value is provided, the default is: \n \tambassador_id:
744 \t- \"default\""
745 items:
746 type: string
747 oneOf:
748 - type: string
749 - type: array
750 content:
751 description: Content specifies where the content shown in the DevPortal
752 come from
753 properties:
754 branch:
755 type: string
756 dir:
757 type: string
758 url:
759 type: string
760 type: object
761 default:
762 description: Default must be true when this is the default DevPortal
763 type: boolean
764 docs:
765 description: Docs is a static docs definition
766 items:
767 description: 'DevPortalDocsSpec is a static documentation definition:
768 instead of using a Selector for finding documentation for services,
769 users can provide a static list of <service>:<URL> tuples. These
770 services will be shown in the Dev Portal with the documentation
771 obtained from this URL.'
772 properties:
773 service:
774 description: Service is the service being documented
775 type: string
776 timeout_ms:
777 description: Timeout specifies the amount of time devportal
778 will wait for the downstream service to report an openapi
779 spec back
780 type: integer
781 url:
782 description: URL is the URL used for obtaining docs
783 type: string
784 type: object
785 type: array
786 naming_scheme:
787 description: Describes how to display "services" in the DevPortal.
788 Default namespace.name
789 enum:
790 - namespace.name
791 - name.prefix
792 type: string
793 preserve_servers:
794 description: Configures this DevPortal to use server definitions from
795 the openAPI doc instead of rewriting them based on the url used
796 for the connection.
797 type: boolean
798 search:
799 description: DevPortalSearchSpec allows configuration over search
800 functionality for the DevPortal
801 properties:
802 enabled:
803 type: boolean
804 type:
805 description: 'Type of search. "title-only" does a fuzzy search
806 over openapi and page titles "all-content" will fuzzy search
807 over all openapi and page content. "title-only" is the default.
808 warning: using all-content may incur a larger memory footprint'
809 enum:
810 - title-only
811 - all-content
812 type: string
813 type: object
814 selector:
815 description: Selector is used for choosing what is shown in the DevPortal
816 properties:
817 matchLabels:
818 additionalProperties:
819 type: string
820 description: MatchLabels specifies the list of labels that must
821 be present in Mappings for being present in this DevPortal.
822 type: object
823 matchNamespaces:
824 description: MatchNamespaces is a list of namespaces that will
825 be included in this DevPortal.
826 items:
827 type: string
828 type: array
829 type: object
830 type: object
831 type: object
832 served: true
833 storage: true
834 - name: v3alpha1
835 schema:
836 openAPIV3Schema:
837 description: "DevPortal is the Schema for the DevPortals API \n DevPortal
838 resources specify the `what` and `how` is shown in a DevPortal: \n 1. `what`
839 is in a DevPortal can be controlled with \n - a `selector`, that can
840 be used for filtering `Mappings`. \n - a `docs` listing of (services,
841 url) \n 2. `how` is a pointer to some `contents` (a checkout of a Git repository
842 \ with go-templates/markdown/css). \n Multiple `DevPortal`s can exist
843 in the cluster, and the Dev Portal server will show them at different endpoints.
844 A `DevPortal` resource with a special name, `ambassador`, will be used for
845 configuring the default Dev Portal (served at `/docs/` by default)."
846 properties:
847 apiVersion:
848 description: 'APIVersion defines the versioned schema of this representation
849 of an object. Servers should convert recognized schemas to the latest
850 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
851 type: string
852 kind:
853 description: 'Kind is a string value representing the REST resource this
854 object represents. Servers may infer this from the endpoint the client
855 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
856 type: string
857 metadata:
858 type: object
859 spec:
860 description: DevPortalSpec defines the desired state of DevPortal
861 properties:
862 ambassador_id:
863 description: "AmbassadorID declares which Ambassador instances should
864 pay attention to this resource. If no value is provided, the default
865 is: \n \tambassador_id: \t- \"default\" \n TODO(lukeshu): In v3alpha2,
866 consider renaming all of the `ambassador_id` (singular) fields to
867 `ambassador_ids` (plural)."
868 items:
869 type: string
870 type: array
871 content:
872 description: Content specifies where the content shown in the DevPortal
873 come from
874 properties:
875 branch:
876 type: string
877 dir:
878 type: string
879 url:
880 type: string
881 type: object
882 default:
883 description: Default must be true when this is the default DevPortal
884 type: boolean
885 docs:
886 description: Docs is a static docs definition
887 items:
888 description: 'DevPortalDocsSpec is a static documentation definition:
889 instead of using a Selector for finding documentation for services,
890 users can provide a static list of <service>:<URL> tuples. These
891 services will be shown in the Dev Portal with the documentation
892 obtained from this URL.'
893 properties:
894 service:
895 description: Service is the service being documented
896 type: string
897 timeout_ms:
898 description: Timeout specifies the amount of time devportal
899 will wait for the downstream service to report an openapi
900 spec back
901 type: integer
902 url:
903 description: URL is the URL used for obtaining docs
904 type: string
905 type: object
906 type: array
907 naming_scheme:
908 description: Describes how to display "services" in the DevPortal.
909 Default namespace.name
910 enum:
911 - namespace.name
912 - name.prefix
913 type: string
914 preserve_servers:
915 description: Configures this DevPortal to use server definitions from
916 the openAPI doc instead of rewriting them based on the url used
917 for the connection.
918 type: boolean
919 search:
920 description: DevPortalSearchSpec allows configuration over search
921 functionality for the DevPortal
922 properties:
923 enabled:
924 type: boolean
925 type:
926 description: 'Type of search. "title-only" does a fuzzy search
927 over openapi and page titles "all-content" will fuzzy search
928 over all openapi and page content. "title-only" is the default.
929 warning: using all-content may incur a larger memory footprint'
930 enum:
931 - title-only
932 - all-content
933 type: string
934 type: object
935 selector:
936 description: Selector is used for choosing what is shown in the DevPortal
937 properties:
938 matchLabels:
939 additionalProperties:
940 type: string
941 description: MatchLabels specifies the list of labels that must
942 be present in Mappings for being present in this DevPortal.
943 type: object
944 matchNamespaces:
945 description: MatchNamespaces is a list of namespaces that will
946 be included in this DevPortal.
947 items:
948 type: string
949 type: array
950 type: object
951 type: object
952 type: object
953 served: true
954 storage: false
955---
956apiVersion: apiextensions.k8s.io/v1
957kind: CustomResourceDefinition
958metadata:
959 annotations:
960 controller-gen.kubebuilder.io/version: v0.6.2
961 name: hosts.getambassador.io
962spec:
963 conversion:
964 strategy: Webhook
965 webhook:
966 clientConfig:
967 service:
968 name: emissary-apiext
969 namespace: emissary-system
970 conversionReviewVersions:
971 - v1beta1
972 group: getambassador.io
973 names:
974 categories:
975 - ambassador-crds
976 kind: Host
977 listKind: HostList
978 plural: hosts
979 singular: host
980 preserveUnknownFields: false
981 scope: Namespaced
982 versions:
983 - additionalPrinterColumns:
984 - jsonPath: .spec.hostname
985 name: Hostname
986 type: string
987 - jsonPath: .status.state
988 name: State
989 type: string
990 - jsonPath: .status.phaseCompleted
991 name: Phase Completed
992 type: string
993 - jsonPath: .status.phasePending
994 name: Phase Pending
995 type: string
996 - jsonPath: .metadata.creationTimestamp
997 name: Age
998 type: date
999 name: v2
1000 schema:
1001 openAPIV3Schema:
1002 description: Host is the Schema for the hosts API
1003 properties:
1004 apiVersion:
1005 description: 'APIVersion defines the versioned schema of this representation
1006 of an object. Servers should convert recognized schemas to the latest
1007 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
1008 type: string
1009 kind:
1010 description: 'Kind is a string value representing the REST resource this
1011 object represents. Servers may infer this from the endpoint the client
1012 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
1013 type: string
1014 metadata:
1015 type: object
1016 spec:
1017 description: HostSpec defines the desired state of Host
1018 properties:
1019 acmeProvider:
1020 description: Specifies whether/who to talk ACME with to automatically
1021 manage the $tlsSecret.
1022 properties:
1023 authority:
1024 description: Specifies who to talk ACME with to get certs. Defaults
1025 to Let's Encrypt; if "none" (case-insensitive), do not try to
1026 do ACME for this Host.
1027 type: string
1028 email:
1029 type: string
1030 privateKeySecret:
1031 description: "Specifies the Kubernetes Secret to use to store
1032 the private key of the ACME account (essentially, where to store
1033 the auto-generated password for the auto-created ACME account).
1034 \ You should not normally need to set this--the default value
1035 is based on a combination of the ACME authority being registered
1036 wit and the email address associated with the account. \n Note
1037 that this is a native-Kubernetes-style core.v1.LocalObjectReference,
1038 not an Ambassador-style `{name}.{namespace}` string. Because
1039 we're opinionated, it does not support referencing a Secret
1040 in another namespace (because most native Kubernetes resources
1041 don't support that), but if we ever abandon that opinion and
1042 decide to support non-local references it, it would be by adding
1043 a `namespace:` field by changing it from a core.v1.LocalObjectReference
1044 to a core.v1.SecretReference, not by adopting the `{name}.{namespace}`
1045 notation."
1046 properties:
1047 name:
1048 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1049 TODO: Add other useful fields. apiVersion, kind, uid?'
1050 type: string
1051 type: object
1052 registration:
1053 description: This is normally set automatically
1054 type: string
1055 type: object
1056 ambassador_id:
1057 description: Common to all Ambassador objects (and optional).
1058 items:
1059 type: string
1060 oneOf:
1061 - type: string
1062 - type: array
1063 ambassadorId:
1064 description: A compatibility alias for "ambassador_id"; because Host
1065 used to be specified with protobuf, and jsonpb allowed either "ambassador_id"
1066 or "ambassadorId", and even though we didn't tell people about "ambassadorId"
1067 it's what the web policy console generated because of jsonpb. So
1068 Hosts with 'ambassadorId' exist in the wild.
1069 items:
1070 type: string
1071 oneOf:
1072 - type: string
1073 - type: array
1074 hostname:
1075 description: Hostname by which the Ambassador can be reached.
1076 type: string
1077 previewUrl:
1078 description: Configuration for the Preview URL feature of Service
1079 Preview. Defaults to preview URLs not enabled.
1080 properties:
1081 enabled:
1082 description: Is the Preview URL feature enabled?
1083 type: boolean
1084 type:
1085 description: What type of Preview URL is allowed?
1086 enum:
1087 - Path
1088 type: string
1089 type: object
1090 requestPolicy:
1091 description: Request policy definition.
1092 properties:
1093 insecure:
1094 properties:
1095 action:
1096 enum:
1097 - Redirect
1098 - Reject
1099 - Route
1100 type: string
1101 additionalPort:
1102 type: integer
1103 type: object
1104 type: object
1105 selector:
1106 description: Selector by which we can find further configuration.
1107 Defaults to hostname=$hostname
1108 properties:
1109 matchExpressions:
1110 description: matchExpressions is a list of label selector requirements.
1111 The requirements are ANDed.
1112 items:
1113 description: A label selector requirement is a selector that
1114 contains values, a key, and an operator that relates the key
1115 and values.
1116 properties:
1117 key:
1118 description: key is the label key that the selector applies
1119 to.
1120 type: string
1121 operator:
1122 description: operator represents a key's relationship to
1123 a set of values. Valid operators are In, NotIn, Exists
1124 and DoesNotExist.
1125 type: string
1126 values:
1127 description: values is an array of string values. If the
1128 operator is In or NotIn, the values array must be non-empty.
1129 If the operator is Exists or DoesNotExist, the values
1130 array must be empty. This array is replaced during a strategic
1131 merge patch.
1132 items:
1133 type: string
1134 type: array
1135 required:
1136 - key
1137 - operator
1138 type: object
1139 type: array
1140 matchLabels:
1141 additionalProperties:
1142 type: string
1143 description: matchLabels is a map of {key,value} pairs. A single
1144 {key,value} in the matchLabels map is equivalent to an element
1145 of matchExpressions, whose key field is "key", the operator
1146 is "In", and the values array contains only "value". The requirements
1147 are ANDed.
1148 type: object
1149 type: object
1150 tls:
1151 description: TLS configuration. It is not valid to specify both `tlsContext`
1152 and `tls`.
1153 properties:
1154 alpn_protocols:
1155 type: string
1156 ca_secret:
1157 type: string
1158 cacert_chain_file:
1159 type: string
1160 cert_chain_file:
1161 type: string
1162 cert_required:
1163 type: boolean
1164 cipher_suites:
1165 items:
1166 type: string
1167 type: array
1168 ecdh_curves:
1169 items:
1170 type: string
1171 type: array
1172 max_tls_version:
1173 type: string
1174 min_tls_version:
1175 type: string
1176 private_key_file:
1177 type: string
1178 redirect_cleartext_from:
1179 type: integer
1180 sni:
1181 type: string
1182 v3CRLSecret:
1183 type: string
1184 type: object
1185 tlsContext:
1186 description: "Name of the TLSContext the Host resource is linked with.
1187 It is not valid to specify both `tlsContext` and `tls`. \n Note
1188 that this is a native-Kubernetes-style core.v1.LocalObjectReference,
1189 not an Ambassador-style `{name}.{namespace}` string. Because we're
1190 opinionated, it does not support referencing a Secret in another
1191 namespace (because most native Kubernetes resources don't support
1192 that), but if we ever abandon that opinion and decide to support
1193 non-local references it, it would be by adding a `namespace:` field
1194 by changing it from a core.v1.LocalObjectReference to a core.v1.SecretReference,
1195 not by adopting the `{name}.{namespace}` notation."
1196 properties:
1197 name:
1198 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1199 TODO: Add other useful fields. apiVersion, kind, uid?'
1200 type: string
1201 type: object
1202 tlsSecret:
1203 description: Name of the Kubernetes secret into which to save generated
1204 certificates. If ACME is enabled (see $acmeProvider), then the
1205 default is $hostname; otherwise the default is "". If the value
1206 is "", then we do not do TLS for this Host.
1207 properties:
1208 name:
1209 description: Name is unique within a namespace to reference a
1210 secret resource.
1211 type: string
1212 namespace:
1213 description: Namespace defines the space within which the secret
1214 name must be unique.
1215 type: string
1216 type: object
1217 type: object
1218 status:
1219 description: HostStatus defines the observed state of Host
1220 properties:
1221 errorBackoff:
1222 type: string
1223 errorReason:
1224 description: errorReason, errorTimestamp, and errorBackoff are valid
1225 when state==Error.
1226 type: string
1227 errorTimestamp:
1228 format: date-time
1229 type: string
1230 phaseCompleted:
1231 description: phaseCompleted and phasePending are valid when state==Pending
1232 or state==Error.
1233 enum:
1234 - NA
1235 - DefaultsFilled
1236 - ACMEUserPrivateKeyCreated
1237 - ACMEUserRegistered
1238 - ACMECertificateChallenge
1239 type: string
1240 phasePending:
1241 description: phaseCompleted and phasePending are valid when state==Pending
1242 or state==Error.
1243 enum:
1244 - NA
1245 - DefaultsFilled
1246 - ACMEUserPrivateKeyCreated
1247 - ACMEUserRegistered
1248 - ACMECertificateChallenge
1249 type: string
1250 state:
1251 description: The first value listed in the Enum marker becomes the
1252 "zero" value, and it would be great if "Pending" could be the default
1253 value; but it's Important that the "zero" value be able to be shown
1254 as empty/omitted from display, and we really do want `kubectl get
1255 hosts` to say "Pending" in the "STATE" column, and not leave the
1256 column empty.
1257 enum:
1258 - Initial
1259 - Pending
1260 - Ready
1261 - Error
1262 type: string
1263 tlsCertificateSource:
1264 enum:
1265 - Unknown
1266 - None
1267 - Other
1268 - ACME
1269 type: string
1270 type: object
1271 type: object
1272 served: true
1273 storage: true
1274 subresources:
1275 status: {}
1276 - additionalPrinterColumns:
1277 - jsonPath: .spec.hostname
1278 name: Hostname
1279 type: string
1280 - jsonPath: .status.state
1281 name: State
1282 type: string
1283 - jsonPath: .status.phaseCompleted
1284 name: Phase Completed
1285 type: string
1286 - jsonPath: .status.phasePending
1287 name: Phase Pending
1288 type: string
1289 - jsonPath: .metadata.creationTimestamp
1290 name: Age
1291 type: date
1292 name: v3alpha1
1293 schema:
1294 openAPIV3Schema:
1295 description: Host is the Schema for the hosts API
1296 properties:
1297 apiVersion:
1298 description: 'APIVersion defines the versioned schema of this representation
1299 of an object. Servers should convert recognized schemas to the latest
1300 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
1301 type: string
1302 kind:
1303 description: 'Kind is a string value representing the REST resource this
1304 object represents. Servers may infer this from the endpoint the client
1305 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
1306 type: string
1307 metadata:
1308 type: object
1309 spec:
1310 description: HostSpec defines the desired state of Host
1311 properties:
1312 acmeProvider:
1313 description: Specifies whether/who to talk ACME with to automatically
1314 manage the $tlsSecret.
1315 properties:
1316 authority:
1317 description: Specifies who to talk ACME with to get certs. Defaults
1318 to Let's Encrypt; if "none" (case-insensitive), do not try to
1319 do ACME for this Host.
1320 type: string
1321 email:
1322 type: string
1323 privateKeySecret:
1324 description: "Specifies the Kubernetes Secret to use to store
1325 the private key of the ACME account (essentially, where to store
1326 the auto-generated password for the auto-created ACME account).
1327 \ You should not normally need to set this--the default value
1328 is based on a combination of the ACME authority being registered
1329 wit and the email address associated with the account. \n Note
1330 that this is a native-Kubernetes-style core.v1.LocalObjectReference,
1331 not an Ambassador-style `{name}.{namespace}` string. Because
1332 we're opinionated, it does not support referencing a Secret
1333 in another namespace (because most native Kubernetes resources
1334 don't support that), but if we ever abandon that opinion and
1335 decide to support non-local references it, it would be by adding
1336 a `namespace:` field by changing it from a core.v1.LocalObjectReference
1337 to a core.v1.SecretReference, not by adopting the `{name}.{namespace}`
1338 notation."
1339 properties:
1340 name:
1341 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1342 TODO: Add other useful fields. apiVersion, kind, uid?'
1343 type: string
1344 type: object
1345 registration:
1346 description: This is normally set automatically
1347 type: string
1348 type: object
1349 ambassador_id:
1350 description: Common to all Ambassador objects (and optional).
1351 items:
1352 type: string
1353 type: array
1354 hostname:
1355 description: Hostname by which the Ambassador can be reached.
1356 type: string
1357 mappingSelector:
1358 description: Selector for Mappings we'll associate with this Host.
1359 At the moment, Selector and MappingSelector are synonyms, but that
1360 will change soon.
1361 properties:
1362 matchExpressions:
1363 description: matchExpressions is a list of label selector requirements.
1364 The requirements are ANDed.
1365 items:
1366 description: A label selector requirement is a selector that
1367 contains values, a key, and an operator that relates the key
1368 and values.
1369 properties:
1370 key:
1371 description: key is the label key that the selector applies
1372 to.
1373 type: string
1374 operator:
1375 description: operator represents a key's relationship to
1376 a set of values. Valid operators are In, NotIn, Exists
1377 and DoesNotExist.
1378 type: string
1379 values:
1380 description: values is an array of string values. If the
1381 operator is In or NotIn, the values array must be non-empty.
1382 If the operator is Exists or DoesNotExist, the values
1383 array must be empty. This array is replaced during a strategic
1384 merge patch.
1385 items:
1386 type: string
1387 type: array
1388 required:
1389 - key
1390 - operator
1391 type: object
1392 type: array
1393 matchLabels:
1394 additionalProperties:
1395 type: string
1396 description: matchLabels is a map of {key,value} pairs. A single
1397 {key,value} in the matchLabels map is equivalent to an element
1398 of matchExpressions, whose key field is "key", the operator
1399 is "In", and the values array contains only "value". The requirements
1400 are ANDed.
1401 type: object
1402 type: object
1403 previewUrl:
1404 description: Configuration for the Preview URL feature of Service
1405 Preview. Defaults to preview URLs not enabled.
1406 properties:
1407 enabled:
1408 description: Is the Preview URL feature enabled?
1409 type: boolean
1410 type:
1411 description: What type of Preview URL is allowed?
1412 enum:
1413 - Path
1414 type: string
1415 type: object
1416 requestPolicy:
1417 description: Request policy definition.
1418 properties:
1419 insecure:
1420 properties:
1421 action:
1422 enum:
1423 - Redirect
1424 - Reject
1425 - Route
1426 type: string
1427 additionalPort:
1428 type: integer
1429 type: object
1430 type: object
1431 selector:
1432 description: "DEPRECATED: Selector by which we can find further configuration.
1433 Use MappingSelector instead. \n TODO(lukeshu): In v3alpha2, figure
1434 out how to get rid of HostSpec.DeprecatedSelector."
1435 properties:
1436 matchExpressions:
1437 description: matchExpressions is a list of label selector requirements.
1438 The requirements are ANDed.
1439 items:
1440 description: A label selector requirement is a selector that
1441 contains values, a key, and an operator that relates the key
1442 and values.
1443 properties:
1444 key:
1445 description: key is the label key that the selector applies
1446 to.
1447 type: string
1448 operator:
1449 description: operator represents a key's relationship to
1450 a set of values. Valid operators are In, NotIn, Exists
1451 and DoesNotExist.
1452 type: string
1453 values:
1454 description: values is an array of string values. If the
1455 operator is In or NotIn, the values array must be non-empty.
1456 If the operator is Exists or DoesNotExist, the values
1457 array must be empty. This array is replaced during a strategic
1458 merge patch.
1459 items:
1460 type: string
1461 type: array
1462 required:
1463 - key
1464 - operator
1465 type: object
1466 type: array
1467 matchLabels:
1468 additionalProperties:
1469 type: string
1470 description: matchLabels is a map of {key,value} pairs. A single
1471 {key,value} in the matchLabels map is equivalent to an element
1472 of matchExpressions, whose key field is "key", the operator
1473 is "In", and the values array contains only "value". The requirements
1474 are ANDed.
1475 type: object
1476 type: object
1477 tls:
1478 description: TLS configuration. It is not valid to specify both `tlsContext`
1479 and `tls`.
1480 properties:
1481 alpn_protocols:
1482 type: string
1483 ca_secret:
1484 type: string
1485 cacert_chain_file:
1486 type: string
1487 cert_chain_file:
1488 type: string
1489 cert_required:
1490 type: boolean
1491 cipher_suites:
1492 items:
1493 type: string
1494 type: array
1495 crl_secret:
1496 type: string
1497 ecdh_curves:
1498 items:
1499 type: string
1500 type: array
1501 max_tls_version:
1502 type: string
1503 min_tls_version:
1504 type: string
1505 private_key_file:
1506 type: string
1507 redirect_cleartext_from:
1508 type: integer
1509 sni:
1510 type: string
1511 type: object
1512 tlsContext:
1513 description: "Name of the TLSContext the Host resource is linked with.
1514 It is not valid to specify both `tlsContext` and `tls`. \n Note
1515 that this is a native-Kubernetes-style core.v1.LocalObjectReference,
1516 not an Ambassador-style `{name}.{namespace}` string. Because we're
1517 opinionated, it does not support referencing a Secret in another
1518 namespace (because most native Kubernetes resources don't support
1519 that), but if we ever abandon that opinion and decide to support
1520 non-local references it, it would be by adding a `namespace:` field
1521 by changing it from a core.v1.LocalObjectReference to a core.v1.SecretReference,
1522 not by adopting the `{name}.{namespace}` notation."
1523 properties:
1524 name:
1525 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
1526 TODO: Add other useful fields. apiVersion, kind, uid?'
1527 type: string
1528 type: object
1529 tlsSecret:
1530 description: Name of the Kubernetes secret into which to save generated
1531 certificates. If ACME is enabled (see $acmeProvider), then the
1532 default is $hostname; otherwise the default is "". If the value
1533 is "", then we do not do TLS for this Host.
1534 properties:
1535 name:
1536 description: Name is unique within a namespace to reference a
1537 secret resource.
1538 type: string
1539 namespace:
1540 description: Namespace defines the space within which the secret
1541 name must be unique.
1542 type: string
1543 type: object
1544 type: object
1545 status:
1546 description: HostStatus defines the observed state of Host
1547 properties:
1548 errorBackoff:
1549 type: string
1550 errorReason:
1551 description: errorReason, errorTimestamp, and errorBackoff are valid
1552 when state==Error.
1553 type: string
1554 errorTimestamp:
1555 format: date-time
1556 type: string
1557 phaseCompleted:
1558 description: phaseCompleted and phasePending are valid when state==Pending
1559 or state==Error.
1560 enum:
1561 - NA
1562 - DefaultsFilled
1563 - ACMEUserPrivateKeyCreated
1564 - ACMEUserRegistered
1565 - ACMECertificateChallenge
1566 type: string
1567 phasePending:
1568 description: phaseCompleted and phasePending are valid when state==Pending
1569 or state==Error.
1570 enum:
1571 - NA
1572 - DefaultsFilled
1573 - ACMEUserPrivateKeyCreated
1574 - ACMEUserRegistered
1575 - ACMECertificateChallenge
1576 type: string
1577 state:
1578 description: The first value listed in the Enum marker becomes the
1579 "zero" value, and it would be great if "Pending" could be the default
1580 value; but it's Important that the "zero" value be able to be shown
1581 as empty/omitted from display, and we really do want `kubectl get
1582 hosts` to say "Pending" in the "STATE" column, and not leave the
1583 column empty.
1584 enum:
1585 - Initial
1586 - Pending
1587 - Ready
1588 - Error
1589 type: string
1590 tlsCertificateSource:
1591 enum:
1592 - Unknown
1593 - None
1594 - Other
1595 - ACME
1596 type: string
1597 type: object
1598 type: object
1599 served: true
1600 storage: false
1601 subresources:
1602 status: {}
1603---
1604apiVersion: apiextensions.k8s.io/v1
1605kind: CustomResourceDefinition
1606metadata:
1607 annotations:
1608 controller-gen.kubebuilder.io/version: v0.6.2
1609 name: kubernetesendpointresolvers.getambassador.io
1610spec:
1611 conversion:
1612 strategy: Webhook
1613 webhook:
1614 clientConfig:
1615 service:
1616 name: emissary-apiext
1617 namespace: emissary-system
1618 conversionReviewVersions:
1619 - v1beta1
1620 group: getambassador.io
1621 names:
1622 categories:
1623 - ambassador-crds
1624 kind: KubernetesEndpointResolver
1625 listKind: KubernetesEndpointResolverList
1626 plural: kubernetesendpointresolvers
1627 singular: kubernetesendpointresolver
1628 preserveUnknownFields: false
1629 scope: Namespaced
1630 versions:
1631 - name: v1
1632 schema:
1633 openAPIV3Schema:
1634 description: KubernetesEndpointResolver is the Schema for the kubernetesendpointresolver
1635 API
1636 properties:
1637 apiVersion:
1638 description: 'APIVersion defines the versioned schema of this representation
1639 of an object. Servers should convert recognized schemas to the latest
1640 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
1641 type: string
1642 kind:
1643 description: 'Kind is a string value representing the REST resource this
1644 object represents. Servers may infer this from the endpoint the client
1645 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
1646 type: string
1647 metadata:
1648 type: object
1649 spec:
1650 description: KubernetesEndpointResolver tells Ambassador to use Kubernetes
1651 Endpoints resources to resolve services. It actually has no spec other
1652 than the AmbassadorID.
1653 properties:
1654 ambassador_id:
1655 description: "AmbassadorID declares which Ambassador instances should
1656 pay attention to this resource. May either be a string or a list
1657 of strings. If no value is provided, the default is: \n \tambassador_id:
1658 \t- \"default\""
1659 items:
1660 type: string
1661 oneOf:
1662 - type: string
1663 - type: array
1664 type: object
1665 type: object
1666 served: true
1667 storage: false
1668 - name: v2
1669 schema:
1670 openAPIV3Schema:
1671 description: KubernetesEndpointResolver is the Schema for the kubernetesendpointresolver
1672 API
1673 properties:
1674 apiVersion:
1675 description: 'APIVersion defines the versioned schema of this representation
1676 of an object. Servers should convert recognized schemas to the latest
1677 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
1678 type: string
1679 kind:
1680 description: 'Kind is a string value representing the REST resource this
1681 object represents. Servers may infer this from the endpoint the client
1682 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
1683 type: string
1684 metadata:
1685 type: object
1686 spec:
1687 description: KubernetesEndpointResolver tells Ambassador to use Kubernetes
1688 Endpoints resources to resolve services. It actually has no spec other
1689 than the AmbassadorID.
1690 properties:
1691 ambassador_id:
1692 description: "AmbassadorID declares which Ambassador instances should
1693 pay attention to this resource. May either be a string or a list
1694 of strings. If no value is provided, the default is: \n \tambassador_id:
1695 \t- \"default\""
1696 items:
1697 type: string
1698 oneOf:
1699 - type: string
1700 - type: array
1701 type: object
1702 type: object
1703 served: true
1704 storage: true
1705 - name: v3alpha1
1706 schema:
1707 openAPIV3Schema:
1708 description: KubernetesEndpointResolver is the Schema for the kubernetesendpointresolver
1709 API
1710 properties:
1711 apiVersion:
1712 description: 'APIVersion defines the versioned schema of this representation
1713 of an object. Servers should convert recognized schemas to the latest
1714 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
1715 type: string
1716 kind:
1717 description: 'Kind is a string value representing the REST resource this
1718 object represents. Servers may infer this from the endpoint the client
1719 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
1720 type: string
1721 metadata:
1722 type: object
1723 spec:
1724 description: KubernetesEndpointResolver tells Ambassador to use Kubernetes
1725 Endpoints resources to resolve services. It actually has no spec other
1726 than the AmbassadorID.
1727 properties:
1728 ambassador_id:
1729 description: "AmbassadorID declares which Ambassador instances should
1730 pay attention to this resource. If no value is provided, the default
1731 is: \n \tambassador_id: \t- \"default\" \n TODO(lukeshu): In v3alpha2,
1732 consider renaming all of the `ambassador_id` (singular) fields to
1733 `ambassador_ids` (plural)."
1734 items:
1735 type: string
1736 type: array
1737 type: object
1738 type: object
1739 served: true
1740 storage: false
1741---
1742apiVersion: apiextensions.k8s.io/v1
1743kind: CustomResourceDefinition
1744metadata:
1745 annotations:
1746 controller-gen.kubebuilder.io/version: v0.6.2
1747 name: kubernetesserviceresolvers.getambassador.io
1748spec:
1749 conversion:
1750 strategy: Webhook
1751 webhook:
1752 clientConfig:
1753 service:
1754 name: emissary-apiext
1755 namespace: emissary-system
1756 conversionReviewVersions:
1757 - v1beta1
1758 group: getambassador.io
1759 names:
1760 categories:
1761 - ambassador-crds
1762 kind: KubernetesServiceResolver
1763 listKind: KubernetesServiceResolverList
1764 plural: kubernetesserviceresolvers
1765 singular: kubernetesserviceresolver
1766 preserveUnknownFields: false
1767 scope: Namespaced
1768 versions:
1769 - name: v1
1770 schema:
1771 openAPIV3Schema:
1772 description: KubernetesServiceResolver is the Schema for the kubernetesserviceresolver
1773 API
1774 properties:
1775 apiVersion:
1776 description: 'APIVersion defines the versioned schema of this representation
1777 of an object. Servers should convert recognized schemas to the latest
1778 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
1779 type: string
1780 kind:
1781 description: 'Kind is a string value representing the REST resource this
1782 object represents. Servers may infer this from the endpoint the client
1783 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
1784 type: string
1785 metadata:
1786 type: object
1787 spec:
1788 description: KubernetesServiceResolver tells Ambassador to use Kubernetes
1789 Service resources to resolve services. It actually has no spec other
1790 than the AmbassadorID.
1791 properties:
1792 ambassador_id:
1793 description: "AmbassadorID declares which Ambassador instances should
1794 pay attention to this resource. May either be a string or a list
1795 of strings. If no value is provided, the default is: \n \tambassador_id:
1796 \t- \"default\""
1797 items:
1798 type: string
1799 oneOf:
1800 - type: string
1801 - type: array
1802 type: object
1803 type: object
1804 served: true
1805 storage: false
1806 - name: v2
1807 schema:
1808 openAPIV3Schema:
1809 description: KubernetesServiceResolver is the Schema for the kubernetesserviceresolver
1810 API
1811 properties:
1812 apiVersion:
1813 description: 'APIVersion defines the versioned schema of this representation
1814 of an object. Servers should convert recognized schemas to the latest
1815 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
1816 type: string
1817 kind:
1818 description: 'Kind is a string value representing the REST resource this
1819 object represents. Servers may infer this from the endpoint the client
1820 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
1821 type: string
1822 metadata:
1823 type: object
1824 spec:
1825 description: KubernetesServiceResolver tells Ambassador to use Kubernetes
1826 Service resources to resolve services. It actually has no spec other
1827 than the AmbassadorID.
1828 properties:
1829 ambassador_id:
1830 description: "AmbassadorID declares which Ambassador instances should
1831 pay attention to this resource. May either be a string or a list
1832 of strings. If no value is provided, the default is: \n \tambassador_id:
1833 \t- \"default\""
1834 items:
1835 type: string
1836 oneOf:
1837 - type: string
1838 - type: array
1839 type: object
1840 type: object
1841 served: true
1842 storage: true
1843 - name: v3alpha1
1844 schema:
1845 openAPIV3Schema:
1846 description: KubernetesServiceResolver is the Schema for the kubernetesserviceresolver
1847 API
1848 properties:
1849 apiVersion:
1850 description: 'APIVersion defines the versioned schema of this representation
1851 of an object. Servers should convert recognized schemas to the latest
1852 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
1853 type: string
1854 kind:
1855 description: 'Kind is a string value representing the REST resource this
1856 object represents. Servers may infer this from the endpoint the client
1857 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
1858 type: string
1859 metadata:
1860 type: object
1861 spec:
1862 description: KubernetesServiceResolver tells Ambassador to use Kubernetes
1863 Service resources to resolve services. It actually has no spec other
1864 than the AmbassadorID.
1865 properties:
1866 ambassador_id:
1867 description: "AmbassadorID declares which Ambassador instances should
1868 pay attention to this resource. If no value is provided, the default
1869 is: \n \tambassador_id: \t- \"default\" \n TODO(lukeshu): In v3alpha2,
1870 consider renaming all of the `ambassador_id` (singular) fields to
1871 `ambassador_ids` (plural)."
1872 items:
1873 type: string
1874 type: array
1875 type: object
1876 type: object
1877 served: true
1878 storage: false
1879---
1880apiVersion: apiextensions.k8s.io/v1
1881kind: CustomResourceDefinition
1882metadata:
1883 annotations:
1884 controller-gen.kubebuilder.io/version: v0.6.2
1885 name: listeners.getambassador.io
1886spec:
1887 group: getambassador.io
1888 names:
1889 categories:
1890 - ambassador-crds
1891 kind: Listener
1892 listKind: ListenerList
1893 plural: listeners
1894 singular: listener
1895 preserveUnknownFields: false
1896 scope: Namespaced
1897 versions:
1898 - additionalPrinterColumns:
1899 - jsonPath: .spec.port
1900 name: Port
1901 type: string
1902 - jsonPath: .spec.protocol
1903 name: Protocol
1904 type: string
1905 - jsonPath: .spec.protocolStack
1906 name: Stack
1907 type: string
1908 - jsonPath: .spec.statsPrefix
1909 name: StatsPrefix
1910 type: string
1911 - jsonPath: .spec.securityModel
1912 name: Security
1913 type: string
1914 - jsonPath: .spec.l7Depth
1915 name: L7Depth
1916 type: string
1917 name: v3alpha1
1918 schema:
1919 openAPIV3Schema:
1920 description: Listener is the Schema for the hosts API
1921 properties:
1922 apiVersion:
1923 description: 'APIVersion defines the versioned schema of this representation
1924 of an object. Servers should convert recognized schemas to the latest
1925 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
1926 type: string
1927 kind:
1928 description: 'Kind is a string value representing the REST resource this
1929 object represents. Servers may infer this from the endpoint the client
1930 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
1931 type: string
1932 metadata:
1933 type: object
1934 spec:
1935 description: ListenerSpec defines the desired state of this Port
1936 properties:
1937 ambassador_id:
1938 description: "AmbassadorID declares which Ambassador instances should
1939 pay attention to this resource. If no value is provided, the default
1940 is: \n \tambassador_id: \t- \"default\" \n TODO(lukeshu): In v3alpha2,
1941 consider renaming all of the `ambassador_id` (singular) fields to
1942 `ambassador_ids` (plural)."
1943 items:
1944 type: string
1945 type: array
1946 hostBinding:
1947 description: HostBinding allows restricting which Hosts will be used
1948 for this Listener.
1949 properties:
1950 namespace:
1951 description: NamespaceBindingType defines we we specify which
1952 namespaces to look for Hosts in.
1953 properties:
1954 from:
1955 description: NamespaceFromType defines how we evaluate a NamespaceBindingType.
1956 enum:
1957 - SELF
1958 - ALL
1959 - SELECTOR
1960 type: string
1961 type: object
1962 selector:
1963 description: A label selector is a label query over a set of resources.
1964 The result of matchLabels and matchExpressions are ANDed. An
1965 empty label selector matches all objects. A null label selector
1966 matches no objects.
1967 properties:
1968 matchExpressions:
1969 description: matchExpressions is a list of label selector
1970 requirements. The requirements are ANDed.
1971 items:
1972 description: A label selector requirement is a selector
1973 that contains values, a key, and an operator that relates
1974 the key and values.
1975 properties:
1976 key:
1977 description: key is the label key that the selector
1978 applies to.
1979 type: string
1980 operator:
1981 description: operator represents a key's relationship
1982 to a set of values. Valid operators are In, NotIn,
1983 Exists and DoesNotExist.
1984 type: string
1985 values:
1986 description: values is an array of string values. If
1987 the operator is In or NotIn, the values array must
1988 be non-empty. If the operator is Exists or DoesNotExist,
1989 the values array must be empty. This array is replaced
1990 during a strategic merge patch.
1991 items:
1992 type: string
1993 type: array
1994 required:
1995 - key
1996 - operator
1997 type: object
1998 type: array
1999 matchLabels:
2000 additionalProperties:
2001 type: string
2002 description: matchLabels is a map of {key,value} pairs. A
2003 single {key,value} in the matchLabels map is equivalent
2004 to an element of matchExpressions, whose key field is "key",
2005 the operator is "In", and the values array contains only
2006 "value". The requirements are ANDed.
2007 type: object
2008 type: object
2009 type: object
2010 l7Depth:
2011 description: L7Depth specifies how many layer 7 load balancers are
2012 between us and the edge of the network.
2013 format: int32
2014 type: integer
2015 port:
2016 description: Port is the network port. Only one Listener can use a
2017 given port.
2018 format: int32
2019 maximum: 65535
2020 minimum: 1
2021 type: integer
2022 protocol:
2023 description: Protocol is a shorthand for certain predefined stacks.
2024 Exactly one of Protocol or ProtocolStack must be supplied.
2025 enum:
2026 - HTTP
2027 - HTTPS
2028 - HTTPPROXY
2029 - HTTPSPROXY
2030 - TCP
2031 - TLS
2032 - UDP
2033 type: string
2034 protocolStack:
2035 description: ProtocolStack explicitly specifies the protocol stack
2036 to set up. Exactly one of Protocol or ProtocolStack must be supplied.
2037 items:
2038 description: ProtocolStackElement defines specific layers that may
2039 be combined in a protocol stack for processing connections to
2040 a port.
2041 enum:
2042 - HTTP
2043 - PROXY
2044 - TLS
2045 - TCP
2046 - UDP
2047 type: string
2048 type: array
2049 securityModel:
2050 description: SecurityModel specifies how to determine whether connections
2051 to this port are secure or insecure.
2052 enum:
2053 - XFP
2054 - SECURE
2055 - INSECURE
2056 type: string
2057 statsPrefix:
2058 description: 'StatsPrefix specifies the prefix for statistics sent
2059 by Envoy about this Listener. The default depends on the protocol:
2060 "ingress-http", "ingress-https", "ingress-tls-$port", or "ingress-$port".'
2061 type: string
2062 required:
2063 - hostBinding
2064 - port
2065 - securityModel
2066 type: object
2067 type: object
2068 served: true
2069 storage: true
2070 subresources: {}
2071---
2072apiVersion: apiextensions.k8s.io/v1
2073kind: CustomResourceDefinition
2074metadata:
2075 annotations:
2076 controller-gen.kubebuilder.io/version: v0.6.2
2077 name: logservices.getambassador.io
2078spec:
2079 conversion:
2080 strategy: Webhook
2081 webhook:
2082 clientConfig:
2083 service:
2084 name: emissary-apiext
2085 namespace: emissary-system
2086 conversionReviewVersions:
2087 - v1beta1
2088 group: getambassador.io
2089 names:
2090 categories:
2091 - ambassador-crds
2092 kind: LogService
2093 listKind: LogServiceList
2094 plural: logservices
2095 singular: logservice
2096 preserveUnknownFields: false
2097 scope: Namespaced
2098 versions:
2099 - name: v1
2100 schema:
2101 openAPIV3Schema:
2102 description: LogService is the Schema for the logservices API
2103 properties:
2104 apiVersion:
2105 description: 'APIVersion defines the versioned schema of this representation
2106 of an object. Servers should convert recognized schemas to the latest
2107 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
2108 type: string
2109 kind:
2110 description: 'Kind is a string value representing the REST resource this
2111 object represents. Servers may infer this from the endpoint the client
2112 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
2113 type: string
2114 metadata:
2115 type: object
2116 spec:
2117 description: LogServiceSpec defines the desired state of LogService
2118 properties:
2119 ambassador_id:
2120 description: "AmbassadorID declares which Ambassador instances should
2121 pay attention to this resource. May either be a string or a list
2122 of strings. If no value is provided, the default is: \n \tambassador_id:
2123 \t- \"default\""
2124 items:
2125 type: string
2126 oneOf:
2127 - type: string
2128 - type: array
2129 driver:
2130 enum:
2131 - tcp
2132 - http
2133 type: string
2134 driver_config:
2135 properties:
2136 additional_log_headers:
2137 items:
2138 properties:
2139 during_request:
2140 type: boolean
2141 during_response:
2142 type: boolean
2143 during_trailer:
2144 type: boolean
2145 header_name:
2146 type: string
2147 type: object
2148 type: array
2149 type: object
2150 flush_interval_byte_size:
2151 type: integer
2152 flush_interval_time:
2153 type: integer
2154 grpc:
2155 type: boolean
2156 service:
2157 type: string
2158 v3ProtocolVersion:
2159 enum:
2160 - v2
2161 - v3
2162 type: string
2163 v3StatsName:
2164 type: string
2165 type: object
2166 type: object
2167 served: true
2168 storage: false
2169 - name: v2
2170 schema:
2171 openAPIV3Schema:
2172 description: LogService is the Schema for the logservices API
2173 properties:
2174 apiVersion:
2175 description: 'APIVersion defines the versioned schema of this representation
2176 of an object. Servers should convert recognized schemas to the latest
2177 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
2178 type: string
2179 kind:
2180 description: 'Kind is a string value representing the REST resource this
2181 object represents. Servers may infer this from the endpoint the client
2182 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
2183 type: string
2184 metadata:
2185 type: object
2186 spec:
2187 description: LogServiceSpec defines the desired state of LogService
2188 properties:
2189 ambassador_id:
2190 description: "AmbassadorID declares which Ambassador instances should
2191 pay attention to this resource. May either be a string or a list
2192 of strings. If no value is provided, the default is: \n \tambassador_id:
2193 \t- \"default\""
2194 items:
2195 type: string
2196 oneOf:
2197 - type: string
2198 - type: array
2199 driver:
2200 enum:
2201 - tcp
2202 - http
2203 type: string
2204 driver_config:
2205 properties:
2206 additional_log_headers:
2207 items:
2208 properties:
2209 during_request:
2210 type: boolean
2211 during_response:
2212 type: boolean
2213 during_trailer:
2214 type: boolean
2215 header_name:
2216 type: string
2217 type: object
2218 type: array
2219 type: object
2220 flush_interval_byte_size:
2221 type: integer
2222 flush_interval_time:
2223 type: integer
2224 grpc:
2225 type: boolean
2226 service:
2227 type: string
2228 v3ProtocolVersion:
2229 enum:
2230 - v2
2231 - v3
2232 type: string
2233 v3StatsName:
2234 type: string
2235 type: object
2236 type: object
2237 served: true
2238 storage: true
2239 - name: v3alpha1
2240 schema:
2241 openAPIV3Schema:
2242 description: LogService is the Schema for the logservices API
2243 properties:
2244 apiVersion:
2245 description: 'APIVersion defines the versioned schema of this representation
2246 of an object. Servers should convert recognized schemas to the latest
2247 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
2248 type: string
2249 kind:
2250 description: 'Kind is a string value representing the REST resource this
2251 object represents. Servers may infer this from the endpoint the client
2252 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
2253 type: string
2254 metadata:
2255 type: object
2256 spec:
2257 description: LogServiceSpec defines the desired state of LogService
2258 properties:
2259 ambassador_id:
2260 description: "AmbassadorID declares which Ambassador instances should
2261 pay attention to this resource. If no value is provided, the default
2262 is: \n \tambassador_id: \t- \"default\" \n TODO(lukeshu): In v3alpha2,
2263 consider renaming all of the `ambassador_id` (singular) fields to
2264 `ambassador_ids` (plural)."
2265 items:
2266 type: string
2267 type: array
2268 driver:
2269 enum:
2270 - tcp
2271 - http
2272 type: string
2273 driver_config:
2274 properties:
2275 additional_log_headers:
2276 items:
2277 properties:
2278 during_request:
2279 type: boolean
2280 during_response:
2281 type: boolean
2282 during_trailer:
2283 type: boolean
2284 header_name:
2285 type: string
2286 type: object
2287 type: array
2288 type: object
2289 flush_interval_byte_size:
2290 type: integer
2291 flush_interval_time:
2292 description: 'TODO(lukeshu): In v3alpha2, change all of the `{foo}s`/`SecondDuration`
2293 fields to `{foo}`/`metav1.Duration`.'
2294 type: integer
2295 grpc:
2296 description: 'TODO(lukeshu): In v3alpha2, drop this LogService.spec.grpc. Due
2297 to sloppy implementation it is required to be present, and required
2298 to be ''true''. It is silly to have a required field with only
2299 one valid value, we should just remove the thing.'
2300 type: boolean
2301 protocol_version:
2302 enum:
2303 - v2
2304 - v3
2305 type: string
2306 service:
2307 type: string
2308 stats_name:
2309 type: string
2310 type: object
2311 type: object
2312 served: true
2313 storage: false
2314---
2315apiVersion: apiextensions.k8s.io/v1
2316kind: CustomResourceDefinition
2317metadata:
2318 annotations:
2319 controller-gen.kubebuilder.io/version: v0.6.2
2320 name: mappings.getambassador.io
2321spec:
2322 conversion:
2323 strategy: Webhook
2324 webhook:
2325 clientConfig:
2326 service:
2327 name: emissary-apiext
2328 namespace: emissary-system
2329 conversionReviewVersions:
2330 - v1beta1
2331 group: getambassador.io
2332 names:
2333 categories:
2334 - ambassador-crds
2335 kind: Mapping
2336 listKind: MappingList
2337 plural: mappings
2338 singular: mapping
2339 preserveUnknownFields: false
2340 scope: Namespaced
2341 versions:
2342 - additionalPrinterColumns:
2343 - jsonPath: .spec.host
2344 name: Source Host
2345 type: string
2346 - jsonPath: .spec.prefix
2347 name: Source Prefix
2348 type: string
2349 - jsonPath: .spec.service
2350 name: Dest Service
2351 type: string
2352 - jsonPath: .status.state
2353 name: State
2354 type: string
2355 - jsonPath: .status.reason
2356 name: Reason
2357 type: string
2358 name: v1
2359 schema:
2360 openAPIV3Schema:
2361 description: Mapping is the Schema for the mappings API
2362 properties:
2363 apiVersion:
2364 description: 'APIVersion defines the versioned schema of this representation
2365 of an object. Servers should convert recognized schemas to the latest
2366 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
2367 type: string
2368 kind:
2369 description: 'Kind is a string value representing the REST resource this
2370 object represents. Servers may infer this from the endpoint the client
2371 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
2372 type: string
2373 metadata:
2374 type: object
2375 spec:
2376 description: MappingSpec defines the desired state of Mapping
2377 properties:
2378 add_linkerd_headers:
2379 type: boolean
2380 add_request_headers:
2381 additionalProperties:
2382 oneOf:
2383 - type: string
2384 - type: object
2385 type: object
2386 add_response_headers:
2387 additionalProperties:
2388 oneOf:
2389 - type: string
2390 - type: object
2391 type: object
2392 allow_upgrade:
2393 description: "A case-insensitive list of the non-HTTP protocols to
2394 allow \"upgrading\" to from HTTP via the \"Connection: upgrade\"
2395 mechanism[1]. After the upgrade, Ambassador does not interpret
2396 the traffic, and behaves similarly to how it does for TCPMappings.
2397 \n [1]: https://tools.ietf.org/html/rfc7230#section-6.7 \n For example,
2398 if your upstream service supports WebSockets, you would write \n
2399 \ allow_upgrade: - websocket \n Or if your upstream service
2400 supports upgrading from HTTP to SPDY (as the Kubernetes apiserver
2401 does for `kubectl exec` functionality), you would write \n allow_upgrade:
2402 \ - spdy/3.1"
2403 items:
2404 type: string
2405 type: array
2406 ambassador_id:
2407 description: "AmbassadorID declares which Ambassador instances should
2408 pay attention to this resource. May either be a string or a list
2409 of strings. If no value is provided, the default is: \n \tambassador_id:
2410 \t- \"default\""
2411 items:
2412 type: string
2413 oneOf:
2414 - type: string
2415 - type: array
2416 auth_context_extensions:
2417 additionalProperties:
2418 type: string
2419 type: object
2420 auto_host_rewrite:
2421 type: boolean
2422 bypass_auth:
2423 type: boolean
2424 bypass_error_response_overrides:
2425 description: If true, bypasses any `error_response_overrides` set
2426 on the Ambassador module.
2427 type: boolean
2428 case_sensitive:
2429 type: boolean
2430 circuit_breakers:
2431 items:
2432 properties:
2433 max_connections:
2434 type: integer
2435 max_pending_requests:
2436 type: integer
2437 max_requests:
2438 type: integer
2439 max_retries:
2440 type: integer
2441 priority:
2442 enum:
2443 - default
2444 - high
2445 type: string
2446 type: object
2447 type: array
2448 cluster_idle_timeout_ms:
2449 type: integer
2450 cluster_max_connection_lifetime_ms:
2451 type: integer
2452 cluster_tag:
2453 type: string
2454 connect_timeout_ms:
2455 type: integer
2456 cors:
2457 properties:
2458 credentials:
2459 type: boolean
2460 exposed_headers:
2461 description: StringOrStringList is just what it says on the tin,
2462 but note that it will always marshal as a list of strings right
2463 now.
2464 items:
2465 type: string
2466 oneOf:
2467 - type: string
2468 - type: array
2469 headers:
2470 description: StringOrStringList is just what it says on the tin,
2471 but note that it will always marshal as a list of strings right
2472 now.
2473 items:
2474 type: string
2475 oneOf:
2476 - type: string
2477 - type: array
2478 max_age:
2479 type: string
2480 methods:
2481 description: StringOrStringList is just what it says on the tin,
2482 but note that it will always marshal as a list of strings right
2483 now.
2484 items:
2485 type: string
2486 oneOf:
2487 - type: string
2488 - type: array
2489 origins:
2490 description: OriginList is a list of origin strings, either as
2491 a `[]string` or as a comma-separated `string`.
2492 oneOf:
2493 - type: string
2494 - type: array
2495 type: object
2496 dns_type:
2497 type: string
2498 docs:
2499 description: DocsInfo provides some extra information about the docs
2500 for the Mapping (used by the Dev Portal)
2501 properties:
2502 display_name:
2503 type: string
2504 ignored:
2505 type: boolean
2506 path:
2507 type: string
2508 timeout_ms:
2509 type: integer
2510 url:
2511 type: string
2512 type: object
2513 enable_ipv4:
2514 type: boolean
2515 enable_ipv6:
2516 type: boolean
2517 envoy_override:
2518 description: UntypedDict is relatively opaque as a Go type, but it
2519 preserves its contents in a roundtrippable way.
2520 type: object
2521 x-kubernetes-preserve-unknown-fields: true
2522 error_response_overrides:
2523 description: Error response overrides for this Mapping. Replaces all
2524 of the `error_response_overrides` set on the Ambassador module,
2525 if any.
2526 items:
2527 description: A response rewrite for an HTTP error response
2528 properties:
2529 body:
2530 description: The new response body
2531 properties:
2532 content_type:
2533 description: The content type to set on the error response
2534 body when using text_format or text_format_source. Defaults
2535 to 'text/plain'.
2536 type: string
2537 json_format:
2538 additionalProperties:
2539 type: string
2540 description: 'A JSON response with content-type: application/json.
2541 The values can contain format text like in text_format.'
2542 type: object
2543 text_format:
2544 description: A format string representing a text response
2545 body. Content-Type can be set using the `content_type`
2546 field below.
2547 type: string
2548 text_format_source:
2549 description: A format string sourced from a file on the
2550 Ambassador container. Useful for larger response bodies
2551 that should not be placed inline in configuration.
2552 properties:
2553 filename:
2554 description: The name of a file on the Ambassador pod
2555 that contains a format text string.
2556 type: string
2557 type: object
2558 type: object
2559 on_status_code:
2560 description: The status code to match on -- not a pointer because
2561 it's required.
2562 maximum: 599
2563 minimum: 400
2564 type: integer
2565 required:
2566 - body
2567 - on_status_code
2568 type: object
2569 minItems: 1
2570 type: array
2571 grpc:
2572 type: boolean
2573 headers:
2574 additionalProperties:
2575 description: BoolOrString is a type that can hold a Boolean or a
2576 string.
2577 oneOf:
2578 - type: string
2579 - type: boolean
2580 type: object
2581 host:
2582 type: string
2583 host_redirect:
2584 type: boolean
2585 host_regex:
2586 type: boolean
2587 host_rewrite:
2588 type: string
2589 idle_timeout_ms:
2590 type: integer
2591 keepalive:
2592 properties:
2593 idle_time:
2594 type: integer
2595 interval:
2596 type: integer
2597 probes:
2598 type: integer
2599 type: object
2600 labels:
2601 additionalProperties:
2602 description: A MappingLabelGroupsArray is an array of MappingLabelGroups.
2603 I know, complex.
2604 items:
2605 additionalProperties:
2606 description: 'A MappingLabelsArray is the value in the MappingLabelGroup:
2607 an array of label specifiers.'
2608 items:
2609 description: A MappingLabelSpecifier (finally!) defines a
2610 single label. There are multiple kinds of label, so this
2611 is more complex than we'd like it to be. See the remarks
2612 about schema on custom types in `./common.go`.
2613 oneOf:
2614 - type: string
2615 - type: object
2616 type: array
2617 description: 'A MappingLabelGroup is a single element of a MappingLabelGroupsArray:
2618 a second map, where the key is a human-readable name that identifies
2619 the group.'
2620 maxProperties: 1
2621 minProperties: 1
2622 type: object
2623 type: array
2624 description: A DomainMap is the overall Mapping.spec.Labels type.
2625 It maps domains (kind of like namespaces for Mapping labels) to
2626 arrays of label groups.
2627 type: object
2628 load_balancer:
2629 properties:
2630 cookie:
2631 properties:
2632 name:
2633 type: string
2634 path:
2635 type: string
2636 ttl:
2637 type: string
2638 required:
2639 - name
2640 type: object
2641 header:
2642 type: string
2643 policy:
2644 enum:
2645 - round_robin
2646 - ring_hash
2647 - maglev
2648 - least_request
2649 type: string
2650 source_ip:
2651 type: boolean
2652 required:
2653 - policy
2654 type: object
2655 method:
2656 type: string
2657 method_regex:
2658 type: boolean
2659 modules:
2660 items:
2661 description: UntypedDict is relatively opaque as a Go type, but
2662 it preserves its contents in a roundtrippable way.
2663 type: object
2664 x-kubernetes-preserve-unknown-fields: true
2665 type: array
2666 outlier_detection:
2667 type: string
2668 path_redirect:
2669 description: Path replacement to use when generating an HTTP redirect.
2670 Used with `host_redirect`.
2671 type: string
2672 precedence:
2673 type: integer
2674 prefix:
2675 type: string
2676 prefix_exact:
2677 type: boolean
2678 prefix_redirect:
2679 description: Prefix rewrite to use when generating an HTTP redirect.
2680 Used with `host_redirect`.
2681 type: string
2682 prefix_regex:
2683 type: boolean
2684 priority:
2685 type: string
2686 query_parameters:
2687 additionalProperties:
2688 description: BoolOrString is a type that can hold a Boolean or a
2689 string.
2690 oneOf:
2691 - type: string
2692 - type: boolean
2693 type: object
2694 redirect_response_code:
2695 description: The response code to use when generating an HTTP redirect.
2696 Defaults to 301. Used with `host_redirect`.
2697 enum:
2698 - 301
2699 - 302
2700 - 303
2701 - 307
2702 - 308
2703 type: integer
2704 regex_headers:
2705 additionalProperties:
2706 type: string
2707 type: object
2708 regex_query_parameters:
2709 additionalProperties:
2710 type: string
2711 type: object
2712 regex_redirect:
2713 description: Prefix regex rewrite to use when generating an HTTP redirect.
2714 Used with `host_redirect`.
2715 properties:
2716 pattern:
2717 type: string
2718 substitution:
2719 type: string
2720 type: object
2721 regex_rewrite:
2722 properties:
2723 pattern:
2724 type: string
2725 substitution:
2726 type: string
2727 type: object
2728 remove_request_headers:
2729 description: StringOrStringList is just what it says on the tin, but
2730 note that it will always marshal as a list of strings right now.
2731 items:
2732 type: string
2733 oneOf:
2734 - type: string
2735 - type: array
2736 remove_response_headers:
2737 description: StringOrStringList is just what it says on the tin, but
2738 note that it will always marshal as a list of strings right now.
2739 items:
2740 type: string
2741 oneOf:
2742 - type: string
2743 - type: array
2744 resolver:
2745 type: string
2746 respect_dns_ttl:
2747 type: boolean
2748 retry_policy:
2749 properties:
2750 num_retries:
2751 type: integer
2752 per_try_timeout:
2753 type: string
2754 retry_on:
2755 enum:
2756 - 5xx
2757 - gateway-error
2758 - connect-failure
2759 - retriable-4xx
2760 - refused-stream
2761 - retriable-status-codes
2762 type: string
2763 type: object
2764 rewrite:
2765 type: string
2766 service:
2767 type: string
2768 shadow:
2769 type: boolean
2770 timeout_ms:
2771 description: The timeout for requests that use this Mapping. Overrides
2772 `cluster_request_timeout_ms` set on the Ambassador Module, if it
2773 exists.
2774 type: integer
2775 tls:
2776 description: BoolOrString is a type that can hold a Boolean or a string.
2777 oneOf:
2778 - type: string
2779 - type: boolean
2780 use_websocket:
2781 description: 'use_websocket is deprecated, and is equivlaent to setting
2782 `allow_upgrade: ["websocket"]`'
2783 type: boolean
2784 v3StatsName:
2785 type: string
2786 weight:
2787 type: integer
2788 required:
2789 - prefix
2790 - service
2791 type: object
2792 status:
2793 description: MappingStatus defines the observed state of Mapping
2794 properties:
2795 reason:
2796 type: string
2797 state:
2798 enum:
2799 - ""
2800 - Inactive
2801 - Running
2802 type: string
2803 type: object
2804 type: object
2805 served: true
2806 storage: false
2807 subresources:
2808 status: {}
2809 - additionalPrinterColumns:
2810 - jsonPath: .spec.host
2811 name: Source Host
2812 type: string
2813 - jsonPath: .spec.prefix
2814 name: Source Prefix
2815 type: string
2816 - jsonPath: .spec.service
2817 name: Dest Service
2818 type: string
2819 - jsonPath: .status.state
2820 name: State
2821 type: string
2822 - jsonPath: .status.reason
2823 name: Reason
2824 type: string
2825 name: v2
2826 schema:
2827 openAPIV3Schema:
2828 description: Mapping is the Schema for the mappings API
2829 properties:
2830 apiVersion:
2831 description: 'APIVersion defines the versioned schema of this representation
2832 of an object. Servers should convert recognized schemas to the latest
2833 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
2834 type: string
2835 kind:
2836 description: 'Kind is a string value representing the REST resource this
2837 object represents. Servers may infer this from the endpoint the client
2838 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
2839 type: string
2840 metadata:
2841 type: object
2842 spec:
2843 description: MappingSpec defines the desired state of Mapping
2844 properties:
2845 add_linkerd_headers:
2846 type: boolean
2847 add_request_headers:
2848 additionalProperties:
2849 oneOf:
2850 - type: string
2851 - type: object
2852 type: object
2853 add_response_headers:
2854 additionalProperties:
2855 oneOf:
2856 - type: string
2857 - type: object
2858 type: object
2859 allow_upgrade:
2860 description: "A case-insensitive list of the non-HTTP protocols to
2861 allow \"upgrading\" to from HTTP via the \"Connection: upgrade\"
2862 mechanism[1]. After the upgrade, Ambassador does not interpret
2863 the traffic, and behaves similarly to how it does for TCPMappings.
2864 \n [1]: https://tools.ietf.org/html/rfc7230#section-6.7 \n For example,
2865 if your upstream service supports WebSockets, you would write \n
2866 \ allow_upgrade: - websocket \n Or if your upstream service
2867 supports upgrading from HTTP to SPDY (as the Kubernetes apiserver
2868 does for `kubectl exec` functionality), you would write \n allow_upgrade:
2869 \ - spdy/3.1"
2870 items:
2871 type: string
2872 type: array
2873 ambassador_id:
2874 description: "AmbassadorID declares which Ambassador instances should
2875 pay attention to this resource. May either be a string or a list
2876 of strings. If no value is provided, the default is: \n \tambassador_id:
2877 \t- \"default\""
2878 items:
2879 type: string
2880 oneOf:
2881 - type: string
2882 - type: array
2883 auth_context_extensions:
2884 additionalProperties:
2885 type: string
2886 type: object
2887 auto_host_rewrite:
2888 type: boolean
2889 bypass_auth:
2890 type: boolean
2891 bypass_error_response_overrides:
2892 description: If true, bypasses any `error_response_overrides` set
2893 on the Ambassador module.
2894 type: boolean
2895 case_sensitive:
2896 type: boolean
2897 circuit_breakers:
2898 items:
2899 properties:
2900 max_connections:
2901 type: integer
2902 max_pending_requests:
2903 type: integer
2904 max_requests:
2905 type: integer
2906 max_retries:
2907 type: integer
2908 priority:
2909 enum:
2910 - default
2911 - high
2912 type: string
2913 type: object
2914 type: array
2915 cluster_idle_timeout_ms:
2916 type: integer
2917 cluster_max_connection_lifetime_ms:
2918 type: integer
2919 cluster_tag:
2920 type: string
2921 connect_timeout_ms:
2922 type: integer
2923 cors:
2924 properties:
2925 credentials:
2926 type: boolean
2927 exposed_headers:
2928 description: StringOrStringList is just what it says on the tin,
2929 but note that it will always marshal as a list of strings right
2930 now.
2931 items:
2932 type: string
2933 oneOf:
2934 - type: string
2935 - type: array
2936 headers:
2937 description: StringOrStringList is just what it says on the tin,
2938 but note that it will always marshal as a list of strings right
2939 now.
2940 items:
2941 type: string
2942 oneOf:
2943 - type: string
2944 - type: array
2945 max_age:
2946 type: string
2947 methods:
2948 description: StringOrStringList is just what it says on the tin,
2949 but note that it will always marshal as a list of strings right
2950 now.
2951 items:
2952 type: string
2953 oneOf:
2954 - type: string
2955 - type: array
2956 origins:
2957 description: OriginList is a list of origin strings, either as
2958 a `[]string` or as a comma-separated `string`.
2959 oneOf:
2960 - type: string
2961 - type: array
2962 type: object
2963 dns_type:
2964 type: string
2965 docs:
2966 description: DocsInfo provides some extra information about the docs
2967 for the Mapping (used by the Dev Portal)
2968 properties:
2969 display_name:
2970 type: string
2971 ignored:
2972 type: boolean
2973 path:
2974 type: string
2975 timeout_ms:
2976 type: integer
2977 url:
2978 type: string
2979 type: object
2980 enable_ipv4:
2981 type: boolean
2982 enable_ipv6:
2983 type: boolean
2984 envoy_override:
2985 description: UntypedDict is relatively opaque as a Go type, but it
2986 preserves its contents in a roundtrippable way.
2987 type: object
2988 x-kubernetes-preserve-unknown-fields: true
2989 error_response_overrides:
2990 description: Error response overrides for this Mapping. Replaces all
2991 of the `error_response_overrides` set on the Ambassador module,
2992 if any.
2993 items:
2994 description: A response rewrite for an HTTP error response
2995 properties:
2996 body:
2997 description: The new response body
2998 properties:
2999 content_type:
3000 description: The content type to set on the error response
3001 body when using text_format or text_format_source. Defaults
3002 to 'text/plain'.
3003 type: string
3004 json_format:
3005 additionalProperties:
3006 type: string
3007 description: 'A JSON response with content-type: application/json.
3008 The values can contain format text like in text_format.'
3009 type: object
3010 text_format:
3011 description: A format string representing a text response
3012 body. Content-Type can be set using the `content_type`
3013 field below.
3014 type: string
3015 text_format_source:
3016 description: A format string sourced from a file on the
3017 Ambassador container. Useful for larger response bodies
3018 that should not be placed inline in configuration.
3019 properties:
3020 filename:
3021 description: The name of a file on the Ambassador pod
3022 that contains a format text string.
3023 type: string
3024 type: object
3025 type: object
3026 on_status_code:
3027 description: The status code to match on -- not a pointer because
3028 it's required.
3029 maximum: 599
3030 minimum: 400
3031 type: integer
3032 required:
3033 - body
3034 - on_status_code
3035 type: object
3036 minItems: 1
3037 type: array
3038 grpc:
3039 type: boolean
3040 headers:
3041 additionalProperties:
3042 description: BoolOrString is a type that can hold a Boolean or a
3043 string.
3044 oneOf:
3045 - type: string
3046 - type: boolean
3047 type: object
3048 host:
3049 type: string
3050 host_redirect:
3051 type: boolean
3052 host_regex:
3053 type: boolean
3054 host_rewrite:
3055 type: string
3056 idle_timeout_ms:
3057 type: integer
3058 keepalive:
3059 properties:
3060 idle_time:
3061 type: integer
3062 interval:
3063 type: integer
3064 probes:
3065 type: integer
3066 type: object
3067 labels:
3068 additionalProperties:
3069 description: A MappingLabelGroupsArray is an array of MappingLabelGroups.
3070 I know, complex.
3071 items:
3072 additionalProperties:
3073 description: 'A MappingLabelsArray is the value in the MappingLabelGroup:
3074 an array of label specifiers.'
3075 items:
3076 description: A MappingLabelSpecifier (finally!) defines a
3077 single label. There are multiple kinds of label, so this
3078 is more complex than we'd like it to be. See the remarks
3079 about schema on custom types in `./common.go`.
3080 oneOf:
3081 - type: string
3082 - type: object
3083 type: array
3084 description: 'A MappingLabelGroup is a single element of a MappingLabelGroupsArray:
3085 a second map, where the key is a human-readable name that identifies
3086 the group.'
3087 maxProperties: 1
3088 minProperties: 1
3089 type: object
3090 type: array
3091 description: A DomainMap is the overall Mapping.spec.Labels type.
3092 It maps domains (kind of like namespaces for Mapping labels) to
3093 arrays of label groups.
3094 type: object
3095 load_balancer:
3096 properties:
3097 cookie:
3098 properties:
3099 name:
3100 type: string
3101 path:
3102 type: string
3103 ttl:
3104 type: string
3105 required:
3106 - name
3107 type: object
3108 header:
3109 type: string
3110 policy:
3111 enum:
3112 - round_robin
3113 - ring_hash
3114 - maglev
3115 - least_request
3116 type: string
3117 source_ip:
3118 type: boolean
3119 required:
3120 - policy
3121 type: object
3122 method:
3123 type: string
3124 method_regex:
3125 type: boolean
3126 modules:
3127 items:
3128 description: UntypedDict is relatively opaque as a Go type, but
3129 it preserves its contents in a roundtrippable way.
3130 type: object
3131 x-kubernetes-preserve-unknown-fields: true
3132 type: array
3133 outlier_detection:
3134 type: string
3135 path_redirect:
3136 description: Path replacement to use when generating an HTTP redirect.
3137 Used with `host_redirect`.
3138 type: string
3139 precedence:
3140 type: integer
3141 prefix:
3142 type: string
3143 prefix_exact:
3144 type: boolean
3145 prefix_redirect:
3146 description: Prefix rewrite to use when generating an HTTP redirect.
3147 Used with `host_redirect`.
3148 type: string
3149 prefix_regex:
3150 type: boolean
3151 priority:
3152 type: string
3153 query_parameters:
3154 additionalProperties:
3155 description: BoolOrString is a type that can hold a Boolean or a
3156 string.
3157 oneOf:
3158 - type: string
3159 - type: boolean
3160 type: object
3161 redirect_response_code:
3162 description: The response code to use when generating an HTTP redirect.
3163 Defaults to 301. Used with `host_redirect`.
3164 enum:
3165 - 301
3166 - 302
3167 - 303
3168 - 307
3169 - 308
3170 type: integer
3171 regex_headers:
3172 additionalProperties:
3173 type: string
3174 type: object
3175 regex_query_parameters:
3176 additionalProperties:
3177 type: string
3178 type: object
3179 regex_redirect:
3180 description: Prefix regex rewrite to use when generating an HTTP redirect.
3181 Used with `host_redirect`.
3182 properties:
3183 pattern:
3184 type: string
3185 substitution:
3186 type: string
3187 type: object
3188 regex_rewrite:
3189 properties:
3190 pattern:
3191 type: string
3192 substitution:
3193 type: string
3194 type: object
3195 remove_request_headers:
3196 description: StringOrStringList is just what it says on the tin, but
3197 note that it will always marshal as a list of strings right now.
3198 items:
3199 type: string
3200 oneOf:
3201 - type: string
3202 - type: array
3203 remove_response_headers:
3204 description: StringOrStringList is just what it says on the tin, but
3205 note that it will always marshal as a list of strings right now.
3206 items:
3207 type: string
3208 oneOf:
3209 - type: string
3210 - type: array
3211 resolver:
3212 type: string
3213 respect_dns_ttl:
3214 type: boolean
3215 retry_policy:
3216 properties:
3217 num_retries:
3218 type: integer
3219 per_try_timeout:
3220 type: string
3221 retry_on:
3222 enum:
3223 - 5xx
3224 - gateway-error
3225 - connect-failure
3226 - retriable-4xx
3227 - refused-stream
3228 - retriable-status-codes
3229 type: string
3230 type: object
3231 rewrite:
3232 type: string
3233 service:
3234 type: string
3235 shadow:
3236 type: boolean
3237 timeout_ms:
3238 description: The timeout for requests that use this Mapping. Overrides
3239 `cluster_request_timeout_ms` set on the Ambassador Module, if it
3240 exists.
3241 type: integer
3242 tls:
3243 description: BoolOrString is a type that can hold a Boolean or a string.
3244 oneOf:
3245 - type: string
3246 - type: boolean
3247 use_websocket:
3248 description: 'use_websocket is deprecated, and is equivlaent to setting
3249 `allow_upgrade: ["websocket"]`'
3250 type: boolean
3251 v3StatsName:
3252 type: string
3253 weight:
3254 type: integer
3255 required:
3256 - prefix
3257 - service
3258 type: object
3259 status:
3260 description: MappingStatus defines the observed state of Mapping
3261 properties:
3262 reason:
3263 type: string
3264 state:
3265 enum:
3266 - ""
3267 - Inactive
3268 - Running
3269 type: string
3270 type: object
3271 type: object
3272 served: true
3273 storage: true
3274 subresources:
3275 status: {}
3276 - additionalPrinterColumns:
3277 - jsonPath: .spec.host
3278 name: Source Host
3279 type: string
3280 - jsonPath: .spec.prefix
3281 name: Source Prefix
3282 type: string
3283 - jsonPath: .spec.service
3284 name: Dest Service
3285 type: string
3286 - jsonPath: .status.state
3287 name: State
3288 type: string
3289 - jsonPath: .status.reason
3290 name: Reason
3291 type: string
3292 name: v3alpha1
3293 schema:
3294 openAPIV3Schema:
3295 description: Mapping is the Schema for the mappings API
3296 properties:
3297 apiVersion:
3298 description: 'APIVersion defines the versioned schema of this representation
3299 of an object. Servers should convert recognized schemas to the latest
3300 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
3301 type: string
3302 kind:
3303 description: 'Kind is a string value representing the REST resource this
3304 object represents. Servers may infer this from the endpoint the client
3305 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
3306 type: string
3307 metadata:
3308 type: object
3309 spec:
3310 description: MappingSpec defines the desired state of Mapping
3311 properties:
3312 add_linkerd_headers:
3313 type: boolean
3314 add_request_headers:
3315 additionalProperties:
3316 properties:
3317 append:
3318 type: boolean
3319 v2Representation:
3320 enum:
3321 - ""
3322 - string
3323 - "null"
3324 type: string
3325 value:
3326 type: string
3327 type: object
3328 type: object
3329 add_response_headers:
3330 additionalProperties:
3331 properties:
3332 append:
3333 type: boolean
3334 v2Representation:
3335 enum:
3336 - ""
3337 - string
3338 - "null"
3339 type: string
3340 value:
3341 type: string
3342 type: object
3343 type: object
3344 allow_upgrade:
3345 description: "A case-insensitive list of the non-HTTP protocols to
3346 allow \"upgrading\" to from HTTP via the \"Connection: upgrade\"
3347 mechanism[1]. After the upgrade, Ambassador does not interpret
3348 the traffic, and behaves similarly to how it does for TCPMappings.
3349 \n [1]: https://tools.ietf.org/html/rfc7230#section-6.7 \n For example,
3350 if your upstream service supports WebSockets, you would write \n
3351 \ allow_upgrade: - websocket \n Or if your upstream service
3352 supports upgrading from HTTP to SPDY (as the Kubernetes apiserver
3353 does for `kubectl exec` functionality), you would write \n allow_upgrade:
3354 \ - spdy/3.1"
3355 items:
3356 type: string
3357 type: array
3358 ambassador_id:
3359 description: "AmbassadorID declares which Ambassador instances should
3360 pay attention to this resource. If no value is provided, the default
3361 is: \n \tambassador_id: \t- \"default\" \n TODO(lukeshu): In v3alpha2,
3362 consider renaming all of the `ambassador_id` (singular) fields to
3363 `ambassador_ids` (plural)."
3364 items:
3365 type: string
3366 type: array
3367 auth_context_extensions:
3368 additionalProperties:
3369 type: string
3370 type: object
3371 auto_host_rewrite:
3372 type: boolean
3373 bypass_auth:
3374 type: boolean
3375 bypass_error_response_overrides:
3376 description: If true, bypasses any `error_response_overrides` set
3377 on the Ambassador module.
3378 type: boolean
3379 case_sensitive:
3380 type: boolean
3381 circuit_breakers:
3382 items:
3383 properties:
3384 max_connections:
3385 type: integer
3386 max_pending_requests:
3387 type: integer
3388 max_requests:
3389 type: integer
3390 max_retries:
3391 type: integer
3392 priority:
3393 enum:
3394 - default
3395 - high
3396 type: string
3397 type: object
3398 type: array
3399 cluster_idle_timeout_ms:
3400 description: 'TODO(lukeshu): In v3alpha2, change all of the `{foo}_ms`/`MillisecondDuration`
3401 fields to `{foo}`/`metav1.Duration`.'
3402 type: integer
3403 cluster_max_connection_lifetime_ms:
3404 description: 'TODO(lukeshu): In v3alpha2, change all of the `{foo}_ms`/`MillisecondDuration`
3405 fields to `{foo}`/`metav1.Duration`.'
3406 type: integer
3407 cluster_tag:
3408 type: string
3409 connect_timeout_ms:
3410 description: 'TODO(lukeshu): In v3alpha2, change all of the `{foo}_ms`/`MillisecondDuration`
3411 fields to `{foo}`/`metav1.Duration`.'
3412 type: integer
3413 cors:
3414 properties:
3415 credentials:
3416 type: boolean
3417 exposed_headers:
3418 items:
3419 type: string
3420 type: array
3421 headers:
3422 items:
3423 type: string
3424 type: array
3425 max_age:
3426 type: string
3427 methods:
3428 items:
3429 type: string
3430 type: array
3431 origins:
3432 items:
3433 type: string
3434 type: array
3435 v2CommaSeparatedOrigins:
3436 type: boolean
3437 type: object
3438 dns_type:
3439 type: string
3440 docs:
3441 description: DocsInfo provides some extra information about the docs
3442 for the Mapping. Docs is used by both the agent and the DevPortal.
3443 properties:
3444 display_name:
3445 type: string
3446 ignored:
3447 type: boolean
3448 path:
3449 type: string
3450 timeout_ms:
3451 description: 'TODO(lukeshu): In v3alpha2, change all of the `{foo}_ms`/`MillisecondDuration`
3452 fields to `{foo}`/`metav1.Duration`.'
3453 type: integer
3454 url:
3455 type: string
3456 type: object
3457 enable_ipv4:
3458 type: boolean
3459 enable_ipv6:
3460 type: boolean
3461 envoy_override:
3462 description: UntypedDict is relatively opaque as a Go type, but it
3463 preserves its contents in a roundtrippable way.
3464 type: object
3465 x-kubernetes-preserve-unknown-fields: true
3466 error_response_overrides:
3467 description: Error response overrides for this Mapping. Replaces all
3468 of the `error_response_overrides` set on the Ambassador module,
3469 if any.
3470 items:
3471 description: A response rewrite for an HTTP error response
3472 properties:
3473 body:
3474 description: The new response body
3475 properties:
3476 content_type:
3477 description: The content type to set on the error response
3478 body when using text_format or text_format_source. Defaults
3479 to 'text/plain'.
3480 type: string
3481 json_format:
3482 additionalProperties:
3483 type: string
3484 description: 'A JSON response with content-type: application/json.
3485 The values can contain format text like in text_format.'
3486 type: object
3487 text_format:
3488 description: A format string representing a text response
3489 body. Content-Type can be set using the `content_type`
3490 field below.
3491 type: string
3492 text_format_source:
3493 description: A format string sourced from a file on the
3494 Ambassador container. Useful for larger response bodies
3495 that should not be placed inline in configuration.
3496 properties:
3497 filename:
3498 description: The name of a file on the Ambassador pod
3499 that contains a format text string.
3500 type: string
3501 type: object
3502 type: object
3503 on_status_code:
3504 description: The status code to match on -- not a pointer because
3505 it's required.
3506 maximum: 599
3507 minimum: 400
3508 type: integer
3509 required:
3510 - body
3511 - on_status_code
3512 type: object
3513 minItems: 1
3514 type: array
3515 grpc:
3516 type: boolean
3517 headers:
3518 additionalProperties:
3519 type: string
3520 type: object
3521 host:
3522 description: "Exact match for the hostname of a request if HostRegex
3523 is false; regex match for the hostname if HostRegex is true. \n
3524 Host specifies both a match for the ':authority' header of a request,
3525 as well as a match criterion for Host CRDs: a Mapping that specifies
3526 Host will not associate with a Host that doesn't have a matching
3527 Hostname. \n If both Host and Hostname are set, an error is logged,
3528 Host is ignored, and Hostname is used. \n DEPRECATED: Host is either
3529 an exact match or a regex, depending on HostRegex. Use HostName
3530 instead. \n TODO(lukeshu): In v3alpha2, get rid of MappingSpec.host
3531 and MappingSpec.host_regex in favor of a MappingSpec.deprecated_hostname_regex."
3532 type: string
3533 host_redirect:
3534 type: boolean
3535 host_regex:
3536 description: "DEPRECATED: Host is either an exact match or a regex,
3537 depending on HostRegex. Use HostName instead. \n TODO(lukeshu):
3538 In v3alpha2, get rid of MappingSpec.host and MappingSpec.host_regex
3539 in favor of a MappingSpec.deprecated_hostname_regex."
3540 type: boolean
3541 host_rewrite:
3542 type: string
3543 hostname:
3544 description: "Hostname is a DNS glob specifying the hosts to which
3545 this Mapping applies. \n Hostname specifies both a match for the
3546 ':authority' header of a request, as well as a match criterion for
3547 Host CRDs: a Mapping that specifies Hostname will not associate
3548 with a Host that doesn't have a matching Hostname. \n If both Host
3549 and Hostname are set, an error is logged, Host is ignored, and Hostname
3550 is used."
3551 type: string
3552 idle_timeout_ms:
3553 description: 'TODO(lukeshu): In v3alpha2, change all of the `{foo}_ms`/`MillisecondDuration`
3554 fields to `{foo}`/`metav1.Duration`.'
3555 type: integer
3556 keepalive:
3557 properties:
3558 idle_time:
3559 type: integer
3560 interval:
3561 type: integer
3562 probes:
3563 type: integer
3564 type: object
3565 labels:
3566 additionalProperties:
3567 description: A MappingLabelGroupsArray is an array of MappingLabelGroups.
3568 I know, complex.
3569 items:
3570 additionalProperties:
3571 description: 'A MappingLabelsArray is the value in the MappingLabelGroup:
3572 an array of label specifiers.'
3573 items:
3574 description: "A MappingLabelSpecifier (finally!) defines a
3575 single label. \n This mimics envoy/config/route/v3/route_components.proto:RateLimit:Action:action_specifier."
3576 maxProperties: 1
3577 minProperties: 1
3578 properties:
3579 destination_cluster:
3580 description: Sets the label "destination_cluster=«Envoy
3581 destination cluster name»".
3582 properties:
3583 key:
3584 enum:
3585 - destination_cluster
3586 type: string
3587 required:
3588 - key
3589 type: object
3590 generic_key:
3591 description: Sets the label "«key»=«value»" (where by
3592 default «key» is "generic_key").
3593 properties:
3594 key:
3595 description: The default is "generic_key".
3596 type: string
3597 v2Shorthand:
3598 type: boolean
3599 value:
3600 type: string
3601 required:
3602 - value
3603 type: object
3604 remote_address:
3605 description: Sets the label "remote_address=«IP address
3606 of the client»".
3607 properties:
3608 key:
3609 enum:
3610 - remote_address
3611 type: string
3612 required:
3613 - key
3614 type: object
3615 request_headers:
3616 description: If the «header_name» header is set, then
3617 set the label "«key»=«Value of the «header_name» header»";
3618 otherwise skip applying this label group.
3619 properties:
3620 header_name:
3621 type: string
3622 key:
3623 type: string
3624 omit_if_not_present:
3625 type: boolean
3626 required:
3627 - header_name
3628 - key
3629 type: object
3630 source_cluster:
3631 description: Sets the label "source_cluster=«Envoy source
3632 cluster name»".
3633 properties:
3634 key:
3635 enum:
3636 - source_cluster
3637 type: string
3638 required:
3639 - key
3640 type: object
3641 type: object
3642 type: array
3643 description: 'A MappingLabelGroup is a single element of a MappingLabelGroupsArray:
3644 a second map, where the key is a human-readable name that identifies
3645 the group.'
3646 maxProperties: 1
3647 minProperties: 1
3648 type: object
3649 type: array
3650 description: A DomainMap is the overall Mapping.spec.Labels type.
3651 It maps domains (kind of like namespaces for Mapping labels) to
3652 arrays of label groups.
3653 type: object
3654 load_balancer:
3655 properties:
3656 cookie:
3657 properties:
3658 name:
3659 type: string
3660 path:
3661 type: string
3662 ttl:
3663 type: string
3664 required:
3665 - name
3666 type: object
3667 header:
3668 type: string
3669 policy:
3670 enum:
3671 - round_robin
3672 - ring_hash
3673 - maglev
3674 - least_request
3675 type: string
3676 source_ip:
3677 type: boolean
3678 required:
3679 - policy
3680 type: object
3681 method:
3682 type: string
3683 method_regex:
3684 type: boolean
3685 modules:
3686 items:
3687 description: UntypedDict is relatively opaque as a Go type, but
3688 it preserves its contents in a roundtrippable way.
3689 type: object
3690 x-kubernetes-preserve-unknown-fields: true
3691 type: array
3692 outlier_detection:
3693 type: string
3694 path_redirect:
3695 description: Path replacement to use when generating an HTTP redirect.
3696 Used with `host_redirect`.
3697 type: string
3698 precedence:
3699 type: integer
3700 prefix:
3701 type: string
3702 prefix_exact:
3703 type: boolean
3704 prefix_redirect:
3705 description: Prefix rewrite to use when generating an HTTP redirect.
3706 Used with `host_redirect`.
3707 type: string
3708 prefix_regex:
3709 type: boolean
3710 priority:
3711 type: string
3712 query_parameters:
3713 additionalProperties:
3714 type: string
3715 type: object
3716 redirect_response_code:
3717 description: The response code to use when generating an HTTP redirect.
3718 Defaults to 301. Used with `host_redirect`.
3719 enum:
3720 - 301
3721 - 302
3722 - 303
3723 - 307
3724 - 308
3725 type: integer
3726 regex_headers:
3727 additionalProperties:
3728 type: string
3729 type: object
3730 regex_query_parameters:
3731 additionalProperties:
3732 type: string
3733 type: object
3734 regex_redirect:
3735 description: Prefix regex rewrite to use when generating an HTTP redirect.
3736 Used with `host_redirect`.
3737 properties:
3738 pattern:
3739 type: string
3740 substitution:
3741 type: string
3742 type: object
3743 regex_rewrite:
3744 properties:
3745 pattern:
3746 type: string
3747 substitution:
3748 type: string
3749 type: object
3750 remove_request_headers:
3751 items:
3752 type: string
3753 type: array
3754 remove_response_headers:
3755 items:
3756 type: string
3757 type: array
3758 resolver:
3759 type: string
3760 respect_dns_ttl:
3761 type: boolean
3762 retry_policy:
3763 properties:
3764 num_retries:
3765 type: integer
3766 per_try_timeout:
3767 type: string
3768 retry_on:
3769 enum:
3770 - 5xx
3771 - gateway-error
3772 - connect-failure
3773 - retriable-4xx
3774 - refused-stream
3775 - retriable-status-codes
3776 type: string
3777 type: object
3778 rewrite:
3779 type: string
3780 service:
3781 type: string
3782 shadow:
3783 type: boolean
3784 stats_name:
3785 type: string
3786 timeout_ms:
3787 description: The timeout for requests that use this Mapping. Overrides
3788 `cluster_request_timeout_ms` set on the Ambassador Module, if it
3789 exists.
3790 type: integer
3791 tls:
3792 type: string
3793 use_websocket:
3794 description: "use_websocket is deprecated, and is equivlaent to setting
3795 `allow_upgrade: [\"websocket\"]` \n TODO(lukeshu): In v3alpha2,
3796 get rid of MappingSpec.DeprecatedUseWebsocket."
3797 type: boolean
3798 v2BoolHeaders:
3799 items:
3800 type: string
3801 type: array
3802 v2BoolQueryParameters:
3803 items:
3804 type: string
3805 type: array
3806 v2ExplicitTLS:
3807 description: V2ExplicitTLS controls some vanity/stylistic elements
3808 when converting from v3alpha1 to v2. The values in an V2ExplicitTLS
3809 should not in any way affect the runtime operation of Emissary;
3810 except that it may affect internal names in the Envoy config, which
3811 may in turn affect stats names. But it should not affect any end-user
3812 observable behavior.
3813 properties:
3814 serviceScheme:
3815 description: "ServiceScheme specifies how to spell and capitalize
3816 the scheme-part of the service URL. \n Acceptable values are
3817 \"http://\" (case-insensitive), \"https://\" (case-insensitive),
3818 or \"\". The value is used if it agrees with whether or not
3819 this resource enables TLS origination, or if something else
3820 in the resource overrides the scheme."
3821 pattern: ^([hH][tT][tT][pP][sS]?://)?$
3822 type: string
3823 tls:
3824 description: "TLS controls whether and how to represent the \"tls\"
3825 field when its value could be implied by the \"service\" field.
3826 \ In v2, there were a lot of different ways to spell an \"empty\"
3827 value, and this field specifies which way to spell it (and will
3828 therefore only be used if the value will indeed be empty). \n
3829 \ | Value | Representation | Meaning
3830 of representation | |--------------+---------------------------------------+------------------------------------|
3831 \ | \"\" | omit the field |
3832 defer to service (no TLSContext) | | \"null\" | store
3833 an explicit \"null\" in the field | defer to service (no TLSContext)
3834 \ | | \"string\" | store an empty string in the field
3835 \ | defer to service (no TLSContext) | | \"bool:false\"
3836 | store a Boolean \"false\" in the field | defer to service
3837 (no TLSContext) | | \"bool:true\" | store a Boolean \"true\"
3838 in the field | originate TLS (no TLSContext) | \n If
3839 the meaning of the representation contradicts anything else
3840 (if a TLSContext is to be used, or in the case of \"bool:true\"
3841 if TLS is not to be originated), then this field is ignored."
3842 enum:
3843 - ""
3844 - "null"
3845 - bool:true
3846 - bool:false
3847 - string
3848 type: string
3849 type: object
3850 weight:
3851 type: integer
3852 required:
3853 - prefix
3854 - service
3855 type: object
3856 status:
3857 description: MappingStatus defines the observed state of Mapping
3858 properties:
3859 reason:
3860 type: string
3861 state:
3862 enum:
3863 - ""
3864 - Inactive
3865 - Running
3866 type: string
3867 type: object
3868 type: object
3869 served: true
3870 storage: false
3871 subresources:
3872 status: {}
3873---
3874apiVersion: apiextensions.k8s.io/v1
3875kind: CustomResourceDefinition
3876metadata:
3877 annotations:
3878 controller-gen.kubebuilder.io/version: v0.6.2
3879 name: modules.getambassador.io
3880spec:
3881 conversion:
3882 strategy: Webhook
3883 webhook:
3884 clientConfig:
3885 service:
3886 name: emissary-apiext
3887 namespace: emissary-system
3888 conversionReviewVersions:
3889 - v1beta1
3890 group: getambassador.io
3891 names:
3892 categories:
3893 - ambassador-crds
3894 kind: Module
3895 listKind: ModuleList
3896 plural: modules
3897 singular: module
3898 preserveUnknownFields: false
3899 scope: Namespaced
3900 versions:
3901 - name: v1
3902 schema:
3903 openAPIV3Schema:
3904 description: "A Module defines system-wide configuration. The type of module
3905 is controlled by the .metadata.name; valid names are \"ambassador\" or \"tls\".
3906 \n https://www.getambassador.io/docs/edge-stack/latest/topics/running/ambassador/#the-ambassador-module
3907 https://www.getambassador.io/docs/edge-stack/latest/topics/running/tls/#tls-module-deprecated"
3908 properties:
3909 apiVersion:
3910 description: 'APIVersion defines the versioned schema of this representation
3911 of an object. Servers should convert recognized schemas to the latest
3912 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
3913 type: string
3914 kind:
3915 description: 'Kind is a string value representing the REST resource this
3916 object represents. Servers may infer this from the endpoint the client
3917 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
3918 type: string
3919 metadata:
3920 type: object
3921 spec:
3922 properties:
3923 ambassador_id:
3924 description: "AmbassadorID declares which Ambassador instances should
3925 pay attention to this resource. May either be a string or a list
3926 of strings. If no value is provided, the default is: \n \tambassador_id:
3927 \t- \"default\""
3928 items:
3929 type: string
3930 oneOf:
3931 - type: string
3932 - type: array
3933 config:
3934 description: UntypedDict is relatively opaque as a Go type, but it
3935 preserves its contents in a roundtrippable way.
3936 type: object
3937 x-kubernetes-preserve-unknown-fields: true
3938 type: object
3939 type: object
3940 served: true
3941 storage: false
3942 - name: v2
3943 schema:
3944 openAPIV3Schema:
3945 description: "A Module defines system-wide configuration. The type of module
3946 is controlled by the .metadata.name; valid names are \"ambassador\" or \"tls\".
3947 \n https://www.getambassador.io/docs/edge-stack/latest/topics/running/ambassador/#the-ambassador-module
3948 https://www.getambassador.io/docs/edge-stack/latest/topics/running/tls/#tls-module-deprecated"
3949 properties:
3950 apiVersion:
3951 description: 'APIVersion defines the versioned schema of this representation
3952 of an object. Servers should convert recognized schemas to the latest
3953 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
3954 type: string
3955 kind:
3956 description: 'Kind is a string value representing the REST resource this
3957 object represents. Servers may infer this from the endpoint the client
3958 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
3959 type: string
3960 metadata:
3961 type: object
3962 spec:
3963 properties:
3964 ambassador_id:
3965 description: "AmbassadorID declares which Ambassador instances should
3966 pay attention to this resource. May either be a string or a list
3967 of strings. If no value is provided, the default is: \n \tambassador_id:
3968 \t- \"default\""
3969 items:
3970 type: string
3971 oneOf:
3972 - type: string
3973 - type: array
3974 config:
3975 description: UntypedDict is relatively opaque as a Go type, but it
3976 preserves its contents in a roundtrippable way.
3977 type: object
3978 x-kubernetes-preserve-unknown-fields: true
3979 type: object
3980 type: object
3981 served: true
3982 storage: true
3983 - name: v3alpha1
3984 schema:
3985 openAPIV3Schema:
3986 description: "A Module defines system-wide configuration. The type of module
3987 is controlled by the .metadata.name; valid names are \"ambassador\" or \"tls\".
3988 \n https://www.getambassador.io/docs/edge-stack/latest/topics/running/ambassador/#the-ambassador-module
3989 https://www.getambassador.io/docs/edge-stack/latest/topics/running/tls/#tls-module-deprecated"
3990 properties:
3991 apiVersion:
3992 description: 'APIVersion defines the versioned schema of this representation
3993 of an object. Servers should convert recognized schemas to the latest
3994 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
3995 type: string
3996 kind:
3997 description: 'Kind is a string value representing the REST resource this
3998 object represents. Servers may infer this from the endpoint the client
3999 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
4000 type: string
4001 metadata:
4002 type: object
4003 spec:
4004 properties:
4005 ambassador_id:
4006 description: "AmbassadorID declares which Ambassador instances should
4007 pay attention to this resource. If no value is provided, the default
4008 is: \n \tambassador_id: \t- \"default\" \n TODO(lukeshu): In v3alpha2,
4009 consider renaming all of the `ambassador_id` (singular) fields to
4010 `ambassador_ids` (plural)."
4011 items:
4012 type: string
4013 type: array
4014 config:
4015 description: UntypedDict is relatively opaque as a Go type, but it
4016 preserves its contents in a roundtrippable way.
4017 type: object
4018 x-kubernetes-preserve-unknown-fields: true
4019 required:
4020 - config
4021 type: object
4022 type: object
4023 served: true
4024 storage: false
4025---
4026apiVersion: apiextensions.k8s.io/v1
4027kind: CustomResourceDefinition
4028metadata:
4029 annotations:
4030 controller-gen.kubebuilder.io/version: v0.6.2
4031 name: ratelimitservices.getambassador.io
4032spec:
4033 conversion:
4034 strategy: Webhook
4035 webhook:
4036 clientConfig:
4037 service:
4038 name: emissary-apiext
4039 namespace: emissary-system
4040 conversionReviewVersions:
4041 - v1beta1
4042 group: getambassador.io
4043 names:
4044 categories:
4045 - ambassador-crds
4046 kind: RateLimitService
4047 listKind: RateLimitServiceList
4048 plural: ratelimitservices
4049 singular: ratelimitservice
4050 preserveUnknownFields: false
4051 scope: Namespaced
4052 versions:
4053 - name: v1
4054 schema:
4055 openAPIV3Schema:
4056 description: RateLimitService is the Schema for the ratelimitservices API
4057 properties:
4058 apiVersion:
4059 description: 'APIVersion defines the versioned schema of this representation
4060 of an object. Servers should convert recognized schemas to the latest
4061 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
4062 type: string
4063 kind:
4064 description: 'Kind is a string value representing the REST resource this
4065 object represents. Servers may infer this from the endpoint the client
4066 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
4067 type: string
4068 metadata:
4069 type: object
4070 spec:
4071 description: RateLimitServiceSpec defines the desired state of RateLimitService
4072 properties:
4073 ambassador_id:
4074 description: Common to all Ambassador objects.
4075 items:
4076 type: string
4077 oneOf:
4078 - type: string
4079 - type: array
4080 domain:
4081 type: string
4082 protocol_version:
4083 enum:
4084 - v2
4085 - v3
4086 type: string
4087 service:
4088 type: string
4089 timeout_ms:
4090 type: integer
4091 tls:
4092 description: BoolOrString is a type that can hold a Boolean or a string.
4093 oneOf:
4094 - type: string
4095 - type: boolean
4096 v3StatsName:
4097 type: string
4098 required:
4099 - service
4100 type: object
4101 type: object
4102 served: true
4103 storage: false
4104 - name: v2
4105 schema:
4106 openAPIV3Schema:
4107 description: RateLimitService is the Schema for the ratelimitservices API
4108 properties:
4109 apiVersion:
4110 description: 'APIVersion defines the versioned schema of this representation
4111 of an object. Servers should convert recognized schemas to the latest
4112 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
4113 type: string
4114 kind:
4115 description: 'Kind is a string value representing the REST resource this
4116 object represents. Servers may infer this from the endpoint the client
4117 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
4118 type: string
4119 metadata:
4120 type: object
4121 spec:
4122 description: RateLimitServiceSpec defines the desired state of RateLimitService
4123 properties:
4124 ambassador_id:
4125 description: Common to all Ambassador objects.
4126 items:
4127 type: string
4128 oneOf:
4129 - type: string
4130 - type: array
4131 domain:
4132 type: string
4133 protocol_version:
4134 enum:
4135 - v2
4136 - v3
4137 type: string
4138 service:
4139 type: string
4140 timeout_ms:
4141 type: integer
4142 tls:
4143 description: BoolOrString is a type that can hold a Boolean or a string.
4144 oneOf:
4145 - type: string
4146 - type: boolean
4147 v3StatsName:
4148 type: string
4149 required:
4150 - service
4151 type: object
4152 type: object
4153 served: true
4154 storage: true
4155 - name: v3alpha1
4156 schema:
4157 openAPIV3Schema:
4158 description: RateLimitService is the Schema for the ratelimitservices API
4159 properties:
4160 apiVersion:
4161 description: 'APIVersion defines the versioned schema of this representation
4162 of an object. Servers should convert recognized schemas to the latest
4163 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
4164 type: string
4165 kind:
4166 description: 'Kind is a string value representing the REST resource this
4167 object represents. Servers may infer this from the endpoint the client
4168 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
4169 type: string
4170 metadata:
4171 type: object
4172 spec:
4173 description: RateLimitServiceSpec defines the desired state of RateLimitService
4174 properties:
4175 ambassador_id:
4176 description: Common to all Ambassador objects.
4177 items:
4178 type: string
4179 type: array
4180 domain:
4181 type: string
4182 protocol_version:
4183 enum:
4184 - v2
4185 - v3
4186 type: string
4187 service:
4188 type: string
4189 stats_name:
4190 type: string
4191 timeout_ms:
4192 description: 'TODO(lukeshu): In v3alpha2, change all of the `{foo}_ms`/`MillisecondDuration`
4193 fields to `{foo}`/`metav1.Duration`.'
4194 type: integer
4195 tls:
4196 type: string
4197 v2ExplicitTLS:
4198 description: V2ExplicitTLS controls some vanity/stylistic elements
4199 when converting from v3alpha1 to v2. The values in an V2ExplicitTLS
4200 should not in any way affect the runtime operation of Emissary;
4201 except that it may affect internal names in the Envoy config, which
4202 may in turn affect stats names. But it should not affect any end-user
4203 observable behavior.
4204 properties:
4205 serviceScheme:
4206 description: "ServiceScheme specifies how to spell and capitalize
4207 the scheme-part of the service URL. \n Acceptable values are
4208 \"http://\" (case-insensitive), \"https://\" (case-insensitive),
4209 or \"\". The value is used if it agrees with whether or not
4210 this resource enables TLS origination, or if something else
4211 in the resource overrides the scheme."
4212 pattern: ^([hH][tT][tT][pP][sS]?://)?$
4213 type: string
4214 tls:
4215 description: "TLS controls whether and how to represent the \"tls\"
4216 field when its value could be implied by the \"service\" field.
4217 \ In v2, there were a lot of different ways to spell an \"empty\"
4218 value, and this field specifies which way to spell it (and will
4219 therefore only be used if the value will indeed be empty). \n
4220 \ | Value | Representation | Meaning
4221 of representation | |--------------+---------------------------------------+------------------------------------|
4222 \ | \"\" | omit the field |
4223 defer to service (no TLSContext) | | \"null\" | store
4224 an explicit \"null\" in the field | defer to service (no TLSContext)
4225 \ | | \"string\" | store an empty string in the field
4226 \ | defer to service (no TLSContext) | | \"bool:false\"
4227 | store a Boolean \"false\" in the field | defer to service
4228 (no TLSContext) | | \"bool:true\" | store a Boolean \"true\"
4229 in the field | originate TLS (no TLSContext) | \n If
4230 the meaning of the representation contradicts anything else
4231 (if a TLSContext is to be used, or in the case of \"bool:true\"
4232 if TLS is not to be originated), then this field is ignored."
4233 enum:
4234 - ""
4235 - "null"
4236 - bool:true
4237 - bool:false
4238 - string
4239 type: string
4240 type: object
4241 required:
4242 - service
4243 type: object
4244 type: object
4245 served: true
4246 storage: false
4247---
4248apiVersion: apiextensions.k8s.io/v1
4249kind: CustomResourceDefinition
4250metadata:
4251 annotations:
4252 controller-gen.kubebuilder.io/version: v0.6.2
4253 name: tcpmappings.getambassador.io
4254spec:
4255 conversion:
4256 strategy: Webhook
4257 webhook:
4258 clientConfig:
4259 service:
4260 name: emissary-apiext
4261 namespace: emissary-system
4262 conversionReviewVersions:
4263 - v1beta1
4264 group: getambassador.io
4265 names:
4266 categories:
4267 - ambassador-crds
4268 kind: TCPMapping
4269 listKind: TCPMappingList
4270 plural: tcpmappings
4271 singular: tcpmapping
4272 preserveUnknownFields: false
4273 scope: Namespaced
4274 versions:
4275 - name: v1
4276 schema:
4277 openAPIV3Schema:
4278 description: TCPMapping is the Schema for the tcpmappings API
4279 properties:
4280 apiVersion:
4281 description: 'APIVersion defines the versioned schema of this representation
4282 of an object. Servers should convert recognized schemas to the latest
4283 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
4284 type: string
4285 kind:
4286 description: 'Kind is a string value representing the REST resource this
4287 object represents. Servers may infer this from the endpoint the client
4288 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
4289 type: string
4290 metadata:
4291 type: object
4292 spec:
4293 description: TCPMappingSpec defines the desired state of TCPMapping
4294 properties:
4295 address:
4296 type: string
4297 ambassador_id:
4298 description: "AmbassadorID declares which Ambassador instances should
4299 pay attention to this resource. May either be a string or a list
4300 of strings. If no value is provided, the default is: \n \tambassador_id:
4301 \t- \"default\""
4302 items:
4303 type: string
4304 oneOf:
4305 - type: string
4306 - type: array
4307 circuit_breakers:
4308 items:
4309 properties:
4310 max_connections:
4311 type: integer
4312 max_pending_requests:
4313 type: integer
4314 max_requests:
4315 type: integer
4316 max_retries:
4317 type: integer
4318 priority:
4319 enum:
4320 - default
4321 - high
4322 type: string
4323 type: object
4324 type: array
4325 cluster_tag:
4326 type: string
4327 enable_ipv4:
4328 type: boolean
4329 enable_ipv6:
4330 type: boolean
4331 host:
4332 type: string
4333 idle_timeout_ms:
4334 description: 'FIXME(lukeshu): Surely this should be an ''int''?'
4335 type: string
4336 port:
4337 description: Port isn't a pointer because it's required.
4338 type: integer
4339 resolver:
4340 type: string
4341 service:
4342 type: string
4343 tls:
4344 description: BoolOrString is a type that can hold a Boolean or a string.
4345 oneOf:
4346 - type: string
4347 - type: boolean
4348 v3StatsName:
4349 type: string
4350 weight:
4351 type: integer
4352 required:
4353 - port
4354 - service
4355 type: object
4356 type: object
4357 served: true
4358 storage: false
4359 - name: v2
4360 schema:
4361 openAPIV3Schema:
4362 description: TCPMapping is the Schema for the tcpmappings API
4363 properties:
4364 apiVersion:
4365 description: 'APIVersion defines the versioned schema of this representation
4366 of an object. Servers should convert recognized schemas to the latest
4367 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
4368 type: string
4369 kind:
4370 description: 'Kind is a string value representing the REST resource this
4371 object represents. Servers may infer this from the endpoint the client
4372 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
4373 type: string
4374 metadata:
4375 type: object
4376 spec:
4377 description: TCPMappingSpec defines the desired state of TCPMapping
4378 properties:
4379 address:
4380 type: string
4381 ambassador_id:
4382 description: "AmbassadorID declares which Ambassador instances should
4383 pay attention to this resource. May either be a string or a list
4384 of strings. If no value is provided, the default is: \n \tambassador_id:
4385 \t- \"default\""
4386 items:
4387 type: string
4388 oneOf:
4389 - type: string
4390 - type: array
4391 circuit_breakers:
4392 items:
4393 properties:
4394 max_connections:
4395 type: integer
4396 max_pending_requests:
4397 type: integer
4398 max_requests:
4399 type: integer
4400 max_retries:
4401 type: integer
4402 priority:
4403 enum:
4404 - default
4405 - high
4406 type: string
4407 type: object
4408 type: array
4409 cluster_tag:
4410 type: string
4411 enable_ipv4:
4412 type: boolean
4413 enable_ipv6:
4414 type: boolean
4415 host:
4416 type: string
4417 idle_timeout_ms:
4418 description: 'FIXME(lukeshu): Surely this should be an ''int''?'
4419 type: string
4420 port:
4421 description: Port isn't a pointer because it's required.
4422 type: integer
4423 resolver:
4424 type: string
4425 service:
4426 type: string
4427 tls:
4428 description: BoolOrString is a type that can hold a Boolean or a string.
4429 oneOf:
4430 - type: string
4431 - type: boolean
4432 v3StatsName:
4433 type: string
4434 weight:
4435 type: integer
4436 required:
4437 - port
4438 - service
4439 type: object
4440 type: object
4441 served: true
4442 storage: true
4443 - name: v3alpha1
4444 schema:
4445 openAPIV3Schema:
4446 description: TCPMapping is the Schema for the tcpmappings API
4447 properties:
4448 apiVersion:
4449 description: 'APIVersion defines the versioned schema of this representation
4450 of an object. Servers should convert recognized schemas to the latest
4451 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
4452 type: string
4453 kind:
4454 description: 'Kind is a string value representing the REST resource this
4455 object represents. Servers may infer this from the endpoint the client
4456 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
4457 type: string
4458 metadata:
4459 type: object
4460 spec:
4461 description: TCPMappingSpec defines the desired state of TCPMapping
4462 properties:
4463 address:
4464 type: string
4465 ambassador_id:
4466 description: "AmbassadorID declares which Ambassador instances should
4467 pay attention to this resource. If no value is provided, the default
4468 is: \n \tambassador_id: \t- \"default\" \n TODO(lukeshu): In v3alpha2,
4469 consider renaming all of the `ambassador_id` (singular) fields to
4470 `ambassador_ids` (plural)."
4471 items:
4472 type: string
4473 type: array
4474 circuit_breakers:
4475 items:
4476 properties:
4477 max_connections:
4478 type: integer
4479 max_pending_requests:
4480 type: integer
4481 max_requests:
4482 type: integer
4483 max_retries:
4484 type: integer
4485 priority:
4486 enum:
4487 - default
4488 - high
4489 type: string
4490 type: object
4491 type: array
4492 cluster_tag:
4493 type: string
4494 enable_ipv4:
4495 type: boolean
4496 enable_ipv6:
4497 type: boolean
4498 host:
4499 type: string
4500 idle_timeout_ms:
4501 description: 'FIXME(lukeshu): Surely this should be an ''int''?'
4502 type: string
4503 port:
4504 description: Port isn't a pointer because it's required.
4505 type: integer
4506 resolver:
4507 type: string
4508 service:
4509 type: string
4510 stats_name:
4511 type: string
4512 tls:
4513 type: string
4514 v2ExplicitTLS:
4515 description: V2ExplicitTLS controls some vanity/stylistic elements
4516 when converting from v3alpha1 to v2. The values in an V2ExplicitTLS
4517 should not in any way affect the runtime operation of Emissary;
4518 except that it may affect internal names in the Envoy config, which
4519 may in turn affect stats names. But it should not affect any end-user
4520 observable behavior.
4521 properties:
4522 serviceScheme:
4523 description: "ServiceScheme specifies how to spell and capitalize
4524 the scheme-part of the service URL. \n Acceptable values are
4525 \"http://\" (case-insensitive), \"https://\" (case-insensitive),
4526 or \"\". The value is used if it agrees with whether or not
4527 this resource enables TLS origination, or if something else
4528 in the resource overrides the scheme."
4529 pattern: ^([hH][tT][tT][pP][sS]?://)?$
4530 type: string
4531 tls:
4532 description: "TLS controls whether and how to represent the \"tls\"
4533 field when its value could be implied by the \"service\" field.
4534 \ In v2, there were a lot of different ways to spell an \"empty\"
4535 value, and this field specifies which way to spell it (and will
4536 therefore only be used if the value will indeed be empty). \n
4537 \ | Value | Representation | Meaning
4538 of representation | |--------------+---------------------------------------+------------------------------------|
4539 \ | \"\" | omit the field |
4540 defer to service (no TLSContext) | | \"null\" | store
4541 an explicit \"null\" in the field | defer to service (no TLSContext)
4542 \ | | \"string\" | store an empty string in the field
4543 \ | defer to service (no TLSContext) | | \"bool:false\"
4544 | store a Boolean \"false\" in the field | defer to service
4545 (no TLSContext) | | \"bool:true\" | store a Boolean \"true\"
4546 in the field | originate TLS (no TLSContext) | \n If
4547 the meaning of the representation contradicts anything else
4548 (if a TLSContext is to be used, or in the case of \"bool:true\"
4549 if TLS is not to be originated), then this field is ignored."
4550 enum:
4551 - ""
4552 - "null"
4553 - bool:true
4554 - bool:false
4555 - string
4556 type: string
4557 type: object
4558 weight:
4559 type: integer
4560 required:
4561 - port
4562 - service
4563 type: object
4564 type: object
4565 served: true
4566 storage: false
4567---
4568apiVersion: apiextensions.k8s.io/v1
4569kind: CustomResourceDefinition
4570metadata:
4571 annotations:
4572 controller-gen.kubebuilder.io/version: v0.6.2
4573 name: tlscontexts.getambassador.io
4574spec:
4575 conversion:
4576 strategy: Webhook
4577 webhook:
4578 clientConfig:
4579 service:
4580 name: emissary-apiext
4581 namespace: emissary-system
4582 conversionReviewVersions:
4583 - v1beta1
4584 group: getambassador.io
4585 names:
4586 categories:
4587 - ambassador-crds
4588 kind: TLSContext
4589 listKind: TLSContextList
4590 plural: tlscontexts
4591 singular: tlscontext
4592 preserveUnknownFields: false
4593 scope: Namespaced
4594 versions:
4595 - name: v1
4596 schema:
4597 openAPIV3Schema:
4598 description: TLSContext is the Schema for the tlscontexts API
4599 properties:
4600 apiVersion:
4601 description: 'APIVersion defines the versioned schema of this representation
4602 of an object. Servers should convert recognized schemas to the latest
4603 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
4604 type: string
4605 kind:
4606 description: 'Kind is a string value representing the REST resource this
4607 object represents. Servers may infer this from the endpoint the client
4608 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
4609 type: string
4610 metadata:
4611 type: object
4612 spec:
4613 description: TLSContextSpec defines the desired state of TLSContext
4614 properties:
4615 alpn_protocols:
4616 type: string
4617 ambassador_id:
4618 description: "AmbassadorID declares which Ambassador instances should
4619 pay attention to this resource. May either be a string or a list
4620 of strings. If no value is provided, the default is: \n \tambassador_id:
4621 \t- \"default\""
4622 items:
4623 type: string
4624 oneOf:
4625 - type: string
4626 - type: array
4627 ca_secret:
4628 type: string
4629 cacert_chain_file:
4630 type: string
4631 cert_chain_file:
4632 type: string
4633 cert_required:
4634 type: boolean
4635 cipher_suites:
4636 items:
4637 type: string
4638 type: array
4639 ecdh_curves:
4640 items:
4641 type: string
4642 type: array
4643 hosts:
4644 items:
4645 type: string
4646 type: array
4647 max_tls_version:
4648 enum:
4649 - v1.0
4650 - v1.1
4651 - v1.2
4652 - v1.3
4653 type: string
4654 min_tls_version:
4655 enum:
4656 - v1.0
4657 - v1.1
4658 - v1.2
4659 - v1.3
4660 type: string
4661 private_key_file:
4662 type: string
4663 redirect_cleartext_from:
4664 type: integer
4665 secret:
4666 type: string
4667 secret_namespacing:
4668 type: boolean
4669 sni:
4670 type: string
4671 v3CRLSecret:
4672 type: string
4673 type: object
4674 type: object
4675 served: true
4676 storage: false
4677 - name: v2
4678 schema:
4679 openAPIV3Schema:
4680 description: TLSContext is the Schema for the tlscontexts API
4681 properties:
4682 apiVersion:
4683 description: 'APIVersion defines the versioned schema of this representation
4684 of an object. Servers should convert recognized schemas to the latest
4685 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
4686 type: string
4687 kind:
4688 description: 'Kind is a string value representing the REST resource this
4689 object represents. Servers may infer this from the endpoint the client
4690 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
4691 type: string
4692 metadata:
4693 type: object
4694 spec:
4695 description: TLSContextSpec defines the desired state of TLSContext
4696 properties:
4697 alpn_protocols:
4698 type: string
4699 ambassador_id:
4700 description: "AmbassadorID declares which Ambassador instances should
4701 pay attention to this resource. May either be a string or a list
4702 of strings. If no value is provided, the default is: \n \tambassador_id:
4703 \t- \"default\""
4704 items:
4705 type: string
4706 oneOf:
4707 - type: string
4708 - type: array
4709 ca_secret:
4710 type: string
4711 cacert_chain_file:
4712 type: string
4713 cert_chain_file:
4714 type: string
4715 cert_required:
4716 type: boolean
4717 cipher_suites:
4718 items:
4719 type: string
4720 type: array
4721 ecdh_curves:
4722 items:
4723 type: string
4724 type: array
4725 hosts:
4726 items:
4727 type: string
4728 type: array
4729 max_tls_version:
4730 enum:
4731 - v1.0
4732 - v1.1
4733 - v1.2
4734 - v1.3
4735 type: string
4736 min_tls_version:
4737 enum:
4738 - v1.0
4739 - v1.1
4740 - v1.2
4741 - v1.3
4742 type: string
4743 private_key_file:
4744 type: string
4745 redirect_cleartext_from:
4746 type: integer
4747 secret:
4748 type: string
4749 secret_namespacing:
4750 type: boolean
4751 sni:
4752 type: string
4753 v3CRLSecret:
4754 type: string
4755 type: object
4756 type: object
4757 served: true
4758 storage: true
4759 - name: v3alpha1
4760 schema:
4761 openAPIV3Schema:
4762 description: TLSContext is the Schema for the tlscontexts API
4763 properties:
4764 apiVersion:
4765 description: 'APIVersion defines the versioned schema of this representation
4766 of an object. Servers should convert recognized schemas to the latest
4767 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
4768 type: string
4769 kind:
4770 description: 'Kind is a string value representing the REST resource this
4771 object represents. Servers may infer this from the endpoint the client
4772 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
4773 type: string
4774 metadata:
4775 type: object
4776 spec:
4777 description: TLSContextSpec defines the desired state of TLSContext
4778 properties:
4779 alpn_protocols:
4780 type: string
4781 ambassador_id:
4782 description: "AmbassadorID declares which Ambassador instances should
4783 pay attention to this resource. If no value is provided, the default
4784 is: \n \tambassador_id: \t- \"default\" \n TODO(lukeshu): In v3alpha2,
4785 consider renaming all of the `ambassador_id` (singular) fields to
4786 `ambassador_ids` (plural)."
4787 items:
4788 type: string
4789 type: array
4790 ca_secret:
4791 type: string
4792 cacert_chain_file:
4793 type: string
4794 cert_chain_file:
4795 type: string
4796 cert_required:
4797 type: boolean
4798 cipher_suites:
4799 items:
4800 type: string
4801 type: array
4802 crl_secret:
4803 type: string
4804 ecdh_curves:
4805 items:
4806 type: string
4807 type: array
4808 hosts:
4809 items:
4810 type: string
4811 type: array
4812 max_tls_version:
4813 enum:
4814 - v1.0
4815 - v1.1
4816 - v1.2
4817 - v1.3
4818 type: string
4819 min_tls_version:
4820 enum:
4821 - v1.0
4822 - v1.1
4823 - v1.2
4824 - v1.3
4825 type: string
4826 private_key_file:
4827 type: string
4828 redirect_cleartext_from:
4829 type: integer
4830 secret:
4831 type: string
4832 secret_namespacing:
4833 type: boolean
4834 sni:
4835 type: string
4836 type: object
4837 type: object
4838 served: true
4839 storage: false
4840---
4841apiVersion: apiextensions.k8s.io/v1
4842kind: CustomResourceDefinition
4843metadata:
4844 annotations:
4845 controller-gen.kubebuilder.io/version: v0.6.2
4846 name: tracingservices.getambassador.io
4847spec:
4848 conversion:
4849 strategy: Webhook
4850 webhook:
4851 clientConfig:
4852 service:
4853 name: emissary-apiext
4854 namespace: emissary-system
4855 conversionReviewVersions:
4856 - v1beta1
4857 group: getambassador.io
4858 names:
4859 categories:
4860 - ambassador-crds
4861 kind: TracingService
4862 listKind: TracingServiceList
4863 plural: tracingservices
4864 singular: tracingservice
4865 preserveUnknownFields: false
4866 scope: Namespaced
4867 versions:
4868 - name: v1
4869 schema:
4870 openAPIV3Schema:
4871 description: TracingService is the Schema for the tracingservices API
4872 properties:
4873 apiVersion:
4874 description: 'APIVersion defines the versioned schema of this representation
4875 of an object. Servers should convert recognized schemas to the latest
4876 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
4877 type: string
4878 kind:
4879 description: 'Kind is a string value representing the REST resource this
4880 object represents. Servers may infer this from the endpoint the client
4881 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
4882 type: string
4883 metadata:
4884 type: object
4885 spec:
4886 description: TracingServiceSpec defines the desired state of TracingService
4887 properties:
4888 ambassador_id:
4889 description: "AmbassadorID declares which Ambassador instances should
4890 pay attention to this resource. May either be a string or a list
4891 of strings. If no value is provided, the default is: \n \tambassador_id:
4892 \t- \"default\""
4893 items:
4894 type: string
4895 oneOf:
4896 - type: string
4897 - type: array
4898 config:
4899 properties:
4900 access_token_file:
4901 type: string
4902 collector_cluster:
4903 type: string
4904 collector_endpoint:
4905 type: string
4906 collector_endpoint_version:
4907 enum:
4908 - HTTP_JSON_V1
4909 - HTTP_JSON
4910 - HTTP_PROTO
4911 type: string
4912 collector_hostname:
4913 type: string
4914 service_name:
4915 type: string
4916 shared_span_context:
4917 type: boolean
4918 trace_id_128bit:
4919 type: boolean
4920 v3PropagationModes:
4921 items:
4922 enum:
4923 - ENVOY
4924 - LIGHTSTEP
4925 - B3
4926 - TRACE_CONTEXT
4927 type: string
4928 type: array
4929 type: object
4930 driver:
4931 enum:
4932 - lightstep
4933 - zipkin
4934 - datadog
4935 type: string
4936 sampling:
4937 properties:
4938 client:
4939 type: integer
4940 overall:
4941 type: integer
4942 random:
4943 type: integer
4944 type: object
4945 service:
4946 type: string
4947 tag_headers:
4948 items:
4949 type: string
4950 type: array
4951 v3StatsName:
4952 type: string
4953 required:
4954 - driver
4955 - service
4956 type: object
4957 type: object
4958 served: true
4959 storage: false
4960 - name: v2
4961 schema:
4962 openAPIV3Schema:
4963 description: TracingService is the Schema for the tracingservices API
4964 properties:
4965 apiVersion:
4966 description: 'APIVersion defines the versioned schema of this representation
4967 of an object. Servers should convert recognized schemas to the latest
4968 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
4969 type: string
4970 kind:
4971 description: 'Kind is a string value representing the REST resource this
4972 object represents. Servers may infer this from the endpoint the client
4973 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
4974 type: string
4975 metadata:
4976 type: object
4977 spec:
4978 description: TracingServiceSpec defines the desired state of TracingService
4979 properties:
4980 ambassador_id:
4981 description: "AmbassadorID declares which Ambassador instances should
4982 pay attention to this resource. May either be a string or a list
4983 of strings. If no value is provided, the default is: \n \tambassador_id:
4984 \t- \"default\""
4985 items:
4986 type: string
4987 oneOf:
4988 - type: string
4989 - type: array
4990 config:
4991 properties:
4992 access_token_file:
4993 type: string
4994 collector_cluster:
4995 type: string
4996 collector_endpoint:
4997 type: string
4998 collector_endpoint_version:
4999 enum:
5000 - HTTP_JSON_V1
5001 - HTTP_JSON
5002 - HTTP_PROTO
5003 type: string
5004 collector_hostname:
5005 type: string
5006 service_name:
5007 type: string
5008 shared_span_context:
5009 type: boolean
5010 trace_id_128bit:
5011 type: boolean
5012 v3PropagationModes:
5013 items:
5014 enum:
5015 - ENVOY
5016 - LIGHTSTEP
5017 - B3
5018 - TRACE_CONTEXT
5019 type: string
5020 type: array
5021 type: object
5022 driver:
5023 enum:
5024 - lightstep
5025 - zipkin
5026 - datadog
5027 type: string
5028 sampling:
5029 properties:
5030 client:
5031 type: integer
5032 overall:
5033 type: integer
5034 random:
5035 type: integer
5036 type: object
5037 service:
5038 type: string
5039 tag_headers:
5040 items:
5041 type: string
5042 type: array
5043 v3StatsName:
5044 type: string
5045 required:
5046 - driver
5047 - service
5048 type: object
5049 type: object
5050 served: true
5051 storage: true
5052 - name: v3alpha1
5053 schema:
5054 openAPIV3Schema:
5055 description: TracingService is the Schema for the tracingservices API
5056 properties:
5057 apiVersion:
5058 description: 'APIVersion defines the versioned schema of this representation
5059 of an object. Servers should convert recognized schemas to the latest
5060 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
5061 type: string
5062 kind:
5063 description: 'Kind is a string value representing the REST resource this
5064 object represents. Servers may infer this from the endpoint the client
5065 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
5066 type: string
5067 metadata:
5068 type: object
5069 spec:
5070 description: TracingServiceSpec defines the desired state of TracingService
5071 properties:
5072 ambassador_id:
5073 description: "AmbassadorID declares which Ambassador instances should
5074 pay attention to this resource. If no value is provided, the default
5075 is: \n \tambassador_id: \t- \"default\" \n TODO(lukeshu): In v3alpha2,
5076 consider renaming all of the `ambassador_id` (singular) fields to
5077 `ambassador_ids` (plural)."
5078 items:
5079 type: string
5080 type: array
5081 config:
5082 properties:
5083 access_token_file:
5084 type: string
5085 collector_cluster:
5086 type: string
5087 collector_endpoint:
5088 type: string
5089 collector_endpoint_version:
5090 enum:
5091 - HTTP_JSON_V1
5092 - HTTP_JSON
5093 - HTTP_PROTO
5094 type: string
5095 collector_hostname:
5096 type: string
5097 propagation_modes:
5098 items:
5099 enum:
5100 - ENVOY
5101 - LIGHTSTEP
5102 - B3
5103 - TRACE_CONTEXT
5104 type: string
5105 type: array
5106 service_name:
5107 type: string
5108 shared_span_context:
5109 type: boolean
5110 trace_id_128bit:
5111 type: boolean
5112 type: object
5113 driver:
5114 enum:
5115 - lightstep
5116 - zipkin
5117 - datadog
5118 type: string
5119 sampling:
5120 properties:
5121 client:
5122 type: integer
5123 overall:
5124 type: integer
5125 random:
5126 type: integer
5127 type: object
5128 service:
5129 type: string
5130 stats_name:
5131 type: string
5132 tag_headers:
5133 items:
5134 type: string
5135 type: array
5136 required:
5137 - driver
5138 - service
5139 type: object
5140 type: object
5141 served: true
5142 storage: false
View as plain text