Compare commits

..
27 changed files with 67 additions and 466 deletions
@@ -2,8 +2,6 @@ apiVersion: cert-manager.io/v1
kind: ClusterIssuer kind: ClusterIssuer
metadata: metadata:
name: letsencrypt-prod name: letsencrypt-prod
annotations:
argocd.argoproj.io/sync-wave: "1"
spec: spec:
acme: acme:
server: https://acme-v02.api.letsencrypt.org/directory server: https://acme-v02.api.letsencrypt.org/directory
@@ -0,0 +1,14 @@
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: wildcard-whyredfire-tech
namespace: traefik
spec:
secretName: wildcard-whyredfire-tech
privateKey:
rotationPolicy: Always
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
dnsNames:
- "*.whyredfire.tech"
+3 -4
View File
@@ -3,8 +3,6 @@ kind: Application
metadata: metadata:
name: cert-manager name: cert-manager
namespace: argocd namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "1"
spec: spec:
project: default project: default
sources: sources:
@@ -20,12 +18,13 @@ spec:
kind: ControllerConfiguration kind: ControllerConfiguration
featureGates: featureGates:
ExperimentalGatewayAPISupport: true ExperimentalGatewayAPISupport: true
- repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git - repoURL: https://gitea.whyredfire.tech/whyredfire/gitops.git
targetRevision: main targetRevision: main
path: extras/add-ons/cert-manager path: add-ons/cert-manager
destination: destination:
server: https://kubernetes.default.svc server: https://kubernetes.default.svc
namespace: cert-manager namespace: cert-manager
syncPolicy: syncPolicy:
automated: automated:
prune: true prune: true
-40
View File
@@ -1,40 +0,0 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: cnpg
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "0"
spec:
project: default
sources:
- repoURL: https://cloudnative-pg.github.io/charts
chart: cloudnative-pg
targetRevision: 0.28.2
helm:
values: |
replicaCount: 1
config:
clusterWide: true
- repoURL: https://cloudnative-pg.github.io/charts
chart: cluster
targetRevision: 0.6.1
helm:
values: |
cluster:
instances: 1
enablePDB: false
storage:
size: 500Mi
backups:
enabled: false
destination:
server: https://kubernetes.default.svc
namespace: default
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- ServerSideApply=true
-23
View File
@@ -1,23 +0,0 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: sealed-secrets
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "0"
spec:
project: default
source:
repoURL: https://bitnami-labs.github.io/sealed-secrets
chart: sealed-secrets
targetRevision: 2.18.5
destination:
server: https://kubernetes.default.svc
namespace: sealed-secrets
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- ServerSideApply=true
+42 -36
View File
@@ -3,44 +3,50 @@ kind: Application
metadata: metadata:
name: traefik name: traefik
namespace: argocd namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "2"
spec: spec:
project: default project: default
sources: source:
- repoURL: https://traefik.github.io/charts repoURL: https://traefik.github.io/charts
chart: traefik chart: traefik
targetRevision: v39.0.2 targetRevision: v39.0.2
helm: helm:
values: | values: |
providers: providers:
kubernetesGateway: kubernetesGateway:
enabled: true enabled: true
kubernetesIngress: kubernetesIngress:
enabled: false enabled: false
service: service:
type: ClusterIP type: ClusterIP
externalIPs: externalIPs:
- 192.168.2.5 - 192.168.2.220
gateway: gateway:
listeners: listeners:
web: web:
namespacePolicy: namespacePolicy:
from: All from: All
websecure: websecure-dev:
port: 8443 port: 8443
protocol: HTTPS protocol: HTTPS
mode: Terminate mode: Terminate
hostname: "*.whyredfire.dev" hostname: "*.whyredfire.dev"
namespacePolicy: namespacePolicy:
from: All from: All
certificateRefs: certificateRefs:
- kind: Secret - kind: Secret
name: wildcard-whyredfire-dev name: wildcard-whyredfire-dev
group: "" group: ""
- repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git websecure-tech:
targetRevision: main port: 8443
path: extras/add-ons/traefik protocol: HTTPS
mode: Terminate
hostname: "*.whyredfire.tech"
namespacePolicy:
from: All
certificateRefs:
- kind: Secret
name: wildcard-whyredfire-tech
group: ""
destination: destination:
server: https://kubernetes.default.svc server: https://kubernetes.default.svc
namespace: traefik namespace: traefik
+1 -8
View File
@@ -1,18 +1,11 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
# add-ons # add-ons
- add-ons/traefik.yaml - add-ons/traefik.yaml
- add-ons/cert-manager.yaml - add-ons/cert-manager.yaml
- add-ons/sealed-secrets.yaml
- add-ons/cnpg.yaml
# services # services
- services/app-argocd-repos.yaml
- services/app-autoregexbot.yaml - services/app-autoregexbot.yaml
- services/app-betterslcm.yaml - services/app-betterslcm.yaml
- services/app-jellyfin.yaml
- services/app-legislative-summarization.yaml
- services/app-scriptscribe.yaml - services/app-scriptscribe.yaml
- services/app-seaweedfs.yaml
- services/app-qbit.yaml
- services/app-stirling-pdf.yaml
@@ -1,22 +0,0 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: argocd-repos
namespace: argocd
annotations:
argocd.argoproj.io/sync-wave: "1"
spec:
project: default
source:
repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git
targetRevision: main
path: extras/add-ons/argocd-repos
destination:
server: https://kubernetes.default.svc
namespace: argocd
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
@@ -2,8 +2,6 @@ apiVersion: argoproj.io/v1alpha1
kind: Application kind: Application
metadata: metadata:
name: telegram-autoregexbot name: telegram-autoregexbot
annotations:
argocd.argoproj.io/sync-wave: "3"
namespace: argocd namespace: argocd
spec: spec:
project: default project: default
+2 -3
View File
@@ -2,13 +2,12 @@ apiVersion: argoproj.io/v1alpha1
kind: Application kind: Application
metadata: metadata:
name: betterslcm name: betterslcm
annotations:
argocd.argoproj.io/sync-wave: "3"
namespace: argocd namespace: argocd
spec: spec:
project: default project: default
source: source:
repoURL: https://github.com/DK10WS/SLCM_APP.git # repoURL: https://github.com/DK10WS/SLCM_APP.git
repoURL: https://gitea.whyredfire.tech/whyredfire/slcm-switch.git
targetRevision: web targetRevision: web
path: k8s path: k8s
destination: destination:
-40
View File
@@ -1,40 +0,0 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: jellyfin
annotations:
argocd.argoproj.io/sync-wave: "3"
namespace: argocd
spec:
project: default
sources:
- repoURL: https://jellyfin.github.io/jellyfin-helm
chart: jellyfin
targetRevision: "2.7.0"
helm:
values: |
service:
type: ClusterIP
port: 8096
ingress:
enabled: false
persistence:
config:
enabled: true
size: 2Gi
media:
enabled: true
type: hostPath
hostPath: /srv/media
- repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git
targetRevision: main
path: extras/services/jellyfin
destination:
server: https://kubernetes.default.svc
namespace: jellyfin
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
@@ -1,22 +0,0 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: legislative-summarization
annotations:
argocd.argoproj.io/sync-wave: "3"
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/whyredfire/legislative-summarization
targetRevision: main
path: k8s
destination:
server: https://kubernetes.default.svc
namespace: legislative-summarization
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
-22
View File
@@ -1,22 +0,0 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: qbit
annotations:
argocd.argoproj.io/sync-wave: "3"
namespace: argocd
spec:
project: default
source:
repoURL: https://gitea.whyredfire.dev/whyredfire/gitops-private.git
targetRevision: main
path: qbit
destination:
server: https://kubernetes.default.svc
namespace: qbit
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
@@ -2,8 +2,6 @@ apiVersion: argoproj.io/v1alpha1
kind: Application kind: Application
metadata: metadata:
name: scriptscribe name: scriptscribe
annotations:
argocd.argoproj.io/sync-wave: "3"
namespace: argocd namespace: argocd
spec: spec:
project: default project: default
-36
View File
@@ -1,36 +0,0 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: seaweedfs
annotations:
argocd.argoproj.io/sync-wave: "3"
namespace: argocd
spec:
project: default
sources:
- repoURL: https://seaweedfs.github.io/seaweedfs/helm
chart: seaweedfs
targetRevision: 4.33.0
helm:
values: |
allInOne:
enabled: true
master:
enabled: false
volume:
enabled: false
filer:
enabled: false
- repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git
targetRevision: main
path: extras/services/seaweedfs
destination:
server: https://kubernetes.default.svc
namespace: seaweedfs
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- ServerSideApply=true
@@ -1,40 +0,0 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: stirling-pdf
annotations:
argocd.argoproj.io/sync-wave: "3"
namespace: argocd
spec:
project: default
sources:
- repoURL: https://docs.stirlingpdf.com/Stirling-PDF-chart
chart: stirling-pdf-chart
targetRevision: "3.1.0"
helm:
values: |
fullnameOverride: stirling-pdf
persistence:
enabled: true
size: 512Mi
deployment:
extraVolumeMounts:
- name: storage-volume
mountPath: /configs
probes:
liveness:
initialDelaySeconds: 90
readiness:
initialDelaySeconds: 60
- repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git
targetRevision: main
path: extras/services/stirling-pdf
destination:
server: https://kubernetes.default.svc
namespace: stirling-pdf
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
@@ -1,18 +0,0 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-cm
data:
resource.customizations.health.argoproj.io_Application: |
hs = {}
hs.status = "Progressing"
hs.message = ""
if obj.status ~= nil then
if obj.status.health ~= nil then
hs.status = obj.status.health.status
if obj.status.health.message ~= nil then
hs.message = obj.status.health.message
end
end
end
return hs
@@ -1,5 +1,6 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- namespace.yaml - namespace.yaml
- root-app.yaml - root-app.yaml
+1 -1
View File
@@ -6,7 +6,7 @@ metadata:
spec: spec:
project: default project: default
source: source:
repoURL: https://gitea.whyredfire.dev/whyredfire/gitops.git repoURL: https://gitea.whyredfire.tech/whyredfire/gitops.git
targetRevision: main targetRevision: main
path: applications path: applications
destination: destination:
+3 -4
View File
@@ -1,15 +1,14 @@
apiVersion: kustomize.config.k8s.io/v1beta1 apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
namespace: argocd namespace: argocd
resources: resources:
- https://raw.githubusercontent.com/argoproj/argo-cd/v3.2.6/manifests/install.yaml - https://raw.githubusercontent.com/argoproj/argo-cd/v3.2.6/manifests/install.yaml
- argocd-root-app - argocd-root-app
patches: patches:
- target: - target:
kind: Service kind: Service
name: argocd-server name: argocd-server
path: argocd-server-nodeport-patch.yaml path: argocd-server-nodeport-patch.yaml
- target:
kind: ConfigMap
name: argocd-cm
path: argocd-cm-application-health-patch.yaml
@@ -1,17 +0,0 @@
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
name: repo-gitops-private
namespace: argocd
spec:
encryptedData:
password: AgCYFWUZmqWTYbutOvQr0GJ87zvVwW/GYanXC4Qdlqo1nkYC0u/ve88UonB0UklJPfMq59/jefbrl80fg4JUMLJMBnNUiIfUIJ2gN07n5P1UqQGTFwo8iHFD4XwKlCfSD75wQXBhccWO1zS1lVZEIzbUdom7rI45bG2Q+u5NQBC/bs3NxrrzYqrHFsbE2jEeu0hG33JOoikvLOwih96Xxgadrvbdw/WpY2bbqM/BSA35u8fzeDF4ZZ98x7LPzflP04DxKJZLh5U3H1//RjWaKeNkDwp/dtNm63NPJrh7+rD+EOHu4undBwNHIW4vrv4bRQeP4xBERNFquiwwmQsi2Wwd4kpD+kgbGhezYMDgk8FOBwS04DJJJpvYdJdGTZoCwML1C+iwMoKhwk7WFvg4vkW3DBpRh+w9Otdq4odsklqgwp1o8OXL1hcd/iQqp8TiuwUFlmJhTs841xvqRMuCBQ0SnAwQ/u9kEsY6C6r/EvdaOciRoEWa0pMk3zvkaCrSkoAElYtXh30MhGfd1rbWT09Xvh/ACRjarBvLHUa7fPSc9Po9t+6eRuFR1cqT2jwUtHMuAqFA4XDC+oHkLsz8WD8qm4K9dwfOXME1rT2OoByaSdlSDsV6uKWRlMxxrzBGzihUBp1TSI8X+ux90hp5vQ30BKqGCC0Y3aRHprndDcHvdP4ASJ6++uu3ZkD6cY/he87w21ETl9+zxo8=
type: AgBWyIT44g9RaY/2dyznsXqQ3lVS0q/zJ5MeQhqkREsCn37U8ZxUrVqrmYq+RJU+cPVDWSl2tnmnfjvzV6+SEroVPAaTduRSFYxP6X4xsFuarJ21GSOAvt4Zc1ODZXYxCKfEAB+K7djc+g4+WOp/RihxKue9sevsM2krxnBXouNn7gXOog2Vd7mHbenuuGNVzV6ROJU7tw3uzZ/KETqr+5Jr1bKf64URkcN1njxb9lJHmK+VJbWPLcIbaGCfel07QqX0+EQXjIMwvpHoiWF25dJfPtbADlF/UIjWRXRRh5pCoppXpte39S4nrkkyOKCe2l7IctYF6+pvg5xNOmPeYnqIxpgZwWlWg2TcI5pn4aTxyXA+COJs5VQYgGDxPyNmm2lqh77hzHFceTxlFjtS5u5UQBzjagClXg2lYi2YRcnMTLUHDJyisT9Gr7bpgRK1BU19yxMg5f+vhzL5GmPMtOE6r9dZXwbi5660Okrn7x1MEgHb7poiXbG920yEC3mqVB6+1HLzoY5603b44VafDCTh2AtslSEW8n4Dt1gBm8DAOcDvq1e3NMn8Aq7cyGF5L7x0WwXLjgjr26nf6XiyZ9NAOD2upyJDCZvvVqcFypqOFsFOyhZXU86vuRW35tNqq6N3ppL2OFmm84ies04InHGTJHS3ps8KCyXWow1PgGhn/spB73JSjW4nsUztQPThOQ2c2JY=
url: AgDV+GO2ccs/uj87TNXbhSA18Y8amZiqmasZcijd/Zpjv8LPw94f9PORC1v9DhautblXF+Y39MnBjQm3pYLEbIU7FBDpx/Kkk34+F/tTfJqmQOcvGjEZLs73I7kvvy9Uy2Wme/uJt4PpR3UyJEAwJKNudC2NAJz2gfS7lsk+6AUpc+Z6MBoETdUQuaYlk/cxliWnPbJx8EYOS0TEaLezZ27w1OeN2kYEtnZ+qRd/+6g68MpM6UeoL53kOwNOcXN67+IdPE17zD05I0SPIKJy760Ukw/S1sphUpfQgOueHpmgpQanzJWZDCyudLpgnWS/cVWmZY0tDcgmiWCVJwYVFML8Qse3oXWRixIIunhMSS8jFk8Sa/v0agY8SOeIEWIx7n6G6jGkBLK5QZ8Y689UqsfsuKy3aUxno3gqzz4WibjdwAJfNsWCb3P6ZH2AfeTw7gz9HD/AiMRGuSTlzZpGS4acyltwbkKKz1WwLZF/qXtL0hi7QrYIPK82hKF7s458s0KQG2lE+bWOUG0WGjMWys6FwEbe5p3OTT2ea45+OyL0BlFQFkXHeIlxpq86Iz2KVxy4age5SghpSBn3+S3NM4voo9QDIeLXF++EOLCQXRXHgp4vOnb/nAVkbfQ6cvs2HBVg4lSYaNlBlznkPORiUNvXuu2JKHeKzXEJWhwIvmXrnac629MEaCCONEiBaTAy3B08WjSzvWUkxXYuBrRvrcm/JOP8K2yNgtJTRGGbH9SbMTJ8RoqgMC+GjokIFvlButxh0MeXlQLk0huV
username: AgBB0XO+j5xoMAgvbIKEf0/ghe9rPwoTnzZvm4lbakuCc4BEKl1Zm5bkNQilEBpxl/TsfnxdhhGnNvF9DXbIJjoEfEU8wzX5LpBMXt5qWC1Oquul4qvEHw6kMCu3oJ7hQ54yBVIhM5W9n1c6UWhJ6ttwZJ/ymqGLFWh1r/3KhoiInfU2EkPJ7bte085rUuyT524mwH9pfGEwte6VjuHPXBQt22i4fP+BBT3pV443PISshGfQC28bpt8vMi83kE/ICkwg21AQUImvfcHXojUJE5dks4mbrA49532R4uDVseVxCrW5fCtevQmgHbkyOke3FQG1AspXx7gdLldKVeW7QBgDP6O9DuEZgNzrxY6T4jf2dNUi1y5W00A4hJVMvIyBy4wENGIj1JJto6D1pRbYPzugKzUhb529UHS6Oxy3H2GqoE5L+mTbrQ2Nm8OhLeaSXUqQtJreZg9GYDZ3sjTe5tlqmcRisM43D5Aw/vV9wu40pRB0OTKM6nIHw1emg/Bq7ZAlZ9S8OpJYitO4SU9J1sOjnI1K3O1QLWB3buGoMnH/1k+Tt7rvYajWyqBM4ODV9O3yN1G9zEEXxzK7sz84JPGAevNJo7fiu8YdaMXhxVywhN43q6PpPQqTdqwQ0muJ5FqJbAzmOiDSQtF18OfpORrKJXVOwD/iFUS4V/6WKqn9HDAc1Dff1CgqJ8IOqxO43Jj4gpvkH2Owzdyf
template:
metadata:
labels:
argocd.argoproj.io/secret-type: repository
name: repo-gitops-private
namespace: argocd
@@ -1,23 +0,0 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: jellyfin-local
namespace: jellyfin
annotations:
argocd.argoproj.io/sync-wave: "1"
spec:
parentRefs:
- name: traefik-gateway
namespace: traefik
kind: Gateway
sectionName: websecure
hostnames:
- jellyfin-local.whyredfire.dev
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- name: jellyfin
port: 8096
-23
View File
@@ -1,23 +0,0 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: jellyfin
namespace: jellyfin
annotations:
argocd.argoproj.io/sync-wave: "1"
spec:
parentRefs:
- name: traefik-gateway
namespace: traefik
kind: Gateway
sectionName: websecure
hostnames:
- jellyfin.whyredfire.dev
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- name: jellyfin
port: 8096
@@ -1,27 +0,0 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: seaweedfs-filer
namespace: seaweedfs
annotations:
argocd.argoproj.io/sync-wave: "1"
spec:
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: traefik-gateway
namespace: traefik
sectionName: websecure
hostnames:
- seaweedfs.whyredfire.dev
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- group: ""
kind: Service
name: seaweedfs-all-in-one
port: 8888
weight: 1
@@ -1,27 +0,0 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: seaweedfs-master
namespace: seaweedfs
annotations:
argocd.argoproj.io/sync-wave: "1"
spec:
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: traefik-gateway
namespace: traefik
sectionName: websecure
hostnames:
- seaweedfs-master.whyredfire.dev
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- group: ""
kind: Service
name: seaweedfs-all-in-one
port: 9333
weight: 1
@@ -1,24 +0,0 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: stirling-pdf
namespace: stirling-pdf
annotations:
argocd.argoproj.io/sync-wave: "1"
spec:
parentRefs:
- name: traefik-gateway
namespace: traefik
kind: Gateway
sectionName: websecure
hostnames:
- pdf.whyredfire.dev
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- name: stirling-pdf
port: 8080