Ambassador Edge Stack is an Ingress Controller and API Gateway built on Envoy Proxy. Envoy Proxy is designed for cloud-native applications. Ambassador exposes Envoy’s functionality as Custom Resource Definitions, with integrated rate limiting, authentication, load balancing, and observability.
Ambassador Edge Stack 2.X introduces some changes that aren’t backwards-compatible with 1.X. If you already have an existing installation that uses 1.X and you want to upgrade to version 2.X, please use the following guide for upgrade.
The DigitalOcean 1-click application installs the Helm 3 version of Ambassador Edge Stack. This version includes the Authentication and Rate Limiting plugins, as well as the Dev Portal. It also includes the option of upgrading your installation to include Service Preview and MicroCD, two Edge Stack components that improve and streamline the developer self-service model. To explore the features of these components, see the following links.
Edge Stack Components:
|Ambassador Edge Stack||2.2.2||Apache 2.0|
Click the Deploy to DigitalOcean button to install a Kubernetes 1-Click Application. If you aren’t logged in, this link will prompt you to log in with your DigitalOcean account.
In addition to creating Ambassador Ingress Controller using the control panel, you can also use the DigitalOcean API. As an example, to create a 3 node DigitalOcean Kubernetes cluster made up of Basic Droplets in the SFO2 region, you can use the following
doctl command. You need to authenticate with
doctl with your API access token) and replace the
$CLUSTER_NAME variable with the chosen name for your cluster in the command below.
doctl kubernetes clusters create --size s-4vcpu-8gb $CLUSTER_NAME --1-clicks ambassador
You can connect to your DigitalOcean Kubernetes cluster by following our how-to guide.
For additional instructions on configuring a DigitalOcean Kubernetes cluster, see the following guides:
First, verify that the Helm installation was successful by running following command:
helm ls -n ambassador
If the installation was successful, the
STATUS column value in the output reads
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION edge-stack ambassador 1 2022-02-14 18:02:21.554041 +0200 EET deployed edge-stack-7.3.2 2.2.2
Next, verify that the Ambassador Ingress pods are up and running with the following command:
kubectl get pods --all-namespaces -l app.kubernetes.io/name=edge-stack
If they’re running, all pods listed in the output are in a
READY state and the
STATUS for each reads
NAMESPACE NAME READY STATUS RESTARTS AGE ambassador edge-stack-688f84d947-dv244 1/1 Running 0 5m39s ambassador edge-stack-688f84d947-r4qcs 1/1 Running 0 5m39s ambassador edge-stack-688f84d947-snzmh 1/1 Running 0 5m39s
Then, inspect the external IP address of your Ambassador Ingress Controller Load Balancer by running following command:
kubectl get svc -n ambassador
If installed correctly, the output has the
EXTERNAL-IP column, containing a valid IP address:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE edge-stack LoadBalancer 10.245.88.194 126.96.36.199 80:32617/TCP,443:31000/TCP 6m19s edge-stack-admin ClusterIP 10.245.66.159 <none> 8877/TCP,8005/TCP 6m19s edge-stack-redis ClusterIP 10.245.188.44 <none> 6379/TCP 6m19s
Finally, Ambassador Edge Stack should now be successfully installed and running, but in order to get started deploying Services and test routing to them you need to configure a few more resources:
For more details about checking Ingress Controller deployment status and functionality, lease refer to the Ambassador Ingress Controller tutorial.
The Ambassador Ingress stack provides some custom values to start with. Please have a look at the values file from the main GitHub repository (explanations are provided inside, where necessary).
You can always inspect all the available options, as well as the default values for the Ambassador Ingress Helm chart by running below command:
helm show values datawire/edge-stack --version 7.3.2
After tweaking the Helm values file (
values.yml) according to your needs, you can always apply the changes via
helm upgrade command, as shown below:
helm upgrade edge-stack datawire/edge-stack --version 7.3.2 \ --namespace ambassador \ --values values.yml
To upgrade the stack to a newer version, run the following command, replacing the
&lt; &gt; placeholders with their corresponding information:
helm upgrade edge-stack datawire/edge-stack \ --version <INGRESS_AMBASSADOR_STACK_NEW_VERSION> \ --namespace ambassador \ --values <YOUR_HELM_VALUES_FILE>
See helm upgrade for command documentation.
To uninstall Ambassador Ingress Controller, you need to have Helm 3 installed. Once installed, run the following
helm uninstall edge-stack -n ambassador
And then the following
kubectl delete ns ambassador kubectl delete -f https://app.getambassador.io/yaml/edge-stack/2.2.2/aes-crds.yaml