Skip to content
Snippets Groups Projects

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.