We will avoid use of Jenkins in this project, here we will use inbuilt aws developer tools
We will test code change in github to deployment of the code on (1) EC2 case (2) Load Balancer case (3) AWS EKS case
We will avoid use of Jenkins in this project, here we will use inbuilt aws developer tools
We will test code change in github to deployment of the code on (1) EC2 case (2) Load Balancer case (3) AWS EKS case
Here I have used a html code to create a calculator application. All the code files in the github repository "ci_cd_repo" is mentioned in the below screenshot:
Next I have created AWS Pipeline to deploy the code in automation. The successful deployment of the code in pipeline is given below with screenshots
The following EC2 instance (t2.micro) is used for this task here. The screenshot of the created EC2 instance is mentioned below:
Testing the calculator code in browser (Public IP address of the EC2 pasted on browser address)
Here I have used a html code for calculator application. Autoscaling group named "ASG" is created.
Details of the ASG:
Desired capacity=1, Minimum capacity =1, Maximum capacity =3
Codedeployment using aws pipeline (named "LoadBalancer") on the above created ASG attached to the LoadBalancer and its Target group
Step by step events of the Pipeline
Tested on Browser by using the dns address of load balancer on the browser url. We have seen here successful deployment of the calculator application (screenshot below)
Alternatively, we can test here the public ip of instance which is created from the autoscaling group
Here I have used a html web application code (not the calculator code used in 1 & 2 cases). The code files in github repository: "git-repo" are implemented in this task
I first have created an EKS cluster named "mirror333". Mapping the EKS cluster by updating the IAM roles
Now we need to edit the aws-auth configmap. we have performed it by using the following commands:
eksctl create iamidentitymapping --cluster mirror333 --arn arn:aws:iam::771672242837:role/CodeBuildKubectlRole --group system:masters --username CodeBuildKubectlRole
I have created the AWS EKS from the AWS Cloudshell. EKS Cluster details & its status on Terminal is mentioned in below screenshots
The commands used here:
kubectl get nodes # details of nodes
kubectl get pods # details of pods
kubectl get svc # details of services
kubectl get all # details of the nodes/pods/services/deployment/nodeport
Screenshot of the successful deployment of the application and services on EKS using yml code files
Here the pipeline named "for_eks" is created and step by step successful deployment mentioned below screenshot. The code file "index.html" is updated and the pipeline job is started automatically thereafter.
Screenshot of the successful deployment of the pipeline
The Build steps execution details are also mentioned in below screenshot
Updation of the security group port of the created EKS cluster "mirror333" by changing port number in inbound rules of it.
Generated two nodes from the EKS cluster: node1 and node2
Testing the web application code output on browser for kubernetes node 1
Testing the web application code output on browser for kubernetes node 1