refactor: create application groups

This commit is contained in:
Vegard Hagen
2023-12-14 20:06:57 +01:00
parent 54e0a28745
commit a8595e79ed
79 changed files with 313 additions and 64 deletions
+2 -6
View File
@@ -22,17 +22,13 @@ spec:
spec:
project: applications
source:
plugin:
name: kustomize-build-with-helm
repoURL: https://github.com/vehagn/homelab
targetRevision: HEAD
path: '{{ path }}'
destination:
name: in-cluster
namespace: '{{ path.basename }}'
namespace: argocd
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true
prune: true
+38
View File
@@ -0,0 +1,38 @@
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: media
namespace: argocd
labels:
dev.stonegarden: media
spec:
generators:
- git:
repoURL: https://github.com/vehagn/homelab
revision: HEAD
directories:
- path: apps/media/*
template:
metadata:
name: '{{ path.basename }}'
labels:
dev.stonegarden: application
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: media
source:
plugin:
name: kustomize-build-with-helm
repoURL: https://github.com/vehagn/homelab
targetRevision: HEAD
path: '{{ path }}'
destination:
name: in-cluster
namespace: '{{ path.basename }}'
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true
@@ -17,7 +17,7 @@ configMapGenerator:
- TZ="Europe/Oslo"
helmGlobals:
chartHome: ../../charts
chartHome: ../../../charts
helmCharts:
- name: application
+10
View File
@@ -0,0 +1,10 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: argocd
commonLabels:
dev.stonegarden: app-management
app.kubernetes.io/managed-by: argocd
resources:
- project.yaml
- application-set.yaml
+22
View File
@@ -0,0 +1,22 @@
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: media
namespace: argocd
spec:
sourceNamespaces:
- '*'
sourceRepos:
- 'https://github.com/vehagn/*'
destinations:
- namespace: 'argocd'
server: '*'
- namespace: 'arr'
server: '*'
- namespace: 'jellyfin'
server: '*'
- namespace: 'plex'
server: '*'
clusterResourceWhitelist:
- group: '*'
kind: '*'
-18
View File
@@ -11,24 +11,6 @@ spec:
destinations:
- namespace: 'argocd'
server: '*'
- namespace: 'arr'
server: '*'
- namespace: 'blog'
server: '*'
- namespace: 'cuda-test'
server: '*'
- namespace: 'home-assistant'
server: '*'
- namespace: 'jellyfin'
server: '*'
- namespace: 'plex'
server: '*'
- namespace: 'stonegarden'
server: '*'
- namespace: 'whoami'
server: '*'
- namespace: 'test'
server: '*'
clusterResourceWhitelist:
- group: '*'
kind: '*'
+38
View File
@@ -0,0 +1,38 @@
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: public
namespace: argocd
labels:
dev.stonegarden: application
spec:
generators:
- git:
repoURL: https://github.com/vehagn/homelab
revision: HEAD
directories:
- path: apps/public/*
template:
metadata:
name: '{{ path.basename }}'
labels:
dev.stonegarden: public
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: public
source:
plugin:
name: kustomize-build-with-helm
repoURL: https://github.com/vehagn/homelab
targetRevision: HEAD
path: '{{ path }}'
destination:
name: in-cluster
namespace: '{{ path.basename }}'
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true
@@ -8,7 +8,7 @@ resources:
- remark42
helmGlobals:
chartHome: ../../charts
chartHome: ../../../charts
helmCharts:
- name: application
+10
View File
@@ -0,0 +1,10 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: argocd
commonLabels:
dev.stonegarden: app-management
app.kubernetes.io/managed-by: argocd
resources:
- project.yaml
- application-set.yaml
+20
View File
@@ -0,0 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: public
namespace: argocd
spec:
sourceNamespaces:
- '*'
sourceRepos:
- 'https://github.com/vehagn/*'
destinations:
- namespace: 'argocd'
server: '*'
- namespace: 'blog'
server: '*'
- namespace: 'stonegarden'
server: '*'
clusterResourceWhitelist:
- group: '*'
kind: '*'
+38
View File
@@ -0,0 +1,38 @@
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: test
namespace: argocd
labels:
dev.stonegarden: test
spec:
generators:
- git:
repoURL: https://github.com/vehagn/homelab
revision: HEAD
directories:
- path: apps/test/*
template:
metadata:
name: '{{ path.basename }}'
labels:
dev.stonegarden: test
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: test
source:
plugin:
name: kustomize-build-with-helm
repoURL: https://github.com/vehagn/homelab
targetRevision: HEAD
path: '{{ path }}'
destination:
name: in-cluster
namespace: '{{ path.basename }}'
syncPolicy:
automated:
selfHeal: false
prune: true
syncOptions:
- CreateNamespace=true
-18
View File
@@ -1,18 +0,0 @@
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
name: traefik-forward-auth-secrets
namespace: test
spec:
encryptedData:
google-client-id: AgBISp5+p/nhYXY5C+lUM94vAH58Mt/P/i60gEt97rUcLnaumNujQRQOtqlCKpMvCuFrwskFZ8saHLUBoLuqhxELhgbT9GEClxkh3VnLQ+oafEE7jKfPknAHlr/rWwyXqJZYt/F4BtMmLeWiUbqB/GwC3ZeVgGEXidVVBYa6FLCM18fwXbJCP3PrmGnPbLprRuqA59YKgi03onyxfDcgeG85+ZvAoB1DlBTex1k1t2OvH+6GTiLbSYVYBA5gLZKTTz8RCWdGclYHlPVsc0vyoqA33WPIF+eqYh6WLJMNl4YdvwZuajm+jyp7UEZEpTOE53wVUn7dHxJnjUIx976l2PlveFdgJqXjcVk+alMdY5PtjTdILIaqoNATHXs1KWydFFUidxhcVoUhbg3fZzPhJWTv5C3WNYDzMVKQA261L6R8EYdKl34Lj+6N9EVAlegTnH/KpUxUJ6aExZQUr1jJJ/UqhRuFZljaDqKImPgNrCkfmrCWaUui6wmFAhS5Xq1ci5teqemHnvS5QKJFcHTlK7xCwyo1P0Iq/CDkOndBlH5vSrZM6qkOU8dOGa37KpUMw4koSWaxfTTJ9EMjb3AY5ghgsemhDK7ciwjx6wkFQ3miJzHbkUnj5qEe57hRfh6i5+nhFj/295S+5Ed+Jgo6nadpvuoKNCPD32edUzHBRWesQJI/l0Ap45BiYepAwEmSOYioFpFh00CZxd02ztRU2CPM7bNrfco8F+V1knKBo+js52Bkql8BFxNXnlkOK1DjwaVQ/1hCgGHUkcHFhGI5AOKeUVllRS9g4So=
google-client-secret: AgCQGkxbEAZGSZP1zBlHqzxLCii/NOnNU/HosQEanERb0q7FcAoUJxkx5tZcxDif2/oMxZPuk70Soi9+vS7WObjODC5PKGjBOr3XtmaS6egvB+Mjb2L7iWFaCY5Nmd+Pl2C/HsKqhDMenj/Pv/h2Uj0SBDA0XhHSk0N6skmQVmcdc2mC03G1qJymIvYfgNR5uPfFfwFOleKom7QvdoPb/o7YdD/y7InnNHJw5kM6+2fxqNtZboFa17IM95T3+ZHblqqelucEmYjZyVE3+vq9v0blMB/dGBFDtHqRvjoIbo55VjTdAz4eOcfU+pUd4o4NjdddLOJ+tlkOIVVLpgce+yWU7RSn4F+r1cviOCioC1WT7daa2w8VfKjVRyFoV1bZ+ZaVqVyiZ6r2d0NCcZIH8KZ91I38nTWdDC58MJAZGmWqHgaJibYY0XMHnqM0xOTT/A6myJmezbDyXojjfVUit6Safzu5X8EOo/eQDVfxVJ/0/G6X6vKTJQhIxF06NXezCMoOSEi9fg2dxIIocj5G24K2TeTZGSfiz6CTZdkLnRSArdzJajzfSxEaVasxS1/BWixvDsn8lFByE+zd7d0kuIRlKmgyDYUTYb3Qy1zZT3n95YeLZkZw/l1HriUJ+34DWpUrM/L/xOcblr9UZ/70L5zkL1yNHbG6rseTnBn0Ob7TPc8CD5wSqNAhBqO3XaYlD0yumebtx7Pjlvpy6niRYAZkxA/w3Bwh+hrIN5mLvIXwms4hzA==
secret: AgCLFUQ8e/hSn8EtWqxf6tEheYS8e+pHRX77VKWh/+RNpcE8Ja7h/11zPOjFesmqSkydO2ZVdWk35MZ7LU1D/XhRycx3x6fWdrgWkZIEK38sWohnPvDREZ69diHROV8uf4khhWj9hM0gYS/6zPzqbZBNdysPmneWy/F0ofc5kShvMJrABBI1p7+MPakvaYFOBNP4y+cAwGd7HgES7juSNpDo0IwMGhBs5SavGZZyLPiapmzgnJ5bP7g+5tHnIXz0D17I+3HZ2nKAzhNRUUB4cw37iYMYavi35A5S1RpzReK+8D2SKNiszz2fYAbL7yl3lV9NW+VZkQwCVPtUbMS0Ifcv6+0YxBJW9Qrafdduxkon8YnUffEDS1cI7LG5h7uPP9nnb4xMSFf6RW7til1q7nfYtfQW0WnolYqw5R9TS7ogO8F2FZCwD03n6bRf9pIPbEDQE/iHe6kYiHH6TpTpsIS/geRL5x8inufoZZdGPUSwot97gqwv8myeC5JsnwYAqaCZb5J6Mx/7s4efvCHW+mGoFTCM8FZ8exnE1h5wgI4BrhqcOVIeFTeQY1/nYazgx1iMQw3kJ6JUcfdw9Li6EmxEn1mJEUuFsB3wyxzKi8gktLSisEzaNI767lRyAuEp+DMD7wF4UKDRSnq5MdqfG6TkQ5Gs4G7eXbPRv9FLnHEsmTtVUmZtEoakMguevYLTUPH8nl00
template:
metadata:
annotations:
sealedsecrets.bitnami.com/managed: "true"
name: traefik-forward-auth-secrets
namespace: test
type: Opaque
+4 -6
View File
@@ -1,12 +1,10 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: argocd
commonLabels:
dev.stonegarden: app-management
app.kubernetes.io/managed-by: argocd
app.kubernetes.io/part-of: test
resources:
- auth-secret.yaml
- app1.yaml
- app2.yaml
- app3.yaml
- auth.yaml
- project.yaml
- application-set.yaml
+22
View File
@@ -0,0 +1,22 @@
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: test
namespace: argocd
spec:
sourceNamespaces:
- '*'
sourceRepos:
- 'https://github.com/vehagn/*'
destinations:
- namespace: 'argocd'
server: '*'
- namespace: 'cuda-test'
server: '*'
- namespace: 'whoami'
server: '*'
- namespace: 'test-apps'
server: '*'
clusterResourceWhitelist:
- group: '*'
kind: '*'
@@ -6,7 +6,7 @@ metadata:
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: applications
project: test
source:
repoURL: https://github.com/vehagn/homelab
path: charts/application
@@ -15,9 +15,9 @@ spec:
name: app1
replicas: 3
valueFiles:
- ../../apps/test/common-values.yaml
- ../../apps/test/test-apps/common-values.yaml
destination:
namespace: test
namespace: test-apps
name: in-cluster
syncPolicy:
automated:
@@ -6,7 +6,7 @@ metadata:
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: applications
project: test
sources:
- repoURL: https://github.com/vehagn/homelab
path: charts/application
@@ -15,11 +15,11 @@ spec:
- name: name
value: app2
valueFiles:
- $values/apps/test/common-values.yaml
- $values/apps/test/test-apps/common-values.yaml
- repoURL: https://github.com/vehagn/homelab
ref: values
destination:
namespace: test
namespace: test-apps
name: in-cluster
syncPolicy:
automated:
@@ -6,7 +6,7 @@ metadata:
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: applications
project: test
sources:
- repoURL: https://github.com/vehagn/homelab
path: charts/application
@@ -15,11 +15,11 @@ spec:
- name: name
value: app3
valueFiles:
- $values/apps/test/common-values.yaml
- $values/apps/test/test-apps/common-values.yaml
- repoURL: https://github.com/vehagn/homelab
ref: values
destination:
namespace: test
namespace: test-apps
name: in-cluster
syncPolicy:
automated:
+15
View File
@@ -0,0 +1,15 @@
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
name: traefik-forward-auth-secrets
namespace: test-apps
spec:
template:
metadata:
name: traefik-forward-auth-secrets
namespace: test-apps
type: Opaque
encryptedData:
google-client-id: AgCLNh+hqwvz7fXIJkhRRU1xAWcctnYH4NNTSEiFe4P1waIp8/rp06XUw3dBzazX37bkBuObJHf3RfgIg4J0NQjjuh0kZ35LOxdu3iJteXsHmZKFZBsFpr8nQp2nve4qFpA9I+0/ZlgYRroIBktoL3v76TjdbdyI9pu37wBHRX2vBNoDxT1uMrygGN0ZmIfK9d63Cba6CM0mnWyPWye1+0n4P9tqNTFE3sE8gaAZYouff0qOCJDCBNLOC1Ji7gRRAsITqRs5xbp3zmcLj8xjqp1Llc0Mq+yBchromDF5SCTpnncO2O4K5rVTuFSZM6Bpp9Se1n21dd0L5wT/ghj4uqX4brb6XvxcT5+ssanC4bBww9wK/eTSfYrRfbjBWzildMmaghIrMnAHIcQc3FXTgE+cT841Z2fC9ZsijkV8yvVoj5PRZixu0Z5JwREyegJAJGFyMEFUyjyR6U1gKVlhDoFPGQmJ14HxiIZ00XqHkEHj7OojZjga4ZlzAZ2ds+tqPy2Va3Kd7y8nGO0R7O4leK+m1vik7iWddVQNSENRswTdESds/SdsJ0+z9dtseiaQTxWcVF2JcBFDOYbFZm9W1soSTlw6wpJF+mjMaV1k62SxV/0rF+WVaDxhKXcTnVJg1TlFiuOiHdEc/gHrdzo9yDOjTtda+to5YofqS6LWOxZXTZVIAcWXcF/mRNzSZxlJwnASjQ7HJFLpU4S/592dgI2W+PKG1MuaLANrxRmJVgGQF6X35K6t9PzMlmWlwB7kur5/PkKhCLSWIQcpS+9JqYGS21Cmd92yacw=
google-client-secret: AgB7LWzyNdo9dQ+k1d3clj5JNZ1HCU9czRAbnNiGrHgRXwqnDqVgkVoZE3nb+0n7ZQpVr2LRkYJ82kLQ5qNV5Da2bk+0u8nPOYQPjujqZSwumcmXAPZIs7WvVAEoOlufppIgFfuIumrvX1H12Xg9et3r1ayypodqDIVVUu6KgyNtuwzEKm2Yrl6UFoxYbv3as1KijOtAY9THyGRn3pXN53Vos94wzqa5v2gPZIh9ZVYX4bNIJK4j7BLnbETihqpSz2MYmgASf9QfeHMuaxJHq3+nmhS/Oa2huR7Y1CmPVCoPh6WEdiTcE8HPxl5Fp32HGVRaRs4Co/Z/o3QVEXIbmbOoMPnNDbMGtwRUUw0woyMGKpXCr5cLrkKbU1ZVXYGiz2JJwXXedAFmL/lUUUAGkI4sj2sbuHdbXtO+hNtE8K0h+H0HeXApN0m+ts7aKQfIVs9CdK2Ez5wq6k8M3z7APRTYhCXHyjxiHU3LveHahaifFoIetLSUf7WpoTw4qhtdlgnQXEKOot+xV4WdiHWq1PjmS91Wo9al1RPMK+r8eHjSz076S+sRbP3/fzJTFppF/4s5e+6AybobDo08KLRZfO7+q5eaym1I/AmoNl/7EkS7S4LDljHemx1s3bsvW2ropZiGMVfdAGhIz5bSHxHjMZmXYwZmZqWhYWykrFvnm5VJYuOV3410IPAToDx4hgflDqsMRkL+Qm96ZA2lt4Hy74Bj1LKQ6CF+rahTEMmzED3R4mKcaw==
secret: AgCWqoG6xWgWxGmHJPgCAkJoXL27EHyU22giP9lrqXLy/FSdQMJpxY2g/o9Eb/c8rhAHU3tT6vQ3PSP9EzHqLdp6v085XricKQmqZfa9yLYgV65jJJLelIZKbkCE6YAWKlGmsIPd7jskexSdufKboAMjih8y0cF7w0ubnxZVvLAVQT1zU4c/7yQObDFFJ0Le++lPc8eTZphopPjellsx9i19tDQa/5PvexiAbOw740Mq6GKQxZtTJVwpkW6jZ+cc5vGRQp39FP/RiisCyK7wcUGuLW6c8vt8EWiHnsPfImcNaC/DkQFJhsM5w6mHXeZ99uniVauh77jwPm5bR3eT4Qj6NfBOrE4uMaIiwIakt/W+X/AdW4trvajo31uGIr3jdi/csEJmsOGX02/YKyZvDWKkgJMyW2+YwAJwQdzQhXQe0yhSxHfIIbAYIiTSUCTlOS+EgGF80uUWXQzl6WqXW+99CtjgR6fm26si+ZgLpuR5h+75SwmkASgdPb4MnEwCE72of79Ow25weVX68Mbe8HR7GJzQvtMFriRA+TvkHrHHpi2gqVxR68olMyrBdsj774IFV6Vtc5K3sMsWZcdpOIXkaNf7w2ns26PCe7QuZuFnav3i2gW5v3rKCQ+jhazTN3v4mojB5/+smTzrjPZrwU+7e+AsWreIUo/k+4Jk8lsk2WEWlHVtMAu7iojLnfF0ep+Zh5at
@@ -1,5 +1,5 @@
name: auth
namespace: test
namespace: test-apps
authOnly: true
auth:
cookieDomain: stonegarden.dev
@@ -6,17 +6,17 @@ metadata:
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: applications
project: test
sources:
- repoURL: https://github.com/vehagn/homelab
path: charts/application
helm:
valueFiles:
- $values/apps/test/auth-values.yaml
- $values/apps/test/test-apps/auth-values.yaml
- repoURL: https://github.com/vehagn/homelab
ref: values
destination:
namespace: test
namespace: test-apps
name: in-cluster
syncPolicy:
automated:
@@ -1,5 +1,5 @@
name: app
namespace: test
namespace: test-apps
image:
name: containous/whoami
service:
+12
View File
@@ -0,0 +1,12 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
commonLabels:
app.kubernetes.io/managed-by: argocd
app.kubernetes.io/part-of: test
resources:
- auth-secret.yaml
- app1.yaml
- app2.yaml
- app3.yaml
- auth.yaml
+38
View File
@@ -0,0 +1,38 @@
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: utility
namespace: argocd
labels:
dev.stonegarden: utility
spec:
generators:
- git:
repoURL: https://github.com/vehagn/homelab
revision: HEAD
directories:
- path: apps/utility/*
template:
metadata:
name: '{{ path.basename }}'
labels:
dev.stonegarden: utility
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: utility
source:
plugin:
name: kustomize-build-with-helm
repoURL: https://github.com/vehagn/homelab
targetRevision: HEAD
path: '{{ path }}'
destination:
name: in-cluster
namespace: '{{ path.basename }}'
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true
+10
View File
@@ -0,0 +1,10 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: argocd
commonLabels:
dev.stonegarden: app-management
app.kubernetes.io/managed-by: argocd
resources:
- project.yaml
- application-set.yaml
+18
View File
@@ -0,0 +1,18 @@
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: utility
namespace: argocd
spec:
sourceNamespaces:
- '*'
sourceRepos:
- 'https://github.com/vehagn/*'
destinations:
- namespace: 'argocd'
server: '*'
- namespace: 'home-assistant'
server: '*'
clusterResourceWhitelist:
- group: '*'
kind: '*'