Install AWS Load Balancer Controller on EKS cluster

aws doc

AWSLoadBalancerControllerIAMPolicy is already created.

IAM role “AmazonEKSLoadBalancerControllerRole” already exists.

$ helm repo add eks https://aws.github.io/eks-charts
$ helm repo update
$ helm install aws-load-balancer-controller eks/aws-load-balancer-controller \
  -n kube-system \
  --set clusterName=nabecluster \
  --set serviceAccount.create=false \
  --set serviceAccount.name=aws-load-balancer-controller \
  --set region=us-east-1 \
  --set vpcId=vpc-*****************

NAME: aws-load-balancer-controller
LAST DEPLOYED: Sun Apr 10 12:19:20 2022
NAMESPACE: kube-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
AWS Load Balancer controller installed!

Pod creation failed.

$ kubectl get events --sort-by='.metadata.creationTimestamp' -n kube-system
LAST SEEN   TYPE      REASON              OBJECT                                               MESSAGE
56s         Warning   FailedCreate        replicaset/aws-load-balancer-controller-**********   Error creating: pods "aws-load-balancer-controller-687c464494-" is forbidden: error looking up service account kube-system/aws-load-balancer-controller: serviceaccount "aws-load-balancer-controller" not found

Cannot get IAM service account.

$ eksctl get iamserviceaccount --cluster nabecluster
2022-04-10 16:44:20 [ℹ]  eksctl version 0.87.0
2022-04-10 16:44:20 [ℹ]  using region us-east-1
Error: getting iamserviceaccounts: no output "Role1" in stack "eksctl-nabecluster-addon-iamserviceaccount-kube-system-aws-load-balancer-controller"

Delete existing service account.

$ eksctl delete iamserviceaccount  --cluster=nabecluster  --namespace=kube-system  --name=aws-load-balancer-controller

Successfully created.

$ eksctl get iamserviceaccount --cluster nabecluster
2022-04-10 16:48:19 [ℹ]  eksctl version 0.87.0
2022-04-10 16:48:19 [ℹ]  using region us-east-1
NAMESPACE       NAME                            ROLE ARN
kube-system     aws-load-balancer-controller    arn:aws:iam::************:role/AmazonEKSLoadBalancerControllerRole

Install MongoDB Community Kubernetes Operator on EKS

github

Create persistent volumes and claims for MongoDB data and logs volumes.

Install the Operator in default namespace.

$ cd /var/work/mongodb-kubernetes-operator
$ kubectl apply -f config/crd/bases/mongodbcommunity.mongodb.com_mongodbcommunity.yaml
$ kubectl apply -k config/rbac/
$ kubectl create -f config/manager/manager.yaml
$ kubectl get secret mongodb-admin-admin-user -o json jq -r ‘.data with_entries(.value = @base64d)’