527 Commits

Author SHA1 Message Date
Renovate Bot
9968da9809 Update Helm release gatekeeper to v3.21.0 2025-11-20 07:03:24 +00:00
8dac861ae3 update n8n 2025-10-22 05:23:07 -05:00
5508fe3610 add gitlab 2025-10-09 06:25:05 -05:00
69bfdc9852 update octopus 2025-09-20 09:24:21 -05:00
ac8b836748 add dmz ingress 2025-09-20 08:05:50 -05:00
aabec35dd7 fix secret 2025-09-20 07:56:57 -05:00
ed1a465402 fix secrets 2025-09-20 07:55:44 -05:00
868ceddb22 update secrets 2025-09-20 07:51:38 -05:00
4fdddee8e0 update ingress 2025-09-20 07:36:42 -05:00
820e899359 disable crowdsec 2025-09-20 07:34:19 -05:00
16c41556c3 add kube stack 2025-09-20 07:31:02 -05:00
fbaa3877a2 delete crossplane 2025-09-01 16:09:18 -05:00
89a13d81f1 update vaultwarden 2025-09-01 08:31:32 -05:00
59a85a10f9 update ssh keys 2025-08-09 12:35:04 +00:00
d30a36c96e update 2025-07-23 19:57:42 -05:00
2be3d65620 update 2025-07-23 19:51:54 -05:00
d0ef9e7586 update 2025-07-23 19:50:29 -05:00
06a0653eec update 2025-07-23 19:43:34 -05:00
2cd9be813e update 2025-07-23 19:40:51 -05:00
e7b9086247 update 2025-07-23 19:35:31 -05:00
472f4064f5 update 2025-07-23 19:30:54 -05:00
687d890733 update 2025-07-23 19:20:00 -05:00
3575572a65 update argocd 2025-07-23 19:18:53 -05:00
2cbc329a39 update ip 2025-07-23 19:10:25 -05:00
87b1b7dbc2 update 2025-07-23 19:00:38 -05:00
d99920c95c add n8n 2025-07-23 18:56:11 -05:00
44ded83012 Merge branch 'revert-8227cbd3' into 'main'
Revert "Merge branch 'renovate/authentik-2025.x' into 'main'"

See merge request developerdurp/homelab!50
2025-07-13 12:28:12 +00:00
471dcf907d Revert "Merge branch 'renovate/authentik-2025.x' into 'main'" 2025-07-13 12:28:12 +00:00
782799f835 Merge branch 'renovate/docker.io-nginxinc-nginx-unprivileged-1.x' into 'main'
Update docker.io/nginxinc/nginx-unprivileged Docker tag to v1.29.0

See merge request developerdurp/homelab!49
2025-07-13 12:26:20 +00:00
7e435f64b8 Merge branch 'renovate/gatekeeper-3.x' into 'main'
Update Helm release gatekeeper to v3.19.2

See merge request developerdurp/homelab!48
2025-07-13 12:26:01 +00:00
5efad19546 Merge branch 'renovate/crowdsec-0.x' into 'main'
Update Helm release crowdsec to v0.19.4

See merge request developerdurp/homelab!47
2025-07-13 12:25:45 +00:00
c1b02bf142 Merge branch 'renovate/argo-cd-8.x' into 'main'
Update Helm release argo-cd to v8.1.3

See merge request developerdurp/homelab!43
2025-07-13 12:25:31 +00:00
8227cbd373 Merge branch 'renovate/authentik-2025.x' into 'main'
Update Helm release authentik to v2025.6.3

See merge request developerdurp/homelab!42
2025-07-13 12:25:18 +00:00
8d1c136ae7 Merge branch 'renovate/docker.io-swaggerapi-swagger-ui-5.x' into 'main'
Update docker.io/swaggerapi/swagger-ui Docker tag to v5.26.2

See merge request developerdurp/homelab!41
2025-07-13 12:23:30 +00:00
5dd40718b4 Merge branch 'renovate/docker.io-aquasec-trivy-0.x' into 'main'
Update docker.io/aquasec/trivy Docker tag to v0.64.1

See merge request developerdurp/homelab!40
2025-07-13 12:23:11 +00:00
1847fa2472 Merge branch 'renovate/istiod-1.x' into 'main'
Update Helm release istiod to v1.26.2

See merge request developerdurp/homelab!39
2025-07-13 12:22:59 +00:00
b7bfd77883 Merge branch 'renovate/gateway-1.x' into 'main'
Update Helm release gateway to v1.26.2

See merge request developerdurp/homelab!38
2025-07-13 12:22:47 +00:00
b98d61c5a3 Merge branch 'renovate/base-1.x' into 'main'
Update Helm release base to v1.26.2

See merge request developerdurp/homelab!37
2025-07-13 12:22:34 +00:00
Renovate Bot
418b365e2d Update docker.io/nginxinc/nginx-unprivileged Docker tag to v1.29.0 2025-07-13 06:03:03 +00:00
Renovate Bot
e653d41331 Update Helm release gatekeeper to v3.19.2 2025-07-12 06:03:26 +00:00
Renovate Bot
10655e1ad7 Update Helm release crowdsec to v0.19.4 2025-07-12 06:03:23 +00:00
b3e86011b4 Merge branch 'renovate/external-dns-8.x' into 'main'
Update Helm release external-dns to v8.9.2

See merge request developerdurp/homelab!44
2025-07-11 10:43:11 +00:00
f10021899c Merge branch 'renovate/longhorn-1.x' into 'main'
Update Helm release longhorn to v1.9.0

See merge request developerdurp/homelab!45
2025-07-11 10:42:56 +00:00
b107d7a5fe Merge branch 'renovate/metallb-0.x' into 'main'
Update Helm release metallb to v0.15.2

See merge request developerdurp/homelab!46
2025-07-11 10:42:38 +00:00
Renovate Bot
02a2f4f7c9 Update Helm release argo-cd to v8.1.3 2025-07-11 06:03:23 +00:00
Renovate Bot
4bc076a715 Update Helm release external-dns to v8.9.2 2025-07-09 06:03:05 +00:00
Renovate Bot
520a934cd8 Update docker.io/swaggerapi/swagger-ui Docker tag to v5.26.2 2025-07-08 06:02:59 +00:00
Renovate Bot
430c2541e5 Update docker.io/aquasec/trivy Docker tag to v0.64.1 2025-07-04 06:02:29 +00:00
Renovate Bot
6f8db8ccdb Update Helm release authentik to v2025.6.3 2025-06-28 06:02:32 +00:00
Renovate Bot
9a6a16dcee Update Helm release istiod to v1.26.2 2025-06-21 06:03:29 +00:00
Renovate Bot
d10f200c09 Update Helm release gateway to v1.26.2 2025-06-21 06:03:25 +00:00
Renovate Bot
e0c303c38b Update Helm release base to v1.26.2 2025-06-21 06:03:19 +00:00
Renovate Bot
7b188327c9 Update Helm release metallb to v0.15.2 2025-06-08 06:03:37 +00:00
Renovate Bot
9715b9ac87 Update Helm release longhorn to v1.9.0 2025-06-08 06:03:32 +00:00
006094410c update 2025-06-06 06:03:53 -05:00
6a6bccda43 update 2025-06-06 05:45:44 -05:00
3233a8f769 update 2025-06-06 05:39:40 -05:00
69963d1c2f updateu 2025-06-06 05:37:34 -05:00
2be77594f0 update 2025-06-05 06:22:58 -05:00
d4b0dd3c80 update 2025-06-05 06:18:46 -05:00
8940086c97 update 2025-06-05 06:07:08 -05:00
b39863dee9 update 2025-06-05 05:28:48 -05:00
b28c7ce8fd update 2025-06-05 05:23:57 -05:00
c8fa9b77ad update 2025-06-05 05:22:13 -05:00
ecd5ca5163 update 2025-06-05 05:21:10 -05:00
9ded36aa45 update 2025-06-05 05:18:31 -05:00
3b52a06603 update 2025-06-04 05:39:08 -05:00
ac90414c06 update 2025-06-03 06:06:07 -05:00
7bcd121e3c Merge branch 'revert-e3cd02fa' into 'main'
Revert "Merge branch 'renovate/docker.io-bitnami-postgresql-17.x' into 'main'"

See merge request developerdurp/homelab!36
2025-06-03 10:55:37 +00:00
0f038a8bb6 Revert "Merge branch 'renovate/docker.io-bitnami-postgresql-17.x' into 'main'" 2025-06-03 10:55:37 +00:00
b3032d2998 Merge branch 'renovate/quay.io-frrouting-frr-9.x' into 'main'
Update quay.io/frrouting/frr Docker tag to v9.1.3

See merge request developerdurp/homelab!30
2025-06-03 10:51:23 +00:00
74ed1dca43 Merge branch 'renovate/vault-0.x' into 'main'
Update Helm release vault to v0.30.0

See merge request developerdurp/homelab!28
2025-06-03 10:51:08 +00:00
8fedb4fc9d Merge branch 'renovate/docker.io-swaggerapi-swagger-ui-5.x' into 'main'
Update docker.io/swaggerapi/swagger-ui Docker tag to v5.22.0

See merge request developerdurp/homelab!26
2025-06-03 10:50:45 +00:00
6b69f85623 Merge branch 'renovate/crossplane-1.x' into 'main'
Update Helm release crossplane to v1.20.0

See merge request developerdurp/homelab!27
2025-06-03 10:50:37 +00:00
4d0a6cc470 Merge branch 'renovate/octopusdeploy-helm-1.x' into 'main'
Update octopusdeploy-helm Docker tag to v1.4.0

See merge request developerdurp/homelab!29
2025-06-03 10:50:11 +00:00
e3cd02fa7f Merge branch 'renovate/docker.io-bitnami-postgresql-17.x' into 'main'
Update docker.io/bitnami/postgresql Docker tag to v17

See merge request developerdurp/homelab!31
2025-06-03 10:49:49 +00:00
17c2ada6a8 Merge branch 'renovate/argo-cd-8.x' into 'main'
Update Helm release argo-cd to v8

See merge request developerdurp/homelab!32
2025-06-03 10:49:34 +00:00
d039f241f6 Merge branch 'renovate/kube-prometheus-stack-72.x' into 'main'
Update Helm release kube-prometheus-stack to v72

See merge request developerdurp/homelab!33
2025-06-03 10:48:46 +00:00
5ad297f15a Merge branch 'renovate/external-dns-8.x' into 'main'
Update Helm release external-dns to v8.8.3

See merge request developerdurp/homelab!34
2025-06-03 10:48:25 +00:00
46281b59a0 Merge branch 'renovate/postgresql-16.x' into 'main'
Update Helm release postgresql to v16

See merge request developerdurp/homelab!35
2025-06-03 10:48:01 +00:00
Renovate Bot
66a63be3a2 Update Helm release kube-prometheus-stack to v72 2025-06-03 06:07:36 +00:00
Renovate Bot
054ee57e6b Update quay.io/frrouting/frr Docker tag to v9.1.3 2025-06-03 06:07:09 +00:00
Renovate Bot
799a8687ca Update octopusdeploy-helm Docker tag to v1.4.0 2025-06-03 06:07:06 +00:00
Renovate Bot
b02f5d3727 Update Helm release argo-cd to v8 2025-05-31 06:03:06 +00:00
Renovate Bot
0ef216e92f Update docker.io/bitnami/postgresql Docker tag to v17 2025-05-30 06:07:02 +00:00
Renovate Bot
51006b03d1 Update Helm release vault to v0.30.0 2025-05-30 06:06:48 +00:00
Renovate Bot
643c89e794 Update docker.io/swaggerapi/swagger-ui Docker tag to v5.22.0 2025-05-30 06:06:24 +00:00
Renovate Bot
29b8753182 Update Helm release external-dns to v8.8.3 2025-05-30 06:06:21 +00:00
Renovate Bot
841e26ba2a Update Helm release postgresql to v16 2025-05-27 06:02:50 +00:00
Renovate Bot
4d7c1779c3 Update Helm release crossplane to v1.20.0 2025-05-27 06:02:39 +00:00
b0f6e8ead5 update 2025-05-26 06:18:32 -05:00
7c7890933b update 2025-05-26 06:17:52 -05:00
25664f4df4 update 2025-05-26 06:10:29 -05:00
6791096b3a update 2025-05-26 06:07:04 -05:00
dcc3ae6aa3 update 2025-05-26 06:05:33 -05:00
6257d7a1d4 update 2025-05-26 05:57:56 -05:00
1d167cd62c update 2025-05-25 07:57:33 -05:00
a6037a6cc1 update 2025-05-25 07:55:29 -05:00
5250e5ad15 update 2025-05-25 07:53:10 -05:00
355c881597 update 2025-05-25 07:50:40 -05:00
0d5a699615 update 2025-05-25 07:47:20 -05:00
0b87aa8630 Merge branch 'renovate/authentik-2025.x' into 'main'
Update Helm release authentik to v2025.4.1

See merge request developerdurp/homelab!21
2025-05-22 10:37:19 +00:00
1f78ec52d3 Merge branch 'renovate/istiod-1.x' into 'main'
Update Helm release istiod to v1.26.0

See merge request developerdurp/homelab!20
2025-05-22 10:37:16 +00:00
ddd49cc031 Merge branch 'renovate/crowdsec-0.x' into 'main'
Update Helm release crowdsec to v0.19.3

See merge request developerdurp/homelab!19
2025-05-22 10:37:14 +00:00
f31c0bf257 Merge branch 'renovate/gateway-1.x' into 'main'
Update Helm release gateway to v1.26.0

See merge request developerdurp/homelab!17
2025-05-22 10:37:11 +00:00
15db2e8d41 Merge branch 'renovate/external-secrets-0.x' into 'main'
Update Helm release external-secrets to v0.17.0

See merge request developerdurp/homelab!15
2025-05-22 10:37:10 +00:00
3020148e02 Merge branch 'renovate/gitlab-runner-0.x' into 'main'
Update Helm release gitlab-runner to v0.77.2

See merge request developerdurp/homelab!18
2025-05-22 10:35:06 +00:00
ab6a5c96b4 Merge branch 'renovate/proxmox-3.x' into 'main'
Update Terraform proxmox to v3.0.1-rc9

See merge request developerdurp/homelab!22
2025-05-22 10:34:26 +00:00
e9712ad8c6 Merge branch 'renovate/longhorn-1.x' into 'main'
Update Helm release longhorn to v1.8.1

See merge request developerdurp/homelab!23
2025-05-22 10:30:44 +00:00
ea049a7ac2 Merge branch 'renovate/postgresql-12.x' into 'main'
Update Helm release postgresql to 12.12.*

See merge request developerdurp/homelab!24
2025-05-22 10:29:55 +00:00
1d3c524887 Merge branch 'renovate/traefik-34.x' into 'main'
Update Helm release traefik to v34.5.0

See merge request developerdurp/homelab!25
2025-05-22 10:29:21 +00:00
Renovate Bot
a7be2b0b74 Update Helm release gitlab-runner to v0.77.2 2025-05-22 06:03:15 +00:00
19a8b05fae update 2025-05-21 05:53:00 -05:00
607e02496a update 2025-05-21 05:30:50 -05:00
5580b7dfd0 update 2025-05-21 05:30:03 -05:00
bf76abaf83 update 2025-05-21 05:28:04 -05:00
124da56e0a update 2025-05-21 05:26:10 -05:00
8d86bd83e3 update 2025-05-21 05:12:27 -05:00
e7f600bb80 update 2025-05-20 06:24:31 -05:00
0f30f72039 update 2025-05-20 06:21:12 -05:00
febe9fbdf5 update 2025-05-20 06:19:53 -05:00
72903cb7cc update 2025-05-20 06:17:54 -05:00
6638751ee8 update 2025-05-20 06:16:49 -05:00
d616df5b1b update 2025-05-20 06:14:45 -05:00
4dd69bac83 update 2025-05-20 06:12:19 -05:00
177e6740d5 update 2025-05-20 06:12:08 -05:00
b0e955a8af update 2025-05-20 06:10:14 -05:00
e8665c4379 update 2025-05-20 06:08:36 -05:00
5a936831f7 update 2025-05-20 06:06:54 -05:00
756744c379 update 2025-05-20 06:03:10 -05:00
fe2f50f351 update 2025-05-20 06:00:50 -05:00
ced106bf3a update 2025-05-20 05:58:52 -05:00
c14346bb2e update 2025-05-20 05:57:07 -05:00
c6fde4ad40 update 2025-05-20 05:52:59 -05:00
da5f19f9d3 update 2025-05-20 05:48:32 -05:00
495ddce824 update 2025-05-20 05:46:41 -05:00
43ef21d99b update 2025-05-20 05:46:31 -05:00
49abd7fb28 update 2025-05-20 05:44:04 -05:00
0437fadc15 update 2025-05-20 05:43:21 -05:00
d0f4780b6c update 2025-05-20 05:42:34 -05:00
affd851017 update 2025-05-20 05:40:04 -05:00
c016db260e update 2025-05-20 05:36:48 -05:00
5cb7ca72d8 update 2025-05-20 05:33:41 -05:00
7d0e2f4b22 update 2025-05-20 05:32:02 -05:00
f9f1e101a9 update 2025-05-19 05:59:51 -05:00
977d652d8b update 2025-05-19 05:57:51 -05:00
302184d655 update 2025-05-19 05:56:44 -05:00
7b72bb16f7 update 2025-05-19 05:55:24 -05:00
95386b345a update 2025-05-19 05:53:16 -05:00
cb64c2d05d update 2025-05-19 05:49:01 -05:00
cbadf7ce19 update 2025-05-19 05:48:05 -05:00
39bf52cae3 update 2025-05-19 05:45:19 -05:00
362037c198 update 2025-05-19 05:44:38 -05:00
af5f6e1257 update 2025-05-19 05:43:17 -05:00
0ae3c80a81 update 2025-05-19 05:34:34 -05:00
9b9f36859f update 2025-05-19 05:33:29 -05:00
5525c9bba5 update 2025-05-19 05:22:18 -05:00
f4eaa739e9 update 2025-05-19 05:21:21 -05:00
37fd96179d update 2025-05-19 05:20:36 -05:00
Renovate Bot
17c3e5dddf Update Helm release traefik to v34.5.0 2025-05-18 06:04:16 +00:00
beef704102 update 2025-05-17 08:17:24 -05:00
4708a70a34 update 2025-05-17 08:14:40 -05:00
29661b9bf7 update 2025-05-17 08:12:47 -05:00
Renovate Bot
a8e7ac07c8 Update Helm release postgresql to 12.12.* 2025-05-17 06:04:36 +00:00
Renovate Bot
fe79c830cb Update Helm release longhorn to v1.8.1 2025-05-17 06:04:30 +00:00
cd1abb4cec update 2025-05-16 05:46:04 -05:00
Renovate Bot
0a1d45d16a Update Helm release external-secrets to v0.17.0 2025-05-16 06:04:35 +00:00
Renovate Bot
3acedbfdd2 Update Terraform proxmox to v3.0.1-rc9 2025-05-16 06:04:30 +00:00
Renovate Bot
6cbba2abec Update Helm release authentik to v2025.4.1 2025-05-16 06:04:25 +00:00
Renovate Bot
f8d47b89d9 Update Helm release istiod to v1.26.0 2025-05-15 06:04:40 +00:00
Renovate Bot
72ce4db466 Update Helm release crowdsec to v0.19.3 2025-05-15 06:04:25 +00:00
Renovate Bot
5e03a9e40e Update Helm release gateway to v1.26.0 2025-05-14 06:04:46 +00:00
cb821ae051 Merge branch 'renovate/gatekeeper-3.x' into 'main'
Update Helm release gatekeeper to v3.19.1

See merge request developerdurp/homelab!16
2025-05-13 09:51:45 +00:00
Renovate Bot
9e4f732d45 Update Helm release gatekeeper to v3.19.1 2025-05-13 06:03:53 +00:00
065b4787c8 update 2025-05-12 05:12:02 -05:00
8b498e971d Merge branch 'renovate/metallb-0.x' into 'main'
Update Helm release metallb to v0.14.9

See merge request developerdurp/homelab!5
2025-05-12 10:08:06 +00:00
96872dc7b0 Merge branch 'renovate/proxmox-3.x' into 'main'
Update Terraform proxmox to v3.0.1-rc8

See merge request developerdurp/homelab!6
2025-05-12 10:07:53 +00:00
c5ec227c48 Merge branch 'renovate/docker.io-aquasec-trivy-0.x' into 'main'
Update docker.io/aquasec/trivy Docker tag to v0.62.1

See merge request developerdurp/homelab!7
2025-05-12 10:07:27 +00:00
4ae919f070 Merge branch 'renovate/docker.io-nginxinc-nginx-unprivileged-1.x' into 'main'
Update docker.io/nginxinc/nginx-unprivileged Docker tag to v1.28.0

See merge request developerdurp/homelab!8
2025-05-12 10:07:16 +00:00
d88e58a5a1 Merge branch 'renovate/docker.io-swaggerapi-swagger-ui-5.x' into 'main'
Update docker.io/swaggerapi/swagger-ui Docker tag to v5.21.0

See merge request developerdurp/homelab!9
2025-05-12 10:07:01 +00:00
4105842b31 Merge branch 'renovate/authentik-remote-cluster-2.x' into 'main'
Update Helm release authentik-remote-cluster to v2.1.0

See merge request developerdurp/homelab!10
2025-05-12 10:06:45 +00:00
f083c707d5 Merge branch 'renovate/base-1.x' into 'main'
Update Helm release base to v1.26.0

See merge request developerdurp/homelab!11
2025-05-12 10:06:34 +00:00
ee8c9571b2 Merge branch 'renovate/cert-manager-1.x' into 'main'
Update Helm release cert-manager to v1.17.2

See merge request developerdurp/homelab!12
2025-05-12 10:06:12 +00:00
4ca9d3150c Merge branch 'renovate/crossplane-1.x' into 'main'
Update Helm release crossplane to v1.19.1

See merge request developerdurp/homelab!13
2025-05-12 10:05:46 +00:00
49e48e7e45 Merge branch 'renovate/external-dns-8.x' into 'main'
Update Helm release external-dns to v8.8.2

See merge request developerdurp/homelab!14
2025-05-12 10:04:14 +00:00
643ec165fc update 2025-05-11 12:38:40 -05:00
72e6598aae update 2025-05-11 10:51:02 -05:00
e2af26316f update 2025-05-11 10:50:17 -05:00
cdd34130aa update 2025-05-11 10:48:28 -05:00
95be6528f2 update 2025-05-11 10:34:21 -05:00
5f3bd1c507 update 2025-05-11 10:33:01 -05:00
97375239af updateupdate 2025-05-11 10:30:14 -05:00
4ce97eca7a update 2025-05-11 10:26:59 -05:00
818123fee1 update 2025-05-11 10:25:54 -05:00
bd7adf4065 update 2025-05-11 10:24:55 -05:00
eedb7d8380 update 2025-05-11 10:23:04 -05:00
d506b1964b update 2025-05-11 10:17:15 -05:00
5e0ce5c39c update 2025-05-10 13:56:42 -05:00
45af1f9be9 update 2025-05-10 13:54:17 -05:00
8c27fdce5f update 2025-05-10 12:48:38 -05:00
bff82fd82f update 2025-05-10 12:14:01 -05:00
960a681b6f update 2025-05-10 10:48:21 -05:00
e6c3dc4357 update 2025-05-10 10:44:58 -05:00
107dd520b3 update 2025-05-10 10:41:51 -05:00
263ed8d805 update 2025-05-10 10:37:55 -05:00
19a1c7ebd3 update 2025-05-10 10:28:13 -05:00
e74142b072 update 2025-05-10 10:19:14 -05:00
16745c9f2b update 2025-05-10 10:15:05 -05:00
5d8f11b8ea update 2025-05-10 10:12:33 -05:00
f4e0a20954 update 2025-05-10 09:46:48 -05:00
596420a053 update 2025-05-10 09:43:43 -05:00
235806871f update 2025-05-10 09:42:14 -05:00
f81893afee update 2025-05-10 09:41:50 -05:00
36e8dde91d update 2025-05-10 09:17:46 -05:00
71340d6b3f update 2025-05-10 09:15:08 -05:00
c5d12501ef update 2025-05-10 09:09:22 -05:00
3a5a9838b2 update 2025-05-10 09:05:32 -05:00
9f8dc8f8ed update 2025-05-10 08:59:55 -05:00
9514ffc44a update 2025-05-10 08:55:17 -05:00
04da18d4ee update 2025-05-10 07:51:37 -05:00
de5dc93ecf update 2025-05-10 07:49:31 -05:00
d781ccc052 update 2025-05-10 07:49:17 -05:00
137fbd4822 update 2025-05-10 07:26:57 -05:00
6ed5b70eaf update 2025-05-10 07:26:40 -05:00
13435c5f47 update 2025-05-10 07:16:20 -05:00
bf3b202308 update 2025-05-10 07:15:05 -05:00
f9fca17edb update 2025-05-10 06:40:49 -05:00
721d9be377 update 2025-05-09 06:45:08 -05:00
0690679d91 update 2025-05-09 05:59:57 -05:00
abab7c70db update test project 2025-05-09 05:59:09 -05:00
b43d205af3 update 2025-05-09 05:57:43 -05:00
c8dd861c5d update 2025-05-09 05:56:15 -05:00
d6f69b5857 update 2025-05-09 05:54:58 -05:00
f99dbcc533 update 2025-05-09 05:49:19 -05:00
bcc421445c update 2025-05-09 05:42:34 -05:00
Renovate Bot
ad8f5884e7 Update Helm release external-dns to v8.8.2 2025-05-09 10:36:29 +00:00
Renovate Bot
22d82b0082 Update Helm release crossplane to v1.19.1 2025-05-09 10:36:26 +00:00
16077f4523 update 2025-05-09 05:32:49 -05:00
Renovate Bot
d35c0757fb Update Helm release cert-manager to v1.17.2 2025-05-09 10:30:41 +00:00
Renovate Bot
ab868d0c26 Update Helm release base to v1.26.0 2025-05-09 10:30:38 +00:00
d6162f7046 update 2025-05-09 05:26:25 -05:00
Renovate Bot
9a587d2f75 Update Helm release authentik-remote-cluster to v2.1.0 2025-05-09 10:23:03 +00:00
Renovate Bot
2d00ceda68 Update docker.io/swaggerapi/swagger-ui Docker tag to v5.21.0 2025-05-09 10:23:00 +00:00
c6b300f572 update 2025-05-09 05:19:13 -05:00
16e8514480 update 2025-05-09 05:17:42 -05:00
0812204655 update 2025-05-09 05:12:49 -05:00
Renovate Bot
821c206174 Update docker.io/nginxinc/nginx-unprivileged Docker tag to v1.28.0 2025-05-09 06:01:42 +00:00
Renovate Bot
10168e7534 Update docker.io/aquasec/trivy Docker tag to v0.62.1 2025-05-09 06:01:39 +00:00
Renovate Bot
6a26e350d3 Update Terraform proxmox to v3.0.1-rc8 2025-05-08 11:36:35 +00:00
Renovate Bot
5c84b0bd26 Update Helm release metallb to v0.14.9 2025-05-08 11:36:32 +00:00
4b0ef9a97e Merge branch 'renovate/configure' into 'main'
Configure Renovate

See merge request developerdurp/homelab!4
2025-05-08 11:35:13 +00:00
3ae74042c3 Configure Renovate 2025-05-08 11:35:13 +00:00
4312733b55 update 2025-05-08 06:32:43 -05:00
b9d0ef311b update 2025-05-08 06:27:02 -05:00
0e6aad89dc update 2025-05-08 06:25:48 -05:00
7916ed8247 update 2025-05-08 06:25:00 -05:00
098186307b update 2025-05-08 06:24:33 -05:00
4a6bac7674 update 2025-05-08 06:16:10 -05:00
92c666bf9d update 2025-05-08 06:10:36 -05:00
9876b3659e update 2025-05-08 06:09:10 -05:00
84832c7455 update 2025-05-08 06:06:18 -05:00
b293f708e9 update 2025-05-08 06:04:02 -05:00
f40139702d update 2025-05-08 06:03:07 -05:00
2a823e7536 update 2025-05-08 05:39:26 -05:00
d73325c1bc update 2025-05-08 05:31:21 -05:00
c1594778b7 update 2025-05-08 05:29:34 -05:00
765a79aaad update 2025-05-08 05:25:23 -05:00
bf7f3692b8 update 2025-05-08 05:23:25 -05:00
705f13289c update 2025-05-08 04:47:51 -05:00
18366175e9 update 2025-05-08 04:44:58 -05:00
03beda78e0 update 2025-05-07 17:45:12 -05:00
a43c27d78a update 2025-05-07 17:42:53 -05:00
1baa082434 update 2025-05-07 17:41:55 -05:00
1463788a5e update 2025-05-07 15:06:27 -05:00
a66bd5f10a update 2025-05-07 05:11:50 -05:00
49cba480ba update 2025-05-07 05:11:19 -05:00
7fdc34321f update 2025-05-07 05:07:30 -05:00
60053fb88a add openspeedtest 2025-05-06 09:34:31 -05:00
59734e07a5 update 2025-05-06 05:35:48 -05:00
b33158e0fe update 2025-05-06 05:33:30 -05:00
9d0a172198 update 2025-05-06 05:11:58 -05:00
0e547f03ce update 2025-05-02 05:03:52 -05:00
a271f17ad8 update 2025-05-02 05:02:43 -05:00
44fc423272 update 2025-05-02 05:01:28 -05:00
7845a8fbd1 update 2025-05-02 05:00:48 -05:00
8487172ee8 update 2025-05-01 06:16:15 -05:00
c407e7789d update 2025-05-01 06:15:44 -05:00
acfd02d2a2 update 2025-05-01 06:13:01 -05:00
e7c75c9c82 update 2025-05-01 06:12:12 -05:00
c6e52fd256 update 2025-05-01 06:06:53 -05:00
11b3a1b923 update 2025-05-01 06:02:37 -05:00
2729f7e4c2 update 2025-05-01 05:58:57 -05:00
cb3f240a2c update 2025-05-01 05:55:23 -05:00
37ab76ac8e update 2025-05-01 05:53:47 -05:00
91c26911ce update 2025-05-01 05:42:19 -05:00
7260fea4c8 update 2025-05-01 05:41:04 -05:00
83195cc317 update 2025-05-01 05:36:48 -05:00
f9edb8b4d2 update 2025-05-01 05:36:10 -05:00
980eab909d update 2025-04-23 15:55:43 -05:00
448c8b0ea3 add littlelink to dmz 2025-04-23 15:54:23 -05:00
408a8048e6 update nodes to 16gb 2025-04-23 06:23:27 -05:00
79256a5964 update image 2025-04-23 06:16:42 -05:00
41d2d55807 remove postgres servers 2025-04-23 06:11:10 -05:00
a6289a9055 update 2025-04-23 05:59:42 -05:00
6fe8eec8f9 update 2025-04-23 05:10:52 -05:00
a950be662b update 2025-04-23 05:07:41 -05:00
4adc7323e3 update 2025-04-23 05:04:34 -05:00
f58716f517 update 2025-04-23 04:59:00 -05:00
babc384d17 update 2025-04-23 04:56:54 -05:00
42ba7594fb update 2025-04-23 04:54:43 -05:00
a2b64f80b4 update 2025-04-22 06:50:16 -05:00
09e4a5013a update 2025-04-22 06:48:17 -05:00
5e3019d2f3 update 2025-04-22 06:46:35 -05:00
8a2cb45bc7 update 2025-04-22 06:40:53 -05:00
ec9d97f401 update 2025-04-22 06:38:27 -05:00
74ec11d0fe update 2025-04-22 06:35:40 -05:00
2097a8dd3a update 2025-04-22 06:34:33 -05:00
5a8fa58e9b update 2025-04-22 06:18:49 -05:00
64b4d9b0b8 update 2025-04-20 11:20:46 -05:00
4ad72ea0d4 update 2025-04-20 10:41:53 -05:00
dff580e991 add secrets 2025-04-20 10:41:15 -05:00
392058905a update 2025-04-20 07:56:17 -05:00
e292970da0 update 2025-04-20 07:44:14 -05:00
6dee8029aa update 2025-04-20 07:42:48 -05:00
88bc421ac1 update 2025-04-20 07:31:59 -05:00
9ce0fc4112 update 2025-04-20 07:31:06 -05:00
68f6027dac update 2025-04-20 07:29:43 -05:00
e6022fd274 update 2025-04-20 07:27:59 -05:00
fc2d721303 add octopus 2025-04-20 07:25:30 -05:00
81fc69710b update 2025-04-18 04:42:56 -05:00
9e9e03fcb5 update 2025-04-17 06:28:32 -05:00
a7d4e387e7 update 2025-04-17 05:49:50 -05:00
dcc45cbba5 update 2025-04-17 05:49:13 -05:00
11d7183d7c update vlan 2025-04-17 05:19:45 -05:00
6dcb807697 add prd 2025-04-17 05:16:31 -05:00
28ee277a90 update 2025-04-17 04:54:17 -05:00
4772ff1f3f update 2025-04-16 04:52:41 -05:00
b879a85a16 update 2025-04-15 06:21:29 -05:00
dd94e0ab86 update 2025-04-15 06:19:16 -05:00
53f91d61d1 update 2025-04-14 06:11:08 -05:00
5777d5066a update 2025-04-14 06:08:34 -05:00
cec03c7f46 update 2025-04-14 06:07:49 -05:00
787d960250 update 2025-04-14 06:06:36 -05:00
48909154e8 add bitwarden to infra 2025-04-14 06:05:17 -05:00
3d2a2e37b9 remove kubeclarity 2025-04-14 05:35:08 -05:00
c6ee3c7b78 remove kube stack 2025-04-14 05:34:48 -05:00
77557ea2bd remove openwebui 2025-04-14 05:33:49 -05:00
81f2695095 update 2025-04-13 16:50:32 -05:00
f26d1cd366 update 2025-04-13 11:22:56 -05:00
a04e93ba9a update 2025-04-13 11:12:56 -05:00
3a90a6aca6 update 2025-04-13 10:39:58 -05:00
c98b9c6859 update 2025-04-13 09:00:58 -05:00
bea5f40cce update 2025-04-13 08:05:20 -05:00
69d486010c update 2025-04-13 07:52:03 -05:00
8283311536 update 2025-04-13 07:42:22 -05:00
5603924b25 update 2025-04-13 07:24:18 -05:00
6292d1730e update 2025-04-13 07:21:35 -05:00
b42c981f39 update 2025-04-13 07:20:14 -05:00
4e3e7c558a update 2025-04-10 16:33:13 -05:00
6e0579cc0f update 2025-04-04 06:14:13 -05:00
494301a3cd update 2025-04-01 06:00:46 -05:00
ee9c701c7c update 2025-04-01 05:34:22 -05:00
a794c4660b Add openclarity 2025-03-31 05:42:14 -05:00
5de76051a3 Add openclarity 2025-03-31 05:32:33 -05:00
e34ff55f1a Add openclarity 2025-03-31 05:28:26 -05:00
98b90c4321 Add openclarity 2025-03-31 05:27:31 -05:00
050a0b30e0 Add openclarity 2025-03-31 05:23:44 -05:00
5269bc1e2c Add openclarity 2025-03-31 05:23:01 -05:00
c66c651402 update 2025-03-29 07:02:37 -05:00
0d71f86fc2 update 2025-03-28 05:27:32 -05:00
93a0074599 update 2025-03-28 05:24:05 -05:00
cabd1ee225 update 2025-03-28 05:19:02 -05:00
53544a8ddc update 2025-03-28 05:11:24 -05:00
5ab36252cd update 2025-03-28 05:02:45 -05:00
7cd14dcd59 update 2025-03-28 05:01:14 -05:00
cad3dcf473 update 2025-03-28 04:50:20 -05:00
8b83c6a6c5 update 2025-03-28 04:47:12 -05:00
a5b1ff6dd8 update 2025-03-27 05:55:37 -05:00
a9e4a97447 update 2025-03-26 18:33:08 -05:00
be893ea040 update 2025-03-26 18:30:24 -05:00
1250df73df update 2025-03-26 18:28:38 -05:00
21dc6adcfb update 2025-03-26 18:26:32 -05:00
fad9f96101 Add dev 2025-03-26 05:08:17 -05:00
d9e4945224 Add dev 2025-03-26 05:06:16 -05:00
a593d314e1 Add dev 2025-03-26 04:52:49 -05:00
58ec1995df Add dev 2025-03-26 04:51:50 -05:00
06be8dc6cc Update to child pipelines 2025-03-26 04:45:23 -05:00
9b5f1a0fee test 2025-03-25 06:12:38 -05:00
4c02da8831 test 2025-03-25 06:10:14 -05:00
1d66e0f0db test 2025-03-25 06:09:13 -05:00
db45c8e1de test 2025-03-25 06:06:49 -05:00
0e24910675 update storage 2025-03-25 05:59:14 -05:00
19b50efc81 update storage 2025-03-25 05:58:17 -05:00
eacbe21387 update 2025-03-24 06:34:50 -05:00
d3ee85912c update 2025-03-24 06:11:23 -05:00
51c63131f7 update 2025-03-24 04:56:36 -05:00
0b1aec8ea1 update 2025-03-24 04:54:11 -05:00
2904235356 update 2025-03-24 04:51:49 -05:00
4a2fcd11a0 update 2025-03-24 04:50:51 -05:00
e542d2941e update 2025-03-24 04:48:11 -05:00
d6563a7dbc update 2025-03-23 08:32:55 -05:00
95f07b9403 update 2025-03-23 08:29:56 -05:00
85bf89b4e8 update 2025-03-23 08:27:44 -05:00
bd406e4ce1 update 2025-03-22 15:45:44 -05:00
f172469d92 update 2025-03-22 15:44:38 -05:00
c7763fbe48 update 2025-03-22 15:43:17 -05:00
79bff35307 update 2025-03-22 15:41:05 -05:00
7b2558d492 update 2025-03-22 15:35:58 -05:00
f1580bfc60 update 2025-03-22 10:55:59 -05:00
0c32bafdd9 update 2025-03-22 10:54:56 -05:00
584ba8d8f0 update 2025-03-22 10:54:21 -05:00
59db1a9a9f update 2025-03-22 10:53:47 -05:00
c52743df54 update 2025-03-22 10:52:27 -05:00
c95b6fc3d2 update 2025-03-22 08:06:59 -05:00
a970df0de1 update 2025-03-22 08:05:48 -05:00
fcf1e095d7 ujpdate 2025-03-21 05:41:02 -05:00
3809150c22 update 2025-03-21 05:39:56 -05:00
d5b9b82f47 update 2025-03-21 05:37:33 -05:00
fa8d36f4b0 update 2025-03-21 05:20:36 -05:00
83ff1238ac update 2025-03-21 05:16:40 -05:00
f248087e80 update 2025-03-21 05:12:52 -05:00
cd8f0e32d7 update 2025-03-21 05:07:24 -05:00
d9e448249e update 2025-03-21 05:05:26 -05:00
8949f640b7 update 2025-03-21 05:03:43 -05:00
9514e7c27c update 2025-03-21 05:01:31 -05:00
698daaab4c update 2025-03-21 04:49:13 -05:00
b0a9deb35f update 2025-03-20 06:27:21 -05:00
e5007648b6 update 2025-03-20 06:25:50 -05:00
5efe416248 update 2025-03-20 06:21:53 -05:00
22e9d5a08e update 2025-03-20 06:20:32 -05:00
336880a9b0 update 2025-03-20 06:18:45 -05:00
9addbbde4b update 2025-03-20 06:13:38 -05:00
6678b38ad9 update 2025-03-20 06:12:38 -05:00
e4e0132735 update 2025-03-20 06:05:54 -05:00
48077bdce5 update 2025-03-20 06:05:33 -05:00
2fda7414f2 update 2025-03-20 06:00:05 -05:00
cf1ffc1c97 update 2025-03-20 05:56:25 -05:00
f0252b7791 update 2025-03-20 05:50:17 -05:00
6caf043848 update 2025-03-20 05:49:06 -05:00
07577ce836 update 2025-03-20 05:47:29 -05:00
a88d9cf29c update 2025-03-20 05:43:28 -05:00
64d8e1d9ef update 2025-03-20 05:42:41 -05:00
65b6f1b63b update 2025-03-20 05:32:43 -05:00
57d47c8513 update 2025-03-20 05:27:52 -05:00
b1e4fc4ee3 updat 2025-03-20 05:18:45 -05:00
ead660ccc9 update 2025-03-20 05:17:42 -05:00
296c837bde update 2025-03-20 05:16:37 -05:00
1e328b5644 update 2025-03-20 05:11:45 -05:00
6cd0785009 update 2025-03-20 05:10:35 -05:00
1160ba317a update 2025-03-20 04:51:34 -05:00
04e8cd9137 update 2025-03-20 04:47:26 -05:00
409d39dcc5 update 2025-03-20 04:46:44 -05:00
c338eb860c update 2025-03-19 06:31:17 -05:00
0d72b08ff2 update 2025-03-19 06:18:36 -05:00
1366c2e6b1 update 2025-03-19 05:32:22 -05:00
2f7b994044 update 2025-03-19 05:31:43 -05:00
64c978a14f update 2025-03-19 05:30:45 -05:00
f475828569 update 2025-03-19 05:28:58 -05:00
843f050195 update 2025-03-19 05:26:29 -05:00
c24dcdfe2c update 2025-03-19 05:22:46 -05:00
28ddc5ccea update 2025-03-19 05:13:25 -05:00
e3857454b7 update 2025-03-19 05:11:50 -05:00
e6fa7ebb78 update 2025-03-19 05:04:06 -05:00
55341ba0d6 update 2025-03-19 05:01:38 -05:00
e7c2605097 update 2025-03-19 05:00:50 -05:00
b682553b27 update 2025-03-19 04:58:39 -05:00
47125c5d68 update 2025-03-19 04:57:53 -05:00
c0b2f5ede3 update 2025-03-19 04:55:15 -05:00
f1d96f60c1 update 2025-03-19 04:53:20 -05:00
78796fce97 update 2025-03-19 04:52:06 -05:00
32dd761dc4 update 2025-03-19 04:51:22 -05:00
144d9d547a update 2025-03-19 04:46:58 -05:00
f7434b0810 update 2025-03-18 06:38:22 -05:00
a24fc8a605 update 2025-03-18 06:34:13 -05:00
e6c9a0b9ed update 2025-03-18 06:31:01 -05:00
c6d963d635 update 2025-03-18 06:25:39 -05:00
399fadef3f update 2025-03-18 06:24:54 -05:00
9165bd44a9 update 2025-03-18 06:24:03 -05:00
093bf40127 update 2025-03-18 06:21:58 -05:00
d217345a25 update 2025-03-18 06:20:22 -05:00
3b69fdcf8f update 2025-03-18 06:19:13 -05:00
513298f3be update 2025-03-18 06:16:52 -05:00
4c4f67525d update 2025-03-18 06:15:33 -05:00
39fae09f58 update 2025-03-18 06:15:05 -05:00
22aad9eb54 update 2025-03-18 05:58:53 -05:00
2450688ab8 update 2025-03-18 05:56:39 -05:00
d73f626ae5 update 2025-03-18 05:55:10 -05:00
04e76a3e90 update 2025-03-18 05:06:45 -05:00
2e45f7b899 update 2025-03-17 06:17:20 -05:00
7f3961964d update 2025-03-17 05:35:46 -05:00
813e8a8eb3 update 2025-03-17 05:26:24 -05:00
b2a369b479 update 2025-03-17 05:24:13 -05:00
0907c0fdc8 update 2025-03-17 05:20:34 -05:00
a50b3ca1d4 update 2025-03-17 05:13:50 -05:00
9d45ebf641 update 2025-03-17 05:00:00 -05:00
961e332e71 update 2025-03-17 04:59:19 -05:00
8d63bc4ea9 update 2025-03-16 21:32:29 -05:00
fa64786dcf update 2025-03-16 21:29:37 -05:00
3590ea3840 update 2025-03-16 21:22:07 -05:00
ce6b64840e update 2025-03-16 21:15:28 -05:00
f68327747a update 2025-03-16 13:35:16 -05:00
2df7ebbf4c update 2025-03-16 13:33:00 -05:00
1c63f8028a update 2025-03-16 13:27:48 -05:00
12f0ca2388 update 2025-03-16 13:24:13 -05:00
a833b3f921 update 2025-03-14 05:25:41 -05:00
ace5603daa update 2025-03-14 05:23:13 -05:00
0fede19fdf update 2025-03-14 05:10:24 -05:00
59c2db2c0f update 2025-03-14 05:09:53 -05:00
158ff3c97d update 2025-03-14 05:07:06 -05:00
700f186474 update storage 2025-03-13 14:47:27 -05:00
b35fe6bc66 update 2025-03-11 06:21:43 -05:00
52382885b0 update 2025-03-11 05:46:55 -05:00
8452f0ee77 update 2025-03-11 05:18:52 -05:00
3cf69d0883 update 2025-03-11 05:15:52 -05:00
3c65f2e76a update 2025-03-10 05:53:53 -05:00
6ef8bee912 update 2025-03-10 05:50:09 -05:00
839f9d1d7e update 2025-03-10 05:49:26 -05:00
8f2086854d update 2025-03-10 05:47:15 -05:00
70a2b51314 update 2025-03-10 05:37:56 -05:00
5900798f5f update 2025-03-10 05:36:31 -05:00
a81951925b update 2025-03-10 05:17:31 -05:00
5cccda199f update 2025-03-10 05:14:50 -05:00
ab91170043 update 2025-03-10 05:09:28 -05:00
b1f85151d8 update 2025-03-09 09:32:06 -05:00
44008f5f43 update 2025-03-09 09:06:39 -05:00
91e8082e00 update 2025-03-09 09:00:49 -05:00
b743ca035a update 2025-03-09 08:59:25 -05:00
257 changed files with 8503 additions and 794 deletions

View File

@@ -1,3 +1,34 @@
include:
- local: infra/.gitlab/.gitlab-ci.yml
- local: dmz/.gitlab/.gitlab-ci.yml
stages:
- triggers
build_dmz:
stage: triggers
trigger:
include: infra/.gitlab/.gitlab-ci.yml
rules:
- changes:
- "dmz/terraform/*.tf"
build_infra:
stage: triggers
trigger:
include: infra/.gitlab/.gitlab-ci.yml
rules:
- changes:
- "infra/terraform/*.tf"
build_dev:
stage: triggers
trigger:
include: dev/.gitlab/.gitlab-ci.yml
rules:
- changes:
- "dev/terraform/*.tf"
build_prd:
stage: triggers
trigger:
include: prd/.gitlab/.gitlab-ci.yml
rules:
- changes:
- "prd/terraform/*.tf"

2
ansible/newcluster.yaml Normal file
View File

@@ -0,0 +1,2 @@
argocd login --insecure
argocd cluster add default --name prd --yes --kubeconfig ~/Documents/config-prd

View File

@@ -0,0 +1 @@
Acquire::http::Proxy "http://192.168.21.200:3142";

View File

@@ -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

View File

@@ -1,3 +1,15 @@
- name: Copy apt proxy
copy:
src: files/01proxy
dest: /etc/apt/apt.conf.d/01proxy
owner: root
group: root
mode: "0644"
force: yes
when:
- ansible_os_family == "Debian"
- inventory_hostname not in hosts_deny
- name: Update packages
apt:
name: '*'

View File

@@ -0,0 +1,95 @@
stages:
- plan
- apply
- destroy
variables:
WORKDIR: $CI_PROJECT_DIR/dev/terraform
GITLAB_TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/dev
image:
name: registry.durp.info/opentofu/opentofu:latest
entrypoint: [""]
.tf-init:
before_script:
- cd $WORKDIR
- tofu init
-reconfigure
-backend-config="address=${GITLAB_TF_ADDRESS}"
-backend-config="lock_address=${GITLAB_TF_ADDRESS}/lock"
-backend-config="unlock_address=${GITLAB_TF_ADDRESS}/lock"
-backend-config="username=gitlab-ci-token"
-backend-config="password=${CI_JOB_TOKEN}"
-backend-config="lock_method=POST"
-backend-config="unlock_method=DELETE"
-backend-config="retry_wait_min=5"
format:
stage: .pre
allow_failure: false
script:
- cd $WORKDIR
- tofu fmt -diff -check -write=false
rules:
- changes:
- "dev/terraform/*.tf"
validate:
stage: .pre
allow_failure: false
extends: .tf-init
script:
- tofu validate
rules:
- changes:
- "dev/terraform/*.tf"
plan-dev-infrastructure:
stage: plan
variables:
PLAN: plan.tfplan
JSON_PLAN_FILE: tfplan.json
ENVIRONMENT_NAME: dev
allow_failure: false
extends: .tf-init
script:
- apk add --update curl jq
- alias convert_report="jq -r '([.resource_changes[].change.actions?]|flatten)|{\"create\":(map(select(.==\"create\"))|length),\"update\":(map(select(.==\"update\"))|length),\"delete\":(map(select(.==\"delete\"))|length)}'"
- tofu plan -out=$PLAN $ARGUMENTS
- tofu show --json $PLAN | jq -r '([.resource_changes[].change.actions?]|flatten)|{"create":(map(select(.=="create"))|length),"update":(map(select(.=="update"))|length),"delete":(map(select(.=="delete"))|length)}' > $JSON_PLAN_FILE
artifacts:
reports:
terraform: $WORKDIR/$JSON_PLAN_FILE
needs: ["validate","format"]
rules:
- changes:
- "dev/terraform/*.tf"
apply-dev-infrastructure:
stage: apply
variables:
ENVIRONMENT_NAME: dev
allow_failure: false
extends: .tf-init
script:
- tofu apply -auto-approve $ARGUMENTS
rules:
- changes:
- "dev/terraform/*.tf"
when: manual
needs: ["plan-dev-infrastructure"]
destroy-dev-infrastructure:
stage: destroy
variables:
ENVIRONMENT_NAME: dev
allow_failure: false
extends: .tf-init
script:
- tofu destroy -auto-approve $ARGUMENTS
rules:
- changes:
- "dev/terraform/*.tf"
when: manual
needs: ["plan-dev-infrastructure"]

View File

@@ -0,0 +1,11 @@
apiVersion: v2
name: cert-manager
description: A Helm chart for Kubernetes
type: application
version: 0.0.1
appVersion: 0.0.1
dependencies:
- name: cert-manager
repository: https://charts.jetstack.io
version: v1.17.2

View File

@@ -0,0 +1,16 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: issuer
secrets:
- name: issuer-token-lmzpj
---
apiVersion: v1
kind: Secret
metadata:
name: issuer-token-lmzpj
annotations:
kubernetes.io/service-account.name: issuer
type: kubernetes.io/service-account-token

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,22 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: cloudflare-api-token-secret
spec:
secretStoreRef:
name: vault
kind: ClusterSecretStore
target:
name: cloudflare-api-token-secret
data:
- secretKey: cloudflare-api-token-secret
remoteRef:
key: kv/cert-manager
property: cloudflare-api-token-secret
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: vault

View File

@@ -0,0 +1,26 @@
cert-manager:
crds:
enabled: true
image:
registry: registry.internal.durp.info
repository: jetstack/cert-manager-controller
pullPolicy: Always
replicaCount: 3
extraArgs:
- --dns01-recursive-nameservers=1.1.1.1:53,1.0.0.1:53
- --dns01-recursive-nameservers-only
podDnsPolicy: None
podDnsConfig:
nameservers:
- "1.1.1.1"
- "1.0.0.1"
webhook:
image:
registry: registry.internal.durp.info
repository: jetstack/cert-manager-webhook
pullPolicy: Always
cainjector:
image:
registry: registry.internal.durp.info
repository: jetstack/cert-manager-cainjector
pullPolicy: Always

View File

@@ -0,0 +1,12 @@
apiVersion: v2
name: external-dns
description: A Helm chart for Kubernetes
type: application
version: 0.0.1
appVersion: 0.0.1
dependencies:
- name: external-dns
repository: https://charts.bitnami.com/bitnami
version: 8.9.2

View File

@@ -0,0 +1,30 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: external-dns-secret
spec:
secretStoreRef:
name: vault
kind: ClusterSecretStore
target:
name: external-dns
data:
- secretKey: cloudflare_api_email
remoteRef:
key: kv/cloudflare
property: cloudflare_api_email
- secretKey: cloudflare_api_key
remoteRef:
key: kv/cloudflare
property: cloudflare_api_key
- secretKey: cloudflare_api_token
remoteRef:
key: kv/cloudflare
property: cloudflare_api_token
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: vault

View File

@@ -0,0 +1,18 @@
external-dns:
global:
imageRegistry: "registry.durp.info"
image:
pullPolicy: Always
txtPrefix: "dmz-"
sources:
- service
provider: cloudflare
cloudflare:
secretName : "external-dns"
proxied: false
policy: sync

View File

@@ -0,0 +1,11 @@
apiVersion: v2
name: external-secrets
description: A Helm chart for Kubernetes
type: application
version: 0.0.1
appVersion: 0.0.1
dependencies:
- name: external-secrets
repository: https://charts.external-secrets.io
version: 0.17.0

View File

@@ -0,0 +1,81 @@
apiVersion: v1
data:
vault.pem: |
-----BEGIN CERTIFICATE-----
MIIEszCCA5ugAwIBAgIUZEzzxqEuYiKHkL1df+Cb22NRRJMwDQYJKoZIhvcNAQEL
BQAwFDESMBAGA1UEAxMJZHVycC5pbmZvMB4XDTI1MDEyMzIyMzQ0MloXDTM1MDEy
MTExMTU1NVowIDEeMBwGA1UEAxMVdmF1bHQuaW5mcmEuZHVycC5pbmZvMIIBIjAN
BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkZM0ue4bMcmmATs+kGYSpR2hLUzq
scGIwCtqmaKCMbd1xhmgjnIR3zvSRptLR2GVGvc1ti6qby0jXYvcqbxkHvay00zW
2zYN+M2m4lXpuWzg1t6NEoO6XGAsGj2v0vcVktPPU9uj0rGUVGWWfsvjoXqQFg5I
jdxsxK9SvMvw2XtE3FgKxpzCyw94InIHlcPwFTO+3ZdKStZlMbUDIkmszLBrWFcr
XOsPDfLxqMy0Ck//LKIt8djh3254FHB1GG5+kI+JSW1o+tUcL2NymvIINwm/2acS
1uTm+j9W7iEXav0pJNmm+/dzSskc3Y0ftM0h2HCXgitBIaEZnUVneNHOLwIDAQAB
o4IB7zCCAeswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O
BBYEFCaQ2q7j7LyBGETEZ5qaJAdlISKCMB8GA1UdIwQYMBaAFO1jCyGkpFO+QiR2
dfBMWVYeWrQ2MIH0BggrBgEFBQcBAQSB5zCB5DAzBggrBgEFBQcwAYYnaHR0cHM6
Ly8xOTIuMTY4LjIwLjI1Mzo4MjAxL3YxL3BraS9vY3NwMD0GCCsGAQUFBzABhjFo
dHRwczovL3Jvb3QtdmF1bHQuaW50ZXJuYWwuZHVycC5pbmZvL3YxL3BraS9vY3Nw
MDEGCCsGAQUFBzAChiVodHRwczovLzE5Mi4xNjguMjAuMjUzOjgyMDEvdjEvcGtp
L2NhMDsGCCsGAQUFBzAChi9odHRwczovL3Jvb3QtdmF1bHQuaW50ZXJuYWwuZHVy
cC5pbmZvL3YxL3BraS9jYTAgBgNVHREEGTAXghV2YXVsdC5pbmZyYS5kdXJwLmlu
Zm8wbwYDVR0fBGgwZjAsoCqgKIYmaHR0cHM6Ly8xOTIuMTY4LjIwLjI1Mzo4MjAx
L3YxL3BraS9jcmwwNqA0oDKGMGh0dHBzOi8vcm9vdC12YXVsdC5pbnRlcm5hbC5k
dXJwLmluZm8vdjEvcGtpL2NybDANBgkqhkiG9w0BAQsFAAOCAQEAuJ+lplY/+A5L
5LzkljbKDTy3U6PLv1LtxqVCOFGiJXBnXMjtVW07bBEUadzFRNW8GHQ3w5QzOG6k
/vE/TrrJho7l05J/uc+BUrPSNjefLmQV6hn4jrP86PR0vzRfbSqKKBIID9M7+zi6
GFvHlVkSHsQyMQp7JOoax9KVzW2Y+OIgw7Lgw2tP122WCt2SIF0QenoZHsoW0guj
tzTJRmJDjn6XeJ7L3FPkf37H6ub0Jg3zBGr6eorEFfYZNN5CXezjqMFBpRdq4UIo
1M3A7o3uyZFcFsp/vGDcMBkwaCsBV9idu/HwkvGaTUNI285ilBORPD0bMZnACq/9
+Q/cdsO5lg==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEmzCCA4OgAwIBAgIUQwCAs82sgSuiaVbjANHScO2DSfAwDQYJKoZIhvcNAQEL
BQAwFDESMBAGA1UEAxMJZHVycC5pbmZvMB4XDTI1MDEyMzExMjEyNVoXDTM1MDEy
MTExMTU1NVowFDESMBAGA1UEAxMJZHVycC5pbmZvMIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEAn9fjGRqqFsqguz56X6cXZwEMtD9wElwSFCb4Fc8YTzlH
4fV13QwXKESLE/Q+7bw4y4FJQ8BiGNbxxbQOOgWhfGGlQyFa1lfhJtYLfqRN5C2/
S7nr0YxDB9duc4OAExVL6Pr4/Koc+vDZY03l7RzwnF2AOM9DjFTASw01TphCQjRk
U+upiN2TUhUPejV/gMR+zXM6pn98UBKG1dNubS0HzAMwAEXAPm141NDyWUCPT9+3
6P03Ka8mUTx3X49OCtvJEGEQbtlnTFQaOSkP1yLW+XRMHw3sQaV2PWXu5fInbEpZ
+SuzmgLOXtmQNmHLav9q1qeTVkpBGPWvfh2Vh1JJhQIDAQABo4IB4zCCAd8wDgYD
VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJaP17f1Zw0V
55Ks9Uf0USVWl0BPMB8GA1UdIwQYMBaAFO1jCyGkpFO+QiR2dfBMWVYeWrQ2MIH0
BggrBgEFBQcBAQSB5zCB5DAzBggrBgEFBQcwAYYnaHR0cHM6Ly8xOTIuMTY4LjIw
LjI1Mzo4MjAxL3YxL3BraS9vY3NwMD0GCCsGAQUFBzABhjFodHRwczovL3Jvb3Qt
dmF1bHQuaW50ZXJuYWwuZHVycC5pbmZvL3YxL3BraS9vY3NwMDEGCCsGAQUFBzAC
hiVodHRwczovLzE5Mi4xNjguMjAuMjUzOjgyMDEvdjEvcGtpL2NhMDsGCCsGAQUF
BzAChi9odHRwczovL3Jvb3QtdmF1bHQuaW50ZXJuYWwuZHVycC5pbmZvL3YxL3Br
aS9jYTAUBgNVHREEDTALgglkdXJwLmluZm8wbwYDVR0fBGgwZjAsoCqgKIYmaHR0
cHM6Ly8xOTIuMTY4LjIwLjI1Mzo4MjAxL3YxL3BraS9jcmwwNqA0oDKGMGh0dHBz
Oi8vcm9vdC12YXVsdC5pbnRlcm5hbC5kdXJwLmluZm8vdjEvcGtpL2NybDANBgkq
hkiG9w0BAQsFAAOCAQEAiqAZ4zNIEkCWcvpDRq0VyJuk59sVtJr5X4FscHQ179nE
QbbvMe+EBDFS6XQml1Elj8jiPa/D5O9Oc6Iisnm5+weZKwApz/lQ+XVkWLCoEplB
ZZ9fcWVCbMLt0xlt8qn5z/mYKfbCT7ZCqDO+prQZt+ADJcQbiknfroAAqEbNKxwN
Y9uUyOWNF3SxJEch4w2dtX+IEVmxeZnhMy8OuP0SQKl8aW40ugiG0ZD5yTBBfOD9
zsrGSU/iSatn0b7bevBhaL96hz1/rNR1cL+4/albX2hrr8Rv3/SB2DLtNQlQW0ls
AfhXAqP5zL+Ytgf1Of/pVdgnhxrYUY7RKCSGY5Hagw==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDLzCCAhegAwIBAgIUNHdvOzam2HPVdwXpMHUy4wl8ZRYwDQYJKoZIhvcNAQEL
BQAwFDESMBAGA1UEAxMJZHVycC5pbmZvMB4XDTI1MDEyMzExMTUyNVoXDTM1MDEy
MTExMTU1NVowFDESMBAGA1UEAxMJZHVycC5pbmZvMIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEA8XDTVEtRI3+k4yuvqVqfIiLRQJcXbmhfVtAeYk+5j9Ox
p1w9YHdnPLqLFrD1PzadjqYeAp/fwlEFfs6lqwoTS8S9vhaFqcgB57nVMb77dTBb
/08XHXOU6FPRjdFKm5QMpS7tn1XacPMy/o0bKqRREQeiuFDGVRyuF5PUgvWc1dvJ
l27JvvgYktgjfpNS4DlCxg4lGXT5abvaKf2hnr65egaIo/yRWN9wnvAzRiY7oci7
GA1oKz87Yc1tfL2gcynrwccOOCF/eUKesJR1I6GXNkN/a1fcr+Ld9Z9NhHBtO+vE
N8DsZY+kG7DE3M4BCCTFUzllcYHjaW4HaF9vZW+PYwIDAQABo3kwdzAOBgNVHQ8B
Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7WMLIaSkU75CJHZ1
8ExZVh5atDYwHwYDVR0jBBgwFoAU7WMLIaSkU75CJHZ18ExZVh5atDYwFAYDVR0R
BA0wC4IJZHVycC5pbmZvMA0GCSqGSIb3DQEBCwUAA4IBAQAS/qUI/1Yv07xUTK5k
r93kC7GSPpmpkXIsfjChAl93sebN143fu70NUP74jjCc0Wkb8hRofGg10E+/24r1
AI0KsLhzKzfIASxUVQAn8RTptLruaaPLboSA4MUZ8IB5y8Vy8E3/KtD0gD80j64Y
rm9XGHA0HTJHbPUTb/Rux2g0E7WtiyWSWH8mqzbegU8IrkM3eVT4+ylBE7YkfWDD
dw44sB71tfmDKpzWg6XQ6YMh0YfnyG1fYCj9LhuecNY9Uuo6cjDaAvkzMewWwqDx
Q2Ekas98Di6itCP8vET+gBDjeCc+XR6Hx6vzWmxlZhwDuxEKL1a2/DabUxJyMNzv
55Fn
-----END CERTIFICATE-----
kind: ConfigMap
metadata:
name: ca-pemstore

View File

@@ -0,0 +1,94 @@
external-secrets:
replicaCount: 3
revisionHistoryLimit: 1
leaderElect: true
installCRDs: true
crds:
createClusterExternalSecret: true
createClusterSecretStore: true
createClusterGenerator: true
createPushSecret: true
conversion:
enabled: false
image:
repository: registry.durp.info/external-secrets/external-secrets
pullPolicy: Always
extraVolumes:
- name: ca-pemstore
configMap:
name: ca-pemstore
extraVolumeMounts:
- name: ca-pemstore
mountPath: /etc/ssl/certs/vault.pem
subPath: vault.pem
readOnly: true
resources:
requests:
memory: 32Mi
cpu: 10m
limits:
memory: 32Mi
cpu: 10m
webhook:
create: false
failurePolicy: Ignore
log:
level: debug
image:
repository: registry.durp.info/external-secrets/external-secrets
pullPolicy: Always
extraVolumes:
- name: ca-pemstore
configMap:
name: ca-pemstore
extraVolumeMounts:
- name: ca-pemstore
mountPath: /etc/ssl/certs/vault.pem
subPath: vault.pem
readOnly: true
resources:
requests:
memory: 32Mi
cpu: 10m
limits:
memory: 32Mi
cpu: 10m
certController:
create: false
revisionHistoryLimit: 1
log:
level: debug
image:
repository: registry.durp.info/external-secrets/external-secrets
pullPolicy: Always
tag: ""
resources:
requests:
memory: 32Mi
cpu: 10m
limits:
memory: 32Mi
cpu: 10m
extraVolumes:
- name: ca-pemstore
configMap:
name: ca-pemstore
extraVolumeMounts:
- name: ca-pemstore
mountPath: /etc/ssl/certs/vault.pem
subPath: vault.pem
readOnly: true

View File

@@ -0,0 +1,12 @@
apiVersion: v2
name: metallb-system
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
appVersion: "1.16.0"
dependencies:
- name: metallb
repository: https://metallb.github.io/metallb
version: 0.15.2

View File

@@ -0,0 +1,17 @@
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: cheap
spec:
addresses:
- 192.168.10.130-192.168.10.140
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
name: pool
namespace: metallb-system
spec:
ipAddressPools:
- cheap

View File

115
dev/terraform/k3s.tf Normal file
View File

@@ -0,0 +1,115 @@
resource "proxmox_vm_qemu" "k3smaster" {
count = local.k3smaster.count
ciuser = "administrator"
vmid = "${local.vlan}${local.k3smaster.ip[count.index]}"
name = local.k3smaster.name[count.index]
target_node = local.k3smaster.node[count.index]
clone = local.template
tags = local.k3smaster.tags
qemu_os = "l26"
full_clone = true
os_type = "cloud-init"
agent = 1
cores = local.k3smaster.cores
sockets = 1
cpu_type = "host"
memory = local.k3smaster.memory
scsihw = "virtio-scsi-pci"
#bootdisk = "scsi0"
boot = "order=virtio0"
onboot = true
sshkeys = local.sshkeys
vga {
type = "serial0"
}
serial {
id = 0
type = "socket"
}
disks {
ide {
ide2 {
cloudinit {
storage = local.k3smaster.storage
}
}
}
virtio {
virtio0 {
disk {
size = local.k3smaster.drive
format = local.format
storage = local.k3smaster.storage
}
}
}
}
network {
id = 0
model = "virtio"
bridge = "vmbr0"
tag = local.vlan
}
#Cloud Init Settings
ipconfig0 = "ip=192.168.${local.vlan}.${local.k3smaster.ip[count.index]}/24,gw=192.168.${local.vlan}.1"
searchdomain = "durp.loc"
nameserver = local.dnsserver
}
resource "proxmox_vm_qemu" "k3sserver" {
count = local.k3sserver.count
ciuser = "administrator"
vmid = "${local.vlan}${local.k3sserver.ip[count.index]}"
name = local.k3sserver.name[count.index]
target_node = local.k3sserver.node[count.index]
clone = local.template
tags = local.k3sserver.tags
qemu_os = "l26"
full_clone = true
os_type = "cloud-init"
agent = 1
cores = local.k3sserver.cores
sockets = 1
cpu_type = "host"
memory = local.k3sserver.memory
scsihw = "virtio-scsi-pci"
#bootdisk = "scsi0"
boot = "order=virtio0"
onboot = true
sshkeys = local.sshkeys
vga {
type = "serial0"
}
serial {
id = 0
type = "socket"
}
disks {
ide {
ide2 {
cloudinit {
storage = local.k3sserver.storage
}
}
}
virtio {
virtio0 {
disk {
size = local.k3sserver.drive
format = local.format
storage = local.k3sserver.storage
}
}
}
}
network {
id = 0
model = "virtio"
bridge = "vmbr0"
tag = local.vlan
}
#Cloud Init Settings
ipconfig0 = "ip=192.168.${local.vlan}.${local.k3sserver.ip[count.index]}/24,gw=192.168.${local.vlan}.1"
searchdomain = "durp.loc"
nameserver = local.dnsserver
}

48
dev/terraform/main.tf Normal file
View File

@@ -0,0 +1,48 @@
terraform {
backend "http" {}
required_providers {
proxmox = {
source = "Telmate/proxmox"
version = "3.0.1-rc9"
}
}
}
provider "proxmox" {
pm_parallel = 1
pm_tls_insecure = true
pm_api_url = var.pm_api_url
pm_user = var.pm_user
pm_password = var.pm_password
pm_debug = false
}
locals {
sshkeys = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDEphzWgwUZnvL6E5luKLt3WO0HK7Kh63arSMoNl5gmjzXyhG1DDW0OKfoIl0T+JZw/ZjQ7iii6tmSLFRk6nuYCldqe5GVcFxvTzX4/xGEioAyG0IiUGKy6s+9xzO8QXF0EtSNPH0nfHNKcCjgwWAzM+Lt6gW0Vqs+aU5ICuDiEchmvYPz+rBaVldJVTG7m3ogKJ2aIF7HU/pCPp5l0E9gMOw7s0ABijuc3KXLEWCYgL39jIST6pFH9ceRLmu8Xy5zXHAkkEEauY/e6ld0hlzLadiUD7zYJMdDcm0oRvenYcUlaUl9gS0569IpfsJsjCejuqOxCKzTHPJDOT0f9TbIqPXkGq3s9oEJGpQW+Z8g41BqRpjBCdBk+yv39bzKxlwlumDwqgx1WP8xxKavAWYNqNRG7sBhoWwtxYEOhKXoLNjBaeDRnO5OY5AQJvONWpuByyz0R/gTh4bOFVD+Y8WWlKbT4zfhnN70XvapRsbZiaGhJBPwByAMGg6XxSbC6xtbyligVGCEjCXbTLkeKq1w0DuItY+FBGO3J2k90OiciTVSeyiVz9J/Y03UB0gHdsMCoVNrj+9QWfrTLDhM7D5YrXUt5nj2LQTcbtf49zoQXWxUhozlg42E/FJU/Yla7y55qWizAEVyP2/Ks/PHrF679k59HNd2IJ/aicA9QnmWtLQ== ansible"
template = "Debian12-Template"
format = "raw"
dnsserver = "192.168.10.1"
vlan = 10
k3smaster = {
tags = "k3s_dev"
count = 3
name = ["master01-dev", "master02-dev", "master03-dev"]
cores = 2
memory = "4096"
drive = 20
storage = "cache-domains"
node = ["mothership", "overlord", "vanguard"]
ip = ["11", "12", "13"]
}
k3sserver = {
tags = "k3s_dev"
count = 3
name = ["node01-dev", "node02-dev", "node03-dev"]
cores = 4
memory = "8192"
drive = 120
storage = "cache-domains"
node = ["mothership", "overlord", "vanguard"]
ip = ["21", "22", "23"]
}
}

View File

@@ -0,0 +1,14 @@
variable "pm_api_url" {
description = "API URL to Proxmox provider"
type = string
}
variable "pm_password" {
description = "Passowrd to Proxmox provider"
type = string
}
variable "pm_user" {
description = "Username to Proxmox provider"
type = string
}

11
dev/traefik/Chart.yaml Normal file
View File

@@ -0,0 +1,11 @@
apiVersion: v2
name: traefik
description: A Helm chart for Kubernetes
type: application
version: 0.0.1
appVersion: 0.0.1
dependencies:
- name: traefik
repository: https://traefik.github.io/charts
version: 34.5.0

58
dev/traefik/values.yaml Normal file
View File

@@ -0,0 +1,58 @@
traefik:
image:
# registry: registry.durp.info
# repository: traefik
pullPolicy: Always
providers:
kubernetesCRD:
allowCrossNamespace: true
allowExternalNameServices: true
allowEmptyServices: false
deployment:
replicas: 3
revisionHistoryLimit: 1
# volumes:
# - name: traefik-configmap
# mountPath: "/config"
# type: configMap
ingressRoute:
dashboard:
enabled: true
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
autoscaling:
enabled: true
minReplicas: 3
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 80
behavior:
scaleDown:
stabilizationWindowSeconds: 300
policies:
- type: Pods
value: 1
periodSeconds: 60
# -- [Resources](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for `traefik` container.
resources:
requests:
cpu: "100m"
memory: "512Mi"
limits:
memory: "512Mi"

12
dev/vault/Chart.yaml Normal file
View File

@@ -0,0 +1,12 @@
apiVersion: v2
name: vault
description: A Helm chart for Kubernetes
type: application
version: 0.0.1
appVersion: 0.0.1
dependencies:
- name: vault
repository: https://helm.releases.hashicorp.com
version: 0.30.0

View File

@@ -0,0 +1,23 @@
apiVersion: external-secrets.io/v1
kind: ClusterSecretStore
metadata:
name: vault
spec:
provider:
vault:
server: "https://vault.infra.durp.info"
path: "kv"
version: "v2"
auth:
kubernetes:
mountPath: "dmz-cluster"
role: "external-secrets"
serviceAccountRef:
name: "vault"
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: vault

13
dev/vault/values.yaml Normal file
View File

@@ -0,0 +1,13 @@
vault:
global:
enabled: true
tlsDisable: false
externalVaultAddr: "https://vault.infra.durp.info"
resources:
requests:
memory: 256Mi
cpu: 250m
limits:
memory: 256Mi
cpu: 250m

12
dmz/authentik/Chart.yaml Normal file
View File

@@ -0,0 +1,12 @@
apiVersion: v2
name: authentik
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
appVersion: "1.16.0"
dependencies:
- name: authentik-remote-cluster
repository: https://charts.goauthentik.io
version: 2.1.0

View 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

30
dmz/authentik/values.yaml Normal file
View File

@@ -0,0 +1,30 @@
authentik-remote-cluster:
# -- Provide a name in place of `authentik`. Prefer using global.nameOverride if possible
nameOverride: ""
# -- String to fully override `"authentik.fullname"`. Prefer using global.fullnameOverride if possible
fullnameOverride: ""
# -- Override the Kubernetes version, which is used to evaluate certain manifests
kubeVersionOverride: ""
## Globally shared configuration for authentik components.
global:
# -- Provide a name in place of `authentik`
nameOverride: ""
# -- String to fully override `"authentik.fullname"`
fullnameOverride: ""
# -- A custom namespace to override the default namespace for the deployed resources.
namespaceOverride: ""
# -- Common labels for all resources.
additionalLabels: {}
# app: authentik
# -- Annotations to apply to all resources
annotations: {}
serviceAccountSecret:
# -- Create a secret with the service account credentials
enabled: true
clusterRole:
# -- Create a clusterole in addition to a namespaced role.
enabled: true

View File

@@ -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

View File

@@ -1,6 +1,16 @@
#apiVersion: v1
#kind: ServiceAccount
#metadata:
# name: issuer
#secrets:
# - name: issuer-token-lmzpj
apiVersion: v1
kind: ServiceAccount
metadata:
name: issuer
secrets:
- name: issuer-token-lmzpj
---
apiVersion: v1
kind: Secret
metadata:
name: issuer-token-lmzpj
annotations:
kubernetes.io/service-account.name: issuer
type: kubernetes.io/service-account-token

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,4 @@
apiVersion: external-secrets.io/v1beta1
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: cloudflare-api-token-secret

View File

@@ -2,7 +2,7 @@ cert-manager:
crds:
enabled: true
image:
registry: registry.internal.durp.info
registry: registry.durp.info
repository: jetstack/cert-manager-controller
pullPolicy: Always
replicaCount: 3
@@ -16,11 +16,16 @@ cert-manager:
- "1.0.0.1"
webhook:
image:
registry: registry.internal.durp.info
registry: registry.durp.info
repository: jetstack/cert-manager-webhook
pullPolicy: Always
cainjector:
image:
registry: registry.internal.durp.info
registry: registry.durp.info
repository: jetstack/cert-manager-cainjector
pullPolicy: Always
hostAliases:
- ip: 192.168.12.130
hostnames:
- vault.infra.durp.info

11
dmz/crowdsec/Chart.yaml Normal file
View 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

View 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
View 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

View File

@@ -0,0 +1,12 @@
apiVersion: v2
name: external-dns
description: A Helm chart for Kubernetes
type: application
version: 0.0.1
appVersion: 0.0.1
dependencies:
- name: external-dns
repository: https://charts.bitnami.com/bitnami
version: 8.9.2

View File

@@ -0,0 +1,30 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: external-dns-secret
spec:
secretStoreRef:
name: vault
kind: ClusterSecretStore
target:
name: external-dns
data:
- secretKey: cloudflare_api_email
remoteRef:
key: kv/cloudflare
property: cloudflare_api_email
- secretKey: cloudflare_api_key
remoteRef:
key: kv/cloudflare
property: cloudflare_api_key
- secretKey: cloudflare_api_token
remoteRef:
key: kv/cloudflare
property: cloudflare_api_token
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: vault

View File

@@ -0,0 +1,20 @@
external-dns:
global:
imageRegistry: "registry.durp.info"
security:
allowInsecureImages: true
image:
pullPolicy: Always
txtPrefix: "dmz-"
sources:
- service
provider: cloudflare
cloudflare:
secretName: "external-dns"
proxied: false
policy: sync

View File

@@ -6,6 +6,6 @@ version: 0.0.1
appVersion: 0.0.1
dependencies:
- name: external-secrets
repository: https://charts.external-secrets.io
version: 0.13.0
- name: external-secrets
repository: https://charts.external-secrets.io
version: 0.17.0

View File

@@ -1,7 +1,13 @@
external-secrets:
replicaCount: 3
global:
security:
allowInsecureImages: true
log:
level: debug
replicaCount: 1
revisionHistoryLimit: 1
leaderElect: true
leaderElect: false
installCRDs: true
crds:
@@ -13,7 +19,7 @@ external-secrets:
enabled: false
image:
repository: registry.internal.durp.info/external-secrets/external-secrets
repository: registry.durp.info/external-secrets/external-secrets
pullPolicy: Always
extraVolumes:
@@ -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
@@ -41,7 +47,7 @@ external-secrets:
log:
level: debug
image:
repository: registry.internal.durp.info/external-secrets/external-secrets
repository: registry.durp.info/external-secrets/external-secrets
pullPolicy: Always
extraVolumes:
@@ -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
@@ -70,7 +76,7 @@ external-secrets:
level: debug
image:
repository: registry.internal.durp.info/external-secrets/external-secrets
repository: registry.durp.info/external-secrets/external-secrets
pullPolicy: Always
tag: ""

View File

@@ -0,0 +1,15 @@
apiVersion: v2
name: gitlab-runner
description: A Helm chart for Kubernetes
type: application
version: 0.0.1
appVersion: 0.0.1
dependencies:
- name: gitlab-runner
repository: https://charts.gitlab.io/
version: 0.77.2
- name: gitlab-runner
repository: https://charts.gitlab.io/
version: 0.77.2
alias: personal

View File

@@ -0,0 +1,48 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: gitlab-secret
spec:
secretStoreRef:
name: vault
kind: ClusterSecretStore
target:
name: gitlab-secret
data:
- secretKey: runner-registration-token
remoteRef:
key: kv/gitlab/runner
property: runner-registration-token
- secretKey: runner-token
remoteRef:
key: kv/gitlab/runner
property: runner-token
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: vault
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: gitlab-secret-personal
spec:
secretStoreRef:
name: vault
kind: ClusterSecretStore
target:
name: gitlab-secret-personal
data:
- secretKey: runner-token
remoteRef:
key: kv/gitlab/runner
property: personal-runner-token
- secretKey: runner-registration-token
remoteRef:
key: kv/gitlab/runner
property: personal-runner-token

View File

@@ -0,0 +1,143 @@
gitlab-runner:
image:
registry: registry.durp.info
image: gitlab-org/gitlab-runner
imagePullPolicy: Always
gitlabUrl: https://gitlab.com/
unregisterRunner: false
terminationGracePeriodSeconds: 3600
concurrent: 10
checkInterval: 30
rbac:
create: true
rules: []
clusterWideAccess: false
podSecurityPolicy:
enabled: false
resourceNames:
- gitlab-runner
metrics:
enabled: true
serviceMonitor:
enabled: true
service:
enabled: true
annotations: {}
runners:
config: |
[[runners]]
[runners.kubernetes]
namespace = "{{.Release.Namespace}}"
image = "ubuntu:22.04"
privileged = true
executor: kubernetes
name: "k3s"
runUntagged: true
privileged: true
secret: gitlab-secret
#builds:
#cpuLimit: 200m
#cpuLimitOverwriteMaxAllowed: 400m
#memoryLimit: 256Mi
#memoryLimitOverwriteMaxAllowed: 512Mi
#cpuRequests: 100m
#cpuRequestsOverwriteMaxAllowed: 200m
#memoryRequests: 128Mi
#memoryRequestsOverwriteMaxAllowed: 256Mi
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: false
runAsNonRoot: true
privileged: false
capabilities:
drop: ["ALL"]
podSecurityContext:
runAsUser: 100
fsGroup: 65533
resources:
limits:
memory: 2Gi
requests:
memory: 128Mi
cpu: 500m
personal:
image:
registry: registry.durp.info
image: gitlab-org/gitlab-runner
imagePullPolicy: Always
gitlabUrl: https://gitlab.com/
unregisterRunner: false
terminationGracePeriodSeconds: 3600
concurrent: 10
checkInterval: 30
rbac:
create: true
rules: []
clusterWideAccess: false
podSecurityPolicy:
enabled: false
resourceNames:
- gitlab-runner
metrics:
enabled: true
serviceMonitor:
enabled: true
service:
enabled: true
annotations: {}
runners:
config: |
[[runners]]
[runners.kubernetes]
namespace = "{{.Release.Namespace}}"
image = "ubuntu:22.04"
privileged = true
executor: kubernetes
name: "k3s"
runUntagged: true
privileged: true
secret: gitlab-secret-personal
#builds:
#cpuLimit: 200m
#cpuLimitOverwriteMaxAllowed: 400m
#memoryLimit: 256Mi
#memoryLimitOverwriteMaxAllowed: 512Mi
#cpuRequests: 100m
#cpuRequestsOverwriteMaxAllowed: 200m
#memoryRequests: 128Mi
#memoryRequestsOverwriteMaxAllowed: 256Mi
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: false
runAsNonRoot: true
privileged: false
capabilities:
drop: ["ALL"]
podSecurityContext:
runAsUser: 100
fsGroup: 65533
resources:
limits:
memory: 2Gi
requests:
memory: 128Mi
cpu: 500m

View File

@@ -0,0 +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

View File

@@ -0,0 +1,42 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: bitwarden-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`bitwarden.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: infra-cluster
port: 443
tls:
secretName: bitwarden-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: bitwarden-tls
spec:
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
secretName: bitwarden-tls
commonName: "bitwarden.durp.info"
dnsNames:
- "bitwarden.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: bitwarden-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: bitwarden.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -0,0 +1,64 @@
apiVersion: v1
kind: Service
metadata:
name: duplicati
spec:
ports:
- name: app
port: 8200
protocol: TCP
targetPort: 8200
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: duplicati
subsets:
- addresses:
- ip: 192.168.21.200
ports:
- name: app
port: 8200
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: duplicati-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`duplicati.internal.durp.info`) && PathPrefix(`/`)
middlewares:
- name: whitelist
namespace: traefik
- name: authentik-proxy-provider
namespace: traefik
kind: Rule
services:
- name: duplicati
port: 8200
tls:
secretName: duplicati-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: duplicati-tls
spec:
secretName: duplicati-tls
issuerRef:
name: vault-issuer
kind: ClusterIssuer
commonName: "duplicati.internal.durp.info"
dnsNames:
- "duplicati.internal.durp.info"

View File

@@ -0,0 +1,45 @@
apiVersion: v1
kind: Endpoints
metadata:
name: master-cluster
subsets:
- addresses:
- ip: 192.168.20.130
ports:
- port: 443
---
apiVersion: v1
kind: Service
metadata:
name: master-cluster
spec:
ports:
- protocol: TCP
port: 443
targetPort: 443
---
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

View File

@@ -0,0 +1,72 @@
apiVersion: v1
kind: Service
metadata:
name: gitea
spec:
ports:
- name: app
port: 3000
protocol: TCP
targetPort: 3000
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: gitea
subsets:
- addresses:
- ip: 192.168.21.200
ports:
- name: app
port: 3000
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: gitea-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`gitea.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: gitea
port: 3000
scheme: http
tls:
secretName: gitea-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: gitea-tls
spec:
secretName: gitea-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "gitea.durp.info"
dnsNames:
- "gitea.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: gitea-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: gitea.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -0,0 +1,68 @@
apiVersion: v1
kind: Service
metadata:
name: gitlab
spec:
ports:
- name: app
port: 9080
protocol: TCP
targetPort: 9080
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: gitlab
subsets:
- addresses:
- ip: 192.168.21.200
ports:
- name: app
port: 9080
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: gitlab-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`gitlab.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: gitlab
port: 9080
scheme: http
tls:
secretName: gitlab-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: gitlab-tls
spec:
secretName: gitlab-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "gitlab.durp.info"
dnsNames:
- "gitlab.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: gitlab-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: gitlab.durp.info
spec:
type: ExternalName
externalName: durp.info

View 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

View File

@@ -0,0 +1,74 @@
apiVersion: v1
kind: Service
metadata:
name: invidious
spec:
ports:
- name: app
port: 3000
protocol: TCP
targetPort: 3000
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: invidious
subsets:
- addresses:
- ip: 192.168.20.104
ports:
- name: app
port: 3000
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: invidious-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`invidious.durp.info`) && PathPrefix(`/`)
middlewares:
- name: authentik-proxy-provider
namespace: traefik
kind: Rule
services:
- name: invidious
port: 3000
tls:
secretName: invidious-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: invidious-tls
spec:
secretName: invidious-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "invidious.durp.info"
dnsNames:
- "invidious.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: invidious-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: invidious.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -0,0 +1,72 @@
apiVersion: v1
kind: Service
metadata:
name: kasm
spec:
ports:
- name: app
port: 443
protocol: TCP
targetPort: 443
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: kasm
subsets:
- addresses:
- ip: 192.168.20.104
ports:
- name: app
port: 443
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: kasm-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`kasm.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: kasm
port: 443
scheme: https
tls:
secretName: kasm-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: kasm-tls
spec:
secretName: kasm-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "kasm.durp.info"
dnsNames:
- "kasm.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: kasm-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: kasm.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -0,0 +1,45 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: kuma-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`kuma.durp.info`) && PathPrefix(`/`)
kind: Rule
middlewares:
- name: authentik-proxy-provider
namespace: traefik
services:
- name: master-cluster
port: 443
tls:
secretName: kuma-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: kuma-tls
spec:
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
secretName: kuma-tls
commonName: "kuma.durp.info"
dnsNames:
- "kuma.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: kuma-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: kuma.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -0,0 +1,71 @@
apiVersion: v1
kind: Service
metadata:
name: litellm
spec:
ports:
- name: app
port: 4000
protocol: TCP
targetPort: 4000
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: litellm
subsets:
- addresses:
- ip: 192.168.20.104
ports:
- name: app
port: 4000
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: litellm-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`litellm.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: litellm
port: 4000
tls:
secretName: litellm-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: litellm-tls
spec:
secretName: litellm-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "litellm.durp.info"
dnsNames:
- "litellm.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: litellm-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: litellm.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -0,0 +1,63 @@
apiVersion: v1
kind: Service
metadata:
name: minio
spec:
ports:
- name: app
port: 9769
protocol: TCP
targetPort: 9769
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: minio
subsets:
- addresses:
- ip: 192.168.21.200
ports:
- name: app
port: 9769
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: minio-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`minio.internal.durp.info`) && PathPrefix(`/`)
middlewares:
- name: whitelist
namespace: traefik
kind: Rule
services:
- name: minio
port: 9769
scheme: http
tls:
secretName: minio-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: minio-tls
spec:
secretName: minio-tls
issuerRef:
name: vault-issuer
kind: ClusterIssuer
commonName: "minio.internal.durp.info"
dnsNames:
- "minio.internal.durp.info"

View File

@@ -0,0 +1,68 @@
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.21.200
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

View File

@@ -0,0 +1,71 @@
apiVersion: v1
kind: Service
metadata:
name: nexus
spec:
ports:
- name: app
port: 8081
protocol: TCP
targetPort: 8081
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: nexus
subsets:
- addresses:
- ip: 192.168.20.200
ports:
- name: app
port: 8081
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: nexus-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`nexus.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: nexus
port: 8081
tls:
secretName: nexus-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: nexus-tls
spec:
secretName: nexus-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "nexus.durp.info"
dnsNames:
- "nexus.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: nexus-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: nexus.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -0,0 +1,40 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: octopus-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`octopus.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: infra-cluster
port: 443
tls:
secretName: octopus-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: octopus-tls
spec:
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
secretName: octopus-tls
commonName: "octopus.durp.info"
dnsNames:
- "octopus.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: octopus-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: octopus.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -1,101 +1,102 @@
#apiVersion: external-secrets.io/v1beta1
#kind: ExternalSecret
#metadata:
# name: ollama-secret
#spec:
# secretStoreRef:
# name: vault
# kind: ClusterSecretStore
# target:
# name: ollama-secret
# data:
# - secretKey: users
# remoteRef:
# key: secrets/internalproxy/ollama
# property: users
#
#---
#
#apiVersion: traefik.containo.us/v1alpha1
#kind: Middleware
#metadata:
# name: ollama-basic-auth
#spec:
# basicAuth:
# secret: ollama-secret
#
#---
#
#apiVersion: v1
#kind: Service
#metadata:
# name: ollama
#spec:
# ports:
# - name: app
# port: 11435
# protocol: TCP
# targetPort: 11435
# clusterIP: None
# type: ClusterIP
#
#---
#
#apiVersion: v1
#kind: Endpoints
#metadata:
# name: ollama
#subsets:
# - addresses:
# - ip: 192.168.20.104
# ports:
# - name: app
# port: 11435
# protocol: TCP
#
#---
#
#apiVersion: traefik.containo.us/v1alpha1
#kind: IngressRoute
#metadata:
# name: ollama-ingress
#spec:
# entryPoints:
# - websecure
# routes:
# - match: Host(`ollama.durp.info`) && PathPrefix(`/`)
# middlewares:
# - name: ollama-basic-auth
# kind: Rule
# services:
# - name: ollama
# port: 11435
# tls:
# secretName: ollama-tls
#
#---
#
#apiVersion: cert-manager.io/v1
#kind: Certificate
#metadata:
# name: ollama-tls
#spec:
# secretName: ollama-tls
# issuerRef:
# name: letsencrypt-production
# kind: ClusterIssuer
# commonName: "ollama.durp.info"
# dnsNames:
# - "ollama.durp.info"
#
#---
#
#kind: Service
#apiVersion: v1
#metadata:
# name: ollama-external-dns
# annotations:
# external-dns.alpha.kubernetes.io/hostname: ollama.durp.info
#spec:
# type: ExternalName
# externalName: durp.info
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: ollama-secret
spec:
secretStoreRef:
name: vault
kind: ClusterSecretStore
target:
name: ollama-secret
data:
- secretKey: users
remoteRef:
key: kv/ollama
property: users
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: ollama-basic-auth
spec:
basicAuth:
headerField: x-api-key
secret: ollama-secret
---
apiVersion: v1
kind: Service
metadata:
name: ollama
spec:
ports:
- name: app
port: 11435
protocol: TCP
targetPort: 11435
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: ollama
subsets:
- addresses:
- ip: 192.168.20.104
ports:
- name: app
port: 11435
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: ollama-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`ollama.durp.info`) && PathPrefix(`/`)
middlewares:
- name: ollama-basic-auth
kind: Rule
services:
- name: ollama
port: 11435
tls:
secretName: ollama-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: ollama-tls
spec:
secretName: ollama-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "ollama.durp.info"
dnsNames:
- "ollama.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: ollama-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: ollama.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -0,0 +1,72 @@
apiVersion: v1
kind: Service
metadata:
name: open-webui
spec:
ports:
- name: app
port: 8089
protocol: TCP
targetPort: 8089
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: open-webui
subsets:
- addresses:
- ip: 192.168.21.200
ports:
- name: app
port: 8089
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: open-webui-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`open-webui.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: open-webui
port: 8089
scheme: http
tls:
secretName: open-webui-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: open-webui-tls
spec:
secretName: open-webui-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "open-webui.durp.info"
dnsNames:
- "open-webui.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: open-webui-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: open-webui.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -0,0 +1,72 @@
apiVersion: v1
kind: Service
metadata:
name: plex
spec:
ports:
- name: app
port: 32400
protocol: TCP
targetPort: 32400
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: plex
subsets:
- addresses:
- ip: 192.168.21.200
ports:
- name: app
port: 32400
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: plex-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`plex.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: plex
port: 32400
scheme: https
tls:
secretName: plex-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: plex-tls
spec:
secretName: plex-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "plex.durp.info"
dnsNames:
- "plex.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: plex-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: plex.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -0,0 +1,63 @@
apiVersion: v1
kind: Service
metadata:
name: portainer
spec:
ports:
- name: app
port: 9443
protocol: TCP
targetPort: 9443
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: portainer
subsets:
- addresses:
- ip: 192.168.20.104
ports:
- name: app
port: 9443
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: portainer-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`portainer.internal.durp.info`) && PathPrefix(`/`)
#middlewares:
#- name: whitelist
# namespace: traefik
kind: Rule
services:
- name: portainer
port: 9443
scheme: https
tls:
secretName: portainer-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: portainer-tls
spec:
secretName: portainer-tls
issuerRef:
name: vault-issuer
kind: ClusterIssuer
commonName: "portainer.internal.durp.info"
dnsNames:
- "portainer.internal.durp.info"

View File

@@ -0,0 +1,63 @@
apiVersion: v1
kind: Service
metadata:
name: proxmox
spec:
ports:
- name: app
port: 8006
protocol: TCP
targetPort: 8006
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: proxmox
subsets:
- addresses:
- ip: 192.168.21.254
ports:
- name: app
port: 8006
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: proxmox-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`proxmox.internal.durp.info`) && PathPrefix(`/`)
middlewares:
- name: whitelist
namespace: traefik
kind: Rule
services:
- name: proxmox
port: 8006
scheme: https
tls:
secretName: proxmox-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: proxmox-tls
spec:
secretName: proxmox-tls
issuerRef:
name: vault-issuer
kind: ClusterIssuer
commonName: "proxmox.internal.durp.info"
dnsNames:
- "proxmox.internal.durp.info"

View File

@@ -0,0 +1,74 @@
#apiVersion: v1
#kind: Service
#metadata:
# name: redlib
#spec:
# ports:
# - name: app
# port: 8082
# protocol: TCP
# targetPort: 8082
# clusterIP: None
# type: ClusterIP
#
#---
#
#apiVersion: v1
#kind: Endpoints
#metadata:
# name: redlib
#subsets:
#- addresses:
# - ip: 192.168.21.200
# ports:
# - name: app
# port: 8082
# protocol: TCP
#
#---
#
#apiVersion: traefik.io/v1alpha1
#kind: IngressRoute
#metadata:
# name: redlib-ingress
#spec:
# entryPoints:
# - websecure
# routes:
# - match: Host(`redlib.durp.info`) && PathPrefix(`/`)
# middlewares:
# - name: authentik-proxy-provider
# namespace: traefik
# kind: Rule
# services:
# - name: redlib
# port: 8082
# tls:
# secretName: redlib-tls
#
#---
#
#apiVersion: cert-manager.io/v1
#kind: Certificate
#metadata:
# name: redlib-tls
#spec:
# secretName: redlib-tls
# issuerRef:
# name: letsencrypt-production
# kind: ClusterIssuer
# commonName: "redlib.durp.info"
# dnsNames:
# - "redlib.durp.info"
#
#---
#
#kind: Service
#apiVersion: v1
#metadata:
# name: redlib-external-dns
# annotations:
# external-dns.alpha.kubernetes.io/hostname: redlib.durp.info
#spec:
# type: ExternalName
# externalName: durp.info

View File

@@ -0,0 +1,70 @@
apiVersion: v1
kind: Service
metadata:
name: registry
spec:
ports:
- 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
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: registry-ingress
spec:
entryPoints:
- websecure
routes:
- 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:
name: registry-tls
spec:
secretName: registry-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "registry.durp.info"
dnsNames:
- "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

View File

@@ -0,0 +1,63 @@
apiVersion: v1
kind: Service
metadata:
name: root-vault
spec:
ports:
- name: app
port: 8201
protocol: TCP
targetPort: 8201
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: root-vault
subsets:
- addresses:
- ip: 192.168.21.200
ports:
- name: app
port: 8201
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: root-vault-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`root-vault.internal.durp.info`) && PathPrefix(`/`)
middlewares:
- name: whitelist
namespace: traefik
kind: Rule
services:
- name: root-vault
port: 8201
scheme: https
tls:
secretName: root-vault-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: root-vault-tls
spec:
secretName: root-vault-tls
issuerRef:
name: vault-issuer
kind: ClusterIssuer
commonName: "root-vault.internal.durp.info"
dnsNames:
- "root-vault.internal.durp.info"

View File

@@ -0,0 +1,109 @@
apiVersion: v1
kind: Service
metadata:
name: s3
spec:
ports:
- name: app
port: 9768
protocol: TCP
targetPort: 9768
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: s3
subsets:
- addresses:
- ip: 192.168.21.200
ports:
- name: app
port: 9768
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: s3-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`s3.internal.durp.info`) && PathPrefix(`/`)
middlewares:
- name: whitelist
namespace: traefik
kind: Rule
services:
- name: s3
port: 9768
scheme: http
tls:
secretName: s3-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: s3-tls
spec:
secretName: s3-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "s3.internal.durp.info"
dnsNames:
- "s3.internal.durp.info"
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: s3-ingress-external
spec:
entryPoints:
- websecure
routes:
- match: Host(`s3.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: s3
port: 9768
scheme: http
tls:
secretName: s3-external-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: s3-external-tls
spec:
secretName: s3-external-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "s3.durp.info"
dnsNames:
- "s3.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: s3-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: s3.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -0,0 +1,64 @@
apiVersion: v1
kind: Service
metadata:
name: semaphore
spec:
ports:
- name: app
port: 3001
protocol: TCP
targetPort: 3001
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: semaphore
subsets:
- addresses:
- ip: 192.168.21.200
ports:
- name: app
port: 3001
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: semaphore-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`semaphore.internal.durp.info`) && PathPrefix(`/`)
middlewares:
- name: whitelist
namespace: traefik
kind: Rule
services:
- name: semaphore
port: 3001
scheme: http
tls:
secretName: semaphore-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: semaphore-tls
spec:
secretName: semaphore-tls
issuerRef:
name: vault-issuer
kind: ClusterIssuer
commonName: "semaphore.internal.durp.info"
dnsNames:
- "semaphore.internal.durp.info"

View File

@@ -0,0 +1,4 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: vault

View File

@@ -0,0 +1,76 @@
apiVersion: v1
kind: Service
metadata:
name: smokeping
spec:
ports:
- name: app
port: 81
protocol: TCP
targetPort: 81
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: smokeping
subsets:
- addresses:
- ip: 192.168.21.200
ports:
- name: app
port: 81
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: smokeping-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`smokeping.durp.info`) && PathPrefix(`/`)
middlewares:
- name: whitelist
namespace: traefik
- name: authentik-proxy-provider
namespace: traefik
kind: Rule
services:
- name: smokeping
port: 81
tls:
secretName: smokeping-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: smokeping-tls
spec:
secretName: smokeping-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "smokeping.durp.info"
dnsNames:
- "smokeping.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: smokeping-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: smokeping.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -0,0 +1,74 @@
#apiVersion: v1
#kind: Service
#metadata:
# name: speedtest
#spec:
# ports:
# - name: app
# port: 6580
# protocol: TCP
# targetPort: 6580
# clusterIP: None
# type: ClusterIP
#
#---
#
#apiVersion: v1
#kind: Endpoints
#metadata:
# name: speedtest
#subsets:
#- addresses:
# - ip: 192.168.21.200
# ports:
# - name: app
# port: 6580
# protocol: TCP
#
#---
#
#apiVersion: traefik.io/v1alpha1
#kind: IngressRoute
#metadata:
# name: speedtest-ingress
#spec:
# entryPoints:
# - websecure
# routes:
# - match: Host(`speedtest.durp.info`) && PathPrefix(`/`)
# kind: Rule
# middlewares:
# - name: authentik-proxy-provider
# namespace: traefik
# services:
# - name: speedtest
# port: 6580
# tls:
# secretName: speedtest-tls
#
#---
#
#apiVersion: cert-manager.io/v1
#kind: Certificate
#metadata:
# name: speedtest-tls
#spec:
# secretName: speedtest-tls
# issuerRef:
# name: letsencrypt-production
# kind: ClusterIssuer
# commonName: "speedtest.durp.info"
# dnsNames:
# - "speedtest.durp.info"
#
#---
#
#kind: Service
#apiVersion: v1
#metadata:
# name: speedtest-external-dns
# annotations:
# external-dns.alpha.kubernetes.io/hostname: speedtest.durp.info
#spec:
# type: ExternalName
# externalName: durp.info

View File

@@ -0,0 +1,67 @@
apiVersion: v1
kind: Service
metadata:
name: tdarr
spec:
ports:
- name: app
port: 8267
protocol: TCP
targetPort: 8267
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: tdarr
subsets:
- addresses:
- ip: 192.168.21.200
ports:
- name: app
port: 8267
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: tdarr-ingress
annotations:
cert-manager.io/cluster-issuer: letsencrypt-production
spec:
entryPoints:
- websecure
routes:
- match: Host(`tdarr.internal.durp.info`)
middlewares:
- name: whitelist
namespace: traefik
- name: authentik-proxy-provider
namespace: traefik
kind: Rule
services:
- name: tdarr
port: 8267
scheme: http
tls:
secretName: tdarr-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: tdarr-tls
spec:
secretName: tdarr-tls
issuerRef:
name: vault-issuer
kind: ClusterIssuer
commonName: "tdarr.internal.durp.info"
dnsNames:
- "tdarr.internal.durp.info"

View File

@@ -0,0 +1,63 @@
apiVersion: v1
kind: Service
metadata:
name: unifi
spec:
ports:
- name: app
port: 443
protocol: TCP
targetPort: 443
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: unifi
subsets:
- addresses:
- ip: 192.168.98.1
ports:
- name: app
port: 443
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: unifi-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`unifi.internal.durp.info`) && PathPrefix(`/`)
middlewares:
- name: whitelist
namespace: traefik
kind: Rule
services:
- name: unifi
port: 443
scheme: https
tls:
secretName: unifi-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: unifi-tls
spec:
secretName: unifi-tls
issuerRef:
name: vault-issuer
kind: ClusterIssuer
commonName: "unifi.internal.durp.info"
dnsNames:
- "unifi.internal.durp.info"

View File

@@ -0,0 +1,64 @@
apiVersion: v1
kind: Service
metadata:
name: unraid
spec:
ports:
- name: app
port: 443
protocol: TCP
targetPort: 443
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: unraid
subsets:
- addresses:
- ip: 192.168.21.200
ports:
- name: app
port: 443
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: unraid-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`unraid.internal.durp.info`) && PathPrefix(`/`)
middlewares:
- name: whitelist
namespace: traefik
kind: Rule
services:
- name: unraid
port: 443
scheme: https
tls:
secretName: unraid-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: unraid-tls
spec:
secretName: unraid-tls
issuerRef:
name: vault-issuer
kind: ClusterIssuer
commonName: "unraid.internal.durp.info"
dnsNames:
- "unraid.internal.durp.info"

View File

@@ -0,0 +1,17 @@
apiVersion: v2
name: istio-system
description: A Helm chart for Kubernetes
type: application
version: 0.0.1
appVersion: 0.0.1
dependencies:
- name: base
repository: https://istio-release.storage.googleapis.com/charts
version: 1.26.2
- name: istiod
repository: https://istio-release.storage.googleapis.com/charts
version: 1.26.2
- name: gateway
repository: https://istio-release.storage.googleapis.com/charts
version: 1.26.2

View File

@@ -0,0 +1,14 @@
#apiVersion: v1
#kind: Namespace
#metadata:
# annotations:
# topology.istio.io/controlPlaneClusters: cluster1
# labels:
# kubernetes.io/metadata.name: istio-system
# name: istio-system
#spec:
# finalizers:
# - kubernetes
#status:
# phase: Active
#

View File

@@ -0,0 +1,16 @@
apiVersion: networking.istio.io/v1
kind: Gateway
metadata:
name: cross-network-gateway
spec:
selector:
istio: eastwestgateway
servers:
- port:
number: 15443
name: tls
protocol: TLS
tls:
mode: AUTO_PASSTHROUGH
hosts:
- "*.local"

View File

@@ -0,0 +1,10 @@
istiod:
global:
network: network2
meshID: mesh1
multiCluster:
clusterName: dmz
gateway:
name: istio-eastwestgateway
networkGateway: network2

View File

View File

@@ -0,0 +1,101 @@
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: littlelink
name: littlelink
labels:
app: littlelink
spec:
selector:
matchLabels:
app: littlelink
replicas: 1
template:
metadata:
labels:
app: littlelink
spec:
containers:
- name: littlelink
image: registry.durp.info/techno-tim/littlelink-server:latest
imagePullPolicy: Always
livenessProbe:
httpGet:
path: /healthcheck
port: 3000
readinessProbe:
httpGet:
path: /healthcheck
port: 3000
env:
- name: META_TITLE
value: DeveloperDurp
- name: META_DESCRIPTION
value: The Durpy Developer
- name: META_AUTHOR
value: DeveloperDurp
- name: LANG
value: en
- name: META_INDEX_STATUS
value: all
- name: OG_TITLE
value: DeveloperDurp
- name: OG_DESCRIPTION
value: DeveloperDurp
- name: OG_URL
value: https://gitlab.com/developerdurp
- name: OG_IMAGE
value: https://gitlab.com/uploads/-/system/user/avatar/9987937/avatar.png
- name : OG_IMAGE_WIDTH
value: "400"
- name : OG_IMAGE_HEIGHT
value: "400"
- name : THEME
value: Dark
- name : FAVICON_URL
value: https://gitlab.com/uploads/-/system/user/avatar/9987937/avatar.png
- name : AVATAR_URL
value: https://gitlab.com/uploads/-/system/user/avatar/9987937/avatar.png
- name : AVATAR_2X_URL
value: https://gitlab.com/uploads/-/system/user/avatar/9987937/avatar.png
- name : AVATAR_ALT
value: DeveloperDurp Profile Pic
- name : NAME
value: DeveloperDurp
- name : BIO
value: Sup Nerd,
- name : BUTTON_ORDER
value: GITHUB,GITLAB,YOUTUBE,INSTAGRAM,TWITTER,BLUESKY,COFFEE,EMAIL
- name : TWITTER
value: https://twitter.com/developerdurp
- name : GITHUB
value: https://github.com/DeveloperDurp
- name: INSTAGRAM
value: https://instagram.com/developerdurp
- name : GITLAB
value: https://gitlab.com/developerdurp
- name: YOUTUBE
value: https://www.youtube.com/channel/UC1rGa6s6kER_gLpIQsxeMVQ
- name : EMAIL
value: DeveloperDurp@durp.info
- name : EMAIL_TEXT
value: DeveloperDurp@durp.info
- name : FOOTER
value: DeveloperDurp © 2022
- name: CUSTOM_BUTTON_TEXT
value: BuyMeACoffee,BlueSky
- name: CUSTOM_BUTTON_URL
value: https://www.buymeacoffee.com/DeveloperDurp,https://bsky.app/profile/durp.info
- name: CUSTOM_BUTTON_COLOR
value: '#ffdd00,#1185fe'
- name: CUSTOM_BUTTON_TEXT_COLOR
value: '#000000,#FFFFFF'
- name: CUSTOM_BUTTON_ALT_TEXT
value: Support,BlueSky
- name: CUSTOM_BUTTON_NAME
value: COFFEE,BLUESKY
- name: CUSTOM_BUTTON_ICON
value: fa-solid fa-cup-togo
ports:
- name: http
containerPort: 3000

View File

@@ -0,0 +1,42 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: littlelink-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`links.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: littlelink
port: 80
tls:
secretName: littlelink-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: littlelink-tls
spec:
secretName: littlelink-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "links.durp.info"
dnsNames:
- "links.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: links-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: links.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: littlelink
spec:
ports:
- name: http
port: 80
targetPort: 3000
protocol: TCP
selector:
app: littlelink

12
dmz/longhorn/Chart.yaml Normal file
View File

@@ -0,0 +1,12 @@
apiVersion: v2
name: longhorn-system
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
appVersion: "1.16.0"
dependencies:
- name: longhorn
repository: https://charts.longhorn.io
version: 1.9.0

View File

@@ -0,0 +1,34 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: longhorn-ingress
annotations:
cert-manager.io/cluster-issuer: vault-issuer
spec:
entryPoints:
- websecure
routes:
- match: Host(`longhorn.dmz.durp.info`) && PathPrefix(`/`)
kind: Rule
middlewares:
- name: authentik-proxy-provider
namespace: traefik
services:
- name: longhorn-frontend
port: 80
tls:
secretName: longhorn-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: longhorn-tls
spec:
secretName: longhorn-tls
issuerRef:
name: vault-issuer
kind: ClusterIssuer
commonName: "longhorn.dmz.durp.info"
dnsNames:
- "longhorn.dmz.durp.info"

View File

@@ -0,0 +1,30 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: vault
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: external-longhorn-backup-token-secret
spec:
secretStoreRef:
name: vault
kind: ClusterSecretStore
target:
name: longhorn-backup-token-secret
data:
- secretKey: AWS_ACCESS_KEY_ID
remoteRef:
key: kv/longhorn/backup
property: AWS_ACCESS_KEY_ID
- secretKey: AWS_ENDPOINTS
remoteRef:
key: kv/longhorn/backup
property: AWS_ENDPOINTS
- secretKey: AWS_SECRET_ACCESS_KEY
remoteRef:
key: kv/longhorn/backup
property: AWS_SECRET_ACCESS_KEY

192
dmz/longhorn/values.yaml Normal file
View File

@@ -0,0 +1,192 @@
longhorn:
global:
cattle:
systemDefaultRegistry: ""
image:
longhorn:
engine:
repository: longhornio/longhorn-engine
manager:
repository: longhornio/longhorn-manager
ui:
repository: longhornio/longhorn-ui
instanceManager:
repository: longhornio/longhorn-instance-manager
shareManager:
repository: longhornio/longhorn-share-manager
backingImageManager:
repository: longhornio/backing-image-manager
csi:
attacher:
repository: longhornio/csi-attacher
provisioner:
repository: longhornio/csi-provisioner
nodeDriverRegistrar:
repository: longhornio/csi-node-driver-registrar
resizer:
repository: longhornio/csi-resizer
snapshotter:
repository: longhornio/csi-snapshotter
pullPolicy: Always
service:
ui:
type: ClusterIP
nodePort: null
manager:
type: ClusterIP
nodePort: ""
loadBalancerIP: ""
loadBalancerSourceRanges: ""
persistence:
defaultClass: true
defaultFsType: ext4
defaultClassReplicaCount: 3
defaultDataLocality: disabled # best-effort otherwise
reclaimPolicy: Delete
migratable: false
recurringJobSelector:
enable: true
jobList: '[
{
"name":"backup",
"task":"backup",
"cron":"0 0 * * *",
"retain":24
}
]'
backingImage:
enable: false
name: ~
dataSourceType: ~
dataSourceParameters: ~
expectedChecksum: ~
csi:
kubeletRootDir: ~
attacherReplicaCount: ~
provisionerReplicaCount: ~
resizerReplicaCount: ~
snapshotterReplicaCount: ~
defaultSettings:
backupTarget: S3://longhorn-master@us-east-1/
backupTargetCredentialSecret: longhorn-backup-token-secret
allowRecurringJobWhileVolumeDetached: ~
createDefaultDiskLabeledNodes: ~
defaultDataPath: ~
defaultDataLocality: ~
replicaSoftAntiAffinity: ~
replicaAutoBalance: ~
storageOverProvisioningPercentage: ~
storageMinimalAvailablePercentage: ~
upgradeChecker: ~
defaultReplicaCount: ~
defaultLonghornStaticStorageClass: longhorn
backupstorePollInterval: ~
taintToleration: ~
systemManagedComponentsNodeSelector: ~
priorityClass: ~
autoSalvage: ~
autoDeletePodWhenVolumeDetachedUnexpectedly: ~
disableSchedulingOnCordonedNode: ~
replicaZoneSoftAntiAffinity: ~
nodeDownPodDeletionPolicy: ~
allowNodeDrainWithLastHealthyReplica: ~
mkfsExt4Parameters: ~
disableReplicaRebuild: ~
replicaReplenishmentWaitInterval: ~
concurrentReplicaRebuildPerNodeLimit: ~
disableRevisionCounter: ~
systemManagedPodsImagePullPolicy: ~
allowVolumeCreationWithDegradedAvailability: ~
autoCleanupSystemGeneratedSnapshot: ~
concurrentAutomaticEngineUpgradePerNodeLimit: ~
backingImageCleanupWaitInterval: ~
backingImageRecoveryWaitInterval: ~
guaranteedEngineManagerCPU: ~
guaranteedReplicaManagerCPU: ~
kubernetesClusterAutoscalerEnabled: ~
orphanAutoDeletion: ~
storageNetwork: ~
privateRegistry:
createSecret: ~
registryUrl: ~
registryUser: ~
registryPasswd: ~
registrySecret: ~
longhornManager:
priorityClass: ~
tolerations: []
## If you want to set tolerations for Longhorn Manager DaemonSet, delete the `[]` in the line above
## and uncomment this example block
# - key: "key"
# operator: "Equal"
# value: "value"
# effect: "NoSchedule"
nodeSelector: {}
## If you want to set node selector for Longhorn Manager DaemonSet, delete the `{}` in the line above
## and uncomment this example block
# label-key1: "label-value1"
# label-key2: "label-value2"
longhornDriver:
priorityClass: ~
tolerations: []
## If you want to set tolerations for Longhorn Driver Deployer Deployment, delete the `[]` in the line above
## and uncomment this example block
# - key: "key"
# operator: "Equal"
# value: "value"
# effect: "NoSchedule"
nodeSelector: {}
## If you want to set node selector for Longhorn Driver Deployer Deployment, delete the `{}` in the line above
## and uncomment this example block
# label-key1: "label-value1"
# label-key2: "label-value2"
longhornUI:
priorityClass: ~
tolerations: []
## If you want to set tolerations for Longhorn UI Deployment, delete the `[]` in the line above
## and uncomment this example block
# - key: "key"
# operator: "Equal"
# value: "value"
# effect: "NoSchedule"
nodeSelector: {}
## If you want to set node selector for Longhorn UI Deployment, delete the `{}` in the line above
## and uncomment this example block
# label-key1: "label-value1"
# label-key2: "label-value2"
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
#
ingress:
enabled: false
## Specify override namespace, specifically this is useful for using longhorn as sub-chart
## and its release namespace is not the `longhorn-system`
namespaceOverride: ""
# Annotations to add to the Longhorn Manager DaemonSet Pods. Optional.
annotations: {}
serviceAccount:
# Annotations to add to the service account
annotations: {}

View File

@@ -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

View File

@@ -0,0 +1,7 @@
apiVersion: v2
name: openspeedtest
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
appVersion: "1.16.0"

View File

@@ -0,0 +1,33 @@
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: openspeedtest
name: openspeedtest
labels:
app: openspeedtest
spec:
selector:
matchLabels:
app: openspeedtest
replicas: 1
template:
metadata:
labels:
app: openspeedtest
spec:
containers:
- name: openspeedtest
image: registry.durp.info/openspeedtest/latest
imagePullPolicy: Always
livenessProbe:
httpGet:
path: /
port: 3000
readinessProbe:
httpGet:
path: /
port: 3000
env:
ports:
- name: http
containerPort: 3000

View File

@@ -0,0 +1,56 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: openspeedtest-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`speedtest.durp.info`) && PathPrefix(`/`)
kind: Rule
middlewares:
- name: authentik-proxy-provider
namespace: traefik
- name: limit-buffering
services:
- name: openspeedtest
port: 3000
tls:
secretName: openspeedtest-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: openspeedtest-tls
spec:
secretName: openspeedtest-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "speedtest.durp.info"
dnsNames:
- "speedtest.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: openspeedtest-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: speedtest.durp.info
spec:
type: ExternalName
externalName: durp.info
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: limit-buffering
spec:
buffering:
maxRequestBodyBytes: 10000000000

View File

@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: openspeedtest
spec:
ports:
- name: http
port: 3000
targetPort: 3000
protocol: TCP
selector:
app: openspeedtest

7
dmz/redlib/Chart.yaml Normal file
View File

@@ -0,0 +1,7 @@
apiVersion: v2
name: redlib
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
appVersion: "1.16.0"

View File

@@ -0,0 +1,33 @@
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: redlib
name: redlib
labels:
app: redlib
spec:
selector:
matchLabels:
app: redlib
replicas: 3
template:
metadata:
labels:
app: redlib
spec:
containers:
- name: redlib
image: registry.durp.info/redlib/redlib:latest
imagePullPolicy: Always
livenessProbe:
httpGet:
path: /
port: 8080
readinessProbe:
httpGet:
path: /
port: 8080
env:
ports:
- name: http
containerPort: 8080

View File

@@ -0,0 +1,43 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: redlib-ingress
spec:
entryPoints:
- websecure
routes:
- 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:
name: redlib-tls
spec:
secretName: redlib-tls
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "redlib.durp.info"
dnsNames:
- "redlib.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: redlib-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: redlib.durp.info
spec:
type: ExternalName
externalName: durp.info

View File

@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: redlib
spec:
ports:
- name: http
port: 8080
targetPort: 8080
protocol: TCP
selector:
app: redlib

0
dmz/redlib/values.yaml Normal file
View File

Some files were not shown because too many files have changed in this diff Show More