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.
Note:
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.
As of version 3.8.0 (Helm chart v8.8.0) Edge Stack requires an Ambassador Labs license key or Cloud Connect token to operate. A license key is entered using licenseKey.value, and a Cloud Connect token is entered using emissary-ingress.agent.cloudConnectToken. Please see instructions.** on how to obtain these if you do not have them.
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:
Notes:
Package | Version | License |
---|---|---|
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 deployed
:
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
edge-stack ambassador 1 2022-02-14 18:02:21.554041 +0200 EET deployed edge-stack-8.7.2 3.7.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 Running
:
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 134.209.131.93 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 8.7.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 8.7.2 \
--namespace ambassador \
--values values.yml
You can check what versions are available to upgrade by navigating to the emissary-ingress official releases page from GitHub. Alternatively, you can use ArtifactHUB.
To upgrade the stack to a newer version, run the following command, replacing the &amp;lt; &amp;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 uninstall
command:
helm uninstall edge-stack -n ambassador
And then the following delete
commands:
kubectl delete ns ambassador
kubectl delete -f https://app.getambassador.io/yaml/edge-stack/3.7.2/aes-crds.yaml