https://github.com/mohammadll/cicd-with-argo-stack
The goal is to implement a comprehensive CI/CD pipeline using the Argo stack, which includes the integration of Argo CD, Argo Rollouts, Argo Workflows, and Argo Events.
https://github.com/mohammadll/cicd-with-argo-stack
argo-cd argo-events argo-rollouts argo-workflow
Last synced: 3 months ago
JSON representation
The goal is to implement a comprehensive CI/CD pipeline using the Argo stack, which includes the integration of Argo CD, Argo Rollouts, Argo Workflows, and Argo Events.
- Host: GitHub
- URL: https://github.com/mohammadll/cicd-with-argo-stack
- Owner: mohammadll
- License: mit
- Created: 2024-01-01T17:29:03.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-03-16T16:09:12.000Z (about 1 year ago)
- Last Synced: 2025-01-25T07:11:15.031Z (5 months ago)
- Topics: argo-cd, argo-events, argo-rollouts, argo-workflow
- Language: HTML
- Homepage:
- Size: 122 KB
- Stars: 3
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# cicd-with-argo-stack

## 💡 Description of the scenario
We want to combine `Argo CD`, `Argo Rollouts`, `Argo Workflows`, and `Argo Events` in the form of a scenario and project to see how they work together in the real world. First, we'll set up Nexus as our artifact repository to store Docker images and set up a private GitLab as our code repository. Argo Events help us trigger the workflow that we want to create. Then, using Argo Events Custom Resource Definitions (CRDs), we'll create a resource named "event-source" to connect to our desired project on GitLab (assuming this project includes the source code of the application). By doing this, a webhook will be automatically created on this project in GitLab. Upon any changes to this project, this webhook is called. The workflow needs to be automatically executed by Argo Events. For this reason, we'll create a resource named "sensor" whose task is to execute the workflow. But what is the task of workflows in this scenario? Using Argo Workflows, we'll write a CI pipeline whose task is to build a Docker image and push it to Nexus. Argo Workflows will then go to the Rollouts manifest and change the tag of the previous image with the new value. At this stage, when the Rollouts manifest changes, Argo CD detects the new change and applies it to the Kubernetes cluster. In this scenario, we have used the canary strategy in the Rollouts manifest.This repository has two different sections to follow:
- Requirements of this scenario
- Executing the scenario## 🔎 Requirements of this scenario
:one: **Install sonatype nexus repository in your nexus server:**
cd nexus/ && docker-compose up -d
If Nexus is up and running, create a repository named `argo-demo` with the type `docker (hosted)` and set its HTTP port to `8085`.:two: **Add private registry to Docker/containerd in your kubernetes cluster:**
**Docker:**
cat <