ArgoCD Tutorial for Beginners: GitOps CD for Kubernetes #1

Ғылым және технология

🔴 - To support my channel, I’d like to offer Mentorship/On-the-Job Support/Consulting - me@antonputra.com
▬▬▬▬▬ Experience & Location 💼 ▬▬▬▬▬
► I’m a Senior Software Engineer at Juniper Networks (12+ years of experience)
► Located in San Francisco Bay Area, CA (US citizen)
▬▬▬▬▬▬ Connect with me 👋 ▬▬▬▬▬▬
► LinkedIn: / anton-putra
► Twitter/X: / antonvputra
► GitHub: github.com/antonputra
► Email: me@antonputra.com
▬▬▬▬▬▬ Related videos 👨‍🏫 ▬▬▬▬▬▬
👉 [Playlist] Kubernetes Tutorials: • Kubernetes Tutorials
👉 [Playlist] Terraform Tutorials: • Terraform Tutorials fo...
👉 [Playlist] Network Tutorials: • Network Tutorials
👉 [Playlist] Apache Kafka Tutorials: • Apache Kafka Tutorials
👉 [Playlist] Performance Benchmarks: • Performance Benchmarks
👉 [Playlist] Database Tutorials: • Database Tutorials
▬▬▬▬▬▬▬ Timestamps ⏰ ▬▬▬▬▬▬▬
0:00 Intro
3:47 Install ArgoCD on Kubernetes
11:41 Create Kubernetes CD pipeline with PUBLIC repo & image
24:46 Argocd App of Apps Pattern
26:06 Create Kubernetes CD pipeline with PRIVATE repo & image
33:34 ArgoCD Helm Chart Example
36:16 ArgoCD Kustomize Example
▬▬▬▬▬▬▬ Source Code 📚 ▬▬▬▬▬▬▬
► GitHub: github.com/antonputra/tutoria...
#argocd #kubernetes #devops

Пікірлер: 102

  • @AntonPutra
    @AntonPutra Жыл бұрын

    🔴 - To support my channel, I’d like to offer Mentorship/On-the-Job Support/Consulting - me@antonputra.com

  • @DevOpsEd
    @DevOpsEd Жыл бұрын

    I can't really express in words how helpful your tutorials are. Your EKS-Terraform tutorial had saved me a client in my early Fiverr days and this one too is a life-saver. Thanks very much Anton.

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    Thanks Raza!

  • @DevOpsEd

    @DevOpsEd

    Жыл бұрын

    @@AntonPutra By the way Anton, which yaml formatting extension are you using here for VSCode? Thanks.

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    ​@@DevOpsEd - Name: YAML Id: redhat.vscode-yaml Description: YAML Language Support by Red Hat, with built-in Kubernetes syntax support Version: 1.12.2 Publisher: Red Hat VS Marketplace Link: marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml

  • @djKenpLan09
    @djKenpLan0929 күн бұрын

    Great video! Most creators assume some basic details that you just covered as part as your step-by-step procedure. Thanks for sharing knowledge man!

  • @AntonPutra

    @AntonPutra

    28 күн бұрын

    my pleasure!

  • @Temp1archik
    @Temp1archik Жыл бұрын

    Perfect timing. I need it for my new project

  • @prashlovessamosa
    @prashlovessamosa Жыл бұрын

    Hey Anton thank you please make more tutorials like these Long videos like theses gives us lot of information. Thank you.

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    Thanks for the feedback. Yes from now on only long format!

  • @bnssoftware3292
    @bnssoftware32926 ай бұрын

    Can't believe you don't have more subscribers. You are the go-to guy for me now. Thank you.

  • @azerbaijan50
    @azerbaijan50 Жыл бұрын

    It is basically just perfect! Thank you for your contribution, Anton!

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    Thanks Jaguar Paw!

  • @George-mk7lp
    @George-mk7lp Жыл бұрын

    I always put like then watching your videos

  • @OsascogamingBrSP
    @OsascogamingBrSP Жыл бұрын

    Thank you so much again Anton! It was a very helpful video. I'm sure I learned more than some courses!

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    Thanks Jeckson!

  • @agun21st
    @agun21st Жыл бұрын

    I was looking for this tutorial Sir. Thank you ❤

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    It took me a while =)

  • @nishadali940
    @nishadali940 Жыл бұрын

    Thanks for the tutorial.

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    You're welcome!

  • @twizzoe
    @twizzoe6 ай бұрын

    Hi Anton, your contents are GOLD, thanks for the effort you put into these quality videos

  • @AntonPutra

    @AntonPutra

    6 ай бұрын

    Thanks!

  • @chasim1982
    @chasim1982 Жыл бұрын

    Great Tutorial ❤ love it, You are awesome 👌 teacher, thanks a lot.

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    Thank you! 😃

  • @yassinekhouaja1257
    @yassinekhouaja1257 Жыл бұрын

    Thank you, Anton. Your tutorials are very informative, and I would appreciate it if you could create more videos like these in the future. The length of these videos allows us to gain a lot of valuable knowledge. Once again, thank you.

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    THanks one more is coming soon

  • @yassinekhouaja1257

    @yassinekhouaja1257

    Жыл бұрын

    @@AntonPutra Great to hear that I'm looking forward to seeing your next video. Could you suggest any helpful resources for someone who is new to GitOps and DevOps ?

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    @@yassinekhouaja1257 kubernetes.io/ for sure

  • @romanbatrak3763
    @romanbatrak37637 ай бұрын

    Very informative videos ☝🏼👍🏼

  • @AntonPutra

    @AntonPutra

    7 ай бұрын

    Thanks Roman!

  • @aayush5474
    @aayush5474 Жыл бұрын

    Great tutorial

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    Thank you!

  • @jovision30
    @jovision302 ай бұрын

    Thank you so much for your efforts ✌

  • @coleshores
    @coleshores11 ай бұрын

    I am a huge fan of using terraform to deploy with helm as well. It's very nice to have a single module to deploy every applicable resource in a declarative way. It's nice to see someone else using this pattern as well.

  • @AntonPutra

    @AntonPutra

    11 ай бұрын

    It's great for deployments but terraform is not great for managing and keeping the state sync with the source code...

  • @coleshores

    @coleshores

    11 ай бұрын

    @@AntonPutra Im using Terraform to layer down the foundations for continuous deployment. I am using it to deploy kube(proxmox + kubespray in a single tf module), layer down metallb to carve out a small ip space block and configure NFS. Along with little one offs like my Minecraft server and ArgoCD it's self. I plan on using ArgoCD in my homelab to become more familiar with GitOps. Your tutorial has been very helpful so far.

  • @havefun599
    @havefun5992 ай бұрын

    Very helpfull video, Thank you

  • @thapakazi_
    @thapakazi_8 ай бұрын

    Thanks for the video!. How do you handle the notification for the deployment failures, let say for a migration job that happens at beginning of every deployments ?

  • @AntonPutra

    @AntonPutra

    8 ай бұрын

    Good question. I'm about to create a video about it. In short, you can use Prometheus metrics, which you can obtain from here argo-cd.readthedocs.io/en/stable/operator-manual/metrics/

  • @webspooky
    @webspooky11 ай бұрын

    Bedankt

  • @AntonPutra

    @AntonPutra

    11 ай бұрын

    Thanks for the support @webspooky!

  • @user-tq9xh9qs4w
    @user-tq9xh9qs4w Жыл бұрын

    Hi, your tutorials helped me land a great job and made me a lot better in Aws, Kubernetes, Terraform and everything else you show on your channel ! Great stuff !! I currently use argo to deploy some apps, but my containers go into loopback, do you have any idea how to troubleshoot them ?

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    Thanks! Crashloop? Check logs before it crashes with kubectl logs -p pod. Or check if it crashes with OOM memory. Kubectl describe pod

  • @Davidlavieri
    @Davidlavieri9 ай бұрын

    This looks good, in surface is amazing at local, but it scares me on production to manage these things in HA, does it have storage to manage, caches? can you make a video about general best practices when moving things production

  • @AntonPutra

    @AntonPutra

    9 ай бұрын

    I've been running ArgoCD and Flux in prod for 4 years now. It's very straightforward. The only thing you need to pay attention to is garbage collection (when you delete a YAML from Git, the agent removes it from the cluster). If you're just getting started, I would suggest disabling it.

  • @madrag
    @madrag7 ай бұрын

    Seem great, how to deal with context deadline exceeded error from terraform? In Git there are lots of "solutions" can't tell what will work

  • @AntonPutra

    @AntonPutra

    7 ай бұрын

    It depends, if you get context deadline while creating a resource, you can override default and increase the timeline. If you get deadline while destroying infra try to rerun, if it fails most likelly there is a dependency and terraform cannot delete the object. It happens a lot when destroy, you can enable debug log or just remove components manually fro the UI.

  • @ricardopcunha
    @ricardopcunha Жыл бұрын

    Valeu!

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    Thanks Ricardo!

  • @rusyn2512
    @rusyn25129 ай бұрын

    @AntonPutra thanks for extremely useful manual! Could you please help me - I've got an error: ComparisonError groupVersion shouldn't be empty, after using kubectl apply command? It looks like wrong version of Helm charts.

  • @rusyn2512

    @rusyn2512

    9 ай бұрын

    Thanks, already fixed, delete and apply again helped)

  • @viswaviswa8616
    @viswaviswa86167 ай бұрын

    Hi Anton, thanks for the more effort, just having doubt about argo cd login, do you have video for okat integration for Argocd?

  • @AntonPutra

    @AntonPutra

    7 ай бұрын

    Thanks, no I can't really cover all integrations in the video, however i've done it many times

  • @viswaviswa8616

    @viswaviswa8616

    7 ай бұрын

    @@AntonPutra you mean you have already covered the topics using Argo cd or someother video in your KZread channel?

  • @AntonPutra

    @AntonPutra

    7 ай бұрын

    @@viswaviswa8616 No, I mean, I've been doing a lot of Okta integration at my work. A few months ago, I was trying to get an Okta account that I could use for a tutorial, but they refused to give it to me, and it's quite expensive for me to buy for personal/educational use. So, I can't do Okta integrations yet.

  • @viswaviswa8616

    @viswaviswa8616

    7 ай бұрын

    @@AntonPutra true it's expensive, thanks for your help

  • @keratishvili
    @keratishvili Жыл бұрын

    Hey Anton great video, would love to see maybe fluxCD V2 comparison

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    Will do

  • @George-mk7lp
    @George-mk7lp9 ай бұрын

    do you have any tutorial with github actions ci/cd ?

  • @AntonPutra

    @AntonPutra

    8 ай бұрын

    Yes I have few videos kzread.info/dash/bejne/nnhk1o-Ol67MddI.html kzread.info/dash/bejne/nKuYqZh9XaSoYc4.html kzread.info/dash/bejne/aJiAqsWnnLPPj7g.html kzread.info/dash/bejne/eqppt8V7idbLpdY.html

  • @Temp1archik
    @Temp1archik Жыл бұрын

    Hopefully you will add section how to use it via terraform or via the same argocd approach - for the argocd itself. They (argocd) have something called Autopilot for bootstrapping argocd in the kubernetes cluster. And moreover - to have that possible video with the AWS EKS cluster. I already built one using you EKS Cluster creation video using terraform (but without cluster autoscaling part). And possibly with the information how to expose argocd via ingress, but without using custom domains. I can not find proper guide, how to quickly expose your Kubernetes application (like argoCd) outside, without having your own domain. Or maybe with domain - it is even more important. We all can purchase private domain in case we need it =) by the way - great content as always.

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    Thanks for the feedback! private domain would require vpn, which i don't want to setup for this tutorial

  • @donwilsonobido4196

    @donwilsonobido4196

    Жыл бұрын

    We think the same. I'm thinking how to deploy argo cd on EKS using terraform and how to access it securely.

  • @AntonPutra
    @AntonPutra Жыл бұрын

    Get Full-Length High-Quality DevOps Tutorials for Free - Subscribe Now! - kzread.info

  • @InsideFact1

    @InsideFact1

    Жыл бұрын

    Mlops and machine learning engineer are different?

  • @nomionz4150
    @nomionz4150 Жыл бұрын

    Hello, Anton. First of all, thank you for the amazing guides you provide. One thing I'm interested in in this video is how you stored a private ssh key in k8s cluster. Is it a common practice to store the key in Secret? I read a k8s doc and it says it's not secure. I would prefer to use some sort of key-vault. I understand that this is only a guide, and I just want to ask if this is a good practice.

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    Thanks, there are so many different integrations harshi corp vault, aws secrets manager etc. The easiest way is to use sealed secrets - kzread.info/dash/bejne/hZx7qqWphbDKf8o.html

  • @kasvith
    @kasvith7 ай бұрын

    Do you recommend adding everything inside an argocd app like databases(statefulsets) ? or should we create them separately and just deply our app image with argocd?

  • @AntonPutra

    @AntonPutra

    7 ай бұрын

    First of all, I would never recommend deploying databases in Kubernetes. However, for other stateful applications, such as Kafka or RabbitMQ, you should add them as ArgoCD apps and use the app-of-apps pattern.

  • @rebelavie7772
    @rebelavie777210 ай бұрын

    Hey.. Anton... Do you have some experience using jsonnet? ( data templating language) in kubernetes... If yes Can do a video about it..? I heard it could be a good alternativ to kustomize or helm

  • @AntonPutra

    @AntonPutra

    10 ай бұрын

    Yes, will do!

  • @xylyx_
    @xylyx_ Жыл бұрын

    Please make a video on Istio ambient mesh which runs without sidecars with the help of eBPF.

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    will do

  • @YeetYeetYe
    @YeetYeetYe10 ай бұрын

    Fantastic video! Can you make a video about your background, how you came into tech and why you wanted to be in DevOps? Thank you for everything that you do.

  • @AntonPutra

    @AntonPutra

    10 ай бұрын

    Thanks! Maybe in the future

  • @matc8085
    @matc80855 күн бұрын

    how to connect to private repo was just what I needed

  • @AntonPutra

    @AntonPutra

    5 күн бұрын

    i hope you found the answer

  • @powersurge5576
    @powersurge55769 ай бұрын

    How do you guys go about failed ArgoCD application syncs and you need to rollback. What automation logic do you put in? With HELM atomic deployments it is fool proof and release would get rolled back. With ArgoCD we reckon to put stages in the pipelines that will be checking the sync status and trigger last known good release deployment if prolonged failures observed.

  • @AntonPutra

    @AntonPutra

    9 ай бұрын

    We use Flux v2 in production, which in my opinion is more mature, especially in terms of auto-deployment and committing back to Git. For failures, there is a Prometheus metric and alert.

  • @powersurge5576

    @powersurge5576

    9 ай бұрын

    ​@@AntonPutratx! A slightly on a tangent question. What toolkit/approch you'd recommend to combine CSP resources provisioning that would be a part/dependency of the deployed Kubernetes microservice app, where Devs don't have to stitch/reference all resources manually. This would only be used for standardised app deployments. This would have to work with Flux deployment model. At the moment I'm thinking of two options. 1. Use custom Helm Library Charts (which is a good practice anyway) that will deploy an app and create manifests for e.g. Azure Service Operator, which will manage Azure resources. Since we host many apps on a single subscription, I've heard there are scalability issues with service operators as they can hit rate limiting pretty quickly, or if supported configure a dedicated account per tenant operator. 2. At one of the pipeline stages either through Helm Library Chart templating or some other method generate Terraform resources and plan/review/approve/apply. Following with the triggered app sync/deploy. I'd think we'll have some write-back tags on commits to identify last successful running app release numbers and commits. This will allow for auto sync on e.g. kubernetes cluster redeploy/app recovery, whereby we don't have to run a pipeline for deployments. Or would you keep CSP resource provisioning independent of the app?

  • @pikachu3686
    @pikachu3686Ай бұрын

    can we use this approach in production i want to deploy this on EKS.

  • @AntonPutra

    @AntonPutra

    Ай бұрын

    Sure, I would say you must use the GitOps approach in production, and ArgoCD and FluxCD are the most widely used tools for that job.

  • @chasim1982
    @chasim1982 Жыл бұрын

    Can you please make video on Argocd application set, why we need it? Thanks

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    sure in the future

  • @MinhNguyen-tf7bq
    @MinhNguyen-tf7bq7 ай бұрын

    Why are there two different versions of Argo CD throughout your video, mostly 3.35.4 and 2.6.6 at 09:24?

  • @AntonPutra

    @AntonPutra

    6 ай бұрын

    To be honest, I don't remember, but I would suggest using the latest Helm chart and ArgoCD version. Here's an example: they have a new way to configure the "insecure" parameter via settings. Link - github.com/antonputra/tutorials/blob/main/lessons/179/terraform/1-argocd.tf

  • @premierde
    @premierde Жыл бұрын

    Would be nice to see how to access argocd ui via istio gw & vs.

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    Well you just need to setup a regular ingress, I have a bunch of examples like that - kzread.info/dash/bejne/a6eAqtF-qbXXaNo.html

  • @premierde

    @premierde

    Жыл бұрын

    @@AntonPutra Thankyou. Yea I have now Argocd with istiogw & vs up & running.

  • @papryk1159
    @papryk1159 Жыл бұрын

    how do you learn all these things? any tips to share?

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    read docs =)

  • @thrinadhvenkata2315
    @thrinadhvenkata231510 ай бұрын

    How to remove duplicate logs in argocd

  • @AntonPutra

    @AntonPutra

    10 ай бұрын

    Not sure about duplicate logs but you can definitely adjust verbosity

  • @thrinadhvenkata2315

    @thrinadhvenkata2315

    10 ай бұрын

    @@AntonPutra need to remove unnecessary logs in my spring boot application

  • @AntonPutra

    @AntonPutra

    10 ай бұрын

    @@thrinadhvenkata2315 well it's outside of the argocd scope. You need to do it on the application level, maybe you have 2 loggers, one writes to the console and another one to file..

  • @bakhtiyargarashov805
    @bakhtiyargarashov805 Жыл бұрын

    Off-topic: seems you are still using Lastpass even after their security incidents.

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    Planing to switch to self hosted Bitwarden soon

  • @shamstabrez2986
    @shamstabrez2986 Жыл бұрын

    plz upload videos in fast pace so that we could learn more in a minimum time

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    I'll see what i can do =)

  • @shamstabrez2986

    @shamstabrez2986

    Жыл бұрын

    @@AntonPutra thnx man for ur rply

  • @AdamPoniatowski
    @AdamPoniatowski Жыл бұрын

    9:48 ... and proceeds to never explain how to do that

  • @AntonPutra

    @AntonPutra

    Жыл бұрын

    Yeah i know, sorry =) I have bunch of example with ingresses pls take a look - github.com/antonputra/tutorials/tree/main/lessons/082 it's really easy if you go through this tutorial

Келесі