i have gone through multiple tutorials for eks setup with terraform and only you have executed code from the scratch for the most people it was already written and they just give us a walk through thank you gauri :)
wow! this is so fantastic Gauri...I was looking for individual projects and trying so hard to stitch them together and you came along! thank you so much...so many new techniques too...especially tags..and using TF modules..
thank you so much Gauri for sharing this project walkthrough! I found it very helpful. It would be even greater if you could include the application source code part in the current pipeline, like auto-trigger a new image build upon commits, and then use that image in the application deployment stage.
Good insight. We would be coming to application deployment as well...Since working with Terraform I considered creating video on the same for now. Thanks!
This is so awesome, Excellent explanation. I was thinking how can I deploy one real world application with database in two different eks cluster, one for production and one for staging/development from another repositories two branches with main and release, using dockerized images of the app which is pushed to ECR.
Thanks very much Gauri! Very helpful tutorial. Thank you for your selfless service, May God bless you! I had one question - I see you used terraform public modules .. Can we always use public modules or should we write custom modules as well? I mean, can most of our use cases be accomplished using public modules? Please shed some light on this. Thanks again!
Glad you found the video useful. The thing is that it depends on the customer requirement. If the public modules can satisfy the needs then there's no harm in using them. But if you want more customisations in the module, then you can create your own.
Awesome content but I have a question(may be dumb 😊). At the end of the video, you were saying when using destroy it would be destroying all the infrastructure. The Jenkins instance on AWS will remain stay. Please confirm.
Much obliged. What a beautiful and valuable DevOps project you have made. I am so grateful for your making such a worthy video. I learned a lot in this two-hour session. Now I am more confident. Just a small query please: Q.) Correct me if I am wrong, While creating the EKS cluster I believe we need to attach a EKS Cluster Role(EKS/EC2 role with some permissions/policy) seems this step not there but still worked. Could you please clear my doubt? Once again thank you for your time and god bless you by hiking your salary 🙂
Thanks for this video 🙏Madam. Actually, I was looking for ECS & EKS. I find more on ECS in youtube Wanted to know the difference of ECS & EKS... suppose if I write separate K8s deployments.yaml & services.yaml can I place them in EKS?..if so, how? Suggestions: @34:48 egress_with_cidr_blocks 👉 will be more helpful if explained why 0 for from & to ports -1 to protocols etc @1:00:30 why the subnet range was changed to 192.168 (private subnet? and public subnet has to start with 10.***) @1:36:00 Thanks 🙏 for the choice (I was not aware of this, always till these days (2yrs) I will be using copy the pipeline) @1:47:00 You were providing the aws eks update-kubeconfig --name my-eks-cluster 👉 what is the purpose of this?
Hi @gauri, Thank you so much for the detailed video. I have gone through so many videos, and courses before but no one explained this much in detail. I have one doubt though, can you please help me understand the private_subnet tag you have added for what reason.
Nice one. Do we have to run this pipeline again and again if we want to make some changes like a diff version of the pod image or so, or create a separate pipeline that will deploy only the changes in the same eks cluster or the eks cluster will recreate using your pipeline and redeploy everything. What will be downtown in that case?
I think you don't need to create another pipeline everytime. If you have checked the poll SCM for the Jenkins pipeline then it will automatically trigger the pipeline for a different version.
Hi @codewithgauri , You have used two vpc cidr ranges. Jenkins is one vpc and eks is in another. How the jenkins is able to access eks vpc without any peering?
Jenkins is not always located in the same VPC as that of EKS. You must have noticed that the Jenkins might be local and still we can deploy changes to the AWS using AWS Credentials. We are not connecting them here.
Thanks Gauri. For you huge effort. I am getting error as Error: ceating IAM Role(node-eks-node-group-some numbers): Operation error IAM: CreateRole, https response error StatusCode: 403 (501: resource "aws_iam_role" "this" {, when I try to do terraform apply command to EKS folder. So please tell how to resolve this error. Thanks
You need to check the policy attached to your node. It should allow to create role. Please refer the link below: stackoverflow.com/questions/70953798/iamcreaterole-access-denied-for-assumed-role
Hello mam, I am trying to install argocd on eks using helm chart through terraform only and trying to automate using Jenkins Can you please guide little bit on it or can you please upload video for the same Or steps after cluster creation. Thank you.
Mam i have a internship interview at redhat for devops role after few … so this project is enough to showcase there … and give some tips to clear the interview thanks
Only this project won't be enough because this will only show that you know terraform and AWS. You need to showcase projects where multiple tools are used
@Gauri - Getting this error when we deploy the service kubectl apply -f deployment.yaml error: You must be logged in to the server (the server has asked for the client to provide credentials)
Thanks for this great tutorial. I keep getting this error: + kubectl apply -f deployment.yaml error: You must be logged in to the server (the server has asked for the client to provide credentials). I do not know what could be the problem. Any pointers? I am logged in as root on aws and I also noticed an IAM role was created automatically.
Hi @codewithgauri, I've followed exact steps including updating kubeconfig, but I keep getting error "You must be logged in to the server (the server has asked for the client to provide credentials)" while running deployment. Added EKS Cluster policy role as well. But nothing worked. Please share your thoughts.
Not able to create the EKS ,Its saying its creating but not creating and getting the message like creating , do we have anything to change instance type or EKS version?
hi madam ,when i will trigger the jenkins job as you exaplained I am getting error like this "+ kubectl apply -f deployment.yml error: You must be logged in to the server (the server has asked for the client to provide credentials)" can you help me this
hi , at the last step I am getting error I am not able to deploy the application getting below error + kubectl apply -f deployment.yaml error: You must be logged in to the server (the server has asked for the client to provide credentials)
Hi, was having the same issue But most probably the problem is Memory issue. Use t2.small or any other instance type instead of t2.micro for the jenkins-server It solved my issue Hope this helps.😊
Thanks @@sayantansamanta7746 the issue got resolved. my pipelines are getting successful but the nginix deployment step is getting finished in 6sec and the load balancer is not getting created any idea on this
hi, can you just help me my resources are not getting created and vpc has created in was console but with different cidr and it doesn't have name can you please explain this
@@codewithgauri thanks for responding see the error i ran all the steps as it $ terraform plan var.public_subnets subnets CIDR Enter a value: 10.0.1.0/24 var.vpc_cidr vpc Cidr Enter a value: 10.0.0.0/16 ╷ │ Error: Invalid number literal │ │ on line 1: │ (source code not available) │ │ Failed to recognize the value of this number literal. ╵ ╷ │ Error: No value for required variable │ │ on variable.tf line 7: │ 7: variable "public_subnets" { │ │ The root module input variable "public_subnets" is not set, and has no │ default value. Use a -var or -var-file command line argument to provide a │ value for this variable.
Sorry I forgot to mention, the SCM Poll is basically used to check the updates in the git repo...if there are any changes then it triggers the Jenkins pipeline. And in this case we used * * * * * which means we are going to check it after every minute
First of all...you can't use the same approach to deploy an application. For that you won't be making use of Terraform. In case if you want to deploy an application on docker, then you would have to create the image for your application.
Mam it takes big heart to share such project for free
Truly amazing
People are charging crazy for such stuff
Thank you for such content!
Lots of love❤
Will keep sharing!😌🙌🏻
Yes. I agree with light. Thanks Madam 🙏
Its a very rare demo video on terraform-eks-Jenkins-pipeline. Very well explained in details. thanks for making this video Gauri
Thanks 🙏🏻
EKS - "Excellent Kubernetes Stuff" 😊 👏🙏
Haha thanks!
i have gone through multiple tutorials for eks setup with terraform and only you have executed code from the scratch for the most people it was already written and they just give us a walk through thank you gauri :)
Glad to hear!😄
Fantastic explanation gauri. You are a charm.. keep it up. Love the way you teach
Madam ! Appreciate all your strenuous efforts !! GOD Bless you !!
Thank you...means a lot! 🙏🏻
Good to see such projects. kudos to your effort. Expecting some more real time projects.
Thats Awesome !! Gauri ,Khup Chan
Thanks!🙏🏻
Clear and understandable explanation even for beginners. Subscribed your channel. Please create more devops related videos, Maam👍
Really appreciate your efforts towards cloud computing. Keep inspiring 😊😊
Thankss🙏🏻
wow! this is so fantastic Gauri...I was looking for individual projects and trying so hard to stitch them together and you came along! thank you so much...so many new techniques too...especially tags..and using TF modules..
My pleasure 😊
WOW NICE EXPLANATION🙂🙂
@ Code with Gauri Finally, you did it with your hard work and dedication😊
great explanation
Please make videos regularly on terraform and aws
hey tm ye project kr liye kya
this was really amazing, keep up the good work👏🙌
Amazing fantastic project. very well explained in detail
Waiting for next exciting project video👋👋👋👋
Khup mast madam.🤘
Keep it up👌
Thank You for Providing this valuable content. this is really helpfull.
Glad it was helpful!
thank you so much Gauri for sharing this project walkthrough! I found it very helpful.
It would be even greater if you could include the application source code part in the current pipeline, like auto-trigger a new image build upon commits, and then use that image in the application deployment stage.
Good insight. We would be coming to application deployment as well...Since working with Terraform I considered creating video on the same for now. Thanks!
Thanks Gauri, a huge effort has been made for us. Subscribed.
Amazing project! Your EKS Cluster deployment using Terraform and Jenkins is incredibly insightful. Thank you for sharing this invaluable knowledge!
Glad it was helpful!
Thank you very much for this project.. I would appreciate more details during the video :) . Keep going like that!!
Sure definitely will try to explain in a more detailed way!
Thank you very much mam, it's a great video with good explanation.
I was waiting for this content , already wrote my terraform code for eks , will deploy that through Jenkins
Great Gauri , thanks
Awesome Gaurav thank you giving this project
It's okay but my name is Gauri 😅
Miss, I really appreciate all your efforts. New Sub!
I appreciate that!
Such a great informative video, excellent
Glad you found it useful
Thanks for this Video, I have some understanding of the concepts now.
Great!
Watching this video was like finding the DevOps genie in a bottle! 🧞♂ The EKS cluster just popped out effortlessly. Thanks for the tutorial!!
Haha nice...glad that it was useful!☺️
Thanks for uploading these valuable contents
It's my pleasure
Gouri. Best demonstration....keep it up
Thankss!
Very Nice Explanation of the whole process thanks for sharing such a good content .
My pleasure
Thanks for your effort. It's helpful Gauri
Thanks Gauri for sharing the valuable content. subscribed to your channel.
Welcome!
Thanks a lot for sharing, it's a great video with good explanation.
Glad it was helpful!
This is really very very intresting, can you please make a video on ECS USING JENKINS TERRAFORM AND CI/CD
Sure
Hi Mam Please continue doing projects related to devops, we are eagerly waiting for new things.
Sure working on it 👍🏻
Thank you mam
Awesome Project Thank you So Much
This is so awesome, Excellent explanation.
I was thinking how can I deploy one real world application with database in two different eks cluster, one for production and one for staging/development from another repositories two branches with main and release, using dockerized images of the app which is pushed to ECR.
Great effort 👍👍 , could you please make a videos on eks upgrade using terraform or eksctl🙏🙏🙏🙏🙏
Sure ..will try to make it in upcoming videos
@@codewithgauri Thanks for replying 🙏
Great video!! Really appreciate it 💪🏼💪🏼
Thanks!
Hello Gouri,thanks a lot for the terraform videos.could you please do more videos on ansible and yaml with projects like terraform
Yes, sure
Awesome project
Thank you
Great video. Thank you
Excellent one !!!
Thank you! Cheers!
Really appreciating your work, keep going, subscribing channel
Thanks!🙏🏻
Thanks very much Gauri! Very helpful tutorial. Thank you for your selfless service, May God bless you! I had one question - I see you used terraform public modules .. Can we always use public modules or should we write custom modules as well? I mean, can most of our use cases be accomplished using public modules? Please shed some light on this. Thanks again!
Glad you found the video useful. The thing is that it depends on the customer requirement. If the public modules can satisfy the needs then there's no harm in using them. But if you want more customisations in the module, then you can create your own.
@@codewithgauri Understood! Thank you!
question:
1. how did the data/jenkins set-up restore when you changed the instance type to t2.medium? it should initilaze from the start right?
Awesome content but I have a question(may be dumb 😊). At the end of the video, you were saying when using destroy it would be destroying all the infrastructure. The Jenkins instance on AWS will remain stay. Please confirm.
Yes, it should be destroying only the EKS cluster
Very nice content. Can you do few videos on real-time troubleshooting scenarios in Devops that will be a great help.
Suree
Much obliged. What a beautiful and valuable DevOps project you have made. I am so grateful for your making such a worthy video. I learned a lot in this two-hour session. Now I am more confident. Just a small query please:
Q.) Correct me if I am wrong, While creating the EKS cluster I believe we need to attach a EKS Cluster Role(EKS/EC2 role with some permissions/policy) seems this step not there but still worked. Could you please clear my doubt?
Once again thank you for your time and god bless you by hiking your salary 🙂
Thanks a lot....Speaking about your doubt, this role was created by the terraform module of an EKS so we don't need to explicitly create it.
Thanks for this video 🙏Madam.
Actually, I was looking for ECS & EKS. I find more on ECS in youtube
Wanted to know the difference of ECS & EKS... suppose if I write separate K8s deployments.yaml & services.yaml can I place them in EKS?..if so, how?
Suggestions:
@34:48 egress_with_cidr_blocks 👉 will be more helpful if explained why 0 for from & to ports -1 to protocols etc
@1:00:30 why the subnet range was changed to 192.168 (private subnet? and public subnet has to start with 10.***)
@1:36:00 Thanks 🙏 for the choice (I was not aware of this, always till these days (2yrs) I will be using copy the pipeline)
@1:47:00 You were providing the aws eks update-kubeconfig --name my-eks-cluster 👉 what is the purpose of this?
one thing more i would like to request is that it will be more beneficial if u add timestamp in coming videos ..... thanks
Noted
Agreed. Please add this in this video and all the future videos
How you are able to draw with proper handwriting. Also the video was vvvv helpful
Thank you so much 😀
amazing
Great Content, thank you !!😃
Hi @gauri, Thank you so much for the detailed video. I have gone through so many videos, and courses before but no one explained this much in detail. I have one doubt though, can you please help me understand the private_subnet tag you have added for what reason.
Mam This was awesome. Can you please make tutorials on docker jenkins?
if you can please do that it will be very helpful.
thank You
You're welcome....sure we'll definitely make one video on it
Best on terraform
Thanks!
it would be great if we can also deploy the jenkins on EKS instead EC2
Sure.
best video👌👌
Thank you so much 😀
Nice content 🎉 keep doing this heart for u 💔
Nice one. Do we have to run this pipeline again and again if we want to make some changes like a diff version of the pod image or so, or create a separate pipeline that will deploy only the changes in the same eks cluster or the eks cluster will recreate using your pipeline and redeploy everything. What will be downtown in that case?
I think you don't need to create another pipeline everytime. If you have checked the poll SCM for the Jenkins pipeline then it will automatically trigger the pipeline for a different version.
@@codewithgauri Thank you 🙂
Thanks
Good one...
Thanks!
Hi @codewithgauri , You have used two vpc cidr ranges. Jenkins is one vpc and eks is in another. How the jenkins is able to access eks vpc without any peering?
Jenkins is not always located in the same VPC as that of EKS. You must have noticed that the Jenkins might be local and still we can deploy changes to the AWS using AWS Credentials. We are not connecting them here.
Thanks Gauri. For you huge effort. I am getting error as Error: ceating IAM Role(node-eks-node-group-some numbers): Operation error IAM: CreateRole, https response error StatusCode: 403 (501: resource "aws_iam_role" "this" {, when I try to do terraform apply command to EKS folder. So please tell how to resolve this error. Thanks
You need to check the policy attached to your node. It should allow to create role. Please refer the link below:
stackoverflow.com/questions/70953798/iamcreaterole-access-denied-for-assumed-role
Please make video on how to monitor whole project with help of Cloudwatch
Sure can we please connect on LinkedIn?
@@codewithgauri ya sure
Hello mam,
I am trying to install argocd on eks using helm chart through terraform only and trying to automate using Jenkins
Can you please guide little bit on it or can you please upload video for the same
Or steps after cluster creation.
Thank you.
Sure in few days we will
Mam i have a internship interview at redhat for devops role after few … so this project is enough to showcase there … and give some tips to clear the interview thanks
Only this project won't be enough because this will only show that you know terraform and AWS. You need to showcase projects where multiple tools are used
Hi , I do terraform init but have issue with the s3 bucket!!! Should I name my s3 same with yours? Appreciate your response
Can you please share your error?
@Gauri - Getting this error when we deploy the service
kubectl apply -f deployment.yaml
error: You must be logged in to the server (the server has asked for the client to provide credentials)
Your user must have the EKS policy attached
Thanks for this great tutorial. I keep getting this error: + kubectl apply -f deployment.yaml
error: You must be logged in to the server (the server has asked for the client to provide credentials). I do not know what could be the problem. Any pointers? I am logged in as root on aws and I also noticed an IAM role was created automatically.
Have you updated your kubeconfig?
Thanks for the reply. I was able to resolve it by attaching EKS policies to the root user.
Hi @codewithgauri, I've followed exact steps including updating kubeconfig, but I keep getting error "You must be logged in to the server (the server has asked for the client to provide credentials)" while running deployment. Added EKS Cluster policy role as well. But nothing worked. Please share your thoughts.
Not able to create the EKS ,Its saying its creating but not creating and getting the message like creating , do we have anything to change instance type or EKS version?
I need details
20:50 Can I know from where did you get this ami-id.
From the AWS console
please do Devsecops project
Sure
hi madam ,when i will trigger the jenkins job as you exaplained I am getting error like this "+ kubectl apply -f deployment.yml
error: You must be logged in to the server (the server has asked for the client to provide credentials)"
can you help me this
i have the same issue. Do you know how to fix it?
hi ,
at the last step I am getting error I am not able to deploy the application getting below error
+ kubectl apply -f deployment.yaml
error: You must be logged in to the server (the server has asked for the client to provide credentials)
this error can occur when you created the cluster with the Root and try to access it with a IAM user
can you please share some resources which helped you for terraform associate cert?
Sure will make a video on it
font size is too small, by the way superv content 💥
Will consider working on it...Thanks for the feedback!
i have error when i create pipeline configuring Terraform AWS Provider: failed to get shared config profile
Can you please share your error
Mam do we use existing module in real time Or only custom module?
Hello...Actually speaking we can use both the modules depending on the client's requirement
@@codewithgauri oky thanq
Hi I am getting an error while running Terraform validate. "Terraform provider plugin crashed" the tf cmd is running fine in local
Hi, was having the same issue
But most probably the problem is Memory issue.
Use t2.small or any other instance type instead of t2.micro for the jenkins-server
It solved my issue
Hope this helps.😊
Thanks @@sayantansamanta7746 the issue got resolved. my pipelines are getting successful but the nginix deployment step is getting finished in 6sec and the load balancer is not getting created any idea on this
Mam can you please clarify how we taking input and output juz little bit idea?
It's confusing
You mean for the modules?
Yes for modules
See input is something you need to pass to the module and output is something that is returned by the module
@@codewithgauri thank you mam.
how to create ami name filter can you please give me a brief idea.
Can you please give the details. What exactly do you want?
hi, can you just help me my resources are not getting created and vpc has created in was console but with different cidr and it doesn't have name can you please explain this
It will be created with the desired CIDR. It doesn't have a name because you must have not defined it in the Tags{} block
@@codewithgauri I did what you have but still, my resources is not getting created
Can you share your code with me?
when I am using your github link, It is showing only terraform-jenkins-eks not others
Yes because I have only provided the link for "terraform-jenkins-eks" repository
Font size is to small I can`t see,change DPI zoom level and increase font size
Sure, we will make sure that we zoom it in future. Thanks for the feedback.
Hi mam I'm getting an error when I execute the terraform plan and I'm also I cloned your repository and am still getting an error 30:00 recording time
I'm very interested in practicing but getting an error 😔 could help me last project also getting error I never go forward.....
Can you please share your error?
@@codewithgauri thanks for responding see the error i ran all the steps as it
$ terraform plan
var.public_subnets
subnets CIDR
Enter a value: 10.0.1.0/24
var.vpc_cidr
vpc Cidr
Enter a value: 10.0.0.0/16
╷
│ Error: Invalid number literal
│
│ on line 1:
│ (source code not available)
│
│ Failed to recognize the value of this number literal.
╵
╷
│ Error: No value for required variable
│
│ on variable.tf line 7:
│ 7: variable "public_subnets" {
│
│ The root module input variable "public_subnets" is not set, and has no
│ default value. Use a -var or -var-file command line argument to provide a
│ value for this variable.
what is SCM poll u told in video ?
Sorry I forgot to mention, the SCM Poll is basically used to check the updates in the git repo...if there are any changes then it triggers the Jenkins pipeline. And in this case we used * * * * * which means we are going to check it after every minute
Same project also explained by another youtuber. I think Train with Shudham
May be
Hi, for me it create 11 resources instead of 55 resources as you shown in the video please suggest how to verify
Which code are you referring?
Thank you for reply
I have copied and referenced the same code you put in github
In jenkins pipeline, terraform plan it shows 55 resources
But build Terraform apply it created 11 resources
Hi Gauri, Can you please update the github link ??its not working
Can you check it now please?
@@codewithgauri no it's still page not found showing....
hy gauri 5 month you not upload single content
Apologies. Video coming soon!
What policies do you add in IAM section, pl reply me
You can add AmazonEKSClusterPolicy
@@codewithgaurithank you
hi ...ur git hub link is not working ...can u please check it
Can you please check it now?
yeah its working now ..thank u gauri ji @@codewithgauri
and also can u PLEASE GUIDE how to deploy Google micro services demo through jenkins and deploying on eks...
plz can u share jenkins pipeline script ?
Sure
github.com/gauri17-pro/terraform-jenkins-eks/blob/main/Jenkinsfile
your git hub account showing error 404
Problem solved you can check now 🙏
@@codewithgauri thanks
add "Project" in your video title
Sure
thanks namatse, so i will i deploy an angular frontend and java backend using this approach? do i need to add nginx, docker? @codewithgauri
First of all...you can't use the same approach to deploy an application. For that you won't be making use of Terraform. In case if you want to deploy an application on docker, then you would have to create the image for your application.