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

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 ธ.ค. 2024

ความคิดเห็น • 107

  • @jasonma9513
    @jasonma9513 4 ปีที่แล้ว +2

    Good job

  • @jaumzors1
    @jaumzors1 3 ปีที่แล้ว +6

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

  • @mrnobody5763
    @mrnobody5763 3 ปีที่แล้ว +3

    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 ปีที่แล้ว +2

      Thank you for saying that.

  • @felipeozoski
    @felipeozoski ปีที่แล้ว +1

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

  • @SanjeevKumar-nq8td
    @SanjeevKumar-nq8td 2 ปีที่แล้ว

    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 ปีที่แล้ว +1

      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 ปีที่แล้ว +1

      @@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.

  • @touchthesun
    @touchthesun 3 ปีที่แล้ว +2

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

  • @fabianbusch8772
    @fabianbusch8772 ปีที่แล้ว +1

    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.

  • @jonassteinberg3779
    @jonassteinberg3779 3 ปีที่แล้ว +1

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

  • @PacoRG-g5k
    @PacoRG-g5k หลายเดือนก่อน +1

    Great video. You are rock!

  • @ДенисМалко-п6н
    @ДенисМалко-п6н 2 ปีที่แล้ว +1

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

    • @DevOpsToolkit
      @DevOpsToolkit  2 ปีที่แล้ว +1

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

  • @tugceozturk6535
    @tugceozturk6535 4 ปีที่แล้ว +3

    Very clear demonstration. Thank you!

  • @sunnyxd5000
    @sunnyxd5000 2 ปีที่แล้ว +1

    I really enjoy to watching your videos :)

  • @BoatsForALiving
    @BoatsForALiving 3 ปีที่แล้ว +1

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

  • @demidevil666
    @demidevil666 3 ปีที่แล้ว +1

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

  • @ErkaiErkinbekova-nv2yl
    @ErkaiErkinbekova-nv2yl ปีที่แล้ว +1

    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.

  • @florinhendea2393
    @florinhendea2393 3 ปีที่แล้ว +1

    Thank you Viktor!..really great explanation!

  • @jimbrent8151
    @jimbrent8151 3 ปีที่แล้ว +1

    Great job. Bought the course starting now.

  • @iposipos9342
    @iposipos9342 2 ปีที่แล้ว +1

    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  2 ปีที่แล้ว

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

  • @swagatdash91
    @swagatdash91 3 ปีที่แล้ว +1

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

    • @DevOpsToolkit
      @DevOpsToolkit  3 ปีที่แล้ว +1

      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  3 ปีที่แล้ว +1

      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.

  • @nousherqureshi6231
    @nousherqureshi6231 2 ปีที่แล้ว +1

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

    • @DevOpsToolkit
      @DevOpsToolkit  2 ปีที่แล้ว

      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 2 ปีที่แล้ว +1

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

    • @DevOpsToolkit
      @DevOpsToolkit  2 ปีที่แล้ว

      Adding it to my TODO list... :)

  • @vangelkrstevski566
    @vangelkrstevski566 ปีที่แล้ว +1

    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 ปีที่แล้ว +1

      @@DevOpsToolkit thanks.

  • @TAICHI1SCO
    @TAICHI1SCO 3 ปีที่แล้ว +1

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

    • @DevOpsToolkit
      @DevOpsToolkit  3 ปีที่แล้ว +1

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

  • @ruslanramazanov5814
    @ruslanramazanov5814 3 ปีที่แล้ว +3

    i often press like button then watch video:)

  • @CODEMENTAL
    @CODEMENTAL 3 ปีที่แล้ว +1

    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 ปีที่แล้ว +1

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

  • @chandup
    @chandup 3 ปีที่แล้ว +1

    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 ปีที่แล้ว +1

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

    • @DevOpsToolkit
      @DevOpsToolkit  3 ปีที่แล้ว +3

      It's done and available in th-cam.com/video/dAUpAq7hfeA/w-d-xo.html

    • @chandup
      @chandup 3 ปีที่แล้ว +1

      @@DevOpsToolkit thank you so much

  • @abdullahalsowaygh6791
    @abdullahalsowaygh6791 ปีที่แล้ว +1

    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.

  • @Effaceurs90
    @Effaceurs90 2 ปีที่แล้ว +2

    very nice! love it

  • @javisartdesign
    @javisartdesign 3 ปีที่แล้ว +1

    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 ปีที่แล้ว +1

      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 ปีที่แล้ว +1

      Just published a video about Tekton (th-cam.com/video/7mvrpxz_BfE/w-d-xo.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 ปีที่แล้ว +1

      @@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.

  • @srsh77
    @srsh77 4 ปีที่แล้ว +2

    Thanks. Excellent Job !

  • @dushyantm9579
    @dushyantm9579 3 ปีที่แล้ว +1

    Amazing content!👍🏻

  • @sreenuthota5482
    @sreenuthota5482 3 ปีที่แล้ว

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

    • @DevOpsToolkit
      @DevOpsToolkit  3 ปีที่แล้ว

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

  • @SerhiyKalinets
    @SerhiyKalinets 3 ปีที่แล้ว +1

    Great video, thank you

  • @tauruscolvin
    @tauruscolvin 3 ปีที่แล้ว +1

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

  • @lhxperimental
    @lhxperimental 3 ปีที่แล้ว +1

    Can you create a video on kpack?

    • @DevOpsToolkit
      @DevOpsToolkit  3 ปีที่แล้ว +1

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

    • @DevOpsToolkit
      @DevOpsToolkit  2 ปีที่แล้ว

      Done :)
      th-cam.com/video/fbSoKu8NGSU/w-d-xo.html

  • @alvsanand
    @alvsanand 3 ปีที่แล้ว +1

    Great video!

  • @michaelchudinov
    @michaelchudinov 2 ปีที่แล้ว +1

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

    • @DevOpsToolkit
      @DevOpsToolkit  2 ปีที่แล้ว +1

      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.

  • @hn3m3s1s
    @hn3m3s1s 3 ปีที่แล้ว +1

    Many thanks!

  • @CrankyCoder
    @CrankyCoder 3 ปีที่แล้ว +1

    Is the udemy course out for argo?

    • @DevOpsToolkit
      @DevOpsToolkit  3 ปีที่แล้ว +1

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

    • @CrankyCoder
      @CrankyCoder 3 ปีที่แล้ว +1

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

  • @nicholasmanning4307
    @nicholasmanning4307 2 ปีที่แล้ว +1

    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...

  • @shakilmakram6923
    @shakilmakram6923 4 ปีที่แล้ว +1

    thanks a lot, keep posting more on this

  • @DannyRBennett
    @DannyRBennett 4 ปีที่แล้ว

    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  4 ปีที่แล้ว

      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.

  • @fpvclub7256
    @fpvclub7256 3 ปีที่แล้ว

    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  3 ปีที่แล้ว

      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.

  • @user-bv6il2nk4t
    @user-bv6il2nk4t 3 ปีที่แล้ว +1

    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?

  • @Rdgc91
    @Rdgc91 3 ปีที่แล้ว +1

    Thanks man!

  • @schattenzeit
    @schattenzeit 2 ปีที่แล้ว +1

    Very nice :)

  • @zsolt2108
    @zsolt2108 3 ปีที่แล้ว +1

    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 ปีที่แล้ว +2

      Argo CD is concerned only about synchronization of different states. To build an image, you can, for example, use Kaniko ( th-cam.com/video/EgwVQN6GNJg/w-d-xo.html ). You might want to watch th-cam.com/video/XNXJtxkUKeY/w-d-xo.html as well. It is about combining different tools to automate full lifecycle, including building images

    • @DevOpsToolkit
      @DevOpsToolkit  3 ปีที่แล้ว +1

      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: th-cam.com/video/XNXJtxkUKeY/w-d-xo.html Thank you!

  • @ravivyas7532
    @ravivyas7532 3 ปีที่แล้ว +1

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

  • @joebowbeer
    @joebowbeer 3 ปีที่แล้ว

    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 ปีที่แล้ว +1

      ​@@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 ปีที่แล้ว +2

      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.

  • @karimnaufal9792
    @karimnaufal9792 2 ปีที่แล้ว +1

    A wizard.

  • @julianomoraisbarbosa
    @julianomoraisbarbosa 3 ปีที่แล้ว +1

    👌

  • @christianibiri
    @christianibiri 3 ปีที่แล้ว +1

    Thank you for this 😀😀😀😀😀😀😀

  • @Kcouture0827
    @Kcouture0827 2 ปีที่แล้ว +1

    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 ปีที่แล้ว +1

      @@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 ปีที่แล้ว +1

      @@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 ปีที่แล้ว +1

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