squash all

Mostly copied over from my old repo and modified for app of apps.
Cleaning up the mess from migration

Signed-off-by: gwg313 <gwg313@pm.me>
This commit is contained in:
gwg313 2025-07-03 08:02:33 -04:00
parent 471f30f0b1
commit 52933116f0
Signed by: gwg313
GPG key ID: 60FF63B4826B7400
104 changed files with 2532 additions and 44 deletions

View file

@ -1,20 +1,17 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: istio
name: audiobookshelf
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/gwg313/homelab-gitops
targetRevision: main
path: istio
helm:
valueFiles:
- base-values.yaml
path: audiobookshelf
destination:
server: https://kubernetes.default.svc
namespace: istio-system
namespace: audiobookshelf
syncPolicy:
automated:
selfHeal: true

20
apps/bytestash.yaml Normal file
View file

@ -0,0 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: bytestash
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/gwg313/homelab-gitops
targetRevision: main
path: bytestash
destination:
server: https://kubernetes.default.svc
namespace: bytestash
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true

18
apps/cert-issuer.yaml Normal file
View file

@ -0,0 +1,18 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: cert-issuer
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/gwg313/homelab-gitops
targetRevision: main
path: cluster-issuer
destination:
server: https://kubernetes.default.svc
namespace: cert-manager
syncPolicy:
automated:
selfHeal: true
prune: true

24
apps/cert-manager.yaml Normal file
View file

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

20
apps/forgejo.yaml Normal file
View file

@ -0,0 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: forgejo
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/gwg313/homelab-gitops
targetRevision: main
path: forgejo
destination:
server: https://kubernetes.default.svc
namespace: forgejo
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true

20
apps/harbor-config.yaml Normal file
View file

@ -0,0 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: harbor-config
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/gwg313/homelab-gitops
targetRevision: main
path: harbor-config
destination:
server: https://kubernetes.default.svc
namespace: harbor
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true

51
apps/harbor.yaml Normal file
View file

@ -0,0 +1,51 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: harbor
namespace: argocd
spec:
project: default
destination:
server: https://kubernetes.default.svc
namespace: harbor
source:
repoURL: https://helm.goharbor.io
chart: harbor
targetRevision: 1.14.2
helm:
releaseName: harbor
values: |
externalURL: https://registry.gwg313.xyz
expose:
type: clusterIP
tls:
enabled: false
certSource: secret
secret:
secretName: harbor-cert-nginx
nginx:
replicas: 0
persistence:
persistentVolumeClaim:
registry:
existingClaim: harbor-registry
jobservice:
existingClaim: harbor-jobservice
trivy:
existingClaim: harbor-trivy
database:
existingClaim: harbor-database
redis:
existingClaim: harbor-redis
core:
existingClaim: harbor-core
ingress:
enabled: false
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

View file

@ -0,0 +1,22 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: istio-base
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "0"
spec:
project: default
source:
repoURL: https://istio-release.storage.googleapis.com/charts
chart: base
targetRevision: 1.26.0
destination:
server: https://kubernetes.default.svc
namespace: istio-system
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

26
apps/istio/istio-cni.yaml Normal file
View file

@ -0,0 +1,26 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: istio-cni
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "1"
spec:
project: default
source:
repoURL: https://istio-release.storage.googleapis.com/charts
chart: cni
targetRevision: 1.26.0
helm:
values: |
cni:
enabled: true
chained: false
logLevel: info
destination:
server: https://kubernetes.default.svc
namespace: istio-system
syncPolicy:
automated:
prune: true
selfHeal: true

View file

@ -0,0 +1,50 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: istio-gateway
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "2"
spec:
project: default
source:
repoURL: https://istio-release.storage.googleapis.com/charts
chart: gateway
targetRevision: 1.26.0
helm:
values: |
replicaCount: 2
autoscaling:
enabled: false
resources:
requests:
cpu: "500m"
memory: "512Mi"
limits:
cpu: "1000m"
memory: "1Gi"
podDisruptionBudget:
enabled: true
minAvailable: 1
proxy:
logLevel: warning
componentLogLevel: "misc:error,config:debug"
readinessProbe:
httpGet:
path: /healthz/ready
port: 15021
initialDelaySeconds: 5
periodSeconds: 5
failureThreshold: 3
destination:
server: https://kubernetes.default.svc
namespace: istio-system
syncPolicy:
automated:
prune: true
selfHeal: true

View file

@ -0,0 +1,43 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: istio-istiod
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "1"
spec:
project: default
source:
repoURL: https://istio-release.storage.googleapis.com/charts
chart: istiod
targetRevision: 1.26.0
helm:
values: |
global:
istioCNI:
enabled: true
sidecarInjectorWebhook:
disableInitContainers: true
pilot:
autoscaleEnabled: false
replicaCount: 2
resources:
requests:
cpu: "500m"
memory: "512Mi"
limits:
cpu: "1000m"
memory: "1Gi"
podDisruptionBudget:
enabled: true
minAvailable: 1
destination:
server: https://kubernetes.default.svc
namespace: istio-system
syncPolicy:
automated:
prune: true
selfHeal: true

View file

@ -0,0 +1,9 @@
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
annotations:
name: default
namespace: istio-system
spec:
mtls:
mode: PERMISSIVE

18
apps/metallb-config.yaml Normal file
View file

@ -0,0 +1,18 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: metallb-config
namespace: argocd
spec:
project: default
source:
path: metallb/config
repoURL: https://github.com/gwg313/homelab-gitops
targetRevision: HEAD
destination:
server: https://kubernetes.default.svc
namespace: metallb-system
syncPolicy:
automated:
prune: true
selfHeal: true

22
apps/metallb.yaml Normal file
View file

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

20
apps/minio-config.yaml Normal file
View file

@ -0,0 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: minio-config
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/gwg313/homelab-gitops
targetRevision: main
path: minio
destination:
server: https://kubernetes.default.svc
namespace: minio
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true

37
apps/minio.yaml Normal file
View file

@ -0,0 +1,37 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: minio
namespace: argocd
spec:
destination:
namespace: minio
server: https://kubernetes.default.svc
project: default
source:
repoURL: https://charts.bitnami.com/bitnami
chart: minio
targetRevision: 17.0.9
helm:
releaseName: minio
values: |
auth:
existingSecret: minio-auth
ingress:
enabled: false
service:
type: ClusterIP
ports:
api: 9000
console: 9001
persistence:
existingClaim: minio-data
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

20
apps/navidrome.yaml Normal file
View file

@ -0,0 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: navidrome
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/gwg313/homelab-gitops
targetRevision: main
path: navidrome
destination:
server: https://kubernetes.default.svc
namespace: navidrome
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true

33
apps/nfs-subdir.yaml Normal file
View file

@ -0,0 +1,33 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: nfs-subdir-external-provisioner
namespace: argocd
spec:
project: default
source:
repoURL: https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner
chart: nfs-subdir-external-provisioner
targetRevision: 4.0.18
helm:
releaseName: nfs-subdir-external-provisioner
values: |
nfs:
server: truenas.local.gwg313.xyz
path: /mnt/tank/k8s/nfs-subdir
storageClass:
name: nfs-client
defaultClass: true
accessModes: ["ReadWriteMany"]
reclaimPolicy: Delete
archiveOnDelete: false
destination:
server: https://kubernetes.default.svc
namespace: nfs-subdir-external-provisioner
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

24
apps/sealed-secrets.yaml Normal file
View file

@ -0,0 +1,24 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: sealed-secrets
namespace: argocd
spec:
project: default
source:
repoURL: https://bitnami-labs.github.io/sealed-secrets
chart: sealed-secrets
targetRevision: 2.15.3
helm:
releaseName: sealed-secrets
values: |
fullnameOverride: sealed-secrets-controller
destination:
server: https://kubernetes.default.svc
namespace: sealed-secrets
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

View file

@ -0,0 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: woodpecker-manifests
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/gwg313/homelab-gitops
targetRevision: HEAD
path: woodpecker
destination:
server: https://kubernetes.default.svc
namespace: woodpecker
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true

23
apps/woodpecker.yaml Normal file
View file

@ -0,0 +1,23 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: woodpecker
namespace: argocd
spec:
project: default
source:
repoURL: https://woodpecker-ci.org/
chart: woodpecker
targetRevision: 3.2.0
helm:
releaseName: woodpecker
values: "server:\n env:\n WOODPECKER_HOST: \"https://ci.gwg313.xyz\"\n extraSecretNamesForEnvFrom:\n - woodpecker-server-secrets\n persistentVolume:\n enabled: true\n existingClaim: woodpecker-server-pvc5\n\nagent:\n enabled: true\n replicaCount: 1\n extraSecretNamesForEnvFrom:\n - woodpecker-agent-secrets\n env:\n WOODPECKER_SERVER: \"woodpecker-server:9000\"\n WOODPECKER_MAX_WORKFLOWS: \"5\"\n persistence:\n enabled: true\n existingClaim: woodpecker-agent-pvc5\n securityContext:\n privileged: true \n"
destination:
server: https://kubernetes.default.svc
namespace: woodpecker
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

20
apps/yopass.yaml Normal file
View file

@ -0,0 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: yopass
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/gwg313/homelab-gitops
targetRevision: main
path: yopass
destination:
server: https://kubernetes.default.svc
namespace: yopass
syncPolicy:
automated:
selfHeal: true
prune: true
syncOptions:
- CreateNamespace=true