diff --git a/getambassador.io/authservice_v1.json b/getambassador.io/authservice_v1.json index 952d3c9d..e5d47388 100644 --- a/getambassador.io/authservice_v1.json +++ b/getambassador.io/authservice_v1.json @@ -1,5 +1,135 @@ { "description": "AuthService is the Schema for the authservices API", - "type": "object", - "x-kubernetes-preserve-unknown-fields": true + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "AuthServiceSpec defines the desired state of AuthService", + "properties": { + "add_auth_headers": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "add_linkerd_headers": { + "type": "boolean" + }, + "allow_request_body": { + "type": "boolean" + }, + "allowed_authorization_headers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "allowed_request_headers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "auth_service": { + "type": "string" + }, + "failure_mode_allow": { + "type": "boolean" + }, + "include_body": { + "properties": { + "allow_partial": { + "type": "boolean" + }, + "max_bytes": { + "description": "These aren't pointer types because they are required.", + "type": "integer" + } + }, + "required": [ + "allow_partial", + "max_bytes" + ], + "type": "object", + "additionalProperties": false + }, + "path_prefix": { + "type": "string" + }, + "proto": { + "enum": [ + "http", + "grpc" + ], + "type": "string" + }, + "protocol_version": { + "enum": [ + "v2", + "v3" + ], + "type": "string" + }, + "status_on_error": { + "description": "Why isn't this just an int??", + "properties": { + "code": { + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + }, + "timeout_ms": { + "type": "integer" + }, + "v3CircuitBreakers": { + "items": { + "properties": { + "max_connections": { + "type": "integer" + }, + "max_pending_requests": { + "type": "integer" + }, + "max_requests": { + "type": "integer" + }, + "max_retries": { + "type": "integer" + }, + "priority": { + "enum": [ + "default", + "high" + ], + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "v3StatsName": { + "type": "string" + } + }, + "required": [ + "auth_service" + ], + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + } + }, + "type": "object" } diff --git a/getambassador.io/authservice_v2.json b/getambassador.io/authservice_v2.json index 23c2f487..e5d47388 100644 --- a/getambassador.io/authservice_v2.json +++ b/getambassador.io/authservice_v2.json @@ -128,8 +128,7 @@ "auth_service" ], "type": "object", - "x-kubernetes-preserve-unknown-fields": true, - "additionalProperties": false + "x-kubernetes-preserve-unknown-fields": true } }, "type": "object" diff --git a/getambassador.io/consulresolver_v1.json b/getambassador.io/consulresolver_v1.json index a601f3b3..f917f5fd 100644 --- a/getambassador.io/consulresolver_v1.json +++ b/getambassador.io/consulresolver_v1.json @@ -1,5 +1,30 @@ { "description": "ConsulResolver is the Schema for the ConsulResolver API", - "type": "object", - "x-kubernetes-preserve-unknown-fields": true + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "ConsulResolver tells Ambassador to use Consul to resolve services. In addition to the AmbassadorID, it needs information about which Consul server and DC to use.", + "properties": { + "address": { + "type": "string" + }, + "datacenter": { + "type": "string" + } + }, + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + } + }, + "type": "object" } diff --git a/getambassador.io/consulresolver_v2.json b/getambassador.io/consulresolver_v2.json index 40799a28..f917f5fd 100644 --- a/getambassador.io/consulresolver_v2.json +++ b/getambassador.io/consulresolver_v2.json @@ -23,8 +23,7 @@ } }, "type": "object", - "x-kubernetes-preserve-unknown-fields": true, - "additionalProperties": false + "x-kubernetes-preserve-unknown-fields": true } }, "type": "object" diff --git a/getambassador.io/devportal_v1.json b/getambassador.io/devportal_v1.json index 32c27a08..feae8aac 100644 --- a/getambassador.io/devportal_v1.json +++ b/getambassador.io/devportal_v1.json @@ -1,5 +1,118 @@ { - "description": "DevPortal is the Schema for the DevPortals API", - "type": "object", - "x-kubernetes-preserve-unknown-fields": true + "description": "DevPortal is the Schema for the DevPortals API \n DevPortal resources specify the `what` and `how` is shown in a DevPortal: \n 1. `what` is in a DevPortal can be controlled with \n - a `selector`, that can be used for filtering `Mappings`. \n - a `docs` listing of (services, url) \n 2. `how` is a pointer to some `contents` (a checkout of a Git repository with go-templates/markdown/css). \n Multiple `DevPortal`s can exist in the cluster, and the Dev Portal server will show them at different endpoints. A `DevPortal` resource with a special name, `ambassador`, will be used for configuring the default Dev Portal (served at `/docs/` by default).", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "DevPortalSpec defines the desired state of DevPortal", + "properties": { + "content": { + "description": "Content specifies where the content shown in the DevPortal come from", + "properties": { + "branch": { + "type": "string" + }, + "dir": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "default": { + "description": "Default must be true when this is the default DevPortal", + "type": "boolean" + }, + "docs": { + "description": "Docs is a static docs definition", + "items": { + "description": "DevPortalDocsSpec is a static documentation definition: instead of using a Selector for finding documentation for services, users can provide a static list of : tuples. These services will be shown in the Dev Portal with the documentation obtained from this URL.", + "properties": { + "service": { + "description": "Service is the service being documented", + "type": "string" + }, + "timeout_ms": { + "description": "Timeout specifies the amount of time devportal will wait for the downstream service to report an openapi spec back", + "type": "integer" + }, + "url": { + "description": "URL is the URL used for obtaining docs", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "naming_scheme": { + "description": "Describes how to display \"services\" in the DevPortal. Default namespace.name", + "enum": [ + "namespace.name", + "name.prefix" + ], + "type": "string" + }, + "preserve_servers": { + "description": "Configures this DevPortal to use server definitions from the openAPI doc instead of rewriting them based on the url used for the connection.", + "type": "boolean" + }, + "search": { + "description": "DevPortalSearchSpec allows configuration over search functionality for the DevPortal", + "properties": { + "enabled": { + "type": "boolean" + }, + "type": { + "description": "Type of search. \"title-only\" does a fuzzy search over openapi and page titles \"all-content\" will fuzzy search over all openapi and page content. \"title-only\" is the default. warning: using all-content may incur a larger memory footprint", + "enum": [ + "title-only", + "all-content" + ], + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "selector": { + "description": "Selector is used for choosing what is shown in the DevPortal", + "properties": { + "matchLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "MatchLabels specifies the list of labels that must be present in Mappings for being present in this DevPortal.", + "type": "object" + }, + "matchNamespaces": { + "description": "MatchNamespaces is a list of namespaces that will be included in this DevPortal.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + } + }, + "type": "object" } diff --git a/getambassador.io/devportal_v2.json b/getambassador.io/devportal_v2.json index 91a02ea6..feae8aac 100644 --- a/getambassador.io/devportal_v2.json +++ b/getambassador.io/devportal_v2.json @@ -111,8 +111,7 @@ } }, "type": "object", - "x-kubernetes-preserve-unknown-fields": true, - "additionalProperties": false + "x-kubernetes-preserve-unknown-fields": true } }, "type": "object" diff --git a/getambassador.io/host_v2.json b/getambassador.io/host_v2.json index dde5055c..99d01884 100644 --- a/getambassador.io/host_v2.json +++ b/getambassador.io/host_v2.json @@ -214,8 +214,7 @@ } }, "type": "object", - "x-kubernetes-preserve-unknown-fields": true, - "additionalProperties": false + "x-kubernetes-preserve-unknown-fields": true }, "status": { "description": "HostStatus defines the observed state of Host", diff --git a/getambassador.io/kubernetesendpointresolver_v1.json b/getambassador.io/kubernetesendpointresolver_v1.json index baf9d364..0943888f 100644 --- a/getambassador.io/kubernetesendpointresolver_v1.json +++ b/getambassador.io/kubernetesendpointresolver_v1.json @@ -1,5 +1,22 @@ { "description": "KubernetesEndpointResolver is the Schema for the kubernetesendpointresolver API", - "type": "object", - "x-kubernetes-preserve-unknown-fields": true + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "KubernetesEndpointResolver tells Ambassador to use Kubernetes Endpoints resources to resolve services. It actually has no spec other than the AmbassadorID.", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + } + }, + "type": "object" } diff --git a/getambassador.io/kubernetesserviceresolver_v1.json b/getambassador.io/kubernetesserviceresolver_v1.json index d07f8ae1..474213b7 100644 --- a/getambassador.io/kubernetesserviceresolver_v1.json +++ b/getambassador.io/kubernetesserviceresolver_v1.json @@ -1,5 +1,22 @@ { "description": "KubernetesServiceResolver is the Schema for the kubernetesserviceresolver API", - "type": "object", - "x-kubernetes-preserve-unknown-fields": true + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "KubernetesServiceResolver tells Ambassador to use Kubernetes Service resources to resolve services. It actually has no spec other than the AmbassadorID.", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + } + }, + "type": "object" } diff --git a/getambassador.io/logservice_v1.json b/getambassador.io/logservice_v1.json index e84522b4..33203b77 100644 --- a/getambassador.io/logservice_v1.json +++ b/getambassador.io/logservice_v1.json @@ -1,5 +1,80 @@ { "description": "LogService is the Schema for the logservices API", - "type": "object", - "x-kubernetes-preserve-unknown-fields": true + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "LogServiceSpec defines the desired state of LogService", + "properties": { + "driver": { + "enum": [ + "tcp", + "http" + ], + "type": "string" + }, + "driver_config": { + "properties": { + "additional_log_headers": { + "items": { + "properties": { + "during_request": { + "type": "boolean" + }, + "during_response": { + "type": "boolean" + }, + "during_trailer": { + "type": "boolean" + }, + "header_name": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "flush_interval_byte_size": { + "type": "integer" + }, + "flush_interval_time": { + "type": "integer" + }, + "grpc": { + "type": "boolean" + }, + "service": { + "type": "string" + }, + "v3ProtocolVersion": { + "enum": [ + "v2", + "v3" + ], + "type": "string" + }, + "v3StatsName": { + "type": "string" + } + }, + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + } + }, + "type": "object" } diff --git a/getambassador.io/logservice_v2.json b/getambassador.io/logservice_v2.json index be5ab5e5..33203b77 100644 --- a/getambassador.io/logservice_v2.json +++ b/getambassador.io/logservice_v2.json @@ -73,8 +73,7 @@ } }, "type": "object", - "x-kubernetes-preserve-unknown-fields": true, - "additionalProperties": false + "x-kubernetes-preserve-unknown-fields": true } }, "type": "object" diff --git a/getambassador.io/mapping_v1.json b/getambassador.io/mapping_v1.json index 0b337b1c..fd3ac0b3 100644 --- a/getambassador.io/mapping_v1.json +++ b/getambassador.io/mapping_v1.json @@ -1,5 +1,592 @@ { "description": "Mapping is the Schema for the mappings API", - "type": "object", - "x-kubernetes-preserve-unknown-fields": true + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "MappingSpec defines the desired state of Mapping", + "properties": { + "add_linkerd_headers": { + "type": "boolean" + }, + "add_request_headers": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "add_response_headers": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "allow_upgrade": { + "description": "A case-insensitive list of the non-HTTP protocols to allow \"upgrading\" to from HTTP via the \"Connection: upgrade\" mechanism[1]. After the upgrade, Ambassador does not interpret the traffic, and behaves similarly to how it does for TCPMappings. \n [1]: https://tools.ietf.org/html/rfc7230#section-6.7 \n For example, if your upstream service supports WebSockets, you would write \n allow_upgrade: - websocket \n Or if your upstream service supports upgrading from HTTP to SPDY (as the Kubernetes apiserver does for `kubectl exec` functionality), you would write \n allow_upgrade: - spdy/3.1", + "items": { + "type": "string" + }, + "type": "array" + }, + "auth_context_extensions": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "auto_host_rewrite": { + "type": "boolean" + }, + "bypass_auth": { + "type": "boolean" + }, + "bypass_error_response_overrides": { + "description": "If true, bypasses any `error_response_overrides` set on the Ambassador module.", + "type": "boolean" + }, + "case_sensitive": { + "type": "boolean" + }, + "circuit_breakers": { + "items": { + "properties": { + "max_connections": { + "type": "integer" + }, + "max_pending_requests": { + "type": "integer" + }, + "max_requests": { + "type": "integer" + }, + "max_retries": { + "type": "integer" + }, + "priority": { + "enum": [ + "default", + "high" + ], + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "cluster_idle_timeout_ms": { + "type": "integer" + }, + "cluster_max_connection_lifetime_ms": { + "type": "integer" + }, + "cluster_tag": { + "type": "string" + }, + "connect_timeout_ms": { + "type": "integer" + }, + "cors": { + "properties": { + "credentials": { + "type": "boolean" + }, + "max_age": { + "type": "string" + } + }, + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "dns_type": { + "type": "string" + }, + "docs": { + "description": "DocsInfo provides some extra information about the docs for the Mapping (used by the Dev Portal)", + "properties": { + "display_name": { + "type": "string" + }, + "ignored": { + "type": "boolean" + }, + "path": { + "type": "string" + }, + "timeout_ms": { + "type": "integer" + }, + "url": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "enable_ipv4": { + "type": "boolean" + }, + "enable_ipv6": { + "type": "boolean" + }, + "envoy_override": { + "description": "UntypedDict is relatively opaque as a Go type, but it preserves its contents in a roundtrippable way.", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "error_response_overrides": { + "description": "Error response overrides for this Mapping. Replaces all of the `error_response_overrides` set on the Ambassador module, if any.", + "items": { + "description": "A response rewrite for an HTTP error response", + "properties": { + "body": { + "description": "The new response body", + "properties": { + "content_type": { + "description": "The content type to set on the error response body when using text_format or text_format_source. Defaults to 'text/plain'.", + "type": "string" + }, + "json_format": { + "additionalProperties": { + "type": "string" + }, + "description": "A JSON response with content-type: application/json. The values can contain format text like in text_format.", + "type": "object" + }, + "text_format": { + "description": "A format string representing a text response body. Content-Type can be set using the `content_type` field below.", + "type": "string" + }, + "text_format_source": { + "description": "A format string sourced from a file on the Ambassador container. Useful for larger response bodies that should not be placed inline in configuration.", + "properties": { + "filename": { + "description": "The name of a file on the Ambassador pod that contains a format text string.", + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "on_status_code": { + "description": "The status code to match on -- not a pointer because it's required.", + "maximum": 599, + "minimum": 400, + "type": "integer" + } + }, + "required": [ + "body", + "on_status_code" + ], + "type": "object", + "additionalProperties": false + }, + "minItems": 1, + "type": "array" + }, + "grpc": { + "type": "boolean" + }, + "headers": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "host": { + "type": "string" + }, + "host_redirect": { + "type": "boolean" + }, + "host_regex": { + "type": "boolean" + }, + "host_rewrite": { + "type": "string" + }, + "idle_timeout_ms": { + "type": "integer" + }, + "keepalive": { + "properties": { + "idle_time": { + "type": "integer" + }, + "interval": { + "type": "integer" + }, + "probes": { + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + }, + "labels": { + "additionalProperties": { + "description": "A MappingLabelGroupsArray is an array of MappingLabelGroups. I know, complex.", + "items": { + "description": "A MappingLabelGroup is a single element of a MappingLabelGroupsArray: a second map, where the key is a human-readable name that identifies the group.", + "maxProperties": 1, + "minProperties": 1, + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "type": "array" + }, + "description": "A DomainMap is the overall Mapping.spec.Labels type. It maps domains (kind of like namespaces for Mapping labels) to arrays of label groups.", + "type": "object" + }, + "load_balancer": { + "properties": { + "cookie": { + "properties": { + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "ttl": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "header": { + "type": "string" + }, + "policy": { + "enum": [ + "round_robin", + "ring_hash", + "maglev", + "least_request" + ], + "type": "string" + }, + "source_ip": { + "type": "boolean" + } + }, + "required": [ + "policy" + ], + "type": "object", + "additionalProperties": false + }, + "method": { + "type": "string" + }, + "method_regex": { + "type": "boolean" + }, + "modules": { + "items": { + "description": "UntypedDict is relatively opaque as a Go type, but it preserves its contents in a roundtrippable way.", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "type": "array" + }, + "outlier_detection": { + "type": "string" + }, + "path_redirect": { + "description": "Path replacement to use when generating an HTTP redirect. Used with `host_redirect`.", + "type": "string" + }, + "precedence": { + "type": "integer" + }, + "prefix": { + "type": "string" + }, + "prefix_exact": { + "type": "boolean" + }, + "prefix_redirect": { + "description": "Prefix rewrite to use when generating an HTTP redirect. Used with `host_redirect`.", + "type": "string" + }, + "prefix_regex": { + "type": "boolean" + }, + "priority": { + "type": "string" + }, + "query_parameters": { + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "redirect_response_code": { + "description": "The response code to use when generating an HTTP redirect. Defaults to 301. Used with `host_redirect`.", + "enum": [ + 301, + 302, + 303, + 307, + 308 + ], + "type": "integer" + }, + "regex_headers": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "regex_query_parameters": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "regex_redirect": { + "description": "Prefix regex rewrite to use when generating an HTTP redirect. Used with `host_redirect`.", + "properties": { + "pattern": { + "type": "string" + }, + "substitution": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "regex_rewrite": { + "properties": { + "pattern": { + "type": "string" + }, + "substitution": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "resolver": { + "type": "string" + }, + "respect_dns_ttl": { + "type": "boolean" + }, + "retry_policy": { + "properties": { + "num_retries": { + "type": "integer" + }, + "per_try_timeout": { + "type": "string" + }, + "retry_on": { + "enum": [ + "5xx", + "gateway-error", + "connect-failure", + "retriable-4xx", + "refused-stream", + "retriable-status-codes" + ], + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "rewrite": { + "type": "string" + }, + "service": { + "type": "string" + }, + "shadow": { + "type": "boolean" + }, + "timeout_ms": { + "description": "The timeout for requests that use this Mapping. Overrides `cluster_request_timeout_ms` set on the Ambassador Module, if it exists.", + "type": "integer" + }, + "use_websocket": { + "description": "use_websocket is deprecated, and is equivlaent to setting `allow_upgrade: [\"websocket\"]`", + "type": "boolean" + }, + "v3StatsName": { + "type": "string" + }, + "v3health_checks": { + "items": { + "description": "HealthCheck specifies settings for performing active health checking on upstreams", + "properties": { + "health_check": { + "description": "Configuration for where the healthcheck request should be made to", + "maxProperties": 1, + "minProperties": 1, + "properties": { + "grpc": { + "description": "HealthCheck for gRPC upstreams. Only one of grpc_health_check or http_health_check may be specified", + "properties": { + "authority": { + "description": "The value of the :authority header in the gRPC health check request. If left empty the upstream name will be used.", + "type": "string" + }, + "upstream_name": { + "description": "The upstream name parameter which will be sent to gRPC service in the health check message", + "type": "string" + } + }, + "required": [ + "upstream_name" + ], + "type": "object", + "additionalProperties": false + }, + "http": { + "description": "HealthCheck for HTTP upstreams. Only one of http_health_check or grpc_health_check may be specified", + "properties": { + "add_request_headers": { + "additionalProperties": { + "properties": { + "append": { + "type": "boolean" + }, + "v2Representation": { + "enum": [ + "", + "string", + "null" + ], + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "object" + }, + "expected_statuses": { + "items": { + "description": "A range of response statuses from Start to End inclusive", + "properties": { + "max": { + "description": "End of the statuses to include. Must be between 100 and 599 (inclusive)", + "maximum": 599, + "minimum": 100, + "type": "integer" + }, + "min": { + "description": "Start of the statuses to include. Must be between 100 and 599 (inclusive)", + "maximum": 599, + "minimum": 100, + "type": "integer" + } + }, + "required": [ + "max", + "min" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "hostname": { + "type": "string" + }, + "path": { + "type": "string" + }, + "remove_request_headers": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "path" + ], + "type": "object", + "additionalProperties": false + } + }, + "type": "object", + "additionalProperties": false + }, + "healthy_threshold": { + "description": "Number of expected responses for the upstream to be considered healthy. Defaults to 1.", + "type": "integer" + }, + "interval": { + "description": "Interval between health checks. Defaults to every 5 seconds.", + "type": "string" + }, + "timeout": { + "description": "Timeout for connecting to the health checking endpoint. Defaults to 3 seconds.", + "type": "string" + }, + "unhealthy_threshold": { + "description": "Number of non-expected responses for the upstream to be considered unhealthy. A single 503 will mark the upstream as unhealthy regardless of the threshold. Defaults to 2.", + "type": "integer" + } + }, + "required": [ + "health_check" + ], + "type": "object", + "additionalProperties": false + }, + "minItems": 1, + "type": "array" + }, + "weight": { + "type": "integer" + } + }, + "required": [ + "prefix", + "service" + ], + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + }, + "status": { + "description": "MappingStatus defines the observed state of Mapping", + "properties": { + "reason": { + "type": "string" + }, + "state": { + "enum": [ + "", + "Inactive", + "Running" + ], + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + } + }, + "type": "object" } diff --git a/getambassador.io/mapping_v2.json b/getambassador.io/mapping_v2.json index 84da51c4..fd3ac0b3 100644 --- a/getambassador.io/mapping_v2.json +++ b/getambassador.io/mapping_v2.json @@ -102,8 +102,7 @@ } }, "type": "object", - "x-kubernetes-preserve-unknown-fields": true, - "additionalProperties": false + "x-kubernetes-preserve-unknown-fields": true }, "dns_type": { "type": "string" @@ -568,8 +567,7 @@ "service" ], "type": "object", - "x-kubernetes-preserve-unknown-fields": true, - "additionalProperties": false + "x-kubernetes-preserve-unknown-fields": true }, "status": { "description": "MappingStatus defines the observed state of Mapping", diff --git a/getambassador.io/module_v1.json b/getambassador.io/module_v1.json index f46c79ca..94770bdd 100644 --- a/getambassador.io/module_v1.json +++ b/getambassador.io/module_v1.json @@ -1,5 +1,28 @@ { - "description": "A Module defines system-wide configuration. The type of module is controlled by the .metadata.name; valid names are \"ambassador\" or \"tls\".", - "type": "object", - "x-kubernetes-preserve-unknown-fields": true + "description": "A Module defines system-wide configuration. The type of module is controlled by the .metadata.name; valid names are \"ambassador\" or \"tls\". \n https://www.getambassador.io/docs/edge-stack/latest/topics/running/ambassador/#the-ambassador-module https://www.getambassador.io/docs/edge-stack/latest/topics/running/tls/#tls-module-deprecated", + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "properties": { + "config": { + "description": "UntypedDict is relatively opaque as a Go type, but it preserves its contents in a roundtrippable way.", + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + } + }, + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + } + }, + "type": "object" } diff --git a/getambassador.io/module_v2.json b/getambassador.io/module_v2.json index 67f91f39..94770bdd 100644 --- a/getambassador.io/module_v2.json +++ b/getambassador.io/module_v2.json @@ -21,8 +21,7 @@ } }, "type": "object", - "x-kubernetes-preserve-unknown-fields": true, - "additionalProperties": false + "x-kubernetes-preserve-unknown-fields": true } }, "type": "object" diff --git a/getambassador.io/ratelimitservice_v1.json b/getambassador.io/ratelimitservice_v1.json index 4e0a8eff..9157aa3b 100644 --- a/getambassador.io/ratelimitservice_v1.json +++ b/getambassador.io/ratelimitservice_v1.json @@ -1,5 +1,50 @@ { "description": "RateLimitService is the Schema for the ratelimitservices API", - "type": "object", - "x-kubernetes-preserve-unknown-fields": true + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "RateLimitServiceSpec defines the desired state of RateLimitService", + "properties": { + "domain": { + "type": "string" + }, + "failure_mode_deny": { + "description": "FailureModeDeny when set to true, envoy will deny traffic if it is unable to communicate with the rate limit service.", + "type": "boolean" + }, + "protocol_version": { + "enum": [ + "v2", + "v3" + ], + "type": "string" + }, + "service": { + "type": "string" + }, + "timeout_ms": { + "type": "integer" + }, + "v3StatsName": { + "type": "string" + } + }, + "required": [ + "service" + ], + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + } + }, + "type": "object" } diff --git a/getambassador.io/ratelimitservice_v2.json b/getambassador.io/ratelimitservice_v2.json index 718c915a..9157aa3b 100644 --- a/getambassador.io/ratelimitservice_v2.json +++ b/getambassador.io/ratelimitservice_v2.json @@ -43,8 +43,7 @@ "service" ], "type": "object", - "x-kubernetes-preserve-unknown-fields": true, - "additionalProperties": false + "x-kubernetes-preserve-unknown-fields": true } }, "type": "object" diff --git a/getambassador.io/tcpmapping_v1.json b/getambassador.io/tcpmapping_v1.json index e5d6979c..0e91ac55 100644 --- a/getambassador.io/tcpmapping_v1.json +++ b/getambassador.io/tcpmapping_v1.json @@ -1,5 +1,91 @@ { "description": "TCPMapping is the Schema for the tcpmappings API", - "type": "object", - "x-kubernetes-preserve-unknown-fields": true + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "TCPMappingSpec defines the desired state of TCPMapping", + "properties": { + "address": { + "type": "string" + }, + "circuit_breakers": { + "items": { + "properties": { + "max_connections": { + "type": "integer" + }, + "max_pending_requests": { + "type": "integer" + }, + "max_requests": { + "type": "integer" + }, + "max_retries": { + "type": "integer" + }, + "priority": { + "enum": [ + "default", + "high" + ], + "type": "string" + } + }, + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "cluster_tag": { + "type": "string" + }, + "enable_ipv4": { + "type": "boolean" + }, + "enable_ipv6": { + "type": "boolean" + }, + "host": { + "type": "string" + }, + "idle_timeout_ms": { + "description": "FIXME(lukeshu): Surely this should be an 'int'?", + "type": "string" + }, + "port": { + "description": "Port isn't a pointer because it's required.", + "type": "integer" + }, + "resolver": { + "type": "string" + }, + "service": { + "type": "string" + }, + "v3StatsName": { + "type": "string" + }, + "weight": { + "type": "integer" + } + }, + "required": [ + "port", + "service" + ], + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + } + }, + "type": "object" } diff --git a/getambassador.io/tcpmapping_v2.json b/getambassador.io/tcpmapping_v2.json index 1fb78d16..0e91ac55 100644 --- a/getambassador.io/tcpmapping_v2.json +++ b/getambassador.io/tcpmapping_v2.json @@ -84,8 +84,7 @@ "service" ], "type": "object", - "x-kubernetes-preserve-unknown-fields": true, - "additionalProperties": false + "x-kubernetes-preserve-unknown-fields": true } }, "type": "object" diff --git a/getambassador.io/tlscontext_v1.json b/getambassador.io/tlscontext_v1.json index 79a9ed42..c2404d01 100644 --- a/getambassador.io/tlscontext_v1.json +++ b/getambassador.io/tlscontext_v1.json @@ -1,5 +1,93 @@ { "description": "TLSContext is the Schema for the tlscontexts API", - "type": "object", - "x-kubernetes-preserve-unknown-fields": true + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "TLSContextSpec defines the desired state of TLSContext", + "properties": { + "alpn_protocols": { + "type": "string" + }, + "ca_secret": { + "type": "string" + }, + "cacert_chain_file": { + "type": "string" + }, + "cert_chain_file": { + "type": "string" + }, + "cert_required": { + "type": "boolean" + }, + "cipher_suites": { + "items": { + "type": "string" + }, + "type": "array" + }, + "ecdh_curves": { + "items": { + "type": "string" + }, + "type": "array" + }, + "hosts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "max_tls_version": { + "enum": [ + "v1.0", + "v1.1", + "v1.2", + "v1.3" + ], + "type": "string" + }, + "min_tls_version": { + "enum": [ + "v1.0", + "v1.1", + "v1.2", + "v1.3" + ], + "type": "string" + }, + "private_key_file": { + "type": "string" + }, + "redirect_cleartext_from": { + "type": "integer" + }, + "secret": { + "type": "string" + }, + "secret_namespacing": { + "type": "boolean" + }, + "sni": { + "type": "string" + }, + "v3CRLSecret": { + "type": "string" + } + }, + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + } + }, + "type": "object" } diff --git a/getambassador.io/tlscontext_v2.json b/getambassador.io/tlscontext_v2.json index bcf8deb2..c2404d01 100644 --- a/getambassador.io/tlscontext_v2.json +++ b/getambassador.io/tlscontext_v2.json @@ -86,8 +86,7 @@ } }, "type": "object", - "x-kubernetes-preserve-unknown-fields": true, - "additionalProperties": false + "x-kubernetes-preserve-unknown-fields": true } }, "type": "object" diff --git a/getambassador.io/tracingservice_v1.json b/getambassador.io/tracingservice_v1.json index c04acd4a..45ea659a 100644 --- a/getambassador.io/tracingservice_v1.json +++ b/getambassador.io/tracingservice_v1.json @@ -1,5 +1,172 @@ { "description": "TracingService is the Schema for the tracingservices API", - "type": "object", - "x-kubernetes-preserve-unknown-fields": true + "properties": { + "apiVersion": { + "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", + "type": "string" + }, + "kind": { + "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", + "type": "string" + }, + "metadata": { + "type": "object" + }, + "spec": { + "description": "TracingServiceSpec defines the desired state of TracingService", + "properties": { + "config": { + "properties": { + "access_token_file": { + "type": "string" + }, + "collector_cluster": { + "type": "string" + }, + "collector_endpoint": { + "type": "string" + }, + "collector_endpoint_version": { + "enum": [ + "HTTP_JSON_V1", + "HTTP_JSON", + "HTTP_PROTO" + ], + "type": "string" + }, + "collector_hostname": { + "type": "string" + }, + "service_name": { + "type": "string" + }, + "shared_span_context": { + "type": "boolean" + }, + "trace_id_128bit": { + "type": "boolean" + }, + "v3PropagationModes": { + "items": { + "enum": [ + "ENVOY", + "LIGHTSTEP", + "B3", + "TRACE_CONTEXT" + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object", + "additionalProperties": false + }, + "driver": { + "enum": [ + "lightstep", + "zipkin", + "datadog", + "opentelemetry" + ], + "type": "string" + }, + "sampling": { + "properties": { + "client": { + "type": "integer" + }, + "overall": { + "type": "integer" + }, + "random": { + "type": "integer" + } + }, + "type": "object", + "additionalProperties": false + }, + "service": { + "type": "string" + }, + "tag_headers": { + "items": { + "type": "string" + }, + "type": "array" + }, + "v3CustomTags": { + "items": { + "description": "TracingCustomTag provides a data structure for capturing envoy's `type.tracing.v3.CustomTag`", + "properties": { + "environment": { + "description": "Environment explicitly specifies the protocol stack to set up. Exactly one of Literal, Environment or Header must be supplied.", + "properties": { + "default_value": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "literal": { + "description": "Literal explicitly specifies the protocol stack to set up. Exactly one of Literal, Environment or Header must be supplied.", + "properties": { + "value": { + "type": "string" + } + }, + "required": [ + "value" + ], + "type": "object", + "additionalProperties": false + }, + "request_header": { + "description": "Header explicitly specifies the protocol stack to set up. Exactly one of Literal, Environment or Header must be supplied.", + "properties": { + "default_value": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object", + "additionalProperties": false + }, + "tag": { + "type": "string" + } + }, + "required": [ + "tag" + ], + "type": "object", + "additionalProperties": false + }, + "type": "array" + }, + "v3StatsName": { + "type": "string" + } + }, + "required": [ + "driver", + "service" + ], + "type": "object", + "x-kubernetes-preserve-unknown-fields": true + } + }, + "type": "object" } diff --git a/getambassador.io/tracingservice_v2.json b/getambassador.io/tracingservice_v2.json index e0bcba6e..45ea659a 100644 --- a/getambassador.io/tracingservice_v2.json +++ b/getambassador.io/tracingservice_v2.json @@ -66,7 +66,8 @@ "enum": [ "lightstep", "zipkin", - "datadog" + "datadog", + "opentelemetry" ], "type": "string" }, @@ -164,8 +165,7 @@ "service" ], "type": "object", - "x-kubernetes-preserve-unknown-fields": true, - "additionalProperties": false + "x-kubernetes-preserve-unknown-fields": true } }, "type": "object" diff --git a/getambassador.io/tracingservice_v3alpha1.json b/getambassador.io/tracingservice_v3alpha1.json index 794d0b4a..933b9979 100644 --- a/getambassador.io/tracingservice_v3alpha1.json +++ b/getambassador.io/tracingservice_v3alpha1.json @@ -134,7 +134,8 @@ "enum": [ "lightstep", "zipkin", - "datadog" + "datadog", + "opentelemetry" ], "type": "string" },