Skip to content

ARUP-G/Python-todoApp-Jenkins-Argocd-K8s

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TodoApp Deployment using Docker Jenkins, ArgoCD, and Kubernetes

Todo App

This project is a simple Todo application written in Python, accompanied by a Continuous Integration/Continuous Deployment (CI/CD) pipeline using Docker, Jenkins, ArgoCD, and Kubernetes.

Table of Contents

  1. Features
  2. Prerequisites
  3. Installation
  4. Run
  5. CI/CD Pipeline
  6. Contributing
  7. License

Features

  • Add, delete, update, and view todo tasks.
  • Dockerized deployment for easy portability and scalability.
  • CI/CD pipeline for automated testing and deployment.
  • Integration with Jenkins for CI automation.
  • Deployment automation through ArgoCD and Kubernetes.

Prerequisites

Ensure you have the following installed:

  • Docker
  • Jenkins
  • ArgoCD
  • Kubernetes (minikube or any Kubernetes cluster)

Installation

  1. Clone this repository:
    git clone https://github.com/ARUP-G/Python-todoApp-Jenkins-Argocd-K8s.git
  1. Navigate to the project directory:
    cd Python-todoApp-Jenkins-Argocd-K8s
  1. Build the Docker image:
    dokcer build -t todo-app:1 .

Run

Docker way

  1. Run the Docker container:
    docker run -d -p 5000:5000 todo-app:1
  1. Access the Todo app through your web browser at http://localhost:5000.

TodoApp snapshot

CI/CD Pipeline

The CI/CD pipeline for this project is orchestrated using Jenkins, ArgoCD, and Kubernetes.

  1. Continuous Integration (CI) with Jenkins: Upon pushing changes to the repository, Jenkins automatically triggers a build job. This job involves running unit tests and linting to ensure code quality.

    • Jenkins: Build jenkins pipeline and build and run the pipeline.

Jenkins Build

  1. Continuous Deployment (CD) with ArgoCD and Kubernetes: Once the code passes CI, Jenkins triggers a deployment job. This job builds a Docker image and pushes it to a Docker registry. ArgoCD, configured to monitor the repository, detects changes and automatically deploys the updated Docker image to the Kubernetes cluster.
  • Push to Docker Hub: By executing the pipeline the image will be added to dockerhub registry.

Note: Make sure to change "Push the artifacts" stage in jenkinsfile with proper credentials and registry username.

Dockerhub

ArgoCD

To access the app

  • Minikube way

    minikube service todo-service

    then you will get the url to access the app.

todo-app

Contributing

Contributions are welcome! If you find any issues or have suggestions, please open an issue or submit a pull request.

License

This project is licensed under the MIT License.

About

CI/CD project usnig Docker, Jenkins, Argocd, Kubernetes

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published