Install App Mesh Controller

Now the CRDs have been installed we can install the controller that understands them.

The AWS App Mesh Controller is available as a Helm package from the EKS Chart Repository. We can use the Helm Operator along with this chart to install the controller.

To install a chart using the Helm Operator we need to define a HelmRelease. A HelmRelease is a way to declare the desired state of a Helm release. The HelmRelease can be applied to a cluster using GitOps.

Create a new file called appmesh-controller.yaml in the appmesh-system folder. Add the following as contents to the file:

kind: HelmRelease
  name: appmesh-controller
  namespace: appmesh-system
  releaseName: appmesh-controller
    name: appmesh-controller
    version: 0.6.1

This HelmRelease is declaring that we want to create a Helm release for a chart called appmesh-controller with a version 0.6.1 that is available in the EKS chart repository The name of the release is appmesh-controller.

For full details on the elements of the HelmRelease please head to the documentation.

You folder structure should look like this now:

├── appmesh-system
│   ├── appmesh-controller.yaml
│   └── crds.yaml
├── namespaces
│   └── appmesh-system.yaml

Add and then commit the appmesh-controller.yaml file and push the the changes to your GitHub repo.

Flux will now see that the desired state of the appmesh-system namespace has changed in Git and will apply the CRDs to our cluster. This will take up to 1 minute to apply.

Check that the App Mesh Controller is up & running by running the following command:

kubectl get pods -n appmesh-system

You should see the controller pod in a Running state:

NAME                                  READY   STATUS    RESTARTS   AGE
appmesh-controller-54dd6bdfd8-n8zlq   1/1     Running   0          43s