370 Commits

Author SHA1 Message Date
Renovate Bot
318a8a557a Update Helm release crowdsec to v0.21.0 2025-12-02 07:03:19 +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
202 changed files with 5325 additions and 2421 deletions

View File

@@ -24,3 +24,11 @@ build_dev:
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

@@ -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,4 +1,4 @@
apiVersion: external-secrets.io/v1beta1
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: cloudflare-api-token-secret

View File

@@ -9,4 +9,4 @@ appVersion: 0.0.1
dependencies:
- name: external-dns
repository: https://charts.bitnami.com/bitnami
version: 8.3.8
version: 8.9.2

View File

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

View File

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

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

@@ -4,7 +4,7 @@ metadata:
name: cheap
spec:
addresses:
- 192.168.98.130-192.168.98.140
- 192.168.10.130-192.168.10.140
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement

View File

@@ -3,7 +3,7 @@ terraform {
required_providers {
proxmox = {
source = "Telmate/proxmox"
version = "3.0.1-rc6"
version = "3.0.1-rc9"
}
}
}
@@ -30,7 +30,7 @@ locals {
cores = 2
memory = "4096"
drive = 20
storage = "domains"
storage = "cache-domains"
node = ["mothership", "overlord", "vanguard"]
ip = ["11", "12", "13"]
}
@@ -41,7 +41,7 @@ locals {
cores = 4
memory = "8192"
drive = 120
storage = "domains"
storage = "cache-domains"
node = ["mothership", "overlord", "vanguard"]
ip = ["21", "22", "23"]
}

View File

@@ -8,4 +8,4 @@ appVersion: 0.0.1
dependencies:
- name: traefik
repository: https://traefik.github.io/charts
version: 34.0.0
version: 34.5.0

View File

@@ -1,16 +0,0 @@
#apiVersion: v1
#kind: ConfigMap
#metadata:
# name: traefik-configmap
#data:
# config.yml: |
# http:
# routers:
# router0:
# service: service0
# rule: Host(`testing.durp.info`)
# services:
# service0:
# loadBalancer:
# servers:
# - url: https://192.168.20.130

View File

@@ -1,35 +0,0 @@
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: authentik-proxy-provider
namespace: traefik
spec:
forwardAuth:
address: http://ak-outpost-dmz-embedded-outpost.authentik.svc.cluster.local:9000/outpost.goauthentik.io/auth/traefik?rd=$scheme://$http_host$request_uri
trustForwardHeader: true
authResponseHeaders:
- X-authentik-username
- X-authentik-groups
- X-authentik-email
- X-authentik-name
- X-authentik-uid
- X-authentik-jwt
- X-authentik-meta-jwks
- X-authentik-meta-outpost
- X-authentik-meta-provider
- X-authentik-meta-app
- X-authentik-meta-version
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: whitelist
namespace: traefik
spec:
ipWhiteList:
sourceRange:
- 192.168.0.0/16
- 172.16.0.0/12
- 10.0.0.0/8

View File

@@ -1,34 +0,0 @@
#apiVersion: traefik.io/v1alpha1
#kind: IngressRoute
#metadata:
# name: traefik-ingress
#spec:
# entryPoints:
# - websecure
# routes:
# - match: Host(`traefik.durp.info`)
# kind: Rule
# services:
# - name: api@internal
# kind: TraefikService
# tls:
# secretName: traefik-tls
#
#---
#
#apiVersion: cert-manager.io/v1
#kind: Certificate
#metadata:
# name: traefik-tls
# namespace: traefik
#spec:
# secretName: traefik-tls
# issuerRef:
# name: letsencrypt-production
# kind: ClusterIssuer
# commonName: "traefik.durp.info"
# dnsNames:
# - "traefik.durp.info"
#
#---
#

View File

@@ -1,10 +1,10 @@
traefik:
image:
image:
# registry: registry.durp.info
# repository: traefik
pullPolicy: Always
providers:
providers:
kubernetesCRD:
allowCrossNamespace: true
allowExternalNameServices: true
@@ -18,40 +18,39 @@ traefik:
# - name: traefik-configmap
# mountPath: "/config"
# type: configMap
ingressRoute:
dashboard:
enabled: true
additionalArguments:
additionalArguments:
# - "--providers.file.filename=/config/config.yml"
- "--serversTransport.insecureSkipVerify=true"
- "--log.level=DEBUG"
- --experimental.plugins.jwt.moduleName=github.com/traefik-plugins/traefik-jwt-plugin
- --experimental.plugins.jwt.version=v0.7.0
autoscaling:
enabled: true
minReplicas: 3
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 80
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 80
behavior:
scaleDown:
stabilizationWindowSeconds: 300
policies:
- type: Pods
value: 1
periodSeconds: 60
- type: Pods
value: 1
periodSeconds: 60
# -- [Resources](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for `traefik` container.
resources:
resources:
requests:
cpu: "100m"
memory: "512Mi"

View File

@@ -8,5 +8,5 @@ appVersion: 0.0.1
dependencies:
- name: vault
repository: https://helm.releases.hashicorp.com
version: 0.29.1
version: 0.30.0

View File

@@ -1,4 +1,4 @@
apiVersion: external-secrets.io/v1beta1
apiVersion: external-secrets.io/v1
kind: ClusterSecretStore
metadata:
name: vault

View File

@@ -7,6 +7,6 @@ version: 0.1.0
appVersion: "1.16.0"
dependencies:
- name: authentik-remote-cluster
repository: https://charts.goauthentik.io
version: 2.0.0
- 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

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,4 +1,4 @@
apiVersion: external-secrets.io/v1beta1
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: cloudflare-api-token-secret

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

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

@@ -9,4 +9,4 @@ appVersion: 0.0.1
dependencies:
- name: external-dns
repository: https://charts.bitnami.com/bitnami
version: 8.3.8
version: 8.9.2

View File

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

View File

@@ -1,6 +1,8 @@
external-dns:
global:
imageRegistry: "registry.durp.info"
security:
allowInsecureImages: true
image:
pullPolicy: Always
@@ -9,10 +11,10 @@ external-dns:
sources:
- service
provider: cloudflare
cloudflare:
secretName : "external-dns"
secretName: "external-dns"
proxied: false
policy: sync

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.15.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:
@@ -16,24 +22,24 @@ external-secrets:
repository: registry.durp.info/external-secrets/external-secrets
pullPolicy: Always
extraVolumes:
extraVolumes:
- name: ca-pemstore
configMap:
name: ca-pemstore
extraVolumeMounts:
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
# resources:
# requests:
# memory: 32Mi
# cpu: 10m
# limits:
# memory: 32Mi
# cpu: 10m
webhook:
create: false
@@ -44,24 +50,24 @@ external-secrets:
repository: registry.durp.info/external-secrets/external-secrets
pullPolicy: Always
extraVolumes:
extraVolumes:
- name: ca-pemstore
configMap:
name: ca-pemstore
extraVolumeMounts:
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
# resources:
# requests:
# memory: 32Mi
# cpu: 10m
# limits:
# memory: 32Mi
# cpu: 10m
certController:
create: false
@@ -74,7 +80,7 @@ external-secrets:
pullPolicy: Always
tag: ""
resources:
resources:
requests:
memory: 32Mi
cpu: 10m
@@ -82,12 +88,12 @@ external-secrets:
memory: 32Mi
cpu: 10m
extraVolumes:
extraVolumes:
- name: ca-pemstore
configMap:
name: ca-pemstore
extraVolumeMounts:
extraVolumeMounts:
- name: ca-pemstore
mountPath: /etc/ssl/certs/vault.pem
subPath: vault.pem

View File

@@ -8,8 +8,8 @@ appVersion: 0.0.1
dependencies:
- name: gitlab-runner
repository: https://charts.gitlab.io/
version: 0.69.0
version: 0.77.2
- name: gitlab-runner
repository: https://charts.gitlab.io/
version: 0.69.0
version: 0.77.2
alias: personal

View File

@@ -1,4 +1,4 @@
apiVersion: external-secrets.io/v1beta1
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: gitlab-secret
@@ -27,7 +27,7 @@ metadata:
---
apiVersion: external-secrets.io/v1beta1
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: gitlab-secret-personal

View File

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

View File

@@ -9,7 +9,7 @@ spec:
- match: Host(`bitwarden.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: master-cluster
- name: infra-cluster
port: 443
tls:
secretName: bitwarden-tls

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,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,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,102 +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: 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
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

@@ -1,74 +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
#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

@@ -4,29 +4,27 @@ metadata:
name: registry
spec:
ports:
- name: app
port: 5000
protocol: TCP
targetPort: 5000
- name: app
port: 5000
protocol: TCP
targetPort: 5000
clusterIP: None
type: ClusterIP
---
apiVersion: v1
kind: Endpoints
metadata:
name: registry
subsets:
- addresses:
- ip: 192.168.21.200
ports:
- name: app
port: 5000
protocol: TCP
---
- addresses:
- ip: 192.168.21.200
ports:
- name: app
port: 5000
protocol: TCP
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
@@ -35,16 +33,18 @@ spec:
entryPoints:
- websecure
routes:
- match: Host(`registry.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: registry
port: 5000
- match: Host(`registry.durp.info`) && PathPrefix(`/`)
kind: Rule
middlewares:
- name: whitelist
namespace: traefik
services:
- name: registry
port: 5000
tls:
secretName: registry-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
@@ -56,16 +56,15 @@ spec:
kind: ClusterIssuer
commonName: "registry.durp.info"
dnsNames:
- "registry.durp.info"
- "registry.durp.info"
---
kind: Service
apiVersion: v1
metadata:
name: registry-external-dns
annotations:
external-dns.alpha.kubernetes.io/hostname: registry.durp.info
spec:
type: ExternalName
externalName: durp.info
#kind: Service
#apiVersion: v1
#metadata:
# name: registry-external-dns
# annotations:
# external-dns.alpha.kubernetes.io/hostname: registry.durp.info
#spec:
# type: ExternalName
# externalName: durp.info

View File

@@ -61,7 +61,7 @@ spec:
commonName: "s3.internal.durp.info"
dnsNames:
- "s3.internal.durp.info"
-
---
apiVersion: traefik.io/v1alpha1

View File

@@ -1,74 +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
#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

@@ -6,12 +6,12 @@ version: 0.0.1
appVersion: 0.0.1
dependencies:
- name: base
repository: https://istio-release.storage.googleapis.com/charts
version: 1.25.0
- name: istiod
repository: https://istio-release.storage.googleapis.com/charts
version: 1.25.0
- name: gateway
repository: https://istio-release.storage.googleapis.com/charts
version: 1.25.0
- 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

@@ -1,13 +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
#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

@@ -1,725 +1,10 @@
istiod:
profile: remote
autoscaleEnabled: true
autoscaleMin: 1
autoscaleMax: 5
autoscaleBehavior: {}
replicaCount: 1
rollingMaxSurge: 100%
rollingMaxUnavailable: 25%
hub: ""
tag: ""
variant: ""
# Can be a full hub/image:tag
image: pilot
traceSampling: 1.0
# Resources for a small pilot install
resources:
requests:
cpu: 500m
memory: 2048Mi
# Set to `type: RuntimeDefault` to use the default profile if available.
seccompProfile: {}
# Whether to use an existing CNI installation
cni:
enabled: false
provider: default
# Additional container arguments
extraContainerArgs: []
env: {}
# Settings related to the untaint controller
# This controller will remove `cni.istio.io/not-ready` from nodes when the istio-cni pod becomes ready
# It should be noted that cluster operator/owner is responsible for having the taint set by their infrastructure provider when new nodes are added to the cluster; the untaint controller does not taint nodes
taint:
# Controls whether or not the untaint controller is active
enabled: false
# What namespace the untaint controller should watch for istio-cni pods. This is only required when istio-cni is running in a different namespace than istiod
namespace: ""
affinity: {}
tolerations: []
cpu:
targetAverageUtilization: 80
memory: {}
# targetAverageUtilization: 80
# Additional volumeMounts to the istiod container
volumeMounts: []
# Additional volumes to the istiod pod
volumes: []
# Inject initContainers into the istiod pod
initContainers: []
nodeSelector: {}
podAnnotations: {}
serviceAnnotations: {}
serviceAccountAnnotations: {}
sidecarInjectorWebhookAnnotations: {}
topologySpreadConstraints: []
# You can use jwksResolverExtraRootCA to provide a root certificate
# in PEM format. This will then be trusted by pilot when resolving
# JWKS URIs.
jwksResolverExtraRootCA: ""
# The following is used to limit how long a sidecar can be connected
# to a pilot. It balances out load across pilot instances at the cost of
# increasing system churn.
keepaliveMaxServerConnectionAge: 30m
# Additional labels to apply to the deployment.
deploymentLabels: {}
## Mesh config settings
# Install the mesh config map, generated from values.yaml.
# If false, pilot wil use default values (by default) or user-supplied values.
configMap: true
# Additional labels to apply on the pod level for monitoring and logging configuration.
podLabels: {}
# Setup how istiod Service is configured. See https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
ipFamilyPolicy: ""
ipFamilies: []
# Ambient mode only.
# Set this if you install ztunnel to a different namespace from `istiod`.
# If set, `istiod` will allow connections from trusted node proxy ztunnels
# in the provided namespace.
# If unset, `istiod` will assume the trusted node proxy ztunnel resides
# in the same namespace as itself.
trustedZtunnelNamespace: ""
sidecarInjectorWebhook:
# You can use the field called alwaysInjectSelector and neverInjectSelector which will always inject the sidecar or
# always skip the injection on pods that match that label selector, regardless of the global policy.
# See https://istio.io/docs/setup/kubernetes/additional-setup/sidecar-injection/#more-control-adding-exceptions
neverInjectSelector: []
alwaysInjectSelector: []
# injectedAnnotations are additional annotations that will be added to the pod spec after injection
# This is primarily to support PSP annotations. For example, if you defined a PSP with the annotations:
#
# annotations:
# apparmor.security.beta.kubernetes.io/allowedProfileNames: runtime/default
# apparmor.security.beta.kubernetes.io/defaultProfileName: runtime/default
#
# The PSP controller would add corresponding annotations to the pod spec for each container. However, this happens before
# the inject adds additional containers, so we must specify them explicitly here. With the above example, we could specify:
# injectedAnnotations:
# container.apparmor.security.beta.kubernetes.io/istio-init: runtime/default
# container.apparmor.security.beta.kubernetes.io/istio-proxy: runtime/default
injectedAnnotations: {}
# This enables injection of sidecar in all namespaces,
# with the exception of namespaces with "istio-injection:disabled" annotation
# Only one environment should have this enabled.
enableNamespacesByDefault: false
# Mutations that occur after the sidecar injector are not handled by default, as the Istio sidecar injector is only run
# once. For example, an OPA sidecar injected after the Istio sidecar will not have it's liveness/readiness probes rewritten.
# Setting this to `IfNeeded` will result in the sidecar injector being run again if additional mutations occur.
reinvocationPolicy: Never
rewriteAppHTTPProbe: true
# Templates defines a set of custom injection templates that can be used. For example, defining:
#
# templates:
# hello: |
# metadata:
# labels:
# hello: world
#
# Then starting a pod with the `inject.istio.io/templates: hello` annotation, will result in the pod
# being injected with the hello=world labels.
# This is intended for advanced configuration only; most users should use the built in template
templates: {}
# Default templates specifies a set of default templates that are used in sidecar injection.
# By default, a template `sidecar` is always provided, which contains the template of default sidecar.
# To inject other additional templates, define it using the `templates` option, and add it to
# the default templates list.
# For example:
#
# templates:
# hello: |
# metadata:
# labels:
# hello: world
#
# defaultTemplates: ["sidecar", "hello"]
defaultTemplates: []
istiodRemote:
# If `true`, indicates that this cluster/install should consume a "remote istiod" installation,
# and istiod itself will NOT be installed in this cluster - only the support resources necessary
# to utilize a remote instance.
enabled: false
# Sidecar injector mutating webhook configuration clientConfig.url value.
# For example: https://$remotePilotAddress:15017/inject
# The host should not refer to a service running in the cluster; use a service reference by specifying
# the clientConfig.service field instead.
injectionURL: ""
# Sidecar injector mutating webhook configuration path value for the clientConfig.service field.
# Override to pass env variables, for example: /inject/cluster/remote/net/network2
injectionPath: "/inject/cluster/cluster2/net/network1"
injectionCABundle: ""
telemetry:
enabled: true
v2:
# For Null VM case now.
# This also enables metadata exchange.
enabled: true
# Indicate if prometheus stats filter is enabled or not
prometheus:
enabled: true
# stackdriver filter settings.
stackdriver:
enabled: false
# Revision is set as 'version' label and part of the resource names when installing multiple control planes.
revision: ""
# Revision tags are aliases to Istio control plane revisions
revisionTags: []
# For Helm compatibility.
ownerName: ""
# meshConfig defines runtime configuration of components, including Istiod and istio-agent behavior
# See https://istio.io/docs/reference/config/istio.mesh.v1alpha1/ for all available options
meshConfig:
enablePrometheusMerge: true
experimental:
stableValidationPolicy: false
global:
# Used to locate istiod.
istioNamespace: istio-system
# List of cert-signers to allow "approve" action in the istio cluster role
#
# certSigners:
# - clusterissuers.cert-manager.io/istio-ca
certSigners: []
# enable pod disruption budget for the control plane, which is used to
# ensure Istio control plane components are gradually upgraded or recovered.
defaultPodDisruptionBudget:
enabled: true
# The values aren't mutable due to a current PodDisruptionBudget limitation
# minAvailable: 1
# A minimal set of requested resources to applied to all deployments so that
# Horizontal Pod Autoscaler will be able to function (if set).
# Each component can overwrite these default values by adding its own resources
# block in the relevant section below and setting the desired resources values.
defaultResources:
requests:
cpu: 10m
# memory: 128Mi
# limits:
# cpu: 100m
# memory: 128Mi
# Default hub for Istio images.
# Releases are published to docker hub under 'istio' project.
# Dev builds from prow are on gcr.io
hub: docker.io/istio
# Default tag for Istio images.
tag: 1.25.0
# Variant of the image to use.
# Currently supported are: [debug, distroless]
variant: ""
# Specify image pull policy if default behavior isn't desired.
# Default behavior: latest images will be Always else IfNotPresent.
imagePullPolicy: ""
# ImagePullSecrets for all ServiceAccount, list of secrets in the same namespace
# to use for pulling any images in pods that reference this ServiceAccount.
# For components that don't use ServiceAccounts (i.e. grafana, servicegraph, tracing)
# ImagePullSecrets will be added to the corresponding Deployment(StatefulSet) objects.
# Must be set for any cluster configured with private docker registry.
imagePullSecrets: []
# - private-registry-key
# Enabled by default in master for maximising testing.
istiod:
enableAnalysis: false
# To output all istio components logs in json format by adding --log_as_json argument to each container argument
logAsJson: false
# Comma-separated minimum per-scope logging level of messages to output, in the form of <scope>:<level>,<scope>:<level>
# The control plane has different scopes depending on component, but can configure default log level across all components
# If empty, default scope and level will be used as configured in code
logging:
level: "default:info"
omitSidecarInjectorConfigMap: false
# Configure whether Operator manages webhook configurations. The current behavior
# of Istiod is to manage its own webhook configurations.
# When this option is set as true, Istio Operator, instead of webhooks, manages the
# webhook configurations. When this option is set as false, webhooks manage their
# own webhook configurations.
operatorManageWebhooks: false
# Custom DNS config for the pod to resolve names of services in other
# clusters. Use this to add additional search domains, and other settings.
# see
# https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#dns-config
# This does not apply to gateway pods as they typically need a different
# set of DNS settings than the normal application pods (e.g., in
# multicluster scenarios).
# NOTE: If using templates, follow the pattern in the commented example below.
#podDNSSearchNamespaces:
#- global
#- "{{ valueOrDefault .DeploymentMeta.Namespace \"default\" }}.global"
# Kubernetes >=v1.11.0 will create two PriorityClass, including system-cluster-critical and
# system-node-critical, it is better to configure this in order to make sure your Istio pods
# will not be killed because of low priority class.
# Refer to https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
# for more detail.
priorityClassName: ""
proxy:
image: proxyv2
# This controls the 'policy' in the sidecar injector.
autoInject: enabled
# CAUTION: It is important to ensure that all Istio helm charts specify the same clusterDomain value
# cluster domain. Default value is "cluster.local".
clusterDomain: "cluster.local"
# Per Component log level for proxy, applies to gateways and sidecars. If a component level is
# not set, then the global "logLevel" will be used.
componentLogLevel: "misc:error"
# istio ingress capture allowlist
# examples:
# Redirect only selected ports: --includeInboundPorts="80,8080"
excludeInboundPorts: ""
includeInboundPorts: "*"
# istio egress capture allowlist
# https://istio.io/docs/tasks/traffic-management/egress.html#calling-external-services-directly
# example: includeIPRanges: "172.30.0.0/16,172.20.0.0/16"
# would only capture egress traffic on those two IP Ranges, all other outbound traffic would
# be allowed by the sidecar
includeIPRanges: "*"
excludeIPRanges: ""
includeOutboundPorts: ""
excludeOutboundPorts: ""
# Log level for proxy, applies to gateways and sidecars.
# Expected values are: trace|debug|info|warning|error|critical|off
logLevel: warning
# Specify the path to the outlier event log.
# Example: /dev/stdout
outlierLogPath: ""
#If set to true, istio-proxy container will have privileged securityContext
privileged: false
# The number of successive failed probes before indicating readiness failure.
readinessFailureThreshold: 4
# The initial delay for readiness probes in seconds.
readinessInitialDelaySeconds: 0
# The period between readiness probes.
readinessPeriodSeconds: 15
# Enables or disables a startup probe.
# For optimal startup times, changing this should be tied to the readiness probe values.
#
# If the probe is enabled, it is recommended to have delay=0s,period=15s,failureThreshold=4.
# This ensures the pod is marked ready immediately after the startup probe passes (which has a 1s poll interval),
# and doesn't spam the readiness endpoint too much
#
# If the probe is disabled, it is recommended to have delay=1s,period=2s,failureThreshold=30.
# This ensures the startup is reasonable fast (polling every 2s). 1s delay is used since the startup is not often ready instantly.
startupProbe:
enabled: true
failureThreshold: 600 # 10 minutes
# Resources for the sidecar.
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 2000m
memory: 1024Mi
# Default port for Pilot agent health checks. A value of 0 will disable health checking.
statusPort: 15020
# Specify which tracer to use. One of: zipkin, lightstep, datadog, stackdriver, none.
# If using stackdriver tracer outside GCP, set env GOOGLE_APPLICATION_CREDENTIALS to the GCP credential file.
tracer: "none"
proxy_init:
# Base name for the proxy_init container, used to configure iptables.
image: proxyv2
# Bypasses iptables idempotency handling, and attempts to apply iptables rules regardless of table state, which may cause unrecoverable failures.
# Do not use unless you need to work around an issue of the idempotency handling. This flag will be removed in future releases.
forceApplyIptables: false
# configure remote pilot and istiod service and endpoint
remotePilotAddress: "192.168.12.131"
##############################################################################################
# The following values are found in other charts. To effectively modify these values, make #
# make sure they are consistent across your Istio helm charts #
##############################################################################################
# The customized CA address to retrieve certificates for the pods in the cluster.
# CSR clients such as the Istio Agent and ingress gateways can use this to specify the CA endpoint.
# If not set explicitly, default to the Istio discovery address.
caAddress: ""
# Enable control of remote clusters.
externalIstiod: false
# Configure a remote cluster as the config cluster for an external istiod.
configCluster: true
# configValidation enables the validation webhook for Istio configuration.
configValidation: true
# Mesh ID means Mesh Identifier. It should be unique within the scope where
# meshes will interact with each other, but it is not required to be
# globally/universally unique. For example, if any of the following are true,
# then two meshes must have different Mesh IDs:
# - Meshes will have their telemetry aggregated in one place
# - Meshes will be federated together
# - Policy will be written referencing one mesh from the other
#
# If an administrator expects that any of these conditions may become true in
# the future, they should ensure their meshes have different Mesh IDs
# assigned.
#
# Within a multicluster mesh, each cluster must be (manually or auto)
# configured to have the same Mesh ID value. If an existing cluster 'joins' a
# multicluster mesh, it will need to be migrated to the new mesh ID. Details
# of migration TBD, and it may be a disruptive operation to change the Mesh
# ID post-install.
#
# If the mesh admin does not specify a value, Istio will use the value of the
# mesh's Trust Domain. The best practice is to select a proper Trust Domain
# value.
meshID: ""
# Configure the mesh networks to be used by the Split Horizon EDS.
#
# The following example defines two networks with different endpoints association methods.
# For `network1` all endpoints that their IP belongs to the provided CIDR range will be
# mapped to network1. The gateway for this network example is specified by its public IP
# address and port.
# The second network, `network2`, in this example is defined differently with all endpoints
# retrieved through the specified Multi-Cluster registry being mapped to network2. The
# gateway is also defined differently with the name of the gateway service on the remote
# cluster. The public IP for the gateway will be determined from that remote service (only
# LoadBalancer gateway service type is currently supported, for a NodePort type gateway service,
# it still need to be configured manually).
#
# meshNetworks:
# network1:
# endpoints:
# - fromCidr: "192.168.0.1/24"
# gateways:
# - address: 1.1.1.1
# port: 80
# network2:
# endpoints:
# - fromRegistry: reg1
# gateways:
# - registryServiceName: istio-ingressgateway.istio-system.svc.cluster.local
# port: 443
#
meshNetworks: {}
# Use the user-specified, secret volume mounted key and certs for Pilot and workloads.
mountMtlsCerts: false
network: network2
meshID: mesh1
multiCluster:
# Set to true to connect two kubernetes clusters via their respective
# ingressgateway services when pods in each cluster cannot directly
# talk to one another. All clusters should be using Istio mTLS and must
# have a shared root CA for this model to work.
enabled: false
# Should be set to the name of the cluster this installation will run in. This is required for sidecar injection
# to properly label proxies
clusterName: "dmz"
# Network defines the network this cluster belong to. This name
# corresponds to the networks in the map of mesh networks.
network: ""
# Configure the certificate provider for control plane communication.
# Currently, two providers are supported: "kubernetes" and "istiod".
# As some platforms may not have kubernetes signing APIs,
# Istiod is the default
pilotCertProvider: istiod
sds:
# The JWT token for SDS and the aud field of such JWT. See RFC 7519, section 4.1.3.
# When a CSR is sent from Istio Agent to the CA (e.g. Istiod), this aud is to make sure the
# JWT is intended for the CA.
token:
aud: istio-ca
sts:
# The service port used by Security Token Service (STS) server to handle token exchange requests.
# Setting this port to a non-zero value enables STS server.
servicePort: 0
# The name of the CA for workload certificates.
# For example, when caName=GkeWorkloadCertificate, GKE workload certificates
# will be used as the certificates for workloads.
# The default value is "" and when caName="", the CA will be configured by other
# mechanisms (e.g., environmental variable CA_PROVIDER).
caName: ""
waypoint:
# Resources for the waypoint proxy.
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: "2"
memory: 1Gi
# If specified, affinity defines the scheduling constraints of waypoint pods.
affinity: {}
# Topology Spread Constraints for the waypoint proxy.
topologySpreadConstraints: []
# Node labels for the waypoint proxy.
nodeSelector: {}
# Tolerations for the waypoint proxy.
tolerations: []
base:
# For istioctl usage to disable istio config crds in base
enableIstioConfigCRDs: true
# Gateway Settings
gateways:
# Define the security context for the pod.
# If unset, this will be automatically set to the minimum privileges required to bind to port 80 and 443.
# On Kubernetes 1.22+, this only requires the `net.ipv4.ip_unprivileged_port_start` sysctl.
securityContext: {}
# Set to `type: RuntimeDefault` to use the default profile for templated gateways, if your container runtime supports it
seccompProfile: {}
base:
profile: remote
global:
imagePullSecrets: []
istioNamespace: istio-system
base:
excludedCRDs: []
enableCRDTemplates: true
validationURL: ""
validationCABundle: ""
enableIstioConfigCRDs: true
defaultRevision: "default"
experimental:
stableValidationPolicy: false
clusterName: dmz
gateway:
# Name allows overriding the release name. Generally this should not be set
name: "istio-eastwestgateway"
# revision declares which revision this gateway is a part of
revision: ""
# Controls the spec.replicas setting for the Gateway deployment if set.
# Otherwise defaults to Kubernetes Deployment default (1).
replicaCount:
kind: Deployment
rbac:
# If enabled, roles will be created to enable accessing certificates from Gateways. This is not needed
# when using http://gateway-api.org/.
enabled: true
serviceAccount:
# If set, a service account will be created. Otherwise, the default is used
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set, the release name is used
name: ""
podAnnotations:
prometheus.io/port: "15020"
prometheus.io/scrape: "true"
prometheus.io/path: "/stats/prometheus"
inject.istio.io/templates: "gateway"
sidecar.istio.io/inject: "true"
# Define the security context for the pod.
# If unset, this will be automatically set to the minimum privileges required to bind to port 80 and 443.
# On Kubernetes 1.22+, this only requires the `net.ipv4.ip_unprivileged_port_start` sysctl.
securityContext: {}
containerSecurityContext: {}
service:
# Type of service. Set to "None" to disable the service entirely
type: LoadBalancer
ports:
- name: status-port
port: 15021
protocol: TCP
targetPort: 15021
- name: http2
port: 80
protocol: TCP
targetPort: 80
- name: https
port: 443
protocol: TCP
targetPort: 443
annotations: {}
loadBalancerIP: ""
loadBalancerSourceRanges: []
externalTrafficPolicy: ""
externalIPs: []
ipFamilyPolicy: ""
ipFamilies: []
## Whether to automatically allocate NodePorts (only for LoadBalancers).
# allocateLoadBalancerNodePorts: false
## Set LoadBalancer class (only for LoadBalancers).
# loadBalancerClass: ""
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 2000m
memory: 1024Mi
autoscaling:
enabled: true
minReplicas: 1
maxReplicas: 5
targetCPUUtilizationPercentage: 80
targetMemoryUtilizationPercentage: {}
autoscaleBehavior: {}
# Pod environment variables
env: {}
# Deployment Update strategy
strategy: {}
# Sets the Deployment minReadySeconds value
minReadySeconds:
# Optionally configure a custom readinessProbe. By default the control plane
# automatically injects the readinessProbe. If you wish to override that
# behavior, you may define your own readinessProbe here.
readinessProbe: {}
# Labels to apply to all resources
labels:
# By default, don't enroll gateways into the ambient dataplane
"istio.io/dataplane-mode": none
# Annotations to apply to all resources
annotations: {}
nodeSelector: {}
tolerations: []
topologySpreadConstraints: []
affinity: {}
# If specified, the gateway will act as a network gateway for the given network.
networkGateway: "network1"
# Specify image pull policy if default behavior isn't desired.
# Default behavior: latest images will be Always else IfNotPresent
imagePullPolicy: ""
imagePullSecrets: []
# This value is used to configure a Kubernetes PodDisruptionBudget for the gateway.
#
# By default, the `podDisruptionBudget` is disabled (set to `{}`),
# which means that no PodDisruptionBudget resource will be created.
#
# To enable the PodDisruptionBudget, configure it by specifying the
# `minAvailable` or `maxUnavailable`. For example, to set the
# minimum number of available replicas to 1, you can update this value as follows:
#
# podDisruptionBudget:
# minAvailable: 1
#
# Or, to allow a maximum of 1 unavailable replica, you can set:
#
# podDisruptionBudget:
# maxUnavailable: 1
#
# You can also specify the `unhealthyPodEvictionPolicy` field, and the valid values are `IfHealthyBudget` and `AlwaysAllow`.
# For example, to set the `unhealthyPodEvictionPolicy` to `AlwaysAllow`, you can update this value as follows:
#
# podDisruptionBudget:
# minAvailable: 1
# unhealthyPodEvictionPolicy: AlwaysAllow
#
# To disable the PodDisruptionBudget, you can leave it as an empty object `{}`:
#
# podDisruptionBudget: {}
#
podDisruptionBudget: {}
# Sets the per-pod terminationGracePeriodSeconds setting.
terminationGracePeriodSeconds: 30
# A list of `Volumes` added into the Gateway Pods. See
# https://kubernetes.io/docs/concepts/storage/volumes/.
volumes: []
# A list of `VolumeMounts` added into the Gateway Pods. See
# https://kubernetes.io/docs/concepts/storage/volumes/.
volumeMounts: []
# Configure this to a higher priority class in order to make sure your Istio gateway pods
# will not be killed because of low priority class.
# Refer to https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass
# for more detail.
priorityClassName: ""
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

View File

@@ -3,7 +3,7 @@ terraform {
required_providers {
proxmox = {
source = "Telmate/proxmox"
version = "3.0.1-rc6"
version = "3.0.1-rc9"
}
}
}

View File

@@ -8,4 +8,4 @@ appVersion: 0.0.1
dependencies:
- name: traefik
repository: https://traefik.github.io/charts
version: 34.0.0
version: 34.5.0

View File

@@ -1,11 +1,11 @@
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: authentik-proxy-provider
namespace: traefik
name: authentik-proxy-provider
namespace: traefik
spec:
forwardAuth:
address: http://ak-outpost-dmz-embedded-outpost.authentik.svc.cluster.local:9000/outpost.goauthentik.io/auth/traefik?rd=$scheme://$http_host$request_uri
address: http://ak-outpost-authentik-dmz-outpost.authentik.svc.cluster.local:9000/outpost.goauthentik.io/auth/traefik?rd=$scheme://$http_host$request_uri
trustForwardHeader: true
authResponseHeaders:
- X-authentik-username
@@ -21,7 +21,6 @@ spec:
- X-authentik-meta-version
---
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
@@ -33,3 +32,23 @@ spec:
- 192.168.0.0/16
- 172.16.0.0/12
- 10.0.0.0/8
---
#apiVersion: traefik.io/v1alpha1
#kind: Middleware
#metadata:
# name: bouncer
# namespace: traefik
#spec:
# plugin:
# bouncer:
# enabled: true
# crowdsecMode: stream
# crowdsecLapiScheme: https
# crowdsecLapiTLSInsecureVerify: true
# crowdsecLapiHost: crowdsec-service.crowdsec:8080
# crowdsecLapiKey:
# valueFrom:
# secretKeyRef:
# name: crowdsec-lapi-key
# key: lapi-key

View File

@@ -0,0 +1,21 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: crowdsec-lapi-key
spec:
secretStoreRef:
name: vault
kind: ClusterSecretStore
target:
name: crowdsec-lapi-key
data:
- secretKey: lapi-key
remoteRef:
key: kv/crowdsec/api
property: key
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: vault

View File

@@ -1,34 +1,35 @@
#apiVersion: traefik.io/v1alpha1
#kind: IngressRoute
#metadata:
# name: traefik-ingress
#spec:
# entryPoints:
# - websecure
# routes:
# - match: Host(`traefik.durp.info`)
# kind: Rule
# services:
# - name: api@internal
# kind: TraefikService
# tls:
# secretName: traefik-tls
#
#---
#
#apiVersion: cert-manager.io/v1
#kind: Certificate
#metadata:
# name: traefik-tls
# namespace: traefik
#spec:
# secretName: traefik-tls
# issuerRef:
# name: letsencrypt-production
# kind: ClusterIssuer
# commonName: "traefik.durp.info"
# dnsNames:
# - "traefik.durp.info"
#
#---
#
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: traefik-ingress
spec:
entryPoints:
- websecure
routes:
- match: Host(`traefik.dmz.durp.info`)
kind: Rule
middlewares:
- name: whitelist
namespace: traefik
- name: authentik-proxy-provider
namespace: traefik
services:
- name: api@internal
kind: TraefikService
tls:
secretName: traefik-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: traefik-tls
namespace: traefik
spec:
secretName: traefik-tls
issuerRef:
name: vault-issuer
kind: ClusterIssuer
commonName: "traefik.dmz.durp.info"
dnsNames:
- "traefik.dmz.durp.info"

View File

@@ -1,10 +1,10 @@
traefik:
image:
image:
# registry: registry.durp.info
# repository: traefik
pullPolicy: Always
providers:
providers:
kubernetesCRD:
allowCrossNamespace: true
allowExternalNameServices: true
@@ -18,40 +18,41 @@ traefik:
# - name: traefik-configmap
# mountPath: "/config"
# type: configMap
ingressRoute:
dashboard:
enabled: true
additionalArguments:
additionalArguments:
# - "--providers.file.filename=/config/config.yml"
- "--serversTransport.insecureSkipVerify=true"
- "--log.level=DEBUG"
- --experimental.plugins.jwt.moduleName=github.com/traefik-plugins/traefik-jwt-plugin
- --experimental.plugins.jwt.version=v0.7.0
- --experimental.plugins.bouncer.moduleName=github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin
- --experimental.plugins.bouncer.version=v1.4.2
autoscaling:
enabled: true
minReplicas: 3
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 80
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 80
behavior:
scaleDown:
stabilizationWindowSeconds: 300
policies:
- type: Pods
value: 1
periodSeconds: 60
- type: Pods
value: 1
periodSeconds: 60
# -- [Resources](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/) for `traefik` container.
resources:
resources:
requests:
cpu: "100m"
memory: "512Mi"

View File

@@ -8,5 +8,5 @@ appVersion: 0.0.1
dependencies:
- name: vault
repository: https://helm.releases.hashicorp.com
version: 0.29.1
version: 0.30.0

View File

@@ -1,4 +1,4 @@
apiVersion: external-secrets.io/v1beta1
apiVersion: external-secrets.io/v1
kind: ClusterSecretStore
metadata:
name: vault

View File

@@ -9,4 +9,4 @@ appVersion: "1.16.0"
dependencies:
- name: argo-cd
repository: https://argoproj.github.io/argo-helm
version: 6.11.1
version: 8.1.3

View File

@@ -0,0 +1,101 @@
#apiVersion: external-secrets.io/v1
#kind: ExternalSecret
#metadata:
# name: argocd-secret-crossplane
#spec:
# secretStoreRef:
# name: vault
# kind: ClusterSecretStore
# target:
# name: argocd-secret-crossplane
# data:
# - secretKey: authToken
# remoteRef:
# key: kv/argocd/provider-argocd
# property: token
#
#---
#apiVersion: external-secrets.io/v1
#kind: ExternalSecret
#metadata:
# name: prod-kubeconfig
#spec:
# secretStoreRef:
# name: vault
# kind: ClusterSecretStore
# target:
# name: prod-kubeconfig
# data:
# - secretKey: kubeconfig
# remoteRef:
# key: kv/argocd/prd
# property: kubeconfig
#
#---
#apiVersion: argocd.crossplane.io/v1alpha1
#kind: ProviderConfig
#metadata:
# name: argocd-provider
#spec:
# serverAddr: argocd-server.argocd.svc:443
# insecure: true
# plainText: false
# credentials:
# source: Secret
# secretRef:
# namespace: argocd
# name: argocd-secret-crossplane
# key: authToken
#
#---
#apiVersion: cluster.argocd.crossplane.io/v1alpha1
#kind: Cluster
#metadata:
# name: prd
# labels:
# purpose: prd
#spec:
# forProvider:
# name: prd
# config:
# kubeconfigSecretRef:
# name: prod-kubeconfig
# namespace: argocd
# key: kubeconfig
# providerConfigRef:
# name: argocd-provider
#
#---
#apiVersion: external-secrets.io/v1
#kind: ExternalSecret
#metadata:
# name: dev-kubeconfig
#spec:
# secretStoreRef:
# name: vault
# kind: ClusterSecretStore
# target:
# name: dev-kubeconfig
# data:
# - secretKey: kubeconfig
# remoteRef:
# key: kv/argocd/dev
# property: kubeconfig
#
#---
#apiVersion: cluster.argocd.crossplane.io/v1alpha1
#kind: Cluster
#metadata:
# name: dev
# labels:
# purpose: dev
#spec:
# forProvider:
# name: dev
# config:
# kubeconfigSecretRef:
# name: dev-kubeconfig
# namespace: argocd
# key: kubeconfig
# providerConfigRef:
# name: argocd-provider

View File

@@ -21,7 +21,7 @@ spec:
---
apiVersion: external-secrets.io/v1beta1
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: vault-argocd

View File

@@ -13,17 +13,16 @@ spec:
namespace: authentik
name: in-cluster
syncPolicy:
managedNamespaceMetadata:
labels:
istio-injection: enabled
#managedNamespaceMetadata:
# labels:
# istio-injection: enabled
automated:
prune: true
selfHeal: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- CreateNamespace=true
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
@@ -41,7 +40,6 @@ spec:
syncPolicy:
automated:
prune: true
selfHeal: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- CreateNamespace=true

View File

@@ -0,0 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: bitwarden
namespace: argocd
spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
path: infra/bitwarden
destination:
namespace: bitwarden
name: in-cluster
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,20 @@
#apiVersion: argoproj.io/v1alpha1
#kind: Application
#metadata:
# name: crowdsec
# namespace: argocd
#spec:
# project: default
# source:
# repoURL: https://gitlab.com/developerdurp/homelab.git
# targetRevision: main
# path: dmz/crowdsec
# destination:
# namespace: crowdsec
# name: dmz
# syncPolicy:
# automated:
# prune: true
# selfHeal: true
# syncOptions:
# - CreateNamespace=true

View File

@@ -13,41 +13,46 @@ spec:
namespace: istio-system
name: in-cluster
syncPolicy:
managedNamespaceMetadata:
labels:
topology.istio.io/network: network1
automated:
prune: true
selfHeal: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- CreateNamespace=true
ignoreDifferences:
- group: admissionregistration.k8s.io
kind: ValidatingWebhookConfiguration
jsonPointers:
- /webhooks/0/failurePolicy
- group: admissionregistration.k8s.io
kind: ValidatingWebhookConfiguration
jsonPointers:
- /webhooks/0/failurePolicy
---
#apiVersion: argoproj.io/v1alpha1
#kind: Application
#metadata:
# name: istio-system-dmz
# namespace: argocd
#spec:
# project: default
# source:
# repoURL: https://gitlab.com/developerdurp/homelab.git
# targetRevision: main
# path: dmz/istio-system
# destination:
# namespace: istio-system
# name: dmz
# syncPolicy:
# automated:
# prune: true
# selfHeal: true
# syncOptions:
# - CreateNamespace=true
# ignoreDifferences:
# - group: admissionregistration.k8s.io
# kind: ValidatingWebhookConfiguration
# jsonPointers:
# - /webhooks/0/failurePolicy
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: istio-system-dmz
namespace: argocd
spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
path: dmz/istio-system
destination:
namespace: istio-system
name: dmz
syncPolicy:
managedNamespaceMetadata:
labels:
topology.istio.io/network: network2
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
ignoreDifferences:
- group: admissionregistration.k8s.io
kind: ValidatingWebhookConfiguration
jsonPointers:
- /webhooks/0/failurePolicy

View File

@@ -0,0 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: kube-prometheus-stack
namespace: argocd
spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
path: infra/kube-prometheus-stack
destination:
namespace: kube-prometheus-stack
name: in-cluster
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

View File

@@ -1,20 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: litellm
namespace: argocd
spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
path: infra/litellm
destination:
namespace: litellm
name: in-cluster
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
#apiVersion: argoproj.io/v1alpha1
#kind: Application
#metadata:
# name: litellm
# namespace: argocd
#spec:
# project: default
# source:
# repoURL: https://gitlab.com/developerdurp/homelab.git
# targetRevision: main
# path: infra/litellm
# destination:
# namespace: litellm
# name: in-cluster
# syncPolicy:
# automated:
# prune: true
# selfHeal: true
# syncOptions:
# - CreateNamespace=true

View File

@@ -0,0 +1,22 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: littlelink
namespace: argocd
spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
path: dmz/littlelink
directory:
recurse: true
destination:
name: dmz
namespace: littlelink
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

View File

@@ -15,7 +15,33 @@ spec:
syncPolicy:
automated:
prune: true
selfHeal: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- CreateNamespace=true
ignoreDifferences:
- group: engineimages.longhorn.io
jsonPointers:
- /spec/preserveUnknownFields
kind: CustomResourceDefinition
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: longhorn-system-dmz
namespace: argocd
spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
path: dmz/longhorn
destination:
namespace: longhorn-system
name: dmz
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

View File

@@ -42,3 +42,25 @@ spec:
syncOptions:
- CreateNamespace=true
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: metallb-system-dev
namespace: argocd
spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
path: dev/metallb-system
destination:
namespace: metallb-system
name: dev
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,18 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: nfs
namespace: argocd
spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
path: infra/nfs
destination:
namespace: kube-system
name: in-cluster
syncPolicy:
automated:
prune: true
selfHeal: true

View File

@@ -0,0 +1,42 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: octopusdeploy
namespace: argocd
spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
path: infra/octopusdeploy
destination:
namespace: octopusdeploy
name: in-cluster
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: octopusdeploy-agent
namespace: argocd
spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
path: infra/octopus-agent
destination:
namespace: octopus-agent
name: in-cluster
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: openclarity
namespace: argocd
spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
path: infra/openclarity
destination:
namespace: openclarity
name: in-cluster
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,22 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: openspeedtest
namespace: argocd
spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
path: dmz/openspeedtest
directory:
recurse: true
destination:
name: dmz
namespace: openspeedtest
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,22 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: redlib
namespace: argocd
spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
path: dmz/redlib
directory:
recurse: true
destination:
name: dmz
namespace: redlib
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

View File

@@ -0,0 +1,20 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: renovate
namespace: argocd
spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
path: infra/renovate
destination:
namespace: renovate
name: in-cluster
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

View File

@@ -48,3 +48,29 @@ spec:
syncOptions:
- CreateNamespace=true
---
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: traefik-dev
namespace: argocd
spec:
project: default
source:
repoURL: https://gitlab.com/developerdurp/homelab.git
targetRevision: main
path: dev/traefik
destination:
namespace: traefik
name: dev
syncPolicy:
# managedNamespaceMetadata:
# labels:
# istio-injection: enabled
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true

View File

@@ -1,27 +1,26 @@
argo-cd:
global:
revisionHistoryLimit: 1
image:
repository: registry.durp.info/argoproj/argocd
imagePullPolicy: Always
server:
#extraArgs:
# - --dex-server-plaintext
# - --dex-server=argocd-dex-server:5556
# oidc.config: |
# name: AzureAD
# issuer: https://login.microsoftonline.com/TENANT_ID/v2.0
# clientID: CLIENT_ID
# clientSecret: $oidc.azuread.clientSecret
# requestedIDTokenClaims:
# groups:
# essential: true
# requestedScopes:
# - openid
# - profile
# - email
#server:
#extraArgs:
# - --dex-server-plaintext
# - --dex-server=argocd-dex-server:5556
# oidc.config: |
# name: AzureAD
# issuer: https://login.microsoftonline.com/TENANT_ID/v2.0
# clientID: CLIENT_ID
# clientSecret: $oidc.azuread.clientSecret
# requestedIDTokenClaims:
# groups:
# essential: true
# requestedScopes:
# - openid
# - profile
# - email
dex:
enabled: true
@@ -35,6 +34,7 @@ argo-cd:
annotations: {}
url: https://argocd.infra.durp.info
oidc.tls.insecure.skip.verify: "true"
accounts.provider-argocd: apiKey
dex.config: |
connectors:
- config:
@@ -50,13 +50,15 @@ argo-cd:
name: authentik
type: oidc
id: authentik
resource.exclusions: ""
rbac:
create: true
policy.csv: |
g, ArgoCD Admins, role:admin
g, provider-argocd, role:admin
scopes: "[groups]"
server:
route:
enabled: false
route:
enabled: false

View File

@@ -7,6 +7,7 @@ version: 0.1.0
appVersion: "1.16.0"
dependencies:
- name: authentik
repository: https://charts.goauthentik.io
version: 2024.8.3
- name: authentik
repository: https://charts.goauthentik.io
version: 2025.4.1

View File

@@ -6,16 +6,20 @@ spec:
entryPoints:
- websecure
routes:
- match: Host(`authentik.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: authentik-server
port: 80
- match: Host(`authentik.durp.info`) && PathPrefix(`/`)
kind: Rule
services:
- name: authentik-server
port: 80
- match: Host(`authentik.durp.info`) && PathPrefix(`/outpost.goauthentik.io`)
kind: Rule
services:
- name: ak-outpost-authentik-embedded-outpost
port: 9000
tls:
secretName: authentik-tls
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
@@ -27,5 +31,4 @@ spec:
kind: ClusterIssuer
commonName: "authentik.durp.info"
dnsNames:
- "authentik.durp.info"
- "authentik.durp.info"

View File

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

View File

@@ -1,6 +1,8 @@
authentik:
global:
env:
security:
allowInsecureImages: true
env:
- name: AUTHENTIK_POSTGRESQL__PASSWORD
valueFrom:
secretKeyRef:
@@ -19,7 +21,7 @@ authentik:
outposts:
container_image_base: registry.durp.info/goauthentik/%(type)s:%(version)s
postgresql:
host: '{{ .Release.Name }}-postgresql-hl'
host: "{{ .Release.Name }}-postgresql-hl"
name: "authentik"
user: "authentik"
port: 5432
@@ -36,7 +38,7 @@ authentik:
pullPolicy: Always
postgresqlUsername: "authentik"
postgresqlDatabase: "authentik"
existingSecret: db-pass
existingSecret: db-pass
persistence:
enabled: true
storageClass: longhorn
@@ -47,7 +49,7 @@ authentik:
enabled: true
master:
persistence:
enabled: false
enabled: false
image:
registry: registry.durp.info
repository: bitnami/redis

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