Argo Workflows and Pipelines - CI/CD, Machine Learning, and Other Kubernetes Workflows

  Рет қаралды 50,241

DevOps Toolkit

DevOps Toolkit

Күн бұрын

Argo Workflows & Pipelines is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. It is a cloud-native solution designed from ground-up for Kubernetes.
#argo #workflows #pipelines #kubernetes
Timecodes ⏱:
00:00 Intro
01:52 Setup
02:36 Workflows
11:15 Templates
16:14 Submitting workflows
21:28 Final thoughts
➡ Gist with the commands: gist.github.com/28e2adb5946ca...
🔗 Argo Workflows: argoproj.github.io/projects/argo
🎬 Argo CD: • Argo CD - Applying Git...
🎬 Argo Events: • Argo Events - Event-Ba...
🎬 Argo Rollouts: • Argo Rollouts - Canary...
🎬 Kaniko: • Kaniko - Building Cont...
📚 DevOps Catalog, Patterns, And Blueprints: www.devopstoolkitseries.com/p...
📚 Books and courses: www.devopstoolkitseries.com
🎤 Podcast: www.devopsparadox.com/
💬 Live streams: / devopsparadox
➡ Follow me on Twitter: / vfarcic
➡ Follow me on LinkedIn: / viktorfarcic

Пікірлер: 79
@hawk1290
@hawk1290 3 жыл бұрын
Thanks for this series, starting to believe that you've already demystified any modern solution I've come across. Keep it up!
@DevOpsToolkit
@DevOpsToolkit 3 жыл бұрын
That is the problem with our jobs and tech in general. Things change fast and I am likely going to say in the near future "this is horrible, don't use it" for most of the things I'm claiming are great today.
@hawk1290
@hawk1290 3 жыл бұрын
@@DevOpsToolkit Absolutely, community adoption really makes or breaks that support - so thanks for being part of that. Awesome content for sure.
@valour.se47
@valour.se47 3 жыл бұрын
Yes a video about combining these all things together will definitely help people.
@DevOpsToolkit
@DevOpsToolkit 3 жыл бұрын
It's (probably) coming up next week :)
@shubhendupoothia
@shubhendupoothia 2 жыл бұрын
Man this is so awesome!! Thank you so much!
@cesarvarela4679
@cesarvarela4679 3 жыл бұрын
Thank you, very good video. My vote is Yes make the video combine argo tools.
@DevOpsToolkit
@DevOpsToolkit 3 жыл бұрын
You got it! It's probably coming up next Thursday.
@MohammedNoureldin
@MohammedNoureldin 7 ай бұрын
Thank you for this! Please make a video comparing Argo Workflows with Jenkins.
@DevOpsToolkit
@DevOpsToolkit 7 ай бұрын
Adding it to my to-do list... 🙂
@xinitbm9453
@xinitbm9453 3 жыл бұрын
Thank you so much, this is awesome
@fabiodbr
@fabiodbr 3 жыл бұрын
Awesome. Didn't know anything about Argo since this video and now I'm almost an expert haha
@DevOpsToolkit
@DevOpsToolkit 3 жыл бұрын
Glad I could help!
@felipeozoski
@felipeozoski Жыл бұрын
Love this channel ❤❤ for real !!
@wollginator
@wollginator 3 жыл бұрын
Awesome, great introduction and regarding your question: yes, I admit it, I want to use the whole argo stack, so lemme just click your next video! PS: Subscribed!
@TankaNafaka
@TankaNafaka 3 жыл бұрын
Looks like aws step functions to me. You can also do cmd overrides etc, run job in parallel or serial, and schedule runs via cwatch. Anyways really nice work Viktor, thank you for your effort.
@bewilderedlearningevolving
@bewilderedlearningevolving 3 жыл бұрын
Yes! Thanks Viktor I've been wrestling with the workflows side of argo for months 💵💵💵💵💵
@DevOpsToolkit
@DevOpsToolkit 3 жыл бұрын
In that case, I think you'll like the video I'll (probably) publish next Thursday. It's about combining Argo Workflows with Events (and CD, and Rollouts, and SealedSecrets). Workflows really shines only when it is combined with Events, and gets even more boost with other Argo projects.
@mandolinean3057
@mandolinean3057 2 жыл бұрын
great video!
@diptochakrabarty2420
@diptochakrabarty2420 3 жыл бұрын
Great content in the argo playlist , one suggestion if you could please add the link of your github repository you use in your demos in the description it would be helpful.
@DevOpsToolkit
@DevOpsToolkit 3 жыл бұрын
Argo CD video was one of the first ones I created and it was done in a "weird" way. I adapted the material from my book without creating a Gist that people can follow. I think that all the videos after that one do have a Gist. For example, if you take a look at the description of this video, you'll see the "Gist with the commands" link with all the commands, including `git clone` of the repos I used.
@mysticaltech
@mysticaltech Жыл бұрын
Hey Victor, thanks! Please make a video of the combination of all Argo tools, as not obvious to beginners!
@mysticaltech
@mysticaltech Жыл бұрын
Found it kzbin.info/www/bejne/jn-7e6euoLp-m7s !! 🙏
@DevOpsToolkit
@DevOpsToolkit Жыл бұрын
I already did that in kzbin.info/www/bejne/jn-7e6euoLp-m7s. However, it has been a while since i published it so I will add it to my TODO list to do an updated version.
@7siwy1
@7siwy1 2 жыл бұрын
Victor, what would be the best way to run integration tests during the build phase of CICD? My dev team need few databases to test an app like mariadb, posgress etc. So far we did it by keeping docker-compose in each app repository. Before the tests start we run 'docker-compose up' that provides mocks of all the services needed. How that could work with argo workflows?
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
Argo Workflows, just as any other pipeline solution, allows you to execute any command as a step. Since all the steps are executed in containers, you need to specify an image that contains the tools you need. Now, Docker is gone from Kubernetes clusters so you should either connect to Docker running in a VM (you can use environment variables for that) or spin up the DB inside a Kubernetes cluster. I suggest doing the latter. You can, for example, use MariaDB Helm chart. If that DB is temporary, create a new Namespace, spin up MariaDB (or whichever other DB you might need) inside that Namespace, run the tests, and delete that Namespace when you're done. You can also use virtual clusters with, let's say, vCluster if you'd like to have better isolation from the rest of the workloads in that cluster. Also, virtual clusters help with cleanup. If you deploy something that uses cluster-wide resources (e.g., CRDs), deleting the Namespace will not delete everything, but, if that is inside vCluster, you can delete the whole (virtual) cluster.
@cokegen
@cokegen Жыл бұрын
That Marla poster ...
@DevOpsToolkit
@DevOpsToolkit Жыл бұрын
Oh yeah. My favorite.
@cokegen
@cokegen Жыл бұрын
@@DevOpsToolkit BTW, going through everything argo you published ... it's awesome and being of great help ...
@raoufmnif6569
@raoufmnif6569 2 жыл бұрын
Well done like always Viktor. Can you provide us the installation of argoworkflow with serviceaccount and with the right privilege?
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
Adding it to my TODO list...
@alexanderdo3122
@alexanderdo3122 2 жыл бұрын
What is your recommended way of installing a cluster locally on a mac for testing things like this?
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
I prefer k3d. It's the fastest and the least resource-intensive local Kubernetes cluster. KinD is a good alternative. You can find videos about both in this channel :)
@sanjaytiwari3176
@sanjaytiwari3176 2 жыл бұрын
I couldn't find the video where you installed workflow and setup any security context as its failing for the same.
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
The instructions with both the commands I executed before and during the video are in a Gist and the link to the Gist is in the description. It includes everything I did to set it up (install it). As for the security context... I used Minikube for the demo so I did not do anything with the context. Most of the time, that's not directly related to a specific app but applicable in general and, sometimes, specific to the k8s platform you chose.
@maylingtan3716
@maylingtan3716 Жыл бұрын
Hi Viktor, thank you for the video! I managed to run your example. A question i have is what if the git repo is a private repo? where do i set up the credentials in order to access the git repo? Thanks for the help.
@DevOpsToolkit
@DevOpsToolkit Жыл бұрын
Something like argo-cd.readthedocs.io/en/stable/user-guide/private-repositories/ should do
@maylingtan3716
@maylingtan3716 Жыл бұрын
​@@DevOpsToolkit , thanks for the reply. I think the link you provided is for Argo CD. Using argo workflows to build image referencing a private git repo doesn't seem to work as the the argo workflow UI doesn't have this tab.
@DevOpsToolkit
@DevOpsToolkit Жыл бұрын
If you need to access a private git repo, you need to define git artifact and provide the secret with the username and password. You can find an example in github.com/argoproj/argo-workflows/blob/master/examples/input-artifact-git.yaml
@gagyboki799
@gagyboki799 2 жыл бұрын
Hi Victor, thanks for video.If I understand this workflow is not like Camunda or Spring Activity?This is for orchastration of micro services?Can you build kind of workflow like Camunda workflow and read from MQ?
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
Unfortunately, I haven't used either of those so I cannot compare them or say whether they are similar. Argo workflows is a pipeline tool just like Jenkins, GitHub actions, tekton, GitLab ci, etc. As such, it is not limited to microservices but can be used to automate any type of pipeline.
@gagyboki799
@gagyboki799 2 жыл бұрын
@@DevOpsToolkit so it is not meant for data flow workflows?
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
The initial use case was for data pipelines but, since then, it evolved into pipelines of any kind.
@gagyboki799
@gagyboki799 2 жыл бұрын
So can it be used to run data flow like IIB data flow?
@gagyboki799
@gagyboki799 2 жыл бұрын
kzbin.info/www/bejne/nXasgHSLj7F9q9E Something like this?
@akshaymungekar4748
@akshaymungekar4748 Жыл бұрын
How can I run python scripts in an Argo workflow? Could you provide any implementation details to achieve this task?
@DevOpsToolkit
@DevOpsToolkit Жыл бұрын
I do not use python myself. However, that should not matter since Argo workflows allow you to use any container image for any of the steps. If the image you're using is based on python, you should be able to execute any python command inside your workflow.
@ashutoshtiwari6947
@ashutoshtiwari6947 2 жыл бұрын
How can i create volume to have a folder path shared across containers . i.e. all using argo workflow??
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
You can found a couple of examples in argoproj.github.io/argo-workflows/examples/#volumes with more detailed info in the spec section of the docs.
@ashutoshtiwari6947
@ashutoshtiwari6947 2 жыл бұрын
@@DevOpsToolkit thanks!! I had a look at it.... But was a bit difficult to comprehend... I am looking for something replica to docker run -v sourcepath: destinationpath container-name.... If you can further explain it that would be great... Thanks in advance
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
@@ashutoshtiwari6947 I don't have an example at hand. I'll do my best to create one over the weekend. In the meantime... You need to define a Kubernetes volume (it could be almost any time) in, more or less, the same way you would do it for any k8s resource. From there on, it's all about telling workflows to use that volume.
@ashutoshtiwari6947
@ashutoshtiwari6947 2 жыл бұрын
@@DevOpsToolkit Cool... really looking forward to your next video wherein we can use volumes used via docker run.. or docker artifacts as an alternative to it.
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
@@ashutoshtiwari6947 To clarify... When I do such a video (can't promise the date), it will not involve Docker. I do not think that anyone should use Docker inside Kubernetes. There are much better (and safer) alternatives. For building images that could be, for example, Kaniko. As for running containers, that's completely irrelevant since the decision is made by the Kubernetes distro you're using (and is almost certainly not Docker). On top of that, volumes are typically used for temporary storage so that you can pass artifacts from one step to another, not from one pipeline to another. When a permanent storage is needed, it would be a container image or artiface registry like ECR, ACR, Docker Hub, Artifactory, etc.
@Teej42
@Teej42 2 жыл бұрын
Please enable captions for us folks who can’t hear.
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
I think it's one of the things KZbin does without explaining how. When I look at that video, there are no captions, but when I look at, for example, at kzbin.info/www/bejne/gnixdnpjqZ5pm6c, there is the CC button to enable captions. I'm not sure how and why KZbin choose one but not the other. Maybe it's doing it automatically in all the new videos?
@KanshiTV-INT
@KanshiTV-INT 3 жыл бұрын
Hey Viktor, I've followed your video and deployed workflows and implemented a Traefik ingressRoute apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: argo-workflow-https spec: entryPoints: - websecure routes: - match: Host(`workflow.xxxx.co.uk`) && PathPrefix(`/`) kind: Rule services: - name: argo-server port: 2746 tls: certResolver: le-staging domains: - main: workflow.xxxx.co.uk but all I get is bad gateway. Any ideas of what could be the problem or how to troubleshoot.
@KanshiTV-INT
@KanshiTV-INT 3 жыл бұрын
Hey Viktor, I managed to get it working buy adding the following - server - --secure=false and letting Traefik do the certificates
@abdullahshaikh6989
@abdullahshaikh6989 2 жыл бұрын
how to pull private git repo in this case? like how to add github secrets in kaniko?
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
You need to store auth info as secrets and then mount those secrets inside containers that need them.
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
One more thing... Pull repo using Kaniko only if you are not already pulling it for other reasons. More often than not, you will already have the repo cloned for testing or other reasons.
@primaadi
@primaadi 2 жыл бұрын
please make the combined full flaged aroproc CI CD
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
Do you mean something like kzbin.info/www/bejne/jn-7e6euoLp-m7s or you have something else in mind?
@kubernetestn
@kubernetestn 3 жыл бұрын
Thanks a lot ! where can i find source code ?
@DevOpsToolkit
@DevOpsToolkit 3 жыл бұрын
There is a gist in the description of the video.
@johndesposito
@johndesposito Жыл бұрын
Are you available for consultation?
@DevOpsToolkit
@DevOpsToolkit Жыл бұрын
I am not available for any type of activity that requires dedication. I can spare an hour or two if that can help.
@johndesposito
@johndesposito Жыл бұрын
@@DevOpsToolkit - Hi. It would only be one or two hours to help architect an ARGO workflow/CD solution to allow for propagating changes to different environments. Thank You. Please let me know how I can reach your or if you want me to leave my contact information. I greatly appreciate your guidance. Thank You
@DevOpsToolkit
@DevOpsToolkit Жыл бұрын
@@johndesposito Feel free to pick a time that works for you from calendly.com/vfarcic/meet.
@johndesposito
@johndesposito Жыл бұрын
@@DevOpsToolkit Will do .. thank you
@quant-daddy
@quant-daddy 3 жыл бұрын
How does this compare to tekton pipelines?
@DevOpsToolkit
@DevOpsToolkit 3 жыл бұрын
I haven't been using tekton for some 6 months now so I need to get up-to-speed with what they are doing lately before answering that question :(
@tigercat123456
@tigercat123456 Жыл бұрын
@@DevOpsToolkit .... a bit late to the party ... but I would really like to see a comparison between Argo Workflows and Tekton. Imho Tekton pipelines can be quite flexible but also verbose/tedious to write (aside from a hello-world usecase :), and I am wondering if Argo accomplishes that in a neater way? Also debugging of pipeline runs/workflows/jenkinsfiles/... can be a huge issue and is usually not a built-in feature.
@SanjeevKumar-nq8td
@SanjeevKumar-nq8td 2 жыл бұрын
It is Tekton principle taken over.
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
Actually, the first release of Argo workflows was published a year and a half before the first release of Tekton.
@DevOpsToolkit
@DevOpsToolkit 2 жыл бұрын
To be more precise, that was the first release in the current GitHub repo and it was v2.0.0 in November 2017. I did not follow Argo workflows at that time so I'm not sure when was the release release made before it moved to the current repo nor I know how it looked at that time. In any case, I am not sure who copied whom and how Argo evolved back then but it is definitely older than tekton.
@michaeljuliano8839
@michaeljuliano8839 Ай бұрын
“What it looks like,” or “how it looks,” but never “how it looks like.” “What” is a placeholder for a thing. You need “like” when you say “what” so we know you are comparing to the thing that “what” is standing in for. “It looks like what?” or “What does it look like?” “It looks like this.” “What” stands in for “this.” “How” is a placeholder for a description (e.g. good, quickly, slowly, etc.). because there is nothing to compare to, “like” doesn’t make sense. “It looks how?” or “How does it look?” “It looks good.” “How” stands in for “good.”
@DevOpsToolkit
@DevOpsToolkit Ай бұрын
Thank you for that clarification. My English is self-tought and there are too many things i still struggle with.
@michaeljuliano8839
@michaeljuliano8839 Ай бұрын
⁠​​⁠Don’t get me wrong. Your English is very good. I would even say it’s much better than average for someone from what I’m guessing is Eastern Europe. This is a very common mistake, even among native speakers, and I was just being a bit picky because I was in a bad mood.
Dagger: The Missing Ingredient for Your Disastrous CI/CD Pipeline
33:29
How many pencils can hold me up?
00:40
A4
Рет қаралды 16 МЛН
1🥺🎉 #thankyou
00:29
はじめしゃちょー(hajime)
Рет қаралды 23 МЛН
Tekton - Kubernetes Cloud-Native CI/CD Pipelines And Workflows
26:28
DevOps Toolkit
Рет қаралды 25 М.
Demystifying Argo Workflows: An Architectural Deep Dive - Darko Janjić, Pipekit & Becky Pauley
20:23
CNCF [Cloud Native Computing Foundation]
Рет қаралды 1,1 М.
ArgoCD Tutorial for Beginners | GitOps CD for Kubernetes
47:53
TechWorld with Nana
Рет қаралды 581 М.
Tekton vs. Argo Workflows - Kubernetes-Native CI/CD Pipelines
22:17
DevOps Toolkit
Рет қаралды 22 М.
Argo Events - Event-Based Dependency Manager for Kubernetes
34:28
DevOps Toolkit
Рет қаралды 34 М.
Трагичная История Девушки 😱🔥
0:58
Смотри Под Чаёк
Рет қаралды 369 М.
Обзор игрового компьютера Макса 2в1
23:34
The power button can never be pressed!!
0:57
Maker Y
Рет қаралды 52 МЛН
Which Phone Unlock Code Will You Choose? 🤔️
0:14
Game9bit
Рет қаралды 11 МЛН
Carregando telefone com carregador cortado
1:01
Andcarli
Рет қаралды 1,7 МЛН
AMD больше не конкурент для Intel
0:57
ITMania - Сборка ПК
Рет қаралды 456 М.
Эффект Карбонаро и бумажный телефон
1:01
История одного вокалиста
Рет қаралды 2,5 МЛН