Around 25:00, when using Helm, you should use a checksum annotation of the config map in the deployment. Google "helm tricks automatically roll deployments", it'll be the first result from the Helm docs. Great video, cheers!
😍The Video. Clear concise explanations. I knew Kustomize before and I always wondered why config generator. Now I get the reason. Thanks for your explanations.
Regarding the destination cluster URL - if there were more than one, what would they look like? How do we define them so we know which one is which? I am guessing that one shows as default because it was not configured with a different name?
Great great tutorial. My first encounter with Argo CD. Short and clear. However, when I tried like you with kustom-dev-app and put kustom-webapp/overlays/dev in Path, Argo CD doesn't recognize it as a Kustomize application, but puts Directory instead. But if I put kustom-webapp/base in the Path, then it recognizes that it is a Kustomize application. I don't know what the problem is. Can you help me please?
Hi, at 10:37, you are saying one argocd installation can manage multiple kubernates cluster, but i don't understand how? because argocd is going to be installed in a specific cluster, so is there not one-to-one relationship between argocd and K8S cluster, if not how you can manage multiple K8S cluster?
There is a clusters tab. You can add other clusters into ArgoCD there. ArgoCD will just need credentials and a URI for connecting/managing other clusters
@DevOpsJourney Why wouldn't you just use a `checksum` annotation inside of your Helm deployment that digests the contents of the ConfigMap? When the contents of the ConfigMap changes, it changes the Deployment triggering a rolling update of the pods? Does ArgoCD do something different than stock Helm + K8s?
Thanks a lot for this nice and easy guide regarding ArgoCD! The only that wasn't clear to me is the best way to update our app. Actually I have exactly this issue in my environment. I have to change every time the Helm Chart version if I want to actually deploy a new change on configMaps. So I'm looking for a way to fix this. If we have no a new release but some configuration changes how to setup ArgoCD to update the application directly if it detects just a simple change in the configMap. I will go now to watch also your videos regarding the Helm chart and I'm curios to see the differences between ArgoCD and Helm cli, since argocd looks like it is able to do what exactly helm client can do and much more.
hi, i tried the lab for kustom-webapp, i got this error: Unable to create application: application spec for kustom-webapp-dev is invalid: InvalidSpecError: Unable to generate manifests in kustom-webapp/overlays/dev: rpc error: code = Unknown desc = Manifest generation error (cached): `kustomize build /kustom-webapp/overlays/dev` failed exit status 1: Error: invalid Kustomization: json: cannot unmarshal string into Go struct field Kustomization.patches of type types.Patch. Please how can that be resolved?
Thanks for the video, but apparently the most important piece is missing. When the actual application code changes, how do you build a new image (with a new tag other than "latest"? and how do you update the helm and kustomize configurations with that new image name:tag, and how do you trigger anrgo CD that application code has been changed, new image has been created and it (argo cd) should kick off and deploy the newest version? In your video you only showed what happens when the configuration part changes. So it is incomplete IMHO.
Thanks for the comment. I briefly mention this at 1:35. You would have two repositories, one for the image and one for the configuration. The CI/CD for the first repository would work like any other container pipeline, but at the end it would submit a PR to your config repository to update it with the new image tag. I didn't work it into the practical portion of the video because I didn't want to overcomplicate things I just wanted to show the basics of ArgoCD. Most people when getting started with ArgoCD update the configuration repository manually with the new image tag. I hope that makes sense. Thanks again for your feedback - I was thinking of doing a video of a complete Gitops flow that does exactly what you mentioned and your comment has inspired me to do that, so check back in a month or so :)
1. Create a kubeconfig file containing the cluster's credentials. 2. Login to ArgoCD and navigate to the Clusters page. 3. Select the “Create Cluster” button at the top right. 4. Select the type of cluster you want to add and provide the necessary credentials. 5. When prompted, select the kubeconfig file you created in step 1. Click Create CLI commands: argocd cluster add dev-cluster1 --name dev-cluster1 argocd cluster list
I'm trying to deploy this on an M series mac, how can I specify the architecture of the nodes? I'm looking at the values.yaml file but I'm not sure how I can edit the files so it deploys as arm64
If running on a M series Mac the architecture of minikube will be arm64. The key is to make sure our images are ARM64 compatible. The deployment is using the image devopsjourney1/mywebapp:latest - which does support ARM64. I only recently shipped the ARM64-compatible image, so you may have an older one cached. try removing and re-pulling devopsjourney1/mywebapp:latest. If that doesn't work then I will try creating a new image for you that is only ARM64. I think the issue might be that minikube doesn't always understand how to use multi-arch images properly
So let's assume that we have created our applications in the UI. If we now want to to use the app-of-apps pattern is there a way of using argo-cli to add those to a global root-app.yaml file? In other words I eventually want to eventually be able to sync what is showing up in Argo with was I have defined in my Repo that manages Argo itself. The Source of Truth should be what's stored in Github or Bitbucket and not what was done by potentially many users of the system. If one of those user's is in-experienced and makes a mistake I want to be able to get Argo back to the state before the mistake was made.
very nice. Im from Belgium, i speak french, but i have all understand ;-) I'm interested in a video showing ArgoCD - GitLab not deploying a web app, but an Apache Camel-K integration. Would it be possible for you to make one? I think you will have the right reflexes directly on ArgoCD. The Kustomize version is really interesting, especially when you don't want to create the entire helm ecosystem. THANKS
when I click "Create"for the helm-webapp-dev I get "Unable to create application: application spec for helm-web app-dev is invalid: InvalidSpecError: Unable to generate manifests in helm-webapp: rpc error: code = Unknown desc = `helm template . --name-template helm-web app-dev --namespace dev --kube-version 1.30 --values /helm-webapp/values-dev.yaml --include-crds` failed exit status 1: Error: release name "helm-web app-dev": invalid release name, must match regex ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ and the length must not be longer than 53" Any idea?
Let me know what technology you are trying to learn next
monitoring argocd applications using promethues and grafana
How to deploy argo cd in EKS using terraform? and how we will access argo cd gui without comprimising security?
Argo Rollout is very confusing to setup, please do a tutorial on it.
Bitbucket and Bamboo 😢
Hi bro
Video is nice, as i have small, can you please do video of "install argocd using helm" please
Thank you, I think this is the only tutorial which explains rollback process clearly.🎉
this was a delight to watch absolutely brilliant presentation on Argocd, thanks for the effort
Excellent Tutorial on ArgoCD !! - Absolute pleasure to listen to you. Gratitude !!
Around 25:00, when using Helm, you should use a checksum annotation of the config map in the deployment. Google "helm tricks automatically roll deployments", it'll be the first result from the Helm docs.
Great video, cheers!
😍The Video. Clear concise explanations. I knew Kustomize before and I always wondered why config generator. Now I get the reason. Thanks for your explanations.
This video was so helpful. Thank you for making it!
great simple and clear tutorial, thank you sir.
Great tutorial! Thank you so much, Brad!
Regarding the destination cluster URL - if there were more than one, what would they look like? How do we define them so we know which one is which? I am guessing that one shows as default because it was not configured with a different name?
Great tutorial, thanks so much ❤
Its too very good informative videos. thank you so much sir ❤
Can you do another real time DevOps CI/CD lab? Really enjoyed your last one and found your mentorship insightful!
Great great tutorial. My first encounter with Argo CD. Short and clear. However, when I tried like you with kustom-dev-app and put kustom-webapp/overlays/dev in Path, Argo CD doesn't recognize it as a Kustomize application, but puts Directory instead. But if I put kustom-webapp/base in the Path, then it recognizes that it is a Kustomize application. I don't know what the problem is. Can you help me please?
Hi, at 10:37, you are saying one argocd installation can manage multiple kubernates cluster, but i don't understand how? because argocd is going to be installed in a specific cluster, so is there not one-to-one relationship between argocd and K8S cluster, if not how you can manage multiple K8S cluster?
There is a clusters tab. You can add other clusters into ArgoCD there. ArgoCD will just need credentials and a URI for connecting/managing other clusters
great tutorial to begin with. clear and concise.
@DevOpsJourney Why wouldn't you just use a `checksum` annotation inside of your Helm deployment that digests the contents of the ConfigMap? When the contents of the ConfigMap changes, it changes the Deployment triggering a rolling update of the pods? Does ArgoCD do something different than stock Helm + K8s?
Thanks a lot for this nice and easy guide regarding ArgoCD! The only that wasn't clear to me is the best way to update our app. Actually I have exactly this issue in my environment. I have to change every time the Helm Chart version if I want to actually deploy a new change on configMaps. So I'm looking for a way to fix this. If we have no a new release but some configuration changes how to setup ArgoCD to update the application directly if it detects just a simple change in the configMap.
I will go now to watch also your videos regarding the Helm chart and I'm curios to see the differences between ArgoCD and Helm cli, since argocd looks like it is able to do what exactly helm client can do and much more.
You are a hero!
hi, i tried the lab for kustom-webapp, i got this error: Unable to create application: application spec for kustom-webapp-dev is invalid: InvalidSpecError: Unable to generate manifests in kustom-webapp/overlays/dev: rpc error: code = Unknown desc = Manifest generation error (cached): `kustomize build /kustom-webapp/overlays/dev` failed exit status 1: Error: invalid Kustomization: json: cannot unmarshal string into Go struct field Kustomization.patches of type types.Patch. Please how can that be resolved?
Update line #5 of kustom-webapp/overlays/dev/kustomization.yaml file to "- path: replicas.yaml". It should work.
@@seadragonrock7235 Thanks
Thanks for the video, but apparently the most important piece is missing. When the actual application code changes, how do you build a new image (with a new tag other than "latest"? and how do you update the helm and kustomize configurations with that new image name:tag, and how do you trigger anrgo CD that application code has been changed, new image has been created and it (argo cd) should kick off and deploy the newest version? In your video you only showed what happens when the configuration part changes. So it is incomplete IMHO.
Thanks for the comment. I briefly mention this at 1:35. You would have two repositories, one for the image and one for the configuration. The CI/CD for the first repository would work like any other container pipeline, but at the end it would submit a PR to your config repository to update it with the new image tag.
I didn't work it into the practical portion of the video because I didn't want to overcomplicate things I just wanted to show the basics of ArgoCD. Most people when getting started with ArgoCD update the configuration repository manually with the new image tag.
I hope that makes sense. Thanks again for your feedback - I was thinking of doing a video of a complete Gitops flow that does exactly what you mentioned and your comment has inspired me to do that, so check back in a month or so :)
Great tutorial thank you !
Great Tutorial!
After performing the port forwarding, while trying to browse the url i am having issue as "unable to connect"
Great video, thanks!
you are the best!! no words to say :)
very nice explanation sir
Great tutorial!!
great video!
How does ArgoCD know or detect which Kubernetes clusters are available to deploy to?
1. Create a kubeconfig file containing the cluster's credentials.
2. Login to ArgoCD and navigate to the Clusters page.
3. Select the “Create Cluster” button at the top right.
4. Select the type of cluster you want to add and provide the necessary credentials.
5. When prompted, select the kubeconfig file you created in step 1. Click Create
CLI commands:
argocd cluster add dev-cluster1 --name dev-cluster1
argocd cluster list
I'm trying to deploy this on an M series mac, how can I specify the architecture of the nodes? I'm looking at the values.yaml file but I'm not sure how I can edit the files so it deploys as arm64
If running on a M series Mac the architecture of minikube will be arm64. The key is to make sure our images are ARM64 compatible. The deployment is using the image devopsjourney1/mywebapp:latest - which does support ARM64. I only recently shipped the ARM64-compatible image, so you may have an older one cached. try removing and re-pulling devopsjourney1/mywebapp:latest.
If that doesn't work then I will try creating a new image for you that is only ARM64. I think the issue might be that minikube doesn't always understand how to use multi-arch images properly
How to monitor these application using prometheus and grafana ??
Amazing video. Thank you.
So let's assume that we have created our applications in the UI. If we now want to to use the app-of-apps pattern is there a way of using argo-cli to add those to a global root-app.yaml file? In other words I eventually want to eventually be able to sync what is showing up in Argo with was I have defined in my Repo that manages Argo itself. The Source of Truth should be what's stored in Github or Bitbucket and not what was done by potentially many users of the system. If one of those user's is in-experienced and makes a mistake I want to be able to get Argo back to the state before the mistake was made.
I'd love to see a video that covers bootstrapping and using Argo CD from the ground up without using the UI
if it is helm chart and deployed by argocd, would I still able to use helm CLI to rollback and list etc? or I have to use argocd CLI then?
Use the argocli
How can resources created using Terraform be managed using ArgoCD ?
Please explain Argo cd with helm charts
"kubectl create namespace argocd" gives me "The connection to the server localhost:8080 was refused - did you specify the right host or port?"
Hey there. this sounds like your minikube environment is not running. Make sure docker is running then do a `minikube start`
I noticed that you are using an animated moving background which is really cool .. How do you create those?
I use Davinci Resolve, chose a gradient color then added icons and animated them in Fusion
@@DevOpsJourney Thanks
Which terminal tool is that you are using?
Zsh
could you do tutorials on taskfile and just ?
Thank you
actually i have a doubt that why all are using the port forwarding method why you are not using the ingress method?
very nice. Im from Belgium, i speak french, but i have all understand ;-)
I'm interested in a video showing ArgoCD - GitLab not deploying a web app, but an Apache Camel-K integration.
Would it be possible for you to make one? I think you will have the right reflexes directly on ArgoCD.
The Kustomize version is really interesting, especially when you don't want to create the entire helm ecosystem.
THANKS
Good video but "Deploying a Kustomize app with ArgoCD" code in repo at 18.XX min no longer works with argo v2.11
There is an old tool to handle configmap changes, called stakater/Reloader
🎉🎉🎉
cant we open Argocd using public IP instead of localhost ?
Yes create a kubernetes ingress and point it to the argocd server service
❤
Why would you actually do this, instead of just upgrading your helm template in your pipeline? I really don't see the reason for ArgoCD at all.
pod stuck at pending in the early stages of this video..
You on a M series laptop?
@@DevOpsJourney asus g14 2023
@@DevOpsJourney using wsl (ubuntu 20)
nice nice nice nice ....
Openshift vs kubernetes
Inginix
cute cuddle?
kube kutle lmao
You don't need kubernetes unless you are FMANG
yeah but a lot of companies want to be FMANG, and I like being paid by those companies :)
You need k8s in many companies, not only FMANG
Sometimes you dont have a choice. Some tools offer self managed option, and used kube platform.
Sucks to work on a small company isn't it
@@ValidUserName-fl3uh not really 😬
when I click "Create"for the helm-webapp-dev I get "Unable to create application: application spec for helm-web app-dev is invalid: InvalidSpecError: Unable to generate manifests in helm-webapp: rpc error: code = Unknown desc = `helm template . --name-template helm-web app-dev --namespace dev --kube-version 1.30 --values /helm-webapp/values-dev.yaml --include-crds` failed exit status 1: Error: release name "helm-web app-dev": invalid release name, must match regex ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ and the length must not be longer than 53"
Any idea?