This commit is contained in:
Morten Olsen
2025-11-25 15:11:52 +01:00
commit 316a2db1d9
19 changed files with 806 additions and 0 deletions

25
apps/cert-manager.yaml Normal file
View File

@@ -0,0 +1,25 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: cert-manager
namespace: argocd
spec:
project: foundation
source:
repoURL: https://charts.jetstack.io
chart: cert-manager
targetRevision: v1.19.1
helm:
releaseName: cert-manager
values: |
crds:
enabled: true
destination:
server: https://kubernetes.default.svc
namespace: cert-manager
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

23
apps/cloudnative-pg.yaml Normal file
View File

@@ -0,0 +1,23 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: cloudnative-pg
namespace: argocd
spec:
project: foundation
source:
repoURL: https://cloudnative-pg.github.io/charts
targetRevision: 0.26.1
chart: cloudnative-pg
helm:
releaseName: cloudnative-pg
destination:
server: https://kubernetes.default.svc
namespace: cnpg-system
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- ServerSideApply=true

View File

@@ -0,0 +1,18 @@
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: foundation
namespace: argocd
spec:
description: Foundation services for the home server
sourceRepos:
- '*'
destinations:
- namespace: '*'
server: https://kubernetes.default.svc
clusterResourceWhitelist:
- group: '*'
kind: '*'
namespaceResourceWhitelist:
- group: '*'
kind: '*'

31
apps/istio.yaml Normal file
View File

@@ -0,0 +1,31 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: istio-base
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "-1"
spec:
project: foundation
source:
repoURL: https://istio-release.storage.googleapis.com/charts
targetRevision: 1.28.0
chart: base
helm:
releaseName: istio-base
values: |
defaultRevision: default
destination:
server: https://kubernetes.default.svc
namespace: istio-system
ignoreDifferences:
- group: admissionregistration.k8s.io
kind: ValidatingWebhookConfiguration
jsonPointers:
- /webhooks/0/failurePolicy
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

30
apps/istiod.yaml Normal file
View File

@@ -0,0 +1,30 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: istiod
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "0"
spec:
project: foundation
source:
repoURL: https://istio-release.storage.googleapis.com/charts
targetRevision: 1.28.0
chart: istiod
helm:
releaseName: istiod
destination:
server: https://kubernetes.default.svc
namespace: istio-system
ignoreDifferences:
- group: admissionregistration.k8s.io
kind: ValidatingWebhookConfiguration
jsonPointers:
- /webhooks/0/failurePolicy
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

13
apps/kustomization.yaml Normal file
View File

@@ -0,0 +1,13 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- foundation-project.yaml
- root-application.yaml
- storage-class.yaml
- cert-manager.yaml
- istio.yaml
- istiod.yaml
- cloudnative-pg.yaml
- nats.yaml
- kyverno.yaml
- trivy.yaml

23
apps/kyverno.yaml Normal file
View File

@@ -0,0 +1,23 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: kyverno
namespace: argocd
spec:
project: foundation
source:
repoURL: https://kyverno.github.io/kyverno
targetRevision: 3.1.0
chart: kyverno
helm:
releaseName: kyverno
destination:
server: https://kubernetes.default.svc
namespace: kyverno
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- ServerSideApply=true

29
apps/nats.yaml Normal file
View File

@@ -0,0 +1,29 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: nats
namespace: argocd
spec:
project: foundation
source:
repoURL: https://nats-io.github.io/k8s/helm/charts/
targetRevision: 2.12.2
chart: nats
helm:
releaseName: nats
values: |
config:
jetstream:
enabled: true
fileStore:
storageSize: 10Gi
storageClassName: local-path
destination:
server: https://kubernetes.default.svc
namespace: nats
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: root-application
namespace: argocd
spec:
project: foundation
source:
repoURL: https://gitea.olsen.cloud/homelab/foundation.git
targetRevision: main
path: apps
destination:
server: https://kubernetes.default.svc
namespace: argocd
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

20
apps/storage-class.yaml Normal file
View File

@@ -0,0 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: storage-class
namespace: argocd
spec:
project: foundation
source:
repoURL: https://gitea.olsen.cloud/homelab/foundation.git
targetRevision: main
path: storage
destination:
server: https://kubernetes.default.svc
namespace: kube-system
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

22
apps/trivy.yaml Normal file
View File

@@ -0,0 +1,22 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: trivy
namespace: argocd
spec:
project: foundation
source:
repoURL: https://aquasecurity.github.io/helm-charts
targetRevision: 0.20.0
chart: trivy-operator
helm:
releaseName: trivy
destination:
server: https://kubernetes.default.svc
namespace: trivy-system
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true