For every namespace in our EKS cluster we will create a folder in our repo that will contain the declarations of every resource we want to live in that namespace. This becomes the desired state of that namespace.
The controller requires CRDs to be installed. We have a couple of options to do this:
As we are using GitOps we will be going with option 2!
Firstly create a
appmesh-system folder in our repo:
. ├── appmesh-system ├── namespaces │ └── appmesh-system.yaml └── README.md
Now run the following commands to download the App Mesh CRDs into the new folder:
curl https://raw.githubusercontent.com/aws/eks-charts/v0.0.19/stable/appmesh-controller/crds/crds.yaml -o appmesh-system/crds.yaml
Your folder structure should look like this now:
. ├── appmesh-system │ └── crds.yaml ├── namespaces │ └── appmesh-system.yaml └── README.md
Add and then commit the crds.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 that the CRDs has been created by running the following command:
kubectl get crds
You should see 3 App Mesh CRDs installed:
NAME CREATED AT eniconfigs.crd.k8s.amazonaws.com 2020-05-20T10:45:46Z helmreleases.helm.fluxcd.io 2020-05-20T12:01:29Z meshes.appmesh.k8s.aws 2020-05-20T12:58:31Z virtualnodes.appmesh.k8s.aws 2020-05-20T12:58:31Z virtualservices.appmesh.k8s.aws 2020-05-20T12:58:32Z