A collection of helm charts and configuration files for setting up clusters that are being used by the STFC Cloud team.
This repo acts as the "central repository" of all configuration information for our K8s clusters. It allows a user to select which applications or infrastructure they want to deploy, from a pre-opinionated list.
We use ArgoCD to manage our clusters and each cluster, each cluster has its own ArgoCD microservice which syncs against this repo
These links assume you have existing clusters or applications to deploy within the repository. If you want to setup a cluster from scratch, you'll need to define a new cluster from the below links first:
This repository contains the following directories:
-
charts
- Holds base Helm charts for argoCD to spin up and manage. This includes-
argocd
- which deploys Argo CD. -
argocd-apps
- which deploys an argocd application resource for each Kubernetes application that we want argocd to manage for the cluster. It also syncs from thecloud-deployed-apps
repository. -
argocd-infra
- this is the same asargocd-apps
but for CAPI Infrastructure that we want argocd to manage -
Other Charts are organised into
apps
andinfra
. Charts inapps
directory are system-agnostic charts that can be installed on any kubernetes cluster. Charts ininfra
are charts that are dependent on specific flavor of kubernetes - such as CAPI deployed clusters. Each Chart contains "default" configuration files for each - usually a set ofyaml
files.
-
-
clusters
- This directory contains cluster-specific compositions of applications and infrastructure. For example, it may contain definitions of a production cluster, the flavors used and the applications deployed onto it. The overrides allow us to have different configurations for each clusters, or point to different repository revisions. -
scripts
- This directory contains various "helper" scripts that we use for handling configuration management aspects