Docsright arrowEmissary-ingressright arrowEmissary-ingress quick start

3 min • read

Emissary-ingress quick start

Contents

1. Installation

We'll start by installing Emissary-ingress into your cluster.

We recommend using Helm but there are other options below to choose from.

shell
# Add the Repo:
helm repo add datawire https://app.getambassador.io
helm repo update
# Create Namespace and Install:
kubectl create namespace emissary && \
kubectl apply -f https://app.getambassador.io/yaml/emissary/3.9.1/emissary-crds.yaml
kubectl wait --timeout=90s --for=condition=available deployment emissary-apiext -n emissary-system
helm install emissary-ingress --namespace emissary datawire/emissary-ingress && \
kubectl -n emissary wait --for condition=available --timeout=90s deploy -lapp.kubernetes.io/instance=emissary-ingress

2. Routing traffic from the edge

Emissary-ingress uses Kubernetes Custom Resource Definitions (CRDs) to declaratively define its desired state. The workflow you are going to build uses a simple demo app, a Listener CRD, and a Mapping CRD. The Listener CRD tells Emissary-ingress what port to listen on, and the Mapping CRD tells Emissary-ingress how to route incoming requests by host and URL path from the edge of your cluster to Kubernetes services.

  1. Start by creating a Listener resource for HTTP on port 8080:

    shell
    kubectl apply -f - <<EOF
    ---
    apiVersion: getambassador.io/v3alpha1
    kind: Listener
    metadata:
    name: emissary-ingress-listener-8080
    namespace: emissary
    spec:
    port: 8080
    protocol: HTTP
    securityModel: XFP
    hostBinding:
    namespace:
    from: ALL
    EOF
  2. Apply the YAML for the "Quote" service.

    shell
    kubectl apply -f https://app.getambassador.io/yaml/v2-docs/3.9.1/quickstart/qotm.yaml
  3. Generates the YAML for a Mapping to tell Emissary-ingress to route all traffic inbound to the /backend/ path to the quote Service.

    • Path Matching: /backend/
    • OpenAPI Docs: /.ambassador-internal/openapi-docs

    Apply this YAML to your target cluster now.

  4. Store the Emissary-ingress load balancer IP address to a local environment variable. You will use this variable to test access to your service.

  5. Test the configuration by accessing the service through the Emissary-ingress load balancer:

What's next?

Explore some of the popular tutorials on Emissary-ingress:

Emissary-ingress has a comprehensive range of features to support the requirements of any edge microservice.

To learn more about how Emissary-ingress works, read the Emissary-ingress Story.

Need support for your API Gateway?