feat: Setup pre-commit hook
This commit is contained in:
Executable
+41
@@ -0,0 +1,41 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# Normalise staged manifests to their kubectl kustomize output, so what is
|
||||||
|
# committed is exactly what Argo CD renders. Requires kubectl and yq.
|
||||||
|
|
||||||
|
identity='[.apiVersion, .kind, .metadata.name // ""] | join("|")'
|
||||||
|
|
||||||
|
git diff --cached --name-only --diff-filter=ACM -- '*.yaml' |
|
||||||
|
while IFS= read -r file; do
|
||||||
|
dir=$(dirname "$file")
|
||||||
|
name=$(basename "$file")
|
||||||
|
[ "$name" = kustomization.yaml ] && continue
|
||||||
|
|
||||||
|
# only normalise files the sibling kustomization lists as a resource, so
|
||||||
|
# patches and components are never replaced with build output
|
||||||
|
yq -r '.resources[]? // ""' "$dir/kustomization.yaml" 2>/dev/null |
|
||||||
|
grep -Fxq "$name" || continue
|
||||||
|
|
||||||
|
rendered=$(mktemp)
|
||||||
|
kubectl kustomize "$dir" |
|
||||||
|
yq eval-all "select(($identity) == \"$(yq eval-all "$identity" "$file" | head -1)\")" - >"$rendered"
|
||||||
|
|
||||||
|
if [ -s "$rendered" ] && ! diff -q "$file" "$rendered" >/dev/null; then
|
||||||
|
cat "$rendered" >"$file"
|
||||||
|
git add "$file"
|
||||||
|
echo "normalised $file"
|
||||||
|
fi
|
||||||
|
rm -f "$rendered"
|
||||||
|
|
||||||
|
# normalising may have reverted the change entirely
|
||||||
|
if git diff --cached --quiet -- "$file"; then
|
||||||
|
git reset -q HEAD -- "$file"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# nothing left staged — prevent an empty commit
|
||||||
|
if git diff --cached --quiet; then
|
||||||
|
echo "pre-commit: no meaningful changes, aborting commit"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
@@ -1,23 +1,23 @@
|
|||||||
apiVersion: gateway.networking.k8s.io/v1
|
apiVersion: gateway.networking.k8s.io/v1
|
||||||
kind: HTTPRoute
|
kind: HTTPRoute
|
||||||
metadata:
|
metadata:
|
||||||
name: jellyfin-local
|
|
||||||
namespace: jellyfin
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "1"
|
argocd.argoproj.io/sync-wave: "1"
|
||||||
|
name: jellyfin-local
|
||||||
|
namespace: jellyfin
|
||||||
spec:
|
spec:
|
||||||
parentRefs:
|
|
||||||
- name: traefik-gateway
|
|
||||||
namespace: traefik
|
|
||||||
kind: Gateway
|
|
||||||
sectionName: websecure
|
|
||||||
hostnames:
|
hostnames:
|
||||||
- jellyfin-local.whyredfire.dev
|
- jellyfin-local.whyredfire.dev
|
||||||
|
parentRefs:
|
||||||
|
- kind: Gateway
|
||||||
|
name: traefik-gateway
|
||||||
|
namespace: traefik
|
||||||
|
sectionName: websecure
|
||||||
rules:
|
rules:
|
||||||
- matches:
|
- backendRefs:
|
||||||
|
- name: jellyfin
|
||||||
|
port: 8096
|
||||||
|
matches:
|
||||||
- path:
|
- path:
|
||||||
type: PathPrefix
|
type: PathPrefix
|
||||||
value: /
|
value: /
|
||||||
backendRefs:
|
|
||||||
- name: jellyfin
|
|
||||||
port: 8096
|
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
apiVersion: gateway.networking.k8s.io/v1
|
apiVersion: gateway.networking.k8s.io/v1
|
||||||
kind: HTTPRoute
|
kind: HTTPRoute
|
||||||
metadata:
|
metadata:
|
||||||
name: jellyfin
|
|
||||||
namespace: jellyfin
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "1"
|
argocd.argoproj.io/sync-wave: "1"
|
||||||
|
name: jellyfin
|
||||||
|
namespace: jellyfin
|
||||||
spec:
|
spec:
|
||||||
parentRefs:
|
|
||||||
- name: traefik-gateway
|
|
||||||
namespace: traefik
|
|
||||||
kind: Gateway
|
|
||||||
sectionName: websecure
|
|
||||||
hostnames:
|
hostnames:
|
||||||
- jellyfin.whyredfire.dev
|
- jellyfin.whyredfire.dev
|
||||||
|
parentRefs:
|
||||||
|
- kind: Gateway
|
||||||
|
name: traefik-gateway
|
||||||
|
namespace: traefik
|
||||||
|
sectionName: websecure
|
||||||
rules:
|
rules:
|
||||||
- matches:
|
- backendRefs:
|
||||||
|
- name: jellyfin
|
||||||
|
port: 8096
|
||||||
|
matches:
|
||||||
- path:
|
- path:
|
||||||
type: PathPrefix
|
type: PathPrefix
|
||||||
value: /
|
value: /
|
||||||
backendRefs:
|
|
||||||
- name: jellyfin
|
|
||||||
port: 8096
|
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- httproute-local.yaml
|
||||||
|
- httproute.yaml
|
||||||
@@ -1,27 +1,27 @@
|
|||||||
apiVersion: gateway.networking.k8s.io/v1
|
apiVersion: gateway.networking.k8s.io/v1
|
||||||
kind: HTTPRoute
|
kind: HTTPRoute
|
||||||
metadata:
|
metadata:
|
||||||
name: seaweedfs-filer
|
|
||||||
namespace: seaweedfs
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "1"
|
argocd.argoproj.io/sync-wave: "1"
|
||||||
|
name: seaweedfs-filer
|
||||||
|
namespace: seaweedfs
|
||||||
spec:
|
spec:
|
||||||
|
hostnames:
|
||||||
|
- seaweedfs.whyredfire.dev
|
||||||
parentRefs:
|
parentRefs:
|
||||||
- group: gateway.networking.k8s.io
|
- group: gateway.networking.k8s.io
|
||||||
kind: Gateway
|
kind: Gateway
|
||||||
name: traefik-gateway
|
name: traefik-gateway
|
||||||
namespace: traefik
|
namespace: traefik
|
||||||
sectionName: websecure
|
sectionName: websecure
|
||||||
hostnames:
|
|
||||||
- seaweedfs.whyredfire.dev
|
|
||||||
rules:
|
rules:
|
||||||
- matches:
|
- backendRefs:
|
||||||
- path:
|
|
||||||
type: PathPrefix
|
|
||||||
value: /
|
|
||||||
backendRefs:
|
|
||||||
- group: ""
|
- group: ""
|
||||||
kind: Service
|
kind: Service
|
||||||
name: seaweedfs-all-in-one
|
name: seaweedfs-all-in-one
|
||||||
port: 8888
|
port: 8888
|
||||||
weight: 1
|
weight: 1
|
||||||
|
matches:
|
||||||
|
- path:
|
||||||
|
type: PathPrefix
|
||||||
|
value: /
|
||||||
|
|||||||
@@ -1,27 +1,27 @@
|
|||||||
apiVersion: gateway.networking.k8s.io/v1
|
apiVersion: gateway.networking.k8s.io/v1
|
||||||
kind: HTTPRoute
|
kind: HTTPRoute
|
||||||
metadata:
|
metadata:
|
||||||
name: seaweedfs-master
|
|
||||||
namespace: seaweedfs
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "1"
|
argocd.argoproj.io/sync-wave: "1"
|
||||||
|
name: seaweedfs-master
|
||||||
|
namespace: seaweedfs
|
||||||
spec:
|
spec:
|
||||||
|
hostnames:
|
||||||
|
- seaweedfs-master.whyredfire.dev
|
||||||
parentRefs:
|
parentRefs:
|
||||||
- group: gateway.networking.k8s.io
|
- group: gateway.networking.k8s.io
|
||||||
kind: Gateway
|
kind: Gateway
|
||||||
name: traefik-gateway
|
name: traefik-gateway
|
||||||
namespace: traefik
|
namespace: traefik
|
||||||
sectionName: websecure
|
sectionName: websecure
|
||||||
hostnames:
|
|
||||||
- seaweedfs-master.whyredfire.dev
|
|
||||||
rules:
|
rules:
|
||||||
- matches:
|
- backendRefs:
|
||||||
- path:
|
|
||||||
type: PathPrefix
|
|
||||||
value: /
|
|
||||||
backendRefs:
|
|
||||||
- group: ""
|
- group: ""
|
||||||
kind: Service
|
kind: Service
|
||||||
name: seaweedfs-all-in-one
|
name: seaweedfs-all-in-one
|
||||||
port: 9333
|
port: 9333
|
||||||
weight: 1
|
weight: 1
|
||||||
|
matches:
|
||||||
|
- path:
|
||||||
|
type: PathPrefix
|
||||||
|
value: /
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- httproute-filer.yaml
|
||||||
|
- httproute-master.yaml
|
||||||
@@ -1,24 +1,12 @@
|
|||||||
apiVersion: anubis.techaro.dev/v1alpha1
|
apiVersion: anubis.techaro.dev/v1alpha1
|
||||||
kind: AnubisProxy
|
kind: AnubisProxy
|
||||||
metadata:
|
metadata:
|
||||||
name: anubis
|
|
||||||
namespace: stirling-pdf
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "1"
|
argocd.argoproj.io/sync-wave: "1"
|
||||||
|
name: anubis
|
||||||
|
namespace: stirling-pdf
|
||||||
spec:
|
spec:
|
||||||
target:
|
|
||||||
service:
|
|
||||||
name: stirling-pdf
|
|
||||||
port: 8080
|
|
||||||
anubis:
|
anubis:
|
||||||
image:
|
|
||||||
tag: v1.26.2
|
|
||||||
keys:
|
|
||||||
existingSecret: anubis-key
|
|
||||||
persistence:
|
|
||||||
enabled: false
|
|
||||||
metrics:
|
|
||||||
enabled: false
|
|
||||||
envExtra:
|
envExtra:
|
||||||
- name: DIFFICULTY
|
- name: DIFFICULTY
|
||||||
value: "4"
|
value: "4"
|
||||||
@@ -42,6 +30,14 @@ spec:
|
|||||||
value: "true"
|
value: "true"
|
||||||
- name: SLOG_LEVEL
|
- name: SLOG_LEVEL
|
||||||
value: INFO
|
value: INFO
|
||||||
|
image:
|
||||||
|
tag: v1.26.2
|
||||||
|
keys:
|
||||||
|
existingSecret: anubis-key
|
||||||
|
metrics:
|
||||||
|
enabled: false
|
||||||
|
persistence:
|
||||||
|
enabled: false
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
memory: 128Mi
|
memory: 128Mi
|
||||||
@@ -50,3 +46,7 @@ spec:
|
|||||||
memory: 64Mi
|
memory: 64Mi
|
||||||
networkPolicy:
|
networkPolicy:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
target:
|
||||||
|
service:
|
||||||
|
name: stirling-pdf
|
||||||
|
port: 8080
|
||||||
|
|||||||
@@ -1,24 +1,23 @@
|
|||||||
apiVersion: gateway.networking.k8s.io/v1
|
apiVersion: gateway.networking.k8s.io/v1
|
||||||
kind: HTTPRoute
|
kind: HTTPRoute
|
||||||
metadata:
|
metadata:
|
||||||
name: stirling-pdf
|
|
||||||
namespace: stirling-pdf
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "2"
|
argocd.argoproj.io/sync-wave: "2"
|
||||||
|
name: stirling-pdf
|
||||||
|
namespace: stirling-pdf
|
||||||
spec:
|
spec:
|
||||||
parentRefs:
|
|
||||||
- name: traefik-gateway
|
|
||||||
namespace: traefik
|
|
||||||
kind: Gateway
|
|
||||||
sectionName: websecure
|
|
||||||
hostnames:
|
hostnames:
|
||||||
- pdf.whyredfire.dev
|
- pdf.whyredfire.dev
|
||||||
|
parentRefs:
|
||||||
|
- kind: Gateway
|
||||||
|
name: traefik-gateway
|
||||||
|
namespace: traefik
|
||||||
|
sectionName: websecure
|
||||||
rules:
|
rules:
|
||||||
- matches:
|
- backendRefs:
|
||||||
|
- name: anubis
|
||||||
|
port: 80
|
||||||
|
matches:
|
||||||
- path:
|
- path:
|
||||||
type: PathPrefix
|
type: PathPrefix
|
||||||
value: /
|
value: /
|
||||||
backendRefs:
|
|
||||||
- name: anubis
|
|
||||||
port: 80
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- anubis-key-sealedsecret.yaml
|
||||||
|
- anubis-proxy.yaml
|
||||||
|
- httproute.yaml
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: anubis-operator
|
|
||||||
namespace: argocd
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "1"
|
argocd.argoproj.io/sync-wave: "1"
|
||||||
|
name: anubis-operator
|
||||||
|
namespace: argocd
|
||||||
spec:
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: anubis-operator-system
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://github.com/eznix86/anubis-kubernetes-operator.git
|
|
||||||
targetRevision: v0.4.4
|
|
||||||
path: config/default
|
|
||||||
kustomize:
|
kustomize:
|
||||||
images:
|
images:
|
||||||
- public-registry.brunobernard.dev/techarohq/anubis-operator=ghcr.io/eznix86/anubis-kubernetes-operator:0.4.4
|
- public-registry.brunobernard.dev/techarohq/anubis-operator=ghcr.io/eznix86/anubis-kubernetes-operator:0.4.4
|
||||||
destination:
|
path: config/default
|
||||||
server: https://kubernetes.default.svc
|
repoURL: https://github.com/eznix86/anubis-kubernetes-operator.git
|
||||||
namespace: anubis-operator-system
|
targetRevision: v0.4.4
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: argocd-repos
|
|
||||||
namespace: argocd
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "1"
|
argocd.argoproj.io/sync-wave: "1"
|
||||||
|
name: argocd-repos
|
||||||
|
namespace: argocd
|
||||||
spec:
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: argocd
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
|
path: infra/argocd-repos
|
||||||
repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git
|
repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: infra/argocd-repos
|
|
||||||
destination:
|
|
||||||
server: https://kubernetes.default.svc
|
|
||||||
namespace: argocd
|
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: cert-manager
|
|
||||||
namespace: argocd
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "1"
|
argocd.argoproj.io/sync-wave: "1"
|
||||||
|
name: cert-manager
|
||||||
|
namespace: argocd
|
||||||
spec:
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: cert-manager
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
project: default
|
project: default
|
||||||
sources:
|
sources:
|
||||||
- repoURL: https://charts.jetstack.io
|
- chart: cert-manager
|
||||||
chart: cert-manager
|
|
||||||
targetRevision: v1.21.1
|
|
||||||
helm:
|
helm:
|
||||||
values: |
|
values: |
|
||||||
crds:
|
crds:
|
||||||
@@ -20,12 +21,11 @@ spec:
|
|||||||
kind: ControllerConfiguration
|
kind: ControllerConfiguration
|
||||||
featureGates:
|
featureGates:
|
||||||
ExperimentalGatewayAPISupport: true
|
ExperimentalGatewayAPISupport: true
|
||||||
- repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git
|
repoURL: https://charts.jetstack.io
|
||||||
|
targetRevision: v1.21.1
|
||||||
|
- path: infra/cert-manager
|
||||||
|
repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: infra/cert-manager
|
|
||||||
destination:
|
|
||||||
server: https://kubernetes.default.svc
|
|
||||||
namespace: cert-manager
|
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
|
|||||||
@@ -1,24 +1,24 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: cnpg
|
|
||||||
namespace: argocd
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "0"
|
argocd.argoproj.io/sync-wave: "0"
|
||||||
|
name: cnpg
|
||||||
|
namespace: argocd
|
||||||
spec:
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: cnpg-system
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://cloudnative-pg.github.io/charts
|
|
||||||
chart: cloudnative-pg
|
chart: cloudnative-pg
|
||||||
targetRevision: 0.29.0
|
|
||||||
helm:
|
helm:
|
||||||
values: |
|
values: |
|
||||||
replicaCount: 1
|
replicaCount: 1
|
||||||
config:
|
config:
|
||||||
clusterWide: true
|
clusterWide: true
|
||||||
destination:
|
repoURL: https://cloudnative-pg.github.io/charts
|
||||||
server: https://kubernetes.default.svc
|
targetRevision: 0.29.0
|
||||||
namespace: cnpg-system
|
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: gateway-api
|
|
||||||
namespace: argocd
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "0"
|
argocd.argoproj.io/sync-wave: "0"
|
||||||
|
name: gateway-api
|
||||||
|
namespace: argocd
|
||||||
spec:
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: default
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
|
path: config/crd
|
||||||
repoURL: https://github.com/kubernetes-sigs/gateway-api.git
|
repoURL: https://github.com/kubernetes-sigs/gateway-api.git
|
||||||
targetRevision: v1.6.1
|
targetRevision: v1.6.1
|
||||||
path: config/crd
|
|
||||||
destination:
|
|
||||||
server: https://kubernetes.default.svc
|
|
||||||
namespace: default
|
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- anubis-operator.yaml
|
||||||
|
- argocd-repos.yaml
|
||||||
|
- cert-manager.yaml
|
||||||
|
- cnpg.yaml
|
||||||
|
- gateway-api.yaml
|
||||||
|
- sealed-secrets.yaml
|
||||||
|
- traefik.yaml
|
||||||
@@ -1,19 +1,19 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: sealed-secrets
|
|
||||||
namespace: argocd
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "0"
|
argocd.argoproj.io/sync-wave: "0"
|
||||||
|
name: sealed-secrets
|
||||||
|
namespace: argocd
|
||||||
spec:
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: sealed-secrets
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
repoURL: https://bitnami.github.io/sealed-secrets
|
|
||||||
chart: sealed-secrets
|
chart: sealed-secrets
|
||||||
|
repoURL: https://bitnami.github.io/sealed-secrets
|
||||||
targetRevision: 2.19.1
|
targetRevision: 2.19.1
|
||||||
destination:
|
|
||||||
server: https://kubernetes.default.svc
|
|
||||||
namespace: sealed-secrets
|
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: traefik
|
|
||||||
namespace: argocd
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "2"
|
argocd.argoproj.io/sync-wave: "2"
|
||||||
|
name: traefik
|
||||||
|
namespace: argocd
|
||||||
spec:
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: traefik
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
project: default
|
project: default
|
||||||
sources:
|
sources:
|
||||||
- repoURL: https://traefik.github.io/charts
|
- chart: traefik
|
||||||
chart: traefik
|
|
||||||
targetRevision: 41.2.0
|
|
||||||
helm:
|
helm:
|
||||||
values: |
|
values: |
|
||||||
providers:
|
providers:
|
||||||
@@ -39,12 +40,11 @@ spec:
|
|||||||
- kind: Secret
|
- kind: Secret
|
||||||
name: wildcard-whyredfire-dev
|
name: wildcard-whyredfire-dev
|
||||||
group: ""
|
group: ""
|
||||||
- repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git
|
repoURL: https://traefik.github.io/charts
|
||||||
|
targetRevision: 41.2.0
|
||||||
|
- path: infra/traefik
|
||||||
|
repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: infra/traefik
|
|
||||||
destination:
|
|
||||||
server: https://kubernetes.default.svc
|
|
||||||
namespace: traefik
|
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
|
|||||||
@@ -1,20 +1,5 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
# add-ons
|
- add-ons
|
||||||
- add-ons/gateway-api.yaml
|
- services
|
||||||
- add-ons/traefik.yaml
|
|
||||||
- add-ons/cert-manager.yaml
|
|
||||||
- add-ons/anubis-operator.yaml
|
|
||||||
- add-ons/sealed-secrets.yaml
|
|
||||||
- add-ons/cnpg.yaml
|
|
||||||
- add-ons/argocd-repos.yaml
|
|
||||||
# services
|
|
||||||
- services/autoregexbot.yaml
|
|
||||||
- services/betterslcm.yaml
|
|
||||||
- services/jellyfin.yaml
|
|
||||||
- services/legislative-summarization.yaml
|
|
||||||
- services/scriptscribe.yaml
|
|
||||||
- services/seaweedfs.yaml
|
|
||||||
- services/qbit.yaml
|
|
||||||
- services/stirling-pdf.yaml
|
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: telegram-autoregexbot
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "3"
|
argocd.argoproj.io/sync-wave: "3"
|
||||||
|
name: telegram-autoregexbot
|
||||||
namespace: argocd
|
namespace: argocd
|
||||||
spec:
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: telegram-bot
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
|
path: k8s
|
||||||
repoURL: https://github.com/santarl/telegram-autoregexbot
|
repoURL: https://github.com/santarl/telegram-autoregexbot
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: k8s
|
|
||||||
destination:
|
|
||||||
server: https://kubernetes.default.svc
|
|
||||||
namespace: telegram-bot
|
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: betterslcm
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "3"
|
argocd.argoproj.io/sync-wave: "3"
|
||||||
|
name: betterslcm
|
||||||
namespace: argocd
|
namespace: argocd
|
||||||
spec:
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: betterslcm
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
|
path: k8s
|
||||||
repoURL: https://github.com/DK10WS/SLCM_APP.git
|
repoURL: https://github.com/DK10WS/SLCM_APP.git
|
||||||
targetRevision: web
|
targetRevision: web
|
||||||
path: k8s
|
|
||||||
destination:
|
|
||||||
server: https://kubernetes.default.svc
|
|
||||||
namespace: betterslcm
|
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: jellyfin
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "3"
|
argocd.argoproj.io/sync-wave: "3"
|
||||||
|
name: jellyfin
|
||||||
namespace: argocd
|
namespace: argocd
|
||||||
spec:
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: jellyfin
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
project: default
|
project: default
|
||||||
sources:
|
sources:
|
||||||
- repoURL: https://jellyfin.github.io/jellyfin-helm
|
- chart: jellyfin
|
||||||
chart: jellyfin
|
|
||||||
targetRevision: "2.7.0"
|
|
||||||
helm:
|
helm:
|
||||||
values: |
|
values: |
|
||||||
service:
|
service:
|
||||||
@@ -26,12 +27,11 @@ spec:
|
|||||||
enabled: true
|
enabled: true
|
||||||
type: hostPath
|
type: hostPath
|
||||||
hostPath: /srv/media
|
hostPath: /srv/media
|
||||||
- repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git
|
repoURL: https://jellyfin.github.io/jellyfin-helm
|
||||||
|
targetRevision: 2.7.0
|
||||||
|
- path: apps/jellyfin
|
||||||
|
repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: apps/jellyfin
|
|
||||||
destination:
|
|
||||||
server: https://kubernetes.default.svc
|
|
||||||
namespace: jellyfin
|
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- autoregexbot.yaml
|
||||||
|
- betterslcm.yaml
|
||||||
|
- jellyfin.yaml
|
||||||
|
- legislative-summarization.yaml
|
||||||
|
- qbit.yaml
|
||||||
|
- scriptscribe.yaml
|
||||||
|
- seaweedfs.yaml
|
||||||
|
- stirling-pdf.yaml
|
||||||
@@ -1,19 +1,19 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: legislative-summarization
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "3"
|
argocd.argoproj.io/sync-wave: "3"
|
||||||
|
name: legislative-summarization
|
||||||
namespace: argocd
|
namespace: argocd
|
||||||
spec:
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: legislative-summarization
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
|
path: k8s
|
||||||
repoURL: https://github.com/whyredfire/legislative-summarization
|
repoURL: https://github.com/whyredfire/legislative-summarization
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: k8s
|
|
||||||
destination:
|
|
||||||
server: https://kubernetes.default.svc
|
|
||||||
namespace: legislative-summarization
|
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: qbit
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "3"
|
argocd.argoproj.io/sync-wave: "3"
|
||||||
|
name: qbit
|
||||||
namespace: argocd
|
namespace: argocd
|
||||||
spec:
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: qbit
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
|
path: qbit
|
||||||
repoURL: https://gitea.whyredfire.dev/whyredfire/gitops-private.git
|
repoURL: https://gitea.whyredfire.dev/whyredfire/gitops-private.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: qbit
|
|
||||||
destination:
|
|
||||||
server: https://kubernetes.default.svc
|
|
||||||
namespace: qbit
|
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
|
|||||||
@@ -1,19 +1,19 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: scriptscribe
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "3"
|
argocd.argoproj.io/sync-wave: "3"
|
||||||
|
name: scriptscribe
|
||||||
namespace: argocd
|
namespace: argocd
|
||||||
spec:
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: scriptscribe
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
|
path: k8s
|
||||||
repoURL: https://github.com/whyredfire/scriptscribe
|
repoURL: https://github.com/whyredfire/scriptscribe
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: k8s
|
|
||||||
destination:
|
|
||||||
server: https://kubernetes.default.svc
|
|
||||||
namespace: scriptscribe
|
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: seaweedfs
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "3"
|
argocd.argoproj.io/sync-wave: "3"
|
||||||
|
name: seaweedfs
|
||||||
namespace: argocd
|
namespace: argocd
|
||||||
spec:
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: seaweedfs
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
project: default
|
project: default
|
||||||
sources:
|
sources:
|
||||||
- repoURL: https://seaweedfs.github.io/seaweedfs/helm
|
- chart: seaweedfs
|
||||||
chart: seaweedfs
|
|
||||||
targetRevision: 4.33.0
|
|
||||||
helm:
|
helm:
|
||||||
values: |
|
values: |
|
||||||
allInOne:
|
allInOne:
|
||||||
@@ -21,12 +22,11 @@ spec:
|
|||||||
enabled: false
|
enabled: false
|
||||||
filer:
|
filer:
|
||||||
enabled: false
|
enabled: false
|
||||||
- repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git
|
repoURL: https://seaweedfs.github.io/seaweedfs/helm
|
||||||
|
targetRevision: 4.33.0
|
||||||
|
- path: apps/seaweedfs
|
||||||
|
repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: apps/seaweedfs
|
|
||||||
destination:
|
|
||||||
server: https://kubernetes.default.svc
|
|
||||||
namespace: seaweedfs
|
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: stirling-pdf
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "3"
|
argocd.argoproj.io/sync-wave: "3"
|
||||||
|
name: stirling-pdf
|
||||||
namespace: argocd
|
namespace: argocd
|
||||||
spec:
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: stirling-pdf
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
project: default
|
project: default
|
||||||
sources:
|
sources:
|
||||||
- repoURL: https://docs.stirlingpdf.com/Stirling-PDF-chart
|
- chart: stirling-pdf-chart
|
||||||
chart: stirling-pdf-chart
|
|
||||||
targetRevision: "3.1.0"
|
|
||||||
helm:
|
helm:
|
||||||
values: |
|
values: |
|
||||||
fullnameOverride: stirling-pdf
|
fullnameOverride: stirling-pdf
|
||||||
@@ -26,12 +27,11 @@ spec:
|
|||||||
initialDelaySeconds: 90
|
initialDelaySeconds: 90
|
||||||
readiness:
|
readiness:
|
||||||
initialDelaySeconds: 60
|
initialDelaySeconds: 60
|
||||||
- repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git
|
repoURL: https://docs.stirlingpdf.com/Stirling-PDF-chart
|
||||||
|
targetRevision: 3.1.0
|
||||||
|
- path: apps/stirling-pdf
|
||||||
|
repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: apps/stirling-pdf
|
|
||||||
destination:
|
|
||||||
server: https://kubernetes.default.svc
|
|
||||||
namespace: stirling-pdf
|
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
|
|||||||
@@ -4,14 +4,14 @@ metadata:
|
|||||||
name: root-app
|
name: root-app
|
||||||
namespace: argocd
|
namespace: argocd
|
||||||
spec:
|
spec:
|
||||||
|
destination:
|
||||||
|
namespace: argocd
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
|
path: argocd-apps
|
||||||
repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git
|
repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git
|
||||||
targetRevision: main
|
targetRevision: main
|
||||||
path: argocd-apps
|
|
||||||
destination:
|
|
||||||
server: https://kubernetes.default.svc
|
|
||||||
namespace: argocd
|
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
prune: true
|
prune: true
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- repo-sealed-secret.yaml
|
||||||
@@ -1,18 +1,18 @@
|
|||||||
apiVersion: cert-manager.io/v1
|
apiVersion: cert-manager.io/v1
|
||||||
kind: ClusterIssuer
|
kind: ClusterIssuer
|
||||||
metadata:
|
metadata:
|
||||||
name: letsencrypt-prod
|
|
||||||
annotations:
|
annotations:
|
||||||
argocd.argoproj.io/sync-wave: "1"
|
argocd.argoproj.io/sync-wave: "1"
|
||||||
|
name: letsencrypt-prod
|
||||||
spec:
|
spec:
|
||||||
acme:
|
acme:
|
||||||
server: https://acme-v02.api.letsencrypt.org/directory
|
|
||||||
email: [email protected]
|
email: [email protected]
|
||||||
privateKeySecretRef:
|
privateKeySecretRef:
|
||||||
name: letsencrypt-prod
|
name: letsencrypt-prod
|
||||||
|
server: https://acme-v02.api.letsencrypt.org/directory
|
||||||
solvers:
|
solvers:
|
||||||
- dns01:
|
- dns01:
|
||||||
cloudflare:
|
cloudflare:
|
||||||
apiTokenSecretRef:
|
apiTokenSecretRef:
|
||||||
name: cloudflare-api-token
|
|
||||||
key: api-token
|
key: api-token
|
||||||
|
name: cloudflare-api-token
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- cloudflare-api-token-sealed-secret.yaml
|
||||||
|
- cluster-issuer.yaml
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
resources:
|
||||||
|
- wildcard-whyredfire-dev.yaml
|
||||||
@@ -4,11 +4,11 @@ metadata:
|
|||||||
name: wildcard-whyredfire-dev
|
name: wildcard-whyredfire-dev
|
||||||
namespace: traefik
|
namespace: traefik
|
||||||
spec:
|
spec:
|
||||||
secretName: wildcard-whyredfire-dev
|
dnsNames:
|
||||||
|
- '*.whyredfire.dev'
|
||||||
|
issuerRef:
|
||||||
|
kind: ClusterIssuer
|
||||||
|
name: letsencrypt-prod
|
||||||
privateKey:
|
privateKey:
|
||||||
rotationPolicy: Always
|
rotationPolicy: Always
|
||||||
issuerRef:
|
secretName: wildcard-whyredfire-dev
|
||||||
name: letsencrypt-prod
|
|
||||||
kind: ClusterIssuer
|
|
||||||
dnsNames:
|
|
||||||
- "*.whyredfire.dev"
|
|
||||||
|
|||||||
Reference in New Issue
Block a user