Compare commits

...

416 Commits

Author SHA1 Message Date
2c0f498611
Update memos lib 2025-03-30 18:18:28 +02:00
bb45328532
Trying to migrate istio 2025-03-30 16:10:40 +02:00
a8693f41ee
Keep migrating things 2025-03-30 15:51:26 +02:00
a659611d6f
Keep migrating things 2025-03-30 15:13:48 +02:00
dbd69180e4
Keep migrating things 2025-03-29 14:16:34 +01:00
992463b8cd
Keep migrating things 2025-03-29 13:55:44 +01:00
Nikolai Rodionov
4e2a71ebfb
Migrate metallb 2025-03-28 17:18:17 +01:00
c32705ffa0
Keep migrating things 2025-03-27 22:54:32 +01:00
Nikolai Rodionov
f8684df5a9
Started a big refactoring again 2025-03-27 21:13:13 +01:00
cd6a200591
Fix helmfile 2025-03-26 22:25:38 +01:00
173af0f7f8
Start using registry mirror 2025-03-26 22:23:54 +01:00
1184e6cd89
Migrate woodpecked and tandoor 2025-03-25 21:08:47 +01:00
e3f77b6bee
Migrate gitea to the org-badhouseplants ns 2025-03-25 20:39:09 +01:00
fe5419f2ed
Migrate navidrome to the org-badhouseplants ns 2025-03-22 16:18:34 +01:00
Nikolai Rodionov
f3416eff8c
Add kyverno 'applied-by' policy 2025-03-21 15:57:45 +01:00
13ad273824
Remove onpier memo 2025-03-20 22:16:20 +01:00
b068c150a3 chore(deps): update helm release minecraft to v4.25.1 2025-03-20 21:15:37 +00:00
dbe4df17e1 chore(deps): update helm release kube-prometheus-stack to v70 2025-03-20 21:15:26 +00:00
0e13f5b233 chore(deps): update helm release grafana to v8.10.4 2025-03-20 21:15:16 +00:00
7fce345871 chore(deps): update helm release authentik to v2025.2.2 2025-03-20 21:15:06 +00:00
cb607e6329 chore(deps): update helm release woodpecker to v3.0.6 2025-03-20 21:14:56 +00:00
0cc614e2d0 chore(deps): update helm release renovate to v39.208.1 2025-03-20 01:00:54 +00:00
0060cb395c
Higher cpu limits for gitea 2025-03-15 17:19:49 +01:00
1bdc1c0676 chore(deps): update navidrome docker tag to v0.5.0 2025-03-15 16:19:12 +00:00
b9baaa44a3 chore(deps): update helm release cilium to v1.17.2 2025-03-15 16:19:04 +00:00
37d4792140 chore(deps): update helm release velero to v8.5.0 2025-03-15 16:18:45 +00:00
fc87b36901 chore(deps): update helm release grafana to v8.10.3 2025-03-15 16:18:35 +00:00
7db93d5a24 chore(deps): update helm release traefik to v34.4.1 2025-03-15 16:17:20 +00:00
b01cdcceb6 chore(deps): update helm release woodpecker to v3.0.5 2025-03-15 16:17:11 +00:00
c4012a4bcf chore(deps): update helm release zot to v0.1.67 2025-03-15 16:16:30 +00:00
f6f8ca94bf chore(deps): update helm release kube-prometheus-stack to v69.8.2 2025-03-15 16:16:24 +00:00
2d08e8fb89 chore(deps): update redis docker tag to v20.11.3 2025-03-15 16:16:17 +00:00
fb82fa55a5 chore(deps): update helm release loki to v6.28.0 2025-03-15 16:12:28 +00:00
0d2f02eb38 chore(deps): update helm release renovate to v39.202.0 2025-03-15 01:00:56 +00:00
Nikolai Rodionov
794ee79e85
Add onpier memos 2025-03-04 13:56:51 +01:00
18ad6ba7f4 chore(deps): update redis docker tag to v20.11.0 2025-03-04 08:17:53 +00:00
c1a68c2e95 chore(deps): update helm release kube-prometheus-stack to v69.7.2 2025-03-04 01:00:55 +00:00
b413d381cc
Fox some things 2025-03-03 10:05:30 +01:00
1cd242ea6a chore(deps): update helm release minecraft to v4.24.0 2025-03-03 01:00:56 +00:00
7b0edbf021 chore(deps): update helm release gitea to v11 2025-03-01 19:44:23 +00:00
669266a3aa chore(deps): update helm release cert-manager to v1.17.1 2025-03-01 19:43:50 +00:00
cac2cde34b chore(deps): update helm release coredns to v1.39.1 2025-03-01 19:42:47 +00:00
cd7779a32b chore(deps): update helm release woodpecker to v3.0.4 2025-03-01 19:42:31 +00:00
5a5730cb6b chore(deps): update qbittorrent docker tag to v0.4.1 2025-03-01 19:26:13 +00:00
1231ad864e chore(deps): update helm release openebs to v4.2.0 2025-03-01 19:25:47 +00:00
b0c67ff098 chore(deps): update helm release renovate to v39.185.0 2025-03-01 19:25:31 +00:00
e100c64d1a chore(deps): update helm release traefik to v34.4.0 2025-03-01 19:25:13 +00:00
c91fe9f70b chore(deps): update helm-library docker tag to v0.2.3 2025-03-01 19:23:50 +00:00
3261e102ed chore(deps): update helm release velero to v8.4.0 2025-03-01 19:22:16 +00:00
44677283d6 chore(deps): update redis docker tag to v20.10.0 2025-03-01 19:21:46 +00:00
2b4b1a6e54 chore(deps): update helm release authentik to v2025 2025-03-01 19:19:47 +00:00
24b62b7223 chore(deps): update vaultwarden docker tag to v3.1.1 2025-03-01 19:18:48 +00:00
4254e2e572 chore(deps): update helm release kube-prometheus-stack to v69 2025-03-01 19:17:59 +00:00
a251c51bc2 chore(deps): update helm release cilium to v1.17.1 2025-03-01 19:17:08 +00:00
7d2e2e71ec chore(deps): update helm release kyverno to v3.3.7 2025-03-01 19:16:22 +00:00
3ff83129a1 chore(deps): update helm release db-operator to v1.34.0 2025-03-01 19:15:51 +00:00
e79e8fd7ec chore(deps): update helm release grafana to v8.10.1 2025-03-01 19:15:20 +00:00
43d1a35437 chore(deps): update helm release loki to v6.27.0 2025-03-01 19:14:53 +00:00
cf9f87009f chore(deps): update memos docker tag to v0.2.0 2025-03-01 19:14:24 +00:00
0d626481cd chore(deps): update navidrome docker tag to v0.3.0 2025-03-01 19:12:41 +00:00
2e62e85fc1 chore(deps): update server-xray docker tag to v0.6.0 2025-03-01 19:12:08 +00:00
d39e35754b
Install tandoor and remove openvpn 2025-03-01 20:08:00 +01:00
7bc0e0e5b1
Remove the storage installation 2025-02-17 22:52:23 +01:00
e9aa8d1326 chore(deps): update redis docker tag to v20.7.1 2025-02-17 21:48:14 +00:00
2a36d36147 chore(deps): update helm release renovate to v39.171.0 2025-02-17 21:48:09 +00:00
9402a894d8
A huge amount of untrackable changes 2025-02-17 22:47:33 +01:00
927c06a184
Install kyverno to the etersoft cluster too 2025-02-11 15:39:19 +01:00
9a4706a9d3
Fix traefik 2025-02-09 16:41:53 +01:00
e845e73de8
Install uptime-kuma 2025-02-09 11:41:45 +01:00
8aec909237 chore(deps): update helm release woodpecker to v3 2025-02-09 10:41:00 +00:00
4a2c7a8b8e chore(deps): update helm release traefik to v34 2025-02-09 10:40:54 +00:00
f21cad0dff chore(deps): update helm release velero to v8.3.0 2025-02-09 10:40:40 +00:00
fd7d48291b chore(deps): update helm release renovate to v39.164.0 2025-02-09 10:40:33 +00:00
9e3d8b6468 chore(deps): update helm release loki to v6.25.1 2025-02-09 10:40:25 +00:00
479401927b chore(deps): update helm release kube-prometheus-stack to v68.5.0 2025-02-09 10:40:18 +00:00
d6e5a09d65 chore(deps): update helm release grafana to v8.9.0 2025-02-09 10:40:12 +00:00
c0e2b45c11 chore(deps): update helm release zot to v0.1.66 2025-02-09 10:40:07 +00:00
93839914ea chore(deps): update helm release minecraft to v4.23.7 2025-02-09 10:39:59 +00:00
73a92ce856 chore(deps): update helm release kyverno-policies to v3.3.4 2025-02-09 10:39:49 +00:00
2dc3fe3445 chore(deps): update helm release kyverno to v3.3.6 2025-02-08 22:36:39 +00:00
35e41114f3 chore(deps): update helm release authentik to v2024.12.3 2025-02-08 09:47:35 +00:00
0bb7a2cf52 chore(deps): update helm release external-dns to v1.15.1 2025-02-08 01:01:11 +00:00
4382d0b6d2 chore(deps): update helm release openebs to v4.1.3 2025-02-07 13:46:14 +00:00
7d825ab2d6 chore(deps): update helm release renovate to v39.163.0 2025-02-07 13:46:05 +00:00
7580508a05 chore(deps): update helm release coredns to v1.39.0 2025-02-07 13:45:56 +00:00
2a4d253ae8 chore(deps): update helm release cert-manager to v1.17.0 2025-02-07 13:45:50 +00:00
348431ecc4 chore(deps): update helm release cilium to v1.17.0 2025-02-07 13:45:33 +00:00
57465c4fb5
Remove IP from xray cert 2025-02-07 14:44:57 +01:00
fe83461ee1
Deploy new apps 2025-02-06 08:49:54 +01:00
1f923778de chore(deps): update helm release kube-prometheus-stack to v68 2025-01-25 01:01:15 +00:00
48eee21619
Add etersoft xray and increase gitea memory 2025-01-22 22:04:34 +01:00
71c6161ad3
Update woodpecker 2025-01-15 16:03:42 +01:00
c27a5e1bfd
New ports for xray 2025-01-15 15:43:40 +01:00
acfb954e4e chore(deps): update helm release authentik to v2024.12.2 2025-01-13 08:35:57 +00:00
6cc25e2ab3
Update xray blocked domains 2025-01-13 09:03:53 +01:00
879d15457a chore(deps): update helm release renovate to v39.99.0 2025-01-10 16:58:21 +00:00
578c64afc6 chore(deps): update helm release db-operator to v1.32.0 2025-01-10 16:58:01 +00:00
c4ae193540 chore(deps): update server-xray docker tag to v0.5.0 2025-01-10 16:57:37 +00:00
35c3d40cb8 chore(deps): update redis docker tag to v20.6.2 2025-01-09 01:01:18 +00:00
116ba59b57
Add xray user 2025-01-06 21:06:09 +01:00
379274809b
Update xray-edge 2025-01-04 23:23:32 +01:00
1c6e2d4fb7
Add the family account to xray 2025-01-04 23:14:32 +01:00
0ca09ccde4 chore(deps): update helm release minio to v5.4.0 2025-01-04 15:19:33 +00:00
cbf4076854 chore(deps): update helm release renovate to v39.90.3 2025-01-04 01:01:32 +00:00
59fde35280 chore(deps): update helm release renovate to v39.87.0 2025-01-02 01:01:18 +00:00
620a78d671 chore(deps): update helm release renovate to v39.86.1 2024-12-31 19:16:44 +00:00
bdb358c071 chore(deps): update helm release velero to v8.2.0 2024-12-31 01:01:26 +00:00
2f1dca5941
Install vaultwarden in the new ns 2024-12-29 22:27:12 +01:00
df5dbf104d
Install new vaultwarden and enabled istio 2024-12-27 12:50:46 +01:00
a79d85bc2a chore(deps): update helm release renovate to v39.83.1 2024-12-27 09:30:40 +00:00
e2fbd60995 chore(deps): update stalwart docker tag to v0.5.0 2024-12-27 01:01:31 +00:00
18faad62b6 chore(deps): update helm release kube-prometheus-stack to v67.5.0 2024-12-26 01:02:16 +00:00
e95ddada11
Clean up the applications helmfile 2024-12-25 19:56:58 +01:00
28aff10917
Add more backups to etersfoft 2024-12-25 18:17:21 +01:00
ecb0ab1b78
Fix coredns limits
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2024-12-25 13:57:53 +01:00
ba165eb8af
Install tandoor
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2024-12-25 13:44:23 +01:00
7ce1033ab4 chore(deps): update helm release renovate to v39.82.7 2024-12-25 10:06:34 +00:00
137d4e4c2c chore(deps): update helm release kyverno to v3.3.4 2024-12-25 10:05:55 +00:00
6c7e10f1cc chore(deps): update helm release grafana to v8.8.2 2024-12-25 10:04:17 +00:00
5febfef418 chore(deps): update helm release cilium to v1.16.5 2024-12-25 10:03:06 +00:00
606b0ad690 chore(deps): update helm release keel to v1.0.5 2024-12-25 10:01:40 +00:00
36ba22151a chore(deps): update helm release metallb to v0.14.9 2024-12-25 09:46:59 +00:00
749b4809c7 chore(deps): update helm release woodpecker to v2.0.3 2024-12-25 09:39:37 +00:00
eb09727a26 chore(deps): update helm release authentik to v2024.12.1 2024-12-25 09:39:15 +00:00
282fcff775 chore(deps): update helm release db-operator to v1.31.0 2024-12-25 09:38:22 +00:00
f29c8c1466 chore(deps): update helm release loki to v6.24.0 2024-12-25 09:37:32 +00:00
8aec0e7c4d chore(deps): update helm release traefik to v33.2.1 2024-12-25 09:36:47 +00:00
ae7c0970a3 chore(deps): update redis docker tag to v20.6.1 2024-12-25 09:36:24 +00:00
59c51247b0 chore(deps): update helm release kube-prometheus-stack to v67 2024-12-25 01:03:16 +00:00
e612a718a7 install-memos (#199) 2024-12-24 18:46:32 +00:00
1ba2a0de4b
Add a couple of XRAY users
Signed-off-by: Nikolai Rodionov <allanger@badhouseplants.net>
2024-12-21 21:54:51 +01:00
d41945f05d
Persist external service config for XRAY 2024-12-18 21:57:49 +01:00
Nikolai Rodionov
78d1ba91e3
Update velero config 2024-12-16 15:56:10 +01:00
Nikolai Rodionov
aa2177297b
Add kyverno policy to pipelines 2024-12-16 15:43:12 +01:00
c1e7fe0fc7
A whole lot of updates and fixes 2024-12-16 12:56:02 +01:00
4b8a0fee0d chore(deps): update helm release kyverno-policies to v3.3.2 2024-12-15 20:57:50 +00:00
ea9978ec79 chore(deps): update helm release minecraft to v4.23.6 2024-12-15 01:01:11 +00:00
6b6f24a764
XRAY: Add Nikita Kolomiets 2024-12-12 16:30:06 +01:00
3f797316bc
WIP: Installing tandoor 2024-12-12 15:51:02 +01:00
1bf05611f2
Add song sharing to navidrome 2024-12-12 15:50:47 +01:00
56d2576666
Add team-fortress-2 server 2024-12-12 15:50:20 +01:00
561824536d
Update xray config and cleanup 2024-12-12 14:56:04 +01:00
c2e16dc840 Morozov Xray 2024-12-12 16:42:58 +03:00
13e6071dcc
Migrate to bitnami OCI 2024-12-12 13:36:11 +01:00
729a3a75c2 chore(deps): update helm release kube-prometheus-stack to v66.3.1 2024-12-11 12:28:56 +00:00
726e18dea6 chore(deps): update helm release coredns to v1.37.0 2024-12-11 12:28:30 +00:00
41584e3e96 chore(deps): update helm release authentik to v2024.10.5 2024-12-11 01:01:33 +00:00
a2babd18ba chore(deps): update helm release redis to v20.4.0 2024-12-09 16:52:12 +00:00
e28e66ae58 chore(deps): update qbittorrent docker tag to v0.4.0 2024-12-09 16:51:52 +00:00
34faff57d2 chore(deps): update helm release traefik to v33.1.0 2024-12-09 12:42:49 +00:00
6757c15bcb chore(deps): update helm release loki to v6.23.0 2024-12-09 12:41:10 +00:00
546889f7f9 chore(deps): update helm release renovate to v39.57.4 2024-12-09 01:01:34 +00:00
14f05ee2d7 chore(deps): update helm release renovate to v39.42.4 2024-12-02 08:42:16 +00:00
3abd385d6e chore(deps): update helm release db-operator to v1.30.0 2024-12-02 01:02:08 +00:00
81bac51801
install navidrome private 2024-12-01 23:15:52 +01:00
e67a6f76a1 chore(deps): update helm-library docker tag to v0.1.5 2024-12-01 22:14:48 +00:00
44196bba3e chore(deps): update helm release cilium to v1.16.4 2024-12-01 22:14:24 +00:00
ccefbec453 chore(deps): update helm release grafana to v8.6.4 2024-12-01 22:14:01 +00:00
c261eae56a chore(deps): update helm release kube-prometheus-stack to v66.3.0 2024-12-01 22:13:38 +00:00
d45eb15c1c chore(deps): update helm release velero to v8.1.0 2024-12-01 22:13:15 +00:00
d61cd84633 chore(deps): update helm release woodpecker to v2 2024-12-01 22:12:48 +00:00
56f241da94 chore(deps): update helm release renovate to v39.42.2 2024-12-01 01:01:24 +00:00
35dbf1d46c chore(deps): update helm release authentik to v2024.10.4 2024-11-22 09:19:03 +00:00
2a71aee8ec chore(deps): update helm release loki to v6.21.0 2024-11-22 09:18:28 +00:00
1cc8734d38 chore(deps): update helm release renovate to v39.25.4 2024-11-22 09:18:11 +00:00
4a01a60339 chore(deps): update helm release cert-manager to v1.16.2 2024-11-21 01:01:19 +00:00
50787e41d8 chore(deps): update helm release loki to v6.20.0 2024-11-20 21:46:30 +00:00
7d700c8ba5
Remove the bot user from XRAY 2024-11-20 04:11:52 +01:00
318da43572 chore(deps): update helm release velero to v8 2024-11-19 21:43:31 +00:00
a5c71644a8 chore(deps): update helm release kyverno to v3.3.3 2024-11-19 21:43:02 +00:00
64e589c3c8 chore(deps): update helm release redis to v20.3.0 2024-11-19 21:42:43 +00:00
0c8245efff chore(deps): update helm release authentik to v2024.10.2 2024-11-19 21:41:50 +00:00
e0d6fef483 chore(deps): update helm release grafana to v8.6.0 2024-11-19 21:40:43 +00:00
411789d2d5
Reduce amount of xray replicas 2024-11-19 22:01:25 +01:00
34eed5db33 chore(deps): update helm release kyverno-policies to v3.3.1 2024-11-19 19:52:40 +00:00
5d8d7ce451
Add keel to the badhouseplants-net 2024-11-19 16:35:52 +01:00
cd7b780257
Install keel to the cluster 2024-11-18 13:55:54 +01:00
717bed20d0
Increase amount of replicas in the xray clusters 2024-11-18 11:58:09 +01:00
293e2a05ed
Decrease minecraft requests 2024-11-18 11:55:20 +01:00
0710d6098a chore(deps): update helm release renovate to v39.18.2 2024-11-17 21:00:39 +00:00
f7f143e2bc chore(deps): update helm release loki to v6.19.0 2024-11-17 21:00:20 +00:00
b1512e7b3e chore(deps): update helm release woodpecker to v1.6.2 2024-11-17 20:59:19 +00:00
5fc1d3dfbc chore(deps): update helm release kube-prometheus-stack to v66 2024-11-17 20:58:22 +00:00
f1201cfdec chore(deps): update helm release gitea to v10.6.0 2024-11-17 20:57:58 +00:00
40403ab0da
Run tf-ocloud in the etersoft cluster 2024-11-17 21:57:08 +01:00
dea25f9788
Close the obsolete xray port on traefik 2024-11-17 21:56:31 +01:00
51883ea16c
Add basic auth to loki 2024-11-17 21:56:07 +01:00
881882ca99
Break the edge xray setup 2024-11-17 21:55:35 +01:00
5a1e9c8386
Add basic auth to loki 2024-11-17 21:55:12 +01:00
3aedbbb853
Cleanup the badhouseplants cluster 2024-11-17 21:54:54 +01:00
55822e5c1b
Install wordpress to the etersoft cluster 2024-11-17 21:54:26 +01:00
f3bb549deb
Add two xray clusters 2024-11-17 21:52:41 +01:00
Nikolai Rodionov
6a4f94c97e
Add istio for the dynamic xray 2024-11-08 21:01:38 +01:00
a2919fc5d1 xray public upgrade to 0.4.0 2024-11-08 00:09:36 +03:00
59da8e666d chore(deps): update helm release zot to v0.1.65 2024-11-07 20:24:17 +00:00
3a614d5808 chore(deps): update helm release authentik to v2024.10.1 2024-11-07 20:23:56 +00:00
56584b9c9a chore(deps): update helm release wordpress to v23.1.28 2024-11-07 20:23:42 +00:00
0f086e10b8 chore(deps): update helm release kube-prometheus-stack to v65.8.1 2024-11-07 20:23:13 +00:00
cb10e56dc5 chore(deps): update helm release renovate to v39 2024-11-07 20:22:54 +00:00
Nikolai Rodionov
c2ec134d2b
Add postgres to etersoft 2024-11-07 10:09:56 +01:00
2f524131dd chore(deps): update helm release grafana to v8.5.12 2024-11-05 07:45:21 +00:00
efed571d67 chore(deps): update helm release wordpress to v23.1.26 2024-11-05 07:44:43 +00:00
61dba107af chore(deps): update server-xray docker tag to v0.3.0 2024-11-05 07:44:27 +00:00
799d6b1180 chore(deps): update helm release renovate to v38.142.6 2024-11-05 01:01:31 +00:00
4e21267d78
Fix the CIDR for the proxy protocol 2024-11-03 16:08:10 +01:00
bc6114ea40 chore(deps): update vaultwarden docker tag to v2.3.0 2024-11-02 16:51:57 +00:00
3fe52c0c07 chore(deps): update helm release traefik to v33 2024-11-02 16:50:58 +00:00
91538793d7 chore(deps): update helm release authentik to v2024.10.0 2024-11-02 16:48:47 +00:00
1b39133b94 chore(deps): update helm release zot to v0.1.64 2024-11-02 16:46:45 +00:00
0e8bd180c3 chore(deps): update helm release kyverno to v3.3.2 2024-11-02 16:45:29 +00:00
b4f6beb8f2
More xray replicas 2024-11-02 17:44:33 +01:00
7571340340 chore(deps): update helm release wordpress to v23.1.25 2024-11-02 01:01:22 +00:00
61cdb6118a
More traefik replicas 2024-11-01 18:34:35 +01:00
92e036476e
Add proxy-protocol and remove tf-ocloud 2024-11-01 18:28:57 +01:00
d1db1b58ea chore(deps): update helm release grafana to v8.5.11 2024-11-01 17:16:47 +00:00
01a325d05b chore(deps): update helm release kube-prometheus-stack to v65.5.1 2024-11-01 17:16:35 +00:00
ffe14e0a02 chore(deps): update helm release kyverno-policies to v3.3.0 2024-11-01 17:16:15 +00:00
7507577869 chore(deps): update helm release kyverno to v3.3.1 2024-11-01 17:15:56 +00:00
a27447b46c chore(deps): update helm release velero to v7.2.2 2024-11-01 01:01:53 +00:00
ea7c56f7ec
Remove an obsolete ci runner 2024-10-31 11:24:00 +01:00
51a314bb4f
Move vaultwardentest to the etersoft cluster 2024-10-31 10:43:29 +01:00
ef44fa6fab
A big refactoring and postgres17 init 2024-10-30 21:03:58 +01:00
Nikolai Rodionov
839d9e8b39
Dummy commit for testing pre-commit 2024-10-30 13:36:57 +01:00
Nikolai Rodionov
f0e56e916e
More pre-commit logic and fixes 2024-10-30 13:35:58 +01:00
5e0342ffd1 chore(deps): update helm release crossplane to v1.17.2 2024-10-30 11:56:23 +00:00
de01ee6fdb chore(deps): update helm release renovate to v38.135.1 2024-10-30 11:56:09 +00:00
087e292c92 chore(deps): update helm release wordpress to v23.1.24 2024-10-30 11:55:52 +00:00
4b0cc4e061 chore(deps): update stalwart docker tag to v0.4.0 2024-10-30 11:55:33 +00:00
456542b6b0 chore(deps): update helm release db-instances to v2.4.0 2024-10-30 11:54:38 +00:00
dac73fc96d chore(deps): update helm release kyverno to v3.3.0 2024-10-30 11:23:24 +00:00
fb0289eb76 chore(deps): update helm release coredns to v1.36.1 2024-10-30 11:23:02 +00:00
bd05833d62
Update mods URL for minecraft 2024-10-29 22:16:16 +01:00
Nikolai Rodionov
a4154ebecd
Add more flags to minecraft 2024-10-29 15:54:26 +01:00
5e35669a67 chore(deps): update helm release zot to v0.1.63 2024-10-27 09:17:30 +00:00
abcdbe1ddc chore(deps): update helm release kube-prometheus-stack to v65.5.0 2024-10-27 09:17:24 +00:00
c7171f388b chore(deps): update helm release renovate to v38.132.1 2024-10-27 01:01:15 +00:00
1888c7a88c
Update tf-ocloud tag 2024-10-24 21:48:24 +02:00
bfd8d8fee0 chore(deps): update helm release kube-prometheus-stack to v65.3.2 2024-10-22 17:52:50 +00:00
482375bb3f chore(deps): update helm release renovate to v38.129.1 2024-10-22 01:01:48 +00:00
72954f1b20 chore(deps): update helm release grafana to v8.5.8 2024-10-21 11:24:47 +00:00
2e964c390b chore(deps): update helm release kube-prometheus-stack to v65.3.1 2024-10-21 11:12:05 +00:00
4a770ed0f4 chore(deps): update helm release longhorn to v1.7.2 2024-10-21 11:11:50 +00:00
cae46002dc chore(deps): update helm release argo-cd to v7.6.12 2024-10-21 11:11:29 +00:00
decfc668cf chore(deps): update helm release gitea to v10.5.0 2024-10-21 11:11:16 +00:00
a169e4d4df chore(deps): update helm release renovate to v38.128.6 2024-10-21 01:01:34 +00:00
67663ef3fe chore(deps): update helm release grafana to v8.5.6 2024-10-18 13:05:03 +00:00
a5e5f9c9b0 chore(deps): update helm release wordpress to v23.1.23 2024-10-18 01:01:21 +00:00
78e038d60f chore(deps): update navidrome docker tag to v0.2.0 2024-10-17 07:18:56 +00:00
589a32ce4b chore(deps): update server-xray docker tag to v0.2.0 2024-10-17 07:18:38 +00:00
3dd29e6223 chore(deps): update stalwart docker tag to v0.3.0 2024-10-17 07:18:18 +00:00
4a803ba2fd chore(deps): update vaultwarden docker tag to v2.3.0 2024-10-17 07:18:00 +00:00
3f290bdf14 chore(deps): update helm release wordpress to v23.1.22 2024-10-17 06:51:16 +00:00
edef63e4fc chore(deps): update openvpn docker tag to v0.0.2 2024-10-17 06:44:40 +00:00
e8f7bd12a6
Update renovate fileMatch again 2024-10-17 08:30:20 +02:00
eb165e1b8a
Update renovate fileMatch 2024-10-17 06:43:43 +02:00
c7512249cd chore(deps): update helm release argo-cd to v7.6.10 2024-10-17 04:41:07 +00:00
ec06ebf967 chore(deps): update helm release redis to v20.2.1 2024-10-17 04:40:54 +00:00
61858241e2 chore(deps): update helm release renovate to v38.124.3 2024-10-17 04:40:33 +00:00
0f3aac0a8f chore(deps): update helm release loki to v6.18.0 2024-10-17 04:39:44 +00:00
9d7e30e586
Scale down public xray to 1 replica 2024-10-16 21:51:33 +02:00
38a0f2781d
Fix SA in the roles chart 2024-10-16 21:22:56 +02:00
03413ea1cb chore(deps): update helm release grafana to v8.5.5 2024-10-16 19:14:54 +00:00
d6d336b8a8 chore(deps): update helm release renovate to v38.124.1 2024-10-16 19:14:32 +00:00
cc2edc9306 chore(deps): update helm release argo-cd to v7.6.9 2024-10-16 19:14:01 +00:00
87a4cf7fd4 chore(deps): update helm release cilium to v1.16.3 2024-10-16 19:13:44 +00:00
2044548ba4
Install and set up External DNS 2024-10-16 21:09:51 +02:00
d6613dbe4e
Update the tf-ocloud chart and values 2024-10-16 20:47:14 +02:00
72f739879a
Add a bucket for terraform states 2024-10-16 19:16:14 +02:00
76cb1aed4f
Add a bucket for terraform states 2024-10-16 18:35:18 +02:00
6f941b2368
Add tf-ocloud job to the badhouseplants 2024-10-15 12:45:05 +02:00
917685c3b9
Uninstall shadowsocks 2024-10-14 21:28:30 +02:00
f5f3821f3a
Add an edge xray installation 2024-10-14 21:23:55 +02:00
eef0a722cd
Add oauth to etersoft minio 2024-10-14 21:04:11 +02:00
570a04e219
Start managing cilium policies via helmfile 2024-10-14 14:41:28 +02:00
b2f3e6b833
Cleanup obsolete value files 2024-10-14 09:31:05 +02:00
2a86496f7b Update Helm release mariadb to v19.1.0 2024-10-14 07:23:05 +00:00
0dfe4993f8
chore(deps): update helm release grafana to v8.5.3 2024-10-14 09:22:31 +02:00
9f777e977f Update Helm release redis to v20.2.0 2024-10-14 06:48:14 +00:00
72017b9ef0 Update Helm release traefik to v32.1.1 2024-10-14 06:47:51 +00:00
d3fac8b9e8 chore(deps): update helm release renovate to v38.120.1 2024-10-14 06:47:30 +00:00
d83d88eff0 Update Helm release minio to v5.3.0 2024-10-14 06:47:01 +00:00
5273e0a7b9 Update Helm release kube-prometheus-stack to v65.2.0 2024-10-14 06:27:53 +00:00
205113bafd
Onboard the etersoft cluster 2024-10-14 08:12:41 +02:00
a3d8a0e93c
Update xray ports 2024-10-13 23:03:20 +02:00
cea6c24392
xray: Add Timur Korol 2024-10-13 18:29:42 +02:00
09ca52edd1
Rotate sops keys and add a scripts for that 2024-10-11 14:09:43 +02:00
a7b8e9c159
Fix cert-manager values for etersoft 2024-10-11 14:04:47 +02:00
faa776ff78
Clean up cert-manager values 2024-10-11 14:04:20 +02:00
444fe8f569
Make it possible to disable openebs in the installation 2024-10-11 14:03:55 +02:00
ab7ed0cda1
Make it possible to disable openebs 2024-10-11 14:03:34 +02:00
ce6f2e286a
Update pre-commit hook 2024-10-10 22:04:22 +02:00
695f606121
Update pre-commit hook 2024-10-10 21:54:42 +02:00
c8941b03f2
Update pre-commit hook 2024-10-10 21:52:20 +02:00
ab6b8c3dd0
Start creating a script 2024-10-10 21:12:29 +02:00
72ea107b9e
Add a rule for public trackers 2024-10-10 18:06:31 +02:00
1fd840d376 Roman Xray 2024-10-10 18:35:19 +03:00
a1b5b510cc
Prepare roles 2024-10-10 07:25:16 +02:00
104f47eb26
Install loki and promtail 2024-10-10 06:48:55 +02:00
0c402ed02f Update Helm release kube-prometheus-stack to v65.1.1 2024-10-10 04:14:13 +00:00
c5327c7a89 Update Helm release cert-manager to v1.16.1 2024-10-10 04:13:39 +00:00
fb2e83b66d Update Helm release wordpress to v23.1.21 2024-10-10 04:13:26 +00:00
27a24245af Update Helm release coredns to v1.36.0 2024-10-10 04:13:16 +00:00
9297c6da5a Ruslan XRAY 2024-10-09 23:31:28 +03:00
5c964d5b56
Format xray config 2024-10-09 22:26:13 +02:00
07c1c70b3c
Update sops config 2024-10-09 21:43:03 +02:00
Nikolai Rodionov
630d3df919
Setting up the xray 2024-10-09 12:34:32 +02:00
e79f38d43f
Trying to add a public xray 2024-10-09 08:33:35 +02:00
adb127813f Update Helm release renovate to v38.110.4 2024-10-08 07:46:13 +00:00
0dd9c8c7d3 Update Helm release metrics-server to v3.12.2 2024-10-08 01:00:59 +00:00
81e267c630
Add a github renovate bot 2024-10-08 00:03:34 +02:00
4db2c05fc8 Update shadowsocks-libev Docker tag to v3 2024-10-07 20:08:39 +00:00
58bd8322e4
Remove network policies from cert-manager 2024-10-07 10:12:47 +02:00
df1b8aebdc Update Helm release coredns to v1.35.0 2024-10-07 07:04:48 +00:00
82fb8fd223 Update Helm release kube-prometheus-stack to v65.1.0 2024-10-07 01:01:09 +00:00
828409b2a1
Update cert-manager values 2024-10-06 21:23:22 +02:00
6706dbbe69 Update Helm release traefik to v32.1.0 2024-10-06 19:14:17 +00:00
400c1feda6 Update Helm release renovate to v38.110.2 2024-10-06 19:14:05 +00:00
bb830698fe
Install server-xray 2024-10-06 16:19:28 +02:00
cde79eb82e Update Helm release cert-manager to v1.16.0 2024-10-05 20:01:10 +00:00
3bb1a35463 Update Helm release renovate to v38.110.1 2024-10-05 20:01:01 +00:00
dfd9cdc9a3 Update Helm release kube-prometheus-stack to v65 2024-10-05 01:01:18 +00:00
1ef17bdcaa Update Helm release argo-cd to v7.6.8 2024-10-04 07:26:51 +00:00
44704109ce Update Helm release zot to v0.1.62 2024-10-04 07:26:40 +00:00
2cdee7c528 Update Helm release renovate to v38.107.1 2024-10-04 01:01:13 +00:00
e87ae7f075 Update Helm release grafana to v8.5.2 2024-10-03 10:29:42 +00:00
48c01b5087 Update Helm release redis to v20.1.7 2024-10-03 01:01:48 +00:00
42bbec66f7
Update prom and traefik 2024-10-02 12:13:21 +02:00
b977be4cfd Update Helm release kyverno-policies to v3.2.6 2024-10-02 10:12:56 +00:00
faae8666a4 Update Helm release redis to v20.1.5 2024-10-02 10:12:44 +00:00
39cde43921 Update Helm release argo-cd to v7.6.7 2024-10-02 10:12:33 +00:00
3f39639659 Update Helm release postgresql to v15.5.38 2024-10-02 10:12:15 +00:00
414a8ff1e0 Update Helm release wordpress to v23.1.19 2024-10-02 10:12:04 +00:00
99aea35e3c Update Helm release coredns to v1.34.0 2024-10-02 10:11:39 +00:00
239866b219 Update Helm release renovate to v38.106.3 2024-10-02 01:02:09 +00:00
9630dfa937
Use minio fot gitea storage 2024-10-01 12:29:30 +02:00
ba1fb22cc7
Move grafana to the monitoring ns 2024-09-30 22:50:18 +02:00
a59fa243fe
Add oauth to zot 2024-09-29 20:28:22 +02:00
8e20b89b6b Update Helm release kyverno to v3.2.7 2024-09-29 07:47:33 +00:00
744a0bb32c Update Helm release coredns to v1.33.0 2024-09-29 07:47:03 +00:00
93a804a491 Update Helm release kube-prometheus-stack to v63 2024-09-29 07:46:45 +00:00
54c6c095f0 Update Helm release traefik to v32 2024-09-29 01:02:09 +00:00
bb02a63f2d
Migrate to the new cluster 2024-09-28 21:56:27 +02:00
19241a77b2
Remove kyverno patch for pvcs 2024-09-28 21:56:16 +02:00
fdc827ee69
Remove kyverno from kube-system 2024-09-28 21:55:59 +02:00
ce8e7313fe
Install kyverno 2024-09-28 21:55:34 +02:00
c4de5942d9
Install prometheus and grafana 2024-09-28 21:55:34 +02:00
3ffddce991 Update Helm release argo-cd to v7.6.5 2024-09-28 08:42:02 +00:00
9ce06f0dab Update Helm release mariadb to v19.0.7 2024-09-28 08:41:50 +00:00
a32553414f Update Helm release wordpress to v23.1.17 2024-09-28 08:41:28 +00:00
ddb09214b0 Update Helm release authentik to v2024.8.3 2024-09-28 08:40:26 +00:00
8ac467df7f Update Helm release postgresql to v15.5.36 2024-09-28 08:39:55 +00:00
e00800c743 Update Helm release cilium to v1.16.2 2024-09-28 08:26:23 +00:00
45164592ae Update Helm release renovate to v38.100.0 2024-09-28 01:02:25 +00:00
f8e71d626e
Add an additional age key for Minecraft 2024-09-26 22:55:34 +02:00
32de4be007
Disable UDP for shadowsocks 2024-09-26 22:38:45 +02:00
ee57b580b2
Add a minecraft bucket and user 2024-09-24 13:49:38 +02:00
1b6c085ff0
Remove duplicated minio release 2024-09-23 22:34:20 +02:00
ba76752925 Update Helm release redis to v20.1.4 2024-09-23 14:52:38 +00:00
45cc6e90ce Update Helm release wordpress to v23.1.16 2024-09-23 14:52:12 +00:00
07e2d06124 Update Helm release argo-cd to v7.6.1 2024-09-23 14:51:41 +00:00
55c52d65b1 Update Helm release traefik to v31.1.1 2024-09-23 14:51:17 +00:00
d5b14bbef1 Update Helm release renovate to v38.93.2 2024-09-23 14:50:49 +00:00
211459c83c Update Helm release minecraft to v4.23.2 2024-09-23 01:01:44 +00:00
e4434c7617
Add UDP traefik route to shadowsocks 2024-09-20 17:07:12 +02:00
2720e03698 Update Helm release crossplane to v1.17.1 2024-09-19 17:04:45 +00:00
cf0afd7f3a Update Helm release mariadb to v19.0.6 2024-09-19 17:04:25 +00:00
cc0b3f5902 Update Helm release postgresql to v15.5.32 2024-09-19 17:04:08 +00:00
38569f5884 Update Helm release redis to v20.1.3 2024-09-19 17:03:49 +00:00
e44cb51355 Update Helm release wordpress to v23.1.14 2024-09-19 17:03:22 +00:00
ab46ee454d Update Helm release traefik to v31.1.0 2024-09-19 17:03:03 +00:00
96d07b6297 Update Helm release renovate to v38.88.2 2024-09-19 07:50:08 +00:00
b84a023098 Update Helm release woodpecker to v1.6.0 2024-09-19 01:01:05 +00:00
f8115c475b Update Helm release authentik to v2024.8.2 2024-09-18 13:44:55 +00:00
133f45cfec
Temporary disable renovate commit signing 2024-09-18 15:43:55 +02:00
d27da07cb4
Update minecraft configuration 2024-09-18 15:42:11 +02:00
f8444da081
Add auto auth to navidrome 2024-09-18 15:41:56 +02:00
8eec7a3ae3
Add traefik middleware to templates 2024-09-18 15:32:39 +02:00
3e31d1ff5e
Update smtp settings in gitea and vaultwarden 2024-09-13 06:47:14 +02:00
a9c49f405c
Add a key for signing commits to renovate
I've added a key, but it doesn't seem to work yet
2024-09-13 06:47:14 +02:00
2ef7029d59
Remove minio from the application helmfile 2024-09-13 06:47:13 +02:00
ce72702593
Update stalwart config
Put the admin secret to environment, and read it from the main config,
so there are no plain secrets in the repo anymore
2024-09-13 06:47:13 +02:00
5a17d56044 Update Helm release renovate to v38.77.3 2024-09-13 04:40:57 +00:00
dd0639abb5
Configure zot 2024-09-13 05:23:52 +02:00
eea7d7a4f4 Update Helm release kube-prometheus-stack to v62.7.0 2024-09-13 03:17:09 +00:00
4be2f8862a Update Helm release zot to v0.1.61 2024-09-13 01:00:57 +00:00
4b92f2fb8b
Migrate minio to the platform namespace 2024-09-12 14:45:25 +02:00
009b6c599a Update Helm release renovate to v38.76.1 2024-09-12 07:03:11 +00:00
2da6b79f7b Update Helm release kube-prometheus-stack to v62 2024-09-12 07:02:49 +00:00
7a6518509f Update Helm release redis to v20.1.0 2024-09-12 01:00:41 +00:00
42e5a309d0
Update renovate token 2024-09-11 23:39:36 +02:00
45876ee7c6 Update Helm release kube-prometheus-stack to v61.9.0 2024-09-11 21:24:41 +00:00
fda4216edf Update Helm release gitea to v10.4.1 2024-09-11 21:22:55 +00:00
3459022566 Update Helm release wordpress to v23.1.12 2024-09-11 21:21:53 +00:00
01c9633870 Update Helm release grafana to v8.5.1 2024-09-11 21:21:37 +00:00
fc06a0d539 Update Helm release minecraft to v4.23.1 2024-09-11 21:20:51 +00:00
23ea38ea69
Refactor everything a bit 2024-09-11 23:19:35 +02:00
c8c35df257 Update Helm release velero to v7.2.1 2024-09-11 14:36:06 +00:00
2c3f0e364a Update Helm release postgresql to v15.5.29 2024-09-11 14:35:34 +00:00
45ce7eb166
Add renovate bot 2024-09-11 16:33:34 +02:00
edfc86eab5 Update Helm release db-operator to v1.29.0 2024-09-11 14:24:23 +00:00
8db2cb96ae Update Helm release postgresql to v15.5.28 2024-09-10 19:20:00 +00:00
3622baa0af
Update Helm release kube-prometheus-stack to v62 2024-09-10 13:06:29 +02:00
43fa8d1b12 Update Helm release mariadb to v19.0.5 2024-09-10 11:04:36 +00:00
c5753c28ca
Update Helm release authentik to v2024.8.1 2024-09-10 13:02:55 +02:00
14577099f5
Add renovate.json 2024-09-10 13:01:05 +02:00
480ba67329
Add navidrome 2024-09-08 22:21:22 +02:00
4535c50644
Cleanup minio 2024-09-07 15:09:16 +02:00
ad1cbc7281
Remove zot and minio 2024-09-07 14:40:03 +02:00
5c8e278bbb
Update vaultwarden and stalwart 2024-09-06 13:49:45 +02:00
f8e9ab5921
Update releases 2024-09-04 20:55:28 +02:00
fe7c9b35c5
Remove unused stuff 2024-09-04 20:35:21 +02:00
6ac391b7fc Migrate authentik from application ns to platform ns
Increase authentik memory requests and limits from 512Mi to 1Gi
Issue: allanger/k8s-deployment#1
2024-09-03 18:06:26 +02:00
4daf2f24f7
A lot of untrackable changes 2024-09-03 14:15:47 +02:00
32429140d2
Add a targz repo for testing 2024-08-15 00:05:55 +02:00
1da2157165
Fix minecraft 2024-08-06 23:06:31 +02:00
e43f4af705
A lot of stuff again 2024-08-05 13:36:49 +02:00
271 changed files with 9394 additions and 3137 deletions

32
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,32 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0 # Use the ref you want to point at
hooks:
- id: trailing-whitespace
- repo: https://github.com/google/yamlfmt
rev: v0.13.0
hooks:
- id: yamlfmt
exclude: |
(?x)(
^charts/|
^.*secrets.*yaml|
)
# - repo: https://github.com/codespell-project/codespell
# rev: v2.2.4
# hooks:
# - id: codespell
- repo: local
hooks:
- id: check-sops-secrets
name: check sops secrets
entry: ./scripts/sops_check.sh
language: script
# - name: check unused values (disable by setting DISABLE_ADDITIONAL_CHECKS=1)
# id: check-unused-values
# entry: ./scripts/find_unused_values.sh
# language: script
# - name: lint helmfiles (it might take a while, disable by setting DISABLE_ADDITIONAL_CHECKS=1)
# id: lint-all-envs
# entry: ./scripts/lint_all_envs.sh
# language: script

View File

@ -1,6 +1,10 @@
creation_rules:
- path_regex: values/.*/secrets.server-xray-public./*
key_groups:
- age:
- age1vzkv97n2p7gfkw8dyx8ctz2kumattz89th2jq47zyjyrarmnssysdkw9v8
- age17fyzv5mezck364lvyepp9pa3tnjn7jvsgcpykhhz2smnxyq6fdusvl7waf
- path_regex: values/.*/secrets.*
key_groups:
- age:
- age1vzkv97n2p7gfkw8dyx8ctz2kumattz89th2jq47zyjyrarmnssysdkw9v8

2
.yamlfmt Normal file
View File

@ -0,0 +1,2 @@
formatter:
retain_line_breaks_single: true

9
README.md Normal file
View File

@ -0,0 +1,9 @@
<<<<<<< Updated upstream
k8s-deployemnt
=======
# Helmfile deployments for Bad Houseplants
## Project structure
>>>>>>> Stashed changes

View File

@ -1,10 +1,23 @@
{{- range $name, $issuer := .Values.clusterIssuers }}
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
labels:
{{- include "issuer.labels" . | nindent 4 }}
name: "{{ .Values.name }}"
{{- include "issuer.labels" $ | nindent 4 }}
name: "{{ $name }}"
spec:
acme:
{{ .Values.spec | toYaml | indent 2 }}
{{ $issuer.spec | toYaml | indent 2 }}
{{- end }}
{{- range $name, $issuer := .Values.issuers }}
---
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
labels:
{{- include "issuer.labels" $ | nindent 4 }}
name: "{{ $name }}"
namespace: {{ $issuer.namespace }}
spec:
{{ $issuer.spec | toYaml | indent 2 }}
{{- end }}

View File

@ -0,0 +1,24 @@
apiVersion: v2
name: metallb-resources
description: A Helm chart for Kubernetes
# A chart can be either an 'application' or a 'library' chart.
#
# Application charts are a collection of templates that can be packaged into versioned archives
# to be deployed.
#
# Library charts provide useful utilities or functions for the chart developer. They're included as
# a dependency of application charts to inject those utilities and functions into the rendering
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.1.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "1.16.0"

View File

@ -1,7 +1,7 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "root.name" -}}
{{- define "metallb-resources.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
@ -10,7 +10,7 @@ Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "root.fullname" -}}
{{- define "metallb-resources.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
@ -26,16 +26,16 @@ If release name contains chart name it will be used as a full name.
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "root.chart" -}}
{{- define "metallb-resources.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "root.labels" -}}
helm.sh/chart: {{ include "root.chart" . }}
{{ include "root.selectorLabels" . }}
{{- define "metallb-resources.labels" -}}
helm.sh/chart: {{ include "metallb-resources.chart" . }}
{{ include "metallb-resources.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
@ -45,17 +45,17 @@ app.kubernetes.io/managed-by: {{ .Release.Service }}
{{/*
Selector labels
*/}}
{{- define "root.selectorLabels" -}}
app.kubernetes.io/name: {{ include "root.name" . }}
{{- define "metallb-resources.selectorLabels" -}}
app.kubernetes.io/name: {{ include "metallb-resources.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "root.serviceAccountName" -}}
{{- define "metallb-resources.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "root.fullname" .) .Values.serviceAccount.name }}
{{- default (include "metallb-resources.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}

View File

@ -0,0 +1,7 @@
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: {{ include "metallb-resources.fullname" . }}
spec:
addresses:
- {{ .Values.addresses}}

View File

@ -0,0 +1 @@
addresses: 1.1.1.1-1.1.1.1

View File

@ -1,6 +0,0 @@
apiVersion: v1
kind: Namespace
metadata:
name: flux-system
labels:
name: flux-system

View File

@ -1,6 +0,0 @@
apiVersion: v1
kind: Namespace
metadata:
name: giantswarm-flux
labels:
name: giantswarm-flux

View File

@ -1,6 +0,0 @@
apiVersion: v1
kind: Namespace
metadata:
name: giantswarm
labels:
name: giantswarm

View File

@ -1,5 +0,0 @@
resources:
- ./giantswarm-flux.yml
- ./giantswarm.yml
- ./monitoring.yml
- ./org-giantswarm.yml

View File

@ -1,6 +0,0 @@
apiVersion: v1
kind: Namespace
metadata:
name: monitoring
labels:
name: monitoring

View File

@ -1,6 +0,0 @@
apiVersion: v1
kind: Namespace
metadata:
name: org-giantswarm
labels:
name: org-giantswarm

View File

@ -15,5 +15,16 @@ metadata:
{{- with $ns.annotations}}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- if $ns.defaultRegcred }}
---
apiVersion: v1
kind: Secret
type: kubernetes.io/dockerconfigjson
metadata:
name: regcred
namespace: {{ $ns.name }}
data:
.dockerconfigjson: {{ $.Values.defaultRegcred }}
{{- end }}
{{- end }}
{{- end }}

View File

@ -0,0 +1,27 @@
{{- if .Values.bindings }}
{{- range $bindings := .Values.bindings }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: {{ $bindings.kind }}
metadata:
name: {{ $bindings.name }}
namespace: {{ $bindings.namespace }}
labels:
{{- include "roles.labels" $ | nindent 4 }}
{{- with $bindings.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with $bindings.annotations}}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
subjects:
{{- with $bindings.subjects }}
{{- toYaml . | nindent 4 }}
{{- end }}
roleRef:
{{- with $bindings.roleRef }}
{{- toYaml . | nindent 2 }}
{{- end }}
{{- end }}
{{- end }}

View File

@ -0,0 +1,20 @@
{{- if .Values.sa }}
{{- range $sa := .Values.sa }}
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ $sa.name }}
namespace: {{ $sa.namespace }}
labels:
{{- include "roles.labels" $ | nindent 4 }}
{{- with $sa.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with $sa.annotations}}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
automountServiceAccountToken: true
{{- end }}
{{- end }}

View File

@ -1,6 +0,0 @@
apiVersion: v2
name: root
description: A Helm chart for Kubernetes
type: application
version: 0.1.5
appVersion: "1.16.0"

View File

@ -1,25 +0,0 @@
{{ if .Capabilities.APIVersions.Has "source.toolkit.fluxcd.io/v1" }}
apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata:
name: root
spec:
interval: 30s
url: {{ .Values.url }}
ref:
branch: {{ .Values.branch }}
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: root
spec:
interval: 30s
targetNamespace: flux-system
sourceRef:
kind: GitRepository
name: root
path: "."
prune: false
timeout: 1m
{{- end }}

View File

@ -1,25 +0,0 @@
{{ if .Capabilities.APIVersions.Has "source.toolkit.fluxcd.io/v1" }}
apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata:
name: root-self
spec:
interval: 30s
url: {{ .Values.self.url }}
ref:
branch: {{ .Values.self.branch }}
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: root-self
spec:
interval: 30s
targetNamespace: flux-system
sourceRef:
kind: GitRepository
name: root-self
path: "."
prune: false
timeout: 1m
{{- end }}

View File

@ -1,5 +0,0 @@
url: https://git.badhouseplants.net/giantswarm/cluster-example.git
branch: main
self:
url: git@git.badhouseplants.net:giantswarm/root-config.git
branch: master

View File

@ -1,5 +1,49 @@
environments:
badhouseplants:
kubeContext: badhouseplants
values:
#- ./common/values/values.badhouseplants.yaml
- base:
enabled: true
- velero:
enabled: true
- workload:
enabled: true
- backups:
enabled: false
- localpath:
enabled: false
- openebs:
enabled: true
- postgres17:
enabled: true
- postgres16:
enabled: true
- redis:
enabled: true
- istio:
enabled: true
etersoft:
kubeContext: etersoft
values:
- ./common/values/values.etersoft.yaml
- base:
enabled: true
- velero:
enabled: false
- workload:
enabled: false
- backups:
enabled: true
- openebs:
enabled: false
- localpath:
enabled: true
- postgres17:
enabled: false
- redis:
enabled: false
- postgres16:
enabled: false
- istio:
enabled: false

View File

@ -0,0 +1,14 @@
metallb:
templates:
- |
{{ range .Values.ippools }}
---
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
name: {{ .name }}
spec:
addresses:
- {{ .addresses }}
{{ end }}

View File

@ -0,0 +1,13 @@
ext-self-signed-cert:
templates:
- |
---
apiVersion: v1
kind: Secret
metadata:
name: {{ .Values.name }}
data:
{{- $ca := genCA .Values.domain 365 -}}
{{- $cert := genSignedCert .Values.domain nil (list .Values.domain ) 365 $ca }}
tls.crt: {{ $cert.Cert | b64enc }}
tls.key: {{ $cert.Key | b64enc }}

View File

@ -0,0 +1,19 @@
certificate:
templates:
- |
{{ range .Values.certificate }}
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: {{ .name }}
spec:
dnsNames:
{{- range .dnsNames }}
- {{ . | quote }}
{{- end }}
issuerRef:
kind: {{ .issuer.kind }}
name: {{ .issuer.name }}
secretName: {{ .secretName }}
{{ end }}

View File

@ -0,0 +1,15 @@
istio-gateway:
templates:
- |
{{ range .Values.gateways }}
---
apiVersion: networking.istio.io/v1beta1
kind: Gateway
metadata:
name: {{ .name }}
spec:
selector:
istio: ingressgateway
servers:
{{ toYaml .servers | indent 4 }}
{{ end }}

View File

@ -10,33 +10,48 @@ templates:
args:
- -c
- |
helm show crds {{ .Release.Chart }} --version {{ .Release.Version }} | kubectl replace -f - \
|| helm show crds {{ .Release.Chart }} --version {{ .Release.Version }} | kubectl create -f - \
helm show crds {{ `{{ .Release.Chart }}` }} --version {{ `{{ .Release.Version }}` }} | kubectl replace -f - \
|| helm show crds {{ `{{ .Release.Chart }}` }} --version {{ `{{ .Release.Version }}` }} | kubectl create -f - \
|| true
- events: ["prepare"]
showlogs: true
command: "sh"
args:
- -c
- "helm show crds {{ .Release.Chart }} --version {{ .Release.Version }} | kubectl diff -f - || true"
- "helm show crds {{ `{{ .Release.Chart }}` }} --version {{ `{{ .Release.Version }}` }} | kubectl diff -f - || true"
- events: ["postuninstall"]
showlogs: true
command: "sh"
args:
- -c
- "helm show crds {{ .Release.Chart }} --version {{ .Release.Version }} | kubectl delete -f - || true"
- "helm show crds {{ `{{ .Release.Chart }}` }} --version {{ `{{ .Release.Version }}` }} | kubectl delete -f - || true"
# ----------------------------
# -- Configs
# ----------------------------
default-common-values:
values:
- '{{ requiredEnv "PWD" }}/values/common/values.{{ .Release.Name }}.yaml'
- '{{ requiredEnv "PWD" }}/values/common/values.{{ `{{ .Release.Name }}` }}.yaml'
default-env-values:
values:
- '{{ requiredEnv "PWD" }}/values/{{ .Environment.Name }}/values.{{ .Release.Name }}.yaml'
- '{{ requiredEnv "PWD" }}/values/{{ .Environment.Name }}/values.{{ `{{ .Release.Name }}` }}.yaml'
default-env-secrets:
secrets:
- '{{ requiredEnv "PWD" }}/values/{{ .Environment.Name }}/secrets.{{ .Release.Name }}.yaml'
- '{{ requiredEnv "PWD" }}/values/{{ .Environment.Name }}/secrets.{{ `{{ .Release.Name }}` }}.yaml'
common-values:
values:
- '{{ requiredEnv "PWD" }}/values/common/{{ `{{ .Release.Namespace }}` }}/{{ `{{ .Release.Name }}` }}/values.yaml'
common-values-tpl:
values:
- '{{ requiredEnv "PWD" }}/values/common/{{ `{{ .Release.Namespace }}` }}/{{ `{{ .Release.Name }}` }}/values.gotmpl'
env-values:
values:
- '{{ requiredEnv "PWD" }}/values/{{ .Environment.Name }}/{{ `{{ .Release.Namespace }}` }}/{{ `{{ .Release.Name }}` }}/values.yaml'
env-values-tpl:
values:
- '{{ requiredEnv "PWD" }}/values/{{ .Environment.Name }}/{{ `{{ .Release.Namespace }}` }}/{{ `{{ .Release.Name }}` }}/values.gotmpl'
env-secrets:
secrets:
- '{{ requiredEnv "PWD" }}/values/{{ .Environment.Name }}/{{ `{{ .Release.Namespace }}` }}/{{ `{{ .Release.Name }}` }}/secrets.yaml'
# ----------------------------
# -- Extensions
# ----------------------------
@ -47,7 +62,6 @@ templates:
alias: istio-gateway
values:
- '{{ requiredEnv "PWD" }}/values/common/values.istio-gateway.yaml'
ext-tcp-routes:
dependencies:
- chart: bedag/raw
@ -55,7 +69,20 @@ templates:
alias: traefik
values:
- '{{ requiredEnv "PWD" }}/values/common/values.tcp-route.yaml'
ext-udp-routes:
dependencies:
- chart: bedag/raw
version: 2.0.0
alias: traefik-udp
values:
- '{{ requiredEnv "PWD" }}/values/common/values.udp-route.yaml'
ext-traefik-middleware:
dependencies:
- chart: bedag/raw
version: 2.0.0
alias: middleware
values:
- '{{ requiredEnv "PWD" }}/values/common/values.middleware.yaml'
ext-istio-resource:
dependencies:
- chart: bedag/raw
@ -63,7 +90,6 @@ templates:
alias: istio
values:
- '{{ requiredEnv "PWD" }}/values/common/values.istio.yaml'
ext-certificate:
dependencies:
- chart: bedag/raw
@ -77,7 +103,7 @@ templates:
version: 2.0.0
alias: metallb
values:
- '{{ requiredEnv "PWD" }}/values/common/values.metallb.yaml'
- '{{ requiredEnv "PWD" }}/common/extensions/metallb.yaml'
service-monitor:
dependencies:
- chart: bedag/raw
@ -93,7 +119,6 @@ templates:
inherit:
- template: default-values/common-values
- template: default-env-values
ext-database:
dependencies:
- chart: bedag/raw
@ -101,7 +126,6 @@ templates:
alias: ext-database
values:
- '{{ requiredEnv "PWD" }}/values/common/values.database.yaml'
ext-secret:
dependencies:
- chart: bedag/raw
@ -109,3 +133,17 @@ templates:
alias: ext-secret
values:
- '{{ requiredEnv "PWD" }}/values/common/values.secret.yaml'
ext-cilium:
dependencies:
- chart: bedag/raw
version: 2.0.0
alias: ext-cilium
values:
- '{{ requiredEnv "PWD" }}/values/common/values.ext-cilium.yaml'
ext-self-signed-cert:
dependencies:
- chart: bedag/raw
version: 2.0.0
alias: ext-self-signed-cert
values:
- '{{ requiredEnv "PWD" }}/common/extensions/self-signed-cert.yaml'

View File

@ -0,0 +1,6 @@
registry: registry.badhouseplants.net/containers
registry_url: registry.badhouseplants.net
main_ip: 195.201.249.91
tools:
openebs:
enabled: true

View File

@ -0,0 +1,6 @@
registry: registry.ru.badhouseplants.net/containers
registry_url: registry.ru.badhouseplants.net
main_ip: 91.232.225.63
tools:
openebs:
enabled: false

View File

@ -0,0 +1,5 @@
namespaces:
kubePublic: kube-public
kubeSystem: kube-system
traefikSystem: traefik-system

View File

@ -0,0 +1,6 @@
bases:
- ./common/environments.yaml
- ./common/templates.yaml
- ./helmfiles/base.yaml
- ./helmfiles/system.yaml
- ./helmfiles/platform.yaml

18
helmfiles/base.yaml Normal file
View File

@ -0,0 +1,18 @@
releases:
# -- This one must be executed with --take-ownership at least once
- name: namespaces
chart: ./charts/namespaces
namespace: kube-system
createNamespace: false
inherit:
- template: env-values
- template: env-secrets
- name: roles
chart: ./charts/roles
namespace: kube-system
createNamespace: false
needs:
- kube-system/namespaces
inherit:
- template: env-values

50
helmfiles/platform.yaml Normal file
View File

@ -0,0 +1,50 @@
repositories:
- name: keel
url: https://keel-hq.github.io/keel/
- name: uptime-kuma
url: https://helm.irsigler.cloud
- name: external-dns
url: https://kubernetes-sigs.github.io/external-dns/
- name: minio-standalone
url: https://charts.min.io/
releases:
- name: external-dns
chart: external-dns/external-dns
labels:
layer: platform
version: 1.15.2
namespace: platform
inherit:
- template: common-values-tpl
- template: env-values
- template: env-secrets
- name: keel
chart: keel/keel
version: v1.0.5
labels:
layer: platform
namespace: platform
inherit:
- template: common-values-tpl
- name: uptime-kuma
chart: uptime-kuma/uptime-kuma
version: 2.21.2
namespace: platform
labels:
layer: platform
inherit:
- template: common-values-tpl
- template: env-values
- name: minio
chart: minio-standalone/minio
version: 5.4.0
namespace: platform
labels:
layer: platform
inherit:
- template: common-values-tpl
- template: env-values
- template: env-secrets

180
helmfiles/system.yaml Normal file
View File

@ -0,0 +1,180 @@
repositories:
- name: coredns
url: https://coredns.github.io/helm
- name: zot
url: https://zotregistry.dev/helm-charts/
- name: cilium
url: https://helm.cilium.io/
- name: metrics-server
url: https://kubernetes-sigs.github.io/metrics-server/
- name: jetstack
url: https://charts.jetstack.io
- name: metallb
url: https://metallb.github.io/metallb
- name: traefik
url: https://traefik.github.io/charts
- name: local-path-provisioner
url: git+https://github.com/rancher/local-path-provisioner@deploy/chart?ref=master
- name: kyverno
url: https://kyverno.github.io/kyverno/
- name: vmware-tanzu
url: https://vmware-tanzu.github.io/helm-charts/
- name: openebs
url: https://openebs.github.io/openebs
- name: istio
url: https://istio-release.storage.googleapis.com/charts
releases:
- name: coredns
chart: coredns/coredns
version: 1.39.1
namespace: kube-system
inherit:
- template: common-values-tpl
- name: cilium
chart: cilium/cilium
version: 1.17.2
namespace: kube-system
needs:
- kube-system/coredns
inherit:
- template: common-values
- template: common-values-tpl
- name: cert-manager
chart: jetstack/cert-manager
version: v1.17.1
namespace: kube-system
missingFileHandler: Warn
needs:
- kube-system/cilium
inherit:
- template: common-values
- template: common-values-tpl
- name: issuer
chart: ./charts/issuer
namespace: kube-system
missingFileHandler: Warn
needs:
- kube-system/cert-manager
inherit:
- template: common-values
- name: local-path-provisioner
chart: local-path-provisioner/local-path-provisioner
namespace: kube-system
inherit:
- template: common-values-tpl
- name: kyverno
chart: kyverno/kyverno
namespace: kyverno
version: 3.3.7
needs:
- kube-system/cilium
inherit:
- template: common-values-tpl
- name: kyverno-policies
chart: kyverno/kyverno-policies
namespace: kyverno
version: 3.3.4
needs:
- kyverno/kyverno
- name: custom-kyverno-policies
chart: ./kustomizations/kyverno/{{ .Environment.Name }}
namespace: kyverno
needs:
- kyverno/kyverno
- name: metallb
chart: metallb/metallb
namespace: kube-system
condition: base.enabled
version: 0.14.9
needs:
- registry/cluster-mirror
inherit:
- template: common-values
- template: common-values-tpl
- name: metallb-resources
chart: ./charts/metallb-resources
version: 2.0.0
condition: base.enabled
namespace: kube-system
needs:
- kube-system/metallb
inherit:
- template: common-values-tpl
- name: traefik
chart: traefik/traefik
version: 34.4.1
condition: base.enabled
namespace: kube-system
inherit:
- template: common-values-tpl
- template: common-values
- template: env-values
- name: cluster-mirror
chart: zot/zot
version: 0.1.67
createNamespace: false
installed: true
namespace: registry
needs:
- kube-system/cilium
inherit:
- template: common-values-tpl
- template: env-secrets
- name: metrics-server
chart: metrics-server/metrics-server
version: 3.12.2
namespace: kube-system
needs:
- registry/cluster-mirror
inherit:
- template: common-values-tpl
- name: openebs
chart: openebs/openebs
condition: tools.openebs.enabled
namespace: kube-system
version: 4.2.0
inherit:
- template: common-values-tpl
- template: env-values
- name: velero
chart: vmware-tanzu/velero
namespace: velero
version: 8.5.0
condition: velero.enabled
inherit:
- template: common-values-tpl
- template: env-values
- template: env-secrets
- name: istio-base
chart: istio/base
condition: istio.enabled
namespace: istio-system
version: 1.25.1
inherit:
- template: common-values
- name: istiod
chart: istio/istiod
condition: istio.enabled
namespace: istio-system
version: 1.25.1
inherit:
- template: common-values-tpl
needs:
- istio-system/istio-base

View File

@ -0,0 +1,127 @@
bases:
- ../../common/environments.yaml
- ../../common/templates.yaml
repositories:
- name: gitea
url: https://dl.gitea.io/charts/
- name: allangers-charts
url: ghcr.io/allanger/allangers-charts
oci: true
- name: badhouseplants-helm
url: git+https://gitea.badhouseplants.net/badhouseplants/badhouseplants-helm@charts?ref=main
- name: bedag
url: https://bedag.github.io/helm-charts/
#- name: open-strike
# url: git+https://gitea.badhouseplants.net/badhouseplants/open-strike-2.git@helm?ref=main
releases:
- name: gitea
chart: gitea/gitea
version: 11.0.0
namespace: applications
installed: false
inherit:
- template: default-env-values
- template: default-env-secrets
- template: ext-database
- template: ext-tcp-routes
- name: app-vaultwarden
chart: allangers-charts/vaultwarden
version: 3.1.1
namespace: org-badhouseplants
inherit:
- template: env-values
- template: env-secrets
- name: app-stalwart
chart: allangers-charts/stalwart
version: 1.0.1
namespace: org-badhouseplants
inherit:
- template: env-values
- template: env-secrets
- name: app-tandoor-recipes
installed: false
chart: allangers-charts/tandoor-recipes
version: 0.2.0
namespace: org-badhouseplants
inherit:
- template: env-values
- template: env-secrets
- template: ext-database
- name: app-tandoor-recipes
chart: allangers-charts/tandoor-recipes
version: 0.2.0
namespace: org-allanger
inherit:
- template: env-values
- template: env-secrets
- template: ext-database
- name: app-navidrome
chart: allangers-charts/navidrome
namespace: org-badhouseplants
version: 0.5.0
inherit:
- template: env-values
- template: ext-traefik-middleware
- name: app-navidrome-private
chart: allangers-charts/navidrome
namespace: org-badhouseplants
version: 0.5.0
inherit:
- template: env-values
- template: env-secrets
- name: app-gitea
chart: gitea/gitea
version: 11.0.0
namespace: org-badhouseplants
inherit:
- template: env-values
- template: env-secrets
- name: server-xray-public
chart: allangers-charts/server-xray
namespace: public-xray
version: 0.6.0
inherit:
- template: default-env-secrets
- template: default-env-values
- template: ext-tcp-routes
- template: ext-cilium
- template: ext-certificate
- name: server-xray-public-edge
chart: allangers-charts/server-xray
installed: true
namespace: public-xray
version: 0.6.0
inherit:
- template: default-env-secrets
- template: default-env-values
- template: ext-tcp-routes
- template: ext-cilium
- template: ext-certificate
- name: memos
chart: allangers-charts/memos
version: 0.3.0
namespace: applications
inherit:
- template: default-env-values
- template: ext-database
- name: badhouseplants-net
chart: badhouseplants-helm/badhouseplants-net
namespace: production
values:
- deployAnnotations:
keel.sh/policy: force
keel.sh/trigger: poll
keel.sh/initContainers: 'true'

View File

@ -0,0 +1,51 @@
bases:
- ../../common/environments.yaml
- ../../common/templates.yaml
repositories:
- name: allangers-charts
url: ghcr.io/allanger/allangers-charts
oci: true
- name: gabe565
url: ghcr.io/gabe565/charts
oci: true
- name: xray-docs
url: git+https://gitea.badhouseplants.net/badhouseplants/xray-docs.git@helm?ref=main
releases:
- name: qbittorrent
chart: gabe565/qbittorrent
version: 0.4.1
namespace: applications
inherit:
- template: default-env-values
- template: ext-secret
- template: ext-traefik-middleware
- name: vaultwardentest
chart: allangers-charts/vaultwarden
version: 3.1.1
namespace: applications
inherit:
- template: default-env-values
- template: default-env-secrets
- name: external-service-xray
chart: ../../kustomizations/external-service-xray
installed: true
namespace: public-xray
- name: server-xray-public
chart: allangers-charts/server-xray
namespace: public-xray
version: 0.6.0
inherit:
- template: default-env-secrets
- template: default-env-values
- template: ext-tcp-routes
- template: ext-cilium
- template: ext-certificate
- name: xray-docs
chart: xray-docs/xray-docs
installed: true
namespace: public-xray
inherit:
- template: default-env-values

View File

@ -0,0 +1,23 @@
bases:
- ../../common/environments.yaml
- ../../common/templates.yaml
repositories:
- name: allangers-charts
url: ghcr.io/allanger/allangers-charts
oci: true
releases:
- name: server-xray-public
chart: allangers-charts/server-xray
namespace: public-xray
version: 0.6.0
inherit:
- template: default-env-secrets
- template: default-env-values
- template: ext-self-signed-cert
- name: promtail
chart: grafana/promtail
namespace: promtail
version: 6.16.6
inherit:
- template: default-env-values
- template: default-env-secrets

View File

@ -0,0 +1,16 @@
bases:
- ../../common/environments.yaml
- ../../common/templates.yaml
repositories:
- name: allangers-charts
url: ghcr.io/allanger/allangers-charts
oci: true
releases:
- name: server-xray-public
chart: allangers-charts/server-xray
namespace: public-xray
version: 0.6.0
inherit:
- template: default-env-secrets
- template: default-env-values
- template: ext-self-signed-cert

View File

@ -1,154 +1,6 @@
{{ readFile "../../common/templates.yaml" }}
bases:
- ../../common/environments.yaml
- ../../common/templates.yaml
repositories:
- name: softplayer-oci
url: registry.badhouseplants.net/softplayer/helm
oci: true
- name: requarks
url: https://charts.js.wiki
- name: goauthentik
url: https://charts.goauthentik.io/
- name: ananace-charts
url: https://ananace.gitlab.io/charts
- name: gitea
url: https://dl.gitea.io/charts/
- name: mailu
url: https://mailu.github.io/helm-charts/
- name: minio
url: https://charts.min.io/
- name: bedag
url: https://bedag.github.io/helm-charts/
- name: grafana
url: https://grafana.github.io/helm-charts
- name: bitnami
url: https://charts.bitnami.com/bitnami
- name: allangers-charts
url: ghcr.io/allanger/allangers-charts
oci: true
releases:
- name: authentik
chart: goauthentik/authentik
version: 2024.6.1
namespace: applications
createNamespace: false
inherit:
- template: default-env-values
- template: default-env-secrets
- template: ext-database
- name: funkwhale
chart: ananace-charts/funkwhale
namespace: applications
version: 2.0.5
inherit:
- template: default-env-values
- template: default-env-secrets
- template: ext-database
- name: gitea
chart: gitea/gitea
version: 10.4.0
namespace: applications
inherit:
- template: default-env-values
- template: default-env-secrets
- template: ext-database
- template: ext-tcp-routes
- name: mailu
chart: mailu/mailu
namespace: applications
version: 2.0.0
inherit:
- template: default-env-values
- template: default-env-secrets
- template: ext-certificate
- template: ext-tcp-routes
- template: ext-database
- name: minio
chart: minio/minio
version: 5.2.0
namespace: applications
inherit:
- template: default-env-values
- template: default-env-secrets
- name: nrodionov
chart: bitnami/wordpress
version: 22.4.20
namespace: applications
inherit:
- template: default-env-values
- template: default-env-secrets
- template: ext-database
- name: openvpn-xor
chart: softplayer-oci/openvpn-xor
version: 1.2.0
namespace: applications
inherit:
- template: default-env-values
- template: ext-tcp-routes
- name: vaultwarden
chart: allangers-charts/vaultwarden
version: 2.1.0
namespace: applications
inherit:
- template: default-env-values
- template: default-env-secrets
- template: ext-database
- name: stalwart
chart: allangers-charts/stalwart
version: 0.1.0
namespace: applications
inherit:
- template: default-env-values
- template: ext-tcp-routes
#- name: vaultwardentest
# chart: allangers-charts/vaultwarden
# version: 2.1.0
# namespace: applications
# inherit:
# - template: default-env-values
# - template: default-env-secrets
- name: shadowsocks-libev
chart: softplayer-oci/shadowsocks-libev
namespace: applications
version: 0.3.1
inherit:
- template: default-env-secrets
- name: wikijs
chart: requarks/wiki
namespace: applications
installed: false
version: 2.2.21
inherit:
- template: default-env-values
- template: ext-database
- name: mealie
chart: softplayer-oci/mealie
namespace: applications
version: 0.3.0
inherit:
- template: default-env-values
- template: default-env-secrets
- template: ext-database
- name: grafana
chart: grafana/grafana
namespace: applications
version: 8.3.6
inherit:
- template: default-env-values
- template: default-env-secrets
helmfiles:
- ./helmfile-{{ `{{ .Environment.Name }}` }}.yaml

View File

@ -1,47 +1,38 @@
{{ readFile "../../common/templates.yaml" }}
bases:
- ../../common/environments.yaml
- ../../common/templates.yaml
repositories:
- name: bitnami
url: https://charts.bitnami.com/bitnami
url: registry-1.docker.io/bitnamicharts
oci: true
- name: bedag
url: https://bedag.github.io/helm-charts/
releases:
- name: mariadb
chart: bitnami/mariadb
namespace: databases
version: 19.0.2
inherit:
- template: default-env-values
- template: default-env-secrets
- name: redis
chart: bitnami/redis
namespace: databases
version: 19.6.3
condition: redis.enabled
version: 20.11.3
inherit:
- template: default-env-values
- template: default-env-secrets
- name: postgres16
labels:
bundle: postgres
namespace: databases
chart: bitnami/postgresql
version: 15.5.19
condition: postgres16.enabled
version: 15.5.38
inherit:
- template: default-env-values
- template: default-env-secrets
- name: postgres16-gitea
- name: postgres17
labels:
bundle: postgres
namespace: databases
chart: bitnami/postgresql
version: 15.5.19
condition: postgres17.enabled
version: 16.3.4
inherit:
- template: default-env-values
- template: default-env-secrets

View File

@ -1,12 +1,9 @@
{{ readFile "../../common/templates.yaml" }}
bases:
- ../../common/environments.yaml
- ../../common/templates.yaml
repositories:
- name: argo
url: https://argoproj.github.io/argo-helm
releases:
- name: badhouseplants
namespace: platform

View File

@ -1,20 +1,28 @@
---
{{ readFile "../../common/templates.yaml" }}
bases:
- ../../common/environments.yaml
- ../../common/templates.yaml
repositories:
- name: bedag
url: https://bedag.github.io/helm-charts/
- name: minecraft
url: https://itzg.github.io/minecraft-server-charts/
- name: allangers-charts
url: ghcr.io/allanger/allangers-charts
oci: true
releases:
- name: minecraft
chart: minecraft/minecraft
namespace: games
version: 4.20.0
version: 4.25.1
inherit:
- template: ext-tcp-routes
- template: default-env-values
- template: default-env-secrets
- name: team-fortress-2
chart: allangers-charts/team-fortress-2
namespace: team-fortress-2
version: 0.1.2
inherit:
- template: ext-tcp-routes
- template: default-env-values

View File

@ -1,21 +1,41 @@
{{ readFile "../../common/templates.yaml" }}
bases:
- ../../common/environments.yaml
- ../../common/templates.yaml
repositories:
- name: bedag
url: https://bedag.github.io/helm-charts/
- name: prometheus-community
url: https://prometheus-community.github.io/helm-charts
- name: grafana
url: https://grafana.github.io/helm-charts
releases:
- name: prometheus
chart: prometheus-community/kube-prometheus-stack
namespace: monitoring
version: 61.3.2
namespace: observability
version: 70.1.1
inherit:
- template: default-env-values
- template: default-env-secrets
- template: crd-management-hook
- name: grafana
chart: grafana/grafana
namespace: observability
version: 8.10.4
installed: true
inherit:
- template: default-env-values
- template: default-env-secrets
- name: loki
chart: grafana/loki
namespace: observability
version: 6.28.0
inherit:
- template: default-env-values
- template: ext-secret
- template: ext-traefik-middleware
- name: promtail
chart: grafana/promtail
namespace: observability
version: 6.16.6
inherit:
- template: default-env-values

View File

@ -1,20 +1,34 @@
{{ readFile "../../common/templates.yaml" }}
bases:
- ../../common/environments.yaml
- ../../common/templates.yaml
repositories:
- name: woodpecker
url: https://woodpecker-ci.org
- name: renovate
url: https://docs.renovatebot.com/helm-charts
- name: bedag
url: https://bedag.github.io/helm-charts/
releases:
- name: woodpecker-ci
chart: woodpecker/woodpecker
namespace: pipelines
version: 1.5.0
version: 3.0.6
inherit:
- template: ext-database
- template: default-env-values
- template: default-env-secrets
- name: renovate-gitea
chart: renovate/renovate
namespace: pipelines
version: 39.208.1
inherit:
- template: default-env-values
- template: default-env-secrets
- name: renovate-github
chart: renovate/renovate
installed: false
namespace: pipelines
version: 39.208.1
inherit:
- template: default-env-values
- template: default-env-secrets

View File

@ -1,7 +1,6 @@
{{ readFile "../../common/templates.yaml" }}
bases:
- ../../common/environments.yaml
- ../../common/templates.yaml
repositories:
- name: argo
@ -12,45 +11,109 @@ repositories:
url: https://zotregistry.dev/helm-charts/
- name: bedag
url: https://bedag.github.io/helm-charts/
- name: percona
url: https://percona.github.io/percona-helm-charts/
- name: crossplane-stable
url: https://charts.crossplane.io/stable
- name: goauthentik
url: https://charts.goauthentik.io/
- name: minio-standalone
url: https://charts.min.io/
- name: kyverno
url: https://kyverno.github.io/kyverno/
- name: external-dns
url: https://kubernetes-sigs.github.io/external-dns/
- name: keel
url: https://keel-hq.github.io/keel/
- name: uptime-kuma
url: https://helm.irsigler.cloud
releases:
- name: argocd
chart: argo/argo-cd
namespace: platform
version: 7.3.6
inherit:
- template: default-env-values
- template: default-env-secrets
- name: db-operator
namespace: platform
chart: db-operator/db-operator
version: 1.27.2
version: 1.34.0
- name: db-instances
chart: db-operator/db-instances
namespace: platform
needs:
- platform/db-operator
version: 2.3.4
version: 2.4.0
inherit:
- template: default-env-values
- template: default-env-secrets
- name: zot
chart: zot/zot
version: 0.1.57
version: 0.1.67
createNamespace: false
installed: true
namespace: platform
condition: workload.enabled
inherit:
- template: default-env-values
- template: default-env-secrets
- name: authentik
chart: goauthentik/authentik
version: 2025.2.2
namespace: platform
createNamespace: false
condition: workload.enabled
needs:
- platform/db-operator
inherit:
- template: default-env-values
- template: default-env-secrets
- template: ext-database
- name: minio
chart: minio-standalone/minio
version: 5.4.0
namespace: platform
inherit:
- template: default-env-values
- template: default-env-secrets
- name: pg-operator
chart: percona/pg-operator
installed: false
version: 2.4.0
createNamespace: false
- name: kyverno
chart: kyverno/kyverno
namespace: kyverno
labels:
bootstrap: true
version: 3.3.7
- name: kyverno-policies
chart: kyverno/kyverno-policies
namespace: kyverno
labels:
bootstrap: true
version: 3.3.4
needs:
- kyverno/kyverno
- name: custom-kyverno-policies
chart: "../../kustomizations/kyverno/{{ .Environment.Name }}"
namespace: kyverno
labels:
bootstrap: true
needs:
- kyverno/kyverno
- name: external-dns
chart: external-dns/external-dns
version: 1.15.2
namespace: platform
inherit:
- template: default-env-values
- template: default-env-secrets
- name: keel
chart: keel/keel
version: v1.0.5
namespace: platform
- name: uptime-kuma
chart: uptime-kuma/uptime-kuma
version: 2.21.2
namespace: platform
inherit:
- template: default-env-values

View File

@ -1,49 +0,0 @@
{{ readFile "../../common/templates.yaml" }}
bases:
- ../../common/environments.yaml
repositories:
- name: longhorn
url: https://charts.longhorn.io
- name: rook-release
url: https://charts.rook.io/release
- name: local-path-provisioner
url: git+https://github.com/rancher/local-path-provisioner@deploy/chart?ref=v0.0.28
releases:
- name: rook-ceph
chart: rook-release/rook-ceph
installed: true
namespace: rook-ceph
version: v1.14.9
inherit:
- template: default-env-values
- name: rook-ceph-cluster
chart: rook-release/rook-ceph-cluster
installed: true
namespace: rook-ceph
version: v1.14.9
needs:
- rook-ceph/rook-ceph
inherit:
- template: default-env-values
- name: longhorn
chart: longhorn/longhorn
namespace: longhorn-system
installed: false
version: 1.6.2
inherit:
- template: default-env-values
- template: default-env-secrets
- template: ext-secret
- name: local-path-provisioner
chart: local-path-provisioner/local-path-provisioner
installed: false
createNamespace: false
namespace: kube-system
inherit:
- template: default-env-values

View File

@ -1,15 +1,14 @@
{{ readFile "../../common/templates.yaml" }}
bases:
- ../../common/environments.yaml
- ../../common/templates.yaml
repositories:
- name: bedag
url: https://bedag.github.io/helm-charts/
- name: metrics-server
url: https://kubernetes-sigs.github.io/metrics-server/
- name: jetstack
url: https://charts.jetstack.io
- name: bedag
url: https://bedag.github.io/helm-charts/
- name: metallb
url: https://metallb.github.io/metallb
- name: traefik
@ -18,111 +17,36 @@ repositories:
url: https://coredns.github.io/helm
- name: cilium
url: https://helm.cilium.io/
- name: bedag
url: https://bedag.github.io/helm-charts/
- name: piraeus-charts
url: https://piraeus.io/helm-charts/
- name: vmware-tanzu
url: https://vmware-tanzu.github.io/helm-charts/
- name: local-path-provisioner
url: git+https://github.com/rancher/local-path-provisioner@deploy/chart?ref=master
- name: istio
url: https://istio-release.storage.googleapis.com/charts
- name: zot
url: https://zotregistry.dev/helm-charts/
releases:
- name: namespaces
chart: '{{ requiredEnv "PWD" }}/charts/namespaces/chart'
namespace: kube-public
createNamespace: false
inherit:
- template: default-env-values
- name: roles
chart: '{{ requiredEnv "PWD" }}/charts/roles'
namespace: kube-public
createNamespace: false
needs:
- kube-public/namespaces
inherit:
- template: default-env-values
- name: coredns
chart: coredns/coredns
version: 1.31.0
namespace: kube-system
inherit:
- template: default-env-values
- name: snapshot-controller
chart: piraeus-charts/snapshot-controller
version: 3.0.5
namespace: kube-system
- name: istio-base
chart: istio/base
condition: istio.enabled
namespace: istio-system
inherit:
- template: crd-management-hook
- name: cilium
chart: cilium/cilium
version: 1.16.0
namespace: kube-system
- name: istio-ingressgateway
chart: istio/gateway
condition: istio.enabled
installed: false
namespace: istio-system
needs:
- kube-system/coredns
- istio-system/istio-base
inherit:
- template: default-env-values
- name: cert-manager
chart: jetstack/cert-manager
version: 1.15.2
namespace: kube-system
- name: istiod
chart: istio/istiod
condition: istio.enabled
namespace: istio-system
inherit:
- template: default-env-values
needs:
- kube-system/cilium
inherit:
- template: default-env-values
- name: issuer
chart: '{{ requiredEnv "PWD" }}/charts/issuer'
namespace: kube-public
needs:
- kube-system/cert-manager
inherit:
- template: default-env-values
- name: metrics-server
chart: metrics-server/metrics-server
version: 3.12.1
namespace: kube-system
needs:
- kube-system/cilium
inherit:
- template: default-common-values
- name: metallb
chart: metallb/metallb
namespace: kube-system
version: 0.14.8
needs:
- kube-system/cilium
inherit:
- template: default-env-values
- name: metallb-resources
chart: bedag/raw
version: 2.0.0
namespace: kube-system
needs:
- kube-system/metallb
inherit:
- template: ext-metallb
- template: default-env-values
- name: traefik
chart: traefik/traefik
version: 30.0.2
namespace: kube-system
needs:
- kube-system/cilium
inherit:
- template: default-env-values
- name: velero
chart: vmware-tanzu/velero
namespace: kube-system
version: 7.1.4
inherit:
- template: default-env-values
- template: default-env-secrets
- istio-system/istio-base

View File

@ -0,0 +1,23 @@
apiVersion: v1
kind: Service
metadata:
name: xray-external-proxy
spec:
externalName: xray-public.badhouseplants.net
sessionAffinity: None
type: ExternalName
---
apiVersion: traefik.io/v1alpha1
kind: IngressRouteTCP
metadata:
name: xray-external-proxy
spec:
entryPoints:
- xray-public
routes:
- match: HostSNI(`*`)
services:
- name: xray-external-proxy
nativeLB: true
port: 27015

View File

@ -0,0 +1,20 @@
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: add-applied-by
spec:
background: false
rules:
- name: add-applied-by
match:
any:
- resources:
kinds:
- '*'
namespaces:
- org-*
mutate:
patchStrategicMerge:
metadata:
annotations:
applied-by: "{{ request.userInfo.username }}"

View File

@ -0,0 +1,58 @@
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: replace-storage-class-by-openebs
spec:
rules:
- name: local-path-fix
match:
any:
- resources:
kinds:
- PersistentVolumeClaim
namespaces:
- registry
mutate:
patchStrategicMerge:
metadata:
annotations:
volume.kubernetes.io/selected-node: bordeaux
- name: replace-storage-class
match:
any:
- resources:
kinds:
- PersistentVolumeClaim
namespaces:
- games
- application
- platform
- pipelines
mutate:
patchStrategicMerge:
metadata:
annotations:
volume.beta.kubernetes.io/storage-class: openebs-hostpath
spec:
storageClassName: openebs-hostpath
accessModes:
- ReadWriteOnce
- name: remove-unwanted-annotations
match:
any:
- resources:
kinds:
- PersistentVolumeClaim
namespaces:
- games
mutate:
patchesJson6902: |-
- path: "/metadata/annotations/volume.beta.kubernetes.io~1storage-class"
op: replace
value: openebs-hostpath
- path: "/metadata/annotations/volume.beta.kubernetes.io~1storage-provisioner"
op: replace
value: openebs.io/local
- path: "/metadata/annotations/volume.kubernetes.io~1storage-provisioner"
op: replace
value: openebs.io/local

View File

@ -0,0 +1,21 @@
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: append-node-name-to-pvc
spec:
rules:
- name: replace-storage-class
match:
any:
- resources:
kinds:
- PersistentVolumeClaim
namespaces:
- applications
- platform
- registry
mutate:
patchStrategicMerge:
metadata:
annotations:
volume.kubernetes.io/selected-node: yekaterinburg

18
manifests/app.yaml Normal file
View File

@ -0,0 +1,18 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: test-apps
namespace: platform
spec:
destination:
namespace: default
server: https://kubernetes.default.svc
project: default
syncPolicy:
automated:
prune: true
source:
path: manifests/postgresql-15.5.21.tgz
repoURL: https://gitea.badhouseplants.net/allanger/k8s-deployment.git
targetRevision: main
helm: {}

12
manifests/bucket.yaml Normal file
View File

@ -0,0 +1,12 @@
apiVersion: minio.crossplane.io/v1
kind: Bucket
metadata:
creationTimestamp: null
name: bucket-local-dev
spec:
forProvider:
region: us-east-1
providerConfigRef:
name: provider-config
status:
atProvider: {}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,263 @@
apiVersion: "cilium.io/v2"
kind: CiliumNetworkPolicy
metadata:
name: "cilium-policy-allow-google"
namespace: public-xray
spec:
endpointSelector:
matchLabels:
app.kubernetes.io/instance: server-xray-public
app.kubernetes.io/name: server-xray
egress:
- toPorts:
- ports:
- port: "53"
protocol: ANY
- toPorts:
- ports:
- port: "80"
protocol: ANY
- port: "8080"
protocol: ANY
- port: "443"
protocol: ANY
- port: "27015"
protocol: ANY
- port: "45000"
endPort: 60000
protocol: UDP
- port: "6672"
protocol: UDP
- port: "61455"
protocol: UDP
- port: "61457"
protocol: UDP
- port: "61456"
protocol: UDP
- port: "61458"
protocol: UDP
toEntities:
- world
#- host
#- remote-node
icmps:
- fields:
- type: EchoRequest
family: IPv4
- type: EchoReply
family: IPv4
egressDeny:
- toCIDR:
- 93.158.213.92/32
- 93.158.213.92/32
- 185.243.218.213/32
- 91.216.110.53/32
- 23.157.120.14/32
- 94.243.222.100/32
- 208.83.20.20/32
- 156.234.201.18/32
- 209.141.59.16/32
- 34.89.51.235/32
- 109.201.134.183/32
- 83.102.180.21/32
- 185.230.4.150/32
- 45.9.60.30/32
- 5.181.156.41/32
- 156.234.201.18/32
- 34.89.51.235/32
- 83.6.102.25/32
- 51.222.82.36/32
- 125.227.79.123/32
- 193.42.111.57/32
- 135.125.202.143/32
- 176.56.7.44/32
- 185.87.45.163/32
- 181.214.58.63/32
- 143.198.64.177/32
- 5.255.124.190/32
- 52.58.128.163/32
- 15.204.57.168/32
- 34.94.76.146/32
- 211.23.142.127/32
- 64.23.195.62/32
- 23.153.248.83/32
- 82.156.24.219/32
- 37.235.176.37/32
- 176.123.1.180/32
- 35.227.59.57/32
- 62.210.114.129/32
- 185.216.179.62/32
- 34.94.76.146/32
- 121.199.16.229/32
- 23.163.56.66/32
- 176.99.7.59/32
- 207.241.231.226/32
- 207.241.226.111/32
- 27.151.84.136/32
- 104.244.77.14/32
- 5.102.159.190/32
- 184.61.17.58/32
- 125.227.79.123/32
- 181.214.58.63/32
- 95.217.167.10/32
- 159.148.57.222/32
- 15.204.57.168/32
- 211.23.142.127/32
- 34.94.76.146/32
- 187.56.163.73/32
- 109.71.253.37/32
- 5.182.86.242/32
- 104.244.77.14/32
- 190.146.242.81/32
- 89.110.76.229/32
- 138.124.183.78/32
- 209.126.11.233/32
- 167.99.185.219/32
- 37.59.48.81/32
- 27.151.84.136/32
- 142.132.183.104/32
- 193.53.126.151/32
- 74.48.17.122/32
- 93.158.213.92/32
- 156.234.201.18/32
- 35.227.59.57/32
- 34.89.51.235/32
- 34.94.76.146/32
- 184.61.17.58/32
- 125.227.79.123/32
- 104.21.58.176/32
- 172.67.162.102/32
- 181.214.58.63/32
- 93.185.165.29/32
- 95.217.167.10/32
- 159.148.57.222/32
- 15.204.57.168/32
- 211.75.210.220/32
- 125.227.79.123/32
- 211.23.142.127/32
- 172.67.165.72/32
- 104.21.57.182/32
- 35.227.59.57/32
- 34.89.51.235/32
- 34.94.76.146/32
- 187.56.163.73/32
- 109.71.253.37/32
- 5.182.86.242/32
- 104.244.77.14/32
- 193.53.126.151/32
- 104.19.22.31/32
- 104.19.22.22/32
- 104.19.22.27/32
- 104.19.22.23/32
- 104.19.22.30/32
- 104.19.22.24/32
- 104.19.22.26/32
- 104.19.22.29/32
- 104.19.22.32/32
- 104.19.22.28/32
- 104.19.22.25/32
- 74.48.17.122/32
- 184.61.17.58/32
- 104.21.62.230/32
- 172.67.139.235/32
- 172.67.135.244/32
- 104.21.26.114/32
- 104.21.72.244/32
- 172.67.136.175/32
- 172.67.183.130/32
- 104.21.64.112/32
- 104.26.10.105/32
- 104.26.11.105/32
- 172.67.70.119/32
- 172.67.144.128/32
- 104.21.71.114/32
- 172.67.161.130/32
- 104.21.65.89/32
- 172.67.156.75/32
- 104.21.40.186/32
- 65.21.91.32/32
- 184.61.17.58/32
- 104.21.82.111/32
- 172.67.200.173/32
- 104.21.13.129/32
- 172.67.200.14/32
- 104.21.89.147/32
- 172.67.160.224/32
- 172.67.139.235/32
- 104.21.62.230/32
- 93.158.213.92/32
- 185.243.218.213/32
- 91.216.110.53/32
- 23.157.120.14/32
- 94.243.222.100/32
- 208.83.20.20/32
- 156.234.201.18/32
- 209.141.59.16/32
- 34.94.76.146/32
- 35.227.59.57/32
- 34.89.51.235/32
- 109.201.134.183/32
- 83.102.180.21/32
- 185.230.4.150/32
- 45.9.60.30/32
- 5.181.156.41/32
- 83.6.102.25/32
- 54.39.48.3/32
- 51.222.82.36/32
- 125.227.79.123/32
- 193.42.111.57/32
- 135.125.202.143/32
- 176.56.7.44/32
- 185.87.45.163/32
- 93.185.165.29/32
- 181.214.58.63/32
- 143.198.64.177/32
- 5.255.124.190/32
- 52.58.128.163/32
- 15.204.57.168/32
- 35.227.59.57/32
- 34.89.51.235/32
- 34.94.76.146/32
- 211.23.142.127/32
- 211.75.210.220/32
- 125.227.79.123/32
- 64.23.195.62/32
- 51.81.222.188/32
- 23.153.248.83/32
- 82.156.24.219/32
- 37.235.176.37/32
- 51.15.41.46/32
- 176.123.1.180/32
- 104.244.77.87/32
- 34.94.76.146/32
- 34.89.51.235/32
- 35.227.59.57/32
- 62.210.114.129/32
- 185.216.179.62/32
- 34.94.76.146/32
- 34.89.51.235/32
- 35.227.59.57/32
- 121.199.16.229/32
- 35.227.59.57/32
- 34.89.51.235/32
- 34.94.76.146/32
- 23.163.56.66/32
- 176.99.7.59/32
- 207.241.231.226/32
- 207.241.226.111/32
- 27.151.84.136/32
- 51.159.54.68/32
- 104.244.77.14/32
- 5.102.159.190/32
- 190.146.242.81/32
- 89.110.76.229/32
- 89.47.160.50/32
- 138.124.183.78/32
- 209.126.11.233/32
- 167.99.185.219/32
- 27.151.84.136/32
- 37.59.48.81/32
- 27.151.84.136/32
- 142.132.183.104/32
- 159.148.57.222/32
- 159.148.57.222/32

View File

@ -0,0 +1,17 @@
apiVersion: "cilium.io/v2"
kind: CiliumNetworkPolicy
metadata:
name: "cilium-policy-allow-dns"
namespace: public-xray
spec:
endpointSelector:
matchLabels:
app.kubernetes.io/instance: server-xray-public
app.kubernetes.io/name: server-xray
egress:
- toPorts:
- ports:
- port: "53"
protocol: ANY
- toCIDR:
- 1.1.1.1/32

15
manifests/debug.yaml Normal file
View File

@ -0,0 +1,15 @@
apiVersion: v1
kind: Pod
metadata:
name: debug
spec:
containers:
- args:
- -c
- sleep 1000
command:
- sh
image: ubuntu:latest
imagePullPolicy: Always
name: server-xray
dnsPolicy: ClusterFirst

View File

@ -0,0 +1,10 @@
kind: VolumeSnapshotClass
apiVersion: snapshot.storage.k8s.io/v1
metadata:
name: longhorn-snapshot-vsc
labels:
velero.io/csi-volumesnapshot-class: "true"
driver: driver.longhorn.io
deletionPolicy: Delete
parameters:
type: bak

View File

@ -0,0 +1,7 @@
apiVersion: v1
stringData:
AWS_ACCESS_KEY_ID: minio
AWS_SECRET_ACCESS_KEY: minio123
kind: Secret
metadata:
name: minio-secret

View File

@ -0,0 +1,166 @@
apiVersion: tf.upbound.io/v1beta1
kind: ProviderConfig
metadata:
name: minio
spec:
configuration: |
provider minio {
// required
minio_server = "s3-new.badhouseplants.net:443"
minio_region = "us-east-1"
minio_ssl = "true"
}
terraform {
backend "kubernetes" {
secret_suffix = "minio-tf-state"
namespace = "platform"
in_cluster_config = true
}
required_providers {
minio = {
source = "aminueza/minio"
version = "2.4.3"
}
}
}
---
apiVersion: tf.upbound.io/v1beta1
kind: Workspace
metadata:
name: example-bucket-creation
spec:
providerConfigRef:
name: minio
writeConnectionSecretToRef:
namespace: platform
name: tf-minio-state-output
forProvider:
source: Inline
env:
- name: MINIO_PASSWORD
secretKeyRef:
namespace: platform
name: minio-secret
key: AWS_SECRET_ACCESS_KEY
- name: MINIO_USER
secretKeyRef:
namespace: platform
name: minio-secret
key: AWS_ACCESS_KEY_ID
module: |
resource "minio_s3_bucket" "states" {
bucket = "states"
}
resource "minio_iam_user" "terraform" {
name = "terraform"
force_destroy = true
tags = {
service = "terraform"
}
}
resource "minio_iam_policy" "terraform" {
name = "state-terraform"
policy= <<EOF
{
"Version":"2012-10-17",
"Statement": [
{
"Sid":"terraform",
"Effect": "Allow",
"Action": ["s3:PutObject"],
"Resource": "arn:aws:s3:::state-terraform-s3/*"
}
]
}
EOF
}
resource "minio_iam_user_policy_attachment" "terraform" {
user_name = minio_iam_user.terraform.id
policy_name = minio_iam_policy.terraform.id
}
output "MINIO_USERNAME" {
value = minio_iam_user.terraform.id
}
output "MINIO_PASSWORD" {
value = minio_iam_user.terraform.secret
sensitive = true
}
---
apiVersion: tf.upbound.io/v1beta1
kind: ProviderConfig
metadata:
name: minio-backend
spec:
configuration: |
provider minio {
// required
minio_server = "s3-new.badhouseplants.net:443"
minio_region = "us-east-1"
minio_ssl = "true"
}
terraform {
backend "s3" {
bucket = "states"
key = "test"
region = "us-east-1"
endpoint = "https://s3-new.badhouseplants.net"
use_path_style = true
skip_credentials_validation = true
skip_metadata_api_check = true
skip_region_validation = true
}
required_providers {
minio = {
source = "aminueza/minio"
version = "2.4.3"
}
}
}
---
apiVersion: tf.upbound.io/v1beta1
kind: Workspace
metadata:
name: try-backend
spec:
providerConfigRef:
name: minio-backend
writeConnectionSecretToRef:
namespace: platform
name: tf-minio-state-output
forProvider:
source: Inline
env:
- name: MINIO_PASSWORD
secretKeyRef:
namespace: platform
name: tf-minio-state-output
key: MINIO_PASSWORD
- name: MINIO_USER
secretKeyRef:
namespace: platform
name: tf-minio-state-output
key: MINIO_USERNAME
- name: AWS_ACCESS_KEY_ID
secretKeyRef:
namespace: platform
name: minio-secret
key: AWS_ACCESS_KEY_ID
- name: AWS_SECRET_ACCESS_KEY
secretKeyRef:
namespace: platform
name: minio-secret
key: AWS_SECRET_ACCESS_KEY
module: |
resource "minio_s3_bucket" "states" {
bucket = "states-test"
}

View File

@ -0,0 +1,32 @@
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: default-deny-all
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
---
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: allow-internet-only
spec:
podSelector: {}
policyTypes:
- Egress
egress:
- to:
ports:
- protocol: TCP
port: 53
- protocol: UDP
port: 53
- to:
- ipBlock:
cidr: 0.0.0.0/0
except:
- 10.0.0.0/8
- 192.168.0.0/16
- 172.16.0.0/20

8
manifests/peerauth.yaml Normal file
View File

@ -0,0 +1,8 @@
apiVersion: security.istio.io/v1
kind: PeerAuthentication
metadata:
name: default
namespace: public-xray
spec:
mtls:
mode: STRICT

4
manifests/values.yaml Normal file
View File

@ -0,0 +1,4 @@
rsync:
nodeName: copenhagen
sshd:
nodeName: copenhagen

11
renovate.json Normal file
View File

@ -0,0 +1,11 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended"
],
"helmfile": {
"fileMatch": [
"(^|/)helmfile.*\\.ya?ml(?:\\.gotmpl)?$"
]
}
}

41
scripts/add_xray_user.sh Executable file
View File

@ -0,0 +1,41 @@
#!/usr/bin/env bash
set -e
CONFIG=$(sops -d ./values/badhouseplants/secrets.server-xray-public.yaml | yq '.files.config.entries."config.json".data' | jq)
read -p "Enter fullname (Ivan Ivanov): " FULLNAME
read -p "Enter email (ivan@fakemail.net): " EMAIL
PASS=$(openssl rand -base64 10)
CONFIG_ENTRY=$(cat <<-EndOfMessage
[
{
"id": "${FULLNAME} ${PASS}",
"flow": "xtls-rprx-vision",
"level": 0,
"email": "${EMAIL}"
}
]
EndOfMessage
)
echo "You're about to add a following entry to the config, is it correct?"
echo "${CONFIG_ENTRY}"
read -p "Type 'YES' to continue " AGREE
if [ "${AGREE}" != "YES" ]; then echo "Alright, goodbye" && exit 1; fi
NEW_CONFIG=$(jq '.inbounds[].settings.clients += '"${CONFIG_ENTRY}"'' <<< "${CONFIG}" | jq)
echo $NEW_CONFIG
echo "Does the diff looks correct?"
diff <(echo $CONFIG) <(echo $NEW_CONFIG) || true
read -p "Type 'YES' to continue " AGREE
if [ "${AGREE}" != "YES" ]; then echo "Alright, goodbye" && exit 1; fi
WORKDIR=$(mktemp -d)
export NEW_CONFIG
sops -d ./values/badhouseplants/secrets.server-xray-public.yaml | yq '.files.config.entries."config.json".data = strenv(NEW_CONFIG)' > ./values/badhouseplants/secrets.server-xray-public.yaml && sops -e ./values/badhouseplants/secrets.server-xray-public.yaml
helmfile -e badhouseplants -f ./installations/applications -l name=server-xray-public diff

32
scripts/find_unused_values.sh Executable file
View File

@ -0,0 +1,32 @@
#!/usr/bin/env bash
if ! [ -z $DISABLE_ADDITIONAL_CHECKS ]; then
echo "Check is disabled"
exit 0
fi
# -- Get all the envs from the current helmfile installation
ENVS=$(yq '.environments | keys | .[]' ./common/environments.yaml)
ALL_VALUES=$(find ./values -type f)
USED_VALUES=""
for ENV in $ENVS; do
USED_VALUES="$(helmfile --log-level error -e $ENV build | yq '.releases[].values[]'):$USED_VALUES"
USED_VALUES="$(helmfile --log-level error -e $ENV build| yq '.releases[].secrets[]'):$USED_VALUES"
done
UNUSED_VALUES=""
for FILE in $ALL_VALUES; do
if [[ ${USED_VALUES} != *"$FILE"* ]]; then
UNUSED_VALUES="${FILE}\n${UNUSED_VALUES}"
fi
done
if [ -z "${UNUSED_VALUES}" ]; then
exit 0;
fi
printf "\n ** There are unused values in the repo ** \n"
printf "${UNUSED_VALUES}\n"
printf "Please remove them from the repo to keep it clean"
exit 1

43
scripts/get_public_trackers.sh Executable file
View File

@ -0,0 +1,43 @@
#!/usr/bin/env bash
curl https://raw.githubusercontent.com/ngosang/trackerslist/refs/heads/master/trackers_all_ip.txt | sed -e 's/.*:\/\/\(.*\):.*/\1/' | sed -e '/^[[:space:]]*$/d'
for http in $(curl https://raw.githubusercontent.com/ngosang/trackerslist/refs/heads/master/trackers_all_http.txt| sed -e 's/.*:\/\/\(.*\):.*/\1/' | sed -e '/^[[:space:]]*$/d'); do
RES=$(dig +short $http)
if [[ "${RES}" =~ [a-z] ]]; then
RES=$(dig +short $RES)
fi
for res in $RES; do
echo $res;
done
done
for http in $(curl https://raw.githubusercontent.com/ngosang/trackerslist/refs/heads/master/trackers_all_https.txt| sed -e 's/.*:\/\/\(.*\):.*/\1/' | sed -e '/^[[:space:]]*$/d'); do
RES=$(dig +short $http)
if [[ "${RES}" =~ [a-z] ]]; then
RES=$(dig +short $RES)
fi
for res in $RES; do
echo $res;
done
done
for http in $(curl https://raw.githubusercontent.com/ngosang/trackerslist/refs/heads/master/trackers_all_udp.txt| sed -e 's/.*:\/\/\(.*\):.*/\1/' | sed -e '/^[[:space:]]*$/d'); do
RES=$(dig +short $http)
if [[ "${RES}" =~ [a-z] ]]; then
RES=$(dig +short $RES)
fi
for res in $RES; do
echo $res;
done
done
for http in $(curl https://raw.githubusercontent.com/ngosang/trackerslist/refs/heads/master/trackers_all_ws.txt| sed -e 's/.*:\/\/\(.*\):.*/\1/' | sed -e '/^[[:space:]]*$/d'); do
RES=$(dig +short $http)
if [[ "${RES}" =~ [a-z] ]]; then
RES=$(dig +short $RES)
fi
for res in $RES; do
echo $res;
done
done

20
scripts/lint_all_envs.sh Executable file
View File

@ -0,0 +1,20 @@
#!/usr/bin/env bash
if ! [ -z $DISABLE_ADDITIONAL_CHECKS ]; then
echo "Check is disabled"
exit 0
fi
# -- Get all the envs from the current helmfile installation
ENVS=$(yq '.environments | keys | .[]' ./common/environments.yaml)
FAILED_LINTERS=""
for ENV in $ENVS; do
if ! helmfile -e $ENV lint; then FAILED_LINTERS="$ENV\n$FAILED_LINTERS"; fi
done
if ! [ -z $FAILED_LINTERS ]; then
printf "\n\nSome env can't pass the linter:\n $FAILED_LINTERS"
exit 1
fi
echo "The linter is happy"

18
scripts/sops_check.sh Executable file
View File

@ -0,0 +1,18 @@
#!/usr/bin/env bash
set -e
# -- Default exit status, that should be thrown
# -- when all the secrets are encrypted
EXIT_STATUS=0
for secrets in $(find . -type 'f' -name 'secrets.*'); do
echo "Checking ${secrets}"
STATUS=$(sops filestatus $secrets)
if [[ "${STATUS}" == *"false"* ]]; then
echo "ERROR: Found an unencrypted secret: $secrets"
EXIT_STATUS=1
sops encrypt -i $secrets;
fi;
done
exit "${EXIT_STATUS}"

6
scripts/sops_dec_enc.sh Executable file
View File

@ -0,0 +1,6 @@
#!/usr/bin/env bash
for file in $(find values -type f -depth 2 -name "secrets.*"); do
echo $file
sops decrypt -i $file
sops encrypt -i $file
done

4
scripts/sops_rotate.sh Executable file
View File

@ -0,0 +1,4 @@
#!/usr/bin/env bash
for file in $(find values -type f -depth 2 -name "secrets.*"); do sops updatekeys $file; done
for file in $(find values -type f -depth 2 -name "secrets.*"); do sops rotate -i $file; done

View File

@ -0,0 +1,21 @@
defaultRegcred: ENC[AES256_GCM,data:lsqr2fBEosOQqYLBwps1hmgFs90zkzbdHpO8UwJWcMl1/CGkyzroACqHkL8taaOnnvwWwadIL8FU3382jamw0Xk5O51bFSBbCxTs3xd4ibwe39ha5YI6YQDHADDb/u1Yw4TctJ/h9xykXHDOL4foE5Z860e16vtMiVvniLD9OGfR6utb9gvZHE2QqZTlHR9U4PY2vLWWQMN3VRvipT7hulmOUzXMVcuBswmyDF39PvTba6Ea7A83V9h6HpqNeSA1ewKREIDOFqjhl7tIit8aQnuee58bJCTVIdg6gyR6yfu6sF22wdUlsJ7CAHtd41sbhEhWGyzJIqg=,iv:J1CfAJmNpI7lgQalYJlXs+JX5I0e6COGrsenMhvDGLA=,tag:nHkq8VF47I/9FS8uGcEyuw==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1vzkv97n2p7gfkw8dyx8ctz2kumattz89th2jq47zyjyrarmnssysdkw9v8
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwWHpPUkZqbC9LaEtJYzhF
L0hIZUtOa3E4KzJDOFlwaFRVWDdJRnBtR1ZjCnVLNzhyQkdxS2dtK2lFaWRJUkJq
dThURHRTRG5GT1BqaTZRbzlUbXYzWHMKLS0tIFRSa1lkSGQrN1RGdklzYzZNU3BH
ZE0wMk1sRGg1M1lrNVFMTityK3cwK00Kbhugumz27RVo1SJjaljEbklHY6CW7xGD
UCbN0LGh5PPpN6eCbZW8dB1+/lLR9AnyYr6okrGM2iztaJQdlwRvww==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-03-27T10:24:56Z"
mac: ENC[AES256_GCM,data:xGqmh1TPg0OJLSycbnjsF4Ai844ZzlCzawQXmROpORJEiSL/3R1W+2PsBT5KcAfG7y2+Ovyk+l1FeorIPuqnbcezX9zUxMOaFXJylmwvNYXCwoihU6Yx2hg9SuFhnwINAhCLqOaRKIh8xPUaK8nRVqwJJa0jW6eCyZ5lsLtpz90=,iv:pmPfpSv3VfVz/MvTGTWoMxzkF3BvCMhK+HxEeN5pzNI=,tag:WkLcTz/WlLXmq8EojHfdlA==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.4

View File

@ -0,0 +1,26 @@
namespaces:
- name: registry
- name: kube-system
defaultRegcred: true
- name: kyverno
defaultRegcred: true
- name: velero
defaultRegcred: true
- name: observability
- name: databases
- name: istio-system
defaultRegcred: true
- name: applications
defaultRegcred: true
labels:
istio-injection: enabled
- name: platform
defaultRegcred: true
- name: games
- name: team-fortress-2
- name: pipelines
- name: public-xray
labels:
istio-injection: disabled
- name: org-badhouseplants
- name: org-allanger

View File

@ -0,0 +1,37 @@
localpv-provisioner:
hostpathClass:
isDefaultClass: true
zfs-localpv:
crds:
zfsLocalPv:
enabled: false
lvm-localpv:
crds:
lvmLocalPv:
enabled: false
mayastor:
csi:
node:
initContainers:
enabled: false
etcd:
# -- Kubernetes Cluster Domain
clusterDomain: cluster.local
localpv-provisioner:
crds:
enabled: false
openebs-crds:
csi:
volumeSnapshots:
enabled: false
keep: true
engines:
local:
lvm:
enabled: false
zfs:
enabled: false
replicated:
mayastor:
enabled: false

View File

@ -0,0 +1,24 @@
roles:
- name: xray-admin
namespace: public-xray
kind: Role
rules:
- apiGroups: ["*"]
resources: ["*"]
verbs: ["*"]
namespace: ["public-xray"]
bindings:
- name: woodpecker-ci
namespace: pipelines
kind: ClusterRoleBinding
subjects:
- kind: ServiceAccount
namespace: pipelines
name: woodpecker-ci
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: rbac.authorization.k8s.io
sa:
- name: woodpecker-ci
namespace: pipelines

View File

@ -0,0 +1,137 @@
service:
annotations:
service.beta.kubernetes.io/do-loadbalancer-enable-proxy-protocol: "true"
spec:
externalTrafficPolicy: Local
ports:
websecure:
transport:
respondingTimeouts:
readTimeout: 0
idleTimeout: 0
writeTimeout: 0
forwardedHeaders:
trustedIPs:
- "192.168.0.0/16"
proxyProtocol:
trustedIPs:
- "192.168.0.0/16"
ssh:
port: 22
expose:
default: true
exposedPort: 22
protocol: TCP
openvpn:
port: 1194
expose:
default: true
exposedPort: 1194
protocol: TCP
xray-public:
port: 27015
expose:
default: true
exposedPort: 27015
protocol: TCP
xray-edge:
port: 27016
expose:
default: true
exposedPort: 27016
protocol: TCP
smtp:
port: 25
protocol: TCP
exposedPort: 25
expose:
default: true
proxyProtocol:
trustedIPs:
- "192.168.0.0/16"
smtps:
port: 465
protocol: TCP
exposedPort: 465
expose:
default: true
proxyProtocol:
trustedIPs:
- "192.168.0.0/16"
smtp-startls:
port: 587
protocol: TCP
exposedPort: 587
expose:
default: true
proxyProtocol:
trustedIPs:
- "192.168.0.0/16"
imap:
port: 143
protocol: TCP
exposedPort: 143
expose:
default: true
proxyProtocol:
trustedIPs:
- "192.168.0.0/16"
imaps:
port: 993
protocol: TCP
exposedPort: 993
expose:
default: true
proxyProtocol:
trustedIPs:
- "192.168.0.0/16"
pop3:
port: 110
protocol: TCP
exposedPort: 110
expose:
default: true
pop3s:
port: 995
protocol: TCP
exposedPort: 995
expose:
default: true
proxyProtocol:
trustedIPs:
- "192.168.0.0/16"
minecraft:
port: 25565
protocol: TCP
exposedPort: 25565
expose:
default: true
game-udp:
port: 37015
protocol: UDP
exposedPort: 37015
expose:
default: true
# tf2-rcon:
# port: 37015
# protocol: TCP
# exposedPort: 37015
# expose:
# default: true
# ssocks-etcp:
# port: 8444
# protocol: TCP
# exposedPort: 8443
# expose:
# default: true
#
# ssocks-eudp:
# port: 8445
# protocol: UDP
# exposedPort: 8443
# expose:
# default: true

View File

@ -0,0 +1,25 @@
env:
secrets:
data:
SECRET_KEY: ENC[AES256_GCM,data:bLecWaJafPbXT2/dvKt3R2KNfuxxgQ6yLxviYbOf,iv:liuexfgYScH+eg/qSO23SQxE7hKpudgkOH3JRDkaa+A=,tag:DEcAbY6rg7mQnhsnukWtFA==,type:str]
SOCIALACCOUNT_PROVIDERS: ENC[AES256_GCM,data:kx9ziZhxWcWTu1UG7BPi/sdG1tHhzugq65xxL3IPVx8i1oHXwy+00KaOEsIYP+TJqX5516Zq6JqtXe9dQwI4uVIy538FdXeEQDHKNS0xesSx8jG0tKa71GiqyQGBrBBxiy144za9y1QHB9k1pvuaza8mVEQOoktmMFfiHzEOhYDQxIzTulOMWxN2ImTsYSupHS6HLR13gDCyROVDzj1Io/U1VHxN5RZBPiqthNiB+/Aj+2FuCwAaxgEE6VVNFJlghi2yiZbl/PvZ3MDT+dAx/NijawVt0qdBBmPvB3jKZkgRN2tyystGiu47hnLosuzjrOjAMA6rP7XkT2gQ5e6hoLlJxWD5IiAHI+gQK7REbyJrEmSwwH0aCVsd1H4FOBNk+rfKpTIr7sRZFTVcZLtUdTZW6EW0XWmrBBPr5jodmouoFZY+dGlWP1vQkG+2eymw5aJCan0oq+x+J9dB+CVZc/2M1zBeRa6Crg7w3smCqOr46jkaRxfoDxV2NdRSla5zkwwFSS7MqPYlqre2oW+pgP7lvRa4MW9++5q+Zg==,iv:RZMNm66PhTWvjJG5jtpJW22TFInHw8LT04qui3fMLgA=,tag:ETMqmFO/8Kve/W55WP21dA==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1vzkv97n2p7gfkw8dyx8ctz2kumattz89th2jq47zyjyrarmnssysdkw9v8
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKcTM5RTNIakwwZHNrQXE2
U2FsK1gwMDhUTDd1MVorbENtQXdnZjYrM1c4CmNQaG5TcU9wK25qQUg5a29UUXBK
WlZHK0M0dHEvZWVyZmJzR0RLU1pGWmMKLS0tIGk4TFArQnJyTWJJa3FJRlJhY0do
ZE81bENWM3ZUdlR0N2RKMnJkUnJxSG8Ky2ngwj6ZnToGhnAJChU8NXUG+XPPZc2F
fOD35BFO5bUNe+V8MkDLae+GQ1hr55r4WnvFpSWywRIjCFYmUJHTgQ==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-02-22T12:32:43Z"
mac: ENC[AES256_GCM,data:khcLV/lPaY6J5QQmX8466jx9bsXn+NwA3TLIUYs9ipKa539OjIWstwyydVxILSBCwEWGEW86c8EzLBwptBBgg6gehfRJAax5TAn0lBd1lAAiAxZhdNpc2tfoaMaUWfWdpwYjdrtnvAlAkN3/16nvx+TIq7WdU/cWsic96PqhU0A=,iv:I81QvtZ7S+mSAzoXhU0YBMN0L4K+SRHW3UtcSLxwK5s=,tag:gAeAIjyJ13A8gfE7ppBeRg==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.4

View File

@ -0,0 +1,57 @@
shortcuts:
hostname: tandoor.badhouseplants.net
ext-database:
enabled: true
name: tandoor-postgres17
instance: postgres17
credentials:
POSTGRES_HOST: "{{ .Hostname }}"
POSTGRES_PORT: "{{ .Port }}"
workload:
kind: Deployment
strategy:
type: RollingUpdate
containers:
tandoor:
securityContext:
runAsUser: 1001
runAsGroup: 1001
fsGroup: 1001
envFrom:
- main
- secrets
- secretRef:
name: tandoor-postgres17-creds
extraVolumes:
common:
path: /opt/recipes
livenessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 10
failureThreshold: 30
periodSeconds: 10
ingress:
main:
class: traefik
annotations:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
kubernetes.io/tls-acme: "true"
kubernetes.io/ingress.allow-http: "false"
kubernetes.io/ingress.global-static-ip-name: ""
cert-manager.io/cluster-issuer: badhouseplants-issuer-http01
extraVolumes:
common:
emptyDir: {}
env:
main:
enabled: true
sensitive: false
data:
DB_ENGINE: django.db.backends.postgresql
SOCIAL_PROVIDERS: allauth.socialaccount.providers.openid_connect
REMOTE_USER_AUTH: 1
SOCIAL_DEFAULT_ACCESS: 1
SOCIAL_DEFAULT_GROUP: guest

View File

@ -0,0 +1,50 @@
gitea:
admin:
username: ENC[AES256_GCM,data:U230S8544mg=,iv:yL45Opnqp5T4h7erEv0pRHWtH1th8uu1Y4wfeY2aJcQ=,tag:a4vsJEOxlmHj1mwqcUGbiw==,type:str]
password: ENC[AES256_GCM,data:IpwOetFEvxt0/tGkiJ8bBI+OR/E=,iv:8OA48CiWeMyqZVs2lp+UzfyymUNQfdgmAQV33+AVQ+s=,tag:stgAMSnB5dCzFu4zvZeVRA==,type:str]
config:
storage:
MINIO_SECRET_ACCESS_KEY: ENC[AES256_GCM,data:cn3NsFx0TH0fw6mJt6cArMRyQ6Qng3gIPQ==,iv:Jv+rweQzEXfVWuWycjGSi54jRAm0XEEcNxZ6flbUZWM=,tag:6O9KvcnaVEME5lXl6msZLw==,type:str]
mailer:
PASSWD: ENC[AES256_GCM,data:3UL0uvz49J3GIOo/eVWKYLrDG+u/lvCr8Q==,iv:HBQKF42R3tHFQxkUoRzsiPCUkFM40qpjM0SYrQSxugE=,tag:iua/nXoogjxnkj9T6UB/Sw==,type:str]
database:
PASSWD: ENC[AES256_GCM,data:DbL7wryYRQAEzujWNL4I0AwEq6Cr2r78FXQOAw==,iv:Oc2IYwD7iy7AlYVnhvSc61ttOf20qJyuuDnx4yF3/YE=,tag:aLa8+r0kYvzFSuF3hvhL2w==,type:str]
session:
PROVIDER_CONFIG: ENC[AES256_GCM,data:owsHUHdmzGiFgtD3+nRBmHYKcsNQXblbuCO8V0tLAAMvJBRHSA5YG1TL3Quy2186yoZCPiAdeQwg/o2Iutk2Mlc6/NmeurZbxomV8dWBuqJfn6t44xnDgFnEXpxE5kB5lNCtcjKXmpxC4fkoUVscOyZFmKp9uTgH,iv:evmTZH5NzMB3nhqLhuBmTTF4ztJX9a/ZMTOmYMqSaxs=,tag:dLnk9xt+moGoBhx7tqazig==,type:str]
cache:
HOST: ENC[AES256_GCM,data:feiTcBqztm76LZgNShj0Go0IRNgG9UwCQP9KrdexosP2XCnSe+giyKoIcADiHQFYVbnnkpw7/UqNxgM0Tx+EQ9eyFKY+PaFyCSFmQwikmAWakDJ+hQNM1VaNaDKdeLiGIeI7nO2MH9hGDMzPWtUgMNBxc9tTS38l,iv:Rcr+uiZMWbG9IPeMm+eiNf3W3yz2L7yqSkJSKUhWHtk=,tag:3cLuUAEU6CZvvUYKF1cCAQ==,type:str]
queue:
CONN_STR: ENC[AES256_GCM,data:Mw7W72M3HitiAEG1ihWctXyYqHJuSiKBZvQDDRjA4O9Yg9Zsbq+/HVcnh074zbiTjCO/496FLiy88HuAw8lksZ7MXXVvRI7rIcFKFZLpHcjAqkBnB301SGalK/R4bSisECsYIFPjKuh+s4PIuPEIgFtZuiEvYdbT,iv:uYwjzUObav2Hs/JgRIYbGBFNcZm++qS2QqKpz6Ma6EA=,tag:0okDz0yzL4eSat/0roYJ2A==,type:str]
oauth:
- name: ENC[AES256_GCM,data:sN+DzBKd,iv:0HNSbQEDLsV76DIRHdWnPs9SI/bHRZz6Fw+8B8Hhuns=,tag:mwTWy9VSXapPu3uLk7LgSQ==,type:str]
provider: ENC[AES256_GCM,data:m74moJ8h,iv:QfE5F3vpIlEzIftHlX/qpNvsnAab8gTd4CHyECHNcmQ=,tag:JefFm9mfYJSKzBDOb/l6BA==,type:str]
key: ENC[AES256_GCM,data:7ScP3oXE0zTnaqL3AigHby39fMk=,iv:sXllPawkQ5BcKmC1iBUJ2WOEPK2lm6W3q+GrprHZhAc=,tag:vSCB9w5x6jjPNu5b5ZEMzw==,type:str]
secret: ENC[AES256_GCM,data:XG9D5IUX4MqJzKf+aB7MCeDJAQlIzMxSv3ByAZQAdZCI+5my+cMfeg==,iv:s3e0wFznoX55MeEQj+dK0QrzzatGzDBKfT4xDD00cOA=,tag:vk32YQcPs0kAIOj61YwHww==,type:str]
- name: ENC[AES256_GCM,data:eBSL9xrBDN50,iv:TiC3jjpfwS6A9x6PAkMIorwJ9CecxblzEFt5+ZmSW6I=,tag:XA6UrnJbkUyDBgOY9xfIPw==,type:str]
provider: ENC[AES256_GCM,data:yh4TBYDI2R0a4f1qSg==,iv:hx8pAuo//U+YY5a2cq/KyoK4qcKbSXWtkrDvACWLU2c=,tag:uJ9JNWdDjb0eTS0ZJXHDaw==,type:str]
skip_local_2fa: ENC[AES256_GCM,data:8YwpOw==,iv:2R3Zc4HK/U31SVcXR3xi9J/kJySR3osA8xN3YhvRxBk=,tag:SzBFOwEmczW59SHLGCMb5Q==,type:str]
key: ENC[AES256_GCM,data:rLR8ve4=,iv:qOVIBiFjsOrrRg/mca5l7SHc2GdVAdyz0TV3Q7lJlQg=,tag:tYEzx7SoeoAC9/lgWU91uA==,type:str]
secret: ENC[AES256_GCM,data:r7sWVeqWTnqbt7ArzpADD5A1fYU6+KSpLohWJuSbEUyPAzOSxfZGxSYNfAwaxACOgmJJnxUeQ9l71nyUDWzGMrFkLr+o+WcQmSTPV3+3iMHDsTdgjEb+tIZFdi0Z5PJ8DCBxjckmbG5cx3O3Kyrjc24SNHCVb62lhduZH1fIlT0=,iv:kvtMCpiOUx10zTKt/ZYQh3leYaY9+v169Sq+sYIScHQ=,tag:t8txjt3xuVKWA7QgBJYuiw==,type:str]
autoDiscoverUrl: ENC[AES256_GCM,data:SG2ev/BshOBP0NQnpZRQErZDAEWdReiwp2pb2JJBWZmFvC67//t8WZu1/wilfQjJvJdsDGwk9Rwncoxya5Fb9uKYDAQKzqULJk70Er9pyNaowFbMxiMm+ws=,iv:B9GM9MLIrKTtRfyDxltlFvvm01aRCTQnyiemH4qzjGs=,tag:Wqji+fKliEGJRZ4inTmbXw==,type:str]
iconUrl: ENC[AES256_GCM,data:lcW3npgyrc50GIYCyTh5Gpht2CU6hX67j13XNOvGQybU2dsA9BtqpmH0OMQz4b1g/XkuHAp5j3I0wLnGvhXXf4mEugzt8g==,iv:X/kHS77OJLDuNN2lTAWLqPARJ1QZMY1ImuS+xmkUlgM=,tag:0ZRh7eH6dYdZd250Lb/+xA==,type:str]
scopes: ENC[AES256_GCM,data:GtTGDrDZwU1r5vEsxg==,iv:/7yMuJpxlML3R1X8onDSFbJVwpYFtnLamaI+X148Tlk=,tag:e8HkvzdpkhDvedVzm7jG3w==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1vzkv97n2p7gfkw8dyx8ctz2kumattz89th2jq47zyjyrarmnssysdkw9v8
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6d2JneUUzM1VkM1lvclA3
aC9wMGpKSGU5ZnVaUTNlVDNsMlNaOVRNYVdzCkpzVUJzNHN2TmhHektzOC93Vjlj
SVU3cUxVUm4wWjJQRWZRdWlRMEU1eUEKLS0tIHRLOEJERXBMd0NFajNjbHhPVVNl
b1cyT0RYa3hzbFJjc254bHJMcDIzeTgK/aX6f60NBz6w1TaOFSZDRE7rPniebb75
iwO74fJtl5g9WxAG5yByxJ455Uhc2R/+VBbK5BcYFt9cboIgkUrS2A==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-03-25T19:15:08Z"
mac: ENC[AES256_GCM,data:ySAOo8j+p9O0v8xYFcjuD6e/pc9LtLxLWC4TdP7mjhdfwwaaoJW96DLEbSYxYN7Co8zHFqdMp5e76SgvhWwP2LNmHLunJ3LNU6u6NSMEFLCSyjAM8KiqB4bTNq7Kf9H2FZbAN58YKXpZEFECJpxoLg2Q9MdRp+BvgURDa2QLZRc=,iv:Ay5vMdrKbNpFyir/N4+mPuOwKwIVupZbeJFKA+DWFDA=,tag:+YUSXQYMfu59oF+hjg0XMg==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.4

View File

@ -0,0 +1,176 @@
# ------------------------------------------
# -- Kubernetes related values
# ------------------------------------------
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: traefik
kubernetes.io/tls-acme: "true"
kubernetes.io/ingress.allow-http: "false"
kubernetes.io/ingress.global-static-ip-name: ""
cert-manager.io/cluster-issuer: badhouseplants-issuer-http01
traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
external-dns.alpha.kubernetes.io/ingress-hostname-source: defined-hosts-only
hosts:
- host: gitea.badhouseplants.net
paths:
- path: /
pathType: Prefix
tls:
- secretName: gitea.badhouseplants.net
hosts:
- gitea.badhouseplants.net
replicaCount: 1
clusterDomain: cluster.local
resources:
limits:
memory: 1024Mi
cpu: 1
requests:
cpu: 1
memory: 1024Mi
persistence:
enabled: true
size: 15Gi
accessModes:
- ReadWriteOnce
# ------------------------------------------
# -- Main Gitea settings
# ------------------------------------------
gitea:
metrics:
enabled: true
serviceMonitor:
# -- TODO(@allanger): Enable it once prometheus is configured
enabled: false
config:
database:
DB_TYPE: postgres
HOST: postgres17-postgresql.databases.svc.cluster.local
NAME: org-badhouseplants-app-gitea
USER: org-badhouseplants-app-gitea
APP_NAME: Bad Houseplants Gitea
ui:
meta:
AUTHOR: Bad Houseplants
DESCRIPTION: '...by allanger'
repository:
DEFAULT_BRANCH: main
MAX_CREATION_LIMIT: 0
DISABLED_REPO_UNITS: repo.wiki
service:
DISABLE_REGISTRATION: true
server:
DOMAIN: gitea.badhouseplants.net
ROOT_URL: https://gitea.badhouseplants.net
LFS_START_SERVER: true
LANDING_PAGE: explore
START_SSH_SERVER: true
storage:
STORAGE_TYPE: minio
MINIO_ENDPOINT: "s3.badhouseplants.net:443"
MINIO_ACCESS_KEY_ID: gitea
MINIO_BUCKET: gitea
MINIO_LOCATION: us-east-1
MINIO_USE_SSL: true
admin:
DISABLE_REGULAR_ORG_CREATION: true
packages:
ENABLED: true
cron:
enabled: true
attachment:
MAX_SIZE: 100
actions:
ENABLED: true
oauth2_client:
REGISTER_EMAIL_CONFIRM: false
ENABLE_AUTO_REGISTRATION: true
session:
PROVIDER: redis
cache:
ENABLED: true
ADAPTER: redis
queue:
TYPE: redis
mailer:
ENABLED: true
FROM: bot@badhouseplants.net
PROTOCOL: smtp+startls
SMTP_ADDR: stalwart.badhouseplants.net
SMTP_PORT: 587
USER: bot
indexer:
REPO_INDEXER_ENABLED: true
REPO_INDEXER_PATH: indexers/repos.bleve
MAX_FILE_SIZE: 1048576
REPO_INDEXER_EXCLUDE: resources/bin/**
picture:
ENABLE_FEDERATED_AVATAR: false
service:
ssh:
type: ClusterIP
port: 22
clusterIP:
extraDeploy:
- |-
apiVersion: kinda.rocks/v1beta1
kind: Database
metadata:
generation: 1
labels:
app.kubernetes.io/managed-by: Helm
name: {{ include "gitea.fullname" $ }}
spec:
backup:
cron: 0 0 * * *
enable: false
credentials:
templates:
- name: CONNECTION_STRING
secret: true
template: {{` '{{ .Protocol }}://{{ .Username }}:{{ .Password }}@{{ .Hostname }}:{{.Port }}/{{ .Database }}' `}}
deletionProtected: true
instance: postgres17
postgres: {}
secretName: {{ include "gitea.fullname" $ }}-db-creds
- |-
apiVersion: traefik.io/v1alpha1
kind: IngressRouteTCP
metadata:
name: {{ include "gitea.fullname" $ }}-ssh
spec:
entryPoints:
- ssh
routes:
- match: HostSNI(`*`)
services:
- name: {{ include "gitea.fullname" $ }}-ssh
nativeLB: true
port: 22
# ------------------------------------------
# -- Disabled dependencies
# ------------------------------------------
postgresql-ha:
enabled: false
redis-cluster:
enabled: false
# extraDeploy:
# - |
# {{- if $.Capabilities.APIVersions.Has "traefik.io/v1alpha1/IngressRouteTCP" }}
# apiVersion: traefik.io/v1alpha1
# kind: IngressRouteTCP
# metadata:
# name: {{ include "gitea.fullname" . }}-ssh
# spec:
# entryPoints:
# - ssh
# routes:
# - match: HostSNI('*')
# services:
# - name: "{{ include "gitea.fullname" . }}-ssh"
# port: 22
# nativeLB: true
# {{- end }}

View File

@ -0,0 +1,28 @@
files:
rclone-config:
enabled: ENC[AES256_GCM,data:3y4DCg==,iv:n+Pfj4j405WR17aY7RbF6lpOQ58ZQmWrH6dgUTQ0jX4=,tag:xbKEnPnASJTl27ch1Hi00g==,type:bool]
sensitive: ENC[AES256_GCM,data:DGby8Q==,iv:nibU4CkdcYlT1F7OkgqE1apUuyJA5M9Vj5x40F9zt3w=,tag:oW+jPP7F1vWY5gf0JyrPdw==,type:bool]
remove: []
entries:
rclone.conf:
data: ENC[AES256_GCM,data:m4K3yt7no9mnUOzn/iGtaKqBrDXoLCgxEWV8NacXlOvh7c5ngmTmwoxzTaNxbsCQA7dECYb0dFtPvhF33AqgpcbRnqGrK54v8V+NaldQrgT2up4iQfdYA+sh+yNG3QAXU7eOEBvyFctJ+9dEaBII1sF/xFSkcTwrWkQFTQKLDdNIYU9a8ttEysz0cBWWXL3h9Y7C/mBjPdWIhpaf6Z63hy5P0hnYFftZsVM=,iv:qBBk9xMlZl3FriY2oYk4DQB1EKTsl7/qUj4s8naVvts=,tag:tDUKvK8ZuIxVeJjyUUqeXQ==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1vzkv97n2p7gfkw8dyx8ctz2kumattz89th2jq47zyjyrarmnssysdkw9v8
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxalE3bUtCWmFVejBJMlZq
dUg0U0R2VytsZHZ5QlQ4UGdrRmdsWGhWbEI4Clk1WEZ4U1lEdTJoRVBTbEFXaE1O
TW1wb0dycS9HeWdQcUx3KzJKb2kwTVUKLS0tIDU1bE9JWnp3Q3U4V0pVOGs4Z3Rq
Q1VsM3orOUZmS3lDaFpNN2g0cnllVWMKqZlPfiIFKn8h56gspbbUhpv9RkL5gF73
NzqtFJJwQOGaD3lk2ocaLLkvywJ/DKNf7JupTWlmggHijId4hmpytw==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-11-20T15:04:15Z"
mac: ENC[AES256_GCM,data:XRmw86oJLHXMAY/SPv6ptQLV1Eocbig6CQSG1SdOO9scMpfgD3tMY43z5aB16DkW+6AG1ti+TS4JRgXKLaSsAmORqRN0yTwGEktiLs0GxhtDvMYwnclj/Cx76WbZyMkgVzCHe7ZsAI+9DrejSFYbB/CzA+8yq1KmMf/L5NWcv7o=,iv:AcYK48ywr2pzNw/HEY5hWOcjdnmnG2/eWp+r/o15Lbk=,tag:HLKLFYFV+7SWUaFYiNUS3g==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.1

View File

@ -0,0 +1,49 @@
shortcuts:
hostname: navidrome.badhouseplants.net
ingress:
main:
annotations:
kubernetes.io/ingress.class: traefik
kubernetes.io/tls-acme: "true"
kubernetes.io/ingress.allow-http: "false"
kubernetes.io/ingress.global-static-ip-name: ""
cert-manager.io/cluster-issuer: badhouseplants-issuer-http01
traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
env:
main:
enabled: true
sensitive: false
remove: []
data:
ND_MUSICFOLDER: /app/music
ND_DATAFOLDER: /app/data
ND_LOGLEVEL: info
ND_BASEURL: 'https://{{ .Values.shortcuts.hostname }}'
files:
rclone-config:
enabled: true
sensitive: true
remove: []
entries:
rclone.conf:
data: |
[music-data]
type = s3
provider = Minio
endpoint = s3.badhouseplants.net
location_constraint = us-west-1
access_key_id = allanger
secret_access_key = fPN3Nv6yDWVnZ7V7eRZ
rclone-script:
enabled: true
sensitive: false
remove: []
entries:
rclone-script:
data: |
#!/usr/bin/sh
while true; do
rclone --config /app/rclone.conf sync -P music-data:/music /app/music
sleep 10
done

View File

@ -0,0 +1,54 @@
middleware:
enabled: true
middlewares:
- name: navidromeauth
spec:
headers:
customRequestHeaders:
Remote-User: "guest"
shortcuts:
hostname: music.badhouseplants.net
ingress:
main:
annotations:
traefik.ingress.kubernetes.io/router.middlewares: org-badhouseplants-navidromeauth@kubernetescrd
kubernetes.io/ingress.class: traefik
kubernetes.io/tls-acme: "true"
kubernetes.io/ingress.allow-http: "false"
kubernetes.io/ingress.global-static-ip-name: ""
cert-manager.io/cluster-issuer: badhouseplants-issuer-http01
traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
env:
main:
enabled: true
sensitive: false
remove: []
data:
ND_MUSICFOLDER: /app/music
ND_DATAFOLDER: /app/data
ND_LOGLEVEL: info
ND_BASEURL: 'https://{{ .Values.shortcuts.hostname }}'
ND_REVERSEPROXYUSERHEADER: "Remote-User"
ND_REVERSEPROXYWHITELIST: "0.0.0.0/0"
ND_LASTFM_ENABLED: false
ND_LISTENBRAINZ_ENABLED: false
ND_ENABLEUSEREDITING: false
ND_ENABLEFAVOURITES: false
ND_ENABLESTARRATING: false
ND_ENABLEEXTERNALSERVICES: false
ND_ENABLESHARING: true
files:
rclone-config:
enabled: true
sensitive: false
remove: []
entries:
rclone.conf:
data: |
[music-data]
type = s3
provider = Minio
endpoint = s3.badhouseplants.net
location_constraint = us-west-1

View File

@ -0,0 +1,20 @@
deployAnnotations:
keel.sh/policy: force
keel.sh/trigger: poll
keel.sh/initContainers: 'true'
extra:
templates:
- |-
apiVersion: traefik.io/v1alpha1
kind: IngressRouteUDP
metadata:
name: "{{ .Release.Name }}-game"
spec:
entryPoints:
- game-udp
routes:
- services:
- name: app-open-strike-2-main
nativeLB: true
port: 27015

View File

@ -0,0 +1,27 @@
config:
env:
secrets:
data:
SW_ADMIN_SECRET: ENC[AES256_GCM,data:dG2zVmvycL7TZM922XADQ/SwWMBrUvXd+BPwpxIvmaDnjejpEaHUfB0xhpkhZqhAB8M=,iv:5hDpUFLLGLf4VLj8h3weOZhiwJKYORg5uKVgXVXKbgM=,tag:9FQru61B5hDPcIoIUDvUtg==,type:str]
MINIO_ACCESS_ID: ENC[AES256_GCM,data:HvZa/kOy8ZI=,iv:T2433k3OmZTmPTx2QWEAELlN7zY37LUynapVWpASrJ0=,tag:Kvr4wIgq5dMmXRJDoxqGxA==,type:str]
MINIO_SECRET_KEY: ENC[AES256_GCM,data:Tv5VWQprCKtJCghzhZ8YD8/9,iv:hioZ+d0ns+Hr3pBVyfFWgcuRKDrPQmskSnU0XOMwhzA=,tag:nuFn0qV9UMy2ywiFfx5gHg==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1vzkv97n2p7gfkw8dyx8ctz2kumattz89th2jq47zyjyrarmnssysdkw9v8
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGMTZGN2NSYXUzcXNJVUx2
YXE3Nk5MbnV1dyttUEtmUExabFYvOGdHcTBRCkM1WE9uNlF1OGh4NnNDL3NabXhi
OW1NcDlydUMraTVQV2tjLzVla2tpSnMKLS0tIHN6RXVJTzNvZlkyTmdDb09UTUNy
TVJyRVI5U2NmV1VIQTk4cjlYM1htMFkKkxsXzn+7nFiTs3mANqO0+f7/TTGKogFk
8ix4OpiA9b33kuqi4Z7bXx4ucyCmlDwtxuHvmOEOyW4yJ9F1cgm+Uw==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-02-15T23:05:04Z"
mac: ENC[AES256_GCM,data:Kix/IdONJ79Lj1dc/gigpM7BUPyg7EIsPQzkhtu8+nbIQZQsm0CYqlqPx1V7w0r9vef+rCd/8GX8RdKw0o5ZaDZY5l0nXEi9E7dEtcHTYlrr8fqljcsGRAKmOiBRMkPh0jGTEPlFRtb0Inrn85rWUiMJP12hwIIS0t7GpAydKdI=,iv:1pMdzj1x0Hf65nmZ28Lv7yu6Y+suQKxv274nYl8J3HI=,tag:GQL8HOSswz2N56iNAS9l9w==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.4

View File

@ -0,0 +1,317 @@
shortcuts:
hostname: stalwart.badhouseplants.net
base:
workload:
initContainers:
prepare-config:
image:
registry: registry.hub.docker.com
repository: library/alpine
tag: latest
pullPolicy: Always
volumeMounts:
files:
config:
path: /app/config/config.toml
subPath: config.toml
extraVolumes:
config:
path: /app/etc
command:
- sh
args:
- -c
- cp /app/config/config.toml /app/etc/config.toml && echo "" >> /app/etc/config.toml
containers:
stalwart:
volumeMounts:
extraVolumes:
certs:
path: /app/certs
stalwart:
path: /opt/stalwart-mail
config:
path: /opt/stalwart-mail/etc
envFrom:
secrets: {}
raw:
- secretRef:
name: app-stalwart-db-creds-17
extraVolumes:
certs:
secret:
secretName: stalwart.badhouseplants.net
stalwart:
emptyDir: {}
config:
emptyDir: {}
ingress:
main:
annotations:
cert-manager.io/cluster-issuer: badhouseplants-issuer-http01
kubernetes.io/ingress.allow-http: "false"
kubernetes.io/ingress.class: traefik
kubernetes.io/ingress.global-static-ip-name: ""
kubernetes.io/tls-acme: "true"
traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
config:
files:
config:
enabled: true
sensitive: false
remove: []
entries:
# Ref: https://github.com/stalwartlabs/mail-server/blob/main/resources/config/config.toml
config.toml:
data: |-
[lookup.default]
hostname = "{{ .Values.shortcuts.hostname }}"
[server.listener."smtp"]
bind = ["[::]:25"]
protocol = "smtp"
proxy.override = true
proxy.trusted-networks.0 = "192.168.0.0/16"
[server.listener."smtp-startls"]
bind = ["[::]:587"]
protocol = "smtp"
proxy.override = true
proxy.trusted-networks.0 = "192.168.0.0/16"
[server.listener."smtps"]
bind = ["[::]:465"]
protocol = "smtp"
tls.implicit = true
proxy.override = true
proxy.trusted-networks.0 = "192.168.0.0/16"
[server.listener."imap"]
bind = ["[::]:143"]
protocol = "imap"
proxy.override = true
proxy.trusted-networks.0 = "192.168.0.0/16"
[server.listener."imaptls"]
bind = ["[::]:993"]
protocol = "imap"
tls.implicit = true
proxy.override = true
proxy.trusted-networks.0 = "192.168.0.0/16"
[server.listener.pop3]
bind = "[::]:110"
protocol = "pop3"
proxy.override = true
proxy.trusted-networks.0 = "192.168.0.0/16"
[server.listener.pop3s]
bind = "[::]:995"
protocol = "pop3"
tls.implicit = true
proxy.override = true
proxy.trusted-networks.0 = "192.168.0.0/16"
[server.listener."sieve"]
bind = ["[::]:4190"]
protocol = "managesieve"
proxy.override = true
proxy.trusted-networks.0 = "192.168.0.0/16"
[server.listener."https"]
protocol = "https"
bind = ["[::]:443"]
tls.implicit = false
[server.listener."http"]
bind = "[::]:8080"
protocol = "http"
hsts = true
[store."minio"]
type = "s3"
bucket = "stalwart"
region = "eu-central-1"
access-key = "%{env:MINIO_ACCESS_ID}%"
secret-key = "%{env:MINIO_SECRET_KEY}%"
endpoint = "https://s3.badhouseplants.net:443"
timeout = "30s"
key-prefix = "/"
[store."postgresql"]
type = "postgresql"
host = "postgres17-postgresql.databases.svc.cluster.local"
port = 5432
database = "%{env:POSTGRES_DB}%"
user = "%{env:POSTGRES_USER}%"
password = "%{env:POSTGRES_PASSWORD}%"
timeout = "15s"
[storage]
data = "postgresql"
fts = "postgresql"
blob = "minio"
lookup = "postgresql"
directory = "internal"
[directory."internal"]
type = "internal"
store = "postgresql"
[authentication.fallback-admin]
user = "overlord"
secret = "%{env:SW_ADMIN_SECRET}%"
[tracer.console]
type = "console"
level = "info"
ansi = true
enable = true
[certificate."default"]
cert = "%{file:/app/certs/tls.crt}%"
private-key = "%{file:/app/certs/tls.key}%"
env:
secrets:
enabled: true
sensitive: true
extra:
templates:
- |
apiVersion: traefik.io/v1alpha1
kind: IngressRouteTCP
metadata:
name: "{{ .Release.Name }}-smtp"
spec:
entryPoints:
- smtp
routes:
- match: HostSNI(`*`)
services:
- name: app-stalwart-mail
nativeLB: true
port: 25
proxyProtocol:
version: 2
- |
apiVersion: traefik.io/v1alpha1
kind: IngressRouteTCP
metadata:
name: "{{ .Release.Name }}-smtps"
spec:
entryPoints:
- smtps
routes:
- match: HostSNI(`*`)
services:
- name: app-stalwart-mail
nativeLB: true
port: 465
proxyProtocol:
version: 2
- |
apiVersion: traefik.io/v1alpha1
kind: IngressRouteTCP
metadata:
name: "{{ .Release.Name }}-smtp-startls"
spec:
entryPoints:
- smtp-startls
routes:
- match: HostSNI(`*`)
services:
- name: app-stalwart-mail
nativeLB: true
port: 587
proxyProtocol:
version: 2
- |
apiVersion: traefik.io/v1alpha1
kind: IngressRouteTCP
metadata:
name: "{{ .Release.Name }}-imap"
spec:
entryPoints:
- imap
routes:
- match: HostSNI(`*`)
services:
- name: app-stalwart-mail
nativeLB: true
port: 143
proxyProtocol:
version: 2
- |
apiVersion: traefik.io/v1alpha1
kind: IngressRouteTCP
metadata:
name: "{{ .Release.Name }}-imaps"
spec:
entryPoints:
- imaps
routes:
- match: HostSNI(`*`)
services:
- name: app-stalwart-mail
nativeLB: true
port: 993
proxyProtocol:
version: 2
- |
apiVersion: traefik.io/v1alpha1
kind: IngressRouteTCP
metadata:
name: "{{ .Release.Name }}-pop3"
spec:
entryPoints:
- pop3
routes:
- match: HostSNI(`*`)
services:
- name: app-stalwart-mail
nativeLB: true
port: 110
proxyProtocol:
version: 2
- |
apiVersion: traefik.io/v1alpha1
kind: IngressRouteTCP
metadata:
name: "{{ .Release.Name }}-pop3s"
spec:
entryPoints:
- pop3s
routes:
- match: HostSNI(`*`)
services:
- name: app-stalwart-mail
nativeLB: true
port: 995
proxyProtocol:
version: 2
- |
apiVersion: kinda.rocks/v1beta1
kind: Database
metadata:
name: "{{ .Release.Name }}-postgres17"
spec:
secretName: {{ .Release.Name }}-db-creds-17
backup:
cron: 0 0 * * *
enable: false
credentials:
templates:
- name: POSTGRES_HOST
secret: true
template: "{{` {{ .Hostname }} `}}"
- name: POSTGRES_PORT
secret: true
template: "{{` {{ .Port }} `}}"
deletionProtected: true
instance: postgres17
postgres: {}

View File

@ -0,0 +1,25 @@
env:
secrets:
data:
SECRET_KEY: ENC[AES256_GCM,data:bLecWaJafPbXT2/dvKt3R2KNfuxxgQ6yLxviYbOf,iv:liuexfgYScH+eg/qSO23SQxE7hKpudgkOH3JRDkaa+A=,tag:DEcAbY6rg7mQnhsnukWtFA==,type:str]
SOCIALACCOUNT_PROVIDERS: ENC[AES256_GCM,data:kx9ziZhxWcWTu1UG7BPi/sdG1tHhzugq65xxL3IPVx8i1oHXwy+00KaOEsIYP+TJqX5516Zq6JqtXe9dQwI4uVIy538FdXeEQDHKNS0xesSx8jG0tKa71GiqyQGBrBBxiy144za9y1QHB9k1pvuaza8mVEQOoktmMFfiHzEOhYDQxIzTulOMWxN2ImTsYSupHS6HLR13gDCyROVDzj1Io/U1VHxN5RZBPiqthNiB+/Aj+2FuCwAaxgEE6VVNFJlghi2yiZbl/PvZ3MDT+dAx/NijawVt0qdBBmPvB3jKZkgRN2tyystGiu47hnLosuzjrOjAMA6rP7XkT2gQ5e6hoLlJxWD5IiAHI+gQK7REbyJrEmSwwH0aCVsd1H4FOBNk+rfKpTIr7sRZFTVcZLtUdTZW6EW0XWmrBBPr5jodmouoFZY+dGlWP1vQkG+2eymw5aJCan0oq+x+J9dB+CVZc/2M1zBeRa6Crg7w3smCqOr46jkaRxfoDxV2NdRSla5zkwwFSS7MqPYlqre2oW+pgP7lvRa4MW9++5q+Zg==,iv:RZMNm66PhTWvjJG5jtpJW22TFInHw8LT04qui3fMLgA=,tag:ETMqmFO/8Kve/W55WP21dA==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1vzkv97n2p7gfkw8dyx8ctz2kumattz89th2jq47zyjyrarmnssysdkw9v8
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKcTM5RTNIakwwZHNrQXE2
U2FsK1gwMDhUTDd1MVorbENtQXdnZjYrM1c4CmNQaG5TcU9wK25qQUg5a29UUXBK
WlZHK0M0dHEvZWVyZmJzR0RLU1pGWmMKLS0tIGk4TFArQnJyTWJJa3FJRlJhY0do
ZE81bENWM3ZUdlR0N2RKMnJkUnJxSG8Ky2ngwj6ZnToGhnAJChU8NXUG+XPPZc2F
fOD35BFO5bUNe+V8MkDLae+GQ1hr55r4WnvFpSWywRIjCFYmUJHTgQ==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-02-22T12:32:43Z"
mac: ENC[AES256_GCM,data:khcLV/lPaY6J5QQmX8466jx9bsXn+NwA3TLIUYs9ipKa539OjIWstwyydVxILSBCwEWGEW86c8EzLBwptBBgg6gehfRJAax5TAn0lBd1lAAiAxZhdNpc2tfoaMaUWfWdpwYjdrtnvAlAkN3/16nvx+TIq7WdU/cWsic96PqhU0A=,iv:I81QvtZ7S+mSAzoXhU0YBMN0L4K+SRHW3UtcSLxwK5s=,tag:gAeAIjyJ13A8gfE7ppBeRg==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.4

View File

@ -0,0 +1,57 @@
shortcuts:
hostname: tandoor.badhouseplants.net
ext-database:
enabled: true
name: tandoor-postgres17
instance: postgres17
credentials:
POSTGRES_HOST: "{{ .Hostname }}"
POSTGRES_PORT: "{{ .Port }}"
workload:
kind: Deployment
strategy:
type: RollingUpdate
containers:
tandoor:
securityContext:
runAsUser: 1001
runAsGroup: 1001
fsGroup: 1001
envFrom:
- main
- secrets
- secretRef:
name: tandoor-postgres16-creds
extraVolumes:
common:
path: /opt/recipes
livenessProbe:
httpGet:
path: /
port: 8080
initialDelaySeconds: 10
failureThreshold: 30
periodSeconds: 10
ingress:
main:
class: traefik
annotations:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
kubernetes.io/tls-acme: "true"
kubernetes.io/ingress.allow-http: "false"
kubernetes.io/ingress.global-static-ip-name: ""
cert-manager.io/cluster-issuer: badhouseplants-issuer-http01
extraVolumes:
common:
emptyDir: {}
env:
main:
enabled: true
sensitive: false
data:
DB_ENGINE: django.db.backends.postgresql
SOCIAL_PROVIDERS: allauth.socialaccount.providers.openid_connect
REMOTE_USER_AUTH: 1
SOCIAL_DEFAULT_ACCESS: 1
SOCIAL_DEFAULT_GROUP: guest

View File

@ -0,0 +1,31 @@
config:
env:
secrets:
enabled: ENC[AES256_GCM,data:C4TSoQ==,iv:kG2QtaNWHSc2sdhzo8HnMnPE0Mixqs1dvFsAcke/Gw4=,tag:HhbVmIw5RQ9hipQqZ5J2pw==,type:bool]
sensitive: ENC[AES256_GCM,data:0wVOUg==,iv:FGxAd9h2e0LeWukZR/THhCscF3FWoK4dnkrX1mqSC+A=,tag:0rpeedT6x2V79WB5xRNbuA==,type:bool]
data:
SMTP_USERNAME: ENC[AES256_GCM,data:82zb,iv:Z89+Wt6jGMQTZ73ghk1Ey504WYt2Li9XQ2gaH0SB8tI=,tag:RmqHxghik75E9LAABzyVxA==,type:str]
ADMIN_PASSWORD: ENC[AES256_GCM,data:ELi8dtNa/OhQKgrXbrgwHK95ntZjyzRSvQ==,iv:IVZbXZlFyCRMc3bW81Ak9UdjeGke0px9mGqrmaW7EHk=,tag:9xli08c0pqnxu2ktTbCMcg==,type:str]
ADMIN_TOKEN: ENC[AES256_GCM,data:CAAalqRcu9vsM1bjC76enJCSX/tc7yOd48mxGV0d5rTFxQz08b4JVhKyMzl7BRog7+PMtJkkTnRIXZHgj31FqhRylmHyuAn3iPc=,iv:PpZvZMhOEt6ecdkBcvAOSz+eZktPAzaAlYNjBSgiN/w=,tag:apHKw66HG7TYnpBNVyM7xA==,type:str]
DATABASE_URL: null
SMTP_PASSWORD: ENC[AES256_GCM,data:g212PzN9/4hxBKMAWFNiR0qAnPPK/tkffg==,iv:1l6dikIQGSjznW9MsaCTdz0wLJmAhiL0ZOdN2J4Q0yA=,tag:tNbPdORUa6IBWgh0HHaNjA==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1vzkv97n2p7gfkw8dyx8ctz2kumattz89th2jq47zyjyrarmnssysdkw9v8
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoLys3dkJDK2lrQ0d4ZlJi
eFRTSmx1RUtZRnpxdkNvVFFCeXl6dDcvWXdvCitoNkcwVFFxRVJ6dkNUbGVPb1pU
b3E4ZjZibFF6QytNdUhXNDFLZXRpSEUKLS0tIHpZTmFXNnptVzJmZFhIU2haRWhR
UjNEN1BlREFVak1xdmQzaFY1dHVyM3cKuvMIrQUL1cuw3Odz/Cv+kZV9ZZzBozSW
XimhDSkxNrH5OsGC1Jxz/8JOv8abBs4NROzffVdyqtZZzXOLzw3mJQ==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-03-02T08:58:16Z"
mac: ENC[AES256_GCM,data:px+D6tlAZU6GzlE8/jLc0BaPyRwsfE1jRROy2mX7bhFTIW3lZqt/zangO46fFH5hXZjY5wLNIktCDbawIbUFwAp0vrmXxctZoAftl9hpdtW6ann3yfyv3pdcs7/BKu3s5QUswx6D13iLU0dvzyG4vGcQNmKpxuPQYLuDp2o74hM=,iv:2Y+wsS7QcgQ/8umZ+a21QjU25Yq24Y7UWjXVy9Gmvoo=,tag:APVtby5NCOQxrPAjIbMJ+w==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.4

View File

@ -0,0 +1,63 @@
shortcuts:
hostname: vaultwarden.badhouseplants.net
base:
workload:
kind: Deployment
strategy:
type: RollingUpdate
containers:
vaultwarden:
envFrom:
raw:
- secretRef:
name: app-vaultwarden-db-creds-17
ingress:
main:
class: traefik
metadata:
annotations:
kubernetes.io/ingress.class: traefik
traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
kubernetes.io/tls-acme: "true"
kubernetes.io/ingress.allow-http: "false"
kubernetes.io/ingress.global-static-ip-name: ""
cert-manager.io/cluster-issuer: badhouseplants-issuer-http01
config:
env:
main:
enabled: true
sensitive: false
data:
SMTP_HOST: stalwart.badhouseplants.net
SMTP_SECURITY: "starttls"
SMTP_PORT: 587
SMTP_FROM: bot@badhouseplants.net
SMTP_FROM_NAME: Vault Warden
SMTP_AUTH_MECHANISM: "Plain"
SMTP_ACCEPT_INVALID_HOSTNAMES: "false"
SMTP_ACCEPT_INVALID_CERTS: "false"
SMTP_DEBUG: false
DOMAIN: "{{ .Values.shortcuts.hostname }}"
LOG_FILE: /app/logs/log.txt
extra:
templates:
- |-
apiVersion: kinda.rocks/v1beta1
kind: Database
metadata:
name: "{{ .Release.Name }}-postgres17"
spec:
secretName: "{{ .Release.Name }}-db-creds-17"
instance: postgres17
deletionProtected: true
backup:
enable: false
cron: 0 0 * * *
credentials:
templates:
- name: DATABASE_URL
template: "{{ `{{ .Protocol }}://{{ .Username }}:{{ .Password }}@{{ .Hostname }}:{{ .Port }}/{{ .Database }}` }}"
secret: true

View File

@ -0,0 +1,43 @@
shortcuts:
hostname: notes-onpier.badhouseplants.net
ext-database:
enabled: true
name: memos-postgres16
instance: postgres16
credentials:
MEMOS_DRIVER: postgres
MEMOS_DSN: "{{ .Protocol }}://{{ .Username }}:{{ .Password }}@{{ .Hostname }}:{{ .Port }}/{{ .Database }}?sslmode=disable"
workload:
containers:
memos:
envFrom:
- main
- secretRef:
name: memos-postgres16-creds
ingress:
main:
annotations:
kubernetes.io/ingress.class: traefik
kubernetes.io/tls-acme: "true"
kubernetes.io/ingress.allow-http: "false"
kubernetes.io/ingress.global-static-ip-name: ""
cert-manager.io/cluster-issuer: badhouseplants-issuer-http01
traefik.ingress.kubernetes.io/router.entrypoints: web,websecure
traefik.ingress.kubernetes.io/router.middlewares: org\-onpier-memosauth@kubernetescrd
ext-secret:
enabled: true
name: memos-basic-auth
data:
users: |
allanger:$apr1$kNwkQ0S.$9q29sib/xWEp3NDp.tquw/
middleware:
enabled: true
middlewares:
- name: memosauth
spec:
basicAuth:
secret: memos-basic-auth

View File

@ -0,0 +1,23 @@
env:
- name: ENC[AES256_GCM,data:iUkU/BNlitD6f6RQ,iv:x5aENGi0aw9gDh2a7h92DfxwQgdbacM3hHtnPVdIKWA=,tag:4vyOlP7XcC1F6pjnUieAuA==,type:str]
value: ENC[AES256_GCM,data:cFypu5mF+ktwjNFCBcy0U/1UIt4Fc/CAtH/SngvaaBXY0yinYzaiOQ==,iv:2VQ1Cpmppkz2ylt5NMP84o+0EQkI43jz267HNRjMugg=,tag:co3LJzwxbmxT09km65MVuw==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1vzkv97n2p7gfkw8dyx8ctz2kumattz89th2jq47zyjyrarmnssysdkw9v8
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwMXNsQjEwYXdaR0Y3bktt
UGFYS09Nc29IR0w0YmpweUtyV2pPbXFPeFJnCjZkclRSVjREanorbk5MKzJybWJI
UDlwdlVqWGZockVVeFVrNnZlZGp1NUkKLS0tIDhnUzgxdlFWa1NicVJEUk81cXp5
M2xvSjRrNUx5OFRqbUFpSXdyZ04xVzgKMsBwKA8dVSW9BR2jSTBxMPKevual5P8I
V+YUcIIUAP1sFjs4jVhTduBSMI/ZSArWYIEX+dQ46oGDLcRzODm9xQ==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-02-16T14:21:33Z"
mac: ENC[AES256_GCM,data:5nE5vx69ESp0HW0/uxYGp8Lq35Cjb5UpSmNkx1H4ux67K3xs3zEBSrupDuUqzrrj/WFFgTf8fIAnfu//bEUvRqtqkIOb7eTqBlQTCzdKWLMvfwhv3WnfXLljJvZZH+e430z7ayw6psfNbwm5sPr+/sPSijg31xv8x9wN8LfZqno=,iv:BKyKMqQ/eLiDspSlvMh0/I7hKb3xn2BUQhuHwrl+Pfc=,tag:is4SHDuAT2c3Ip2O5ifgWw==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.4

View File

@ -0,0 +1,15 @@
provider:
name: cloudflare
domainFilters:
- badhouseplants.net
excludeDomains:
- ru.badhouseplants.net
policy: sync
txtOwnerId: badhp
txtPrefix: badhp-ext-dns-
logFormat: json
logLevel: info
sources:
- service
- ingress
- crd

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