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