############################################################# ## NOT FOR PRODUCTION USE. ## ## THE CONTENT OF THIS FILE IS FOR LEARNING PURPOSES ONLY ## ## created by David Surey, Amazon Web Services, 2020 ## ############################################################# - name: create Policies for loadbalancer-controller cloudformation: profile: "{{ eksexample_aws_profilename }}" stack_name: "{{ eksexample_clustername }}-cluster-loadbalancercontroller-policy" state: present region: "{{ eksexample_region }}" template: "./cloudformation/eks-loadbalancer-controller-iam-policy.template.yaml" - name: setup service account for loadbalancer-controller delegate_to: "{{ EKSBastionInstancePublicIP }}" shell: > eksctl create iamserviceaccount \ --name aws-load-balancer-controller \ --namespace kube-system \ --cluster "{{ eksexample_clustername }}" \ --attach-policy-arn "arn:aws:iam::{{ caller_info.account }}:policy/EKSloadbalancerControllerPolicy" \ --approve \ --region {{ eksexample_region }} \ --override-existing-serviceaccounts - name: add the AWS Loadbalancer Controller helm repo delegate_to: "{{ EKSBastionInstancePublicIP }}" kubernetes.core.helm_repository: name: aws-load-balancer-controller repo_url: "https://aws.github.io/eks-charts" - name: Deploy latest version of AWS Loadbalancer Controller chart inside kube-system namespace delegate_to: "{{ EKSBastionInstancePublicIP }}" kubernetes.core.helm: name: aws-load-balancer-controller chart_ref: aws-load-balancer-controller/aws-load-balancer-controller release_namespace: kube-system values: clusterName: "{{ eksexample_clustername }}" serviceAccount: create: false name: aws-load-balancer-controller