Split manifests into infra/ and applications/
This commit is contained in:
28
infra/argocd/applications/affine-application.yaml
Normal file
28
infra/argocd/applications/affine-application.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: affine
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: affine
|
||||
targetRevision: main
|
||||
directory:
|
||||
recurse: true
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: affine
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- PruneLast=true
|
||||
ignoreDifferences:
|
||||
- group: ""
|
||||
kind: PersistentVolumeClaim
|
||||
jsonPointers:
|
||||
- /spec/volumeName
|
||||
23
infra/argocd/applications/authentik-application.yaml
Normal file
23
infra/argocd/applications/authentik-application.yaml
Normal file
@@ -0,0 +1,23 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: authentik
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/authentik
|
||||
targetRevision: main
|
||||
directory:
|
||||
recurse: true
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: authentik
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- ServerSideApply=true
|
||||
21
infra/argocd/applications/bentopdf-application.yaml
Normal file
21
infra/argocd/applications/bentopdf-application.yaml
Normal file
@@ -0,0 +1,21 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: bentopdf
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/bentopdf
|
||||
targetRevision: main
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: bentopdf
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- PruneLast=true
|
||||
- CreateNamespace=true
|
||||
20
infra/argocd/applications/databasus-application.yaml
Normal file
20
infra/argocd/applications/databasus-application.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: databasus
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/databasus
|
||||
targetRevision: HEAD
|
||||
directory:
|
||||
recurse: true
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: databasus
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
20
infra/argocd/applications/ddns-application.yaml
Normal file
20
infra/argocd/applications/ddns-application.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: ddns
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/azure-ddns-python
|
||||
targetRevision: HEAD
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: azure-ddns
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
23
infra/argocd/applications/excalidraw-application.yaml
Normal file
23
infra/argocd/applications/excalidraw-application.yaml
Normal file
@@ -0,0 +1,23 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: excalidraw
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/excalidraw
|
||||
targetRevision: main
|
||||
directory:
|
||||
recurse: true
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: excalidraw
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- PruneLast=true
|
||||
29
infra/argocd/applications/gitea-application.yaml
Normal file
29
infra/argocd/applications/gitea-application.yaml
Normal file
@@ -0,0 +1,29 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: gitea
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/gitea
|
||||
targetRevision: main
|
||||
directory:
|
||||
recurse: true
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: gitea
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- Replace=true
|
||||
- CreateNamespace=true
|
||||
- PruneLast=true
|
||||
ignoreDifferences:
|
||||
- group: ""
|
||||
kind: PersistentVolumeClaim
|
||||
jsonPointers:
|
||||
- /spec/volumeName
|
||||
28
infra/argocd/applications/gotify-application.yaml
Normal file
28
infra/argocd/applications/gotify-application.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: gotify
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/gotify
|
||||
targetRevision: main
|
||||
directory:
|
||||
recurse: true
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: gotify
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- PruneLast=true
|
||||
ignoreDifferences:
|
||||
- group: ""
|
||||
kind: PersistentVolumeClaim
|
||||
jsonPointers:
|
||||
- /spec/volumeName
|
||||
24
infra/argocd/applications/immich-application.yaml
Normal file
24
infra/argocd/applications/immich-application.yaml
Normal file
@@ -0,0 +1,24 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: immich
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/immich
|
||||
targetRevision: HEAD
|
||||
directory:
|
||||
recurse: true
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: immich
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- ServerSideApply=true
|
||||
- PrunePropagationPolicy=foreground
|
||||
25
infra/argocd/applications/infisical-application.yaml
Normal file
25
infra/argocd/applications/infisical-application.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: infisical
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/infisical
|
||||
targetRevision: HEAD
|
||||
directory:
|
||||
recurse: true
|
||||
exclude: universal-auth-secret.yaml
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: infisical
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- ApplyOutOfSyncOnly=true
|
||||
- ServerSideApply=true
|
||||
20
infra/argocd/applications/intel-gpu-application.yaml
Normal file
20
infra/argocd/applications/intel-gpu-application.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: intel-gpu
|
||||
namespace: argocd
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "2"
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://github.com/intel/intel-device-plugins-for-kubernetes.git
|
||||
path: deployments/gpu_plugin/overlays/nfd_labeled_nodes
|
||||
targetRevision: v0.35.0
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: kube-system
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
22
infra/argocd/applications/intel-nfd-application.yaml
Normal file
22
infra/argocd/applications/intel-nfd-application.yaml
Normal file
@@ -0,0 +1,22 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: intel-nfd
|
||||
namespace: argocd
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "0"
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://github.com/intel/intel-device-plugins-for-kubernetes.git
|
||||
path: deployments/nfd
|
||||
targetRevision: v0.35.0
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: node-feature-discovery
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
20
infra/argocd/applications/intel-nfd-rules-application.yaml
Normal file
20
infra/argocd/applications/intel-nfd-rules-application.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: intel-nfd-rules
|
||||
namespace: argocd
|
||||
annotations:
|
||||
argocd.argoproj.io/sync-wave: "1"
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://github.com/intel/intel-device-plugins-for-kubernetes.git
|
||||
path: deployments/nfd/overlays/node-feature-rules
|
||||
targetRevision: v0.35.0
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: node-feature-discovery
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
24
infra/argocd/applications/it-tools-application.yaml
Normal file
24
infra/argocd/applications/it-tools-application.yaml
Normal file
@@ -0,0 +1,24 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: it-tools
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/it-tools
|
||||
targetRevision: main
|
||||
directory:
|
||||
recurse: true
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: it-tools
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- Replace=true
|
||||
- CreateNamespace=true
|
||||
- PruneLast=true
|
||||
20
infra/argocd/applications/jellyfin-application.yaml
Normal file
20
infra/argocd/applications/jellyfin-application.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: jellyfin
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/jellyfin
|
||||
targetRevision: HEAD
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: jellyfin
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
20
infra/argocd/applications/minio-aistor-application.yaml
Normal file
20
infra/argocd/applications/minio-aistor-application.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: minio-aistor
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
targetRevision: HEAD
|
||||
path: applications/minio-aistor
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: minio-aistor
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
21
infra/argocd/applications/netbootxyz-application.yaml
Normal file
21
infra/argocd/applications/netbootxyz-application.yaml
Normal file
@@ -0,0 +1,21 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: netbootxyz
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/netbootxyz
|
||||
targetRevision: HEAD
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: netbootxyz
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- ServerSideApply=true
|
||||
22
infra/argocd/applications/passbolt-application.yaml
Normal file
22
infra/argocd/applications/passbolt-application.yaml
Normal file
@@ -0,0 +1,22 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: passbolt
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/passbolt
|
||||
targetRevision: HEAD
|
||||
directory:
|
||||
recurse: true
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: passbolt
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
21
infra/argocd/applications/proxmox-application.yaml
Normal file
21
infra/argocd/applications/proxmox-application.yaml
Normal file
@@ -0,0 +1,21 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: proxmox
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/proxmox
|
||||
targetRevision: HEAD
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: proxmox
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- ServerSideApply=true
|
||||
23
infra/argocd/applications/reactive-resume-application.yaml
Normal file
23
infra/argocd/applications/reactive-resume-application.yaml
Normal file
@@ -0,0 +1,23 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: reactive-resume
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/react-resume
|
||||
targetRevision: main
|
||||
directory:
|
||||
recurse: true
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: resume
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- ServerSideApply=true
|
||||
28
infra/argocd/applications/searxng-application.yaml
Normal file
28
infra/argocd/applications/searxng-application.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: searxng
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/searxng
|
||||
targetRevision: main
|
||||
directory:
|
||||
recurse: true
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: searxng
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- PruneLast=true
|
||||
ignoreDifferences:
|
||||
- group: ""
|
||||
kind: PersistentVolumeClaim
|
||||
jsonPointers:
|
||||
- /spec/volumeName
|
||||
24
infra/argocd/applications/technitium-application.yaml
Normal file
24
infra/argocd/applications/technitium-application.yaml
Normal file
@@ -0,0 +1,24 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: technitium
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/technitium
|
||||
targetRevision: main
|
||||
directory:
|
||||
recurse: true
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: technitium
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- Replace=true
|
||||
- CreateNamespace=true
|
||||
- PruneLast=true
|
||||
24
infra/argocd/applications/truenas-application.yaml
Normal file
24
infra/argocd/applications/truenas-application.yaml
Normal file
@@ -0,0 +1,24 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: truenas
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/truenas
|
||||
targetRevision: main
|
||||
directory:
|
||||
recurse: true
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: truenas
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- Replace=true
|
||||
- CreateNamespace=true
|
||||
- PruneLast=true
|
||||
23
infra/argocd/applications/unifi-application.yaml
Normal file
23
infra/argocd/applications/unifi-application.yaml
Normal file
@@ -0,0 +1,23 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: unifi
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/unifi
|
||||
targetRevision: HEAD
|
||||
directory:
|
||||
recurse: true
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: unifi
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- ServerSideApply=true
|
||||
- CreateNamespace=true
|
||||
23
infra/argocd/applications/uptime-kuma-application.yaml
Normal file
23
infra/argocd/applications/uptime-kuma-application.yaml
Normal file
@@ -0,0 +1,23 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: uptime-kuma
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/uptime-kuma
|
||||
targetRevision: main
|
||||
directory:
|
||||
recurse: true
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: uptime-kuma
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- PruneLast=true
|
||||
34
infra/argocd/applications/victoria-metrics-application.yaml
Normal file
34
infra/argocd/applications/victoria-metrics-application.yaml
Normal file
@@ -0,0 +1,34 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: victoria-metrics
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
sources:
|
||||
- repoURL: https://victoriametrics.github.io/helm-charts/
|
||||
chart: victoria-metrics-k8s-stack
|
||||
targetRevision: 0.77.0
|
||||
helm:
|
||||
# Release name kept short to avoid label length >63 chars on alertmanager StatefulSet pods
|
||||
releaseName: vm
|
||||
valueFiles:
|
||||
- $values/victoria-metrics/values.yaml
|
||||
- repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
targetRevision: HEAD
|
||||
ref: values
|
||||
- repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
targetRevision: HEAD
|
||||
path: applications/victoria-metrics
|
||||
directory:
|
||||
exclude: "values.yaml"
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: victoria-metrics
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- ServerSideApply=true
|
||||
22
infra/argocd/applications/zipline-application.yaml
Normal file
22
infra/argocd/applications/zipline-application.yaml
Normal file
@@ -0,0 +1,22 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: zipline
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitea.jsme.be/Jeffrey/Kubernetes-Manifests.git
|
||||
path: applications/zipline
|
||||
targetRevision: HEAD
|
||||
directory:
|
||||
recurse: true
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: zipline
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
46
infra/argocd/argocd-httproute.yaml
Normal file
46
infra/argocd/argocd-httproute.yaml
Normal file
@@ -0,0 +1,46 @@
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: argocd-route
|
||||
namespace: argocd
|
||||
spec:
|
||||
parentRefs:
|
||||
- group: gateway.networking.k8s.io
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
namespace: envoy-gateway
|
||||
sectionName: argocd
|
||||
hostnames:
|
||||
- "argocd.jsme.be"
|
||||
rules:
|
||||
- matches:
|
||||
- path:
|
||||
type: PathPrefix
|
||||
value: /
|
||||
filters:
|
||||
- type: RequestHeaderModifier
|
||||
requestHeaderModifier:
|
||||
set:
|
||||
- name: X-Forwarded-Host
|
||||
value: "argocd.jsme.be"
|
||||
- name: X-Forwarded-Proto
|
||||
value: https
|
||||
- type: ResponseHeaderModifier
|
||||
responseHeaderModifier:
|
||||
set:
|
||||
- name: Strict-Transport-Security
|
||||
value: "max-age=31536000; includeSubDomains"
|
||||
- name: X-Content-Type-Options
|
||||
value: nosniff
|
||||
- name: X-Frame-Options
|
||||
value: SAMEORIGIN
|
||||
- name: Referrer-Policy
|
||||
value: strict-origin-when-cross-origin
|
||||
- name: Permissions-Policy
|
||||
value: "camera=(), microphone=(), geolocation=(), payment=()"
|
||||
backendRefs:
|
||||
- name: argocd-server
|
||||
port: 80
|
||||
kind: Service
|
||||
group: ""
|
||||
weight: 1
|
||||
28219
infra/argocd/argocd-install.yaml
Normal file
28219
infra/argocd/argocd-install.yaml
Normal file
File diff suppressed because it is too large
Load Diff
33
infra/cert-manager/azure-dns-certs.yaml
Normal file
33
infra/cert-manager/azure-dns-certs.yaml
Normal file
@@ -0,0 +1,33 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: azuredns-config
|
||||
namespace: cert-manager
|
||||
type: Opaque
|
||||
data:
|
||||
client-secret:
|
||||
---
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: ClusterIssuer
|
||||
metadata:
|
||||
name: azure-dns
|
||||
namespace: cert-manager
|
||||
spec:
|
||||
acme:
|
||||
server: https://acme-v02.api.letsencrypt.org/directory
|
||||
email: jeffreysmeets@jsme.be
|
||||
privateKeySecretRef:
|
||||
name: azuredns
|
||||
solvers:
|
||||
- dns01:
|
||||
azureDNS:
|
||||
clientID: 1144257c-6893-4f34-be9b-fa2ac3f3780e
|
||||
clientSecretSecretRef:
|
||||
name: azuredns-config
|
||||
key: client-secret
|
||||
subscriptionID: 5b701352-f929-464d-9b1c-7b8ed6d23b53
|
||||
tenantID: cf2466c7-c9b9-4820-b416-3bb4c380e52d
|
||||
resourceGroupName: jsme.be
|
||||
hostedZoneName: jsme.be
|
||||
# Azure Cloud Environment, default to AzurePublicCloud
|
||||
environment: AzurePublicCloud
|
||||
692
infra/cloud-native-postgres/values.yaml
Normal file
692
infra/cloud-native-postgres/values.yaml
Normal file
@@ -0,0 +1,692 @@
|
||||
#
|
||||
# Copyright © contributors to CloudNativePG, established as
|
||||
# CloudNativePG a Series of LF Projects, LLC.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Default values for CloudNativePG.
|
||||
# This is a YAML-formatted file.
|
||||
# Please declare variables to be passed to your templates.
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
repository: ghcr.io/cloudnative-pg/cloudnative-pg
|
||||
pullPolicy: IfNotPresent
|
||||
# -- Overrides the image tag whose default is the chart appVersion.
|
||||
tag: ""
|
||||
|
||||
imagePullSecrets: []
|
||||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
namespaceOverride: ""
|
||||
|
||||
hostNetwork: false
|
||||
dnsPolicy: ""
|
||||
|
||||
# -- Update strategy for the operator.
|
||||
# ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
|
||||
# For example:
|
||||
# type: RollingUpdate
|
||||
# rollingUpdate:
|
||||
# maxSurge: 25%
|
||||
# maxUnavailable: 25%
|
||||
updateStrategy: {}
|
||||
|
||||
crds:
|
||||
# -- Specifies whether the CRDs should be created when installing the chart.
|
||||
create: true
|
||||
|
||||
# -- The webhook configuration.
|
||||
webhook:
|
||||
port: 9443
|
||||
mutating:
|
||||
create: true
|
||||
failurePolicy: Fail
|
||||
validating:
|
||||
create: true
|
||||
failurePolicy: Fail
|
||||
livenessProbe:
|
||||
initialDelaySeconds: 3
|
||||
readinessProbe:
|
||||
initialDelaySeconds: 3
|
||||
startupProbe:
|
||||
failureThreshold: 6
|
||||
periodSeconds: 5
|
||||
|
||||
# Operator configuration.
|
||||
config:
|
||||
# -- Specifies whether the secret should be created.
|
||||
create: true
|
||||
# -- The name of the configmap/secret to use.
|
||||
name: cnpg-controller-manager-config
|
||||
# -- Specifies whether it should be stored in a secret, instead of a configmap.
|
||||
secret: false
|
||||
# -- This option determines if the operator is responsible for observing
|
||||
# events across the entire Kubernetes cluster or if its focus should be
|
||||
# narrowed down to the specific namespace within which it has been deployed.
|
||||
clusterWide: true
|
||||
# -- The content of the configmap/secret, see
|
||||
# https://cloudnative-pg.io/documentation/current/operator_conf/#available-options
|
||||
# for all the available options.
|
||||
data: {}
|
||||
# INHERITED_ANNOTATIONS: categories
|
||||
# INHERITED_LABELS: environment, workload, app
|
||||
# WATCH_NAMESPACE: namespace-a,namespace-b
|
||||
# -- The maximum number of concurrent reconciles. Defaults to 10.
|
||||
maxConcurrentReconciles: 10
|
||||
|
||||
# -- Additional arguments to be added to the operator's args list.
|
||||
additionalArgs: []
|
||||
|
||||
# -- Array containing extra environment variables which can be templated.
|
||||
# For example:
|
||||
# - name: RELEASE_NAME
|
||||
# value: "{{ .Release.Name }}"
|
||||
# - name: MY_VAR
|
||||
# value: "mySpecialKey"
|
||||
additionalEnv: []
|
||||
|
||||
serviceAccount:
|
||||
# -- Specifies whether the service account should be created.
|
||||
create: true
|
||||
# -- The name of the service account to use.
|
||||
# If not set and create is true, a name is generated using the fullname template.
|
||||
name: ""
|
||||
|
||||
rbac:
|
||||
# -- Specifies whether ClusterRole and ClusterRoleBinding should be created.
|
||||
create: true
|
||||
# -- Aggregate ClusterRoles to Kubernetes default user-facing roles.
|
||||
# Ref: https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles
|
||||
aggregateClusterRoles: false
|
||||
|
||||
# -- Annotations to be added to all other resources.
|
||||
commonAnnotations: {}
|
||||
# -- Annotations to be added to the pod.
|
||||
podAnnotations: {}
|
||||
# -- Labels to be added to the pod.
|
||||
podLabels: {}
|
||||
|
||||
# -- Container Security Context.
|
||||
containerSecurityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
readOnlyRootFilesystem: true
|
||||
runAsUser: 10001
|
||||
runAsGroup: 10001
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
capabilities:
|
||||
drop:
|
||||
- "ALL"
|
||||
|
||||
# -- Security Context for the whole pod.
|
||||
podSecurityContext:
|
||||
runAsNonRoot: true
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
# fsGroup: 2000
|
||||
|
||||
# -- Priority indicates the importance of a Pod relative to other Pods.
|
||||
priorityClassName: ""
|
||||
|
||||
service:
|
||||
type: ClusterIP
|
||||
# -- DO NOT CHANGE THE SERVICE NAME as it is currently used to generate the certificate
|
||||
# and can not be configured
|
||||
name: cnpg-webhook-service
|
||||
port: 443
|
||||
# -- Set the ip family policy to configure dual-stack see [Configure dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services)
|
||||
ipFamilyPolicy: ""
|
||||
# -- Sets the families that should be supported and the order in which they should be applied to ClusterIP as well. Can be IPv4 and/or IPv6.
|
||||
ipFamilies: []
|
||||
|
||||
resources:
|
||||
limits:
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
|
||||
# -- Nodeselector for the operator to be installed.
|
||||
nodeSelector: {}
|
||||
|
||||
# -- Topology Spread Constraints for the operator to be installed.
|
||||
topologySpreadConstraints: []
|
||||
|
||||
# -- Tolerations for the operator to be installed.
|
||||
tolerations: []
|
||||
|
||||
# -- Affinity for the operator to be installed.
|
||||
affinity: {}
|
||||
|
||||
monitoring:
|
||||
|
||||
# -- Specifies whether the monitoring should be enabled. Requires Prometheus Operator CRDs.
|
||||
# Disabled because Victoria Metrics doesn't have PodMonitor CRD - use VMPodScrape instead
|
||||
podMonitorEnabled: false
|
||||
# -- Metrics relabel configurations to apply to samples before ingestion.
|
||||
podMonitorMetricRelabelings: []
|
||||
# -- Relabel configurations to apply to samples before scraping.
|
||||
podMonitorRelabelings: []
|
||||
# -- Additional labels for the podMonitor
|
||||
podMonitorAdditionalLabels: {}
|
||||
|
||||
grafanaDashboard:
|
||||
create: true
|
||||
# -- Allows overriding the namespace where the ConfigMap will be created, defaulting to the same one as the Release.
|
||||
namespace: "monitoring"
|
||||
# -- The name of the ConfigMap containing the dashboard.
|
||||
configMapName: "cnpg-grafana-dashboard"
|
||||
# -- Label that ConfigMaps should have to be loaded as dashboards. DEPRECATED: Use labels instead.
|
||||
sidecarLabel: ""
|
||||
# -- Label value that ConfigMaps should have to be loaded as dashboards. DEPRECATED: Use labels instead.
|
||||
sidecarLabelValue: ""
|
||||
# -- Labels that ConfigMaps should have to get configured in Grafana.
|
||||
labels:
|
||||
grafana_dashboard: "1"
|
||||
# -- Annotations that ConfigMaps can have to get configured in Grafana.
|
||||
annotations: {}
|
||||
|
||||
# Default monitoring queries
|
||||
monitoringQueriesConfigMap:
|
||||
# -- The name of the default monitoring configmap.
|
||||
name: cnpg-default-monitoring
|
||||
# -- A string representation of a YAML defining monitoring queries.
|
||||
queries: |
|
||||
backends:
|
||||
query: |
|
||||
SELECT sa.datname
|
||||
, sa.usename
|
||||
, sa.application_name
|
||||
, states.state
|
||||
, COALESCE(sa.count, 0) AS total
|
||||
, COALESCE(sa.max_tx_secs, 0) AS max_tx_duration_seconds
|
||||
FROM ( VALUES ('active')
|
||||
, ('idle')
|
||||
, ('idle in transaction')
|
||||
, ('idle in transaction (aborted)')
|
||||
, ('fastpath function call')
|
||||
, ('disabled')
|
||||
) AS states(state)
|
||||
LEFT JOIN (
|
||||
SELECT datname
|
||||
, state
|
||||
, usename
|
||||
, COALESCE(application_name, '') AS application_name
|
||||
, COUNT(*)
|
||||
, COALESCE(EXTRACT (EPOCH FROM (max(now() - xact_start))), 0) AS max_tx_secs
|
||||
FROM pg_catalog.pg_stat_activity
|
||||
GROUP BY datname, state, usename, application_name
|
||||
) sa ON states.state = sa.state
|
||||
WHERE sa.usename IS NOT NULL
|
||||
metrics:
|
||||
- datname:
|
||||
usage: "LABEL"
|
||||
description: "Name of the database"
|
||||
- usename:
|
||||
usage: "LABEL"
|
||||
description: "Name of the user"
|
||||
- application_name:
|
||||
usage: "LABEL"
|
||||
description: "Name of the application"
|
||||
- state:
|
||||
usage: "LABEL"
|
||||
description: "State of the backend"
|
||||
- total:
|
||||
usage: "GAUGE"
|
||||
description: "Number of backends"
|
||||
- max_tx_duration_seconds:
|
||||
usage: "GAUGE"
|
||||
description: "Maximum duration of a transaction in seconds"
|
||||
|
||||
backends_waiting:
|
||||
query: |
|
||||
SELECT count(*) AS total
|
||||
FROM pg_catalog.pg_locks blocked_locks
|
||||
JOIN pg_catalog.pg_locks blocking_locks
|
||||
ON blocking_locks.locktype = blocked_locks.locktype
|
||||
AND blocking_locks.database IS NOT DISTINCT FROM blocked_locks.database
|
||||
AND blocking_locks.relation IS NOT DISTINCT FROM blocked_locks.relation
|
||||
AND blocking_locks.page IS NOT DISTINCT FROM blocked_locks.page
|
||||
AND blocking_locks.tuple IS NOT DISTINCT FROM blocked_locks.tuple
|
||||
AND blocking_locks.virtualxid IS NOT DISTINCT FROM blocked_locks.virtualxid
|
||||
AND blocking_locks.transactionid IS NOT DISTINCT FROM blocked_locks.transactionid
|
||||
AND blocking_locks.classid IS NOT DISTINCT FROM blocked_locks.classid
|
||||
AND blocking_locks.objid IS NOT DISTINCT FROM blocked_locks.objid
|
||||
AND blocking_locks.objsubid IS NOT DISTINCT FROM blocked_locks.objsubid
|
||||
AND blocking_locks.pid != blocked_locks.pid
|
||||
JOIN pg_catalog.pg_stat_activity blocking_activity ON blocking_activity.pid = blocking_locks.pid
|
||||
WHERE NOT blocked_locks.granted
|
||||
metrics:
|
||||
- total:
|
||||
usage: "GAUGE"
|
||||
description: "Total number of backends that are currently waiting on other queries"
|
||||
|
||||
pg_database:
|
||||
query: |
|
||||
SELECT datname
|
||||
, pg_catalog.pg_database_size(datname) AS size_bytes
|
||||
, pg_catalog.age(datfrozenxid) AS xid_age
|
||||
, pg_catalog.mxid_age(datminmxid) AS mxid_age
|
||||
FROM pg_catalog.pg_database
|
||||
WHERE datallowconn
|
||||
metrics:
|
||||
- datname:
|
||||
usage: "LABEL"
|
||||
description: "Name of the database"
|
||||
- size_bytes:
|
||||
usage: "GAUGE"
|
||||
description: "Disk space used by the database"
|
||||
- xid_age:
|
||||
usage: "GAUGE"
|
||||
description: "Number of transactions from the frozen XID to the current one"
|
||||
- mxid_age:
|
||||
usage: "GAUGE"
|
||||
description: "Number of multiple transactions (Multixact) from the frozen XID to the current one"
|
||||
|
||||
pg_postmaster:
|
||||
query: |
|
||||
SELECT EXTRACT(EPOCH FROM pg_postmaster_start_time) AS start_time
|
||||
FROM pg_catalog.pg_postmaster_start_time()
|
||||
metrics:
|
||||
- start_time:
|
||||
usage: "GAUGE"
|
||||
description: "Time at which postgres started (based on epoch)"
|
||||
|
||||
pg_replication:
|
||||
query: |
|
||||
SELECT CASE WHEN (
|
||||
NOT pg_catalog.pg_is_in_recovery()
|
||||
OR pg_catalog.pg_last_wal_receive_lsn() = pg_catalog.pg_last_wal_replay_lsn())
|
||||
THEN 0
|
||||
ELSE GREATEST (0,
|
||||
EXTRACT(EPOCH FROM (now() - pg_catalog.pg_last_xact_replay_timestamp())))
|
||||
END AS lag,
|
||||
pg_catalog.pg_is_in_recovery() AS in_recovery,
|
||||
EXISTS (TABLE pg_stat_wal_receiver) AS is_wal_receiver_up,
|
||||
(SELECT count(*) FROM pg_catalog.pg_stat_replication) AS streaming_replicas
|
||||
metrics:
|
||||
- lag:
|
||||
usage: "GAUGE"
|
||||
description: "Replication lag behind primary in seconds"
|
||||
- in_recovery:
|
||||
usage: "GAUGE"
|
||||
description: "Whether the instance is in recovery"
|
||||
- is_wal_receiver_up:
|
||||
usage: "GAUGE"
|
||||
description: "Whether the instance wal_receiver is up"
|
||||
- streaming_replicas:
|
||||
usage: "GAUGE"
|
||||
description: "Number of streaming replicas connected to the instance"
|
||||
|
||||
pg_replication_slots:
|
||||
query: |
|
||||
SELECT slot_name,
|
||||
slot_type,
|
||||
database,
|
||||
active,
|
||||
(CASE pg_catalog.pg_is_in_recovery()
|
||||
WHEN TRUE THEN pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_last_wal_receive_lsn(), restart_lsn)
|
||||
ELSE pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), restart_lsn)
|
||||
END) as pg_wal_lsn_diff
|
||||
FROM pg_catalog.pg_replication_slots
|
||||
WHERE NOT temporary
|
||||
metrics:
|
||||
- slot_name:
|
||||
usage: "LABEL"
|
||||
description: "Name of the replication slot"
|
||||
- slot_type:
|
||||
usage: "LABEL"
|
||||
description: "Type of the replication slot"
|
||||
- database:
|
||||
usage: "LABEL"
|
||||
description: "Name of the database"
|
||||
- active:
|
||||
usage: "GAUGE"
|
||||
description: "Flag indicating whether the slot is active"
|
||||
- pg_wal_lsn_diff:
|
||||
usage: "GAUGE"
|
||||
description: "Replication lag in bytes"
|
||||
|
||||
pg_stat_archiver:
|
||||
query: |
|
||||
SELECT archived_count
|
||||
, failed_count
|
||||
, COALESCE(EXTRACT(EPOCH FROM (now() - last_archived_time)), -1) AS seconds_since_last_archival
|
||||
, COALESCE(EXTRACT(EPOCH FROM (now() - last_failed_time)), -1) AS seconds_since_last_failure
|
||||
, COALESCE(EXTRACT(EPOCH FROM last_archived_time), -1) AS last_archived_time
|
||||
, COALESCE(EXTRACT(EPOCH FROM last_failed_time), -1) AS last_failed_time
|
||||
, COALESCE(CAST(CAST('x'||pg_catalog.right(pg_catalog.split_part(last_archived_wal, '.', 1), 16) AS pg_catalog.bit(64)) AS pg_catalog.int8), -1) AS last_archived_wal_start_lsn
|
||||
, COALESCE(CAST(CAST('x'||pg_catalog.right(pg_catalog.split_part(last_failed_wal, '.', 1), 16) AS pg_catalog.bit(64)) AS pg_catalog.int8), -1) AS last_failed_wal_start_lsn
|
||||
, EXTRACT(EPOCH FROM stats_reset) AS stats_reset_time
|
||||
FROM pg_catalog.pg_stat_archiver
|
||||
predicate_query: |
|
||||
SELECT NOT pg_catalog.pg_is_in_recovery()
|
||||
OR pg_catalog.current_setting('archive_mode') = 'always'
|
||||
metrics:
|
||||
- archived_count:
|
||||
usage: "COUNTER"
|
||||
description: "Number of WAL files that have been successfully archived"
|
||||
- failed_count:
|
||||
usage: "COUNTER"
|
||||
description: "Number of failed attempts for archiving WAL files"
|
||||
- seconds_since_last_archival:
|
||||
usage: "GAUGE"
|
||||
description: "Seconds since the last successful archival operation"
|
||||
- seconds_since_last_failure:
|
||||
usage: "GAUGE"
|
||||
description: "Seconds since the last failed archival operation"
|
||||
- last_archived_time:
|
||||
usage: "GAUGE"
|
||||
description: "Epoch of the last time WAL archiving succeeded"
|
||||
- last_failed_time:
|
||||
usage: "GAUGE"
|
||||
description: "Epoch of the last time WAL archiving failed"
|
||||
- last_archived_wal_start_lsn:
|
||||
usage: "GAUGE"
|
||||
description: "Archived WAL start LSN"
|
||||
- last_failed_wal_start_lsn:
|
||||
usage: "GAUGE"
|
||||
description: "Last failed WAL LSN"
|
||||
- stats_reset_time:
|
||||
usage: "GAUGE"
|
||||
description: "Time at which these statistics were last reset"
|
||||
|
||||
pg_stat_bgwriter:
|
||||
runonserver: "<17.0.0"
|
||||
query: |
|
||||
SELECT checkpoints_timed
|
||||
, checkpoints_req
|
||||
, checkpoint_write_time
|
||||
, checkpoint_sync_time
|
||||
, buffers_checkpoint
|
||||
, buffers_clean
|
||||
, maxwritten_clean
|
||||
, buffers_backend
|
||||
, buffers_backend_fsync
|
||||
, buffers_alloc
|
||||
FROM pg_catalog.pg_stat_bgwriter
|
||||
metrics:
|
||||
- checkpoints_timed:
|
||||
usage: "COUNTER"
|
||||
description: "Number of scheduled checkpoints that have been performed"
|
||||
- checkpoints_req:
|
||||
usage: "COUNTER"
|
||||
description: "Number of requested checkpoints that have been performed"
|
||||
- checkpoint_write_time:
|
||||
usage: "COUNTER"
|
||||
description: "Total amount of time that has been spent in the portion of checkpoint processing where files are written to disk, in milliseconds"
|
||||
- checkpoint_sync_time:
|
||||
usage: "COUNTER"
|
||||
description: "Total amount of time that has been spent in the portion of checkpoint processing where files are synchronized to disk, in milliseconds"
|
||||
- buffers_checkpoint:
|
||||
usage: "COUNTER"
|
||||
description: "Number of buffers written during checkpoints"
|
||||
- buffers_clean:
|
||||
usage: "COUNTER"
|
||||
description: "Number of buffers written by the background writer"
|
||||
- maxwritten_clean:
|
||||
usage: "COUNTER"
|
||||
description: "Number of times the background writer stopped a cleaning scan because it had written too many buffers"
|
||||
- buffers_backend:
|
||||
usage: "COUNTER"
|
||||
description: "Number of buffers written directly by a backend"
|
||||
- buffers_backend_fsync:
|
||||
usage: "COUNTER"
|
||||
description: "Number of times a backend had to execute its own fsync call (normally the background writer handles those even when the backend does its own write)"
|
||||
- buffers_alloc:
|
||||
usage: "COUNTER"
|
||||
description: "Number of buffers allocated"
|
||||
|
||||
pg_stat_bgwriter_17:
|
||||
runonserver: ">=17.0.0"
|
||||
name: pg_stat_bgwriter
|
||||
query: |
|
||||
SELECT buffers_clean
|
||||
, maxwritten_clean
|
||||
, buffers_alloc
|
||||
, EXTRACT(EPOCH FROM stats_reset) AS stats_reset_time
|
||||
FROM pg_catalog.pg_stat_bgwriter
|
||||
metrics:
|
||||
- buffers_clean:
|
||||
usage: "COUNTER"
|
||||
description: "Number of buffers written by the background writer"
|
||||
- maxwritten_clean:
|
||||
usage: "COUNTER"
|
||||
description: "Number of times the background writer stopped a cleaning scan because it had written too many buffers"
|
||||
- buffers_alloc:
|
||||
usage: "COUNTER"
|
||||
description: "Number of buffers allocated"
|
||||
- stats_reset_time:
|
||||
usage: "GAUGE"
|
||||
description: "Time at which these statistics were last reset"
|
||||
|
||||
pg_stat_checkpointer:
|
||||
runonserver: ">=17.0.0"
|
||||
query: |
|
||||
SELECT num_timed AS checkpoints_timed
|
||||
, num_requested AS checkpoints_req
|
||||
, restartpoints_timed
|
||||
, restartpoints_req
|
||||
, restartpoints_done
|
||||
, write_time
|
||||
, sync_time
|
||||
, buffers_written
|
||||
, EXTRACT(EPOCH FROM stats_reset) AS stats_reset_time
|
||||
FROM pg_catalog.pg_stat_checkpointer
|
||||
metrics:
|
||||
- checkpoints_timed:
|
||||
usage: "COUNTER"
|
||||
description: "Number of scheduled checkpoints that have been performed"
|
||||
- checkpoints_req:
|
||||
usage: "COUNTER"
|
||||
description: "Number of requested checkpoints that have been performed"
|
||||
- restartpoints_timed:
|
||||
usage: "COUNTER"
|
||||
description: "Number of scheduled restartpoints due to timeout or after a failed attempt to perform it"
|
||||
- restartpoints_req:
|
||||
usage: "COUNTER"
|
||||
description: "Number of requested restartpoints that have been performed"
|
||||
- restartpoints_done:
|
||||
usage: "COUNTER"
|
||||
description: "Number of restartpoints that have been performed"
|
||||
- write_time:
|
||||
usage: "COUNTER"
|
||||
description: "Total amount of time that has been spent in the portion of processing checkpoints and restartpoints where files are written to disk, in milliseconds"
|
||||
- sync_time:
|
||||
usage: "COUNTER"
|
||||
description: "Total amount of time that has been spent in the portion of processing checkpoints and restartpoints where files are synchronized to disk, in milliseconds"
|
||||
- buffers_written:
|
||||
usage: "COUNTER"
|
||||
description: "Number of buffers written during checkpoints and restartpoints"
|
||||
- stats_reset_time:
|
||||
usage: "GAUGE"
|
||||
description: "Time at which these statistics were last reset"
|
||||
|
||||
pg_stat_database:
|
||||
query: |
|
||||
SELECT datname
|
||||
, xact_commit
|
||||
, xact_rollback
|
||||
, blks_read
|
||||
, blks_hit
|
||||
, tup_returned
|
||||
, tup_fetched
|
||||
, tup_inserted
|
||||
, tup_updated
|
||||
, tup_deleted
|
||||
, conflicts
|
||||
, temp_files
|
||||
, temp_bytes
|
||||
, deadlocks
|
||||
, blk_read_time
|
||||
, blk_write_time
|
||||
FROM pg_catalog.pg_stat_database
|
||||
metrics:
|
||||
- datname:
|
||||
usage: "LABEL"
|
||||
description: "Name of this database"
|
||||
- xact_commit:
|
||||
usage: "COUNTER"
|
||||
description: "Number of transactions in this database that have been committed"
|
||||
- xact_rollback:
|
||||
usage: "COUNTER"
|
||||
description: "Number of transactions in this database that have been rolled back"
|
||||
- blks_read:
|
||||
usage: "COUNTER"
|
||||
description: "Number of disk blocks read in this database"
|
||||
- blks_hit:
|
||||
usage: "COUNTER"
|
||||
description: "Number of times disk blocks were found already in the buffer cache, so that a read was not necessary (this only includes hits in the PostgreSQL buffer cache, not the operating system's file system cache)"
|
||||
- tup_returned:
|
||||
usage: "COUNTER"
|
||||
description: "Number of rows returned by queries in this database"
|
||||
- tup_fetched:
|
||||
usage: "COUNTER"
|
||||
description: "Number of rows fetched by queries in this database"
|
||||
- tup_inserted:
|
||||
usage: "COUNTER"
|
||||
description: "Number of rows inserted by queries in this database"
|
||||
- tup_updated:
|
||||
usage: "COUNTER"
|
||||
description: "Number of rows updated by queries in this database"
|
||||
- tup_deleted:
|
||||
usage: "COUNTER"
|
||||
description: "Number of rows deleted by queries in this database"
|
||||
- conflicts:
|
||||
usage: "COUNTER"
|
||||
description: "Number of queries canceled due to conflicts with recovery in this database"
|
||||
- temp_files:
|
||||
usage: "COUNTER"
|
||||
description: "Number of temporary files created by queries in this database"
|
||||
- temp_bytes:
|
||||
usage: "COUNTER"
|
||||
description: "Total amount of data written to temporary files by queries in this database"
|
||||
- deadlocks:
|
||||
usage: "COUNTER"
|
||||
description: "Number of deadlocks detected in this database"
|
||||
- blk_read_time:
|
||||
usage: "COUNTER"
|
||||
description: "Time spent reading data file blocks by backends in this database, in milliseconds"
|
||||
- blk_write_time:
|
||||
usage: "COUNTER"
|
||||
description: "Time spent writing data file blocks by backends in this database, in milliseconds"
|
||||
|
||||
pg_stat_replication:
|
||||
primary: true
|
||||
query: |
|
||||
SELECT usename
|
||||
, COALESCE(application_name, '') AS application_name
|
||||
, COALESCE(client_addr::text, '') AS client_addr
|
||||
, COALESCE(client_port::text, '') AS client_port
|
||||
, EXTRACT(EPOCH FROM backend_start) AS backend_start
|
||||
, COALESCE(pg_catalog.age(backend_xmin), 0) AS backend_xmin_age
|
||||
, pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), sent_lsn) AS sent_diff_bytes
|
||||
, pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), write_lsn) AS write_diff_bytes
|
||||
, pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), flush_lsn) AS flush_diff_bytes
|
||||
, COALESCE(pg_catalog.pg_wal_lsn_diff(pg_catalog.pg_current_wal_lsn(), replay_lsn),0) AS replay_diff_bytes
|
||||
, COALESCE((EXTRACT(EPOCH FROM write_lag)),0)::float AS write_lag_seconds
|
||||
, COALESCE((EXTRACT(EPOCH FROM flush_lag)),0)::float AS flush_lag_seconds
|
||||
, COALESCE((EXTRACT(EPOCH FROM replay_lag)),0)::float AS replay_lag_seconds
|
||||
FROM pg_catalog.pg_stat_replication
|
||||
metrics:
|
||||
- usename:
|
||||
usage: "LABEL"
|
||||
description: "Name of the replication user"
|
||||
- application_name:
|
||||
usage: "LABEL"
|
||||
description: "Name of the application"
|
||||
- client_addr:
|
||||
usage: "LABEL"
|
||||
description: "Client IP address"
|
||||
- client_port:
|
||||
usage: "LABEL"
|
||||
description: "Client TCP port"
|
||||
- backend_start:
|
||||
usage: "COUNTER"
|
||||
description: "Time when this process was started"
|
||||
- backend_xmin_age:
|
||||
usage: "COUNTER"
|
||||
description: "The age of this standby's xmin horizon"
|
||||
- sent_diff_bytes:
|
||||
usage: "GAUGE"
|
||||
description: "Difference in bytes from the last write-ahead log location sent on this connection"
|
||||
- write_diff_bytes:
|
||||
usage: "GAUGE"
|
||||
description: "Difference in bytes from the last write-ahead log location written to disk by this standby server"
|
||||
- flush_diff_bytes:
|
||||
usage: "GAUGE"
|
||||
description: "Difference in bytes from the last write-ahead log location flushed to disk by this standby server"
|
||||
- replay_diff_bytes:
|
||||
usage: "GAUGE"
|
||||
description: "Difference in bytes from the last write-ahead log location replayed into the database on this standby server"
|
||||
- write_lag_seconds:
|
||||
usage: "GAUGE"
|
||||
description: "Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written it"
|
||||
- flush_lag_seconds:
|
||||
usage: "GAUGE"
|
||||
description: "Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written and flushed it"
|
||||
- replay_lag_seconds:
|
||||
usage: "GAUGE"
|
||||
description: "Time elapsed between flushing recent WAL locally and receiving notification that this standby server has written, flushed and applied it"
|
||||
|
||||
pg_settings:
|
||||
query: |
|
||||
SELECT name,
|
||||
CASE setting WHEN 'on' THEN '1' WHEN 'off' THEN '0' ELSE setting END AS setting
|
||||
FROM pg_catalog.pg_settings
|
||||
WHERE vartype IN ('integer', 'real', 'bool')
|
||||
ORDER BY 1
|
||||
metrics:
|
||||
- name:
|
||||
usage: "LABEL"
|
||||
description: "Name of the setting"
|
||||
- setting:
|
||||
usage: "GAUGE"
|
||||
description: "Setting value"
|
||||
|
||||
pg_extensions:
|
||||
query: |
|
||||
SELECT
|
||||
current_database() as datname,
|
||||
name as extname,
|
||||
default_version,
|
||||
installed_version,
|
||||
CASE
|
||||
WHEN default_version = installed_version THEN 0
|
||||
ELSE 1
|
||||
END AS update_available
|
||||
FROM pg_catalog.pg_available_extensions
|
||||
WHERE installed_version IS NOT NULL
|
||||
metrics:
|
||||
- datname:
|
||||
usage: "LABEL"
|
||||
description: "Name of the database"
|
||||
- extname:
|
||||
usage: "LABEL"
|
||||
description: "Extension name"
|
||||
- default_version:
|
||||
usage: "LABEL"
|
||||
description: "Default version"
|
||||
- installed_version:
|
||||
usage: "LABEL"
|
||||
description: "Installed version"
|
||||
- update_available:
|
||||
usage: "GAUGE"
|
||||
description: "An update is available"
|
||||
target_databases:
|
||||
- '*'
|
||||
|
||||
14
infra/envoy-gateway/affine/affine-certificate.yaml
Normal file
14
infra/envoy-gateway/affine/affine-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: affine-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: affine-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- affine.jsme.be
|
||||
19
infra/envoy-gateway/affine/affine-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/affine/affine-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: affine
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "affine.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: affine
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: affine-tls
|
||||
namespace: envoy-gateway
|
||||
14
infra/envoy-gateway/argocd/argocd-certificate.yaml
Normal file
14
infra/envoy-gateway/argocd/argocd-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: argocd-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: argocd-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- argocd.jsme.be
|
||||
19
infra/envoy-gateway/argocd/argocd-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/argocd/argocd-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: argocd
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "argocd.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: argocd
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: argocd-tls
|
||||
namespace: envoy-gateway
|
||||
14
infra/envoy-gateway/authentik/authentik-certificate.yaml
Normal file
14
infra/envoy-gateway/authentik/authentik-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: authentik-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: authentik-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- auth.jsme.be
|
||||
19
infra/envoy-gateway/authentik/authentik-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/authentik/authentik-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: authentik
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "auth.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: authentik
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: authentik-tls
|
||||
namespace: envoy-gateway
|
||||
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: authentik
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "auth.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: authentik
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: authentik-tls
|
||||
namespace: envoy-gateway
|
||||
14
infra/envoy-gateway/bentopdf/bentopdf-certificate.yaml
Normal file
14
infra/envoy-gateway/bentopdf/bentopdf-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: bentopdf-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: bentopdf-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- pdf.jsme.be
|
||||
19
infra/envoy-gateway/bentopdf/bentopdf-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/bentopdf/bentopdf-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: bentopdf
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "pdf.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: bentopdf
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: bentopdf-tls
|
||||
namespace: envoy-gateway
|
||||
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: bentopdf
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "pdf.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: bentopdf
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: bentopdf-tls
|
||||
namespace: envoy-gateway
|
||||
21
infra/envoy-gateway/clientsettingspolicies.yaml
Normal file
21
infra/envoy-gateway/clientsettingspolicies.yaml
Normal file
@@ -0,0 +1,21 @@
|
||||
apiVersion: gateway.envoyproxy.io/v1alpha1
|
||||
kind: ClientTrafficPolicy
|
||||
metadata:
|
||||
name: gateway-internal-client-settings
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
targetRefs:
|
||||
- group: gateway.networking.k8s.io
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
---
|
||||
apiVersion: gateway.envoyproxy.io/v1alpha1
|
||||
kind: ClientTrafficPolicy
|
||||
metadata:
|
||||
name: gateway-public-client-settings
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
targetRefs:
|
||||
- group: gateway.networking.k8s.io
|
||||
kind: Gateway
|
||||
name: gateway-public
|
||||
14
infra/envoy-gateway/databasus/databasus-certificate.yaml
Normal file
14
infra/envoy-gateway/databasus/databasus-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: databasus-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: databasus-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- databasus.jsme.be
|
||||
19
infra/envoy-gateway/databasus/databasus-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/databasus/databasus-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: databasus
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "databasus.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: databasus
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: databasus-tls
|
||||
namespace: envoy-gateway
|
||||
14
infra/envoy-gateway/excalidraw/excalidraw-certificate.yaml
Normal file
14
infra/envoy-gateway/excalidraw/excalidraw-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: excalidraw-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: excalidraw-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- draw.jsme.be
|
||||
19
infra/envoy-gateway/excalidraw/excalidraw-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/excalidraw/excalidraw-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: excalidraw
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "draw.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: excalidraw
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: excalidraw-tls
|
||||
namespace: envoy-gateway
|
||||
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: excalidraw
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "draw.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: excalidraw
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: excalidraw-tls
|
||||
namespace: envoy-gateway
|
||||
11
infra/envoy-gateway/gateway-public.yaml
Normal file
11
infra/envoy-gateway/gateway-public.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: Gateway
|
||||
metadata:
|
||||
name: gateway-public
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
gatewayClassName: eg
|
||||
infrastructure:
|
||||
annotations:
|
||||
metallb.universe.tf/loadBalancerIPs: "10.8.11.105"
|
||||
listeners: []
|
||||
11
infra/envoy-gateway/gateway.yaml
Normal file
11
infra/envoy-gateway/gateway.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: Gateway
|
||||
metadata:
|
||||
name: gateway-internal
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
gatewayClassName: eg
|
||||
infrastructure:
|
||||
annotations:
|
||||
metallb.universe.tf/loadBalancerIPs: "10.8.11.104"
|
||||
listeners: []
|
||||
14
infra/envoy-gateway/gitea/gitea-certificate.yaml
Normal file
14
infra/envoy-gateway/gitea/gitea-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: gitea-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: gitea-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- gitea.jsme.be
|
||||
19
infra/envoy-gateway/gitea/gitea-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/gitea/gitea-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: gitea
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "gitea.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: gitea
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: gitea-tls
|
||||
namespace: envoy-gateway
|
||||
19
infra/envoy-gateway/gitea/gitea-gateway-public-patch.yaml
Normal file
19
infra/envoy-gateway/gitea/gitea-gateway-public-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: gitea
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "gitea.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: gitea
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: gitea-tls
|
||||
namespace: envoy-gateway
|
||||
14
infra/envoy-gateway/gotify/gotify-certificate.yaml
Normal file
14
infra/envoy-gateway/gotify/gotify-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: gotify-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: gotify-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- gotify.jsme.be
|
||||
19
infra/envoy-gateway/gotify/gotify-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/gotify/gotify-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: gotify
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "gotify.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: gotify
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: gotify-tls
|
||||
namespace: envoy-gateway
|
||||
19
infra/envoy-gateway/gotify/gotify-gateway-public-patch.yaml
Normal file
19
infra/envoy-gateway/gotify/gotify-gateway-public-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: gotify
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "gotify.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: gotify
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: gotify-tls
|
||||
namespace: envoy-gateway
|
||||
68
infra/envoy-gateway/httproute-template.yaml
Normal file
68
infra/envoy-gateway/httproute-template.yaml
Normal file
@@ -0,0 +1,68 @@
|
||||
# =============================================================================
|
||||
# PLACEHOLDERS:
|
||||
# <SERVICE> - listener/route name (e.g. jellyfin)
|
||||
# <NAMESPACE> - namespace the service runs in (e.g. jellyfin)
|
||||
# <HOSTNAME> - full hostname (e.g. jellyfin.jsme.be)
|
||||
# <BACKEND_SVC> - Kubernetes Service name (e.g. jellyfin)
|
||||
# <BACKEND_PORT> - port the Service exposes (e.g. 8096)
|
||||
# =============================================================================
|
||||
# apiVersion: gateway.networking.k8s.io/v1
|
||||
# kind: HTTPRoute
|
||||
# metadata:
|
||||
# name: <SERVICE>-route
|
||||
# namespace: <NAMESPACE>
|
||||
# spec:
|
||||
# parentRefs:
|
||||
# - group: gateway.networking.k8s.io
|
||||
# kind: Gateway
|
||||
# name: gateway-internal
|
||||
# namespace: envoy-gateway
|
||||
# sectionName: <SERVICE>
|
||||
# # - group: gateway.networking.k8s.io # uncomment if publicly accessible
|
||||
# # kind: Gateway
|
||||
# # name: gateway-public
|
||||
# # namespace: envoy-gateway
|
||||
# # sectionName: <SERVICE>
|
||||
# hostnames:
|
||||
# - "<HOSTNAME>"
|
||||
# rules:
|
||||
# - filters:
|
||||
# - type: RequestHeaderModifier
|
||||
# requestHeaderModifier:
|
||||
# set:
|
||||
# - name: X-Forwarded-Host
|
||||
# value: "<HOSTNAME>"
|
||||
# - name: X-Forwarded-Proto
|
||||
# value: https
|
||||
# - type: ResponseHeaderModifier
|
||||
# responseHeaderModifier:
|
||||
# set:
|
||||
# - name: Strict-Transport-Security
|
||||
# value: "max-age=31536000; includeSubDomains"
|
||||
# - name: X-Content-Type-Options
|
||||
# value: nosniff
|
||||
# - name: X-Frame-Options
|
||||
# value: SAMEORIGIN
|
||||
# - name: Referrer-Policy
|
||||
# value: strict-origin-when-cross-origin
|
||||
# - name: Permissions-Policy
|
||||
# value: "camera=(), microphone=(), geolocation=(), payment=()"
|
||||
# backendRefs:
|
||||
# - name: <BACKEND_SVC>
|
||||
# port: <BACKEND_PORT>
|
||||
# kind: Service
|
||||
# ---
|
||||
# # Optional: only needed if you need to override body size limits
|
||||
# # Remove this section if not needed
|
||||
# apiVersion: gateway.nginx.org/v1alpha1
|
||||
# kind: ClientSettingsPolicy
|
||||
# metadata:
|
||||
# name: <SERVICE>-client-settings
|
||||
# namespace: <NAMESPACE>
|
||||
# spec:
|
||||
# targetRef:
|
||||
# group: gateway.networking.k8s.io
|
||||
# kind: HTTPRoute
|
||||
# name: <SERVICE>-route
|
||||
# body:
|
||||
# maxSize: 100m # adjust as needed, use "0" for unlimited
|
||||
14
infra/envoy-gateway/immich/immich-certificate.yaml
Normal file
14
infra/envoy-gateway/immich/immich-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: immich-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: immich-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- photos.jsme.be
|
||||
19
infra/envoy-gateway/immich/immich-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/immich/immich-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: immich
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "photos.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: immich
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: immich-tls
|
||||
namespace: envoy-gateway
|
||||
19
infra/envoy-gateway/immich/immich-gateway-public-patch.yaml
Normal file
19
infra/envoy-gateway/immich/immich-gateway-public-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: immich
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "photos.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: immich
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: immich-tls
|
||||
namespace: envoy-gateway
|
||||
14
infra/envoy-gateway/infisical/infisical-certificate.yaml
Normal file
14
infra/envoy-gateway/infisical/infisical-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: infisical-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: infisical-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- infisical.jsme.be
|
||||
19
infra/envoy-gateway/infisical/infisical-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/infisical/infisical-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: infisical
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "infisical.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: infisical
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: infisical-tls
|
||||
namespace: envoy-gateway
|
||||
14
infra/envoy-gateway/it-tools/it-tools-certificate.yaml
Normal file
14
infra/envoy-gateway/it-tools/it-tools-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: it-tools-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: it-tools-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- tools.jsme.be
|
||||
19
infra/envoy-gateway/it-tools/it-tools-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/it-tools/it-tools-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: it-tools
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "tools.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: it-tools
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: it-tools-tls
|
||||
namespace: envoy-gateway
|
||||
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: it-tools
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "tools.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: it-tools
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: it-tools-tls
|
||||
namespace: envoy-gateway
|
||||
14
infra/envoy-gateway/jellyfin/jellyfin-certificate.yaml
Normal file
14
infra/envoy-gateway/jellyfin/jellyfin-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: jellyfin-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: jellyfin-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- jellyfin.jsme.be
|
||||
19
infra/envoy-gateway/jellyfin/jellyfin-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/jellyfin/jellyfin-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: jellyfin
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "jellyfin.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: jellyfin
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: jellyfin-tls
|
||||
namespace: envoy-gateway
|
||||
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: jellyfin
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "jellyfin.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: jellyfin
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: jellyfin-tls
|
||||
namespace: envoy-gateway
|
||||
14
infra/envoy-gateway/jenkins/jenkins-certificate.yaml
Normal file
14
infra/envoy-gateway/jenkins/jenkins-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: jenkins-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: jenkins-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- jenkins.jsme.be
|
||||
19
infra/envoy-gateway/jenkins/jenkins-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/jenkins/jenkins-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: jenkins
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "jenkins.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: jenkins
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: jenkins-tls
|
||||
namespace: envoy-gateway
|
||||
356
infra/envoy-gateway/kustomization.yaml
Normal file
356
infra/envoy-gateway/kustomization.yaml
Normal file
@@ -0,0 +1,356 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- gateway.yaml
|
||||
- gateway-public.yaml
|
||||
|
||||
# Policies
|
||||
- pelican/pelican-wings-clienttrafficpolicy.yaml
|
||||
- minio-aistor/minio-aistor-clienttrafficpolicy.yaml
|
||||
- minio-aistor/minio-aistor-console-clienttrafficpolicy.yaml
|
||||
|
||||
# Certificates
|
||||
- authentik/authentik-certificate.yaml
|
||||
- argocd/argocd-certificate.yaml
|
||||
- bentopdf/bentopdf-certificate.yaml
|
||||
- gitea/gitea-certificate.yaml
|
||||
- immich/immich-certificate.yaml
|
||||
- infisical/infisical-certificate.yaml
|
||||
- it-tools/it-tools-certificate.yaml
|
||||
- jellyfin/jellyfin-certificate.yaml
|
||||
- jenkins/jenkins-certificate.yaml
|
||||
- longhorn/longhorn-certificate.yaml
|
||||
- monitoring/monitoring-certificate.yaml
|
||||
- n8n/n8n-certificate.yaml
|
||||
- netbootxyz/netbootxyz-certificate.yaml
|
||||
- passbolt/passbolt-certificate.yaml
|
||||
- proxmox/proxmox-certificate.yaml
|
||||
- resume/resume-certificate.yaml
|
||||
- resume/resume-minio-certificate.yaml
|
||||
- resume/resume-minio-webui-certificate.yaml
|
||||
- minio-aistor/minio-aistor-api-certificate.yaml
|
||||
- minio-aistor/minio-aistor-console-certificate.yaml
|
||||
- technitium/technitium-certificate.yaml
|
||||
- technitium/technitium-backup-certificate.yaml
|
||||
- truenas/truenas-certificate.yaml
|
||||
- unifi/unifi-certificate.yaml
|
||||
- wikijs/wikijs-certificate.yaml
|
||||
- zipline/zipline-certificate.yaml
|
||||
- vaultwarden/vaultwarden-certificate.yaml
|
||||
- databasus/databasus-certificate.yaml
|
||||
- excalidraw/excalidraw-certificate.yaml
|
||||
- gotify/gotify-certificate.yaml
|
||||
- uptime-kuma/uptime-kuma-certificate.yaml
|
||||
- ollama/ollama-certificate.yaml
|
||||
- openwebui/openwebui-certificate.yaml
|
||||
- searxng/searxng-certificate.yaml
|
||||
- affine/affine-certificate.yaml
|
||||
- pelican/pelican-certificate.yaml
|
||||
- pelican/pelican-wings-certificate.yaml
|
||||
|
||||
patches:
|
||||
# Internal gateway patches
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: authentik/authentik-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: argocd/argocd-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: gitea/gitea-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: immich/immich-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: infisical/infisical-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: jenkins/jenkins-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: longhorn/longhorn-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: n8n/n8n-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: netbootxyz/netbootxyz-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: resume/resume-minio-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: resume/resume-minio-webui-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: technitium/technitium-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: technitium/technitium-backup-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: unifi/unifi-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: proxmox/proxmox-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: truenas/truenas-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: monitoring/monitoring-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: bentopdf/bentopdf-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: it-tools/it-tools-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: jellyfin/jellyfin-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: passbolt/passbolt-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: resume/resume-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: wikijs/wikijs-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: zipline/zipline-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: minio-aistor/minio-aistor-api-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: minio-aistor/minio-aistor-console-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: vaultwarden/vaultwarden-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: databasus/databasus-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: excalidraw/excalidraw-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: gotify/gotify-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: uptime-kuma/uptime-kuma-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: ollama/ollama-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: openwebui/openwebui-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: searxng/searxng-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: affine/affine-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: pelican/pelican-gateway-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
path: pelican/pelican-wings-gateway-patch.yaml
|
||||
|
||||
# Public gateway patches
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-public
|
||||
path: gitea/gitea-gateway-public-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-public
|
||||
path: authentik/authentik-gateway-public-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-public
|
||||
path: bentopdf/bentopdf-gateway-public-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-public
|
||||
path: it-tools/it-tools-gateway-public-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-public
|
||||
path: jellyfin/jellyfin-gateway-public-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-public
|
||||
path: immich/immich-gateway-public-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-public
|
||||
path: passbolt/passbolt-gateway-public-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-public
|
||||
path: resume/resume-gateway-public-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-public
|
||||
path: wikijs/wikijs-gateway-public-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-public
|
||||
path: zipline/zipline-gateway-public-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-public
|
||||
path: excalidraw/excalidraw-gateway-public-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-public
|
||||
path: gotify/gotify-gateway-public-patch.yaml
|
||||
# Uncomment to expose Grafana publicly — ensure Grafana auth is properly configured first
|
||||
# - target:
|
||||
# group: gateway.networking.k8s.io
|
||||
# version: v1
|
||||
# kind: Gateway
|
||||
# name: gateway-public
|
||||
# path: monitoring/monitoring-grafana-gateway-public-patch.yaml
|
||||
14
infra/envoy-gateway/longhorn/longhorn-certificate.yaml
Normal file
14
infra/envoy-gateway/longhorn/longhorn-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: longhorn-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: longhorn-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- longhorn.jsme.be
|
||||
19
infra/envoy-gateway/longhorn/longhorn-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/longhorn/longhorn-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: longhorn
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "longhorn.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: longhorn-system
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: longhorn-tls
|
||||
namespace: envoy-gateway
|
||||
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: minio-aistor-api-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: minio-aistor-api-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- s3.jsme.be
|
||||
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: minio-aistor-api
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "s3.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: minio-aistor
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: minio-aistor-api-tls
|
||||
namespace: envoy-gateway
|
||||
@@ -0,0 +1,15 @@
|
||||
apiVersion: gateway.envoyproxy.io/v1alpha1
|
||||
kind: ClientTrafficPolicy
|
||||
metadata:
|
||||
name: minio-aistor-client-traffic
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
targetRefs:
|
||||
- group: gateway.networking.k8s.io
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
sectionName: minio-aistor-api
|
||||
timeout:
|
||||
http:
|
||||
requestReceivedTimeout: 0s
|
||||
idleTimeout: 3600s
|
||||
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: minio-aistor-console-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: minio-aistor-console-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- s3-console.jsme.be
|
||||
@@ -0,0 +1,15 @@
|
||||
apiVersion: gateway.envoyproxy.io/v1alpha1
|
||||
kind: ClientTrafficPolicy
|
||||
metadata:
|
||||
name: minio-aistor-console-client-traffic
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
targetRefs:
|
||||
- group: gateway.networking.k8s.io
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
sectionName: minio-aistor-console
|
||||
timeout:
|
||||
http:
|
||||
requestReceivedTimeout: 0s
|
||||
idleTimeout: 3600s
|
||||
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: minio-aistor-console
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "s3-console.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: minio-aistor
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: minio-aistor-console-tls
|
||||
namespace: envoy-gateway
|
||||
44
infra/envoy-gateway/monitoring/monitoring-certificate.yaml
Normal file
44
infra/envoy-gateway/monitoring/monitoring-certificate.yaml
Normal file
@@ -0,0 +1,44 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: grafana-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: grafana-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- grafana.jsme.be
|
||||
---
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: vmagent-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: vmagent-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- vmagent.jsme.be
|
||||
---
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: vmetrics-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: vmetrics-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- vmetrics.jsme.be
|
||||
57
infra/envoy-gateway/monitoring/monitoring-gateway-patch.yaml
Normal file
57
infra/envoy-gateway/monitoring/monitoring-gateway-patch.yaml
Normal file
@@ -0,0 +1,57 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: grafana
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "grafana.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: victoria-metrics
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: grafana-tls
|
||||
namespace: envoy-gateway
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: vmagent
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "vmagent.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: victoria-metrics
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: vmagent-tls
|
||||
namespace: envoy-gateway
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: vmetrics
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "vmetrics.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: victoria-metrics
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: vmetrics-tls
|
||||
namespace: envoy-gateway
|
||||
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: grafana
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "grafana.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: victoria-metrics
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: grafana-tls
|
||||
namespace: envoy-gateway
|
||||
14
infra/envoy-gateway/n8n/n8n-certificate.yaml
Normal file
14
infra/envoy-gateway/n8n/n8n-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: n8n-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: n8n-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- n8n.jsme.be
|
||||
19
infra/envoy-gateway/n8n/n8n-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/n8n/n8n-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: n8n
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "n8n.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: n8n
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: n8n-tls
|
||||
namespace: envoy-gateway
|
||||
14
infra/envoy-gateway/netbootxyz/netbootxyz-certificate.yaml
Normal file
14
infra/envoy-gateway/netbootxyz/netbootxyz-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: netbootxyz-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: netbootxyz-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- netboot.jsme.be
|
||||
19
infra/envoy-gateway/netbootxyz/netbootxyz-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/netbootxyz/netbootxyz-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: netbootxyz
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "netboot.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: netbootxyz
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: netbootxyz-tls
|
||||
namespace: envoy-gateway
|
||||
14
infra/envoy-gateway/ollama/ollama-certificate.yaml
Normal file
14
infra/envoy-gateway/ollama/ollama-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: ollama-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: ollama-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- ollama.jsme.be
|
||||
19
infra/envoy-gateway/ollama/ollama-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/ollama/ollama-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: ollama
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "ollama.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: ollama
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: ollama-tls
|
||||
namespace: envoy-gateway
|
||||
14
infra/envoy-gateway/openwebui/openwebui-certificate.yaml
Normal file
14
infra/envoy-gateway/openwebui/openwebui-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: forge-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: forge-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- forge.jsme.be
|
||||
19
infra/envoy-gateway/openwebui/openwebui-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/openwebui/openwebui-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: forge
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "forge.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: openwebui
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: forge-tls
|
||||
namespace: envoy-gateway
|
||||
14
infra/envoy-gateway/passbolt/passbolt-certificate.yaml
Normal file
14
infra/envoy-gateway/passbolt/passbolt-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: passbolt-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: passbolt-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- passbolt.jsme.be
|
||||
19
infra/envoy-gateway/passbolt/passbolt-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/passbolt/passbolt-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: passbolt
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "passbolt.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: passbolt
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: passbolt-tls
|
||||
namespace: envoy-gateway
|
||||
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: passbolt
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "passbolt.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: passbolt
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: passbolt-tls
|
||||
namespace: envoy-gateway
|
||||
14
infra/envoy-gateway/pelican/pelican-certificate.yaml
Normal file
14
infra/envoy-gateway/pelican/pelican-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: pelican-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: pelican-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- pelican.jsme.be
|
||||
19
infra/envoy-gateway/pelican/pelican-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/pelican/pelican-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: pelican
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "pelican.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: pelican
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: pelican-tls
|
||||
namespace: envoy-gateway
|
||||
14
infra/envoy-gateway/pelican/pelican-wings-certificate.yaml
Normal file
14
infra/envoy-gateway/pelican/pelican-wings-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: wings-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: wings-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- wings.jsme.be
|
||||
@@ -0,0 +1,19 @@
|
||||
apiVersion: gateway.envoyproxy.io/v1alpha1
|
||||
kind: ClientTrafficPolicy
|
||||
metadata:
|
||||
name: wings-client-traffic
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
targetRefs:
|
||||
- group: gateway.networking.k8s.io
|
||||
kind: Gateway
|
||||
name: gateway-internal
|
||||
sectionName: wings
|
||||
tls:
|
||||
# Wings only speaks HTTP/1.1; disabling h2 ALPN prevents Guzzle connection-reuse broken pipe
|
||||
alpnProtocols:
|
||||
- http/1.1
|
||||
timeout:
|
||||
http:
|
||||
requestReceivedTimeout: 0s
|
||||
idleTimeout: 3600s
|
||||
19
infra/envoy-gateway/pelican/pelican-wings-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/pelican/pelican-wings-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: wings
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "wings.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: pelican
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: wings-tls
|
||||
namespace: envoy-gateway
|
||||
14
infra/envoy-gateway/proxmox/proxmox-certificate.yaml
Normal file
14
infra/envoy-gateway/proxmox/proxmox-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: proxmox-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: proxmox-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- proxmox.jsme.be
|
||||
19
infra/envoy-gateway/proxmox/proxmox-gateway-patch.yaml
Normal file
19
infra/envoy-gateway/proxmox/proxmox-gateway-patch.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
- op: add
|
||||
path: /spec/listeners/-
|
||||
value:
|
||||
name: proxmox
|
||||
protocol: HTTPS
|
||||
port: 443
|
||||
hostname: "proxmox.jsme.be"
|
||||
allowedRoutes:
|
||||
namespaces:
|
||||
from: Selector
|
||||
selector:
|
||||
matchLabels:
|
||||
kubernetes.io/metadata.name: proxmox
|
||||
tls:
|
||||
mode: Terminate
|
||||
certificateRefs:
|
||||
- kind: Secret
|
||||
name: proxmox-tls
|
||||
namespace: envoy-gateway
|
||||
14
infra/envoy-gateway/resume/resume-certificate.yaml
Normal file
14
infra/envoy-gateway/resume/resume-certificate.yaml
Normal file
@@ -0,0 +1,14 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: resume-tls
|
||||
namespace: envoy-gateway
|
||||
spec:
|
||||
secretName: resume-tls
|
||||
privateKey:
|
||||
rotationPolicy: Always
|
||||
issuerRef:
|
||||
name: azure-dns
|
||||
kind: ClusterIssuer
|
||||
dnsNames:
|
||||
- resume.jsme.be
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user