Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
maxi1555
Contributor
Hi all,

I want to share with everyone my experience with Argo CD & Kyma, I'll cover the following topics during this blog:

  • Understand basics of Argo CD

  • To show how a simple SAP CAP application is deployed automatically from github repository into Kyma using Argo CD

  • To show how many kubernetes objects are created after the deployment


1-Basics of Argo CD


What Is Argo CD?

Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes.

Why Argo CD?

Application definitions, configurations, and environments should be declarative and version controlled. Application deployment and lifecycle management should be automated, auditable, and easy to understand.

At a high level, the Argo CD process works like this:

  1. A developer makes changes to an application, pushing a new version of Kubernetes resource definitions to a Git repo.

  2. Continuous integration is triggered, resulting in a new container image saved to a registry.

  3. A developer issues a pull request, changing Kubernetes manifests, which are created either manually or automatically.

  4. The pull request is reviewed and changes are merged to the main branch. This triggers a webhook which tells Argo CD a change was made.

  5. Argo CD clones the repo and compares the application state with the current state of the Kubernetes cluster. It applies the required changes to cluster configuration.

  6. Kubernetes uses its controllers to reconcile the changes required to cluster resources, until it achieves the desired configuration.

  7. Argo CD monitors progress and when the Kubernetes cluster is ready, reports that the application is in sync.

  8. ArgoCD also works in the other direction, monitoring changes in the Kubernetes cluster and discarding them if they don’t match the current configuration in Git.




2 - Deploying SAP CAP App using Argo CD & Kyma


Let’s see it in action:


Architecture ( demo app used )


For simplicity the SAP CAP application & configuration ( chart folder ) are stored in the same repository:


Github repository


After installing Argo CD in the cluster you can create the Argo CD application using the following definition:


Argo CD Application definition


You can see bellow how the application looks like in Argo CD:


Argo CD Application in UI



3 - Exploring created k8s Objects in Argo CD inside of Kyma


You can see bellow all the kubernetes objects created automatically inside of the Kyma cluster for this demo app:



k8s objects 1/4



k8s objects 2/4



k8s objects 3/4



k8s objects 4/4



SAP CAP App running inside of Kyma



Conclusion


It's really amazing what this graduated CNCF project can do for the Gitops, and I hope to see it as a module in Kyma some day, what is stopping you to use it? 🙂

 

Sources:

  1. Argo CD https://argo-cd.readthedocs.io/en/stable/

  2. Codefresh https://codefresh.io/learn/argo-cd/

  3. CNCF https://www.cncf.io/announcements/2022/12/06/the-cloud-native-computing-foundation-announces-argo-ha...

2 Comments
quovadis
Product and Topic Expert
Product and Topic Expert
0 Kudos
Hello maxi1555

Great write-up.

However, what about a more complex configuration, namely where there are initially three or four or more helm charts that need to applied in a given order for the initial deployment of a solution. This would translate into 3/4 separate helm apps on the cluster

Then the developers will only commit changes to one of the 3/4 helm apps at a time. This will result in a different revision count per helm chart app.

What is the best approach with argoCD to deal with this? many thanks; Piotr
maxi1555
Contributor
0 Kudos
Hi piotr.tesny ,

The answer is "Sync Phases and Waves", you can find an example here

 


Sync Phases and Waves


Kind Regards.

Max.
Labels in this area