Argo CD - Applying GitOps Principles To Manage A Production Environment In Kubernetes

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

Argo CD is a declarative GitOps deployment tool for Kubernetes.
It is one of the best, if not the best tool we have today to deploy applications inside Kubernetes clusters. It is based on GitOps principles, and it is a perfect fit to be a part of continuous delivery pipelines. It provides all the building blocks we might need if we would like to adopt GitOps principles for deployments and inject them inside the process of application lifecycle management.
Argo CD is a tool that helps us forget the existence of `kubectl apply`, `helm install`, and similar commands. It is a mechanism that allows us to focus on defining the desired state of our environments and pushing definitions to Git. It is up to Argo CD to figure out how to converge our desires into reality.
DevOps Catalog, Patterns, And Blueprints: www.devopstoolkitseries.com/p...
Books and courses: www.devopstoolkitseries.com
Podcast: www.devopsparadox.com/

Пікірлер: 106

  • @jasonma9513
    @jasonma95133 жыл бұрын

    Good job

  • @jaumzors1
    @jaumzors13 жыл бұрын

    I really like the direct approach you use to show things actually running. Great video :D

  • @demidevil666
    @demidevil6663 жыл бұрын

    This introduction was great! Thank you very much for producing this. My team will love Argo. :D

  • @tugceozturk6535
    @tugceozturk65353 жыл бұрын

    Very clear demonstration. Thank you!

  • @touchthesun
    @touchthesun3 жыл бұрын

    This is great! I'm just starting to learn Argo CD for work, I'm looking forward to starting your course.

  • @jonassteinberg3779
    @jonassteinberg37792 жыл бұрын

    superb high-level, basic introduction to ArgoCD. Thank you.

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

    Another awesome video ❤, thank you Viktor we appreciate you 🙏

  • @florinhendea2393
    @florinhendea23932 жыл бұрын

    Thank you Viktor!..really great explanation!

  • @jimbrent8151
    @jimbrent81513 жыл бұрын

    Great job. Bought the course starting now.

  • @DevOpsToolkit

    @DevOpsToolkit

    3 жыл бұрын

    Hope you enjoy it!

  • @mrnobody5763
    @mrnobody57633 жыл бұрын

    I didn't know you were a Udemy instructor. I'll take your "DevOps Catalog, Patterns, And Blueprints" course. You're doing a great job man. Thank you so much.

  • @DevOpsToolkit

    @DevOpsToolkit

    3 жыл бұрын

    Thank you for saying that.

  • @sunnyxd5000
    @sunnyxd50002 жыл бұрын

    I really enjoy to watching your videos :)

  • @BoatsForALiving
    @BoatsForALiving2 жыл бұрын

    Looks like you got some new upgrades... you deserve them.

  • @dushyantm9579
    @dushyantm95792 жыл бұрын

    Amazing content!👍🏻

  • @srsh77
    @srsh773 жыл бұрын

    Thanks. Excellent Job !

  • @DevOpsToolkit

    @DevOpsToolkit

    3 жыл бұрын

    Glad you liked it!

  • @shakilmakram6923
    @shakilmakram69233 жыл бұрын

    thanks a lot, keep posting more on this

  • @DevOpsToolkit

    @DevOpsToolkit

    3 жыл бұрын

    Thank you, I will

  • @SerhiyKalinets
    @SerhiyKalinets2 жыл бұрын

    Great video, thank you

  • @tauruscolvin
    @tauruscolvin2 жыл бұрын

    Excellent content. Love the channel and whats-a-not.

  • @underlecht
    @underlecht3 жыл бұрын

    I want to take holidays and watch all your videos

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

    very nice! love it

  • @fabianbusch8772
    @fabianbusch877211 ай бұрын

    Nice concept "app of apps". I'll try that like "app of appsets which generates apps" because I want to reuse as much as I can for many apps in one appset.

  • @alvsanand
    @alvsanand3 жыл бұрын

    Great video!

  • @DevOpsToolkit

    @DevOpsToolkit

    3 жыл бұрын

    Thanks!

  • @hn3m3s1s
    @hn3m3s1s3 жыл бұрын

    Many thanks!

  • @ruslanramazanov5814
    @ruslanramazanov58143 жыл бұрын

    i often press like button then watch video:)

  • @Rdgc91
    @Rdgc913 жыл бұрын

    Thanks man!

  • @javisartdesign
    @javisartdesign3 жыл бұрын

    Very practical! Thanks for share it. It would be nice to have a comparison (or possible combination) between Argo CD, Tekton, Flux CD, JenkinsX, etc..

  • @DevOpsToolkit

    @DevOpsToolkit

    3 жыл бұрын

    Great suggestion! I'll start by doing individual videos for those I haven't done before. That would be Tekton and Jenkins X (I made a lot of material about JX, but that's all older than a year). After that, I'll probably do a comparison between all those.

  • @DevOpsToolkit

    @DevOpsToolkit

    3 жыл бұрын

    Just published a video about Tekton (kzread.info/dash/bejne/aaGq1NKxqsKolqg.html). Next should be Jenkins X and then I can do a comparison. Argo CD and Flux CD are completely different categories. They are not pipelines and they do not do CD (except having it in their names). They are GitOps-style deployment mechanisms.

  • @javisartdesign

    @javisartdesign

    3 жыл бұрын

    @@DevOpsToolkit awesome! yes, that's why the combo between these tools are great. Instead pushing deployments using tekton, gitlabci, etc.. use instead gitops strategies to constantly pulling for changes in the state.

  • @chandup
    @chandup3 жыл бұрын

    Thank you for this video, Viktor. Could you please explain diff between ArgoCD & Tekton? And also, could you please make a video on how to use both together & advantages/disadvantages of using them together?

  • @DevOpsToolkit

    @DevOpsToolkit

    3 жыл бұрын

    That's a good idea. I'll do my best to work on it ASAP.

  • @DevOpsToolkit

    @DevOpsToolkit

    3 жыл бұрын

    It's done and available in kzread.info/dash/bejne/lnWJ0qOqZ8vMlaQ.html

  • @chandup

    @chandup

    3 жыл бұрын

    @@DevOpsToolkit thank you so much

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

    Very nice :)

  • @user-zb6mo3bo5u
    @user-zb6mo3bo5u2 жыл бұрын

    Thank you for your video. @DevOpsToolkit Why you didn't use Application Set?

  • @DevOpsToolkit

    @DevOpsToolkit

    2 жыл бұрын

    When that video was published, Application Sets were still in the planning phase.

  • @CODEMENTAL
    @CODEMENTAL3 жыл бұрын

    Great video Viktor. Does Argocd allow to create namespaces automatically based on branch names? Or does that have to be configured manually?

  • @DevOpsToolkit

    @DevOpsToolkit

    3 жыл бұрын

    As far as I know, it'll not create namespaces automatically without you telling it to do that. Argo CD applies whichever manifests it finds in the repo it monitors. It's up to us to make sure that those manifests are what they should be, including Namespaces we want to use.

  • @CODEMENTAL

    @CODEMENTAL

    3 жыл бұрын

    @@DevOpsToolkit Thanks Viktor. Just saw your other video on argocd and pull requests. That is not far off where we await to get to.

  • @swagatdash91
    @swagatdash912 жыл бұрын

    This is really helpful. Can you please tell how Argo CD is different from other tool like seldon.

  • @DevOpsToolkit

    @DevOpsToolkit

    2 жыл бұрын

    I have not yet tried Seldon so I cannot compare it with Argo CD. Judging from a quick glimpse at it, it seems to be a wrapper around Argo CD.

  • @DevOpsToolkit

    @DevOpsToolkit

    2 жыл бұрын

    The real competitor of Argo CD is Flux. Both are very similar and it would be hard to say that one is clearly better than the other. All the other tools I know in that area are either a waste of time or are built on top of one of those two.

  • @DannyRBennett
    @DannyRBennett3 жыл бұрын

    Good stuff... just started new project and definitely moving to a similiar GitOps workflow using GitLab, Helm, ArgoCD and k8s. WHat was the name of the software tool used to draw your diagram on screen?

  • @DevOpsToolkit

    @DevOpsToolkit

    3 жыл бұрын

    When I recorded that video, I used krita.org with a green background that is removed by OBS while recording. Since then, I moved to presentify.compzets.com/ which allows me to draw directly over the screen.

  • @TAICHI1SCO
    @TAICHI1SCO3 жыл бұрын

    Thanks for sharing. Does this video come with a gist url?

  • @DevOpsToolkit

    @DevOpsToolkit

    3 жыл бұрын

    That one doesn't :) I started adding Gists soon after I published that one.

  • @ErkaiErkinbekova-nv2yl
    @ErkaiErkinbekova-nv2yl Жыл бұрын

    Thank you very much for all effort, i really wanted to buy your udemy course, but could not find it

  • @DevOpsToolkit

    @DevOpsToolkit

    Жыл бұрын

    I removed all my Udemy courses. The tech changes fast and i felt that those courses do not fully represent recommendation i would give today.

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

    Thank you for your nice videos. Please do you have a tutorial, for an end-to-end ci/cd pipeline where the image tag in the values file is updated, and this update is pushed to the gitops (k8s minifest) repo to trigger the CD? thank you

  • @DevOpsToolkit

    @DevOpsToolkit

    Жыл бұрын

    Will do... Ading it to my TODO list...

  • @christianibiri
    @christianibiri3 жыл бұрын

    Thank you for this 😀😀😀😀😀😀😀

  • @zsolt2108
    @zsolt21083 жыл бұрын

    Hi Victor! I am missing the point of where and when the new image version is getting built of the apps. Great videos, thank you!

  • @DevOpsToolkit

    @DevOpsToolkit

    3 жыл бұрын

    Argo CD is concerned only about synchronization of different states. To build an image, you can, for example, use Kaniko ( kzread.info/dash/bejne/d5uruLOHZqq0eso.html ). You might want to watch kzread.info/dash/bejne/ioKMrNaxm7ixlbw.html as well. It is about combining different tools to automate full lifecycle, including building images

  • @DevOpsToolkit

    @DevOpsToolkit

    3 жыл бұрын

    I forgot to answer "when"... You build a new image whenever you push changes to a git repo of an app. Typically, that would trigger a webhook that would notify something that there was a change in an app repo. That something can be any pipeline/workflow tool. You'll find a video about Argo Workflows in my channel, but it could be just as well any other like, for example, Jenkins, Circle I, etc.

  • @zsolt2108

    @zsolt2108

    3 жыл бұрын

    @@DevOpsToolkit Ah okay, I see now in your all-in-one Argo video: kzread.info/dash/bejne/ioKMrNaxm7ixlbw.html Thank you!

  • @fpvclub7256
    @fpvclub72562 жыл бұрын

    So.. We use ArgoCD and we're looking to use Argo Rollouts - but I have a question for you.. What if we wanted a progressive delivery model to release and support multiple versions of an application?.. For example, we release V2 with breaking changes and we need to have V1 and V2 running, do we treat this new V2 as a brand new application altogether and handle the routing ourselves at the ingress controller, or is there a way to have a single argo application definition that has two versions of the same application and support progressive delivery of both versions simultaneously?..

  • @DevOpsToolkit

    @DevOpsToolkit

    2 жыл бұрын

    How would that work on the Ingress level? Would both V1 and V2 be accessible through the same host? If the answer is yes you'd need something else that would ensure that a request is redirected to the correct version. Typically, you would need to add some identifier to the requests. On the other hand, if you prefer to have those accessible through different hosts, I would just deploy it as a different application.

  • @karimnaufal9792
    @karimnaufal97922 жыл бұрын

    A wizard.

  • @nicholasmanning4307
    @nicholasmanning43072 жыл бұрын

    Nice work. You have a typo in the title though. Add an article, “manage a production” not “manage production”

  • @DevOpsToolkit

    @DevOpsToolkit

    2 жыл бұрын

    Thanks for that. Title changed...

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

    Hi Viktor. What is your approach for cicd in gitops in terms of do you change the new image in the argo app only or do you change the new image in the source values file of the helm chart too? Thanks upfront.

  • @DevOpsToolkit

    @DevOpsToolkit

    Жыл бұрын

    I tend to keep manifests in the main branch with tags that reflect production with the option to overwrite that in argo CD app.

  • @vangelkrstevski566

    @vangelkrstevski566

    Жыл бұрын

    @@DevOpsToolkit thanks.

  • @SanjeevKumar-nq8td
    @SanjeevKumar-nq8td2 жыл бұрын

    wonderful ; May I know how does the destination namespace "production" works. Can it be set from the argocd UI. And where is that ingress host get substituted

  • @DevOpsToolkit

    @DevOpsToolkit

    2 жыл бұрын

    Argo CD UI is not meant to be used to create resources in k8s. That would defy its purpose. What you can do is push define the Namespace is push it to Git.

  • @SanjeevKumar-nq8td

    @SanjeevKumar-nq8td

    2 жыл бұрын

    @@DevOpsToolkit I tried, unfortunately project with different name are not created ?

  • @DevOpsToolkit

    @DevOpsToolkit

    2 жыл бұрын

    @@SanjeevKumar-nq8td I'm not 100% sure what you meant by "project with different name are not created" in relation to namespaces.

  • @underlecht
    @underlecht3 жыл бұрын

    How does ArgoCD build an image? Should be some instructions provided? Also, does ArgoCD support Kustomize? This one is more preferable to me over Helm :)

  • @DevOpsToolkit

    @DevOpsToolkit

    3 жыл бұрын

    Argo CD does not build images. It assumes that you are doing the process of building, testing, etc. in whichever way you normally do those things. It's focus is only on making sure that whatever is defined in Git is what is running in clusters. As for Kustomize... It supports it. I used Helm in that video mostly because it is more commonly used. Personally, I prefer Kustomize over Helm for most use-cases.

  • @underlecht

    @underlecht

    3 жыл бұрын

    Ok, i found another video kzread.info/dash/bejne/ioKMrNaxm7ixlbw.html, gonna watch it :)

  • @ravivyas7532
    @ravivyas75322 жыл бұрын

    Dude you look like a gamer and also talks like a gamer

  • @user-bv6il2nk4t
    @user-bv6il2nk4t3 жыл бұрын

    please make proper playlist on kuberneets beginneradvanced so hthat all benfited

  • @DevOpsToolkit

    @DevOpsToolkit

    3 жыл бұрын

    It's very hard for me to know what is beginner and what is advanced, mostly since my own learning process is chaotic and unstructured. Maybe you can help by giving me tips whether a video you watched is beginner or advanced?

  • @sreenuthota5482
    @sreenuthota54822 жыл бұрын

    Is there any possibility to point specific tag to deploy ,not latest tag

  • @DevOpsToolkit

    @DevOpsToolkit

    2 жыл бұрын

    Yes, there is. You can point to anything in Git (branch, commit, tag, etc.).

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

    Can you please show this exact same thing but on the Terraform?

  • @DevOpsToolkit

    @DevOpsToolkit

    Жыл бұрын

    I can't do the same with Terraform since it is a different type of tool (it's IaC and not GitOps). I could show the same with Flux or Rancher Fleet.

  • @nousherqureshi6231

    @nousherqureshi6231

    Жыл бұрын

    ​@@DevOpsToolkit Yea, Flux will be good as well

  • @DevOpsToolkit

    @DevOpsToolkit

    Жыл бұрын

    Adding it to my TODO list... :)

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

    So how is having an application referencing other two applications different from ArgoCD AppProject resource type?

  • @DevOpsToolkit

    @DevOpsToolkit

    Жыл бұрын

    Argo project does not reference any repo/manifests. The project is mostly about permissions.

  • @julianomoraisbarbosa
    @julianomoraisbarbosa2 жыл бұрын

    👌

  • @lhxperimental
    @lhxperimental2 жыл бұрын

    Can you create a video on kpack?

  • @DevOpsToolkit

    @DevOpsToolkit

    2 жыл бұрын

    Great suggestion. Adding it to my TODO list...

  • @DevOpsToolkit

    @DevOpsToolkit

    2 жыл бұрын

    Done :) kzread.info/dash/bejne/mJaH0a2uaLGtg7g.html

  • @CrankyCoder
    @CrankyCoder3 жыл бұрын

    Is the udemy course out for argo?

  • @DevOpsToolkit

    @DevOpsToolkit

    3 жыл бұрын

    It's not. I did not even start working on it. For now, my focus is on free KZread content.

  • @CrankyCoder

    @CrankyCoder

    3 жыл бұрын

    @@DevOpsToolkit I’m not complaining. Keep up the great work. I’m working my way through your vids :)

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

    It is unclear why a Chart.yaml is needed? Can ArgoCd just peek up yaml files for applications from a specified directory?

  • @DevOpsToolkit

    @DevOpsToolkit

    Жыл бұрын

    If you want to ask whether it can use "pure" Kubernetes YAML instead of Helm charts, the answer is yes. It can be Helm, Kustomize, "pure" YAML, and, probably, a few others.

  • @joebowbeer
    @joebowbeer3 жыл бұрын

    8:10 Q: Should you also change metadata name to devops-paradox? / 9:15 A: Yes

  • @ViktorFarcic

    @ViktorFarcic

    3 жыл бұрын

    That's what happens when doing it, more or less, loosely unscripted and partly improvised. Mistakes are bound to happen.

  • @amabamo5769

    @amabamo5769

    3 жыл бұрын

    @@ViktorFarcic i feel like thats the issue with all of the current ci cd tools depending On yaml, feels like doing it in some language like go could work better

  • @DevOpsToolkit

    @DevOpsToolkit

    3 жыл бұрын

    @@amabamo5769 I agree completely. Jenkins has that through its DSL. However, new pipeline tools are ignoring it completely and focusing on YAML. That's, in a way, strange, since pipelines are not declarative in nature, but, rather, imperative statements of what should be executed under which conditions.

  • @amabamo5769

    @amabamo5769

    3 жыл бұрын

    ​@@DevOpsToolkit This leads to a problem where most of my commits are just fixing the .gitlab-ci.yml. I don't feel like any yaml based pipeline tool is gonna be good enough. I also wonder what people that came to the same conclusion are working with. What are the tools or resources that the smart people are using?

  • @DevOpsToolkit

    @DevOpsToolkit

    3 жыл бұрын

    My approach to CI/CD is to work on pipelines at the very end. The idea is to write all the automation scripts first, and then use whichever pipelines tool you have only to orchestrate those scripts. Preferably, I would keep all those scripts inside repos so the job of my pipelines is only to clone a repo and execute commands like `run-tests.sh`, `build-image.sh`, etc. That way, testing is easier, and there isn't much coupling between automation and pipelines. That being said, I think that many are taking the opposite approach and start defining everything in pipelines.

  • @Kcouture0827
    @Kcouture08272 жыл бұрын

    Is it possible to use values.yaml in this flow to allow for dynamic helm charts? Is argoCD able to dynamically create the a templates referencing .Values.xxx.xxx?

  • @DevOpsToolkit

    @DevOpsToolkit

    2 жыл бұрын

    I'm not sure what you mean by "dynamically". Argo CD Application manifest can include Helm values but something needs to create/update the manifest. The goal of GitOps is to have the desired state stored in Git so everything needs to end up, in one form or another, in version control.

  • @Kcouture0827

    @Kcouture0827

    2 жыл бұрын

    @@DevOpsToolkit in your demo you overwrite some helm values via the Argo application manifest. I want to know if it is possible to instead use a values.yaml file located in the git repo (in the helm directory) for these values.

  • @DevOpsToolkit

    @DevOpsToolkit

    2 жыл бұрын

    @@Kcouture0827 You can do that through `spec.source.helm.valueFiles` entry. The values over there are paths relative to whatever you set in `spec.source.path` which, in your case, should be the directory of the Helm chart.

  • @Kcouture0827

    @Kcouture0827

    2 жыл бұрын

    @@DevOpsToolkit perfect. That’s what I was looking for. Thanks, you the man!

Келесі