Giter Site home page Giter Site logo

devopsargocd's Introduction

DevOpsArgoCD+ArgoRollouts Assignment Process

Task 1:

I created this repository to host both the source code of the application and also the kubernetes manifests.

  • Created a Kubernetes cluster using minikube
  • Installed kubectl to control the minikube cluster
  • Installed Argo CD in the cluster using official documentation
  • Installed Argo Rollouts in the cluster alt text

Task 2:

  • First created a simple web application using Flask and python alt text
  • Built a docker image using 'docker build' command (Find configuration in Dockerfile)
  • Pushed it to the repo tejdocker32/argocd on DockerHub
  • Included the docker repo in kubernetes manifests
  • Completed ArgoCD setup and used decoded credentials to login
  • Added necessary YAML files in the 'deployment' directory and added this path in application.yaml alt text
  • Monitored the application deployment status on the cluster through the dashboard alt text

Task 3:

  • Changed application's deployment to use the files in 'rollout' directory, specifying canary release strategy with 8 steps
  • Initial docker image is 'v1'.
  • To trigger a rollout changed the deployment image to 'v2'.
  • Monitored the rollout as they followed all the steps mentioned in the mainfests.

Challenges

  • I had trouble with running the Flask application as there is a conflict with the versions being used.
  • Solution: Had use the flask version 2.2.2 + werkzeug version 2.3.7 to solve the problem
  • I had no idea the workflow of Kubernetes, minikube, ArgoCD
  • Solution: Watch several youtube videos to grasp the concepts and install necessary components
  • Had trouble deciding between NodePort and LoadBalancer for argoCD server
  • Solution: Decided to go with NodePort as it is less complicated
  • Had trouble working with argo rollouts as there are limited resources about it.
  • Solution: Had to workout the solution though a punishing trial-and-error series.

Clean Up

  • docker prune/ docker rmi commands help with removing any untagged or older versions of images
  • If we use the automatic syncing option for argoCD, we can opt the 'Prune resources' option to remove any unwanted resources in the cluster.

I myself am the contributor 'AttackTitan3012' along with 'TejaJanakiRam'. Because of some glitch, GitHub is making my push changes with my old account name which is Attacktitan3012.

devopsargocd's People

Contributors

attacktitan3012 avatar tejajanakiram 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.