Emissary-Ingress
Emissary-Ingress is a CNCF incubating Kubernetes-native API gateway built on the Envoy proxy. It provides ingress control, load balancing, authentication, rate limiting, and traffic management for microservices. Emissary-Ingress is configured through Kubernetes custom resources and supports canary releases, circuit breaking, and automatic retries.
2 APIs
0 Features
API GatewayCloud NativeEnvoyIncubatingIngressKubernetes
APIs
Emissary-Ingress Configuration API
Emissary-Ingress is configured through Kubernetes custom resources including Mapping for routing rules, Host for domain configuration, TLSContext for TLS termination, RateLimitS...
Emissary-Ingress Gateway API
Emissary-Ingress supports a subset of the Kubernetes Gateway API standard, including GatewayClass, Gateway, and HTTPRoute resources. This enables teams to use the next-generatio...
Collections
Pricing Plans
Rate Limits
FinOps
Emissary Ingress Finops
FINOPSSemantic Vocabularies
Resources
🔗
Website
Website
🔗
Documentation
Documentation
🚀
GettingStarted
GettingStarted
👥
GitHubOrganization
GitHubOrganization
👥
GitHubRepository
GitHubRepository
💬
Support
Support
🔗
Community
Community
🔗
Issue Tracker
Issue Tracker
📰
Blog
Blog
📄
ChangeLog
ChangeLog
🔗
JSONLD
JSONLD
🔗
JSONSchema
JSONSchema
Sources
opencollection: 1.0.0
info:
name: Emissary-Ingress Configuration API
version: 3.9.0
items:
- info:
name: Mapping
type: folder
items:
- info:
name: Emissary-Ingress List Mapping resources in a namespace
type: http
http:
method: GET
url: https://{kubernetes-api-server}/apis/getambassador.io/v3alpha1/namespaces/:namespace/mappings
params:
- name: namespace
value: ''
type: path
description: The Kubernetes namespace of the resource.
- name: labelSelector
value: ''
type: query
description: A selector to restrict the list of returned resources by their labels. Defaults to everything.
- name: fieldSelector
value: ''
type: query
description: A selector to restrict the list of returned resources by their fields.
- name: limit
value: ''
type: query
description: Maximum number of responses to return per page. If there are additional results, a continue token is
returned.
- name: continue
value: ''
type: query
description: A continuation token for paginating through large result sets, returned from a previous list call.
docs: Returns a list of all Mapping custom resources in the specified Kubernetes namespace. Mappings define how inbound
HTTP/HTTPS requests are routed to backend services based on URL prefix, headers, and other match criteria.
- info:
name: Emissary-Ingress Create a Mapping resource
type: http
http:
method: POST
url: https://{kubernetes-api-server}/apis/getambassador.io/v3alpha1/namespaces/:namespace/mappings
params:
- name: namespace
value: ''
type: path
description: The Kubernetes namespace of the resource.
body:
type: json
data: '{}'
docs: Creates a new Mapping custom resource in the specified namespace. The Mapping defines routing rules including the
URL prefix, target service, rewrite rules, timeout policies, retry policies, CORS settings, and traffic weighting for
canary or A/B deployments.
- info:
name: Emissary-Ingress Get a specific Mapping resource
type: http
http:
method: GET
url: https://{kubernetes-api-server}/apis/getambassador.io/v3alpha1/namespaces/:namespace/mappings/:name
params:
- name: namespace
value: ''
type: path
description: The Kubernetes namespace of the resource.
- name: name
value: ''
type: path
description: The name of the resource.
docs: Returns the specified Mapping custom resource from the given namespace, including its current status, route configuration,
and observed generation information.
- info:
name: Emissary-Ingress Replace a Mapping resource
type: http
http:
method: PUT
url: https://{kubernetes-api-server}/apis/getambassador.io/v3alpha1/namespaces/:namespace/mappings/:name
params:
- name: namespace
value: ''
type: path
description: The Kubernetes namespace of the resource.
- name: name
value: ''
type: path
description: The name of the resource.
body:
type: json
data: '{}'
docs: Replaces the entire Mapping resource with the provided specification. The resourceVersion in the metadata must match
the current version to prevent conflicting concurrent updates.
- info:
name: Emissary-Ingress Partially update a Mapping resource
type: http
http:
method: PATCH
url: https://{kubernetes-api-server}/apis/getambassador.io/v3alpha1/namespaces/:namespace/mappings/:name
params:
- name: namespace
value: ''
type: path
description: The Kubernetes namespace of the resource.
- name: name
value: ''
type: path
description: The name of the resource.
body:
type: json
data: '{}'
docs: Applies a partial update to the specified Mapping resource using JSON Merge Patch or Strategic Merge Patch format.
- info:
name: Emissary-Ingress Delete a Mapping resource
type: http
http:
method: DELETE
url: https://{kubernetes-api-server}/apis/getambassador.io/v3alpha1/namespaces/:namespace/mappings/:name
params:
- name: namespace
value: ''
type: path
description: The Kubernetes namespace of the resource.
- name: name
value: ''
type: path
description: The name of the resource.
docs: Deletes the specified Mapping resource. Emissary-Ingress will remove the corresponding routing rule from Envoy configuration
after the resource is deleted.
- info:
name: Emissary-Ingress List Mapping resources across all namespaces
type: http
http:
method: GET
url: https://{kubernetes-api-server}/apis/getambassador.io/v3alpha1/mappings
params:
- name: labelSelector
value: ''
type: query
description: A selector to restrict the list of returned resources by their labels. Defaults to everything.
- name: fieldSelector
value: ''
type: query
description: A selector to restrict the list of returned resources by their fields.
- name: limit
value: ''
type: query
description: Maximum number of responses to return per page. If there are additional results, a continue token is
returned.
- name: continue
value: ''
type: query
description: A continuation token for paginating through large result sets, returned from a previous list call.
docs: Returns all Mapping custom resources across all namespaces in the cluster. Useful for cluster-wide visibility into
all routing configurations managed by Emissary-Ingress.
- info:
name: Host
type: folder
items:
- info:
name: Emissary-Ingress List Host resources in a namespace
type: http
http:
method: GET
url: https://{kubernetes-api-server}/apis/getambassador.io/v3alpha1/namespaces/:namespace/hosts
params:
- name: namespace
value: ''
type: path
description: The Kubernetes namespace of the resource.
- name: labelSelector
value: ''
type: query
description: A selector to restrict the list of returned resources by their labels. Defaults to everything.
- name: fieldSelector
value: ''
type: query
description: A selector to restrict the list of returned resources by their fields.
- name: limit
value: ''
type: query
description: Maximum number of responses to return per page. If there are additional results, a continue token is
returned.
- name: continue
value: ''
type: query
description: A continuation token for paginating through large result sets, returned from a previous list call.
docs: Returns a list of all Host custom resources in the specified namespace. Host resources configure domain names, ACME-based
TLS certificate provisioning, and TLS termination settings for inbound traffic.
- info:
name: Emissary-Ingress Create a Host resource
type: http
http:
method: POST
url: https://{kubernetes-api-server}/apis/getambassador.io/v3alpha1/namespaces/:namespace/hosts
params:
- name: namespace
value: ''
type: path
description: The Kubernetes namespace of the resource.
body:
type: json
data: '{}'
docs: Creates a new Host custom resource in the specified namespace. The Host defines the hostname, TLS certificate management
via ACME, and TLS termination configuration for accepting inbound HTTPS traffic.
- info:
name: Emissary-Ingress Get a specific Host resource
type: http
http:
method: GET
url: https://{kubernetes-api-server}/apis/getambassador.io/v3alpha1/namespaces/:namespace/hosts/:name
params:
- name: namespace
value: ''
type: path
description: The Kubernetes namespace of the resource.
- name: name
value: ''
type: path
description: The name of the resource.
docs: Returns the specified Host custom resource from the given namespace, including its current certificate provisioning
status and TLS configuration.
- info:
name: Emissary-Ingress Replace a Host resource
type: http
http:
method: PUT
url: https://{kubernetes-api-server}/apis/getambassador.io/v3alpha1/namespaces/:namespace/hosts/:name
params:
- name: namespace
value: ''
type: path
description: The Kubernetes namespace of the resource.
- name: name
value: ''
type: path
description: The name of the resource.
body:
type: json
data: '{}'
docs: Replaces the entire Host resource with the provided specification. Changes to the TLS configuration may trigger
certificate re-provisioning via the ACME protocol.
- info:
name: Emissary-Ingress Delete a Host resource
type: http
http:
method: DELETE
url: https://{kubernetes-api-server}/apis/getambassador.io/v3alpha1/namespaces/:namespace/hosts/:name
params:
- name: namespace
value: ''
type: path
description: The Kubernetes namespace of the resource.
- name: name
value: ''
type: path
description: The name of the resource.
docs: Deletes the specified Host resource. Emissary-Ingress will stop accepting traffic for the corresponding hostname
after deletion.
- info:
name: TLSContext
type: folder
items:
- info:
name: Emissary-Ingress List TLSContext resources in a namespace
type: http
http:
method: GET
url: https://{kubernetes-api-server}/apis/getambassador.io/v3alpha1/namespaces/:namespace/tlscontexts
params:
- name: namespace
value: ''
type: path
description: The Kubernetes namespace of the resource.
- name: labelSelector
value: ''
type: query
description: A selector to restrict the list of returned resources by their labels. Defaults to everything.
- name: limit
value: ''
type: query
description: Maximum number of responses to return per page. If there are additional results, a continue token is
returned.
- name: continue
value: ''
type: query
description: A continuation token for paginating through large result sets, returned from a previous list call.
docs: Returns all TLSContext custom resources in the specified namespace. TLSContext resources define reusable TLS configuration
including certificates, protocols, cipher suites, and mutual TLS settings that can be referenced by Mapping and Host
resources.
- info:
name: Emissary-Ingress Create a TLSContext resource
type: http
http:
method: POST
url: https://{kubernetes-api-server}/apis/getambassador.io/v3alpha1/namespaces/:namespace/tlscontexts
params:
- name: namespace
value: ''
type: path
description: The Kubernetes namespace of the resource.
body:
type: json
data: '{}'
docs: Creates a new TLSContext custom resource in the specified namespace defining TLS termination settings including
the certificate secret, minimum protocol version, cipher suite restrictions, and client certificate validation options.
- info:
name: Emissary-Ingress Get a specific TLSContext resource
type: http
http:
method: GET
url: https://{kubernetes-api-server}/apis/getambassador.io/v3alpha1/namespaces/:namespace/tlscontexts/:name
params:
- name: namespace
value: ''
type: path
description: The Kubernetes namespace of the resource.
- name: name
value: ''
type: path
description: The name of the resource.
docs: Returns the specified TLSContext custom resource from the given namespace, including its certificate configuration
and protocol settings.
- info:
name: Emissary-Ingress Delete a TLSContext resource
type: http
http:
method: DELETE
url: https://{kubernetes-api-server}/apis/getambassador.io/v3alpha1/namespaces/:namespace/tlscontexts/:name
params:
- name: namespace
value: ''
type: path
description: The Kubernetes namespace of the resource.
- name: name
value: ''
type: path
description: The name of the resource.
docs: Deletes the specified TLSContext resource. Any Mappings or Hosts referencing this TLSContext will fall back to default
TLS settings.
- info:
name: RateLimitService
type: folder
items:
- info:
name: Emissary-Ingress List RateLimitService resources in a namespace
type: http
http:
method: GET
url: https://{kubernetes-api-server}/apis/getambassador.io/v3alpha1/namespaces/:namespace/ratelimitservices
params:
- name: namespace
value: ''
type: path
description: The Kubernetes namespace of the resource.
- name: labelSelector
value: ''
type: query
description: A selector to restrict the list of returned resources by their labels. Defaults to everything.
- name: limit
value: ''
type: query
description: Maximum number of responses to return per page. If there are additional results, a continue token is
returned.
- name: continue
value: ''
type: query
description: A continuation token for paginating through large result sets, returned from a previous list call.
docs: Returns all RateLimitService custom resources in the specified namespace. These resources configure integration
with external rate limiting services that implement the Envoy rate limit gRPC API.
- info:
name: Emissary-Ingress Create a RateLimitService resource
type: http
http:
method: POST
url: https://{kubernetes-api-server}/apis/getambassador.io/v3alpha1/namespaces/:namespace/ratelimitservices
params:
- name: namespace
value: ''
type: path
description: The Kubernetes namespace of the resource.
body:
type: json
data: '{}'
docs: Creates a new RateLimitService custom resource pointing to an external rate limiting service. Emissary-Ingress will
consult this service for rate limit decisions on all requests that include rate limit labels in their Mapping configuration.
- info:
name: AuthService
type: folder
items:
- info:
name: Emissary-Ingress List AuthService resources in a namespace
type: http
http:
method: GET
url: https://{kubernetes-api-server}/apis/getambassador.io/v3alpha1/namespaces/:namespace/authservices
params:
- name: namespace
value: ''
type: path
description: The Kubernetes namespace of the resource.
- name: labelSelector
value: ''
type: query
description: A selector to restrict the list of returned resources by their labels. Defaults to everything.
- name: limit
value: ''
type: query
description: Maximum number of responses to return per page. If there are additional results, a continue token is
returned.
- name: continue
value: ''
type: query
description: A continuation token for paginating through large result sets, returned from a previous list call.
docs: Returns all AuthService custom resources in the specified namespace. AuthService resources configure an external
authentication and authorization service that Emissary-Ingress calls before forwarding requests to upstream backend
services.
- info:
name: Emissary-Ingress Create an AuthService resource
type: http
http:
method: POST
url: https://{kubernetes-api-server}/apis/getambassador.io/v3alpha1/namespaces/:namespace/authservices
params:
- name: namespace
value: ''
type: path
description: The Kubernetes namespace of the resource.
body:
type: json
data: '{}'
docs: Creates a new AuthService custom resource in the specified namespace configuring the external authentication service
URL, protocol, timeout, allowed request headers, and allowed authorization headers.
bundled: true