{"repo":"quipper/monorepo-deploy-actions","free":true,"listed":false,"github":"https://github.com/quipper/monorepo-deploy-actions","clone":"git clone https://github.com/quipper/monorepo-deploy-actions.git","description":"Deploy microservices of monorepo using GitHub Actions and Argo CD (open source)","language":"TypeScript","stars":30,"topics":["github-actions","monorepo","kubernetes","gitops"],"license":"MIT","category":"deployment-docker-iac","readme_excerpt":"monorepo-deploy-actions This is a set of GitHub Actions to deploy microservices in a mono-repository (monorepo). Design Structure of monorepo Our monorepo contains a set of microservices with application code and Kubernetes manifests. Here is the example of directory structure. We adopt this strcuture for the following advantages: - An owner of microservice (i.e. product team) has strong ownership for both application and manifest - We can change both application and manifest in a pull request We deploy a set of services from a branch to a namespace. For example, - When develop branch is pushed, - Build a Docker image from develop branch - Run kustomize build against develop overlay - Deploy to develop namespace - When a pull request is created, - Build a Docker image from head branch - Run kustomize build against staging overlay - Deploy to an ephemeral namespace like pr-12345 Consequently, a structure of monorepo is like below. Here are the definitions of words. Name Description Example ------------------------ ------------------------------------------- ---------- overlay Name of the overlay to build with Kustomize staging namespace Namespace to deploy into a cluster pr-12345 service Name of a microservice backend Structure of Argo CD Applications We adopt App of Apps pattern of Argo CD for deployment hierarchy. For a typical namespace such as develop or production, it is deployed with the below applications. For a pull request namespace, it is deployed with the below appl","default_branch":null,"files":null,"tree":[],"storefront":"/r/quipper","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/quipper/monorepo-deploy-actions/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}