Install on EKS
:::note Coming after k3s validation EKS is the MVP target for Infrared, and it is supported once the install is validated end to end on k3s. The steps below are the intended path. Differences from k3s are called out. :::
Before you start
- An EKS cluster, Kubernetes 1.30 or later, with
kubectlpointed at it and at least two nodes ofm6i.largeor equivalent. - The EKS Pod Identity Agent or IRSA configured, so the aws-load-balancer-controller Application can get AWS credentials once Argo CD syncs it.
helm3.14 or later.- A GitHub organization you administer, and a GitHub token with
read:packagesfor ghcr.io while images are private.
1. Create the namespace and the ghcr pull secret
kubectl create namespace infrared
kubectl -n infrared create secret docker-registry ghcr-pull \
--docker-server=ghcr.io \
--docker-username=<github-user> \
--docker-password=<token-with-read:packages>
echo <token-with-read:packages> | helm registry login ghcr.io -u <github-user> --password-stdin
2. Install the chart
helm install infrared oci://ghcr.io/darkshiftio/charts/infrared \
-n infrared --create-namespace \
--set 'imagePullSecrets[0].name=ghcr-pull'
The operator detects the cluster and records it as the management cluster with flavor eks. The flavor decides which components the gitops repo gets: on EKS, sync wave 10 includes aws-load-balancer-controller.
3. Read the setup token
kubectl -n infrared get secret infrared-setup -o jsonpath='{.data.token}' | base64 -d; echo
4. Open the UI
kubectl -n infrared port-forward svc/infrared 8080:80
Open http://localhost:8080 and continue with the setup wizard. In step 4 of the wizard, confirm that the detected flavor is eks.
Differences from k3s
| k3s | EKS | |
|---|---|---|
| Flavor | k3s | eks |
| Ingress and load balancers | Traefik, bundled with k3s | aws-load-balancer-controller, sync wave 10 |
| AWS credentials for components | Not needed | Pod Identity or IRSA |
| Status | First validated target | MVP target, after k3s validation |