Giter Club home page Giter Club logo

reverse-ip's Introduction

This project builds a tiny web application that that prints the origin public IP of any request it receives in reverse.

Builds a docker image of the app and an helm chart. CI\CD pipeline using github actions that builds the docker image, push to a docker registry and then Argocd deploy everything to GKE

Repository Structure:

Application Source Code and CI/CD Workflow: Source code Repository: The repository contains the application source code along with GitHub Actions workflows for continuous integration. The CI workflow builds the Docker image, pushes it to Docker Hub, and triggers the ArgoCD deployment.

Argocd Repository: This repository includes ArgoCD manifests to set up ArgoCD on the Kubernetes cluster, add the cluster to ArgoCD, and declare application sets and projects for efficient management.

Helm Repository: Helm charts were used for templating Kubernetes resources such as deployment, ingress, service, and horizontal pod autoscaler. The repository contains reusable chart templates for easy configuration. CI/CD Pipeline:

Continuous Integration: Leveraged GitHub Actions for CI workflows. Automated the build process of the Docker image and pushed it to Docker Hub, and then used the RUN NUMBER as the image tag.

Continuous Deployment: The deploy step basically involed using a sed replacement script to find the image and tag it with the new tage from the previous build process. Utilized ArgoCD for declarative and automated Kubernetes deployments. Configured ArgoCD application sets and projects to manage applications efficiently. Kubernetes Deployment:

Cluster: GCP Autopilot was chosen for Kubernetes cluster management, providing a serverless, managed Kubernetes experience. Application Deployment:

Helm charts were employed for defining and templating Kubernetes resources. Configured deployment, ingress, service, and horizontal pod autoscaler using Helm templates.

Security Considerations: Implemented best practices for securing the CI/CD pipeline, such as using secrets for sensitive information. Leveraged GCP security features and policies for secure Kubernetes cluster management.

Cost Optimisation: Horozontal pod Autoscaler: this scales up and down based on the application requirement. the GKE also ensures that only the exact resource needed for deployment would be used, and these help save cose in terms of memory and cpu utilisation (compute) This also ensures high reliability and scalability

Final Deployment: The deployed application can be accessed at http://35.226.27.83/ In summary, this project focused on reliability, cost, scalability, automation and security, utilizing GitHub Actions for CI, ArgoCD for CD, Helm charts for Kubernetes resource templating, and GCP Autopilot for a managed Kubernetes cluster. The overall architecture ensures a streamlined and secure deployment process, adhering to best practices in the DevOps domain.

(ingress no longer accessible )

reverse-ip's People

Contributors

toni744 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.