feat: initial commit

- add structure to clusters, apps and argocd objects
- add bootstrapping features
This commit is contained in:
Ben Vincent 2026-03-01 14:31:16 +11:00
commit 971835f845
14 changed files with 148 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
manifests/

15
Makefile Normal file
View File

@ -0,0 +1,15 @@
.PHONY: build clean
# Build a kustomization path to manifests directory
# Usage: make build clusters/au-syd1/bootstrap
build:
@mkdir -p manifests/$(filter-out $@,$(MAKECMDGOALS))
@kustomize build $(filter-out $@,$(MAKECMDGOALS)) --output manifests/$(filter-out $@,$(MAKECMDGOALS))
# Clean all generated manifests
clean:
@rm -rf manifests/
# Allow any argument after build to be treated as a path
%:
@:

View File

@ -0,0 +1,7 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../argocd/projects
- ../../argocd/applicationsets

View File

@ -0,0 +1,13 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- namespace.yaml
helmCharts:
- name: reflector
repo: oci://ghcr.io/emberstack/helm-charts
version: "10.0.1"
releaseName: reflector
namespace: reflector-system

View File

@ -0,0 +1,5 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: reflector-system

View File

@ -0,0 +1,8 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
helmCharts:
- name: reflector
valuesFiles:
- values.yaml

View File

@ -0,0 +1,9 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../../base/reflector-system
patches:
- helm-patch.yaml

View File

@ -0,0 +1,7 @@
---
replicaCount: 2
resources:
requests:
memory: "256Mi"
cpu: "100m"

View File

@ -0,0 +1,6 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- platform.yaml

View File

@ -0,0 +1,31 @@
---
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: platform-apps
namespace: argocd
spec:
generators:
- git:
repoURL: https://git.unkin.net/unkin/argocd-apps
revision: HEAD
directories:
- path: apps/overlays/*/reflector-system
- path: apps/overlays/*/cert-manager
- path: apps/overlays/*/externaldns
template:
metadata:
name: '{{path[2]}}-{{path[3]}}' # cluster-app format (e.g., au-syd1-reflector-system)
spec:
project: platform
source:
repoURL: https://git.unkin.net/unkin/argocd-apps
targetRevision: HEAD
path: '{{path}}'
destination:
server: https://kubernetes.default.svc
namespace: '{{path[3]}}' # Use directory name as namespace
syncPolicy:
automated:
prune: true
selfHeal: true

View File

@ -0,0 +1,6 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- platform.yaml

View File

@ -0,0 +1,28 @@
---
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: platform
namespace: argocd
spec:
description: Platform infrastructure and core services
sourceRepos:
- https://git.unkin.net/unkin/argocd-apps
- oci://ghcr.io/emberstack/helm-charts
destinations:
- namespace: 'kube-system'
server: https://kubernetes.default.svc
- namespace: 'reflector-system'
server: https://kubernetes.default.svc
clusterResourceWhitelist:
- group: ''
kind: Namespace
- group: 'rbac.authorization.k8s.io'
kind: ClusterRole
- group: 'rbac.authorization.k8s.io'
kind: ClusterRoleBinding
- group: 'apiextensions.k8s.io'
kind: CustomResourceDefinition
namespaceResourceWhitelist:
- group: '*'
kind: '*'

View File

@ -0,0 +1,6 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../../apps/base

View File

@ -0,0 +1,6 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- https://artifactapi.k8s.syd1.au.unkin.net/api/v1/remote/github_raw/argoproj/argo-cd/refs/tags/v3.3.2/manifests/ha/install.yaml