Compare commits

...

317 Commits

Author SHA1 Message Date
Devin Buhl
a79311746f chore: add media section with YouTube video link
Added a section for media with a YouTube video link.
2026-03-01 17:49:33 -05:00
Devin Buhl
0f808e2e48 chore: add media section to README
Added media section with links to YouTube videos.
2026-03-01 17:46:17 -05:00
Devin Buhl
e26d350966 chore: no more github sponsor support
Removed GitHub Sponsors section and related details from README.
2026-03-01 17:36:08 -05:00
renovate[bot]
2b197b8d47 fix(mise): update tool aqua:cli/cli ( 2.87.2 ➔ 2.87.3 ) (#2139)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-27 19:52:24 -05:00
renovate[bot]
6a88d02532 fix(mise): update tool uv ( 0.10.4 ➔ 0.10.7 ) (#2142)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-27 19:52:04 -05:00
renovate[bot]
91fb2aedc3 fix(mise): update tool aqua:kubernetes/kubernetes/kubectl ( 1.35.1 ➔ 1.35.2 ) (#2141)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-27 19:51:56 -05:00
renovate[bot]
ccb35dff71 fix(mise): update tool aqua:helmfile/helmfile ( 1.3.1 ➔ 1.3.2 ) (#2140)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-27 19:51:44 -05:00
renovate[bot]
d0ae7f2c90 fix(mise): update tool aqua:cilium/cilium-cli ( 0.19.1 ➔ 0.19.2 ) (#2138)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-27 19:51:28 -05:00
renovate[bot]
2949911568 fix(container): update image quay.io/jetstack/charts/cert-manager ( v1.19.3 ➔ v1.19.4 ) (#2137)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-27 19:51:20 -05:00
renovate[bot]
68da126acf fix(container): update image ghcr.io/siderolabs/kubelet ( v1.35.1 ➔ v1.35.2 ) (#2136)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-27 19:51:11 -05:00
renovate[bot]
080da2a1d4 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 82.2.1 ➔ 82.4.3 ) (#2144)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-27 19:50:56 -05:00
renovate[bot]
5b0a098223 feat(container): update flux-operator group (#2143)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-27 19:50:47 -05:00
renovate[bot]
adf1054c24 feat(mise): update tool aqua:fluxcd/flux2 ( 2.7.5 ➔ 2.8.1 ) (#2145)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-27 19:50:39 -05:00
renovate[bot]
1cf56473eb fix(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 82.2.0 ➔ 82.2.1 ) (#2135)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-22 15:45:52 -05:00
renovate[bot]
a850890ce6 feat(mise): update tool aqua:getsops/sops ( 3.11.0 ➔ 3.12.1 ) (#2132)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-22 12:21:06 -05:00
renovate[bot]
55b24ac369 fix(mise): update tool aqua:helmfile/helmfile ( 1.3.0 ➔ 1.3.1 ) (#2134)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-22 06:22:11 -05:00
renovate[bot]
6ad0de136f feat(mise): update tool aqua:helmfile/helmfile ( 1.2.3 ➔ 1.3.0 ) (#2133)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-20 20:44:32 -05:00
renovate[bot]
30d8fdfbdc feat(mise): update tool aqua:cli/cli ( 2.86.0 ➔ 2.87.2 ) (#2131)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-20 20:44:13 -05:00
renovate[bot]
d96e839c04 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 82.1.0 ➔ 82.2.0 ) (#2130)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-20 20:43:58 -05:00
renovate[bot]
f35a6ba7f7 fix(mise): update tool uv ( 0.10.3 ➔ 0.10.4 ) (#2129)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-20 20:43:48 -05:00
Devin Buhl
62e5f875a8 chore: update readme 2026-02-18 09:04:00 -05:00
Devin Buhl
c0629a2f48 chore: update readme 2026-02-18 09:00:58 -05:00
Devin Buhl
2fb226ba78 chore: update readme
Signed-off-by: Devin Buhl <devin@buhl.casa>
2026-02-18 08:34:40 -05:00
Devin Buhl
87a2e91557 chore: update readme
Signed-off-by: Devin Buhl <devin@buhl.casa>
2026-02-18 08:31:12 -05:00
renovate[bot]
56878e29da feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 82.0.2 ➔ 82.1.0 ) (#2128)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-17 16:18:33 -05:00
renovate[bot]
8bce2e8d73 fix(container): update image quay.io/cilium/charts/cilium ( 1.19.0 ➔ 1.19.1 ) (#2127)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-17 16:18:25 -05:00
renovate[bot]
dde2085b96 fix(mise): update tool aqua:cilium/cilium-cli ( 0.19.0 ➔ 0.19.1 ) (#2125)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-17 16:18:18 -05:00
renovate[bot]
52064de097 ci(github-action): update action tj-actions/changed-files ( v47.0.2 ➔ v47.0.4 ) 2026-02-17 21:15:47 +00:00
renovate[bot]
cc4c26fc04 fix(mise): update tool uv ( 0.10.2 ➔ 0.10.3 ) (#2126)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-16 19:39:40 -05:00
renovate[bot]
fd20b5ef08 feat(container)!: Update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 81.6.9 ➔ 82.0.2 ) (#2124)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-16 19:36:04 -05:00
renovate[bot]
97b904ce2f feat(container): update flux-operator group (#2122)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Devin Buhl <onedr0p@users.noreply.github.com>
2026-02-16 19:35:19 -05:00
renovate[bot]
8c40ea0860 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 81.5.0 ➔ 81.6.9 ) (#2123)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Devin Buhl <onedr0p@users.noreply.github.com>
2026-02-16 19:35:08 -05:00
Devin Buhl
f3bc0fd858 chore: downgrade cilium-cli version from 0.19.1 to 0.19.0 2026-02-16 19:33:31 -05:00
Devin Buhl
8e3f0f7360 chore: remove Mise Tools auto-merge settings
Removed auto-merge configuration for Mise Tools.
2026-02-16 19:32:59 -05:00
renovate[bot]
be346add11 fix(mise): update tool aqua:mikefarah/yq ( 4.52.3 ➔ 4.52.4 ) 2026-02-14 10:08:35 +00:00
renovate[bot]
d21c5a3663 fix(mise): update tool uv ( 0.10.0 ➔ 0.10.2 ) 2026-02-14 06:00:54 +00:00
renovate[bot]
1a861ba443 fix(mise): update tool aqua:budimanjojo/talhelper ( 3.1.4 ➔ 3.1.5 ) 2026-02-14 06:00:36 +00:00
renovate[bot]
922488bd98 fix(mise): update tool aqua:siderolabs/talos ( 1.12.3 ➔ 1.12.4 ) 2026-02-14 01:56:26 +00:00
renovate[bot]
24bf17db4f fix(mise): update tool aqua:mikefarah/yq ( 4.52.2 ➔ 4.52.3 ) 2026-02-14 01:56:08 +00:00
renovate[bot]
b3e593fab0 fix(mise): update tool aqua:kubernetes/kubernetes/kubectl ( 1.35.0 ➔ 1.35.1 ) 2026-02-14 01:55:29 +00:00
renovate[bot]
cc9d4e3d95 fix(mise): update tool aqua:helm/helm ( 4.1.0 ➔ 4.1.1 ) 2026-02-14 01:55:10 +00:00
renovate[bot]
2c473d802c fix(container): update image ghcr.io/stakater/charts/reloader ( 2.2.7 ➔ 2.2.8 ) (#2120)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-13 20:54:50 -05:00
renovate[bot]
b9bf6e754e fix(container): update image ghcr.io/siderolabs/kubelet ( v1.35.0 ➔ v1.35.1 ) (#2119)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-13 20:54:39 -05:00
renovate[bot]
4f4b018e5e fix(container): update image ghcr.io/siderolabs/installer ( v1.12.3 ➔ v1.12.4 ) (#2118)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-13 20:54:30 -05:00
renovate[bot]
7b1c5b9cef fix(mise): update tool aqua:cilium/cilium-cli ( 0.19.0 ➔ 0.19.1 ) 2026-02-14 01:41:58 +00:00
renovate[bot]
183ca630a4 ci(github-action): update action tj-actions/changed-files ( v47.0.1 ➔ v47.0.2 ) 2026-02-14 01:41:31 +00:00
renovate[bot]
8dd895355c feat(container): update image docker.io/cloudflare/cloudflared ( 2026.1.2 ➔ 2026.2.0 ) (#2116)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-12 09:07:14 -05:00
renovate[bot]
d60629b654 fix(container): update image ghcr.io/siderolabs/installer ( v1.12.2 ➔ v1.12.3 ) (#2117)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-12 09:07:11 -05:00
renovate[bot]
9e459236a1 fix(mise): update tool aqua:budimanjojo/talhelper ( 3.1.3 ➔ 3.1.4 ) 2026-02-08 17:48:36 +00:00
renovate[bot]
5bc713b62e fix(mise): update tool aqua:siderolabs/talos ( 1.12.2 ➔ 1.12.3 ) 2026-02-07 20:45:21 +00:00
renovate[bot]
0785808104 feat(mise): update tool aqua:cloudflare/cloudflared ( 2026.1.2 ➔ 2026.2.0 ) 2026-02-07 01:15:33 +00:00
renovate[bot]
0816f75886 feat(container): update image mirror.gcr.io/envoyproxy/gateway-helm ( v1.6.3 ➔ v1.7.0 ) (#2115)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-05 22:04:14 -05:00
renovate[bot]
5e56d0f0a2 feat(container): update image quay.io/cilium/charts/cilium ( 1.18.6 ➔ 1.19.0 ) (#2114)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-05 22:04:03 -05:00
renovate[bot]
3886fbe520 fix(container): update image quay.io/jetstack/charts/cert-manager ( v1.19.2 ➔ v1.19.3 ) (#2112)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-05 21:44:14 -05:00
renovate[bot]
d0ed9107b4 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 81.4.2 ➔ 81.5.0 ) (#2113)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-02-05 21:44:06 -05:00
Devin Buhl
f311a5ea2f fix(cilium): replace localRedirectPolicy with localRedirectPolicies 2026-02-05 21:43:35 -05:00
renovate[bot]
b17532ccd3 feat(mise): update tool uv ( 0.9.28 ➔ 0.10.0 ) 2026-02-06 02:43:20 +00:00
renovate[bot]
c592b8a7ae fix(mise): update tool python ( 3.14.2 ➔ 3.14.3 ) 2026-02-06 02:42:30 +00:00
renovate[bot]
82422d97dc fix(mise): update tool aqua:mikefarah/yq ( 4.52.1 ➔ 4.52.2 ) 2026-02-01 00:46:00 +00:00
Devin Buhl
6bcb7c2766 chore: remove templating tools in mise with tidy (#2111) 2026-01-31 08:25:33 -05:00
Devin Buhl
a25598e1d3 chore: add comments next to tools required for templating in mise 2026-01-31 08:16:44 -05:00
Devin Buhl
6c4cbcb9a5 chore: add uv and pipx to mise (#2110) 2026-01-31 08:13:54 -05:00
renovate[bot]
5bc6f2c63e feat(mise): update tool aqua:mikefarah/yq ( 4.50.1 ➔ 4.52.1 ) 2026-01-31 05:54:40 +00:00
renovate[bot]
5e6697b7e7 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 81.2.2 ➔ 81.4.2 ) (#2109)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-30 20:18:16 -05:00
renovate[bot]
2cd8e4d123 feat(mise): update tool aqua:go-task/task ( 3.47.0 ➔ 3.48.0 ) 2026-01-31 01:14:45 +00:00
renovate[bot]
fe77400a53 fix(container): update image mirror.gcr.io/envoyproxy/gateway-helm ( v1.6.2 ➔ v1.6.3 ) (#2108)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-30 20:14:13 -05:00
renovate[bot]
8aed032e0d fix(container): update image docker.io/cloudflare/cloudflared ( 2026.1.1 ➔ 2026.1.2 ) (#2107)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-30 20:14:06 -05:00
renovate[bot]
2617fc01d3 fix(mise): update tool aqua:cloudflare/cloudflared ( 2026.1.1 ➔ 2026.1.2 ) 2026-01-31 00:50:56 +00:00
renovate[bot]
f4f8f3a1e7 fix(mise): update tool aqua:cue-lang/cue ( 0.15.3 ➔ 0.15.4 ) 2026-01-31 00:50:38 +00:00
renovate[bot]
c675ad00dc feat(mise): update tool aqua:go-task/task ( 3.46.4 ➔ 3.47.0 ) 2026-01-25 00:30:50 +00:00
renovate[bot]
223decd6b6 feat(container): update flux-operator group (#2105)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-24 03:55:43 -05:00
renovate[bot]
a24162b36a feat(mise): update tool aqua:helm/helm ( 4.0.5 ➔ 4.1.0 ) 2026-01-24 03:36:51 +00:00
renovate[bot]
9e6a7d7de6 feat(mise): update tool aqua:cli/cli ( 2.85.0 ➔ 2.86.0 ) 2026-01-24 03:36:28 +00:00
renovate[bot]
cdd4c33938 ci(github-action): update action jdx/mise-action ( v3.5.1 ➔ v3.6.1 ) 2026-01-24 03:35:44 +00:00
renovate[bot]
40c5b938e6 fix(mise): update tool aqua:siderolabs/talos ( 1.12.1 ➔ 1.12.2 ) 2026-01-24 03:35:29 +00:00
renovate[bot]
f257cd078b fix(container): update image ghcr.io/siderolabs/installer ( v1.12.1 ➔ v1.12.2 ) (#2104)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-23 22:35:07 -05:00
renovate[bot]
c0c4524828 fix(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 81.2.0 ➔ 81.2.2 ) (#2103)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-23 22:34:59 -05:00
renovate[bot]
f778ffd052 fix(container): update image ghcr.io/coredns/charts/coredns ( 1.45.0 ➔ 1.45.2 ) (#2102)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-23 22:34:52 -05:00
renovate[bot]
cfeaa16441 fix(mise): update tool aqua:budimanjojo/talhelper ( 3.1.2 ➔ 3.1.3 ) 2026-01-24 01:55:10 +00:00
renovate[bot]
1cbd1faab0 ci(github-action): update action actions/checkout ( v6.0.1 ➔ v6.0.2 ) 2026-01-24 01:54:26 +00:00
renovate[bot]
2ac27e18f1 feat(container): update flux-operator group (#2098)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-20 21:44:11 -05:00
renovate[bot]
1e8b8b3dd5 feat(mise)!: Update tool aqua:cloudflare/cloudflared ( 2025.11.1 ➔ 2026.1.1 ) (#2101)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-20 21:44:01 -05:00
renovate[bot]
8a49b7f45c feat(container)!: Update image docker.io/cloudflare/cloudflared ( 2025.11.1 ➔ 2026.1.1 ) (#2100)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-20 21:43:54 -05:00
renovate[bot]
6d22e69d27 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 81.0.0 ➔ 81.2.0 ) (#2099)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-20 21:43:46 -05:00
renovate[bot]
99d175c8e2 fix(mise): update tool aqua:budimanjojo/talhelper ( 3.1.1 ➔ 3.1.2 ) 2026-01-21 02:04:36 +00:00
Devin Buhl
fb0a6a12f9 fix: 6 days LE certificates (#2097) 2026-01-20 21:03:20 -05:00
Devin Buhl
a1e88e878c fix: use the default flux distro version
Updated the artifact version for the Flux operator.
2026-01-18 11:58:16 -05:00
Devin Buhl
af186dbe5d fix(talos): add default route configuration (#2096) 2026-01-18 09:36:07 -05:00
renovate[bot]
7cc95d3241 feat(container)!: Update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 80.14.4 ➔ 81.0.0 ) (#2095)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-16 21:13:54 -05:00
Devin Buhl
5cd38a4383 feat: sync envoy proxy config
Updated compression settings to use Zstd and adjusted related configurations.
2026-01-16 08:18:03 -05:00
renovate[bot]
89b8da3f45 feat(mise): update tool aqua:cli/cli ( 2.83.2 ➔ 2.85.0 ) 2026-01-16 13:15:02 +00:00
renovate[bot]
7623eaf947 fix(container): update image mirror.gcr.io/envoyproxy/gateway-helm ( v1.6.1 ➔ v1.6.2 ) (#2090)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Devin Buhl <onedr0p@users.noreply.github.com>
2026-01-16 08:14:41 -05:00
renovate[bot]
2bebaf6a2f fix(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 80.14.3 ➔ 80.14.4 ) (#2094)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-16 08:14:25 -05:00
renovate[bot]
86302aaa72 fix(container): update image ghcr.io/bjw-s-labs/helm/app-template ( 4.6.0 ➔ 4.6.2 ) (#2093)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-16 08:14:19 -05:00
renovate[bot]
fe698f1ab1 fix(mise): update tool aqua:helm/helm ( 4.0.4 ➔ 4.0.5 ) 2026-01-16 13:13:02 +00:00
renovate[bot]
6884de642f fix(mise): update tool aqua:budimanjojo/talhelper ( 3.1.0 ➔ 3.1.1 ) 2026-01-16 13:12:35 +00:00
renovate[bot]
24d5b826f6 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 80.13.3 ➔ 80.14.3 ) (#2091)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Devin Buhl <onedr0p@users.noreply.github.com>
2026-01-15 11:24:36 -05:00
Devin Buhl
b0971242f7 chore: update talhelper version to 3.1.0 (#2092) 2026-01-15 11:24:27 -05:00
Devin Buhl
9a2cb1fa3b revert: "feat(mise): update tool aqua:budimanjojo/talhelper ( 3.0.45 ➔ 3.1.0 )" 2026-01-14 10:59:04 -05:00
renovate[bot]
99e670aa85 feat(mise): update tool aqua:cilium/cilium-cli ( 0.18.9 ➔ 0.19.0 ) 2026-01-14 15:53:24 +00:00
renovate[bot]
4eeb49c9cd feat(mise): update tool aqua:budimanjojo/talhelper ( 3.0.45 ➔ 3.1.0 ) 2026-01-14 15:53:04 +00:00
Devin Buhl
76dd86e878 chore: migrate to official cilium OCI chart (#2089) 2026-01-13 09:10:11 -05:00
renovate[bot]
467f1b3634 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 80.11.0 ➔ 80.13.3 ) (#2086)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-13 09:09:53 -05:00
renovate[bot]
e4474ef6b6 feat(container): update image ghcr.io/bjw-s-labs/helm/app-template ( 4.5.0 ➔ 4.6.0 ) (#2085)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-13 09:09:46 -05:00
renovate[bot]
dcafb24ad2 fix(container): update image ghcr.io/k8s-gateway/charts/k8s-gateway ( 3.4.0 ➔ 3.4.1 ) (#2088)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-13 09:09:39 -05:00
renovate[bot]
3e4a3ef36f feat(container)!: Update image ghcr.io/mendhak/http-https-echo ( 38 ➔ 39 ) (#2087)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-13 09:09:33 -05:00
Devin Buhl
3dd05b2883 fix: helm v4 changes (#2084) 2026-01-07 10:17:54 -05:00
renovate[bot]
778fcc4e3b fix(container): update image ghcr.io/siderolabs/installer ( v1.12.0 ➔ v1.12.1 ) (#2082)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-05 19:45:19 -05:00
renovate[bot]
3c17e076ea feat(container): update image ghcr.io/k8s-gateway/charts/k8s-gateway ( 3.3.0 ➔ 3.4.0 ) (#2083)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-05 19:44:25 -05:00
renovate[bot]
06edc1753d fix(mise): update tool aqua:siderolabs/talos ( 1.12.0 ➔ 1.12.1 ) 2026-01-06 00:43:03 +00:00
renovate[bot]
ce63f8225f fix(mise): update tool aqua:budimanjojo/talhelper ( 3.0.44 ➔ 3.0.45 ) 2026-01-06 00:42:43 +00:00
renovate[bot]
56a762ef87 feat(container): update image ghcr.io/home-operations/charts-mirror/external-dns ( 1.19.0 ➔ 1.20.0 ) (#2079)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-05 19:42:07 -05:00
renovate[bot]
9031abaa06 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 80.9.1 ➔ 80.11.0 ) (#2080)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-05 10:15:59 -05:00
renovate[bot]
db9f0ff7a4 feat(container): update image ghcr.io/k8s-gateway/charts/k8s-gateway ( 3.2.8 ➔ 3.3.0 ) (#2081)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-04 14:39:30 -05:00
Devin Lauderdale
97e2c61865 feat: add kernel_modules argument to talconfig (#2076) 2025-12-31 08:31:42 -05:00
renovate[bot]
333bae6447 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 80.8.0 ➔ 80.9.1 ) (#2078)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-30 17:54:54 -05:00
renovate[bot]
3975fff171 fix(mise): update tool aqua:cue-lang/cue ( 0.15.1 ➔ 0.15.3 ) 2025-12-30 22:53:04 +00:00
Jason Whitelock
35996440e3 Update talhelper version to 3.0.44 (#2077) 2025-12-30 17:52:33 -05:00
renovate[bot]
662f244401 fix(mise): update tool aqua:filosottile/age ( 1.3.0 ➔ 1.3.1 ) 2025-12-28 14:13:48 +00:00
David Luo
855becb3bf fix: swap link for k8s-gateway to maintained fork (#2074) 2025-12-28 06:57:52 -05:00
renovate[bot]
f5dae5a666 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 80.6.0 ➔ 80.8.0 ) (#2073)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-28 06:57:15 -05:00
renovate[bot]
d2a8f117af feat(mise): update tool aqua:filosottile/age ( 1.2.1 ➔ 1.3.0 ) 2025-12-28 01:53:32 +00:00
renovate[bot]
7d88f1518e ci(github-action): update action ghcr.io/allenporter/flux-local ( v8.0.1 ➔ v8.1.0 ) 2025-12-27 17:23:05 +00:00
renovate[bot]
239b38295a fix(mise): update tool aqua:go-task/task ( 3.46.3 ➔ 3.46.4 ) 2025-12-27 00:57:32 +00:00
renovate[bot]
43376e2e60 feat(container): update flux-operator group (#2071)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-24 11:39:15 -05:00
renovate[bot]
67f47e1bf7 feat(container): update image ghcr.io/siderolabs/kubelet ( v1.34.3 ➔ v1.35.0 ) (#2068)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-24 11:39:02 -05:00
renovate[bot]
aebf566f23 feat(container): update image ghcr.io/siderolabs/installer ( v1.11.6 ➔ v1.12.0 ) (#2072)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-24 11:35:08 -05:00
renovate[bot]
530438ef40 feat(mise): update tool aqua:siderolabs/talos ( 1.11.6 ➔ 1.12.0 ) 2025-12-24 16:32:01 +00:00
Devin Buhl
58ca670090 fix: set trustedCIDRs for clientIPDetection 2025-12-21 07:55:14 -05:00
renovate[bot]
8dc1d6ae26 fix(container): update image ghcr.io/siderolabs/installer ( v1.11.5 ➔ v1.11.6 ) (#2065)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 07:06:38 -05:00
renovate[bot]
a564dfad24 feat(container): update flux-operator group (#2066)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 07:06:22 -05:00
renovate[bot]
9a2190b1cb fix(container): update image ghcr.io/home-operations/charts-mirror/cilium ( 1.18.4 ➔ 1.18.5 ) (#2064)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 07:06:07 -05:00
renovate[bot]
867c865723 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 80.4.1 ➔ 80.6.0 ) (#2067)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 07:05:48 -05:00
renovate[bot]
1e5ec86683 feat(container): update image ghcr.io/spegel-org/helm-charts/spegel ( 0.5.1 ➔ 0.6.0 ) (#2069)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 07:05:31 -05:00
renovate[bot]
a5dbd79c54 feat(mise): update tool aqua:kubernetes/kubernetes/kubectl ( 1.34.3 ➔ 1.35.0 ) 2025-12-20 09:46:40 +00:00
renovate[bot]
2171f3ddaf feat(mise): update tool aqua:go-task/task ( 3.45.5 ➔ 3.46.3 ) 2025-12-20 09:46:21 +00:00
renovate[bot]
4f139e6590 fix(mise): update tool aqua:siderolabs/talos ( 1.11.5 ➔ 1.11.6 ) 2025-12-20 05:35:24 +00:00
renovate[bot]
58dc733461 fix(mise): update tool aqua:budimanjojo/talhelper ( 3.0.42 ➔ 3.0.43 ) 2025-12-20 05:35:10 +00:00
renovate[bot]
4a791c88cf fix(mise): update tool aqua:helmfile/helmfile ( 1.2.2 ➔ 1.2.3 ) 2025-12-20 02:06:05 +00:00
renovate[bot]
ec6bf70eb6 fix(mise): update tool aqua:budimanjojo/talhelper ( 3.0.41 ➔ 3.0.42 ) 2025-12-20 02:05:49 +00:00
Wasurerarenai
c3d5a004a8 Add permissions for release job in workflow (#2063) 2025-12-17 11:24:33 -05:00
renovate[bot]
0216e36f9c fix(container): update image ghcr.io/stakater/charts/reloader ( 2.2.6 ➔ 2.2.7 ) (#2062)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-15 10:00:06 -05:00
Aniss Grabsi
8ef2f9d1bb Allow renovate to create the Renovate Dashboard for the first time (#2060) 2025-12-14 16:04:01 -05:00
renovate[bot]
dae0dbee0d ci(github-action): update action tj-actions/changed-files ( v47.0.0 ➔ v47.0.1 ) 2025-12-14 13:49:21 +00:00
renovate[bot]
c553312119 feat(mise): update tool aqua:mikefarah/yq ( 4.49.2 ➔ 4.50.1 ) 2025-12-14 08:39:16 +00:00
renovate[bot]
44d6be26b6 fix(mise): update tool aqua:kubernetes/kubernetes/kubectl ( 1.34.0 ➔ 1.34.3 ) 2025-12-13 11:41:12 +00:00
Bogdan
6de0c86710 chore: fix kubectl package name in mise.toml (#2059) 2025-12-13 06:40:44 -05:00
renovate[bot]
3143a47c61 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 80.2.0 ➔ 80.4.1 ) (#2058)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-12 21:59:59 -05:00
renovate[bot]
c6779d39a0 fix(container): update image ghcr.io/stakater/charts/reloader ( 2.2.5 ➔ 2.2.6 ) (#2057)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-12 21:59:46 -05:00
renovate[bot]
6ca9318aa7 fix(mise): update tool aqua:helm/helm ( 3.19.2 ➔ 3.19.4 ) 2025-12-13 01:14:36 +00:00
renovate[bot]
2bab9baecf fix(mise): update tool aqua:cli/cli ( 2.83.1 ➔ 2.83.2 ) 2025-12-13 01:09:09 +00:00
renovate[bot]
4f0a57b645 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 80.0.0 ➔ 80.2.0 ) (#2056)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-10 10:48:19 -05:00
renovate[bot]
754a13a815 fix(container): update image quay.io/jetstack/charts/cert-manager ( v1.19.1 ➔ v1.19.2 ) (#2055)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-10 10:48:13 -05:00
renovate[bot]
42167ee6aa fix(container): update image ghcr.io/siderolabs/kubelet ( v1.34.2 ➔ v1.34.3 ) (#2054)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-10 10:48:06 -05:00
Jason Whitelock
cb89ff5425 Add mise-vscode extension recommendation (#2053) 2025-12-08 07:34:36 -05:00
renovate[bot]
773e8ec404 feat(container)!: Update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 79.12.0 ➔ 80.0.0 ) (#2052)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-07 19:06:29 -05:00
renovate[bot]
057c9dcbb2 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 79.9.0 ➔ 79.12.0 ) (#2051)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-06 07:52:49 -05:00
renovate[bot]
7f04993c48 feat(container): update image ghcr.io/bjw-s-labs/helm/app-template ( 4.4.0 ➔ 4.5.0 ) (#2050)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-06 07:52:41 -05:00
renovate[bot]
e1a0fa5e44 feat(container): update flux-operator group (#2049)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-06 07:52:31 -05:00
renovate[bot]
4054dad3ef fix(container): update image mirror.gcr.io/envoyproxy/gateway-helm ( v1.6.0 ➔ v1.6.1 ) (#2048)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-06 07:52:15 -05:00
renovate[bot]
290d9201e2 fix(mise): update tool python ( 3.14.0 ➔ 3.14.2 ) 2025-12-06 04:41:24 +00:00
renovate[bot]
81e8caead2 fix(mise): update tool pipx:makejinja ( 2.8.1 ➔ 2.8.2 ) 2025-12-06 04:41:09 +00:00
renovate[bot]
885057f912 fix(mise): update tool aqua:cilium/cilium-cli ( 0.18.8 ➔ 0.18.9 ) 2025-12-06 02:25:39 +00:00
renovate[bot]
4c0efbb18d ci(github-action): update action actions/checkout ( v6.0.0 ➔ v6.0.1 ) 2025-12-06 02:25:25 +00:00
Devin Buhl
1762c86490 chore: update namespace in certificate command 2025-12-05 09:53:00 -05:00
Devin Buhl
c43ababf00 chore: update README
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-12-05 09:27:41 -05:00
Devin Buhl
b846e30152 chore: update README
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-12-05 09:14:58 -05:00
Devin Buhl
d2fa7c478b chore: add sysctl net.ipv4.tcp_slow_start_after_idle 2025-11-30 08:55:16 -05:00
renovate[bot]
5b1c85792b feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 79.7.1 ➔ 79.9.0 ) (#2046)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-29 07:07:40 -05:00
renovate[bot]
d6fafbf735 feat(container): update flux-operator group (#2045)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-29 07:07:24 -05:00
renovate[bot]
b793f07bfc fix(mise): update tool aqua:mikefarah/yq ( 4.49.1 ➔ 4.49.2 ) 2025-11-29 04:49:48 +00:00
renovate[bot]
07680c967b fix(mise): update tool aqua:helmfile/helmfile ( 1.2.1 ➔ 1.2.2 ) 2025-11-29 01:04:36 +00:00
renovate[bot]
6d1119a2e1 fix(mise): update tool aqua:fluxcd/flux2 ( 2.7.3 ➔ 2.7.5 ) 2025-11-29 01:04:23 +00:00
Bogdan
9e079595de Add label for digest update types (#2044) 2025-11-28 06:50:56 -05:00
renovate[bot]
8907757a70 fix(mise): update tool aqua:budimanjojo/talhelper ( 3.0.39 ➔ 3.0.41 ) 2025-11-24 16:17:43 +00:00
renovate[bot]
43ce82058d ci(github-action): update action jdx/mise-action ( v3.5.0 ➔ v3.5.1 ) 2025-11-24 16:17:25 +00:00
renovate[bot]
502681781a fix(mise): update tool aqua:helmfile/helmfile ( 1.2.0 ➔ 1.2.1 ) 2025-11-23 13:00:49 +00:00
Devin Buhl
006696d87f chore: enable cilium socketLB 2025-11-22 08:10:36 -05:00
renovate[bot]
b8b164f931 ci(github-action): update action jdx/mise-action ( v3.4.1 ➔ v3.5.0 ) 2025-11-22 12:18:29 +00:00
renovate[bot]
7c5518199f ci(github-action): update action ghcr.io/allenporter/flux-local ( v8.0.0 ➔ v8.0.1 ) 2025-11-22 12:18:18 +00:00
renovate[bot]
735ff2c1ba feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 79.5.0 ➔ 79.7.1 ) (#2042)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-22 06:22:42 -05:00
renovate[bot]
e578527148 ci(github-action)!: Update action actions/checkout ( v5.0.1 ➔ v6.0.0 ) (#2043)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-22 06:22:21 -05:00
renovate[bot]
826bdd6e56 feat(mise): update tool aqua:mikefarah/yq ( 4.48.2 ➔ 4.49.1 ) 2025-11-22 04:48:12 +00:00
renovate[bot]
e9e2297350 feat(mise): update tool aqua:helmfile/helmfile ( 1.1.9 ➔ 1.2.0 ) 2025-11-22 04:47:55 +00:00
renovate[bot]
49353ee17c fix(mise): update tool aqua:cue-lang/cue ( 0.15.0 ➔ 0.15.1 ) 2025-11-22 00:49:45 +00:00
renovate[bot]
ca3aa47da0 ci(github-action): update action actions/checkout ( v5.0.0 ➔ v5.0.1 ) 2025-11-22 00:49:31 +00:00
Devin Buhl
e9daab2adf chore: update Talos installation instructions in README
Added guidance on selecting CPU-specific system extensions for Talos installation.
2025-11-17 10:04:10 -05:00
Tanguille
02a15b3b78 docs: add instructions to add nodes (#2040) 2025-11-16 08:10:56 -05:00
Bogdan
1427c95167 chore: disable envoy and gatewayAPI for cilium (#2041) 2025-11-16 08:10:31 -05:00
renovate[bot]
7a3a216a19 fix(mise): update tool aqua:mikefarah/yq ( 4.48.1 ➔ 4.48.2 ) 2025-11-15 06:07:15 +00:00
renovate[bot]
d61fbd08ad feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 79.4.1 ➔ 79.5.0 ) (#2036)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-14 08:55:51 -05:00
renovate[bot]
4f87ae748f feat(container): update image mirror.gcr.io/envoyproxy/gateway-helm ( v1.5.4 ➔ v1.6.0 ) (#2037)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Devin Buhl <onedr0p@users.noreply.github.com>
2025-11-14 08:55:43 -05:00
renovate[bot]
d6bda80aaf ci(github-action)!: Update action ghcr.io/allenporter/flux-local ( v7.11.0 ➔ v8.0.0 ) (#2038)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-14 08:52:58 -05:00
renovate[bot]
7007835b41 fix(mise): update tool aqua:helm/helm ( 3.19.0 ➔ 3.19.2 ) 2025-11-14 13:45:11 +00:00
renovate[bot]
6f066ebe15 fix(mise): update tool aqua:go-task/task ( 3.45.4 ➔ 3.45.5 ) 2025-11-14 13:44:58 +00:00
renovate[bot]
831cec446c fix(container): update image ghcr.io/siderolabs/kubelet ( v1.34.1 ➔ v1.34.2 ) (#2035)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-14 08:44:30 -05:00
renovate[bot]
5475d33e3e fix(container): update image ghcr.io/home-operations/charts-mirror/cilium ( 1.18.3 ➔ 1.18.4 ) (#2034)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-14 08:44:16 -05:00
renovate[bot]
7727943008 fix(mise): update tool aqua:cli/cli ( 2.83.0 ➔ 2.83.1 ) 2025-11-14 13:43:21 +00:00
renovate[bot]
c1c365c3c8 ci(github-action): update action jdx/mise-action ( v3.4.0 ➔ v3.4.1 ) 2025-11-14 13:42:55 +00:00
renovate[bot]
90fc72a6f1 fix(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 79.4.0 ➔ 79.4.1 ) (#2033)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-08 16:58:48 -05:00
renovate[bot]
f6e9f8598b feat(container): update image ghcr.io/spegel-org/helm-charts/spegel ( 0.4.0 ➔ 0.5.1 ) (#2032)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Devin Buhl <onedr0p@users.noreply.github.com>
2025-11-08 06:06:32 -05:00
renovate[bot]
879f17d477 fix(container): update image ghcr.io/siderolabs/installer ( v1.11.3 ➔ v1.11.5 ) (#2028)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-08 06:04:53 -05:00
renovate[bot]
649478fb06 fix(container): update image ghcr.io/stakater/charts/reloader ( 2.2.3 ➔ 2.2.5 ) (#2029)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-08 06:04:33 -05:00
renovate[bot]
bf0ec86740 feat(container): update image docker.io/cloudflare/cloudflared ( 2025.10.1 ➔ 2025.11.1 ) (#2030)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-08 06:04:19 -05:00
renovate[bot]
c757e9331d feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 79.1.1 ➔ 79.4.0 ) (#2031)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-08 06:04:06 -05:00
renovate[bot]
77ca7d2998 feat(mise): update tool aqua:cue-lang/cue ( 0.14.2 ➔ 0.15.0 ) 2025-11-08 09:53:20 +00:00
renovate[bot]
e58a84f9b1 feat(mise): update tool aqua:cloudflare/cloudflared ( 2025.10.1 ➔ 2025.11.1 ) 2025-11-08 09:53:03 +00:00
renovate[bot]
e9a4dc8a5e feat(mise): update tool aqua:cli/cli ( 2.82.1 ➔ 2.83.0 ) 2025-11-08 06:06:09 +00:00
renovate[bot]
1e05f38f43 ci(github-action): update action jdx/mise-action ( v3.3.1 ➔ v3.4.0 ) 2025-11-08 06:05:41 +00:00
renovate[bot]
23d5a00a45 fix(mise): update tool aqua:siderolabs/talos ( 1.11.3 ➔ 1.11.5 ) 2025-11-08 00:53:44 +00:00
renovate[bot]
82a68fcd59 fix(mise): update tool aqua:budimanjojo/talhelper ( 3.0.38 ➔ 3.0.39 ) 2025-11-08 00:53:29 +00:00
renovate[bot]
4f6c4feb0f fix(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 79.1.0 ➔ 79.1.1 ) (#2027)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-02 16:55:43 -05:00
renovate[bot]
16a144e654 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 79.0.1 ➔ 79.1.0 ) (#2026)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-01 06:56:37 -04:00
renovate[bot]
fc97512b14 feat(container): update flux-operator group (#2024)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-31 20:55:11 -04:00
renovate[bot]
67e39f298b feat(container)!: Update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 78.5.0 ➔ 79.0.1 ) (#2025)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-31 20:54:54 -04:00
renovate[bot]
3401fcb5eb fix(mise): update tool aqua:helmfile/helmfile ( 1.1.7 ➔ 1.1.9 ) 2025-11-01 00:33:28 +00:00
renovate[bot]
c4b5cd4d1a fix(container): update image ghcr.io/k8s-gateway/charts/k8s-gateway ( 3.2.7 ➔ 3.2.8 ) (#2023)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-31 20:33:05 -04:00
renovate[bot]
0628925610 fix(container): update image docker.io/cloudflare/cloudflared ( 2025.10.0 ➔ 2025.10.1 ) (#2022)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-31 20:32:57 -04:00
renovate[bot]
4656ad7d09 fix(mise): update tool aqua:fluxcd/flux2 ( 2.7.2 ➔ 2.7.3 ) 2025-11-01 00:14:26 +00:00
renovate[bot]
65eb01e172 fix(mise): update tool aqua:cloudflare/cloudflared ( 2025.10.0 ➔ 2025.10.1 ) 2025-11-01 00:14:10 +00:00
wasurerarenai
5e90b3c1a3 fix: template Taskfile.yaml - talenv.sops.yaml patch (#2021) 2025-10-25 07:48:01 -04:00
Antoine Bertin
9f0406e482 fix(talos): admissionControl patch (#2020) 2025-10-25 07:02:52 -04:00
renovate[bot]
e6f368a76b feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 78.4.0 ➔ 78.5.0 ) (#2018)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-25 06:57:28 -04:00
renovate[bot]
1de5259240 fix(container): update image mirror.gcr.io/envoyproxy/gateway-helm ( 1.5.3 ➔ v1.5.4 ) (#2017)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-25 06:57:16 -04:00
renovate[bot]
3b218a4f43 fix(container): update image ghcr.io/home-operations/charts-mirror/cilium ( 1.18.2 ➔ 1.18.3 ) (#2016)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-25 06:57:06 -04:00
renovate[bot]
81964af988 feat(container)!: Update image ghcr.io/mendhak/http-https-echo ( 37 ➔ 38 ) (#2019)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-25 06:56:53 -04:00
renovate[bot]
b219f792ef ci(github-action): update action ghcr.io/allenporter/flux-local ( v7.10.1 ➔ v7.11.0 ) 2025-10-25 04:51:49 +00:00
renovate[bot]
8189126c5d fix(mise): update tool aqua:cli/cli ( 2.82.0 ➔ 2.82.1 ) 2025-10-25 02:10:46 +00:00
renovate[bot]
7a83c819e4 fix(mise): update tool aqua:cilium/cilium-cli ( 0.18.7 ➔ 0.18.8 ) 2025-10-25 02:10:28 +00:00
renovate[bot]
632bf35507 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 78.3.1 ➔ 78.4.0 ) (#2015)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 19:36:52 -04:00
Devin Buhl
b1e2aa9ed9 fix: path to cluster-secrets.sops.yaml 2025-10-21 07:29:25 -04:00
renovate[bot]
2c1a4e3dd3 fix(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 78.3.0 ➔ 78.3.1 ) (#2013)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-18 05:56:16 -04:00
renovate[bot]
31afb30961 feat(container): update image ghcr.io/coredns/charts/coredns ( 1.44.3 ➔ 1.45.0 ) (#2014)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-18 05:56:04 -04:00
Devin Buhl
7f257bfa62 chore: update README
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-10-16 17:56:55 -04:00
Devin Buhl
b7bd604568 chore: remove yaml jsonschemas
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-10-16 17:53:17 -04:00
Devin Buhl
129d8bd92d feat: switch to envoy-gateway (#2011) 2025-10-16 17:50:34 -04:00
Devin Buhl
c69a0ab8df feat: remove namespace component (#2010) 2025-10-16 13:45:33 -04:00
Devin Buhl
5f78c89a6e feat: set helmrelease defaults via ks patch (#2009) 2025-10-16 13:39:43 -04:00
renovate[bot]
46be724751 feat(container): update image ghcr.io/wiremind/wiremind-helm-charts/gateway-api-crds ( 1.3.0 ➔ 1.4.0 ) (#2008)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-16 13:16:47 -04:00
renovate[bot]
295f495205 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 78.2.0 ➔ 78.3.0 ) (#2007)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-16 13:16:41 -04:00
renovate[bot]
bb292ac27d feat(container): update image ghcr.io/bjw-s-labs/helm/app-template ( 4.3.0 ➔ 4.4.0 ) (#2006)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-16 13:16:34 -04:00
renovate[bot]
b23b480dc5 feat(container): update image docker.io/cloudflare/cloudflared ( 2025.9.1 ➔ 2025.10.0 ) (#2005)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-16 13:16:27 -04:00
renovate[bot]
41326abae6 fix(container): update image quay.io/jetstack/charts/cert-manager ( v1.19.0 ➔ v1.19.1 ) (#2004)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-16 13:16:16 -04:00
renovate[bot]
fbc602fe38 fix(container): update image ghcr.io/siderolabs/installer ( v1.11.2 ➔ v1.11.3 ) (#2003)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-16 13:16:03 -04:00
renovate[bot]
16ffa092b2 feat(mise): update tool aqua:cloudflare/cloudflared ( 2025.9.1 ➔ 2025.10.0 ) 2025-10-16 17:15:55 +00:00
renovate[bot]
11f4a1731e feat(mise): update tool aqua:cli/cli ( 2.81.0 ➔ 2.82.0 ) 2025-10-16 17:15:35 +00:00
renovate[bot]
c678ab7535 fix(mise): update tool aqua:siderolabs/talos ( 1.11.2 ➔ 1.11.3 ) 2025-10-16 17:14:31 +00:00
renovate[bot]
3398d67cda fix(mise): update tool aqua:budimanjojo/talhelper ( 3.0.37 ➔ 3.0.38 ) 2025-10-16 17:14:16 +00:00
renovate[bot]
55726ef788 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 78.1.0 ➔ 78.2.0 ) (#2002)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-12 09:08:49 -04:00
renovate[bot]
77c39856d6 feat(mise): update tool aqua:mikefarah/yq ( 4.47.2 ➔ 4.48.1 ) 2025-10-12 04:33:20 +00:00
renovate[bot]
e12247c974 feat(container)!: Update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 77.14.0 ➔ 78.1.0 ) (#2001)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-11 06:07:14 -04:00
renovate[bot]
cb9d943cb3 feat(container): update flux-operator group (#1998)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-11 06:06:56 -04:00
renovate[bot]
ff837b90ae feat(container): update image quay.io/jetstack/charts/cert-manager ( v1.18.2 ➔ v1.19.0 ) (#2000)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-11 06:06:00 -04:00
renovate[bot]
ee07fa5467 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 77.13.0 ➔ 77.14.0 ) (#1999)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-11 06:05:47 -04:00
renovate[bot]
3d22ff06cd feat(mise): update tool python ( 3.13.8 ➔ 3.14.0 ) 2025-10-11 09:12:58 +00:00
renovate[bot]
0105eb5776 ci(github-action): update action jdx/mise-action ( v3.2.0 ➔ v3.3.1 ) 2025-10-11 05:33:05 +00:00
renovate[bot]
dbdf1b960c fix(mise): update tool aqua:fluxcd/flux2 ( 2.7.0 ➔ 2.7.2 ) 2025-10-11 05:32:51 +00:00
renovate[bot]
00ae9a4c69 fix(mise): update tool aqua:cue-lang/cue ( 0.14.1 ➔ 0.14.2 ) 2025-10-11 00:42:54 +00:00
renovate[bot]
c960edeeea fix(mise): update tool aqua:budimanjojo/talhelper ( 3.0.36 ➔ 3.0.37 ) 2025-10-11 00:42:39 +00:00
renovate[bot]
c47bd71043 ci(github-action): update action ghcr.io/allenporter/flux-local ( v7.10.0 ➔ v7.10.1 ) 2025-10-04 17:44:58 +00:00
renovate[bot]
0ebd6b8884 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 77.12.0 ➔ 77.13.0 ) (#1996)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-04 06:32:49 -04:00
renovate[bot]
f0ec01f979 feat(container): update image ghcr.io/coredns/charts/coredns ( 1.43.3 ➔ 1.44.3 ) (#1995)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-04 06:32:37 -04:00
renovate[bot]
ec452c9d6c feat(mise): update tool aqua:cli/cli ( 2.80.0 ➔ 2.81.0 ) 2025-10-04 00:26:37 +00:00
Robert Resch
f42d85ecda fix(container): Align network kustomizations with oher ones (#1994) 2025-10-01 17:33:36 -04:00
Robert Resch
63b67b99be Use ed25519 to generate deploy-key (#1993) 2025-10-01 06:19:12 -04:00
Devin Buhl
ceed1912df feat(flux): add patch to watch configmaps and secrets 2025-09-30 11:38:31 -04:00
Devin Buhl
1d9fb298d9 fix: implement Sops decryption in cluster configurations
Added Sops decryption configuration to cluster metadata and apps.
2025-09-30 11:31:55 -04:00
Devin Buhl
3461e65bc6 feat: add kustomize-controller sops decryption (#1969) 2025-09-30 08:38:04 -04:00
renovate[bot]
5389fe31c4 feat(container): update flux-operator group (#1992)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-30 08:34:23 -04:00
renovate[bot]
beada43f73 feat(mise): update tool aqua:fluxcd/flux2 ( 2.6.4 ➔ 2.7.0 ) 2025-09-30 12:34:07 +00:00
Devin Buhl
d564969646 feat(flux): pre 2.7.0 changes (#1991) 2025-09-30 08:32:34 -04:00
renovate[bot]
317db1721a feat(mise): update tool aqua:getsops/sops ( 3.10.2 ➔ 3.11.0 ) 2025-09-28 21:56:46 +00:00
renovate[bot]
fab2b50903 fix(mise): update tool aqua:budimanjojo/talhelper ( 3.0.35 ➔ 3.0.36 ) 2025-09-27 04:22:58 +00:00
renovate[bot]
2f91966224 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 77.10.0 ➔ 77.12.0 ) (#1990)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-26 22:07:04 -04:00
renovate[bot]
26bce0e92a feat(container): update flux-operator group ( 0.28.0 ➔ 0.29.0 ) (#1989)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-26 22:06:51 -04:00
renovate[bot]
e0f7813d73 feat(mise): update tool aqua:cli/cli ( 2.79.0 ➔ 2.80.0 ) 2025-09-27 01:46:15 +00:00
renovate[bot]
9cd87b6ccf fix(container): update image docker.io/cloudflare/cloudflared ( 2025.9.0 ➔ 2025.9.1 ) (#1987)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-26 21:45:51 -04:00
renovate[bot]
3a4016a975 fix(container): update image ghcr.io/siderolabs/installer ( v1.11.1 ➔ v1.11.2 ) (#1988)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-26 21:45:37 -04:00
renovate[bot]
93b46772c0 fix(mise): update tool aqua:siderolabs/talos ( 1.11.1 ➔ 1.11.2 ) 2025-09-27 01:44:52 +00:00
renovate[bot]
fc8dc142d3 fix(mise): update tool aqua:cloudflare/cloudflared ( 2025.9.0 ➔ 2025.9.1 ) 2025-09-27 01:44:35 +00:00
renovate[bot]
a72568b4fd feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 77.6.2 ➔ 77.10.0 ) (#1985)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-19 21:40:06 -04:00
renovate[bot]
e3fbdd7de9 feat(mise): update tool aqua:go-task/task ( 3.44.1 ➔ 3.45.4 ) (#1986)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-20 01:39:57 +00:00
renovate[bot]
60a3daee46 feat(container): update image ghcr.io/bjw-s-labs/helm/app-template ( 4.2.0 ➔ 4.3.0 ) (#1984)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-19 21:39:48 -04:00
renovate[bot]
4f9d1d34b6 feat(container): update image docker.io/cloudflare/cloudflared ( 2025.8.1 ➔ 2025.9.0 ) (#1983)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-19 21:39:39 -04:00
renovate[bot]
af1d513ee6 fix(container): update image ghcr.io/stakater/charts/reloader ( 2.2.2 ➔ 2.2.3 ) (#1982)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-19 21:39:29 -04:00
renovate[bot]
b356905bcc fix(container): update image ghcr.io/home-operations/charts-mirror/cilium ( 1.18.1 ➔ 1.18.2 ) (#1981)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-19 21:39:19 -04:00
renovate[bot]
cf12f8bb75 feat(mise): update tool aqua:cloudflare/cloudflared ( 2025.8.1 ➔ 2025.9.0 ) 2025-09-20 01:24:50 +00:00
renovate[bot]
2a4c6ab9e5 ci(github-action): update action ghcr.io/allenporter/flux-local ( v7.9.0 ➔ v7.10.0 ) 2025-09-20 01:24:23 +00:00
renovate[bot]
1bd3c8e83f feat(container): update image ghcr.io/spegel-org/helm-charts/spegel ( 0.3.0 ➔ 0.4.0 ) (#1980)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-14 18:06:50 -04:00
renovate[bot]
028d80c71d ci(github-action)!: Update action tj-actions/changed-files ( v46.0.5 ➔ v47.0.0 ) (#1979)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-13 22:42:29 -04:00
renovate[bot]
7c4dcec0f5 feat(mise): update tool aqua:helm/helm ( 3.18.6 ➔ 3.19.0 ) 2025-09-13 21:05:59 +00:00
renovate[bot]
0003b4e78f feat(mise): update tool aqua:cli/cli ( 2.78.0 ➔ 2.79.0 ) 2025-09-13 21:05:39 +00:00
renovate[bot]
e23f7363bd fix(mise): update tool aqua:mikefarah/yq ( 4.47.1 ➔ 4.47.2 ) 2025-09-13 21:05:29 +00:00
renovate[bot]
faa96a7a25 fix(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 77.6.0 ➔ 77.6.2 ) (#1977)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-13 15:59:01 -04:00
renovate[bot]
eae5ca8884 fix(container): update image ghcr.io/siderolabs/kubelet ( v1.34.0 ➔ v1.34.1 ) (#1978)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-13 15:58:48 -04:00
renovate[bot]
ddc6506e47 fix(mise): update tool aqua:helmfile/helmfile ( 1.1.6 ➔ 1.1.7 ) 2025-09-13 18:15:27 +00:00
renovate[bot]
9cf3b1d806 fix(mise): update tool aqua:budimanjojo/talhelper ( 3.0.34 ➔ 3.0.35 ) 2025-09-13 18:15:17 +00:00
renovate[bot]
77c7670ca3 feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 77.5.0 ➔ 77.6.0 ) (#1976)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-10 07:07:25 -04:00
renovate[bot]
4fa6c092df feat(container): update image ghcr.io/home-operations/charts-mirror/external-dns ( 1.18.0 ➔ 1.19.0 ) (#1975)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-10 07:07:11 -04:00
renovate[bot]
0e7a4deffb fix(container): update image ghcr.io/siderolabs/installer ( v1.11.0 ➔ v1.11.1 ) (#1974)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-10 07:07:02 -04:00
renovate[bot]
a8c4dfe2e7 fix(mise): update tool aqua:siderolabs/talos ( 1.11.0 ➔ 1.11.1 ) 2025-09-10 10:56:01 +00:00
Devin Buhl
40500633e0 fix(cloudflare): TUNNEL_TRANSPORT_PROTOCOL to http2
For maximum compatibility
2025-09-08 11:06:31 -04:00
renovate[bot]
2c10a16b7b ci(github-action): update action ghcr.io/allenporter/flux-local ( v7.8.0 ➔ v7.9.0 ) 2025-09-07 20:58:43 +00:00
renovate[bot]
dc99a5e15f feat(container): update image ghcr.io/prometheus-community/charts/kube-prometheus-stack ( 77.3.0 ➔ 77.5.0 ) (#1971)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-06 06:48:36 -04:00
renovate[bot]
27b73bcdd3 ci(github-action)!: Update action actions/labeler ( v5.0.0 ➔ v6.0.1 ) (#1973)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-06 06:48:05 -04:00
renovate[bot]
40e924618e ci(github-action)!: Update action actions/github-script ( v7.1.0 ➔ v8.0.0 ) (#1972)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-06 06:47:53 -04:00
renovate[bot]
82a113c904 ci(github-action): update action actions/github-script ( v7.0.1 ➔ v7.1.0 ) 2025-09-06 04:55:25 +00:00
renovate[bot]
5072fb9bc3 fix(mise): update tool aqua:helmfile/helmfile ( 1.1.5 ➔ 1.1.6 ) 2025-09-06 02:07:46 +00:00
renovate[bot]
0d087e75fd fix(mise): update tool aqua:cilium/cilium-cli ( 0.18.6 ➔ 0.18.7 ) 2025-09-06 02:07:29 +00:00
Devin Buhl
cc96afaa66 Add OCIRepository configuration for flux-instance (#1970) 2025-09-03 23:22:08 -04:00
Devin Buhl
015a2cb57c feat: update bootstrap process and break up HRs and OCIRepos (#1968) 2025-09-02 20:16:34 -04:00
Devin Buhl
a4517ffc99 chore: update mise deps
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-09-02 17:57:38 -04:00
renovate[bot]
13ac3bf278 feat(container): update image ghcr.io/siderolabs/kubelet ( v1.33.4 ➔ v1.34.0 ) (#1965)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Devin Buhl <onedr0p@users.noreply.github.com>
2025-09-02 17:56:54 -04:00
renovate[bot]
75b94455a8 feat(container): update image ghcr.io/siderolabs/installer ( v1.10.7 ➔ v1.11.0 ) (#1966)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-02 17:55:19 -04:00
renovate[bot]
97000499e0 feat(mise): update tool aqua:siderolabs/talos ( 1.10.7 ➔ 1.11.0 ) 2025-09-02 21:53:38 +00:00
renovate[bot]
0fc9280182 ci(github-action): update action ncipollo/release-action ( v1.18.0 ➔ v1.20.0 ) 2025-09-02 21:53:01 +00:00
renovate[bot]
6229517149 fix(mise): update tool aqua:budimanjojo/talhelper ( 3.0.33 ➔ 3.0.34 ) 2025-09-02 21:52:50 +00:00
113 changed files with 851 additions and 843 deletions

View File

@@ -14,3 +14,6 @@ nodes:
mtu: 1500
secureboot: true
encrypt_disk: true
kernel_modules:
- nvidia
- nvidia_uvm

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: "e2e"
on:
@@ -26,10 +25,10 @@ jobs:
- private
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup mise
uses: jdx/mise-action@5ac50f778e26fac95da98d50503682459e86d566 # v3.2.0
uses: jdx/mise-action@6d1e696aa24c1aa1bcc1adea0212707c71ab78a8 # v3.6.1
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
with:
@@ -55,7 +54,7 @@ jobs:
task talos:generate-config
- name: Run flux-local test
uses: docker://ghcr.io/allenporter/flux-local:v7.8.0@sha256:e8cd431e824eddd169763e02ef73ebb76c40740f1e1e67f6234a29b28304ce9c
uses: docker://ghcr.io/allenporter/flux-local:v8.1.0@sha256:37c3c4309a351830b04f93c323adfcb0e28c368001818cd819cbce3e08828261
with:
args: test --enable-helm --all-namespaces --path /github/workspace/kubernetes/flux/cluster -v

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: "Flux Local"
on:
@@ -18,11 +17,11 @@ jobs:
any_changed: ${{ steps.changed-files.outputs.any_changed }}
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Get Changed Files
id: changed-files
uses: tj-actions/changed-files@ed68ef82c095e0d48ec87eccea555d944a631a4c # v46.0.5
uses: tj-actions/changed-files@7dee1b0c1557f278e5c7dc244927139d78c0e22a # v47.0.4
with:
files: kubernetes/**
@@ -33,10 +32,10 @@ jobs:
if: ${{ needs.pre-job.outputs.any_changed == 'true' }}
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Run flux-local test
uses: docker://ghcr.io/allenporter/flux-local:v7.8.0
uses: docker://ghcr.io/allenporter/flux-local:v8.1.0
with:
args: test --enable-helm --all-namespaces --path /github/workspace/kubernetes/flux/cluster -v
@@ -55,18 +54,18 @@ jobs:
if: ${{ needs.pre-job.outputs.any_changed == 'true' }}
steps:
- name: Checkout Pull Request Branch
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
path: pull
- name: Checkout Default Branch
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: "${{ github.event.repository.default_branch }}"
path: default
- name: Run flux-local diff
uses: docker://ghcr.io/allenporter/flux-local:v7.8.0
uses: docker://ghcr.io/allenporter/flux-local:v8.1.0
with:
args: >-
diff ${{ matrix.resources }}

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: "Label Sync"
on:
@@ -17,7 +16,7 @@ jobs:
issues: write
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Sync Labels
uses: EndBug/label-sync@52074158190acb45f3077f9099fea818aa43f97a # v2.3.3

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: "Labeler"
on:
@@ -17,6 +16,6 @@ jobs:
issues: write
steps:
- name: Labeler
uses: actions/labeler@8558fd74291d67161a8a78ce36a881fa63b766a9 # v5.0.0
uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b # v6.0.1
with:
configuration-path: .github/labeler.yaml

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: "Release"
on:
@@ -11,10 +10,12 @@ jobs:
release:
name: Release
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Get Previous Release Tag and Determine Next Tag
id: determine-next-tag
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
result-encoding: string
@@ -48,7 +49,7 @@ jobs:
return `${nextMajorMinor}.${nextPatch}`;
- name: Create Release
uses: ncipollo/release-action@bcfe5470707e8832e12347755757cec0eb3c22af # v1.18.0
uses: ncipollo/release-action@b7eabc95ff50cbeeedec83973935c8f306dfcd0b # v1.20.0
with:
generateReleaseNotes: true
tag: "${{ steps.determine-next-tag.outputs.result }}"

View File

@@ -1,26 +1,28 @@
[env]
_.python.venv = { path = "{{config_root}}/.venv", create = true }
_.python.venv = { path = "{{config_root}}/.venv", create = true } # required:template
KUBECONFIG = "{{config_root}}/kubeconfig"
SOPS_AGE_KEY_FILE = "{{config_root}}/age.key"
TALOSCONFIG = "{{config_root}}/talos/clusterconfig/talosconfig"
[tools]
"python" = "3.13"
"pipx:makejinja" = "2.8.1"
"aqua:budimanjojo/talhelper" = "3.0.33"
"aqua:cilium/cilium-cli" = "0.18.6"
"aqua:cli/cli" = "2.78.0"
"aqua:cloudflare/cloudflared" = "2025.8.1"
"aqua:cue-lang/cue" = "0.14.1"
"aqua:FiloSottile/age" = "1.2.1"
"aqua:fluxcd/flux2" = "2.6.4"
"aqua:getsops/sops" = "3.10.2"
"aqua:go-task/task" = "3.44.1"
"aqua:helm/helm" = "3.18.6"
"aqua:helmfile/helmfile" = "1.1.5"
"python" = "3.14.3" # required:template
"uv" = "0.10.7" # required:template
"pipx" = "1.8.0" # required:template
"pipx:makejinja" = "2.8.2" # required:template
"aqua:budimanjojo/talhelper" = "3.1.5"
"aqua:cilium/cilium-cli" = "0.19.2"
"aqua:cli/cli" = "2.87.3"
"aqua:cloudflare/cloudflared" = "2026.2.0"
"aqua:cue-lang/cue" = "0.15.4" # required:template
"aqua:FiloSottile/age" = "1.3.1"
"aqua:fluxcd/flux2" = "2.8.1"
"aqua:getsops/sops" = "3.12.1"
"aqua:go-task/task" = "3.48.0"
"aqua:helm/helm" = "4.1.1"
"aqua:helmfile/helmfile" = "1.3.2"
"aqua:jqlang/jq" = "1.8.1"
"aqua:kubernetes-sigs/kustomize" = "5.7.0"
"aqua:kubernetes/kubectl" = "1.33.2"
"aqua:mikefarah/yq" = "4.47.1"
"aqua:siderolabs/talos" = "1.10.7"
"aqua:kubernetes-sigs/kustomize" = "5.7.1"
"aqua:kubernetes/kubernetes/kubectl" = "1.35.2"
"aqua:mikefarah/yq" = "4.52.4"
"aqua:siderolabs/talos" = "1.12.4"
"aqua:yannh/kubeconform" = "0.7.0"

View File

@@ -10,17 +10,17 @@
":semanticCommits",
],
dependencyDashboard: true,
dependencyDashboardTitle: "Renovate Dashboard 🤖",
dependencyDashboardTitle: "Renovate Dashboard :robot:",
schedule: ["every weekend"],
ignorePaths: ["**/*.sops.*"],
flux: {
managerFilePatterns: ["/(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$/"],
},
"helm-values": {
managerFilePatterns: ["/(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$/"],
},
helmfile: {
managerFilePatterns: ["/(^|/)helmfile\\.ya?ml(?:\\.j2)?$/"],
managerFilePatterns: [
"/(^|/)helmfile\\.ya?ml(?:\\.gotmpl)?(?:\\.j2)?$/",
"/(^|/)helmfile\\.d/.+\\.ya?ml(?:\\.gotmpl)?(?:\\.j2)?$/",
],
},
kubernetes: {
managerFilePatterns: ["/(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$/"],
@@ -39,11 +39,11 @@
description: "Flux Operator Group",
groupName: "flux-operator",
matchDatasources: ["docker"],
matchPackageNames: ["/flux-operator/", "/flux-instance/"],
matchPackageNames: ["/flux-operator/", "/flux-instance/", "/flux-operator-manifests/"],
group: {
commitMessageTopic: "{{{groupName}}} group",
},
minimumGroupSize: 2,
minimumGroupSize: 3,
},
{
description: "Auto-merge GitHub Actions",
@@ -54,14 +54,6 @@
minimumReleaseAge: "3 days",
ignoreTests: true,
},
{
description: "Auto-merge Mise Tools",
matchManagers: ["mise"],
automerge: true,
automergeType: "branch",
matchUpdateTypes: ["minor", "patch"],
ignoreTests: true,
},
{
matchUpdateTypes: ["major"],
semanticCommitType: "feat",
@@ -121,6 +113,10 @@
matchUpdateTypes: ["patch"],
labels: ["type/patch"],
},
{
matchUpdateTypes: ["digest"],
labels: ["type/digest"],
},
{
matchDatasources: ["docker"],
addLabels: ["renovate/container"],
@@ -161,5 +157,16 @@
],
datasourceTemplate: "{{#if datasource}}{{{datasource}}}{{else}}github-releases{{/if}}",
},
{
customType: "regex",
description: "Process OCI dependencies",
managerFilePatterns: [
"/\\.yaml(?:\\.j2)?$/",
],
matchStrings: [
"oci://(?<depName>[^:]+):(?<currentValue>\\S+)",
],
datasourceTemplate: "docker",
},
],
}

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://taskfile.dev/schema.json
version: '3'
tasks:

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://taskfile.dev/schema.json
version: '3'
tasks:

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://taskfile.dev/schema.json
version: '3'
vars:
@@ -38,7 +37,7 @@ tasks:
generate-deploy-key:
internal: true
cmd: ssh-keygen -t ecdsa -b 521 -C "deploy-key" -f {{.ROOT_DIR}}/github-deploy.key -q -P ""
cmd: ssh-keygen -t ed25519 -C "deploy-key" -f {{.ROOT_DIR}}/github-deploy.key -q -P ""
status:
- test -f {{.ROOT_DIR}}/github-deploy.key
preconditions:
@@ -94,7 +93,7 @@ tasks:
cmds:
- for: { var: SECRET_FILES }
cmd: |
if sops filestatus "{{.ITEM}}" | jq --exit-status ".encrypted == false" &>/dev/null; then
if [ $(sops filestatus "{{.ITEM}}" | jq ".encrypted") == "false" ]; then
sops --encrypt --in-place "{{.ITEM}}"
fi
vars:
@@ -132,8 +131,8 @@ tasks:
- which kubectl
tidy:
desc: Archive template related files and directories
prompt: All files and directories related to the templating process will be archived... continue?
desc: Archive or remove all template related config
prompt: All template related config will be archived or removed... continue?
cmds:
- mkdir -p {{.TIDY_FOLDER}}
- rm -rf {{.ROOT_DIR}}/.github/tests
@@ -149,6 +148,9 @@ tasks:
- |
{{.SED}} -i '/template:/d' {{.ROOT_DIR}}/Taskfile.yaml
- mv {{.ROOT_DIR}}/.taskfiles/template {{.TIDY_FOLDER}}/.taskfiles/
- |
{{.SED}} -i '/required:template/d' {{.ROOT_DIR}}/.mise.toml
- rm -rf {{.ROOT_DIR}}/.venv
vars:
TIDY_FOLDER: '{{.PRIVATE_DIR}}/{{now | unixEpoch}}'
SED:

View File

@@ -21,9 +21,10 @@ import (
disk: string
mac_addr: =~"^([0-9a-f]{2}[:]){5}([0-9a-f]{2})$"
schematic_id: =~"^[a-z0-9]{64}$"
mtu?: >=1450 & <=9000
secureboot?: bool
encrypt_disk?: bool
mtu?: >=1450 & <=9000
secureboot?: bool
encrypt_disk?: bool
kernel_modules?: [...string]
}
#Config

View File

@@ -3,6 +3,7 @@
"blueglassblock.better-json5",
"irongeek.vscode-env",
"redhat.vscode-yaml",
"signageos.signageos-vscode-sops"
"signageos.signageos-vscode-sops",
"hverlin.mise-vscode"
]
}

124
README.md
View File

@@ -15,7 +15,7 @@ With this approach, you'll gain a solid foundation to build and manage your Kube
A Kubernetes cluster deployed with [Talos Linux](https://github.com/siderolabs/talos) and an opinionated implementation of [Flux](https://github.com/fluxcd/flux2) using [GitHub](https://github.com/) as the Git provider, [sops](https://github.com/getsops/sops) to manage secrets and [cloudflared](https://github.com/cloudflare/cloudflared) to access applications external to your local network.
- **Required:** Some knowledge of [Containers](https://opencontainers.org/), [YAML](https://noyaml.com/), [Git](https://git-scm.com/), and a **Cloudflare account** with a **domain**.
- **Included components:** [flux](https://github.com/fluxcd/flux2), [cilium](https://github.com/cilium/cilium), [cert-manager](https://github.com/cert-manager/cert-manager), [spegel](https://github.com/spegel-org/spegel), [reloader](https://github.com/stakater/Reloader), [external-dns](https://github.com/kubernetes-sigs/external-dns) and [cloudflared](https://github.com/cloudflare/cloudflared).
- **Included components:** [flux](https://github.com/fluxcd/flux2), [cilium](https://github.com/cilium/cilium), [cert-manager](https://github.com/cert-manager/cert-manager), [spegel](https://github.com/spegel-org/spegel), [reloader](https://github.com/stakater/Reloader), [envoy-gateway](https://github.com/envoyproxy/gateway), [external-dns](https://github.com/kubernetes-sigs/external-dns) and [cloudflared](https://github.com/cloudflare/cloudflared).
**Other features include:**
@@ -28,9 +28,19 @@ Does this sound cool to you? If so, continue to read on! 👇
## 🚀 Let's Go!
There are **5 stages** outlined below for completing this project, make sure you follow the stages in order.
There are **6 stages** outlined below for completing this project, make sure you follow the stages in order.
### Stage 1: Machine Preparation
### Stage 1: Hardware Configuration
For a **stable** and **high-availability** production Kubernetes cluster, hardware selection is critical. NVMe/SSDs are strongly preferred over HDDs, and **Bare Metal is strongly recommended** over virtualized platforms like Proxmox.
Using **enterprise NVMe or SATA SSDs on Bare Metal** (even used drives) provides the most reliable performance and rock-solid stability. Consumer **NVMe or SATA SSDs**, on the other hand, carry risks such as latency spikes, corruption, and fsync delays, particularly in multi-node setups.
**Proxmox with enterprise drives can work** for testing or carefully tuned production clusters, but it introduces additional layers of potential I/O contention — especially if consumer drives are used. Any **replicated storage** (e.g., Rook-Ceph, Longhorn) should always use **dedicated disks separate from control plane and etcd nodes** to ensure reliability. Worker nodes are more flexible, but risky configurations should still be avoided for stateful workloads to maintain cluster stability.
These guidelines provide a strong baseline, but there are always exceptions and nuances. The best way to ensure your hardware configuration works is to **test it thoroughly and benchmark performance** under realistic workloads.
### Stage 2: Machine Preparation
> [!IMPORTANT]
> If you have **3 or more nodes** it is recommended to make 3 of them controller nodes for a highly available control plane. This project configures **all nodes** to be able to run workloads. **Worker nodes** are therefore **optional**.
@@ -40,7 +50,7 @@ There are **5 stages** outlined below for completing this project, make sure you
> |---------|----------|---------------|---------------------------|
> | Control/Worker | 4 | 16GB | 256GB SSD/NVMe |
1. Head over to the [Talos Linux Image Factory](https://factory.talos.dev) and follow the instructions. Be sure to only choose the **bare-minimum system extensions** as some might require additional configuration and prevent Talos from booting without it. You can always add system extensions after Talos is installed and working.
1. Head over to the [Talos Linux Image Factory](https://factory.talos.dev) and follow the instructions. Be sure to only choose the **bare-minimum system extensions** as some might require additional configuration and prevent Talos from booting without it. Depending on your CPU start with the Intel/AMD system extensions (`i915`, `intel-ucode` & `mei` **or** `amdgpu` & `amd-ucode`), you can always add system extensions after Talos is installed and working.
2. This will eventually lead you to download a Talos Linux ISO (or for SBCs a RAW) image. Make sure to note the **schematic ID** you will need this later on.
@@ -52,19 +62,20 @@ There are **5 stages** outlined below for completing this project, make sure you
nmap -Pn -n -p 50000 192.168.1.0/24 -vv | grep 'Discovered'
```
### Stage 2: Local Workstation
### Stage 3: Local Workstation
> [!TIP]
> It is recommended to set the visibility of your repository to `Public` so you can easily request help if you get stuck.
1. Create a new repository by clicking the green `Use this template` button at the top of this page, then clone the new repo you just created and `cd` into it. Alternatively you can us the [GitHub CLI](https://cli.github.com/) ...
1. Create a new repository by clicking the green `Use this template` button at the top of this page, then clone the new repo you just created and `cd` into it. Alternatively you can use the [GitHub CLI](https://cli.github.com/) ...
```sh
export REPONAME="home-ops"
gh repo create $REPONAME --template onedr0p/cluster-template --disable-wiki --public --clone && cd $REPONAME
gh repo create $REPONAME --template onedr0p/cluster-template --public --clone
cd $REPONAME
```
2. **Install** the [Mise CLI](https://mise.jdx.dev/getting-started.html#installing-mise-cli) on your workstation.
2. **Install** the [Mise CLI](https://mise.jdx.dev/getting-started.html#installing-mise-cli) on your local workstation.
3. **Activate** Mise in your shell by following the [activation guide](https://mise.jdx.dev/getting-started.html#activate-mise).
@@ -80,17 +91,17 @@ There are **5 stages** outlined below for completing this project, make sure you
📍 _**Having trouble compiling Python?** Try running `mise settings python.compile=0` and then run these commands again_
5. Logout of GitHub Container Registry (GHCR) as this may cause authorization problems when using the public registry:
5. Logout of the GitHub Container Registry as this may cause authorization problems in future steps when using the public registry:
```sh
docker logout ghcr.io
helm registry logout ghcr.io
```
### Stage 3: Cloudflare configuration
### Stage 4: Cloudflare configuration
> [!WARNING]
> If any of the commands fail with `command not found` or `unknown command` it means `mise` is either not install or configured incorrectly.
> If any of the commands fail with `command not found` or `unknown command` it means `mise` is either not installed, activated or it could be configured incorrectly.
1. Create a Cloudflare API token for use with cloudflared and external-dns by reviewing the official [documentation](https://developers.cloudflare.com/fundamentals/api/get-started/create-token/) and following the instructions below.
@@ -107,7 +118,7 @@ There are **5 stages** outlined below for completing this project, make sure you
cloudflared tunnel create --credentials-file cloudflare-tunnel.json kubernetes
```
### Stage 4: Cluster configuration
### Stage 5: Cluster configuration
1. Generate the config files from the sample files:
@@ -136,10 +147,10 @@ There are **5 stages** outlined below for completing this project, make sure you
> [!TIP]
> Using a **private repository**? Make sure to paste the public key from `github-deploy.key.pub` into the deploy keys section of your GitHub repository settings. This will make sure Flux has read/write access to your repository.
### Stage 5: Bootstrap Talos, Kubernetes, and Flux
### Stage 6: Bootstrap Talos, Kubernetes, and Flux
> [!WARNING]
> It might take a while for the cluster to be setup (10+ minutes is normal). During which time you will see a variety of error messages like: "couldn't get current server API group list," "error: no matching resources found", etc. 'Ready' will remain "False" as no CNI is deployed yet. **This is a normal.** If this step gets interrupted, e.g. by pressing <kbd>Ctrl</kbd> + <kbd>C</kbd>, you likely will need to [reset the cluster](#-reset) before trying again
> It might take a while for the cluster to be setup (10+ minutes is normal). During which time you will see a variety of error messages like: "couldn't get current server API group list," "error: no matching resources found", etc. 'Ready' will remain "False" as no CNI is deployed yet. **This is normal.** If this step gets interrupted, e.g. by pressing <kbd>Ctrl</kbd> + <kbd>C</kbd>, you likely will need to [reset the cluster](#-reset) before trying again
1. Install Talos:
@@ -207,28 +218,28 @@ There are **5 stages** outlined below for completing this project, make sure you
5. Check the status of your wildcard `Certificate`:
```sh
kubectl -n kube-system describe certificates
kubectl -n network describe certificates
```
### 🌐 Public DNS
> [!TIP]
> Use the `external` gateway on `HTTPRoutes` to make applications public to the internet.
> Use the `envoy-external` gateway on `HTTPRoutes` to make applications public to the internet. These are also accessible on your private network once you set up split DNS.
The `external-dns` application created in the `network` namespace will handle creating public DNS records. By default, `echo` and the `flux-webhook` are the only subdomains reachable from the public internet. In order to make additional applications public you must **set the correct gateway** like in the HelmRelease for `echo`.
### 🏠 Home DNS
> [!TIP]
> Use the `internal` gateway on `HTTPRoutes` to make applications private to your network. If you're having trouble with internal DNS resolution check out [this](https://github.com/onedr0p/cluster-template/discussions/719) GitHub discussion.
> Use the `envoy-internal` gateway on `HTTPRoutes` to make applications private to your network. If you're having trouble with internal DNS resolution check out [this](https://github.com/onedr0p/cluster-template/discussions/719) GitHub discussion.
`k8s_gateway` will provide DNS resolution to external Kubernetes resources (i.e. points of entry to the cluster) from any device that uses your home DNS server. For this to work, your home DNS server must be configured to forward DNS queries for `${cloudflare_domain}` to `${cluster_dns_gateway_addr}` instead of the upstream DNS server(s) it normally uses. This is a form of **split DNS** (aka split-horizon DNS / conditional forwarding).
_... Nothing working? That is expected, this is DNS after all!_
### 🪝 Github Webhook
### 🪝 GitHub Webhook
By default Flux will periodically check your git repository for changes. In-order to have Flux reconcile on `git push` you must configure Github to send `push` events to Flux.
By default Flux will periodically check your git repository for changes. In-order to have Flux reconcile on `git push` you must configure GitHub to send `push` events to Flux.
1. Obtain the webhook path:
@@ -244,7 +255,7 @@ By default Flux will periodically check your git repository for changes. In-orde
https://flux-webhook.${cloudflare_domain}/hook/12ebd1e363c641dc3c2e430ecf3cee2b3c7a5ac9e1234506f6f5f3ce1230e123
```
3. Navigate to the settings of your repository on Github, under "Settings/Webhooks" press the "Add webhook" button. Fill in the webhook URL and your token from `github-push-token.txt`, Content type: `application/json`, Events: Choose Just the push event, and save.
3. Navigate to the settings of your repository on GitHub, under "Settings/Webhooks" press the "Add webhook" button. Fill in the webhook URL and your token from `github-push-token.txt`, Content type: `application/json`, Events: Choose Just the push event, and save.
## 💥 Reset
@@ -289,6 +300,36 @@ task talos:upgrade-k8s
# e.g. task talos:upgrade-k8s
```
### Adding a node to your cluster
At some point you might want to expand your cluster to run more workloads and/or improve the reliability of your cluster. Keep in mind it is recommended to have an **odd number** of control plane nodes for quorum reasons.
You don't need to re-bootstrap the cluster to add new nodes. Follow these steps:
1. **Prepare the new node**: Review the [Stage 2: Machine Preparation](#stage-2-machine-preparation) section and boot your new node into maintenance mode.
2. **Get the node information**: While the node is in maintenance mode, retrieve the disk and MAC address information needed for configuration:
```sh
talosctl get disks -n <ip> --insecure
talosctl get links -n <ip> --insecure
```
3. **Update the configuration**: Read the documentation for [talhelper](https://budimanjojo.github.io/talhelper/latest/) and extend the `talconfig.yaml` file manually with the new node information (including the disk and MAC address from step 2).
4. **Generate and apply the configuration**:
```sh
# Render your talosconfig based on the talconfig.yaml file
task talos:generate-config
# Apply the configuration to the node
task talos:apply-node IP=?
# e.g. task talos:apply-node IP=10.10.10.10
```
The node should join the cluster automatically and workloads will be scheduled once they report as ready.
## 🤖 Renovate
[Renovate](https://www.mend.io/renovate) is a tool that automates dependency management. It is designed to scan your repository around the clock and open PRs for out-of-date dependencies it finds. Common dependencies it can discover are Helm charts, container images, GitHub Actions and more! In most cases merging a PR will cause Flux to apply the update to your cluster.
@@ -317,13 +358,13 @@ Below is a general guide on trying to debug an issue with an resource or applica
kubectl -n <namespace> get pods -o wide
```
3. Check the logs of the pod if its there:
3. Check the logs of the pod if it's there:
```sh
kubectl -n <namespace> logs <pod-name> -f
```
4. If a resource exists try to describe it to see what problems it might have:
4. If a resource exists, try to describe it to see what problems it might have:
```sh
kubectl -n <namespace> describe <resource> <name>
@@ -363,7 +404,7 @@ Below are some optional considerations you may want to explore.
### DNS
The template uses [k8s_gateway](https://github.com/ori-edge/k8s_gateway) to provide DNS for your applications, consider exploring [external-dns](https://github.com/kubernetes-sigs/external-dns) as an alternative.
The template uses [k8s_gateway](https://github.com/k8s-gateway/k8s_gateway) to provide DNS for your applications, consider exploring [external-dns](https://github.com/kubernetes-sigs/external-dns) as an alternative.
External-DNS offers broad support for various DNS providers, including but not limited to:
@@ -376,7 +417,7 @@ This flexibility allows you to integrate seamlessly with a range of DNS solution
### Secrets
SOPs is an excellent tool for managing secrets in a GitOps workflow. However, it can become cumbersome when rotating secrets or maintaining a single source of truth for secret items.
SOPS is an excellent tool for managing secrets in a GitOps workflow. However, it can become cumbersome when rotating secrets or maintaining a single source of truth for secret items.
For a more streamlined approach to those issues, consider [External Secrets](https://external-secrets.io/latest/). This tool allows you to move away from SOPs and leverage an external provider for managing your secrets. External Secrets supports a wide range of providers, from cloud-based solutions to self-hosted options.
@@ -384,13 +425,11 @@ For a more streamlined approach to those issues, consider [External Secrets](htt
If your workloads require persistent storage with features like replication or connectivity to NFS, SMB, or iSCSI servers, there are several projects worth exploring:
- [rook-ceph](https://github.com/rook/rook)
- [longhorn](https://github.com/longhorn/longhorn)
- [openebs](https://github.com/openebs/openebs)
- [rook-ceph](https://github.com/rook/rook) / [longhorn](https://github.com/longhorn/longhorn) / [openebs](https://github.com/openebs/openebs)
- [democratic-csi](https://github.com/democratic-csi/democratic-csi)
- [csi-driver-nfs](https://github.com/kubernetes-csi/csi-driver-nfs)
- [csi-driver-smb](https://github.com/kubernetes-csi/csi-driver-smb)
- [csi-driver-nfs](https://github.com/kubernetes-csi/csi-driver-nfs) / [csi-driver-smb](https://github.com/kubernetes-csi/csi-driver-smb)
- [synology-csi](https://github.com/SynologyOpenSource/synology-csi)
- [truenas-csi](https://github.com/truenas/truenas-csi) / [tns-csi](https://github.com/fenio/tns-csi)
These tools offer a variety of solutions to meet your persistent storage needs, whether youre using cloud-native or self-hosted infrastructures.
@@ -402,27 +441,20 @@ Community member [@whazor](https://github.com/whazor) created [Kubesearch](https
### Community
- Make a post in this repository's Github [Discussions](https://github.com/onedr0p/cluster-template/discussions).
- Make a post in this repository's GitHub [Discussions](https://github.com/onedr0p/cluster-template/discussions).
- Start a thread in the `#support` or `#cluster-template` channels in the [Home Operations](https://discord.gg/home-operations) Discord server.
### GitHub Sponsors
## 📺 Media
If you're having difficulty with this project, can't find the answers you need through the community support options above, or simply want to show your appreciation while gaining deeper insights, Im offering one-on-one paid support through GitHub Sponsors for a limited time. Payment and scheduling will be coordinated through [GitHub Sponsors](https://github.com/sponsors/onedr0p).
Check out these videos below. If you find them helpful, a like and subscribe goes a long way!
<details>
<summary>Click to expand the details</summary>
<br>
- **Rate**: $50/hour (no longer than 2 hours / day).
- **Whats Included**: Assistance with deployment, debugging, or answering questions related to this project.
- **What to Expect**:
1. Sessions will focus on specific questions or issues you are facing.
2. I will provide guidance, explanations, and actionable steps to help resolve your concerns.
3. Support is limited to this project and does not extend to unrelated tools or custom feature development.
</details>
<a href="https://youtube.com/watch?v=aeUKOpeoiUs">
<img src="https://github.com/user-attachments/assets/2dab1c6f-7b27-4b94-a7ad-a6d9c5b17c78" alt="Youtube Video" width="300">
</a>
&nbsp;&nbsp;
<a href="https://youtube.com/watch?v=hoi2GzvJUXM">
<img src="https://github.com/user-attachments/assets/5b939b90-0019-4515-b90c-321ffe7448cf" alt="Youtube Video" width="300">
</a>
## 🙌 Related Projects

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://taskfile.dev/schema.json
version: '3'
set: [pipefail]

View File

@@ -9,4 +9,5 @@ nodes: []
# mtu: 1500 # (ADVANCED/OPTIONAL) MTU for the NIC. DEFAULT: 1500
# secureboot: false # (ADVANCED/OPTIONAL) SecureBoot mode on UEFI platforms. Ref: https://www.talos.dev/latest/talos-guides/install/bare-metal-platforms/secureboot
# encrypt_disk: false # (ADVANCED/OPTIONAL) TPM-based disk encryption. Ref: https://www.talos.dev/latest/talos-guides/install/bare-metal-platforms/secureboot
# kernel_modules: [] # (ADVANCED/OPTIONAL) Only applicable if the `schematic_id` you've provided contains system extensions that require kernel modules to correctly load - Example: ["nvidia", "nvidia_uvm", "nvidia_drm", "nvidia_modeset", "zfs"]
# ...

View File

@@ -59,8 +59,8 @@ function apply_sops_secrets() {
local -r secrets=(
"${ROOT_DIR}/bootstrap/github-deploy-key.sops.yaml"
"${ROOT_DIR}/kubernetes/components/common/sops/cluster-secrets.sops.yaml"
"${ROOT_DIR}/kubernetes/components/common/sops/sops-age.sops.yaml"
"${ROOT_DIR}/bootstrap/sops-age.sops.yaml"
"${ROOT_DIR}/kubernetes/components/sops/cluster-secrets.sops.yaml"
)
for secret in "${secrets[@]}"; do
@@ -88,33 +88,33 @@ function apply_sops_secrets() {
function apply_crds() {
log debug "Applying CRDs"
local -r crds=(
# renovate: datasource=github-releases depName=kubernetes-sigs/external-dns
https://raw.githubusercontent.com/kubernetes-sigs/external-dns/refs/tags/v0.18.0/config/crd/standard/dnsendpoints.externaldns.k8s.io.yaml
# renovate: datasource=github-releases depName=kubernetes-sigs/gateway-api
https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.3.0/experimental-install.yaml
# renovate: datasource=github-releases depName=prometheus-operator/prometheus-operator
https://github.com/prometheus-operator/prometheus-operator/releases/download/v0.85.0/stripped-down-crds.yaml
)
local -r helmfile_file="${ROOT_DIR}/bootstrap/helmfile.d/00-crds.yaml"
for crd in "${crds[@]}"; do
if kubectl diff --filename "${crd}" &>/dev/null; then
log info "CRDs are up-to-date" "crd=${crd}"
continue
fi
if kubectl apply --server-side --filename "${crd}" &>/dev/null; then
log info "CRDs applied" "crd=${crd}"
else
log error "Failed to apply CRDs" "crd=${crd}"
fi
done
if [[ ! -f "${helmfile_file}" ]]; then
log fatal "File does not exist" "file" "${helmfile_file}"
fi
if ! crds=$(helmfile --file "${helmfile_file}" template --quiet | yq eval-all --exit-status 'select(.kind == "CustomResourceDefinition")') || [[ -z "${crds}" ]]; then
log fatal "Failed to render CRDs from Helmfile" "file" "${helmfile_file}"
fi
if echo "${crds}" | kubectl diff --filename - &>/dev/null; then
log info "CRDs are up-to-date"
return
fi
if ! echo "${crds}" | kubectl apply --server-side --filename - &>/dev/null; then
log fatal "Failed to apply crds from Helmfile" "file" "${helmfile_file}"
fi
log info "CRDs applied successfully"
}
# Sync Helm releases
function sync_helm_releases() {
log debug "Syncing Helm releases"
local -r helmfile_file="${ROOT_DIR}/bootstrap/helmfile.yaml"
local -r helmfile_file="${ROOT_DIR}/bootstrap/helmfile.d/01-apps.yaml"
if [[ ! -f "${helmfile_file}" ]]; then
log error "File does not exist" "file=${helmfile_file}"

View File

@@ -1,6 +1,5 @@
#% if repository_visibility == 'private' %#
---
# yaml-language-server: $schema=https://kubernetesjsonschema.dev/v1.18.1-standalone-strict/secret-v1.json
apiVersion: v1
kind: Secret
metadata:

View File

@@ -0,0 +1,25 @@
---
# This helmfile is for extracting and installing Custom Resource Definitions (CRDs) from Helm charts.
# It is not intended to be used with helmfile apply or helmfile sync.
helmDefaults:
args:
- --include-crds
- --no-hooks
releases:
- name: cloudflare-dns
namespace: network
chart: oci://ghcr.io/home-operations/charts-mirror/external-dns
version: 1.20.0
- name: envoy-gateway
namespace: network
chart: oci://mirror.gcr.io/envoyproxy/gateway-helm
version: v1.7.0
- name: kube-prometheus-stack
namespace: observability
chart: oci://ghcr.io/prometheus-community/charts/kube-prometheus-stack
version: 82.4.3

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/helmfile
helmDefaults:
cleanupOnFail: true
@@ -9,35 +8,31 @@ helmDefaults:
releases:
- name: cilium
namespace: kube-system
atomic: true
chart: oci://ghcr.io/home-operations/charts-mirror/cilium
version: 1.18.1
values: ['./values.yaml.gotmpl']
chart: oci://quay.io/cilium/charts/cilium
version: 1.19.1
values: ['./templates/values.yaml.gotmpl']
- name: coredns
namespace: kube-system
atomic: true
chart: oci://ghcr.io/coredns/charts/coredns
version: 1.43.3
values: ['./values.yaml.gotmpl']
version: 1.45.2
values: ['./templates/values.yaml.gotmpl']
needs: ['kube-system/cilium']
#% if spegel_enabled %#
- name: spegel
namespace: kube-system
atomic: true
chart: oci://ghcr.io/spegel-org/helm-charts/spegel
version: 0.3.0
values: ['./values.yaml.gotmpl']
version: 0.6.0
values: ['./templates/values.yaml.gotmpl']
needs: ['kube-system/coredns']
#% endif %#
- name: cert-manager
namespace: cert-manager
atomic: true
chart: oci://quay.io/jetstack/charts/cert-manager
version: v1.18.2
values: ['./values.yaml.gotmpl']
version: v1.19.4
values: ['./templates/values.yaml.gotmpl']
#% if spegel_enabled %#
needs: ['kube-system/spegel']
#% else %#
@@ -46,16 +41,14 @@ releases:
- name: flux-operator
namespace: flux-system
atomic: true
chart: oci://ghcr.io/controlplaneio-fluxcd/charts/flux-operator
version: 0.28.0
values: ['./values.yaml.gotmpl']
version: 0.43.0
values: ['./templates/values.yaml.gotmpl']
needs: ['cert-manager/cert-manager']
- name: flux-instance
namespace: flux-system
atomic: true
chart: oci://ghcr.io/controlplaneio-fluxcd/charts/flux-instance
version: 0.28.0
values: ['./values.yaml.gotmpl']
version: 0.43.0
values: ['./templates/values.yaml.gotmpl']
needs: ['flux-system/flux-operator']

View File

@@ -0,0 +1 @@
{{ (fromYaml (readFile (printf "../../../kubernetes/apps/%s/%s/app/helmrelease.yaml" .Release.Namespace .Release.Name))).spec.values | toYaml }}

View File

@@ -3,5 +3,6 @@ apiVersion: v1
kind: Secret
metadata:
name: sops-age
namespace: flux-system
stringData:
age.agekey: "#{ age_key('private') }#"

View File

@@ -1 +0,0 @@
{{ exec "yq" (list "select(.kind == \"HelmRelease\").spec.values" (printf "../kubernetes/apps/%s/%s/app/helmrelease.yaml" .Release.Namespace .Release.Name)) }}

View File

@@ -1,14 +1,14 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/cert-manager.io/clusterissuer_v1.json
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-production
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: letsencrypt-production
profile: shortlived
server: https://acme-v02.api.letsencrypt.org/directory
solvers:
- dns01:
cloudflare:

View File

@@ -1,35 +1,13 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/ocirepository-source-v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: cert-manager
spec:
interval: 5m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: v1.18.2
url: oci://quay.io/jetstack/charts/cert-manager
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: cert-manager
spec:
interval: 1h
chartRef:
kind: OCIRepository
name: cert-manager
install:
remediation:
retries: -1
upgrade:
cleanupOnFail: true
remediation:
retries: 3
interval: 1h
values:
crds:
enabled: true

View File

@@ -1,8 +1,8 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./clusterissuer.yaml
- ./helmrelease.yaml
- ./ocirepository.yaml
- ./secret.sops.yaml

View File

@@ -0,0 +1,13 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: cert-manager
spec:
interval: 15m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: v1.19.4
url: oci://quay.io/jetstack/charts/cert-manager

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://kubernetesjsonschema.dev/v1.18.1-standalone-strict/secret-v1.json
apiVersion: v1
kind: Secret
metadata:

View File

@@ -1,23 +1,14 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app cert-manager
namespace: &namespace cert-manager
name: cert-manager
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
decryption:
provider: sops
secretRef:
name: sops-age
healthChecks:
- apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
name: *app
namespace: *namespace
name: cert-manager
namespace: cert-manager
- apiVersion: cert-manager.io/v1
kind: ClusterIssuer
name: letsencrypt-production
@@ -33,10 +24,8 @@ spec:
- name: cluster-secrets
kind: Secret
prune: true
retryInterval: 2m
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: *namespace
timeout: 5m
targetNamespace: cert-manager

View File

@@ -1,9 +1,11 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: cert-manager
components:
- ../../components/common
- ../../components/sops
resources:
- ./namespace.yaml
- ./cert-manager/ks.yaml

View File

@@ -0,0 +1,7 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: cert-manager
annotations:
kustomize.toolkit.fluxcd.io/prune: disabled

View File

@@ -1,24 +1,13 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: echo
spec:
interval: 1h
chartRef:
kind: OCIRepository
name: app-template
install:
remediation:
retries: -1
upgrade:
cleanupOnFail: true
remediation:
retries: 3
dependsOn:
- name: cloudflare-tunnel
namespace: network
name: echo
interval: 1h
values:
controllers:
echo:
@@ -27,7 +16,7 @@ spec:
app:
image:
repository: ghcr.io/mendhak/http-https-echo
tag: 37
tag: 39
env:
HTTP_PORT: &port 80
LOG_WITHOUT_NEWLINE: true
@@ -73,8 +62,8 @@ spec:
app:
hostnames: ["{{ .Release.Name }}.${SECRET_DOMAIN}"]
parentRefs:
- name: external
namespace: kube-system
- name: envoy-external
namespace: network
sectionName: https
rules:
- backendRefs:

View File

@@ -1,6 +1,6 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- ./ocirepository.yaml

View File

@@ -1,14 +1,13 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/ocirepository-source-v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: app-template
name: echo
spec:
interval: 5m
interval: 15m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: 4.2.0
tag: 4.6.2
url: oci://ghcr.io/bjw-s-labs/helm/app-template

View File

@@ -1,18 +1,9 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app echo
namespace: &namespace default
name: echo
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
decryption:
provider: sops
secretRef:
name: sops-age
interval: 1h
path: ./kubernetes/apps/default/echo/app
postBuild:
@@ -20,11 +11,9 @@ spec:
- name: cluster-secrets
kind: Secret
prune: true
retryInterval: 2m
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: *namespace
timeout: 5m
targetNamespace: default
wait: false

View File

@@ -1,9 +1,11 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: default
components:
- ../../components/common
- ../../components/sops
resources:
- ./namespace.yaml
- ./echo/ks.yaml

View File

@@ -2,6 +2,6 @@
apiVersion: v1
kind: Namespace
metadata:
name: not-used
name: default
annotations:
kustomize.toolkit.fluxcd.io/prune: disabled

View File

@@ -1,44 +1,17 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/ocirepository-source-v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: flux-instance
spec:
interval: 5m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: 0.28.0
url: oci://ghcr.io/controlplaneio-fluxcd/charts/flux-instance
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: flux-instance
spec:
interval: 1h
chartRef:
kind: OCIRepository
name: flux-instance
install:
remediation:
retries: -1
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
dependsOn:
- name: flux-operator
namespace: flux-system
interval: 1h
values:
instance:
distribution:
# renovate: datasource=github-releases depName=controlplaneio-fluxcd/distribution
version: 2.6.4
artifact: oci://ghcr.io/controlplaneio-fluxcd/flux-operator-manifests:v0.43.0
cluster:
networkPolicy: false
components:
@@ -139,3 +112,27 @@ spec:
target:
kind: Deployment
name: helm-controller
- # Controller-level SOPS decryption
patch: |
- op: add
path: /spec/template/spec/containers/0/args/-
value: --sops-age-secret=sops-age
target:
kind: Deployment
name: kustomize-controller
- # Watch configmaps and secrets attached to HelmReleases and Kustomizations
patch: |-
- op: add
path: /spec/template/spec/containers/0/args/-
value: --watch-configs-label-selector=owner!=helm
target:
kind: Deployment
name: (helm-controller|kustomize-controller)
- # Cancel health checks on new Kustomizations revisions
patch: |-
- op: add
path: /spec/template/spec/containers/0/args/-
value: --feature-gates=CancelHealthCheckOnNewRevision=true
target:
kind: Deployment
name: kustomize-controller

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://github.com/datreeio/CRDs-catalog/raw/refs/heads/main/gateway.networking.k8s.io/httproute_v1.json
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
@@ -7,8 +6,8 @@ metadata:
spec:
hostnames: ["flux-webhook.${SECRET_DOMAIN}"]
parentRefs:
- name: external
namespace: kube-system
- name: envoy-external
namespace: network
sectionName: https
rules:
- backendRefs:

View File

@@ -1,9 +1,9 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- ./ocirepository.yaml
- ./secret.sops.yaml
- ./httproute.yaml
- ./receiver.yaml

View File

@@ -0,0 +1,13 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: flux-instance
spec:
interval: 15m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: 0.43.0
url: oci://ghcr.io/controlplaneio-fluxcd/charts/flux-instance

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/receiver-notification-v1.json
apiVersion: notification.toolkit.fluxcd.io/v1
kind: Receiver
metadata:

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://kubernetesjsonschema.dev/v1.18.1-standalone-strict/secret-v1.json
apiVersion: v1
kind: Secret
metadata:

View File

@@ -1,21 +1,11 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app flux-instance
namespace: &namespace flux-system
name: flux-instance
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
decryption:
provider: sops
secretRef:
name: sops-age
dependsOn:
- name: flux-operator
namespace: *namespace
interval: 1h
path: ./kubernetes/apps/flux-system/flux-instance/app
postBuild:
@@ -23,11 +13,9 @@ spec:
- name: cluster-secrets
kind: Secret
prune: true
retryInterval: 2m
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: *namespace
timeout: 5m
targetNamespace: flux-system
wait: false

View File

@@ -1,36 +1,13 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/ocirepository-source-v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: flux-operator
spec:
interval: 5m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: 0.28.0
url: oci://ghcr.io/controlplaneio-fluxcd/charts/flux-operator
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: flux-operator
spec:
interval: 1h
chartRef:
kind: OCIRepository
name: flux-operator
install:
remediation:
retries: -1
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
interval: 1h
values:
serviceMonitor:
create: true

View File

@@ -1,6 +1,6 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- ./ocirepository.yaml

View File

@@ -0,0 +1,13 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: flux-operator
spec:
interval: 15m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: 0.43.0
url: oci://ghcr.io/controlplaneio-fluxcd/charts/flux-operator

View File

@@ -1,23 +1,9 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app flux-operator
namespace: &namespace flux-system
name: flux-operator
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
decryption:
provider: sops
secretRef:
name: sops-age
healthChecks:
- apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
name: *app
namespace: *namespace
interval: 1h
path: ./kubernetes/apps/flux-system/flux-operator/app
postBuild:
@@ -25,11 +11,9 @@ spec:
- name: cluster-secrets
kind: Secret
prune: true
retryInterval: 2m
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: *namespace
timeout: 5m
wait: false
targetNamespace: flux-system
wait: true

View File

@@ -1,10 +1,12 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: flux-system
components:
- ../../components/common
- ../../components/sops
resources:
- ./namespace.yaml
- ./flux-instance/ks.yaml
- ./flux-operator/ks.yaml

View File

@@ -0,0 +1,7 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: flux-system
annotations:
kustomize.toolkit.fluxcd.io/prune: disabled

View File

@@ -1,35 +1,13 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/ocirepository-source-v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: cilium
spec:
interval: 5m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: 1.18.1
url: oci://ghcr.io/home-operations/charts-mirror/cilium
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: cilium
spec:
interval: 1h
chartRef:
kind: OCIRepository
name: cilium
install:
remediation:
retries: -1
upgrade:
cleanupOnFail: true
remediation:
retries: 3
interval: 1h
values:
autoDirectNodeRoutes: true
bpf:
@@ -54,12 +32,9 @@ spec:
endpointRoutes:
enabled: true
envoy:
rollOutPods: true
prometheus:
serviceMonitor:
enabled: true
enabled: false
gatewayAPI:
enabled: true
enabled: false
hubble:
enabled: false
ipam:
@@ -74,7 +49,8 @@ spec:
loadBalancer:
algorithm: maglev
mode: "#{ cilium_loadbalancer_mode }#"
localRedirectPolicy: true
localRedirectPolicies:
enabled: true
operator:
dashboards:
enabled: true
@@ -112,4 +88,5 @@ spec:
- SYS_ADMIN
- SYS_RESOURCE
socketLB:
enabled: true
hostNamespaceOnly: true

View File

@@ -1,7 +1,7 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- ./ocirepository.yaml
- ./networks.yaml

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://datreeio.github.io/CRDs-catalog/cilium.io/ciliumloadbalancerippool_v2alpha1.json
apiVersion: cilium.io/v2alpha1
kind: CiliumLoadBalancerIPPool
metadata:
@@ -9,7 +8,6 @@ spec:
blocks:
- cidr: "#{ node_cidr }#"
---
# yaml-language-server: $schema=https://datreeio.github.io/CRDs-catalog/cilium.io/ciliuml2announcementpolicy_v2alpha1.json
apiVersion: cilium.io/v2alpha1
kind: CiliumL2AnnouncementPolicy
metadata:
@@ -25,7 +23,6 @@ spec:
kubernetes.io/os: linux
#% if cilium_bgp_enabled %#
---
# yaml-language-server: $schema=https://datreeio.github.io/CRDs-catalog/cilium.io/ciliumbgpadvertisement_v2alpha1.json
apiVersion: cilium.io/v2alpha1
kind: CiliumBGPAdvertisement
metadata:
@@ -42,7 +39,6 @@ spec:
matchExpressions:
- { key: somekey, operator: NotIn, values: ["never-used-value"] }
---
# yaml-language-server: $schema=https://datreeio.github.io/CRDs-catalog/cilium.io/ciliumbgppeerconfig_v2alpha1.json
apiVersion: cilium.io/v2alpha1
kind: CiliumBGPPeerConfig
metadata:
@@ -55,7 +51,6 @@ spec:
matchLabels:
advertise: bgp
---
# yaml-language-server: $schema=https://datreeio.github.io/CRDs-catalog/cilium.io/ciliumbgpclusterconfig_v2alpha1.json
apiVersion: cilium.io/v2alpha1
kind: CiliumBGPClusterConfig
metadata:

View File

@@ -0,0 +1,13 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: cilium
spec:
interval: 15m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: 1.19.1
url: oci://quay.io/cilium/charts/cilium

View File

@@ -1,35 +0,0 @@
---
# yaml-language-server: $schema=https://github.com/datreeio/CRDs-catalog/raw/refs/heads/main/gateway.networking.k8s.io/gateway_v1.json
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: external
annotations:
external-dns.alpha.kubernetes.io/target: "external.${SECRET_DOMAIN}"
spec:
gatewayClassName: cilium
addresses:
- type: IPAddress
value: "#{ cloudflare_gateway_addr }#"
infrastructure:
annotations:
external-dns.alpha.kubernetes.io/hostname: "external.${SECRET_DOMAIN}"
listeners:
- name: http
protocol: HTTP
port: 80
hostname: "*.${SECRET_DOMAIN}"
allowedRoutes:
namespaces:
from: Same
- name: https
protocol: HTTPS
port: 443
hostname: "*.${SECRET_DOMAIN}"
allowedRoutes:
namespaces:
from: All
tls:
certificateRefs:
- kind: Secret
name: ${SECRET_DOMAIN/./-}-production-tls

View File

@@ -1,35 +0,0 @@
---
# yaml-language-server: $schema=https://github.com/datreeio/CRDs-catalog/raw/refs/heads/main/gateway.networking.k8s.io/gateway_v1.json
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: internal
annotations:
external-dns.alpha.kubernetes.io/target: "internal.${SECRET_DOMAIN}"
spec:
gatewayClassName: cilium
addresses:
- type: IPAddress
value: "#{ cluster_gateway_addr }#"
infrastructure:
annotations:
external-dns.alpha.kubernetes.io/hostname: "internal.${SECRET_DOMAIN}"
listeners:
- name: http
protocol: HTTP
port: 80
hostname: "*.${SECRET_DOMAIN}"
allowedRoutes:
namespaces:
from: Same
- name: https
protocol: HTTPS
port: 443
hostname: "*.${SECRET_DOMAIN}"
allowedRoutes:
namespaces:
from: All
tls:
certificateRefs:
- kind: Secret
name: ${SECRET_DOMAIN/./-}-production-tls

View File

@@ -1,8 +0,0 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./certificate.yaml
- ./external.yaml
- ./internal.yaml

View File

@@ -1,18 +1,9 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app cilium
namespace: &namespace kube-system
name: cilium
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
decryption:
provider: sops
secretRef:
name: sops-age
interval: 1h
path: ./kubernetes/apps/kube-system/cilium/app
postBuild:
@@ -20,43 +11,9 @@ spec:
- name: cluster-secrets
kind: Secret
prune: true
retryInterval: 2m
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: *namespace
timeout: 5m
targetNamespace: kube-system
wait: false
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app cilium-gateway
namespace: &namespace kube-system
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
decryption:
provider: sops
secretRef:
name: sops-age
dependsOn:
- name: cert-manager
namespace: cert-manager
interval: 1h
path: ./kubernetes/apps/kube-system/cilium/gateway
postBuild:
substituteFrom:
- name: cluster-secrets
kind: Secret
prune: true
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: *namespace
timeout: 15m
wait: true

View File

@@ -1,36 +1,13 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/ocirepository-source-v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: coredns
spec:
interval: 5m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
url: oci://ghcr.io/coredns/charts/coredns
ref:
tag: 1.43.3
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: coredns
spec:
interval: 1h
chartRef:
kind: OCIRepository
name: coredns
install:
remediation:
retries: -1
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
interval: 1h
values:
fullnameOverride: coredns
image:

View File

@@ -1,6 +1,6 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- ./ocirepository.yaml

View File

@@ -0,0 +1,13 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: coredns
spec:
interval: 15m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
url: oci://ghcr.io/coredns/charts/coredns
ref:
tag: 1.45.2

View File

@@ -1,18 +1,9 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app coredns
namespace: &namespace kube-system
name: coredns
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
decryption:
provider: sops
secretRef:
name: sops-age
interval: 1h
path: ./kubernetes/apps/kube-system/coredns/app
postBuild:
@@ -20,11 +11,9 @@ spec:
- name: cluster-secrets
kind: Secret
prune: true
retryInterval: 2m
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: *namespace
timeout: 5m
targetNamespace: kube-system
wait: false

View File

@@ -1,11 +1,13 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: kube-system
components:
- ../../components/common
- ../../components/sops
resources:
- ./namespace.yaml
- ./cilium/ks.yaml
- ./coredns/ks.yaml
- ./metrics-server/ks.yaml

View File

@@ -1,35 +1,13 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/ocirepository-source-v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: metrics-server
spec:
interval: 5m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: 3.13.0
url: oci://ghcr.io/home-operations/charts-mirror/metrics-server
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: metrics-server
spec:
interval: 1h
chartRef:
kind: OCIRepository
name: metrics-server
install:
remediation:
retries: -1
upgrade:
cleanupOnFail: true
remediation:
retries: 3
interval: 1h
values:
args:
- --kubelet-insecure-tls

View File

@@ -1,6 +1,6 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- ./ocirepository.yaml

View File

@@ -0,0 +1,13 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: metrics-server
spec:
interval: 15m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: 3.13.0
url: oci://ghcr.io/home-operations/charts-mirror/metrics-server

View File

@@ -1,18 +1,9 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app metrics-server
namespace: &namespace kube-system
name: metrics-server
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
decryption:
provider: sops
secretRef:
name: sops-age
interval: 1h
path: ./kubernetes/apps/kube-system/metrics-server/app
postBuild:
@@ -20,11 +11,9 @@ spec:
- name: cluster-secrets
kind: Secret
prune: true
retryInterval: 2m
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: *namespace
timeout: 5m
targetNamespace: kube-system
wait: false

View File

@@ -0,0 +1,7 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: kube-system
annotations:
kustomize.toolkit.fluxcd.io/prune: disabled

View File

@@ -1,35 +1,13 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/ocirepository-source-v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: reloader
spec:
interval: 5m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: 2.2.2
url: oci://ghcr.io/stakater/charts/reloader
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: reloader
spec:
interval: 1h
chartRef:
kind: OCIRepository
name: reloader
install:
remediation:
retries: -1
upgrade:
cleanupOnFail: true
remediation:
retries: 3
interval: 1h
values:
fullnameOverride: reloader
reloader:

View File

@@ -1,6 +1,6 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- ./ocirepository.yaml

View File

@@ -0,0 +1,13 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: reloader
spec:
interval: 15m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: 2.2.8
url: oci://ghcr.io/stakater/charts/reloader

View File

@@ -1,18 +1,9 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app reloader
namespace: &namespace kube-system
name: reloader
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
decryption:
provider: sops
secretRef:
name: sops-age
interval: 1h
path: ./kubernetes/apps/kube-system/reloader/app
postBuild:
@@ -20,11 +11,9 @@ spec:
- name: cluster-secrets
kind: Secret
prune: true
retryInterval: 2m
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: *namespace
timeout: 5m
targetNamespace: kube-system
wait: false

View File

@@ -1,36 +1,14 @@
#% if spegel_enabled %#
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/ocirepository-source-v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: spegel
spec:
interval: 5m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: 0.3.0
url: oci://ghcr.io/spegel-org/helm-charts/spegel
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: spegel
spec:
interval: 1h
chartRef:
kind: OCIRepository
name: spegel
install:
remediation:
retries: -1
upgrade:
cleanupOnFail: true
remediation:
retries: 3
interval: 1h
values:
spegel:
containerdSock: /run/containerd/containerd.sock
@@ -40,6 +18,4 @@ spec:
hostPort: 29999
serviceMonitor:
enabled: true
grafanaDashboard:
enabled: true
#% endif %#

View File

@@ -1,8 +1,8 @@
#% if spegel_enabled %#
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- ./ocirepository.yaml
#% endif %#

View File

@@ -0,0 +1,15 @@
#% if spegel_enabled %#
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: spegel
spec:
interval: 15m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: 0.6.0
url: oci://ghcr.io/spegel-org/helm-charts/spegel
#% endif %#

View File

@@ -1,19 +1,10 @@
#% if spegel_enabled %#
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app spegel
namespace: &namespace kube-system
name: spegel
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
decryption:
provider: sops
secretRef:
name: sops-age
interval: 1h
path: ./kubernetes/apps/kube-system/spegel/app
postBuild:
@@ -21,12 +12,10 @@ spec:
- name: cluster-secrets
kind: Secret
prune: true
retryInterval: 2m
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: *namespace
timeout: 5m
targetNamespace: kube-system
wait: false
#% endif %#

View File

@@ -1,36 +1,13 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/ocirepository-source-v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: cloudflare-dns
spec:
interval: 5m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: 1.18.0
url: oci://ghcr.io/home-operations/charts-mirror/external-dns
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: &app cloudflare-dns
spec:
interval: 1h
chartRef:
kind: OCIRepository
name: cloudflare-dns
install:
remediation:
retries: -1
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
interval: 1h
values:
fullnameOverride: *app
provider: cloudflare
@@ -45,7 +22,7 @@ spec:
- --cloudflare-proxied
- --crd-source-apiversion=externaldns.k8s.io/v1alpha1
- --crd-source-kind=DNSEndpoint
- --gateway-name=external
- --gateway-name=envoy-external
triggerLoopOnEvent: true
policy: sync
sources: ["crd", "gateway-httproute"]

View File

@@ -1,7 +1,7 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./secret.sops.yaml
- ./helmrelease.yaml
- ./ocirepository.yaml

View File

@@ -0,0 +1,13 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: cloudflare-dns
spec:
interval: 15m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: 1.20.0
url: oci://ghcr.io/home-operations/charts-mirror/external-dns

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://kubernetesjsonschema.dev/v1.18.1-standalone-strict/secret-v1.json
apiVersion: v1
kind: Secret
metadata:

View File

@@ -1,30 +1,19 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app cloudflare-dns
namespace: &namespace network
name: cloudflare-dns
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
decryption:
provider: sops
secretRef:
name: sops-age
interval: 1h
path: ./kubernetes/apps/network/cloudflare-dns
path: ./kubernetes/apps/network/cloudflare-dns/app
postBuild:
substituteFrom:
- name: cluster-secrets
kind: Secret
prune: true
retryInterval: 2m
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: *namespace
timeout: 5m
targetNamespace: network
wait: true

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/externaldns.k8s.io/dnsendpoint_v1alpha1.json
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:

View File

@@ -1,21 +1,13 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: cloudflare-tunnel
spec:
interval: 1h
chartRef:
kind: OCIRepository
name: app-template
install:
remediation:
retries: -1
upgrade:
cleanupOnFail: true
remediation:
retries: 3
name: cloudflare-tunnel
interval: 1h
values:
controllers:
cloudflare-tunnel:
@@ -26,13 +18,12 @@ spec:
app:
image:
repository: docker.io/cloudflare/cloudflared
tag: 2025.8.1
tag: 2026.2.0
env:
NO_AUTOUPDATE: true
TUNNEL_METRICS: 0.0.0.0:8080
TUNNEL_ORIGIN_ENABLE_HTTP2: true
TUNNEL_POST_QUANTUM: true
TUNNEL_TRANSPORT_PROTOCOL: quic
TUNNEL_POST_QUANTUM: true # disable when using http2
TUNNEL_TRANSPORT_PROTOCOL: quic # or http2
envFrom:
- secretRef:
name: cloudflare-tunnel-secret
@@ -73,11 +64,21 @@ spec:
app:
endpoints:
- port: http
configMaps:
config:
data:
config.yaml: |-
ingress:
- hostname: "*.${SECRET_DOMAIN}"
originRequest:
http2Origin: true
originServerName: external.${SECRET_DOMAIN}
service: https://envoy-external.{{ .Release.Namespace }}.svc.cluster.local:443
- service: http_status:404
persistence:
config-file:
type: configMap
name: cloudflare-tunnel-configmap
identifier: config
globalMounts:
- path: /etc/cloudflared/config.yaml
subPath: config.yaml
readOnly: true

View File

@@ -1,14 +1,8 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./dnsendpoint.yaml
- ./secret.sops.yaml
- ./helmrelease.yaml
configMapGenerator:
- name: cloudflare-tunnel-configmap
files:
- config.yaml=./resources/config.yaml
generatorOptions:
disableNameSuffixHash: true
- ./ocirepository.yaml

View File

@@ -0,0 +1,13 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: cloudflare-tunnel
spec:
interval: 15m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: 4.6.2
url: oci://ghcr.io/bjw-s-labs/helm/app-template

View File

@@ -1,10 +0,0 @@
---
originRequest:
originServerName: "external.${SECRET_DOMAIN}"
ingress:
- hostname: "${SECRET_DOMAIN}"
service: &svc https://cilium-gateway-external.kube-system.svc.cluster.local
- hostname: "*.${SECRET_DOMAIN}"
service: *svc
- service: http_status:404

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://kubernetesjsonschema.dev/v1.18.1-standalone-strict/secret-v1.json
apiVersion: v1
kind: Secret
metadata:

View File

@@ -1,30 +1,19 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app cloudflare-tunnel
namespace: &namespace network
name: cloudflare-tunnel
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
decryption:
provider: sops
secretRef:
name: sops-age
interval: 1h
path: ./kubernetes/apps/network/cloudflare-tunnel
path: ./kubernetes/apps/network/cloudflare-tunnel/app
postBuild:
substituteFrom:
- name: cluster-secrets
kind: Secret
prune: true
retryInterval: 2m
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: *namespace
timeout: 5m
targetNamespace: network
wait: false

View File

@@ -1,13 +1,18 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/cert-manager.io/certificate_v1.json
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: "${SECRET_DOMAIN/./-}-production"
spec:
secretName: "${SECRET_DOMAIN/./-}-production-tls"
dnsNames:
- "${SECRET_DOMAIN}"
- "*.${SECRET_DOMAIN}"
duration: 160h
issuerRef:
name: letsencrypt-production
kind: ClusterIssuer
commonName: "${SECRET_DOMAIN}"
dnsNames: ["${SECRET_DOMAIN}", "*.${SECRET_DOMAIN}"]
privateKey:
algorithm: ECDSA
secretName: "${SECRET_DOMAIN/./-}-production-tls"
usages:
- digital signature

View File

@@ -0,0 +1,170 @@
---
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: EnvoyProxy
metadata:
name: envoy
spec:
logging:
level:
default: info
provider:
type: Kubernetes
kubernetes:
envoyDeployment:
replicas: 2
container:
imageRepository: mirror.gcr.io/envoyproxy/envoy
resources:
requests:
cpu: 100m
limits:
memory: 1Gi
envoyService:
externalTrafficPolicy: Cluster
shutdown:
drainTimeout: 180s
telemetry:
metrics:
prometheus:
compression:
type: Zstd
---
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
name: envoy
spec:
controllerName: gateway.envoyproxy.io/gatewayclass-controller
parametersRef:
group: gateway.envoyproxy.io
kind: EnvoyProxy
name: envoy
namespace: network
---
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: envoy-external
annotations:
external-dns.alpha.kubernetes.io/target: external.${SECRET_DOMAIN}
spec:
gatewayClassName: envoy
infrastructure:
annotations:
external-dns.alpha.kubernetes.io/hostname: external.${SECRET_DOMAIN}
lbipam.cilium.io/ips: "#{ cloudflare_gateway_addr }#"
listeners:
- name: http
protocol: HTTP
port: 80
allowedRoutes:
namespaces:
from: Same
- name: https
protocol: HTTPS
port: 443
allowedRoutes:
namespaces:
from: All
tls:
certificateRefs:
- kind: Secret
name: ${SECRET_DOMAIN/./-}-production-tls
---
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: envoy-internal
annotations:
external-dns.alpha.kubernetes.io/target: internal.${SECRET_DOMAIN}
spec:
gatewayClassName: envoy
infrastructure:
annotations:
external-dns.alpha.kubernetes.io/hostname: internal.${SECRET_DOMAIN}
lbipam.cilium.io/ips: "#{ cluster_gateway_addr }#"
listeners:
- name: http
protocol: HTTP
port: 80
allowedRoutes:
namespaces:
from: Same
- name: https
protocol: HTTPS
port: 443
allowedRoutes:
namespaces:
from: All
tls:
certificateRefs:
- kind: Secret
name: ${SECRET_DOMAIN/./-}-production-tls
---
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: BackendTrafficPolicy
metadata:
name: envoy
spec:
compressor:
- type: Zstd
zstd: {}
- type: Brotli
brotli: {}
- type: Gzip
gzip: {}
retry:
numRetries: 2
retryOn:
triggers:
- reset
targetSelectors:
- group: gateway.networking.k8s.io
kind: Gateway
tcpKeepalive: {}
timeout:
http:
requestTimeout: 0s
---
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: ClientTrafficPolicy
metadata:
name: envoy
spec:
clientIPDetection:
xForwardedFor:
trustedCIDRs:
- "#{ cluster_pod_cidr }#"
http2:
onInvalidMessage: TerminateStream
http3: {}
targetSelectors:
- group: gateway.networking.k8s.io
kind: Gateway
tcpKeepalive: {}
tls:
minVersion: "1.2"
alpnProtocols:
- h2
- http/1.1
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: https-redirect
annotations:
external-dns.alpha.kubernetes.io/controller: none
spec:
parentRefs:
- name: envoy-external
namespace: network
sectionName: http
- name: envoy-internal
namespace: network
sectionName: http
rules:
- filters:
- type: RequestRedirect
requestRedirect:
scheme: https
statusCode: 301

View File

@@ -0,0 +1,20 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: envoy-gateway
spec:
chartRef:
kind: OCIRepository
name: envoy-gateway
interval: 1h
values:
global:
imageRegistry: mirror.gcr.io
config:
envoyGateway:
provider:
type: Kubernetes
kubernetes:
deploy:
type: GatewayNamespace

View File

@@ -1,6 +1,9 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./certificate.yaml
- ./envoy.yaml
- ./helmrelease.yaml
- ./ocirepository.yaml
- ./podmonitor.yaml

View File

@@ -0,0 +1,13 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: envoy-gateway
spec:
interval: 15m
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: v1.7.0
url: oci://mirror.gcr.io/envoyproxy/gateway-helm

View File

@@ -0,0 +1,18 @@
---
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: envoy-proxy
spec:
jobLabel: envoy-proxy
namespaceSelector:
matchNames:
- network
podMetricsEndpoints:
- port: metrics
path: /stats/prometheus
honorLabels: true
selector:
matchLabels:
app.kubernetes.io/component: proxy
app.kubernetes.io/name: envoy

View File

@@ -0,0 +1,19 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: envoy-gateway
spec:
interval: 1h
path: ./kubernetes/apps/network/envoy-gateway/app
postBuild:
substituteFrom:
- name: cluster-secrets
kind: Secret
prune: true
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: network
wait: false

View File

@@ -1,35 +1,13 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/ocirepository-source-v1.json
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: k8s-gateway
spec:
interval: 1h
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: 3.2.7
url: oci://ghcr.io/k8s-gateway/charts/k8s-gateway
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/helmrelease-helm-v2.json
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: k8s-gateway
spec:
interval: 1h
chartRef:
kind: OCIRepository
name: k8s-gateway
install:
remediation:
retries: -1
upgrade:
cleanupOnFail: true
remediation:
retries: 3
interval: 1h
values:
fullnameOverride: k8s-gateway
domain: "${SECRET_DOMAIN}"

View File

@@ -1,6 +1,6 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
- ./ocirepository.yaml

View File

@@ -0,0 +1,13 @@
---
apiVersion: source.toolkit.fluxcd.io/v1
kind: OCIRepository
metadata:
name: k8s-gateway
spec:
interval: 1h
layerSelector:
mediaType: application/vnd.cncf.helm.chart.content.v1.tar+gzip
operation: copy
ref:
tag: 3.4.1
url: oci://ghcr.io/k8s-gateway/charts/k8s-gateway

View File

@@ -1,30 +1,19 @@
---
# yaml-language-server: $schema=https://raw.githubusercontent.com/fluxcd-community/flux2-schemas/main/kustomization-kustomize-v1.json
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app k8s-gateway
namespace: &namespace network
name: k8s-gateway
spec:
commonMetadata:
labels:
app.kubernetes.io/name: *app
decryption:
provider: sops
secretRef:
name: sops-age
interval: 1h
path: ./kubernetes/apps/network/k8s-gateway
path: ./kubernetes/apps/network/k8s-gateway/app
postBuild:
substituteFrom:
- name: cluster-secrets
kind: Secret
prune: true
retryInterval: 2m
sourceRef:
kind: GitRepository
name: flux-system
namespace: flux-system
targetNamespace: *namespace
timeout: 5m
targetNamespace: network
wait: false

View File

@@ -1,11 +1,14 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/kustomization
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: network
components:
- ../../components/common
- ../../components/sops
resources:
- ./namespace.yaml
- ./cloudflare-dns/ks.yaml
- ./cloudflare-tunnel/ks.yaml
- ./envoy-gateway/ks.yaml
- ./k8s-gateway/ks.yaml

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