Compare commits
235 Commits
0690679d91
...
69bfdc9852
| Author | SHA1 | Date | |
|---|---|---|---|
| 69bfdc9852 | |||
| ac8b836748 | |||
| aabec35dd7 | |||
| ed1a465402 | |||
| 868ceddb22 | |||
| 4fdddee8e0 | |||
| 820e899359 | |||
| 16c41556c3 | |||
| fbaa3877a2 | |||
| 89a13d81f1 | |||
| 59a85a10f9 | |||
| d30a36c96e | |||
| 2be3d65620 | |||
| d0ef9e7586 | |||
| 06a0653eec | |||
| 2cd9be813e | |||
| e7b9086247 | |||
| 472f4064f5 | |||
| 687d890733 | |||
| 3575572a65 | |||
| 2cbc329a39 | |||
| 87b1b7dbc2 | |||
| d99920c95c | |||
| 44ded83012 | |||
| 471dcf907d | |||
| 782799f835 | |||
| 7e435f64b8 | |||
| 5efad19546 | |||
| c1b02bf142 | |||
| 8227cbd373 | |||
| 8d1c136ae7 | |||
| 5dd40718b4 | |||
| 1847fa2472 | |||
| b7bfd77883 | |||
| b98d61c5a3 | |||
|
|
418b365e2d | ||
|
|
e653d41331 | ||
|
|
10655e1ad7 | ||
| b3e86011b4 | |||
| f10021899c | |||
| b107d7a5fe | |||
|
|
02a2f4f7c9 | ||
|
|
4bc076a715 | ||
|
|
520a934cd8 | ||
|
|
430c2541e5 | ||
|
|
6f8db8ccdb | ||
|
|
9a6a16dcee | ||
|
|
d10f200c09 | ||
|
|
e0c303c38b | ||
|
|
7b188327c9 | ||
|
|
9715b9ac87 | ||
| 006094410c | |||
| 6a6bccda43 | |||
| 3233a8f769 | |||
| 69963d1c2f | |||
| 2be77594f0 | |||
| d4b0dd3c80 | |||
| 8940086c97 | |||
| b39863dee9 | |||
| b28c7ce8fd | |||
| c8fa9b77ad | |||
| ecd5ca5163 | |||
| 9ded36aa45 | |||
| 3b52a06603 | |||
| ac90414c06 | |||
| 7bcd121e3c | |||
| 0f038a8bb6 | |||
| b3032d2998 | |||
| 74ed1dca43 | |||
| 8fedb4fc9d | |||
| 6b69f85623 | |||
| 4d0a6cc470 | |||
| e3cd02fa7f | |||
| 17c2ada6a8 | |||
| d039f241f6 | |||
| 5ad297f15a | |||
| 46281b59a0 | |||
|
|
66a63be3a2 | ||
|
|
054ee57e6b | ||
|
|
799a8687ca | ||
|
|
b02f5d3727 | ||
|
|
0ef216e92f | ||
|
|
51006b03d1 | ||
|
|
643c89e794 | ||
|
|
29b8753182 | ||
|
|
841e26ba2a | ||
|
|
4d7c1779c3 | ||
| b0f6e8ead5 | |||
| 7c7890933b | |||
| 25664f4df4 | |||
| 6791096b3a | |||
| dcc3ae6aa3 | |||
| 6257d7a1d4 | |||
| 1d167cd62c | |||
| a6037a6cc1 | |||
| 5250e5ad15 | |||
| 355c881597 | |||
| 0d5a699615 | |||
| 0b87aa8630 | |||
| 1f78ec52d3 | |||
| ddd49cc031 | |||
| f31c0bf257 | |||
| 15db2e8d41 | |||
| 3020148e02 | |||
| ab6a5c96b4 | |||
| e9712ad8c6 | |||
| ea049a7ac2 | |||
| 1d3c524887 | |||
|
|
a7be2b0b74 | ||
| 19a8b05fae | |||
| 607e02496a | |||
| 5580b7dfd0 | |||
| bf76abaf83 | |||
| 124da56e0a | |||
| 8d86bd83e3 | |||
| e7f600bb80 | |||
| 0f30f72039 | |||
| febe9fbdf5 | |||
| 72903cb7cc | |||
| 6638751ee8 | |||
| d616df5b1b | |||
| 4dd69bac83 | |||
| 177e6740d5 | |||
| b0e955a8af | |||
| e8665c4379 | |||
| 5a936831f7 | |||
| 756744c379 | |||
| fe2f50f351 | |||
| ced106bf3a | |||
| c14346bb2e | |||
| c6fde4ad40 | |||
| da5f19f9d3 | |||
| 495ddce824 | |||
| 43ef21d99b | |||
| 49abd7fb28 | |||
| 0437fadc15 | |||
| d0f4780b6c | |||
| affd851017 | |||
| c016db260e | |||
| 5cb7ca72d8 | |||
| 7d0e2f4b22 | |||
| f9f1e101a9 | |||
| 977d652d8b | |||
| 302184d655 | |||
| 7b72bb16f7 | |||
| 95386b345a | |||
| cb64c2d05d | |||
| cbadf7ce19 | |||
| 39bf52cae3 | |||
| 362037c198 | |||
| af5f6e1257 | |||
| 0ae3c80a81 | |||
| 9b9f36859f | |||
| 5525c9bba5 | |||
| f4eaa739e9 | |||
| 37fd96179d | |||
|
|
17c3e5dddf | ||
| beef704102 | |||
| 4708a70a34 | |||
| 29661b9bf7 | |||
|
|
a8e7ac07c8 | ||
|
|
fe79c830cb | ||
| cd1abb4cec | |||
|
|
0a1d45d16a | ||
|
|
3acedbfdd2 | ||
|
|
6cbba2abec | ||
|
|
f8d47b89d9 | ||
|
|
72ce4db466 | ||
|
|
5e03a9e40e | ||
| cb821ae051 | |||
|
|
9e4f732d45 | ||
| 065b4787c8 | |||
| 8b498e971d | |||
| 96872dc7b0 | |||
| c5ec227c48 | |||
| 4ae919f070 | |||
| d88e58a5a1 | |||
| 4105842b31 | |||
| f083c707d5 | |||
| ee8c9571b2 | |||
| 4ca9d3150c | |||
| 49e48e7e45 | |||
| 643ec165fc | |||
| 72e6598aae | |||
| e2af26316f | |||
| cdd34130aa | |||
| 95be6528f2 | |||
| 5f3bd1c507 | |||
| 97375239af | |||
| 4ce97eca7a | |||
| 818123fee1 | |||
| bd7adf4065 | |||
| eedb7d8380 | |||
| d506b1964b | |||
| 5e0ce5c39c | |||
| 45af1f9be9 | |||
| 8c27fdce5f | |||
| bff82fd82f | |||
| 960a681b6f | |||
| e6c3dc4357 | |||
| 107dd520b3 | |||
| 263ed8d805 | |||
| 19a1c7ebd3 | |||
| e74142b072 | |||
| 16745c9f2b | |||
| 5d8f11b8ea | |||
| f4e0a20954 | |||
| 596420a053 | |||
| 235806871f | |||
| f81893afee | |||
| 36e8dde91d | |||
| 71340d6b3f | |||
| c5d12501ef | |||
| 3a5a9838b2 | |||
| 9f8dc8f8ed | |||
| 9514ffc44a | |||
| 04da18d4ee | |||
| de5dc93ecf | |||
| d781ccc052 | |||
| 137fbd4822 | |||
| 6ed5b70eaf | |||
| 13435c5f47 | |||
| bf3b202308 | |||
| f9fca17edb | |||
| 721d9be377 | |||
|
|
ad8f5884e7 | ||
|
|
22d82b0082 | ||
|
|
d35c0757fb | ||
|
|
ab868d0c26 | ||
|
|
9a587d2f75 | ||
|
|
2d00ceda68 | ||
|
|
821c206174 | ||
|
|
10168e7534 | ||
|
|
6a26e350d3 | ||
|
|
5c84b0bd26 |
@@ -1 +1,2 @@
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGhPVgL8gXdRTw0E2FvlOUoUI4vd794nB0nZVIsc+U5M
|
||||
sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIGilcndatMrXg06VxtNKuIo3scoyyXbYX8Z7cOjeA102AAAABHNzaDo= desktop-arch-09-08-2025-yubikey
|
||||
sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAINsbNSZ5Wr+50Ahz+IeZxt6F7gZ6wm1J8uKXQLbdbKFaAAAABHNzaDo= desktop-arch-09-08-2025-yubikeyNano
|
||||
@@ -8,4 +8,4 @@ appVersion: 0.0.1
|
||||
dependencies:
|
||||
- name: cert-manager
|
||||
repository: https://charts.jetstack.io
|
||||
version: v1.16.3
|
||||
version: v1.17.2
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: cloudflare-api-token-secret
|
||||
|
||||
@@ -9,4 +9,4 @@ appVersion: 0.0.1
|
||||
dependencies:
|
||||
- name: external-dns
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 8.3.8
|
||||
version: 8.9.2
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: external-dns-secret
|
||||
|
||||
@@ -8,4 +8,4 @@ appVersion: 0.0.1
|
||||
dependencies:
|
||||
- name: external-secrets
|
||||
repository: https://charts.external-secrets.io
|
||||
version: 0.13.0
|
||||
version: 0.17.0
|
||||
|
||||
@@ -9,4 +9,4 @@ appVersion: "1.16.0"
|
||||
dependencies:
|
||||
- name: metallb
|
||||
repository: https://metallb.github.io/metallb
|
||||
version: 0.14.9
|
||||
version: 0.15.2
|
||||
|
||||
@@ -3,7 +3,7 @@ terraform {
|
||||
required_providers {
|
||||
proxmox = {
|
||||
source = "Telmate/proxmox"
|
||||
version = "3.0.1-rc6"
|
||||
version = "3.0.1-rc9"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,4 +8,4 @@ appVersion: 0.0.1
|
||||
dependencies:
|
||||
- name: traefik
|
||||
repository: https://traefik.github.io/charts
|
||||
version: 34.0.0
|
||||
version: 34.5.0
|
||||
|
||||
@@ -8,5 +8,5 @@ appVersion: 0.0.1
|
||||
dependencies:
|
||||
- name: vault
|
||||
repository: https://helm.releases.hashicorp.com
|
||||
version: 0.29.1
|
||||
version: 0.30.0
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ClusterSecretStore
|
||||
metadata:
|
||||
name: vault
|
||||
|
||||
62
dmz/authentik/templates/ingress.yaml
Normal file
62
dmz/authentik/templates/ingress.yaml
Normal file
@@ -0,0 +1,62 @@
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: authentik-tls
|
||||
spec:
|
||||
issuerRef:
|
||||
name: letsencrypt-production
|
||||
kind: ClusterIssuer
|
||||
secretName: authentik-tls
|
||||
commonName: "authentik.durp.info"
|
||||
dnsNames:
|
||||
- "authentik.durp.info"
|
||||
|
||||
---
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: authentik-ingress
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- match: Host(`authentik.durp.info`) && PathPrefix(`/`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: infra-cluster
|
||||
port: 443
|
||||
tls:
|
||||
secretName: authentik-tls
|
||||
|
||||
---
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: authentik-external-dns
|
||||
annotations:
|
||||
external-dns.alpha.kubernetes.io/hostname: authentik.durp.info
|
||||
spec:
|
||||
type: ExternalName
|
||||
externalName: durp.info
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Endpoints
|
||||
metadata:
|
||||
name: infra-cluster
|
||||
subsets:
|
||||
- addresses:
|
||||
- ip: 192.168.12.130
|
||||
ports:
|
||||
- port: 443
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: infra-cluster
|
||||
spec:
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 443
|
||||
targetPort: 443
|
||||
@@ -8,4 +8,4 @@ appVersion: 0.0.1
|
||||
dependencies:
|
||||
- name: cert-manager
|
||||
repository: https://charts.jetstack.io
|
||||
version: v1.16.3
|
||||
version: v1.17.2
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: cloudflare-api-token-secret
|
||||
|
||||
11
dmz/crowdsec/Chart.yaml
Normal file
11
dmz/crowdsec/Chart.yaml
Normal file
@@ -0,0 +1,11 @@
|
||||
apiVersion: v2
|
||||
name: crowdsec
|
||||
description: A Helm chart for Kubernetes
|
||||
type: application
|
||||
version: 0.0.1
|
||||
appVersion: 0.0.1
|
||||
|
||||
dependencies:
|
||||
- name: crowdsec
|
||||
repository: https://crowdsecurity.github.io/helm-charts
|
||||
version: 0.19.4
|
||||
29
dmz/crowdsec/templates/secrets.yaml
Normal file
29
dmz/crowdsec/templates/secrets.yaml
Normal file
@@ -0,0 +1,29 @@
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: enroll-key
|
||||
spec:
|
||||
secretStoreRef:
|
||||
name: vault
|
||||
kind: ClusterSecretStore
|
||||
target:
|
||||
name: enroll-key
|
||||
data:
|
||||
- secretKey: ENROLL_INSTANCE_NAME
|
||||
remoteRef:
|
||||
key: kv/crowdsec/dmz-enroll
|
||||
property: ENROLL_INSTANCE_NAME
|
||||
- secretKey: ENROLL_KEY
|
||||
remoteRef:
|
||||
key: kv/crowdsec/dmz-enroll
|
||||
property: ENROLL_KEY
|
||||
- secretKey: ENROLL_TAGS
|
||||
remoteRef:
|
||||
key: kv/crowdsec/dmz-enroll
|
||||
property: ENROLL_TAGS
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: vault
|
||||
24
dmz/crowdsec/values.yaml
Normal file
24
dmz/crowdsec/values.yaml
Normal file
@@ -0,0 +1,24 @@
|
||||
crowdsec:
|
||||
#
|
||||
image:
|
||||
repository: registry.durp.info/crowdsecurity/crowdsec
|
||||
pullPolicy: Always
|
||||
|
||||
# for raw logs format: json or cri (docker|containerd)
|
||||
container_runtime: containerd
|
||||
agent:
|
||||
# Specify each pod whose logs you want to process
|
||||
acquisition:
|
||||
# The namespace where the pod is located
|
||||
- namespace: traefik
|
||||
# The pod name
|
||||
podName: traefik-*
|
||||
# as in crowdsec configuration, we need to specify the program name to find a matching parser
|
||||
program: traefik
|
||||
env:
|
||||
- name: COLLECTIONS
|
||||
value: "crowdsecurity/traefik"
|
||||
lapi:
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: enroll-key
|
||||
@@ -9,4 +9,4 @@ appVersion: 0.0.1
|
||||
dependencies:
|
||||
- name: external-dns
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 8.3.8
|
||||
version: 8.9.2
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: external-dns-secret
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
external-dns:
|
||||
global:
|
||||
imageRegistry: "registry.durp.info"
|
||||
security:
|
||||
allowInsecureImages: true
|
||||
|
||||
image:
|
||||
pullPolicy: Always
|
||||
@@ -9,10 +11,10 @@ external-dns:
|
||||
|
||||
sources:
|
||||
- service
|
||||
|
||||
|
||||
provider: cloudflare
|
||||
cloudflare:
|
||||
secretName : "external-dns"
|
||||
secretName: "external-dns"
|
||||
proxied: false
|
||||
|
||||
policy: sync
|
||||
|
||||
@@ -6,6 +6,6 @@ version: 0.0.1
|
||||
appVersion: 0.0.1
|
||||
|
||||
dependencies:
|
||||
- name: external-secrets
|
||||
repository: https://charts.external-secrets.io
|
||||
version: 0.15.0
|
||||
- name: external-secrets
|
||||
repository: https://charts.external-secrets.io
|
||||
version: 0.17.0
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
external-secrets:
|
||||
global:
|
||||
security:
|
||||
allowInsecureImages: true
|
||||
|
||||
log:
|
||||
level: debug
|
||||
replicaCount: 1
|
||||
revisionHistoryLimit: 1
|
||||
leaderElect: true
|
||||
leaderElect: false
|
||||
|
||||
installCRDs: true
|
||||
crds:
|
||||
@@ -27,13 +33,13 @@ external-secrets:
|
||||
subPath: vault.pem
|
||||
readOnly: true
|
||||
|
||||
resources:
|
||||
requests:
|
||||
memory: 32Mi
|
||||
cpu: 10m
|
||||
limits:
|
||||
memory: 32Mi
|
||||
cpu: 10m
|
||||
# resources:
|
||||
# requests:
|
||||
# memory: 32Mi
|
||||
# cpu: 10m
|
||||
# limits:
|
||||
# memory: 32Mi
|
||||
# cpu: 10m
|
||||
|
||||
webhook:
|
||||
create: false
|
||||
@@ -55,13 +61,13 @@ external-secrets:
|
||||
subPath: vault.pem
|
||||
readOnly: true
|
||||
|
||||
resources:
|
||||
requests:
|
||||
memory: 32Mi
|
||||
cpu: 10m
|
||||
limits:
|
||||
memory: 32Mi
|
||||
cpu: 10m
|
||||
# resources:
|
||||
# requests:
|
||||
# memory: 32Mi
|
||||
# cpu: 10m
|
||||
# limits:
|
||||
# memory: 32Mi
|
||||
# cpu: 10m
|
||||
|
||||
certController:
|
||||
create: false
|
||||
|
||||
@@ -8,8 +8,8 @@ appVersion: 0.0.1
|
||||
dependencies:
|
||||
- name: gitlab-runner
|
||||
repository: https://charts.gitlab.io/
|
||||
version: 0.69.0
|
||||
version: 0.77.2
|
||||
- name: gitlab-runner
|
||||
repository: https://charts.gitlab.io/
|
||||
version: 0.69.0
|
||||
version: 0.77.2
|
||||
alias: personal
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: gitlab-secret
|
||||
@@ -27,7 +27,7 @@ metadata:
|
||||
|
||||
---
|
||||
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: gitlab-secret-personal
|
||||
|
||||
@@ -1,42 +1,40 @@
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: authentik-ingress
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- match: Host(`authentik.durp.info`) && PathPrefix(`/`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: infra-cluster
|
||||
port: 443
|
||||
tls:
|
||||
secretName: authentik-tls
|
||||
|
||||
---
|
||||
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: authentik-tls
|
||||
spec:
|
||||
issuerRef:
|
||||
name: letsencrypt-production
|
||||
kind: ClusterIssuer
|
||||
secretName: authentik-tls
|
||||
commonName: "authentik.durp.info"
|
||||
dnsNames:
|
||||
- "authentik.durp.info"
|
||||
|
||||
---
|
||||
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: authentik-external-dns
|
||||
annotations:
|
||||
external-dns.alpha.kubernetes.io/hostname: authentik.durp.info
|
||||
spec:
|
||||
type: ExternalName
|
||||
externalName: durp.info
|
||||
#apiVersion: traefik.io/v1alpha1
|
||||
#kind: IngressRoute
|
||||
#metadata:
|
||||
# name: authentik-ingress
|
||||
#spec:
|
||||
# entryPoints:
|
||||
# - websecure
|
||||
# routes:
|
||||
# - match: Host(`authentik.durp.info`) && PathPrefix(`/`)
|
||||
# kind: Rule
|
||||
# services:
|
||||
# - name: infra-cluster
|
||||
# port: 443
|
||||
# tls:
|
||||
# secretName: authentik-tls
|
||||
#
|
||||
#---
|
||||
#apiVersion: cert-manager.io/v1
|
||||
#kind: Certificate
|
||||
#metadata:
|
||||
# name: authentik-tls
|
||||
#spec:
|
||||
# issuerRef:
|
||||
# name: letsencrypt-production
|
||||
# kind: ClusterIssuer
|
||||
# secretName: authentik-tls
|
||||
# commonName: "authentik.durp.info"
|
||||
# dnsNames:
|
||||
# - "authentik.durp.info"
|
||||
#
|
||||
#---
|
||||
#kind: Service
|
||||
#apiVersion: v1
|
||||
#metadata:
|
||||
# name: authentik-external-dns
|
||||
# annotations:
|
||||
# external-dns.alpha.kubernetes.io/hostname: authentik.durp.info
|
||||
#spec:
|
||||
# type: ExternalName
|
||||
# externalName: durp.info
|
||||
|
||||
40
dmz/internalproxy/templates/grafana.yaml
Normal file
40
dmz/internalproxy/templates/grafana.yaml
Normal file
@@ -0,0 +1,40 @@
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: grafana-ingress
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- match: Host(`grafana.durp.info`) && PathPrefix(`/`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: infra-cluster
|
||||
port: 443
|
||||
tls:
|
||||
secretName: grafana-tls
|
||||
|
||||
---
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: grafana-tls
|
||||
spec:
|
||||
issuerRef:
|
||||
name: letsencrypt-production
|
||||
kind: ClusterIssuer
|
||||
secretName: grafana-tls
|
||||
commonName: "grafana.durp.info"
|
||||
dnsNames:
|
||||
- "grafana.durp.info"
|
||||
|
||||
---
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: grafana-external-dns
|
||||
annotations:
|
||||
external-dns.alpha.kubernetes.io/hostname: grafana.durp.info
|
||||
spec:
|
||||
type: ExternalName
|
||||
externalName: durp.info
|
||||
72
dmz/internalproxy/templates/n8n.yaml
Normal file
72
dmz/internalproxy/templates/n8n.yaml
Normal file
@@ -0,0 +1,72 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: n8n
|
||||
spec:
|
||||
ports:
|
||||
- name: app
|
||||
port: 5678
|
||||
protocol: TCP
|
||||
targetPort: 5678
|
||||
clusterIP: None
|
||||
type: ClusterIP
|
||||
|
||||
---
|
||||
|
||||
apiVersion: v1
|
||||
kind: Endpoints
|
||||
metadata:
|
||||
name: n8n
|
||||
subsets:
|
||||
- addresses:
|
||||
- ip: 192.168.20.104
|
||||
ports:
|
||||
- name: app
|
||||
port: 5678
|
||||
protocol: TCP
|
||||
|
||||
---
|
||||
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: n8n-ingress
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- match: Host(`n8n.durp.info`) && PathPrefix(`/`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: n8n
|
||||
port: 5678
|
||||
scheme: http
|
||||
tls:
|
||||
secretName: n8n-tls
|
||||
|
||||
---
|
||||
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: n8n-tls
|
||||
spec:
|
||||
secretName: n8n-tls
|
||||
issuerRef:
|
||||
name: letsencrypt-production
|
||||
kind: ClusterIssuer
|
||||
commonName: "n8n.durp.info"
|
||||
dnsNames:
|
||||
- "n8n.durp.info"
|
||||
|
||||
---
|
||||
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: n8n-dns
|
||||
annotations:
|
||||
dns.alpha.kubernetes.io/hostname: n8n.durp.info
|
||||
spec:
|
||||
type: ExternalName
|
||||
externalName: durp.info
|
||||
@@ -15,7 +15,6 @@ spec:
|
||||
secretName: octopus-tls
|
||||
|
||||
---
|
||||
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
@@ -30,7 +29,6 @@ spec:
|
||||
- "octopus.durp.info"
|
||||
|
||||
---
|
||||
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: ollama-secret
|
||||
|
||||
@@ -4,29 +4,27 @@ metadata:
|
||||
name: registry
|
||||
spec:
|
||||
ports:
|
||||
- name: app
|
||||
port: 5000
|
||||
protocol: TCP
|
||||
targetPort: 5000
|
||||
- name: app
|
||||
port: 5000
|
||||
protocol: TCP
|
||||
targetPort: 5000
|
||||
clusterIP: None
|
||||
type: ClusterIP
|
||||
|
||||
---
|
||||
|
||||
apiVersion: v1
|
||||
kind: Endpoints
|
||||
metadata:
|
||||
name: registry
|
||||
subsets:
|
||||
- addresses:
|
||||
- ip: 192.168.21.200
|
||||
ports:
|
||||
- name: app
|
||||
port: 5000
|
||||
protocol: TCP
|
||||
|
||||
---
|
||||
- addresses:
|
||||
- ip: 192.168.21.200
|
||||
ports:
|
||||
- name: app
|
||||
port: 5000
|
||||
protocol: TCP
|
||||
|
||||
---
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
@@ -35,16 +33,18 @@ spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- match: Host(`registry.durp.info`) && PathPrefix(`/`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: registry
|
||||
port: 5000
|
||||
- match: Host(`registry.durp.info`) && PathPrefix(`/`)
|
||||
kind: Rule
|
||||
middlewares:
|
||||
- name: whitelist
|
||||
namespace: traefik
|
||||
services:
|
||||
- name: registry
|
||||
port: 5000
|
||||
tls:
|
||||
secretName: registry-tls
|
||||
|
||||
---
|
||||
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
@@ -56,16 +56,15 @@ spec:
|
||||
kind: ClusterIssuer
|
||||
commonName: "registry.durp.info"
|
||||
dnsNames:
|
||||
- "registry.durp.info"
|
||||
- "registry.durp.info"
|
||||
|
||||
---
|
||||
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: registry-external-dns
|
||||
annotations:
|
||||
external-dns.alpha.kubernetes.io/hostname: registry.durp.info
|
||||
spec:
|
||||
type: ExternalName
|
||||
externalName: durp.info
|
||||
#kind: Service
|
||||
#apiVersion: v1
|
||||
#metadata:
|
||||
# name: registry-external-dns
|
||||
# annotations:
|
||||
# external-dns.alpha.kubernetes.io/hostname: registry.durp.info
|
||||
#spec:
|
||||
# type: ExternalName
|
||||
# externalName: durp.info
|
||||
|
||||
@@ -8,10 +8,10 @@ appVersion: 0.0.1
|
||||
dependencies:
|
||||
- name: base
|
||||
repository: https://istio-release.storage.googleapis.com/charts
|
||||
version: 1.25.1
|
||||
version: 1.26.2
|
||||
- name: istiod
|
||||
repository: https://istio-release.storage.googleapis.com/charts
|
||||
version: 1.25.1
|
||||
version: 1.26.2
|
||||
- name: gateway
|
||||
repository: https://istio-release.storage.googleapis.com/charts
|
||||
version: 1.25.1
|
||||
version: 1.26.2
|
||||
@@ -9,4 +9,4 @@ appVersion: "1.16.0"
|
||||
dependencies:
|
||||
- name: longhorn
|
||||
repository: https://charts.longhorn.io
|
||||
version: 1.7.2
|
||||
version: 1.9.0
|
||||
|
||||
@@ -5,7 +5,7 @@ metadata:
|
||||
|
||||
---
|
||||
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: external-longhorn-backup-token-secret
|
||||
|
||||
@@ -9,4 +9,4 @@ appVersion: "1.16.0"
|
||||
dependencies:
|
||||
- name: metallb
|
||||
repository: https://metallb.github.io/metallb
|
||||
version: 0.14.9
|
||||
version: 0.15.2
|
||||
|
||||
@@ -6,19 +6,18 @@ spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- match: Host(`redlib.durp.info`) && PathPrefix(`/`)
|
||||
kind: Rule
|
||||
middlewares:
|
||||
- name: authentik-proxy-provider
|
||||
namespace: traefik
|
||||
services:
|
||||
- name: redlib
|
||||
port: 8080
|
||||
- match: Host(`redlib.durp.info`) && PathPrefix(`/`)
|
||||
kind: Rule
|
||||
middlewares:
|
||||
- name: authentik-proxy-provider
|
||||
namespace: traefik
|
||||
services:
|
||||
- name: redlib
|
||||
port: 8080
|
||||
tls:
|
||||
secretName: redlib-tls
|
||||
|
||||
---
|
||||
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
@@ -30,10 +29,9 @@ spec:
|
||||
kind: ClusterIssuer
|
||||
commonName: "redlib.durp.info"
|
||||
dnsNames:
|
||||
- "redlib.durp.info"
|
||||
- "redlib.durp.info"
|
||||
|
||||
---
|
||||
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
|
||||
@@ -3,7 +3,7 @@ terraform {
|
||||
required_providers {
|
||||
proxmox = {
|
||||
source = "Telmate/proxmox"
|
||||
version = "3.0.1-rc6"
|
||||
version = "3.0.1-rc9"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,4 +8,4 @@ appVersion: 0.0.1
|
||||
dependencies:
|
||||
- name: traefik
|
||||
repository: https://traefik.github.io/charts
|
||||
version: 34.0.0
|
||||
version: 34.5.0
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: Middleware
|
||||
metadata:
|
||||
name: authentik-proxy-provider
|
||||
namespace: traefik
|
||||
name: authentik-proxy-provider
|
||||
namespace: traefik
|
||||
spec:
|
||||
forwardAuth:
|
||||
address: http://ak-outpost-dmz-embedded-outpost.authentik.svc.cluster.local:9000/outpost.goauthentik.io/auth/traefik?rd=$scheme://$http_host$request_uri
|
||||
address: http://ak-outpost-authentik-dmz-outpost.authentik.svc.cluster.local:9000/outpost.goauthentik.io/auth/traefik?rd=$scheme://$http_host$request_uri
|
||||
trustForwardHeader: true
|
||||
authResponseHeaders:
|
||||
- X-authentik-username
|
||||
@@ -21,7 +21,6 @@ spec:
|
||||
- X-authentik-meta-version
|
||||
|
||||
---
|
||||
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: Middleware
|
||||
metadata:
|
||||
@@ -33,3 +32,23 @@ spec:
|
||||
- 192.168.0.0/16
|
||||
- 172.16.0.0/12
|
||||
- 10.0.0.0/8
|
||||
|
||||
---
|
||||
#apiVersion: traefik.io/v1alpha1
|
||||
#kind: Middleware
|
||||
#metadata:
|
||||
# name: bouncer
|
||||
# namespace: traefik
|
||||
#spec:
|
||||
# plugin:
|
||||
# bouncer:
|
||||
# enabled: true
|
||||
# crowdsecMode: stream
|
||||
# crowdsecLapiScheme: https
|
||||
# crowdsecLapiTLSInsecureVerify: true
|
||||
# crowdsecLapiHost: crowdsec-service.crowdsec:8080
|
||||
# crowdsecLapiKey:
|
||||
# valueFrom:
|
||||
# secretKeyRef:
|
||||
# name: crowdsec-lapi-key
|
||||
# key: lapi-key
|
||||
|
||||
21
dmz/traefik/templates/secrets.yaml
Normal file
21
dmz/traefik/templates/secrets.yaml
Normal file
@@ -0,0 +1,21 @@
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: crowdsec-lapi-key
|
||||
spec:
|
||||
secretStoreRef:
|
||||
name: vault
|
||||
kind: ClusterSecretStore
|
||||
target:
|
||||
name: crowdsec-lapi-key
|
||||
data:
|
||||
- secretKey: lapi-key
|
||||
remoteRef:
|
||||
key: kv/crowdsec/api
|
||||
property: key
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: vault
|
||||
@@ -1,34 +1,35 @@
|
||||
#apiVersion: traefik.io/v1alpha1
|
||||
#kind: IngressRoute
|
||||
#metadata:
|
||||
# name: traefik-ingress
|
||||
#spec:
|
||||
# entryPoints:
|
||||
# - websecure
|
||||
# routes:
|
||||
# - match: Host(`traefik.durp.info`)
|
||||
# kind: Rule
|
||||
# services:
|
||||
# - name: api@internal
|
||||
# kind: TraefikService
|
||||
# tls:
|
||||
# secretName: traefik-tls
|
||||
#
|
||||
#---
|
||||
#
|
||||
#apiVersion: cert-manager.io/v1
|
||||
#kind: Certificate
|
||||
#metadata:
|
||||
# name: traefik-tls
|
||||
# namespace: traefik
|
||||
#spec:
|
||||
# secretName: traefik-tls
|
||||
# issuerRef:
|
||||
# name: letsencrypt-production
|
||||
# kind: ClusterIssuer
|
||||
# commonName: "traefik.durp.info"
|
||||
# dnsNames:
|
||||
# - "traefik.durp.info"
|
||||
#
|
||||
#---
|
||||
#
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: traefik-ingress
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- match: Host(`traefik.dmz.durp.info`)
|
||||
kind: Rule
|
||||
middlewares:
|
||||
- name: whitelist
|
||||
namespace: traefik
|
||||
- name: authentik-proxy-provider
|
||||
namespace: traefik
|
||||
services:
|
||||
- name: api@internal
|
||||
kind: TraefikService
|
||||
tls:
|
||||
secretName: traefik-tls
|
||||
|
||||
---
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: traefik-tls
|
||||
namespace: traefik
|
||||
spec:
|
||||
secretName: traefik-tls
|
||||
issuerRef:
|
||||
name: vault-issuer
|
||||
kind: ClusterIssuer
|
||||
commonName: "traefik.dmz.durp.info"
|
||||
dnsNames:
|
||||
- "traefik.dmz.durp.info"
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
traefik:
|
||||
image:
|
||||
image:
|
||||
# registry: registry.durp.info
|
||||
# repository: traefik
|
||||
pullPolicy: Always
|
||||
|
||||
providers:
|
||||
|
||||
providers:
|
||||
kubernetesCRD:
|
||||
allowCrossNamespace: true
|
||||
allowExternalNameServices: true
|
||||
@@ -18,40 +18,41 @@ traefik:
|
||||
# - name: traefik-configmap
|
||||
# mountPath: "/config"
|
||||
# type: configMap
|
||||
|
||||
|
||||
ingressRoute:
|
||||
dashboard:
|
||||
enabled: true
|
||||
|
||||
additionalArguments:
|
||||
|
||||
additionalArguments:
|
||||
# - "--providers.file.filename=/config/config.yml"
|
||||
- "--serversTransport.insecureSkipVerify=true"
|
||||
- "--log.level=DEBUG"
|
||||
- --experimental.plugins.jwt.moduleName=github.com/traefik-plugins/traefik-jwt-plugin
|
||||
- --experimental.plugins.jwt.version=v0.7.0
|
||||
|
||||
- --experimental.plugins.bouncer.moduleName=github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin
|
||||
- --experimental.plugins.bouncer.version=v1.4.2
|
||||
|
||||
autoscaling:
|
||||
enabled: true
|
||||
minReplicas: 3
|
||||
maxReplicas: 10
|
||||
metrics:
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: 80
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: 80
|
||||
behavior:
|
||||
scaleDown:
|
||||
stabilizationWindowSeconds: 300
|
||||
policies:
|
||||
- type: Pods
|
||||
value: 1
|
||||
periodSeconds: 60
|
||||
|
||||
|
||||
- type: Pods
|
||||
value: 1
|
||||
periodSeconds: 60
|
||||
|
||||
# -- [Resources](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for `traefik` container.
|
||||
resources:
|
||||
resources:
|
||||
requests:
|
||||
cpu: "100m"
|
||||
memory: "512Mi"
|
||||
|
||||
@@ -8,5 +8,5 @@ appVersion: 0.0.1
|
||||
dependencies:
|
||||
- name: vault
|
||||
repository: https://helm.releases.hashicorp.com
|
||||
version: 0.29.1
|
||||
version: 0.30.0
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ClusterSecretStore
|
||||
metadata:
|
||||
name: vault
|
||||
|
||||
@@ -9,4 +9,4 @@ appVersion: "1.16.0"
|
||||
dependencies:
|
||||
- name: argo-cd
|
||||
repository: https://argoproj.github.io/argo-helm
|
||||
version: 6.11.1
|
||||
version: 8.1.3
|
||||
|
||||
101
infra/argocd/templates/argocd-crossplane.yaml
Normal file
101
infra/argocd/templates/argocd-crossplane.yaml
Normal file
@@ -0,0 +1,101 @@
|
||||
#apiVersion: external-secrets.io/v1
|
||||
#kind: ExternalSecret
|
||||
#metadata:
|
||||
# name: argocd-secret-crossplane
|
||||
#spec:
|
||||
# secretStoreRef:
|
||||
# name: vault
|
||||
# kind: ClusterSecretStore
|
||||
# target:
|
||||
# name: argocd-secret-crossplane
|
||||
# data:
|
||||
# - secretKey: authToken
|
||||
# remoteRef:
|
||||
# key: kv/argocd/provider-argocd
|
||||
# property: token
|
||||
#
|
||||
#---
|
||||
#apiVersion: external-secrets.io/v1
|
||||
#kind: ExternalSecret
|
||||
#metadata:
|
||||
# name: prod-kubeconfig
|
||||
#spec:
|
||||
# secretStoreRef:
|
||||
# name: vault
|
||||
# kind: ClusterSecretStore
|
||||
# target:
|
||||
# name: prod-kubeconfig
|
||||
# data:
|
||||
# - secretKey: kubeconfig
|
||||
# remoteRef:
|
||||
# key: kv/argocd/prd
|
||||
# property: kubeconfig
|
||||
#
|
||||
#---
|
||||
#apiVersion: argocd.crossplane.io/v1alpha1
|
||||
#kind: ProviderConfig
|
||||
#metadata:
|
||||
# name: argocd-provider
|
||||
#spec:
|
||||
# serverAddr: argocd-server.argocd.svc:443
|
||||
# insecure: true
|
||||
# plainText: false
|
||||
# credentials:
|
||||
# source: Secret
|
||||
# secretRef:
|
||||
# namespace: argocd
|
||||
# name: argocd-secret-crossplane
|
||||
# key: authToken
|
||||
#
|
||||
#---
|
||||
#apiVersion: cluster.argocd.crossplane.io/v1alpha1
|
||||
#kind: Cluster
|
||||
#metadata:
|
||||
# name: prd
|
||||
# labels:
|
||||
# purpose: prd
|
||||
#spec:
|
||||
# forProvider:
|
||||
# name: prd
|
||||
# config:
|
||||
# kubeconfigSecretRef:
|
||||
# name: prod-kubeconfig
|
||||
# namespace: argocd
|
||||
# key: kubeconfig
|
||||
# providerConfigRef:
|
||||
# name: argocd-provider
|
||||
#
|
||||
#---
|
||||
#apiVersion: external-secrets.io/v1
|
||||
#kind: ExternalSecret
|
||||
#metadata:
|
||||
# name: dev-kubeconfig
|
||||
#spec:
|
||||
# secretStoreRef:
|
||||
# name: vault
|
||||
# kind: ClusterSecretStore
|
||||
# target:
|
||||
# name: dev-kubeconfig
|
||||
# data:
|
||||
# - secretKey: kubeconfig
|
||||
# remoteRef:
|
||||
# key: kv/argocd/dev
|
||||
# property: kubeconfig
|
||||
#
|
||||
#---
|
||||
#apiVersion: cluster.argocd.crossplane.io/v1alpha1
|
||||
#kind: Cluster
|
||||
#metadata:
|
||||
# name: dev
|
||||
# labels:
|
||||
# purpose: dev
|
||||
#spec:
|
||||
# forProvider:
|
||||
# name: dev
|
||||
# config:
|
||||
# kubeconfigSecretRef:
|
||||
# name: dev-kubeconfig
|
||||
# namespace: argocd
|
||||
# key: kubeconfig
|
||||
# providerConfigRef:
|
||||
# name: argocd-provider
|
||||
@@ -21,7 +21,7 @@ spec:
|
||||
|
||||
---
|
||||
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: vault-argocd
|
||||
|
||||
@@ -18,12 +18,11 @@ spec:
|
||||
# istio-injection: enabled
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- CreateNamespace=true
|
||||
|
||||
---
|
||||
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
@@ -41,7 +40,6 @@ spec:
|
||||
syncPolicy:
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
|
||||
- CreateNamespace=true
|
||||
|
||||
20
infra/argocd/templates/crowdsec.yaml
Normal file
20
infra/argocd/templates/crowdsec.yaml
Normal file
@@ -0,0 +1,20 @@
|
||||
#apiVersion: argoproj.io/v1alpha1
|
||||
#kind: Application
|
||||
#metadata:
|
||||
# name: crowdsec
|
||||
# namespace: argocd
|
||||
#spec:
|
||||
# project: default
|
||||
# source:
|
||||
# repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||
# targetRevision: main
|
||||
# path: dmz/crowdsec
|
||||
# destination:
|
||||
# namespace: crowdsec
|
||||
# name: dmz
|
||||
# syncPolicy:
|
||||
# automated:
|
||||
# prune: true
|
||||
# selfHeal: true
|
||||
# syncOptions:
|
||||
# - CreateNamespace=true
|
||||
@@ -18,17 +18,16 @@ spec:
|
||||
topology.istio.io/network: network1
|
||||
automated:
|
||||
prune: true
|
||||
selfHeal: true
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
- CreateNamespace=true
|
||||
ignoreDifferences:
|
||||
- group: admissionregistration.k8s.io
|
||||
kind: ValidatingWebhookConfiguration
|
||||
jsonPointers:
|
||||
- /webhooks/0/failurePolicy
|
||||
- group: admissionregistration.k8s.io
|
||||
kind: ValidatingWebhookConfiguration
|
||||
jsonPointers:
|
||||
- /webhooks/0/failurePolicy
|
||||
|
||||
---
|
||||
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
@@ -53,7 +52,7 @@ spec:
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
ignoreDifferences:
|
||||
- group: admissionregistration.k8s.io
|
||||
kind: ValidatingWebhookConfiguration
|
||||
jsonPointers:
|
||||
- /webhooks/0/failurePolicy
|
||||
- group: admissionregistration.k8s.io
|
||||
kind: ValidatingWebhookConfiguration
|
||||
jsonPointers:
|
||||
- /webhooks/0/failurePolicy
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: crossplane
|
||||
name: kube-prometheus-stack
|
||||
namespace: argocd
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://gitlab.com/developerdurp/homelab.git
|
||||
targetRevision: main
|
||||
path: infra/crossplane
|
||||
path: infra/kube-prometheus-stack
|
||||
destination:
|
||||
namespace: crossplane
|
||||
namespace: kube-prometheus-stack
|
||||
name: in-cluster
|
||||
syncPolicy:
|
||||
automated:
|
||||
@@ -18,6 +18,11 @@ spec:
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
ignoreDifferences:
|
||||
- group: engineimages.longhorn.io
|
||||
jsonPointers:
|
||||
- /spec/preserveUnknownFields
|
||||
kind: CustomResourceDefinition
|
||||
|
||||
---
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
|
||||
@@ -20,7 +20,6 @@ spec:
|
||||
- CreateNamespace=true
|
||||
|
||||
---
|
||||
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
@@ -33,7 +32,7 @@ spec:
|
||||
targetRevision: main
|
||||
path: infra/octopus-agent
|
||||
destination:
|
||||
namespace: octpus-agent
|
||||
namespace: octopus-agent
|
||||
name: in-cluster
|
||||
syncPolicy:
|
||||
automated:
|
||||
@@ -41,4 +40,3 @@ spec:
|
||||
selfHeal: true
|
||||
syncOptions:
|
||||
- CreateNamespace=true
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ argo-cd:
|
||||
annotations: {}
|
||||
url: https://argocd.infra.durp.info
|
||||
oidc.tls.insecure.skip.verify: "true"
|
||||
accounts.provider-argocd: apiKey
|
||||
dex.config: |
|
||||
connectors:
|
||||
- config:
|
||||
@@ -49,13 +50,15 @@ argo-cd:
|
||||
name: authentik
|
||||
type: oidc
|
||||
id: authentik
|
||||
resource.exclusions: ""
|
||||
|
||||
rbac:
|
||||
create: true
|
||||
policy.csv: |
|
||||
g, ArgoCD Admins, role:admin
|
||||
g, provider-argocd, role:admin
|
||||
scopes: "[groups]"
|
||||
|
||||
server:
|
||||
route:
|
||||
enabled: false
|
||||
enabled: false
|
||||
@@ -9,5 +9,5 @@ appVersion: "1.16.0"
|
||||
dependencies:
|
||||
- name: authentik
|
||||
repository: https://charts.goauthentik.io
|
||||
version: 2025.4.0
|
||||
version: 2025.4.1
|
||||
|
||||
|
||||
@@ -6,16 +6,20 @@ spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- match: Host(`authentik.durp.info`) && PathPrefix(`/`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: authentik-server
|
||||
port: 80
|
||||
- match: Host(`authentik.durp.info`) && PathPrefix(`/`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: authentik-server
|
||||
port: 80
|
||||
- match: Host(`authentik.durp.info`) && PathPrefix(`/outpost.goauthentik.io`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: ak-outpost-authentik-embedded-outpost
|
||||
port: 9000
|
||||
tls:
|
||||
secretName: authentik-tls
|
||||
|
||||
---
|
||||
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
@@ -27,5 +31,4 @@ spec:
|
||||
kind: ClusterIssuer
|
||||
commonName: "authentik.durp.info"
|
||||
dnsNames:
|
||||
- "authentik.durp.info"
|
||||
|
||||
- "authentik.durp.info"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: authentik-secret
|
||||
|
||||
@@ -16,35 +16,35 @@ spec:
|
||||
app: bitwarden
|
||||
spec:
|
||||
containers:
|
||||
- name: bitwarden
|
||||
image: registry.durp.info/vaultwarden/server:1.32.7
|
||||
imagePullPolicy: Always
|
||||
volumeMounts:
|
||||
- name: bitwarden-pvc
|
||||
mountPath: /data
|
||||
subPath: bitwaren-data
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 80
|
||||
env:
|
||||
- name: SIGNUPS_ALLOWED
|
||||
value: "FALSE"
|
||||
- name: INVITATIONS_ALLOWED
|
||||
value: "FALSE"
|
||||
- name: WEBSOCKET_ENABLED
|
||||
value: "TRUE"
|
||||
- name: ROCKET_ENV
|
||||
value: "staging"
|
||||
- name: ROCKET_PORT
|
||||
value: "80"
|
||||
- name: ROCKET_WORKERS
|
||||
value: "10"
|
||||
- name: SECRET_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: bitwarden-secret
|
||||
key: ADMIN_TOKEN
|
||||
- name: bitwarden
|
||||
image: registry.durp.info/vaultwarden/server:1.34.3
|
||||
imagePullPolicy: Always
|
||||
volumeMounts:
|
||||
- name: bitwarden-pvc
|
||||
mountPath: /data
|
||||
subPath: bitwaren-data
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 80
|
||||
env:
|
||||
- name: SIGNUPS_ALLOWED
|
||||
value: "FALSE"
|
||||
- name: INVITATIONS_ALLOWED
|
||||
value: "FALSE"
|
||||
- name: WEBSOCKET_ENABLED
|
||||
value: "TRUE"
|
||||
- name: ROCKET_ENV
|
||||
value: "staging"
|
||||
- name: ROCKET_PORT
|
||||
value: "80"
|
||||
- name: ROCKET_WORKERS
|
||||
value: "10"
|
||||
- name: SECRET_USERNAME
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: bitwarden-secret
|
||||
key: ADMIN_TOKEN
|
||||
volumes:
|
||||
- name: bitwarden-pvc
|
||||
persistentVolumeClaim:
|
||||
claimName: bitwarden-pvc
|
||||
- name: bitwarden-pvc
|
||||
persistentVolumeClaim:
|
||||
claimName: bitwarden-pvc
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: bitwarden-secret
|
||||
|
||||
@@ -8,4 +8,4 @@ appVersion: 0.0.1
|
||||
dependencies:
|
||||
- name: cert-manager
|
||||
repository: https://charts.jetstack.io
|
||||
version: v1.16.3
|
||||
version: v1.17.2
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: cloudflare-api-token-secret
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
apiVersion: v2
|
||||
name: crossplane
|
||||
description: A Helm chart for Kubernetes
|
||||
type: application
|
||||
|
||||
version: 0.1.0
|
||||
appVersion: "1.16.0"
|
||||
|
||||
dependencies:
|
||||
- name: crossplane
|
||||
repository: https://charts.crossplane.io/stable
|
||||
version: 1.19.1
|
||||
@@ -1,57 +0,0 @@
|
||||
apiVersion: pkg.crossplane.io/v1
|
||||
kind: Provider
|
||||
metadata:
|
||||
name: provider-gitlab
|
||||
spec:
|
||||
package: xpkg.upbound.io/crossplane-contrib/provider-gitlab:v0.10.4
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: vault
|
||||
|
||||
---
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: gitlab-secret
|
||||
spec:
|
||||
secretStoreRef:
|
||||
name: vault
|
||||
kind: ClusterSecretStore
|
||||
target:
|
||||
name: gitlab-secret
|
||||
data:
|
||||
- secretKey: accesstoken
|
||||
remoteRef:
|
||||
key: kv/renovate
|
||||
property: RENOVATE_TOKEN
|
||||
|
||||
---
|
||||
apiVersion: gitlab.crossplane.io/v1beta1
|
||||
kind: ProviderConfig
|
||||
metadata:
|
||||
name: gitlab-provider
|
||||
spec:
|
||||
baseURL: https://gitlab.com/
|
||||
credentials:
|
||||
source: Secret
|
||||
secretRef:
|
||||
namespace: crossplane
|
||||
name: gitlab-secret
|
||||
key: accesstoken
|
||||
#---
|
||||
#apiVersion: projects.gitlab.crossplane.io/v1alpha1
|
||||
#kind: Project
|
||||
#metadata:
|
||||
# name: example-project
|
||||
#spec:
|
||||
# deletionPolicy: Orphan
|
||||
# forProvider:
|
||||
# name: "Example Project"
|
||||
# description: "example project description"
|
||||
# providerConfigRef:
|
||||
# name: gitlab-provider
|
||||
# policy:
|
||||
# resolution: Optional
|
||||
# resolve: Always
|
||||
@@ -8,4 +8,4 @@ appVersion: 0.0.1
|
||||
dependencies:
|
||||
- name: external-secrets
|
||||
repository: https://charts.external-secrets.io
|
||||
version: 0.15.0
|
||||
version: 0.17.0
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
external-secrets:
|
||||
global:
|
||||
security:
|
||||
allowInsecureImages: true
|
||||
|
||||
log:
|
||||
level: debug
|
||||
replicaCount: 1
|
||||
revisionHistoryLimit: 1
|
||||
leaderElect: true
|
||||
leaderElect: false
|
||||
|
||||
installCRDs: true
|
||||
crds:
|
||||
@@ -27,13 +33,13 @@ external-secrets:
|
||||
subPath: vault.pem
|
||||
readOnly: true
|
||||
|
||||
resources:
|
||||
requests:
|
||||
memory: 32Mi
|
||||
cpu: 10m
|
||||
limits:
|
||||
memory: 32Mi
|
||||
cpu: 10m
|
||||
# resources:
|
||||
# requests:
|
||||
# memory: 32Mi
|
||||
# cpu: 10m
|
||||
# limits:
|
||||
# memory: 32Mi
|
||||
# cpu: 10m
|
||||
|
||||
webhook:
|
||||
log:
|
||||
@@ -42,13 +48,13 @@ external-secrets:
|
||||
repository: registry.durp.info/external-secrets/external-secrets
|
||||
pullPolicy: Always
|
||||
|
||||
resources:
|
||||
requests:
|
||||
memory: 32Mi
|
||||
cpu: 10m
|
||||
limits:
|
||||
memory: 32Mi
|
||||
cpu: 10m
|
||||
# resources:
|
||||
# requests:
|
||||
# memory: 32Mi
|
||||
# cpu: 10m
|
||||
# limits:
|
||||
# memory: 32Mi
|
||||
# cpu: 10m
|
||||
|
||||
certController:
|
||||
create: false
|
||||
|
||||
@@ -8,10 +8,10 @@ appVersion: 0.0.1
|
||||
dependencies:
|
||||
- name: base
|
||||
repository: https://istio-release.storage.googleapis.com/charts
|
||||
version: 1.25.1
|
||||
version: 1.26.2
|
||||
- name: istiod
|
||||
repository: https://istio-release.storage.googleapis.com/charts
|
||||
version: 1.25.1
|
||||
version: 1.26.2
|
||||
- name: gateway
|
||||
repository: https://istio-release.storage.googleapis.com/charts
|
||||
version: 1.25.1
|
||||
version: 1.26.2
|
||||
|
||||
12
infra/kube-prometheus-stack/Chart.yaml
Normal file
12
infra/kube-prometheus-stack/Chart.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
apiVersion: v2
|
||||
name: kube-prometheus-stack
|
||||
description: A Helm chart for Kubernetes
|
||||
type: application
|
||||
|
||||
version: 0.1.0
|
||||
appVersion: "1.16.0"
|
||||
|
||||
dependencies:
|
||||
- name: kube-prometheus-stack
|
||||
repository: https://prometheus-community.github.io/helm-charts
|
||||
version: 77.10.0
|
||||
@@ -0,0 +1,46 @@
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: vault
|
||||
|
||||
---
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: vault-grafana-oauth
|
||||
spec:
|
||||
secretStoreRef:
|
||||
name: vault
|
||||
kind: ClusterSecretStore
|
||||
target:
|
||||
name: grafana-oauth
|
||||
data:
|
||||
- secretKey: GF_AUTH_GENERIC_OAUTH_CLIENT_ID
|
||||
remoteRef:
|
||||
key: kv/grafana/oauth
|
||||
property: GF_AUTH_GENERIC_OAUTH_CLIENT_ID
|
||||
- secretKey: GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET
|
||||
remoteRef:
|
||||
key: kv/grafana/oauth
|
||||
property: GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET
|
||||
|
||||
---
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: vault-admin-credentials
|
||||
spec:
|
||||
secretStoreRef:
|
||||
name: vault
|
||||
kind: ClusterSecretStore
|
||||
target:
|
||||
name: grafana-admin-credentials
|
||||
data:
|
||||
- secretKey: admin-password
|
||||
remoteRef:
|
||||
key: kv/grafana/admin
|
||||
property: password
|
||||
- secretKey: admin-user
|
||||
remoteRef:
|
||||
key: kv/grafana/admin
|
||||
property: user
|
||||
77
infra/kube-prometheus-stack/templates/ingress.yaml
Normal file
77
infra/kube-prometheus-stack/templates/ingress.yaml
Normal file
@@ -0,0 +1,77 @@
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: grafana-ingress
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- match: Host(`grafana.durp.info`) && PathPrefix(`/`)
|
||||
kind: Rule
|
||||
services:
|
||||
- name: grafana
|
||||
port: 80
|
||||
tls:
|
||||
secretName: grafana-tls
|
||||
|
||||
---
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: grafana-tls
|
||||
spec:
|
||||
secretName: grafana-tls
|
||||
issuerRef:
|
||||
name: letsencrypt-production
|
||||
kind: ClusterIssuer
|
||||
commonName: "grafana.durp.info"
|
||||
dnsNames:
|
||||
- "grafana.durp.info"
|
||||
|
||||
---
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRoute
|
||||
metadata:
|
||||
name: alertmanager-ingress
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- match: Host(`alertmanager.durp.info`) && PathPrefix(`/`)
|
||||
middlewares:
|
||||
- name: whitelist
|
||||
namespace: traefik
|
||||
- name: authentik-proxy-provider
|
||||
namespace: traefik
|
||||
kind: Rule
|
||||
services:
|
||||
- name: prometheus-alertmanager
|
||||
port: 9093
|
||||
tls:
|
||||
secretName: alertmanager-tls
|
||||
|
||||
---
|
||||
apiVersion: cert-manager.io/v1
|
||||
kind: Certificate
|
||||
metadata:
|
||||
name: alertmanager-tls
|
||||
spec:
|
||||
secretName: alertmanager-tls
|
||||
issuerRef:
|
||||
name: letsencrypt-production
|
||||
kind: ClusterIssuer
|
||||
commonName: "alertmanager.durp.info"
|
||||
dnsNames:
|
||||
- "alertmanager.durp.info"
|
||||
|
||||
---
|
||||
kind: Service
|
||||
apiVersion: v1
|
||||
metadata:
|
||||
name: grafana-external-dns
|
||||
annotations:
|
||||
external-dns.alpha.kubernetes.io/hostname: grafana.durp.info
|
||||
spec:
|
||||
type: ExternalName
|
||||
externalName: durp.info
|
||||
|
||||
203
infra/kube-prometheus-stack/values.yaml
Normal file
203
infra/kube-prometheus-stack/values.yaml
Normal file
@@ -0,0 +1,203 @@
|
||||
kube-prometheus-stack:
|
||||
fullnameOverride: prometheus
|
||||
|
||||
defaultRules:
|
||||
create: true
|
||||
rules:
|
||||
alertmanager: true
|
||||
etcd: true
|
||||
configReloaders: true
|
||||
general: true
|
||||
k8s: true
|
||||
kubeApiserverAvailability: true
|
||||
kubeApiserverBurnrate: true
|
||||
kubeApiserverHistogram: true
|
||||
kubeApiserverSlos: true
|
||||
kubelet: true
|
||||
kubeProxy: true
|
||||
kubePrometheusGeneral: true
|
||||
kubePrometheusNodeRecording: true
|
||||
kubernetesApps: true
|
||||
kubernetesResources: true
|
||||
kubernetesStorage: true
|
||||
kubernetesSystem: true
|
||||
kubeScheduler: true
|
||||
kubeStateMetrics: true
|
||||
network: true
|
||||
node: true
|
||||
nodeExporterAlerting: true
|
||||
nodeExporterRecording: true
|
||||
prometheus: true
|
||||
prometheusOperator: true
|
||||
|
||||
alertmanager:
|
||||
fullnameOverride: alertmanager
|
||||
enabled: true
|
||||
ingress:
|
||||
enabled: false
|
||||
grafana:
|
||||
enabled: true
|
||||
fullnameOverride: grafana
|
||||
forceDeployDatasources: false
|
||||
forceDeployDashboards: false
|
||||
defaultDashboardsEnabled: true
|
||||
defaultDashboardsTimezone: utc
|
||||
plugins:
|
||||
- grafana-polystat-panel
|
||||
serviceMonitor:
|
||||
enabled: true
|
||||
admin:
|
||||
existingSecret: grafana-admin-credentials
|
||||
userKey: admin-user
|
||||
passwordKey: admin-password
|
||||
ingress:
|
||||
enabled: false
|
||||
grafana.ini:
|
||||
server:
|
||||
root_url: https://grafana.durp.info
|
||||
auth.generic_oauth:
|
||||
enabled: true
|
||||
scopes: openid profile email
|
||||
auth_url: https://authentik.durp.info/application/o/authorize/
|
||||
token_url: https://authentik.durp.info/application/o/token/
|
||||
api_url: https://authentik.durp.info/application/o/userinfo/
|
||||
envFromSecret: "grafana-oauth"
|
||||
|
||||
kubeApiServer:
|
||||
enabled: true
|
||||
|
||||
kubelet:
|
||||
enabled: true
|
||||
serviceMonitor:
|
||||
metricRelabelings:
|
||||
- action: replace
|
||||
sourceLabels:
|
||||
- node
|
||||
targetLabel: instance
|
||||
|
||||
kubeControllerManager:
|
||||
enabled: true
|
||||
endpoints: # ips of servers
|
||||
- 192.168.12.11
|
||||
- 192.168.12.12
|
||||
- 192.168.12.13
|
||||
|
||||
coreDns:
|
||||
enabled: false
|
||||
|
||||
kubeDns:
|
||||
enabled: false
|
||||
|
||||
kubeEtcd:
|
||||
enabled: true
|
||||
endpoints: # ips of servers
|
||||
- 192.168.12.11
|
||||
- 192.168.12.12
|
||||
- 192.168.12.13
|
||||
service:
|
||||
enabled: true
|
||||
port: 2381
|
||||
targetPort: 2381
|
||||
|
||||
kubeScheduler:
|
||||
enabled: true
|
||||
endpoints: # ips of servers
|
||||
- 192.168.12.11
|
||||
- 192.168.12.12
|
||||
- 192.168.12.13
|
||||
|
||||
kubeProxy:
|
||||
enabled: true
|
||||
endpoints: # ips of servers
|
||||
- 192.168.12.11
|
||||
- 192.168.12.12
|
||||
- 192.168.12.13
|
||||
|
||||
kubeStateMetrics:
|
||||
enabled: true
|
||||
|
||||
kube-state-metrics:
|
||||
fullnameOverride: kube-state-metrics
|
||||
selfMonitor:
|
||||
enabled: true
|
||||
prometheus:
|
||||
monitor:
|
||||
enabled: true
|
||||
relabelings:
|
||||
- action: replace
|
||||
regex: (.*)
|
||||
replacement: $1
|
||||
sourceLabels:
|
||||
- __meta_kubernetes_pod_node_name
|
||||
targetLabel: kubernetes_node
|
||||
|
||||
nodeExporter:
|
||||
enabled: true
|
||||
serviceMonitor:
|
||||
relabelings:
|
||||
- action: replace
|
||||
regex: (.*)
|
||||
replacement: $1
|
||||
sourceLabels:
|
||||
- __meta_kubernetes_pod_node_name
|
||||
targetLabel: kubernetes_node
|
||||
|
||||
prometheus-node-exporter:
|
||||
fullnameOverride: node-exporter
|
||||
podLabels:
|
||||
jobLabel: node-exporter
|
||||
extraArgs:
|
||||
- --collector.filesystem.mount-points-exclude=^/(dev|proc|sys|var/lib/docker/.+|var/lib/kubelet/.+)($|/)
|
||||
- --collector.filesystem.fs-types-exclude=^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$
|
||||
service:
|
||||
portName: http-metrics
|
||||
prometheus:
|
||||
monitor:
|
||||
enabled: true
|
||||
relabelings:
|
||||
- action: replace
|
||||
regex: (.*)
|
||||
replacement: $1
|
||||
sourceLabels:
|
||||
- __meta_kubernetes_pod_node_name
|
||||
targetLabel: kubernetes_node
|
||||
resources:
|
||||
requests:
|
||||
memory: 512Mi
|
||||
cpu: 250m
|
||||
limits:
|
||||
memory: 2048Mi
|
||||
|
||||
prometheusOperator:
|
||||
enabled: true
|
||||
prometheusConfigReloader:
|
||||
resources:
|
||||
requests:
|
||||
cpu: 200m
|
||||
memory: 50Mi
|
||||
limits:
|
||||
memory: 100Mi
|
||||
|
||||
prometheus:
|
||||
enabled: true
|
||||
prometheusSpec:
|
||||
replicas: 1
|
||||
replicaExternalLabelName: "replica"
|
||||
ruleSelectorNilUsesHelmValues: false
|
||||
serviceMonitorSelectorNilUsesHelmValues: false
|
||||
podMonitorSelectorNilUsesHelmValues: false
|
||||
probeSelectorNilUsesHelmValues: false
|
||||
retention: 6h
|
||||
enableAdminAPI: true
|
||||
walCompression: true
|
||||
storageSpec:
|
||||
volumeClaimTemplate:
|
||||
spec:
|
||||
storageClassName: longhorn
|
||||
accessModes: ["ReadWriteMany"]
|
||||
resources:
|
||||
requests:
|
||||
storage: 20Gi
|
||||
|
||||
thanosRuler:
|
||||
enabled: false
|
||||
@@ -9,4 +9,4 @@ appVersion: "1.16.0"
|
||||
dependencies:
|
||||
- name: longhorn
|
||||
repository: https://charts.longhorn.io
|
||||
version: 1.7.2
|
||||
version: 1.9.0
|
||||
|
||||
@@ -5,7 +5,7 @@ metadata:
|
||||
|
||||
---
|
||||
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: external-longhorn-backup-token-secret
|
||||
|
||||
@@ -9,4 +9,4 @@ appVersion: "1.16.0"
|
||||
dependencies:
|
||||
- name: metallb
|
||||
repository: https://metallb.github.io/metallb
|
||||
version: 0.14.9
|
||||
version: 0.15.2
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: nebula-sync-secret
|
||||
|
||||
@@ -5,7 +5,7 @@ metadata:
|
||||
|
||||
---
|
||||
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: agent-token
|
||||
|
||||
@@ -4,7 +4,9 @@ kubernetes-agent:
|
||||
acceptEula: "Y"
|
||||
serverUrl: "https://octopus.durp.info/"
|
||||
serverCommsAddresses:
|
||||
- "https://octopusdeploy-octopus-deploy.octopusdeploy.svc.cluster.local:10943/"
|
||||
- "https://octopus-deploy-node0.octopusdeploy.svc.cluster.local:10943/"
|
||||
- "https://octopus-deploy-node1.octopusdeploy.svc.cluster.local:10943/"
|
||||
- "https://octopus-deploy-node2.octopusdeploy.svc.cluster.local:10943/"
|
||||
space: "Default"
|
||||
name: "infra"
|
||||
deploymentTarget:
|
||||
|
||||
@@ -9,4 +9,4 @@ appVersion: "1.16.0"
|
||||
dependencies:
|
||||
- name: octopusdeploy-helm
|
||||
repository: oci://ghcr.io/octopusdeploy
|
||||
version: 1.3.1
|
||||
version: 1.7.0
|
||||
|
||||
@@ -4,8 +4,7 @@ metadata:
|
||||
name: vault
|
||||
|
||||
---
|
||||
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: octopusdeploy-adminpassword
|
||||
@@ -22,8 +21,7 @@ spec:
|
||||
property: adminpassword
|
||||
|
||||
---
|
||||
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: octopusdeploy-adminusername
|
||||
@@ -40,8 +38,7 @@ spec:
|
||||
property: adminusername
|
||||
|
||||
---
|
||||
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: octopusdeploy-connectionstring
|
||||
@@ -58,8 +55,7 @@ spec:
|
||||
property: connectionstring
|
||||
|
||||
---
|
||||
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: octopusdeploy-masterkey
|
||||
@@ -76,8 +72,7 @@ spec:
|
||||
property: masterkey
|
||||
|
||||
---
|
||||
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: octopusdeploy-sapassword
|
||||
@@ -92,3 +87,20 @@ spec:
|
||||
remoteRef:
|
||||
key: kv/octopusdeploy
|
||||
property: sapassword
|
||||
|
||||
---
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: octopusdeploy-licensekey
|
||||
spec:
|
||||
secretStoreRef:
|
||||
name: vault
|
||||
kind: ClusterSecretStore
|
||||
target:
|
||||
name: octopusdeploy-licensekey
|
||||
data:
|
||||
- secretKey: secret
|
||||
remoteRef:
|
||||
key: kv/octopusdeploy
|
||||
property: licensekey
|
||||
|
||||
@@ -2,7 +2,7 @@ octopusdeploy-helm:
|
||||
octopus:
|
||||
image:
|
||||
repository: registry.durp.info/octopusdeploy/octopusdeploy
|
||||
tag: 2025.1
|
||||
tag: 2025.3
|
||||
createSecrets: false
|
||||
acceptEula: Y
|
||||
replicaCount: 3
|
||||
|
||||
@@ -5,7 +5,7 @@ metadata:
|
||||
|
||||
---
|
||||
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: openclarity-postgres-secret
|
||||
|
||||
@@ -317,7 +317,7 @@ openclarity:
|
||||
# -- Gateway service container repository
|
||||
repository: nginxinc/nginx-unprivileged
|
||||
# -- Gateway service container tag
|
||||
tag: 1.27.3
|
||||
tag: 1.29.0
|
||||
# -- Gateway image digest. If set will override the tag.
|
||||
digest: ""
|
||||
# -- Gateway service container pull policy
|
||||
@@ -542,7 +542,7 @@ openclarity:
|
||||
# -- Trivy Server container repository
|
||||
repository: aquasec/trivy
|
||||
# -- Trivy Server container tag
|
||||
tag: 0.58.2
|
||||
tag: 0.64.1
|
||||
# -- Trivy Server image digest. If set will override the tag.
|
||||
digest: ""
|
||||
# -- Trivy Server image pull policy
|
||||
@@ -719,7 +719,7 @@ openclarity:
|
||||
# -- Swagger UI container repository
|
||||
repository: swaggerapi/swagger-ui
|
||||
# -- Swagger UI container tag
|
||||
tag: v5.18.2
|
||||
tag: v5.26.2
|
||||
# -- Swagger UI image digest. If set will override the tag.
|
||||
digest: ""
|
||||
# -- Swagger UI image pull policy
|
||||
|
||||
@@ -4,7 +4,7 @@ metadata:
|
||||
name: vault
|
||||
|
||||
---
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: renovate-config-secret
|
||||
|
||||
@@ -305,7 +305,7 @@ renovate:
|
||||
# -- Create extra manifests via values. Would be passed through `tpl` for templating
|
||||
extraObjects: []
|
||||
# extraObjects:
|
||||
# - apiVersion: external-secrets.io/v1beta1
|
||||
# - apiVersion: external-secrets.io/v1
|
||||
# kind: ExternalSecret
|
||||
# metadata:
|
||||
# name: '{{ include "renovate.fullname" . }}-token'
|
||||
|
||||
@@ -3,7 +3,7 @@ terraform {
|
||||
required_providers {
|
||||
proxmox = {
|
||||
source = "Telmate/proxmox"
|
||||
version = "3.0.1-rc6"
|
||||
version = "3.0.1-rc9"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,4 +8,4 @@ appVersion: 0.0.1
|
||||
dependencies:
|
||||
- name: traefik
|
||||
repository: https://traefik.github.io/charts
|
||||
version: 34.0.0
|
||||
version: 34.5.0
|
||||
|
||||
@@ -8,5 +8,5 @@ appVersion: 0.0.1
|
||||
dependencies:
|
||||
- name: vault
|
||||
repository: https://helm.releases.hashicorp.com
|
||||
version: 0.29.1
|
||||
version: 0.30.0
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ClusterSecretStore
|
||||
metadata:
|
||||
name: vault
|
||||
|
||||
@@ -9,6 +9,6 @@ appVersion: "1.16.0"
|
||||
dependencies:
|
||||
- name: argo-cd
|
||||
repository: https://argoproj.github.io/argo-helm
|
||||
version: 6.11.1
|
||||
version: 8.1.3
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: vault-argocd
|
||||
|
||||
@@ -9,4 +9,4 @@ appVersion: "1.16.0"
|
||||
dependencies:
|
||||
- name: authentik-remote-cluster
|
||||
repository: https://charts.goauthentik.io
|
||||
version: 2.0.0
|
||||
version: 2.1.0
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: authentik-secret
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: bitwarden-secret
|
||||
|
||||
@@ -8,4 +8,4 @@ appVersion: 0.0.1
|
||||
dependencies:
|
||||
- name: cert-manager
|
||||
repository: https://charts.jetstack.io
|
||||
version: v1.15.3
|
||||
version: v1.17.2
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: cloudflare-api-token-secret
|
||||
|
||||
@@ -9,4 +9,4 @@ appVersion: "1.16.0"
|
||||
dependencies:
|
||||
- name: crossplane
|
||||
repository: https://charts.crossplane.io/stable
|
||||
version: 1.17.1
|
||||
version: 1.20.0
|
||||
|
||||
@@ -6,7 +6,7 @@ spec:
|
||||
package: xpkg.upbound.io/crossplane-contrib/provider-gitlab:v0.5.0
|
||||
---
|
||||
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: gitlab-secret
|
||||
|
||||
@@ -8,6 +8,6 @@ appVersion: 0.1.0
|
||||
|
||||
dependencies:
|
||||
- condition: postgresql.enabled
|
||||
version: 12.5.*
|
||||
version: 16.7.*
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
name: postgresql
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: durpapi-secret
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: durpot-secert
|
||||
|
||||
@@ -9,4 +9,4 @@ appVersion: 0.0.1
|
||||
dependencies:
|
||||
- name: external-dns
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 8.3.8
|
||||
version: 8.9.2
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
apiVersion: external-secrets.io/v1beta1
|
||||
apiVersion: external-secrets.io/v1
|
||||
kind: ExternalSecret
|
||||
metadata:
|
||||
name: external-dns-secret
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user