This repository contains deployment manifests for mindtastic's services
In order to deploy a new application to Kuberentes you will need to do the following two things:
- Create an
Application
manifest in./applications
; You can use the template below to create an application manifest for your application. Give it an appropriate name and store it in./application
. - create matching Kubernetes manifests for your application in a top level directory.
Create a directory for your application manifests and save them.
Make sure that your application manifest matches the directory name in the
.spec.source.path
attribute.
Once merged to the main branch, your new application should show up in ArgoCD shortly after.
Just press "Sync" to consolidate the manifests and cluster state and deploy your application.
Use the following template to create a new Application Manifest:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: guestbook # The name of your application
namespace: argocd # Do not change this
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: default
source:
repoURL: https://github.com/mindtastic/deployments
targetRevision: HEAD
path: guestbook # This points to the path where your application's manifests are stored
destination:
server: https://kubernetes.default.svc
namespace: guestbook # Namespace for your application
This repository is (mostly) fully automated. It follows ArgoCD's "App-of-Apps" pattern, albeit with small differences.
./applications.yaml
deploys an ArgoCD application which creates all other applications stored in ./applications
.
When bootstrapping a new Cluster, applications.yaml
needs to be applied manually. After that it automatically adds all new applications added without any need to sync applications
again.