Crazy fast Kubernetes Automation with Terraform
In this video, we deploy a HA Kubernetes Cluster in the Cloud and run some workloads on it. I've created a template for Kubernetes, Traefik, Cert-Manager and SSL Certs and DNS Records all in Terraform. This will also show how to combine multiple workloads and providers in one automation script. #Kubernetes #Terraform #CIVO
Project Files: github.com/christianlempa/boi...
Terraform Tutorial: • What is infrastructure...
Helm Tutorial: • Package Management wit...
Traefik Tutorial: • How to use Traefik as ...
Cert-Manager Tutorial: • Free SSL Certs in Kube...
CIVO-*: civo.com/thedigitallife
Follow me:
TWITTER: / christianlempa
INSTAGRAM: / christianlempa
DISCORD: / discord
GITHUB: github.com/christianlempa
PATREON: / christianlempa
MY EQUIPMENT: kit.co/christianlempa
Timestamps:
00:00 - Introduction
00:57 - What tools we use
01:33 - Project Overview
04:00 - Advertisement-*
04:37 - Create the Kubernetes Cluster
10:18 - Deploy Software on Kubernetes
13:27 - Deploy Traefik and Cert-Manager
16:45 - Deploy DNS and Certificates
21:31 - Deploy a test application
24:42 - Summarize and test
________________
All links with "*" are affiliate links.
Пікірлер: 119
Fantastic video, this gave a nice run down of how all the components are connected together. Keep up your great work.
bloody hell! and sooo awesome. Fantastic video! Love the speed of delivery and single command deployment solutions
@christianlempa
2 жыл бұрын
Thank you very much!
Hi, Christian Great video , thank you so much for sharing🙏👌
Though I like this video, the pace is so high that anything meaningful is lost. Pure entertainment is the highest outcome of this.
Hi. I've just started to learn DevOps. Your video is great. Explanation is super.
@christianlempa
2 жыл бұрын
Thank you so much 😃
Nice work Christian! Great video!
@christianlempa
2 жыл бұрын
Thank you! :) I've learned so much about Kubernetes with the help of your videos!
@TechnoTim
2 жыл бұрын
@@christianlempa That's awesome! Glad they helped!
Thanks. Simple to follow.
@christianlempa
Ай бұрын
Thanks for watching :)
Incredible video! I’m totally going to be forking this one and putting my own spin on it. Very nicely done!
@christianlempa
2 жыл бұрын
Thank you! :)
@mchannel1365
Жыл бұрын
why use Terraform when you can do all by Rest APIs ?
@josem2100
4 ай бұрын
@@mchannel1365 why implement what terraform does when you have terraform?
Great video! I never messed with the time_sleep resource, very cool.
@oakfig
2 жыл бұрын
Nice shirt! Where do we get it at?
@christianlempa
2 жыл бұрын
Great to hear!
Awesomejob, keep up the quality content. 🙂
@christianlempa
2 жыл бұрын
Thank you! Will do!
This is really awesome, thank you so much for sharing ;)
@christianlempa
2 жыл бұрын
Thank you so much! And also for your help with that :D
@Spydaw
2 жыл бұрын
@@christianlempa You are always welcome ;)
The kubernetes terraform provider introduced a kubernetes_manifest resource a while back. I think it’s a better choice than the kubectl provider especially because it’s more readable (not just a single multiline string) and it’s an official provider (in contrast to the third party kubectl provider).
@christianlempa
2 жыл бұрын
Nice, I didn't know that
you could create a custom helm chart for these yamls and deploy the argocd on you cluster, this is a MUST have! you gonna love it
@christianlempa
2 жыл бұрын
Sounds like a great idea, currently learning CI CD is one of my topics to learn for this year.
@kaveh6161
Жыл бұрын
Could you please elaborate on this? I would love to implement your idea, but I need more clues to start. Thanks.
awesome video, a lot of effort but well worth it. Thank you for video.
@christianlempa
7 күн бұрын
Thanks 😊
Thanks for the high quality videos.
@christianlempa
Жыл бұрын
You’re welcome ☺️
excellent video! thank you.
@christianlempa
16 күн бұрын
Thank you! :D
Perfect channel for professionals.
@christianlempa
2 жыл бұрын
Thanks ;)
-Interesting videos as usual, many thanks :)
@christianlempa
4 ай бұрын
you're welcome :)
Very nice video, impressive!
@christianlempa
2 жыл бұрын
Thank you very much!
Amazing! Thank you!
@christianlempa
Жыл бұрын
Thank you too!
man, you are the best👍 thanks
Bro....awesome ..ty
love the drawings in your videos, is that just an ipad app and you are screen capturing the ipad?
@christianlempa
2 жыл бұрын
Thanks ;) It's just my Samsung Galaxy Tab as an external screen and recording in OBS
Great video as usual. Just wondering if some of the new features of latest Terraform versions like pre and post conditions could solve some of the timing issues you mentioned and therefore get rid of the timers ;-)
@christianlempa
2 күн бұрын
Thanks for the idea, I think that would be great to solve some of the problems here ;)
Great Works!!!!
@christianlempa
2 жыл бұрын
Thanks!
Thanks for the high quality content. There's one thing I would like to ask. Does teraform have any kind of code encrypting/compiling function so that people got the encoded copy they cannot read the source code but able to run it.
@KD_Puvvadi
2 жыл бұрын
while running terraform plan, you can add -out with output file like "terraform plan -out kubclt" and you can run "terraform apply kubctl"
@bxhehehehdhdhhd1443
2 жыл бұрын
Yes the terraform plan provides the binary to run and configure your infrastructure
Lovely mate..
@christianlempa
2 жыл бұрын
Thank you! Cheers!
16:00 you can use both atomic and wait equals true on the cert manager helm release and evict a time_sleep resource
@christianlempa
Жыл бұрын
Thanks mate!
Nice Video! However, try not to use the „depends_on“ keyword, but instead you should reference the dependent resource. For the „helm_release.traefik“ resource you should set „namespace = kubernetes_namespace.metadata.0.name“. This way terraform can figure out the dependencies automatically and most importantly you don’t repeat yourself (i.e. when changing the namespace name you only need to change it in one location). Using „depends_on“ is not a good practice, and you will thank me once you terraform codebase reaches a certain size.
@capps1994
2 жыл бұрын
Yeah terraform will implicitly wait for the value you have referenced
@christianlempa
2 жыл бұрын
Thank you, that's such a great tip ;)
Great video with a lot of good detail! I'll say though Terraform is great at a lot of things except for Helm deployments...very static compared to something like ArgoCD.... ask me how I know.
@christianlempa
2 жыл бұрын
Thanks! :)
This is super cool. Could you please make it a little more sophisticated using redis, postgresql ha, minio and perhaps argocd to deploy an app repository?
@christianlempa
2 жыл бұрын
Wow, Argo CD that's something I don't know anything about :D It's on my list to learn for this year.
Very informative. I tried to create a GKE auto mode cluster with a shared VPC network(private IP range), and assigned necessary IAM roles to the GKE hosted service project with (compute.engineadmin and container.admin roles). While provisioning the gke auto pilot cluster, getting this exception as - " Error: Error waiting for creating GKE cluster: All cluster resources were brought up, but: only 0 nodes out of 1 have registered; cluster may be unhealthy." Verified the logs for any key findings, but not helpful. Any thoughts/references on this error scenario to troubleshoot ??
F#%^ing awesome. Thanks for sharing 🤗
@christianlempa
Жыл бұрын
Glad you enjoyed it
My head just got terraformed 🤯
So I haven't been able to find a good answer for this online. When is it appropriate to run ingress on bare metal/ terraform versus through the ingress controller object in Kubernetes?
@tanchwa3740
2 жыл бұрын
Or was this actually a k8s object since it got run through a helm chart?
man, my love for terraform exceeds love for myself
Please make a video of deploying eks cluster using Terraform
Curious: why did you set "proxied" to false at the last step (nginx DNS record)? Any particular reason or didn't that matter to you in that case?
@christianlempa
2 жыл бұрын
Mainly to show how the cert-manager certificate is working.
@cheebadigga4092
2 жыл бұрын
@@christianlempa ahhh good point.
Amazing
@christianlempa
2 жыл бұрын
Thanks
you dont have the Terraform for create the cluster Kubernetes on Premises (no cloud) ?
may I know which tool you are using for that handwritten visualizations ?
@christianlempa
10 ай бұрын
I think that time I was using explain everything, now I’m using excalidraw
why not to let traefik to do certificate stuff?
What is this vscode theme that you uses ?
this is amazing, really help on traefik part as i was trying to do same with AKS , can you share refence link for traefik for the helm parameter in terraform?
@christianlempa
2 жыл бұрын
Thank you so much! Which reference do you mean?
@abdulmunir3662
2 жыл бұрын
@@christianlempa the parameter for traefik helm chart in terraform like this one set { name = "ingressClass.isDefaultClass" value = "true" }
ok first of all, GREAT RESOURCE!, Thanks! I have some trouble converting this to a non-civo based cluster (I run on Azure). Could you tell me how the cluster knows to connect the loadbalancer to traefik ? Can this be forced ?
@christianlempa
2 жыл бұрын
Hey mate, sorry I only have done it on Civo. I guess it depends on the Terraform Provider for Azure how to do that, but they should have a similar config.
@vincentmetallive
2 жыл бұрын
@@christianlempa thanks!
Hey Christian! Great video as always!. I have a video request showcasing the proper way to setup WordPress with SSL using Nginx which is reverse proxying to an Apache back-end. I'm really stuck from 2 days and not much help online on the forums. Would really love it if you make an in-depth video with SSL in the picture with WordPress. At some point i had WordPress pages working but i couldn't login to wp-admin as it always told "you are not authorized to access this page". All permissions are setup correctly. It was working before with Apache. I believe it has to do something with the reverse proxy which messes up wp-admin dashboard. Hoping to get a solution from you! As always Thanks a bunch!
@christianlempa
2 жыл бұрын
I currently have too many projects to do. But I will at some point look into that. However I plan a slightly different setup with an HA PHP-FPM based setup of wordpress on Kubernetes. Will be a bit of a challenge 🤣
you can also terraform virtio which I found nicer (I think everyone would have their own opinion about this) than proxmox for local projects
Give us an OpenTofu tutorial next!
Very funny Christian , "If that does not sound very interesting to you, then I don't know what you are doing here?", well kind sir, I was enjoying a cup of French Coffee with an English friend of mine, in an Antwerp Coffee shop when I heard a knock on the door, and voila there was this guy called Christian, peddling software and I thought to myself , "It is probably going to be more interesting listening to him than trying to understand the Englishman's DRY sense of humor, and we speak IT does not matter where you from. I can even watch a Polish IT guy on KZread and just by the way he pulls his face and angrily points at a non existing point in the sky I instinctively know he is getting problems from a Load balancer somewhere in Das Bundesrepublik and there is a Data Center in Berlin that is guarded by a guy called Christian Lempa who does not want to give him access the iDRAC on his New Dell.
@jonkoenig2478
Жыл бұрын
What?
This project can be applied in On-premises?
@christianlempa
2 жыл бұрын
The projects would need some adjustments, but you could in theory use the same tools, yes.
Great Video! I hope somebody can help me to solve this issue and understand how to implement the best approach. I have a number of situations where I need to retry a task n-times if it fails. My ask is, I need help writing a Terraform module to monitor an azure task which is to restart it in case it encounters an exception. retry logic). If an exception is thrown, the task should be retried up to the max-retry count.
How to run this via cloudbuild yaml
Man I wish someone would show us how to deploy multiple gcp backend services, setup ingress and load balancer and then setup proper custom domains with either Terraform or Pulumi. Could start with a Cloud run example.
@bmejia220
11 ай бұрын
You can do it Sean!
@seanknowles9985
11 ай бұрын
@@bmejia220 if someone would actually show the end to end solution I can probably do it ;)
How do I get ahead at work if everyone they hire or that remains in a similar position knows more than I do? Room full of engineers I'm the newest and dumbest, currently a hiring spree these new people know way more than I do leapfrog over me for raises and promotions
Can you do a video on Harvester
@christianlempa
2 жыл бұрын
Not in the near future, maybe I'll do at some point.
Now do one for OpenStack!
Don't you need 3 nodes for it to be HA?!
Once again, can you share the code....?
@christianlempa
2 жыл бұрын
It's on my GitHub
It's just me or he put a frame with a clown at 20:10?
@christianlempa
Жыл бұрын
That’s my desktop wallpaper sneaking in xD
“Deploy in seconds”
Got tired of KZreadrs making the same videos about the same tech + in a narrow window while there is so much news and improvements made. Sad to unsubscribe those who had a good start. but failed along the way...
@sundarshi
2 жыл бұрын
M
Pretty homosexual thumbnail but the content of the video is on point. Good job my man!
Using Terraform for such things is a really bad idea. Overly complicated, unmaintainable and inflexible. Terraform is for creating VMs, volumes and stuff. It's a not configuration tool.
i want to like this stack, but this is just a horrible way of doing things, a cake with a million layers of abstractions and code everyone uses with zero understanding of inner workings. so a simple task of deploying a binary becomes an insane mashup of CRAP that nobody needs.
Thanks!
@christianlempa
2 ай бұрын
Thank you so much for your support ❤️👏