Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


This repository is an eksctl profile for deploying the App Mesh Kubernetes components along with monitoring and progressive delivery tooling on an EKS cluster.


Create an EKS cluster named appmesh:

eksctl create cluster --name=appmesh \
--region=us-west-2 \
--nodes 2 \
--node-volume-size=120 \

The above command will create a two nodes cluster with App Mesh IAM policy attached to the EKS node instance role.

Create a repository on GitHub and run the enable repo and enable profile commands (replace GHUSER and GHREPO values with your own):

export GHUSER=username
export GHREPO=repo

eksctl enable repo \
--cluster=appmesh \
--region=us-west-2 \${GHUSER}/${GHREPO} \
--git-user=${GHUSER} \

The command eksctl enable repo takes an existing EKS cluster and an empty repository and sets up a GitOps pipeline.

After the command finishes installing Flux and Helm Operator, you will be asked to add Flux's deploy key to your GitHub repository. Once that is done, Flux will be able to pick up changes in the repository and deploy them to the cluster.

eksctl enable profile appmesh \
--cluster=appmesh \
--region=us-west-2 \${GHUSER}/${GHREPO} \
--git-user=fluxcd \

The command eksctl enable profile appmesh installs the App Mesh control plane on this cluster, and adds its manifests to the configured repository.

List the installed components:

$ kubectl get helmreleases --all-namespaces

NAMESPACE        NAME                 RELEASE              STATUS     MESSAGE                  AGE
appmesh-system   appmesh-controller   appmesh-controller   DEPLOYED   helm install succeeded   1m
appmesh-system   appmesh-inject       appmesh-inject       DEPLOYED   helm install succeeded   1m
appmesh-system   appmesh-prometheus   appmesh-prometheus   DEPLOYED   helm install succeeded   1m
appmesh-system   appmesh-grafana      appmesh-grafana      DEPLOYED   helm install succeeded   1m
appmesh-system   flagger              flagger              DEPLOYED   helm install succeeded   1m
kube-system      metrics-server       metrics-server       DEPLOYED   helm install succeeded   1m

Verify that the mesh has been created and it's active:

$ kubectl describe mesh

Name:         appmesh
API Version:
Kind:         Mesh
  Service Discovery Type:  dns
  Mesh Condition:
    Status: True
    Type:   MeshActive

Access the Grafana dashboards with:

kubectl -n appmesh-system port-forward svc/appmesh-grafana 3000:3000

Open your browser and navigate to localhost:3000.

AWS App Mesh: Control Plane AWS App Mesh: Data Plane

Get in touch

Create an issue, or login to Weave Community Slack (#eksctl) (signup).

Weaveworks follows the CNCF Code of Conduct. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting a Weaveworks project maintainer, or Alexis Richardson (