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:
--- apiVersion: helm.fluxcd.io/v1 kind: HelmRelease metadata: name: appmesh-controller namespace: appmesh-system spec: releaseName: appmesh-controller chart: repository: https://aws.github.io/eks-charts/ 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 https://aws.github.io/eks-charts/. 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 └── README.md
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