Crazy fast Kubernetes Automation with Terraform

  Рет қаралды 93,966

Christian Lempa

Christian Lempa

Күн бұрын

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.

Пікірлер: 120
@beyond990
@beyond990 2 жыл бұрын
Fantastic video, this gave a nice run down of how all the components are connected together. Keep up your great work.
@MichaelBransonCoach
@MichaelBransonCoach 2 жыл бұрын
bloody hell! and sooo awesome. Fantastic video! Love the speed of delivery and single command deployment solutions
@christianlempa
@christianlempa 2 жыл бұрын
Thank you very much!
@jamallmahmoudi9481
@jamallmahmoudi9481 6 ай бұрын
Hi, Christian Great video , thank you so much for sharing🙏👌
@KR1ML0N
@KR1ML0N 2 жыл бұрын
Awesomejob, keep up the quality content. 🙂
@christianlempa
@christianlempa 2 жыл бұрын
Thank you! Will do!
@Michael201078
@Michael201078 2 жыл бұрын
Hi. I've just started to learn DevOps. Your video is great. Explanation is super.
@christianlempa
@christianlempa 2 жыл бұрын
Thank you so much 😃
@TechnoTim
@TechnoTim 2 жыл бұрын
Nice work Christian! Great video!
@christianlempa
@christianlempa 2 жыл бұрын
Thank you! :) I've learned so much about Kubernetes with the help of your videos!
@TechnoTim
@TechnoTim 2 жыл бұрын
@@christianlempa That's awesome! Glad they helped!
@coolrazor6835
@coolrazor6835 2 жыл бұрын
Incredible video! I’m totally going to be forking this one and putting my own spin on it. Very nicely done!
@christianlempa
@christianlempa 2 жыл бұрын
Thank you! :)
@mchannel1365
@mchannel1365 Жыл бұрын
why use Terraform when you can do all by Rest APIs ?
@josem2100
@josem2100 5 ай бұрын
​@@mchannel1365 why implement what terraform does when you have terraform?
@dragonmax2000
@dragonmax2000 Жыл бұрын
Though I like this video, the pace is so high that anything meaningful is lost. Pure entertainment is the highest outcome of this.
@Spydaw
@Spydaw 2 жыл бұрын
This is really awesome, thank you so much for sharing ;)
@christianlempa
@christianlempa 2 жыл бұрын
Thank you so much! And also for your help with that :D
@Spydaw
@Spydaw 2 жыл бұрын
@@christianlempa You are always welcome ;)
@dadrad
@dadrad 2 жыл бұрын
Great video! I never messed with the time_sleep resource, very cool.
@oakfig
@oakfig 2 жыл бұрын
Nice shirt! Where do we get it at?
@christianlempa
@christianlempa 2 жыл бұрын
Great to hear!
@djcardwell
@djcardwell Жыл бұрын
Thanks for the high quality videos.
@christianlempa
@christianlempa Жыл бұрын
You’re welcome ☺️
@infologiax
@infologiax 5 ай бұрын
-Interesting videos as usual, many thanks :)
@christianlempa
@christianlempa 5 ай бұрын
you're welcome :)
@asalehi2255
@asalehi2255 Ай бұрын
awesome video, a lot of effort but well worth it. Thank you for video.
@christianlempa
@christianlempa Ай бұрын
Thanks 😊
@ANTGPRO
@ANTGPRO 2 жыл бұрын
Perfect channel for professionals.
@christianlempa
@christianlempa 2 жыл бұрын
Thanks ;)
@cariyaputta
@cariyaputta 2 ай бұрын
Thanks. Simple to follow.
@christianlempa
@christianlempa 2 ай бұрын
Thanks for watching :)
@farzadmf
@farzadmf 2 жыл бұрын
Very nice video, impressive!
@christianlempa
@christianlempa 2 жыл бұрын
Thank you very much!
@user-mh8ck1op3r
@user-mh8ck1op3r 2 жыл бұрын
man, you are the best👍 thanks
@ajk7151
@ajk7151 Ай бұрын
excellent video! thank you.
@christianlempa
@christianlempa Ай бұрын
Thank you! :D
@TheChihuhua
@TheChihuhua Жыл бұрын
Amazing! Thank you!
@christianlempa
@christianlempa Жыл бұрын
Thank you too!
@ronaldm.1556
@ronaldm.1556 2 жыл бұрын
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
@christianlempa 2 жыл бұрын
Sounds like a great idea, currently learning CI CD is one of my topics to learn for this year.
@kaveh6161
@kaveh6161 Жыл бұрын
Could you please elaborate on this? I would love to implement your idea, but I need more clues to start. Thanks.
@StanyCarteny
@StanyCarteny 2 жыл бұрын
Great Works!!!!
@christianlempa
@christianlempa 2 жыл бұрын
Thanks!
@PhilipFreude
@PhilipFreude 2 жыл бұрын
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
@christianlempa 2 жыл бұрын
Nice, I didn't know that
@wilburdietz1780
@wilburdietz1780 Жыл бұрын
Bro....awesome ..ty
@SaikumarN1993
@SaikumarN1993 2 жыл бұрын
Lovely mate..
@christianlempa
@christianlempa 2 жыл бұрын
Thank you! Cheers!
@kaveh6161
@kaveh6161 Жыл бұрын
F#%^ing awesome. Thanks for sharing 🤗
@christianlempa
@christianlempa Жыл бұрын
Glad you enjoyed it
@montyh9448
@montyh9448 2 жыл бұрын
Amazing
@christianlempa
@christianlempa 2 жыл бұрын
Thanks
@marcosx86
@marcosx86 Жыл бұрын
16:00 you can use both atomic and wait equals true on the cert manager helm release and evict a time_sleep resource
@christianlempa
@christianlempa Жыл бұрын
Thanks mate!
@zixxrElixir
@zixxrElixir 2 жыл бұрын
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
@christianlempa 2 жыл бұрын
Thanks! :)
@olivierbourdon2397
@olivierbourdon2397 Ай бұрын
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
@christianlempa Ай бұрын
Thanks for the idea, I think that would be great to solve some of the problems here ;)
@Tech-Junkie
@Tech-Junkie 2 жыл бұрын
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
@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
@bxhehehehdhdhhd1443 2 жыл бұрын
Yes the terraform plan provides the binary to run and configure your infrastructure
@mrpheo
@mrpheo 2 жыл бұрын
love the drawings in your videos, is that just an ipad app and you are screen capturing the ipad?
@christianlempa
@christianlempa 2 жыл бұрын
Thanks ;) It's just my Samsung Galaxy Tab as an external screen and recording in OBS
@TakeOnMe5
@TakeOnMe5 8 ай бұрын
My head just got terraformed 🤯
@Az9rtt
@Az9rtt 2 жыл бұрын
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
@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.
@user-tu7yt6fn2z
@user-tu7yt6fn2z 4 ай бұрын
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 ??
@ummeamjad1191
@ummeamjad1191 Жыл бұрын
Please make a video of deploying eks cluster using Terraform
@PhilipFreude
@PhilipFreude 2 жыл бұрын
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
@capps1994 2 жыл бұрын
Yeah terraform will implicitly wait for the value you have referenced
@christianlempa
@christianlempa 2 жыл бұрын
Thank you, that's such a great tip ;)
@eladdieyo84
@eladdieyo84 25 күн бұрын
So if you can use terraform to create tbe resources, and kubernetes to orchrstrate the deployment, with Argo CD to build the solution after tested development... doesnt this make it a No Ops architecture?
@tanchwa3740
@tanchwa3740 2 жыл бұрын
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
@tanchwa3740 2 жыл бұрын
Or was this actually a k8s object since it got run through a helm chart?
@AloeusCapitalManagem
@AloeusCapitalManagem Жыл бұрын
you can also terraform virtio which I found nicer (I think everyone would have their own opinion about this) than proxmox for local projects
@KD_Puvvadi
@KD_Puvvadi 2 жыл бұрын
man, my love for terraform exceeds love for myself
@shashank.bharadwaj
@shashank.bharadwaj 2 жыл бұрын
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
@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 🤣
@fabmartel
@fabmartel 8 ай бұрын
you dont have the Terraform for create the cluster Kubernetes on Premises (no cloud) ?
@OlegKorsak
@OlegKorsak Жыл бұрын
why not to let traefik to do certificate stuff?
@abdulmunir3662
@abdulmunir3662 2 жыл бұрын
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
@christianlempa 2 жыл бұрын
Thank you so much! Which reference do you mean?
@abdulmunir3662
@abdulmunir3662 2 жыл бұрын
@@christianlempa the parameter for traefik helm chart in terraform like this one set { name = "ingressClass.isDefaultClass" value = "true" }
@benjamin3044
@benjamin3044 8 ай бұрын
Give us an OpenTofu tutorial next!
@vincentmetallive
@vincentmetallive 2 жыл бұрын
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
@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
@vincentmetallive 2 жыл бұрын
@@christianlempa thanks!
@cheebadigga4092
@cheebadigga4092 2 жыл бұрын
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
@christianlempa 2 жыл бұрын
Mainly to show how the cert-manager certificate is working.
@cheebadigga4092
@cheebadigga4092 2 жыл бұрын
@@christianlempa ahhh good point.
@marcelomarcon8216
@marcelomarcon8216 Жыл бұрын
What is this vscode theme that you uses ?
@seanknowles9985
@seanknowles9985 Жыл бұрын
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
@bmejia220 Жыл бұрын
You can do it Sean!
@seanknowles9985
@seanknowles9985 Жыл бұрын
@@bmejia220 if someone would actually show the end to end solution I can probably do it ;)
@gookulgopan
@gookulgopan 11 ай бұрын
may I know which tool you are using for that handwritten visualizations ?
@christianlempa
@christianlempa 11 ай бұрын
I think that time I was using explain everything, now I’m using excalidraw
@i-am-oi
@i-am-oi 2 жыл бұрын
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.
@infocus-media
@infocus-media Жыл бұрын
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 KZbin 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
@jonkoenig2478 Жыл бұрын
What?
@kebab-case
@kebab-case 2 жыл бұрын
Can you do a video on Harvester
@christianlempa
@christianlempa 2 жыл бұрын
Not in the near future, maybe I'll do at some point.
@skaramicke
@skaramicke Жыл бұрын
Now do one for OpenStack!
@sagarbasutkar1901
@sagarbasutkar1901 3 ай бұрын
How to run this via cloudbuild yaml
@allisondealmeida
@allisondealmeida 2 жыл бұрын
This project can be applied in On-premises?
@christianlempa
@christianlempa 2 жыл бұрын
The projects would need some adjustments, but you could in theory use the same tools, yes.
@Fiox789
@Fiox789 2 жыл бұрын
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
@Falc0n68
@Falc0n68 Жыл бұрын
Don't you need 3 nodes for it to be HA?!
@brensleyfoster700
@brensleyfoster700 2 жыл бұрын
Once again, can you share the code....?
@christianlempa
@christianlempa 2 жыл бұрын
It's on my GitHub
@enzo.albornoz
@enzo.albornoz Жыл бұрын
It's just me or he put a frame with a clown at 20:10?
@christianlempa
@christianlempa Жыл бұрын
That’s my desktop wallpaper sneaking in xD
@Admiral_AWS
@Admiral_AWS 2 жыл бұрын
Pretty homosexual thumbnail but the content of the video is on point. Good job my man!
@dyllanmccreary688
@dyllanmccreary688 11 ай бұрын
“Deploy in seconds”
@ss-o
@ss-o 2 жыл бұрын
Got tired of KZbinrs 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
@sundarshi 2 жыл бұрын
M
@marcusaurelius6607
@marcusaurelius6607 6 ай бұрын
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.
@crap2642
@crap2642 2 жыл бұрын
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.
@TheLocalStuff
@TheLocalStuff 3 ай бұрын
Thanks!
@christianlempa
@christianlempa 3 ай бұрын
Thank you so much for your support ❤️👏
What is infrastructure as code? // Terraform Tutorial
30:24
Christian Lempa
Рет қаралды 33 М.
Kubernetes Explained in 15 Minutes | Hands On (2024 Edition)
15:18
Travis Media
Рет қаралды 65 М.
ROCK PAPER SCISSOR! (55 MLN SUBS!) feat @PANDAGIRLOFFICIAL #shorts
00:31
когда повзрослела // EVA mash
00:40
EVA mash
Рет қаралды 3,8 МЛН
Alat Seru Penolong untuk Mimpi Indah Bayi!
00:31
Let's GLOW! Indonesian
Рет қаралды 15 МЛН
The child was abused by the clown#Short #Officer Rabbit #angel
00:55
兔子警官
Рет қаралды 23 МЛН
the ULTIMATE kubernetes management tools comparison!
19:12
Christian Lempa
Рет қаралды 58 М.
How to start your HomeLab journey?
17:32
Christian Lempa
Рет қаралды 59 М.
Free SSL Certs in Kubernetes! Cert Manager Tutorial
16:51
Christian Lempa
Рет қаралды 55 М.
I automated EVERYTHING in my HomeLab with Kestra
30:56
Christian Lempa
Рет қаралды 29 М.
Using *HA* Kubernetes at home, was never so simple!
32:14
Christian Lempa
Рет қаралды 162 М.
Do NOT Learn Kubernetes Without Knowing These Concepts...
13:01
Travis Media
Рет қаралды 242 М.
Kubernetes explained simply, and why you should learn it!
31:59
Christian Lempa
Рет қаралды 78 М.
This web UI for Ansible is so damn useful!
20:07
Christian Lempa
Рет қаралды 458 М.
ROCK PAPER SCISSOR! (55 MLN SUBS!) feat @PANDAGIRLOFFICIAL #shorts
00:31