-
Dobromir Palushev authoredDobromir Palushev authored
SS22-DevOps-Deployable
Introduction
This repository demonstrates the automated deployment of a simple web application. It consists of two branches - staging and main. These branches are protected, meaning that commits targetting them will fail. Changes to the codebase are realized through the use of other temporary branches and Merge Requests to staging. Merge Requests to main should only be opened from staging as a source branch.
Workflow
Automated jobs
As soon as a new change through a MR is commited to staging, the pipeline is triggered. It deploys the application to the staging-todoapp-devops namespace in a Kubernetes cluster, run on GKE. After that, the application is accessible in its test/pre-production version under the domain:
staging.todoapp-devops.software
An equivalent process follows commits (merged from staging) on the main branch. Upon a successful app build, the container image name is adjusted and a new version tag is pushed to the repository. After that, the app is deployed on GKE. The web application is then accessible in its production version under:
todoapp-devops.software
Manual jobs
The pipeline job switch-to-https
corresponds to an upgrade from HTTP to HTTPS regarding the "client <-> Google's external Load Balancer" connection. Due to Google's requirements, this process should be only manually initialized after the Google-managed Load Balancer is set up correctly and is operational. Therefore, this job is not automatically executed in the pipeline and can be started manually.