Skip to content

ausias-armesto/uchicago-gitops

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Univerisity of Chicago - Devops Course - Git Ops Repository

Introduction

This repository has been created as part of the contents for the Devops Course at the The Univerisity of Chicago as Teacher Assistant.

This repository holds the Kubernetes manifests of the apps to be deployed on Kubernetes. It uses Flux CD as a continuous delivery tool over Kubernetes.

Prerequisites

  • Installed Kubectl v1.23.1
  • Installed Fluxcd 0.28.3
  • Installed kubeseal v0.17.2
  • Installed yq v4.24.2

Apps Installed on the Repository

  • Flux CD: Contains the Flux CD manifests that governs the cluster
  • Prometheus and Grafana: On the monitoring folder are stored the manifest to deploy Prometheus and Grafana.
  • Security: As the Cluster needs to be recreated in case of disaster, in the folder security it is stored the secrets that will be managed by Sealed Secrets
  • Wordpress: Contains the Helm Release for Wordpress
  • Load Test: The folder Load Test contains the configuration to add Horizontal Pod Autoscaler feature to the Wordpress Helm Release, and besides starts running a deployment that will inject load into the Wordpress App.

Commands

  • make create-master-sealed-secret env=dev password=XXXXXXX: This command is used only once to encrypt the master Sealed Secret and push it to the repository. Once the master sealed secret is uploaded encrypted in the repository you don't need to execute it again.
  • make update-efs env=dev: Updates the EFS FileSystem ID before installing Flux
  • export GITHUB_TOKEN=<my-github-credentials-token>: Export the Credentials token in an environment variable which will be used by Flux
  • make flux-install env=dev: Install all the apps on the Kubernetes cluster (FluxCD, Sealed Secrets, Prometheus, Grafana, Wordpress). Change the ghuser with the name of your Github forked repository user.
  • make refresh-secrets env=dev: Takes the encrypted master sealed secret pushed into the repository and applies it into the new cluster. Besides it creates the secrets for Mysql and Wordpress.
  • make flux-uninstall: Deletes all Kubernetes resources installed on the cluster.

Screenshots

Initialize Kubernetes

Flux

Wordpress

Wordpress App

Wordpress K8s resources

Prometheus and Grafana

Prometheus K8s resources

Grafana App

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published