Compare commits

...

852 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
renovate[bot]
69f90ce6e3 fix(container): update image ghcr.io/coredns/charts/coredns ( 1.43.2 ➔ 1.43.3 ) (#1963)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-31 07:25:26 -04:00
renovate[bot]
bf0cf4feff fix(container): update image ghcr.io/k8s-gateway/charts/k8s-gateway ( 3.2.6 ➔ 3.2.7 ) (#1964)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-31 07:25:16 -04:00
renovate[bot]
9f854847b7 fix(mise): update tool aqua:budimanjojo/talhelper ( 3.0.32 ➔ 3.0.33 ) 2025-08-31 09:14:20 +00:00
renovate[bot]
91b53e45e3 fix(container): update image ghcr.io/siderolabs/installer ( v1.10.6 ➔ v1.10.7 ) (#1961)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-26 18:01:53 -04:00
renovate[bot]
898c1aa16a fix(container): update image ghcr.io/stakater/charts/reloader ( 2.2.0 ➔ 2.2.2 ) (#1962)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-26 18:01:42 -04:00
renovate[bot]
62c1cc9c9b ci(github-action): update action jdx/mise-action ( v3.1.0 ➔ v3.2.0 ) 2025-08-26 22:00:55 +00:00
renovate[bot]
c72de5f826 fix(mise): update tool aqua:siderolabs/talos ( 1.10.6 ➔ 1.10.7 ) 2025-08-26 22:00:39 +00:00
Devin Buhl
bcfa91093c chore: housekeeping 🧹 (#1960) 2025-08-26 17:49:50 -04:00
Devin Buhl
27cb263fae chore: refactor package rules and commit message formats
Updated package rules and commit message formats in .renovaterc.json5.
2025-08-26 17:21:48 -04:00
renovate[bot]
728e6f0eef feat(github-release): update release prometheus-operator/prometheus-operator ( v0.84.1 → v0.85.0 ) (#1959)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-23 07:20:46 -04:00
renovate[bot]
02ccf80eee fix(container): update image docker.io/cloudflare/cloudflared ( 2025.8.0 → 2025.8.1 ) (#1958)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-23 07:20:28 -04:00
renovate[bot]
1e69ab27c7 feat(mise): update tool aqua:cli/cli ( 2.76.2 → 2.78.0 ) 2025-08-23 02:02:20 +00:00
renovate[bot]
e7889f5308 fix(mise): update tool aqua:cloudflare/cloudflared ( 2025.8.0 → 2025.8.1 ) 2025-08-23 02:02:02 +00:00
renovate[bot]
87f7cee2c0 ci(github-action)!: Update action jdx/mise-action ( v2.4.4 → v3.1.0 ) (#1957)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-19 19:19:12 -04:00
renovate[bot]
3075858a74 fix(mise): update tool aqua:helm/helm ( 3.18.5 → 3.18.6 ) 2025-08-19 23:17:23 +00:00
renovate[bot]
1d08257b23 feat(container): update flux operator group ( 0.27.0 → 0.28.0 ) (#1956)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-16 09:15:28 -04:00
renovate[bot]
99e370d939 ci(github-action)!: Update action actions/checkout ( v4.3.0 → v5.0.0 ) (#1955)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-15 22:10:02 -04:00
renovate[bot]
44c1d04fa6 fix(container): update image ghcr.io/k8s-gateway/charts/k8s-gateway ( 3.2.3 → 3.2.6 ) (#1952)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-15 22:08:38 -04:00
renovate[bot]
0a0ff92361 ci(github-action): update action actions/checkout ( v4.2.2 → v4.3.0 ) 2025-08-16 02:08:28 +00:00
renovate[bot]
53a91668ac fix(mise): update tool aqua:helmfile/helmfile ( 1.1.4 → 1.1.5 ) 2025-08-16 02:08:15 +00:00
renovate[bot]
c47a588eda fix(container): update image ghcr.io/siderolabs/kubelet ( v1.33.3 → v1.33.4 ) (#1953)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-15 22:08:03 -04:00
renovate[bot]
73c9b4a624 fix(helm): update chart cilium ( 1.18.0 → 1.18.1 ) (#1954)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-15 22:07:52 -04:00
renovate[bot]
973d54004c fix(mise): update tool aqua:helm/helm ( 3.18.4 → 3.18.5 ) 2025-08-16 01:47:11 +00:00
renovate[bot]
89ec706ae9 fix(mise): update tool aqua:cue-lang/cue ( 0.14.0 → 0.14.1 ) 2025-08-16 01:46:55 +00:00
renovate[bot]
0b9ca18c26 fix(mise): update tool aqua:helmfile/helmfile ( 1.1.3 → 1.1.4 ) 2025-08-09 08:57:12 +00:00
renovate[bot]
0a5cf42b9e feat(container): update image docker.io/cloudflare/cloudflared ( 2025.7.0 → 2025.8.0 ) (#1951)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-08 22:00:24 -04:00
renovate[bot]
55d4848902 feat(container): update flux operator group ( 0.26.0 → 0.27.0 ) (#1950)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-08 22:00:18 -04:00
renovate[bot]
c72ffb5afe fix(github-release): update release prometheus-operator/prometheus-operator ( v0.84.0 → v0.84.1 ) (#1949)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-08 22:00:11 -04:00
renovate[bot]
6006d907e4 fix(container): update coredns group ( 1.43.0 → 1.43.2 ) (#1948)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-08 22:00:04 -04:00
renovate[bot]
d7d373594e feat(mise): update tool aqua:cloudflare/cloudflared ( 2025.7.0 → 2025.8.0 ) 2025-08-09 01:24:21 +00:00
renovate[bot]
380e223ce7 ci(github-action): update action ghcr.io/allenporter/flux-local ( v7.7.1 → v7.8.0 ) 2025-08-09 01:23:56 +00:00
Devin Buhl
51e932ffb3 Revert "feat: use gcr mirror for docker.io pulls" (#1947) 2025-08-02 13:15:47 -04:00
Devin Buhl
8e2d39428d feat: update containerd config 2025-08-02 12:31:17 -04:00
Devin Buhl
2230dd2a65 feat: update sysctls 2025-08-02 12:29:18 -04:00
Devin Buhl
b32b2a988c feat: use gcr mirror for docker.io pulls (#1946) 2025-08-02 12:27:02 -04:00
renovate[bot]
f1824ff34b feat(helm): update chart cilium ( 1.17.6 → 1.18.0 ) (#1945)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Devin Buhl <onedr0p@users.noreply.github.com>
2025-08-02 08:57:56 -04:00
renovate[bot]
e472301c79 feat(container): update flux operator group ( 0.25.0 → 0.26.0 ) (#1942)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-02 08:57:14 -04:00
renovate[bot]
9137d1f1e8 feat(container): update image ghcr.io/bjw-s-labs/helm/app-template ( 4.1.2 → 4.2.0 ) (#1943)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-02 08:56:54 -04:00
renovate[bot]
9e3a5defc9 feat(container): update image ghcr.io/stakater/charts/reloader ( 2.1.5 → 2.2.0 ) (#1944)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-02 08:56:47 -04:00
renovate[bot]
c68d094bb9 feat(mise): update tool aqua:cue-lang/cue ( 0.13.2 → 0.14.0 ) 2025-08-02 12:53:36 +00:00
renovate[bot]
4401902808 fix(mise): update tool pipx:makejinja ( 2.8.0 → 2.8.1 ) 2025-08-02 06:11:35 +00:00
renovate[bot]
b1706b3dc3 fix(mise): update tool aqua:siderolabs/talos ( 1.10.5 → 1.10.6 ) 2025-08-02 06:11:18 +00:00
renovate[bot]
db28d294c4 fix(mise): update tool aqua:cli/cli ( 2.76.1 → 2.76.2 ) 2025-08-02 02:20:35 +00:00
renovate[bot]
ba8933048a fix(mise): update tool aqua:cilium/cilium-cli ( 0.18.5 → 0.18.6 ) 2025-08-02 02:20:24 +00:00
renovate[bot]
2e31e66208 fix(container): update image ghcr.io/siderolabs/installer ( v1.10.5 → v1.10.6 ) (#1941)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-01 22:19:18 -04:00
renovate[bot]
05a5da5e00 fix(mise): update tool aqua:budimanjojo/talhelper ( 3.0.31 → 3.0.32 ) 2025-08-02 01:24:56 +00:00
renovate[bot]
6278191814 ci(github-action): update action jdx/mise-action ( v2.4.2 → v2.4.4 ) 2025-08-02 01:24:38 +00:00
renovate[bot]
f1d09526dc ci(github-action): update action jdx/mise-action ( v2.4.0 → v2.4.2 ) 2025-07-27 09:47:23 +00:00
renovate[bot]
30174300f3 ci(github-action): update action ghcr.io/allenporter/flux-local ( v7.7.0 → v7.7.1 ) 2025-07-27 04:41:16 +00:00
renovate[bot]
abc8018472 feat(helm): update chart metrics-server ( 3.12.2 → 3.13.0 ) (#1940)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-26 06:34:34 -04:00
renovate[bot]
fd79011e44 feat(container): update flux operator group ( 0.24.1 → 0.25.0 ) (#1939)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-26 06:34:25 -04:00
renovate[bot]
2fcf83226b feat(mise): update tool aqua:mikefarah/yq ( 4.46.1 → 4.47.1 ) 2025-07-26 10:26:40 +00:00
renovate[bot]
91a5a8c5f2 ci(github-action): update action ghcr.io/allenporter/flux-local ( v7.5.6 → v7.7.0 ) 2025-07-26 04:57:35 +00:00
renovate[bot]
9276695c1a fix(mise): update tool aqua:go-task/task ( 3.44.0 → 3.44.1 ) 2025-07-26 04:57:16 +00:00
renovate[bot]
cc4c0e3dd4 fix(mise): update tool aqua:cli/cli ( 2.76.0 → 2.76.1 ) 2025-07-26 02:35:15 +00:00
renovate[bot]
f0fc383921 fix(mise): update tool aqua:budimanjojo/talhelper ( 3.0.30 → 3.0.31 ) 2025-07-26 02:34:59 +00:00
Hef
a589981a59 fix labeler permissions (#1938) 2025-07-19 18:17:28 -04:00
renovate[bot]
2f36551c0a feat(mise): update tool aqua:cli/cli ( 2.75.0 → 2.76.0 ) 2025-07-18 21:04:17 +00:00
renovate[bot]
cb2a70b2d1 ci(github-action): update action jdx/mise-action ( v2.3.1 → v2.4.0 ) 2025-07-18 21:04:02 +00:00
renovate[bot]
655c6a44c3 feat(helm): update chart external-dns ( 1.17.0 → 1.18.0 ) (#1937)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 17:03:09 -04:00
renovate[bot]
a637ff9dea feat(github-release): update release prometheus-operator/prometheus-operator ( v0.83.0 → v0.84.0 ) (#1936)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 17:02:47 -04:00
renovate[bot]
ba04289c3b fix(helm): update chart cilium ( 1.17.5 → 1.17.6 ) (#1935)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 17:02:41 -04:00
renovate[bot]
9697055319 fix(container): update image ghcr.io/siderolabs/kubelet ( v1.33.2 → v1.33.3 ) (#1934)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 17:02:34 -04:00
renovate[bot]
4dc853e59e fix(container): update image ghcr.io/k8s-gateway/charts/k8s-gateway ( 3.2.1 → 3.2.3 ) (#1933)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-18 17:02:27 -04:00
renovate[bot]
d716845224 feat(mise): update tool aqua:mikefarah/yq ( 4.45.4 → 4.46.1 ) 2025-07-12 02:53:11 +00:00
renovate[bot]
f5566a07d1 feat(container): update cert-manager group ( v1.17.2 → v1.18.2 ) (#1932)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-11 22:52:39 -04:00
renovate[bot]
3e0b057c54 feat(mise): update tool aqua:cli/cli ( 2.74.2 → 2.75.0 ) 2025-07-12 01:02:39 +00:00
renovate[bot]
7d7aea22d1 fix(mise): update tool aqua:helmfile/helmfile ( 1.1.2 → 1.1.3 ) 2025-07-12 01:02:18 +00:00
Bogdan
579aab2ff8 fix: set token permissions for label-sync (#1931) 2025-07-09 12:09:59 -04:00
renovate[bot]
96f059159b fix(github-release): update release controlplaneio-fluxcd/distribution ( v2.6.3 → v2.6.4 ) (#1929)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-09 09:39:03 -04:00
renovate[bot]
90b96726e4 feat(container): update flux operator group ( 0.23.0 → 0.24.1 ) (#1930)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-09 09:38:55 -04:00
renovate[bot]
e4a8159834 fix(container): update image ghcr.io/stakater/charts/reloader ( 2.1.4 → 2.1.5 ) (#1928)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-09 09:38:30 -04:00
renovate[bot]
4d6204eda8 fix(mise): update tool aqua:helm/helm ( 3.18.3 → 3.18.4 ) 2025-07-09 13:38:05 +00:00
renovate[bot]
9fe96a0088 fix(mise): update tool aqua:fluxcd/flux2 ( 2.6.3 → 2.6.4 ) 2025-07-09 13:37:47 +00:00
Devin Buhl
835a24c130 chore: update mise deps
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-07-07 09:25:39 -04:00
renovate[bot]
792e32c275 fix(github-release): update release controlplaneio-fluxcd/distribution ( v2.6.2 → v2.6.3 ) (#1924)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-07 09:01:30 -04:00
renovate[bot]
61244480bf feat(container): update image docker.io/cloudflare/cloudflared ( 2025.6.1 → 2025.7.0 ) (#1927)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-05 09:16:18 -04:00
renovate[bot]
3eea6ed036 fix(container): update image ghcr.io/siderolabs/installer ( v1.10.4 → v1.10.5 ) (#1926)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-05 09:16:07 -04:00
renovate[bot]
4bce4e3004 fix(container): update image ghcr.io/k8s-gateway/charts/k8s-gateway ( 3.2.0 → 3.2.1 ) (#1925)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-05 09:15:54 -04:00
renovate[bot]
84483462ea feat(mise): update tool aqua:cloudflare/cloudflared ( 2025.6.1 → 2025.7.0 ) 2025-07-05 08:30:34 +00:00
renovate[bot]
e2b1fb5027 ci(github-action): update action ncipollo/release-action ( v1.16.0 → v1.18.0 ) 2025-07-05 06:02:14 +00:00
renovate[bot]
6c9391911f fix(mise): update tool aqua:siderolabs/talos ( 1.10.4 → 1.10.5 ) 2025-07-05 06:01:57 +00:00
renovate[bot]
637694aba8 fix(mise): update tool aqua:cilium/cilium-cli ( 0.18.4 → 0.18.5 ) 2025-07-05 00:57:11 +00:00
renovate[bot]
ee3b32d8b5 fix(mise): update tool aqua:budimanjojo/talhelper ( 3.0.29 → 3.0.30 ) 2025-07-05 00:56:51 +00:00
Devin Buhl
e00574be04 chore: update vlan comment in cluster sample 2025-07-04 11:41:15 -04:00
Devin Buhl
401b2f5d56 chore: Update README.md 2025-06-29 09:30:02 -04:00
renovate[bot]
93a350df15 ci(github-action): update action jdx/mise-action ( v2.3.0 → v2.3.1 ) 2025-06-28 17:23:34 +00:00
renovate[bot]
d282723602 ci(github-action): update action jdx/mise-action ( v2.2.3 → v2.3.0 ) 2025-06-28 13:11:27 +00:00
renovate[bot]
b2fa6c9196 fix(container): update image ghcr.io/bjw-s-labs/helm/app-template ( 4.1.1 → 4.1.2 ) (#1923)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-28 06:57:03 -04:00
renovate[bot]
de1aa53559 fix(mise): update tool aqua:fluxcd/flux2 ( 2.6.2 → 2.6.3 ) 2025-06-28 02:58:50 +00:00
renovate[bot]
a071e846ca fix(mise): update tool aqua:cue-lang/cue ( 0.13.1 → 0.13.2 ) 2025-06-28 02:58:34 +00:00
AJ
2decac1ee8 update external-dns mainfest yaml filename (#1922) 2025-06-27 01:53:51 -04:00
renovate[bot]
1c04fda4bf fix(container): update image ghcr.io/siderolabs/kubelet ( v1.33.1 → v1.33.2 ) (#1915)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-22 09:44:27 -04:00
renovate[bot]
0ff0125407 fix(helm): update chart cilium ( 1.17.4 → 1.17.5 ) (#1918)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-21 07:16:28 -04:00
renovate[bot]
37a4927d57 fix(github-release): update release controlplaneio-fluxcd/distribution ( v2.6.1 → v2.6.2 ) (#1917)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-21 07:16:19 -04:00
renovate[bot]
761c7e8ee7 feat(container): update flux operator group ( 0.22.0 → 0.23.0 ) (#1920)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-21 07:16:01 -04:00
renovate[bot]
2209bca37f feat(helm): update chart external-dns ( 1.16.1 → 1.17.0 ) (#1921)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-21 07:15:40 -04:00
renovate[bot]
5d6ec0a8b7 feat(container): update coredns group ( 1.42.3 → 1.43.0 ) (#1919)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-21 07:15:29 -04:00
renovate[bot]
c479254e62 fix(container): update image ghcr.io/stakater/charts/reloader ( 2.1.3 → 2.1.4 ) (#1916)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-21 07:15:16 -04:00
renovate[bot]
67b3bd21e2 fix(container): update image docker.io/cloudflare/cloudflared ( 2025.6.0 → 2025.6.1 ) (#1914)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-21 07:15:01 -04:00
renovate[bot]
b5522d0ce3 fix(mise): update tool aqua:helm/helm ( 3.18.2 → 3.18.3 ) 2025-06-21 08:36:24 +00:00
renovate[bot]
ea5077a540 fix(mise): update tool aqua:fluxcd/flux2 ( 2.6.1 → 2.6.2 ) 2025-06-21 05:05:52 +00:00
renovate[bot]
4b47d3c8ab fix(mise): update tool aqua:cloudflare/cloudflared ( 2025.6.0 → 2025.6.1 ) 2025-06-21 05:05:31 +00:00
renovate[bot]
7c7341315c fix(mise): update tool aqua:cli/cli ( 2.74.1 → 2.74.2 ) 2025-06-21 03:28:45 +00:00
renovate[bot]
1177050119 ci(github-action): update action ghcr.io/allenporter/flux-local ( v7.5.5 → v7.5.6 ) 2025-06-21 03:28:11 +00:00
renovate[bot]
1f39ac3155 ci(github-action): update action ghcr.io/allenporter/flux-local ( v7.5.4 → v7.5.5 ) 2025-06-15 18:44:36 +00:00
renovate[bot]
00d74ec0a5 feat(mise): update tool pipx:makejinja ( 2.7.2 → 2.8.0 ) 2025-06-14 22:26:00 +00:00
renovate[bot]
4d9c1eeeaf feat(container): update image ghcr.io/bjw-s-labs/helm/app-template ( 4.0.1 → 4.1.1 ) (#1911)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Devin Buhl <onedr0p@users.noreply.github.com>
2025-06-12 08:33:55 -04:00
renovate[bot]
b6605826ea fix(mise): update tool aqua:helmfile/helmfile ( 1.1.1 → 1.1.2 ) 2025-06-12 11:48:29 +00:00
renovate[bot]
c18272ee68 fix(mise): update tool aqua:budimanjojo/talhelper ( 3.0.28 → 3.0.29 ) 2025-06-12 11:48:12 +00:00
renovate[bot]
7f1dba136c feat(mise): update tool aqua:go-task/task ( 3.43.3 → 3.44.0 ) 2025-06-12 02:14:04 +00:00
renovate[bot]
8d52f9692d fix(mise): update tool aqua:cue-lang/cue ( 0.13.0 → 0.13.1 ) 2025-06-11 23:58:58 +00:00
renovate[bot]
9ba2bd3165 fix(mise): update tool aqua:cli/cli ( 2.74.0 → 2.74.1 ) 2025-06-11 23:58:44 +00:00
renovate[bot]
0c014878fe feat(container): update image docker.io/cloudflare/cloudflared ( 2025.5.0 → 2025.6.0 ) (#1910)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-11 19:57:58 -04:00
renovate[bot]
8926861621 fix(container): update image ghcr.io/siderolabs/installer ( v1.10.3 → v1.10.4 ) (#1909)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-11 19:57:51 -04:00
renovate[bot]
bca67b9f18 fix(container): update coredns group ( 1.42.2 → 1.42.3 ) (#1908)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-11 19:57:39 -04:00
renovate[bot]
76a1e6cd7a feat(mise): update tool aqua:cloudflare/cloudflared ( 2025.5.0 → 2025.6.0 ) 2025-06-11 23:57:10 +00:00
renovate[bot]
6ae96ab13c fix(mise): update tool aqua:siderolabs/talos ( 1.10.3 → 1.10.4 ) 2025-06-11 23:56:47 +00:00
renovate[bot]
3686c3ddb4 feat(container): update spegel group ( 0.2.0 → 0.3.0 ) (#1907)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-06 22:59:50 -04:00
renovate[bot]
94ac96d0dc fix(mise): update tool aqua:cilium/cilium-cli ( 0.18.3 → 0.18.4 ) 2025-06-07 02:58:34 +00:00
renovate[bot]
efb85ff226 fix(github-release): update release controlplaneio-fluxcd/distribution ( v2.6.0 → v2.6.1 ) (#1905)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 18:41:28 -04:00
renovate[bot]
535972c168 feat(container): update flux operator group ( 0.21.0 → 0.22.0 ) (#1906)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-06-03 18:41:19 -04:00
Devin Buhl
51058594a2 chore: update README.md 2025-06-03 18:40:39 -04:00
renovate[bot]
f7e3ed50ee fix(mise): update tool aqua:helm/helm ( 3.18.1 → 3.18.2 ) 2025-06-03 22:40:21 +00:00
renovate[bot]
5a78381a9c fix(mise): update tool aqua:fluxcd/flux2 ( 2.6.0 → 2.6.1 ) 2025-06-03 22:40:05 +00:00
Devin Buhl
1f4c1f8ecb fix: check for TALOSCONFIG and KUBECONFIG envs in bootstrap 2025-05-31 09:55:24 -04:00
Devin Buhl
22add01f41 fix: use helmfile sync instead of apply
This gets around requiring helm-diff
2025-05-31 09:51:12 -04:00
renovate[bot]
ba852bed41 feat(mise): update tool aqua:cli/cli ( 2.73.0 → 2.74.0 ) (#1904)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-31 10:50:28 +00:00
Devin Buhl
64a781e043 chore: update .renovaterc.json5 2025-05-31 06:49:53 -04:00
renovate[bot]
d3f1c3263f feat(github-release): update release prometheus-operator/prometheus-operator ( v0.82.2 → v0.83.0 ) (#1903)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-31 06:48:45 -04:00
renovate[bot]
5d63db5a60 fix(mise): update tool aqua:budimanjojo/talhelper ( 3.0.27 → 3.0.28 ) 2025-05-31 06:20:27 +00:00
renovate[bot]
0e254f190a fix(mise): update tool aqua:helmfile/helmfile ( 1.1.0 → 1.1.1 ) 2025-05-31 00:33:10 +00:00
Devin Buhl
91ec4029df chore: update readme
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-05-30 09:12:25 -04:00
Devin Buhl
7028675738 feat: post-flux v2.6.0 updates (#1902) 2025-05-29 12:10:15 -04:00
renovate[bot]
e8e90b5fb4 feat(github-release): update release controlplaneio-fluxcd/distribution ( v2.5.1 → v2.6.0 ) (#1900)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-29 12:04:53 -04:00
renovate[bot]
e27fc1f588 feat(container): update flux operator group ( 0.20.0 → 0.21.0 ) (#1899)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-29 12:04:47 -04:00
renovate[bot]
8fb0a4ffda feat(mise): update tool aqua:fluxcd/flux2 ( 2.5.1 → 2.6.0 ) (#1901)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-29 12:04:39 -04:00
Devin Buhl
1b2c36a3f2 chore: be clear about placeholders in readme
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-05-29 10:06:28 -04:00
Devin Buhl
9442b12894 chore: update readme
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-05-29 09:54:32 -04:00
Devin Buhl
8fb6288350 feat: add various flux2 patches for their controllers
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-05-29 07:10:14 -04:00
renovate[bot]
b2b3a4bb82 fix(container): update image ghcr.io/siderolabs/installer ( v1.10.2 → v1.10.3 ) (#1898)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-29 06:57:49 -04:00
renovate[bot]
687fa2f294 ci(github-action): update action jdx/mise-action ( v2.2.2 → v2.2.3 ) 2025-05-29 10:52:24 +00:00
renovate[bot]
4399ecf086 ci(github-action): update action ghcr.io/allenporter/flux-local ( v7.5.2 → v7.5.4 ) 2025-05-29 10:52:09 +00:00
Devin Buhl
09022f266e chore: update mise deps
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-05-29 06:50:55 -04:00
Devin Buhl
63e9f96d92 fix: do not rely on patching decryption due to race condition
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-05-28 21:26:40 -04:00
Devin Buhl
9d64bb8027 chore: address some minor nites
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-05-28 20:17:24 -04:00
Gregory Mulvaney
1aff4277e7 fix: Added annotations to gateways (#1897) 2025-05-28 18:13:27 -04:00
Devin Buhl
1e3a0e2af2 chore: update readme
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-05-28 07:59:42 -04:00
Devin Buhl
37ea3835a4 fix: use wait false in cluster-apps ks
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-05-27 17:31:10 -04:00
Devin Buhl
1f46c8c98e fix: add postBuild to cert-manager ks
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-05-27 11:01:16 -04:00
Devin Buhl
e4b54e5712 chore: Update README.md 2025-05-26 08:31:42 -04:00
Devin Buhl
5f9e9e293a chore: add mise to label configs
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-05-26 08:08:45 -04:00
Devin Buhl
f5331226c2 chore: automerge mise tools on patch releases 2025-05-26 08:05:13 -04:00
renovate[bot]
8c09cd8d52 fix(container): update coredns group ( 1.42.1 → 1.42.2 ) (#1896)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-26 08:03:41 -04:00
Devin Buhl
ad2882241d fix: downgrade helm due to OCI bug
https://github.com/helm/helm/issues/30890
2025-05-26 07:59:52 -04:00
Devin Buhl
0b02c35741 chore: add mise to renovate config 2025-05-26 07:58:58 -04:00
renovate[bot]
3fdc58e8a2 ci(github-action): update action ghcr.io/allenporter/flux-local ( v7.5.1 → v7.5.2 ) 2025-05-25 23:13:36 +00:00
renovate[bot]
a18ccff5d0 ci(github-action): update action ghcr.io/allenporter/flux-local ( v7.5.0 → v7.5.1 ) 2025-05-25 18:50:16 +00:00
Devin Buhl
161cd892af feat!: deprecate ingress-nginx and use gateway-api (#1895) 2025-05-25 10:35:17 -04:00
Devin Buhl
2cbeef857a feat(k8s_gateway): switch to maintained fork (#1894) 2025-05-25 09:00:02 -04:00
github-actions[bot]
c2847928d2 chore(mise): upgrade dependencies (#1893)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-05-24 20:40:30 -04:00
renovate[bot]
dbea3fb2fc feat(container)!: Update image ghcr.io/mendhak/http-https-echo ( 36 → 37 ) (#1892)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-24 07:37:17 -04:00
Devin Buhl
c7a7fc6dd1 chore: update readme
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-05-17 10:18:14 -04:00
renovate[bot]
7e6ed19a84 feat(container)!: Update image ghcr.io/bjw-s-labs/helm/app-template ( 3.7.3 → 4.0.1 ) (#1889)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-17 10:04:15 -04:00
Devin Buhl
6887d48921 chore: migrate renovate config
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-05-17 10:01:37 -04:00
Tanguille
244657662b chore(external-dns): update CRD path (#1890) 2025-05-17 07:40:19 -04:00
renovate[bot]
a9973e86df feat(container): update image docker.io/cloudflare/cloudflared ( 2025.4.2 → 2025.5.0 ) (#1888)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-17 00:28:56 -04:00
renovate[bot]
34ae87492f fix(helm): update chart cilium ( 1.17.3 → 1.17.4 ) (#1887)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-17 00:28:47 -04:00
renovate[bot]
9d4de8d570 fix(container): update image ghcr.io/siderolabs/kubelet ( v1.33.0 → v1.33.1 ) (#1886)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-17 00:28:37 -04:00
renovate[bot]
d769523059 fix(container): update image ghcr.io/siderolabs/installer ( v1.10.1 → v1.10.2 ) (#1885)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-17 00:28:28 -04:00
renovate[bot]
a8a015f18a ci(github-action): update action jdx/mise-action ( v2.2.1 → v2.2.2 ) 2025-05-15 15:59:38 +00:00
renovate[bot]
edf542d3d9 fix(github-release): update release prometheus-operator/prometheus-operator ( v0.82.1 → v0.82.2 ) (#1882)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-15 11:58:47 -04:00
renovate[bot]
a6b23a2d68 feat(container): update flux operator group ( 0.19.0 → 0.20.0 ) (#1883)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-15 11:58:40 -04:00
renovate[bot]
ff002b9a8f feat(github-release): update release kubernetes-sigs/external-dns ( v0.16.1 → v0.17.0 ) (#1884)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-15 11:58:33 -04:00
github-actions[bot]
c974ed8730 chore(mise): upgrade dependencies (#1881)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-05-10 21:05:13 -04:00
renovate[bot]
c4bd701568 feat(container): update image ghcr.io/siderolabs/kubelet ( v1.32.4 → v1.33.0 ) (#1867)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Devin Buhl <onedr0p@users.noreply.github.com>
2025-05-07 13:50:53 -04:00
renovate[bot]
430612838b feat(container): update image ghcr.io/siderolabs/installer ( v1.9.6 → v1.10.1 ) (#1879)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 13:49:32 -04:00
github-actions[bot]
5f88bf44fc chore(mise): upgrade dependencies (#1880)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-05-07 13:49:26 -04:00
renovate[bot]
38379cc5f6 fix(github-release): update release prometheus-operator/prometheus-operator ( v0.82.0 → v0.82.1 ) (#1878)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 13:47:49 -04:00
renovate[bot]
618bad876a fix(container): update coredns group ( 1.42.0 → 1.42.1 ) (#1877)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-07 13:47:41 -04:00
Devin Buhl
60be8d1a68 chore: update talos to 1.9.6 and kubernetes to 1.32.4 2025-05-05 12:10:01 -04:00
github-actions[bot]
2d30b1934d chore(mise): upgrade dependencies (#1876)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-05-04 01:28:23 -04:00
renovate[bot]
2cd953bdda ci(github-action): update action ghcr.io/allenporter/flux-local ( v7.4.0 → v7.5.0 ) 2025-05-03 21:24:42 +00:00
renovate[bot]
8ac4270c20 fix(container): update image docker.io/cloudflare/cloudflared ( 2025.4.0 → 2025.4.2 ) (#1871)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-02 20:43:55 -04:00
renovate[bot]
0b989f4beb fix(container): update image ghcr.io/stakater/charts/reloader ( 2.1.2 → 2.1.3 ) (#1872)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-02 20:43:44 -04:00
renovate[bot]
aefecd9665 fix(helm): update chart ingress-nginx ( 4.12.1 → 4.12.2 ) (#1873)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-02 20:43:34 -04:00
renovate[bot]
974b7dcfc8 feat(container): update coredns group ( 1.40.0 → 1.42.0 ) (#1874)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-05-02 20:43:25 -04:00
Devin Buhl
ad6a584416 fix: remove cosign verifications of oci charts
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-05-01 20:21:39 -04:00
Devin Buhl
3aec5b798b fix: update app-template oci url 2025-05-01 20:20:07 -04:00
Devin Buhl
a44b852bbb chore: add github-actions to release.yaml 2025-04-30 20:19:58 -04:00
github-actions[bot]
c0dcdca561 chore(mise): upgrade dependencies (#1870)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-04-26 23:10:17 -04:00
renovate[bot]
a8627a8a43 feat(container): update spegel group ( 0.1.1 → 0.2.0 ) (#1869)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-26 12:05:09 -04:00
renovate[bot]
c8b8ab593c fix(container): update cert-manager group ( v1.17.1 → v1.17.2 ) (#1868)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-25 08:07:07 -04:00
renovate[bot]
6928db2e1c ci(github-action): update action jdx/mise-action ( v2.1.11 → v2.2.1 ) 2025-04-25 12:06:44 +00:00
renovate[bot]
de4d63726e fix(container): update image ghcr.io/stakater/charts/reloader ( 2.1.1 → 2.1.2 ) (#1864)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-25 08:05:50 -04:00
renovate[bot]
9ac6e9a1ad feat(container): update coredns group ( 1.39.2 → 1.40.0 ) (#1866)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-25 08:05:43 -04:00
Devin Buhl
9b21f6f218 chore: update .renovaterc.json5 2025-04-25 08:04:41 -04:00
renovate[bot]
6e45395310 ci(github-action): update action ghcr.io/allenporter/flux-local ( v7.3.0 → v7.4.0 ) 2025-04-25 12:04:00 +00:00
wasurerarenai
b6d1eac93b Swap Cilium BGP Node/Router ASNs (#1862) 2025-04-22 12:02:35 -04:00
renovate[bot]
cab2799953 fix(container): update image ghcr.io/stakater/charts/reloader ( 2.1.0 → 2.1.1 ) (#1861)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-20 18:35:52 -04:00
github-actions[bot]
6e8ed7dd3e chore(mise): upgrade dependencies (#1860)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-04-19 20:09:04 -04:00
renovate[bot]
f81702cede feat(container): update image ghcr.io/stakater/charts/reloader ( 2.0.0 → 2.1.0 ) (#1859)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-18 22:29:54 -04:00
renovate[bot]
4092feff25 feat(github-release): update release prometheus-operator/prometheus-operator ( v0.81.0 → v0.82.0 ) (#1858)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Devin Buhl <onedr0p@users.noreply.github.com>
2025-04-17 09:01:28 -04:00
renovate[bot]
25da9c40da fix(helm): update chart cilium ( 1.17.2 → 1.17.3 ) (#1857)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-17 09:00:49 -04:00
snoopy82481
bc29f46675 feat(cilium): update BGP configuration to use cluster config and peer settings (#1856)
Co-authored-by: Devin Buhl <onedr0p@users.noreply.github.com>
2025-04-17 08:59:17 -04:00
github-actions[bot]
78551ba01d chore(mise): upgrade dependencies (#1854)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-04-12 22:29:09 -04:00
renovate[bot]
de4fb94d92 ci(github-action): update action tj-actions/changed-files ( v46.0.4 → v46.0.5 ) 2025-04-12 07:10:12 +00:00
renovate[bot]
7a202b5776 feat(helm): update chart external-dns ( 1.15.2 → 1.16.1 ) (#1853)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-11 08:24:04 -04:00
renovate[bot]
8ee1630b61 feat(container): update flux operator group ( 0.18.0 → 0.19.0 ) (#1852)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-11 08:23:45 -04:00
renovate[bot]
93b4c26fc0 ci(github-action): update action tj-actions/changed-files ( v46.0.3 → v46.0.4 ) 2025-04-06 17:20:18 +00:00
github-actions[bot]
b2f0c0007f chore(mise): upgrade dependencies (#1851)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-04-05 20:15:59 -04:00
Devin Buhl
c8f803ba08 fix: set oci intervals to 5m and infinite helm install reties
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-04-04 18:58:22 -04:00
Devin Buhl
15968fd6ca fix: cert manager to oci chart (#1850) 2025-04-04 16:15:15 -04:00
renovate[bot]
fa6be9ce9e feat(container): update image docker.io/cloudflare/cloudflared ( 2025.2.1 → 2025.4.0 ) (#1849)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-04-04 07:15:39 -04:00
Devin Buhl
d0d81aa774 feat: revert new k8s-gateway chart
```W0330 12:41:41.898614       1 reflector.go:569] pkg/mod/k8s.io/client-go@v0.32.3/tools/cache/reflector.go:251: failed to list *endpoint.DNSEndpoint: dnsendpoints.externaldns.k8s.io is forbidden: User "
E0330 12:41:41.898748       1 reflector.go:166] "Unhandled Error" err="pkg/mod/k8s.io/client-go@v0.32.3/tools/cache/reflector.go:251: Failed to watch *endpoint.DNSEndpoint: failed to list *endpoint.DNS```
2025-03-30 09:08:27 -04:00
Devin Buhl
0929d1dea9 feat: switch to new k8s-gateway
Project new home: https://github.com/k8s-gateway/k8s_gateway
2025-03-29 19:32:04 -04:00
renovate[bot]
cce93b2aa7 fix(container): update spegel group ( 0.1.0 → 0.1.1 ) (#1847)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-28 22:16:35 -04:00
renovate[bot]
eeb3fdd314 fix(helm): update chart ingress-nginx ( 4.12.0 → 4.12.1 ) (#1846)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-25 20:36:09 -04:00
renovate[bot]
97014476ca fix(container): update coredns group ( 1.39.1 → 1.39.2 ) (#1845)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-25 20:35:59 -04:00
renovate[bot]
664ee9fa7e ci(github-action): update action tj-actions/changed-files ( v46.0.2 → v46.0.3 ) 2025-03-26 00:26:05 +00:00
renovate[bot]
c5b80e64c4 ci(github-action): update action tj-actions/changed-files ( v46.0.1 → v46.0.2 ) 2025-03-26 00:25:51 +00:00
Jim
25e2d091b7 Add back read permission in flux-local workflow (#1844) 2025-03-23 09:44:46 -04:00
github-actions[bot]
5aa32602ec chore(mise): upgrade dependencies (#1843)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-03-22 20:06:59 -04:00
renovate[bot]
53d8a2fbd3 feat(container)!: Update image ghcr.io/mendhak/http-https-echo ( 35 → 36 ) (#1842)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-22 20:06:46 -04:00
renovate[bot]
28f92938ff feat(container): update spegel group ( v0.0.30 → 0.1.0 ) (#1841)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-22 14:14:01 -04:00
renovate[bot]
51cbfb7a3b ci(github-action): update action ghcr.io/allenporter/flux-local ( v7.2.1 → v7.3.0 ) 2025-03-22 03:22:18 +00:00
renovate[bot]
a06acc906f feat(container): update flux operator group ( 0.17.0 → 0.18.0 ) (#1838)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-20 07:22:24 -04:00
Devin Buhl
f754cbe548 fix: not ready for gateway api yet 2025-03-20 07:20:09 -04:00
Devin Buhl
ceb134b7e4 chore: pin actions to semver for minireleaseage to work
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-17 08:37:16 -04:00
renovate[bot]
0f4e6e3cb7 ci(github-action)!: Update action tj-actions/changed-files ( v45.0.9 → v46.0.1 ) (#1837)
* ci(github-action)!: Update action tj-actions/changed-files ( v45.0.9 → v46.0.1 )

* Update flux-local.yaml

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Devin Buhl <onedr0p@users.noreply.github.com>
2025-03-16 07:17:54 -04:00
Devin Buhl
f676c3e572 chore: update renovate config and vscode settings
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-15 22:02:26 -04:00
github-actions[bot]
c0b9948fbc chore(mise): upgrade dependencies (#1836)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-03-15 20:14:48 -04:00
Devin Buhl
095cc2f5bd chore: switch back to upstream tj-actions and pin
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-15 17:58:12 -04:00
renovate[bot]
a45b017280 ci(github-action): pin dependencies (#1835)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-15 17:48:20 -04:00
renovate[bot]
ada1cad296 ci(github-action): update action tj-actions/changed-files ( a284dc1 → 48d8f15 ) (#1834)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-15 21:47:45 +00:00
Devin Buhl
954c80464d chore: switch back to upstream tj-actions and pin
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-15 17:47:05 -04:00
Devin Buhl
8030eee56b fix: switch back to tj-actions and pin 2025-03-15 17:45:30 -04:00
renovate[bot]
efe7d40e86 fix(helm): update chart cilium ( 1.17.1 → 1.17.2 ) (#1833)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-15 17:16:24 -04:00
renovate[bot]
e37cbd9545 fix(github-release): update release kubernetes-sigs/external-dns ( v0.16.0 → v0.16.1 ) (#1832)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-15 17:16:13 -04:00
renovate[bot]
fab30ad4f4 feat(github-release): update release prometheus-operator/prometheus-operator ( v0.80.1 → v0.81.0 ) (#1831)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-15 08:49:44 -04:00
renovate[bot]
e8eafc4498 fix(container): update image ghcr.io/bjw-s/helm/app-template ( 3.7.2 → 3.7.3 ) (#1828)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-15 08:49:19 -04:00
renovate[bot]
ae7758d309 fix(container): update image ghcr.io/siderolabs/installer ( v1.9.4 → v1.9.5 ) (#1829)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-15 08:49:13 -04:00
renovate[bot]
89a24dc26b fix(container): update image ghcr.io/siderolabs/kubelet ( v1.32.2 → v1.32.3 ) (#1830)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-15 08:49:06 -04:00
Devin Buhl
b505aec5a4 fix: upgrade talos and k8s tasks looking at wrong file
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-15 08:08:59 -04:00
Devin Buhl
c6e71a2299 fix: use JJ fork for tj-actions and pin mshick/add-pr-comment
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-15 08:07:52 -04:00
Devin Buhl
d1d659652c feat: remove global postbuild patch (#1827)
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-14 18:36:01 -04:00
Devin Buhl
8028c75154 chore: update readme
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-12 15:17:14 -04:00
Devin Buhl
bb22cf6175 fix: GitHub deploy key to flux-system 2025-03-12 13:37:36 -04:00
Devin Buhl
25ee6ef4b6 chore: remove requirements.txt (#1826)
* chore: remove requirements.txt

Signed-off-by: Devin Buhl <devin@buhl.casa>

* chore: remove requirements.txt

Signed-off-by: Devin Buhl <devin@buhl.casa>

* chore: remove requirements.txt

Signed-off-by: Devin Buhl <devin@buhl.casa>

* chore: remove requirements.txt

Signed-off-by: Devin Buhl <devin@buhl.casa>

* chore: remove requirements.txt

Signed-off-by: Devin Buhl <devin@buhl.casa>

* Update e2e.yaml

---------

Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-12 13:02:02 -04:00
Devin Buhl
ed8d88535e fix: move installation of crds to bootstrap script (#1825)
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-12 09:36:56 -04:00
Devin Buhl
af158e283a feat: improve makejinja functions and cloudflared deployment (#1824)
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-11 22:39:27 -04:00
Devin Buhl
4628682b56 chore: update cloudflared (#1823)
* chore: update cloudflared

* Update helmrelease.yaml.j2
2025-03-11 22:02:02 -04:00
Devin Buhl
87a5c3f052 feat: add gateway-api crds 2025-03-10 19:58:24 -04:00
Devin Buhl
43e69bd2b2 fix: use better prom crd link 2025-03-10 19:52:10 -04:00
Devin Buhl
31ff9b0a2e feat: combine helmrepo and helmrelease files (#1822)
* feat: combine helmrepo and helmrels

Signed-off-by: Devin Buhl <devin@buhl.casa>

* feat: combine helmrepo and helmrels

Signed-off-by: Devin Buhl <devin@buhl.casa>

---------

Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-10 17:52:10 -04:00
Devin Buhl
7dec26ccb0 chore: update mise and renovate config
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-10 17:37:41 -04:00
Devin Buhl
ba83cfc536 chore: update mise config 2025-03-10 16:50:27 -04:00
Devin Buhl
60857fd54b chore: update mise config
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-09 16:09:16 -04:00
Jim
73f22c052f Make bash and gsed brew availability check Intel Mac compatible (#1821)
- On Intel Mac the homebrew binaries are located at /usr/local/bin/ instead of
  /opt/homebrew/bin, let's include the Intel Mac path in the check as well.
- See https://docs.brew.sh/Installation for more details on possible install configurations.
- Checking the actual versions of these binaries would be better but this works fine for now.
2025-03-09 13:20:34 -04:00
Devin Buhl
dd22897072 chore: update readme
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-08 21:23:04 -05:00
Devin Buhl
1dabb2db98 fix: use gcr mirror for coredns 2025-03-08 07:04:27 -05:00
Devin Buhl
f493695c85 feat: only deploy production certificate (#1819) 2025-03-07 21:19:25 -05:00
Devin Buhl
814b79c5f9 chore: update readme (#1818)
* chore: update readme

Signed-off-by: Devin Buhl <devin@buhl.casa>

* chore: update readme

Signed-off-by: Devin Buhl <devin@buhl.casa>

* chore: update readme

Signed-off-by: Devin Buhl <devin@buhl.casa>

* chore: update readme

Signed-off-by: Devin Buhl <devin@buhl.casa>

* chore: update readme

Signed-off-by: Devin Buhl <devin@buhl.casa>

* chore: update readme

Signed-off-by: Devin Buhl <devin@buhl.casa>

---------

Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-07 18:14:06 -05:00
Devin Buhl
983a133a42 chore: namespace is not needed on these resources (#1815) 2025-03-07 16:37:37 -05:00
renovate[bot]
9ebb1470fe feat(container)!: Update image ghcr.io/stakater/charts/reloader ( 1.3.0 → 2.0.0 ) (#1817)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-07 16:28:27 -05:00
renovate[bot]
d138690db4 fix(container): update image ghcr.io/bjw-s/helm/app-template ( 3.7.1 → 3.7.2 ) (#1816)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-03-07 16:28:20 -05:00
renovate[bot]
332675c1c5 ci(github-action): update action ghcr.io/allenporter/flux-local ( v7.1.0 → v7.2.1 ) 2025-03-07 21:26:05 +00:00
Devin Buhl
49bfd59a70 fix: update talhelper config files (#1814)
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-07 08:20:09 -05:00
Devin Buhl
562886f660 fix: update containerd conf.d file permissions 2025-03-06 21:02:46 -05:00
Devin Buhl
f9a8e4373f chore: update mise config
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-06 20:18:37 -05:00
Devin Buhl
a6b44122fa fix: helmfile spegel oci repo 2025-03-05 20:53:26 -05:00
Devin Buhl
de79f9ccdf feat(kubelet): enable concurrent image pulls
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-04 07:48:43 -05:00
Devin Buhl
75dee6c67f feat: only deploy spegel if more than one node (#1812)
* feat: only deploy spegel if more than one node

Signed-off-by: Devin Buhl <devin@buhl.casa>

* feat: only deploy spegel if more than one node

Signed-off-by: Devin Buhl <devin@buhl.casa>

---------

Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-04 07:46:47 -05:00
Devin Buhl
8df1738b42 feat: update helmfile and introduce ocirepositories (#1811)
* feat: update helmfile and introduce ocirepositories

Signed-off-by: Devin Buhl <devin@buhl.casa>

* feat: update helmfile and introduce ocirepositories

Signed-off-by: Devin Buhl <devin@buhl.casa>

---------

Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-04 07:31:43 -05:00
renovate[bot]
c3dd33adf7 ci(github-action): update action ghcr.io/allenporter/flux-local ( v7.0.0 → v7.1.0 ) 2025-03-04 11:55:58 +00:00
Devin Buhl
08d213f2f5 chore: use latest uv in mise config 2025-03-04 06:55:05 -05:00
Devin Buhl
240f32099d fix: no more cluster settings file 2025-03-04 06:53:28 -05:00
rafal11ck
2ecec496eb fix: make hsts-max-age well formed (#1810)
* fix: make hsts-max-age well formed

* Update helmrelease.yaml.j2

* Update helmrelease.yaml.j2

---------

Co-authored-by: rafal <you@example.com>
Co-authored-by: Devin Buhl <onedr0p@users.noreply.github.com>
2025-03-03 19:21:10 -05:00
Devin Buhl
eca1034f26 fix: set defaults for sb and encrypt disk (#1809)
* fux: set defaults for sb and encrypt disk

* Update talconfig.yaml.j2

* Update nodes.yaml

* Update nodes.yaml
2025-03-03 14:38:39 -05:00
Mr. Khachaturov
03e5cdddcc Fix: Allow secureboot and encrypt_disk fields to be optional (#1808)
* Fix: Allow secureboot and encrypt_disk fields to be optional

Updated the node schema to add optioanal secureboot and encrypt_disk fields in schema.

* Update nodes.schema.cue

---------

Co-authored-by: Devin Buhl <onedr0p@users.noreply.github.com>
2025-03-03 07:17:02 -05:00
Devin Buhl
2d9982b8cb fix: update cert-manager template logic (#1806)
* fix: update cert-manager template logic

Signed-off-by: Devin Buhl <devin@buhl.casa>

* fix: update cert-manager template logic

Signed-off-by: Devin Buhl <devin@buhl.casa>

* fix: update cert-manager template logic

Signed-off-by: Devin Buhl <devin@buhl.casa>

---------

Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-02 13:21:48 -05:00
Devin Buhl
221b661402 chore: update renovate config 2025-03-02 08:20:13 -05:00
Devin Buhl
f8c5d91e3f fix: rename two cloudflare vars in cluster.yaml (#1804)
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-03-02 08:10:30 -05:00
Devin Buhl
c90bd23af9 chore: update README 2025-03-01 19:28:26 -05:00
github-actions[bot]
cc3bd7337a chore(mise): upgrade dependencies (#1803)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-03-01 19:15:59 -05:00
Devin Buhl
35ca21aa84 chore: release workflow was already removed 2025-03-01 08:53:02 -05:00
fhoekstra
8f19105704 Remove .github/release.yaml too as part of tidy action (#1802) 2025-03-01 08:51:57 -05:00
Devin Buhl
187ef15abe chore: remove release workflow on tidy task 2025-03-01 08:03:54 -05:00
renovate[bot]
a2ad699a1a feat(container): update flux operator group ( 0.16.0 → 0.17.0 ) (#1801)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-28 21:50:59 -05:00
Devin Buhl
48e8b481d0 chore: update cluster.sample.yaml 2025-02-28 09:15:46 -05:00
Devin Buhl
47cbcf4889 feat: reorganize helmfile flux apps and update flux ks intervals (#1795) 2025-02-27 21:45:03 -05:00
renovate[bot]
1ee30f462a fix(github-release): update release controlplaneio-fluxcd/distribution ( v2.5.0 → v2.5.1 ) (#1799)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-27 21:25:20 -05:00
renovate[bot]
7f9c4cabe1 feat(container): update flux operator group ( 0.15.0 → 0.16.0 ) (#1800)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-27 21:25:13 -05:00
renovate[bot]
3291aa4edb fix(container): update image docker.io/cloudflare/cloudflared ( 2025.2.0 → 2025.2.1 ) (#1798)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-27 21:25:04 -05:00
renovate[bot]
a085c3a2b3 fix(container): update image coredns ( 1.39.0 → 1.39.1 ) (#1797)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-27 21:24:55 -05:00
Devin Buhl
600675ec3a fix: date command not working on macos date 2025-02-27 14:19:16 -05:00
Jim
1a48805a3b Add back missing newline in github-deploy-key (#1794)
In #1791 a `strip()` was added to a bunch of strings read from files. However, this also removes newlines, so for the github-deploy-key the `known_hosts` would end up on the same line as the end of the private key and therefore not work in the `source-controller`.

Instead of removing the `strip()` let's remove the `-` sign in the jinja end block so we keep newline after it.
2025-02-26 18:09:47 -05:00
Jim
fc4be6d924 Use new variable name in README.md (#1793) 2025-02-26 16:23:44 -05:00
Devin Buhl
eb32b5c319 chore: update README
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-02-26 14:45:38 -05:00
surskitt
8c15145954 fix(readme): typo in link to cloudflare documentation (#1792) 2025-02-26 13:18:06 -05:00
Devin Buhl
b44af4a279 refactor: remove ability to disable cloudflare and refactor config.yaml (#1791) 2025-02-26 10:04:23 -05:00
Devin Buhl
c92b461434 chore: increase timeout on cert-manager-tls ks
Should hopefully have a cert by 15 minutes
2025-02-24 17:03:03 -05:00
Devin Buhl
99759158c4 chore: Update README.md 2025-02-22 21:55:40 -05:00
github-actions[bot]
3f1b60a6ff chore(mise): upgrade dependencies (#1790)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-02-22 19:27:55 -05:00
Devin Buhl
ae3a617a95 chore(taskfiles): add preconditions for macos
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-02-22 17:27:23 -05:00
Devin Buhl
18cad0877c chore(cilium): update tolerations in Flux HR instead (#1789) 2025-02-22 09:52:36 -05:00
Devin Buhl
422ee49938 chore(renovate): update file matchers for regexmanager 2025-02-22 09:01:07 -05:00
Devin Buhl
f7ac839480 chore(cilium): no need for flux ks waits 2025-02-22 08:59:48 -05:00
Devin Buhl
5461b56d47 chore(cilium): remove default tolerations to fix ContainerStatusUnknown 2025-02-22 08:33:17 -05:00
Devin Buhl
d3d815bd93 chore: Update README.md 2025-02-20 23:42:52 -05:00
renovate[bot]
6e17f895ab fix(deps): update dependency prometheus-operator/prometheus-operator ( v0.80.0 → v0.80.1 ) (#1785)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-20 17:22:16 -05:00
Devin Buhl
65c4a51e64 chore: add healthcheckexprs to certmanager flux ks
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-02-20 17:20:13 -05:00
renovate[bot]
9b591bf375 feat(deps): update dependency controlplaneio-fluxcd/distribution ( v2.4.0 → v2.5.0 ) (#1787)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-20 14:07:52 -05:00
renovate[bot]
653c8789a9 feat(container): update flux operator group ( 0.14.0 → 0.15.0 ) (#1786)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-20 14:07:43 -05:00
Devin Buhl
2c414649bd chore: pin flux version in instance 2025-02-20 12:56:41 -05:00
Devin Buhl
d81dc7b423 chore: run flux-local workflow on component changes
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-02-20 12:15:33 -05:00
Devin Buhl
c386266b05 fix: install prom op crds via talhelper config (#1784) 2025-02-20 12:11:23 -05:00
Devin Buhl
7163d23c7b chore: update renovate config 2025-02-20 08:22:25 -05:00
Devin Buhl
a1d66fc080 fix: issue with GitHub deploy key (#1783) 2025-02-20 07:38:20 -05:00
renovate[bot]
35dcd56d87 feat(container): update reloader ( 1.2.1 → 1.3.0 ) (#1781)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-19 20:46:15 -05:00
Devin Buhl
47723d952d refactor: update directory paths (#1777) 2025-02-19 20:18:57 -05:00
Devin Buhl
7a99c8fbb0 chore: update gitattributes 2025-02-19 19:00:04 -05:00
renovate[bot]
ec9609c9be fix(container): update ghcr.io/siderolabs/installer ( v1.9.3 → v1.9.4 ) (#1771)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-15 14:36:54 -05:00
github-actions[bot]
31dde60bbd chore(mise): upgrade dependencies (#1776)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-02-15 14:34:48 -05:00
renovate[bot]
d9967f9486 fix(helm): update external-dns ( 1.15.1 → 1.15.2 ) (#1774)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-14 20:50:58 -05:00
Devin Buhl
db328702ce fix(bootstrap): add dependency check to prepare script
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-02-14 18:22:42 -05:00
Devin Buhl
bdb04605f4 Revert "feat: deploy SUC (#1770)" (#1772)
This reverts commit 5ed1d921ab.
2025-02-13 18:03:21 -05:00
Devin Buhl
14db8811b7 feat(helmfile): put prepare logic in bash script (#1763) 2025-02-13 17:47:29 -05:00
Devin Buhl
5ed1d921ab feat: deploy SUC (#1770) 2025-02-13 17:44:00 -05:00
renovate[bot]
32a29de9e1 fix(helm): update cert-manager ( v1.17.0 → v1.17.1 ) (#1769)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-13 06:56:02 -05:00
renovate[bot]
8d5097a5b2 fix(container): update ghcr.io/siderolabs/kubelet ( v1.32.1 → v1.32.2 ) (#1766)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-13 06:50:01 -05:00
renovate[bot]
496bf92ad8 fix(container): update app-template ( 3.7.0 → 3.7.1 ) (#1765)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-13 06:49:48 -05:00
renovate[bot]
6deee602fa fix(helm): update cilium ( 1.17.0 → 1.17.1 ) (#1767)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-13 06:49:36 -05:00
renovate[bot]
b895b333aa feat(container): update flux operator group ( 0.13.0 → 0.14.0 ) (#1768)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-13 06:49:27 -05:00
Devin Buhl
ab49a07085 chore: mise workflow run once a week 2025-02-12 19:27:09 -05:00
github-actions[bot]
3effa1e8a0 chore(mise): upgrade dependencies (#1764)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-02-12 19:25:11 -05:00
Devin Buhl
d8579d100f chore(makejinja): set copy_metadata to true in config file
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-02-10 18:12:27 -05:00
Devin Buhl
623341c2bc fix: update helmfile bootstrap hook script 2025-02-10 16:56:42 -05:00
Devin Buhl
52c843714f fix: update helmfile hooks (#1762)
* fix: update helmfile hooks

* Update helmfile.yaml.j2

* Rename prometheus-operator-crds.sh.j2 to bootstrap.sh.j2

* Update bootstrap.sh.j2

* Update bootstrap.sh.j2

* Update helmfile.yaml.j2
2025-02-10 15:32:45 -05:00
Devin Buhl
00f38b8623 fix(helmfile): add some idempotence to hooks (#1761)
* fix(helmfile): add some idempotence

* Update prometheus-operator-crds.sh.j2
2025-02-10 08:59:32 -05:00
wasurerarenai
a2aa8e4cb3 Update helmfile.yaml.j2 (#1759) 2025-02-10 06:53:46 -05:00
Devin Buhl
099aa6fa3e feat(helmfile): use global hooks for prom crds
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-02-09 13:02:05 -05:00
renovate[bot]
379aee83b0 feat(container): update app-template ( 3.6.1 → 3.7.0 ) (#1758)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-07 21:02:02 -05:00
Devin Buhl
150385874c feat(helmfile): install prom crds via presync hook
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-02-07 16:46:28 -05:00
Devin Buhl
2597811a17 feat: flatten existing components into common (#1757) 2025-02-07 08:07:44 -05:00
renovate[bot]
28c92dd825 feat(container)!: Update prometheus-operator-crds ( 17.0.2 → 18.0.0 ) (#1756)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-07 07:10:19 -05:00
Devin Buhl
b7ea8967b6 fix: helmfile helm keep annotation 2025-02-06 13:25:46 -05:00
Devin Buhl
28fb37ce9b feat: prometheus operator crds need no flux management now (#1755)
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-02-06 11:42:34 -05:00
Devin Buhl
e358f6eee8 fix: add validation for github repository name (#1754) 2025-02-06 10:02:44 -05:00
renovate[bot]
4c08b2398f feat(helm): update cilium ( 1.16.6 → 1.17.0 ) (#1753)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-06 09:01:14 -05:00
renovate[bot]
96c403a2a1 feat(container): update docker.io/cloudflare/cloudflared ( 2025.1.1 → 2025.2.0 ) (#1752)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-06 09:01:01 -05:00
Devin Buhl
89b30e6472 fix: enable enable-aggregator-routing on apiserver 2025-02-05 20:49:33 -05:00
github-actions[bot]
ef83326d62 chore(mise): upgrade dependencies (#1751)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-02-05 19:30:24 -05:00
Devin Buhl
84126b4463 fix: talos genconfig tasks updates (#1750) 2025-02-05 12:46:27 -05:00
Devin Buhl
cc3613ac78 feat: bootstrap all namespaces and secrets (#1748) 2025-02-05 10:22:59 -05:00
Devin Buhl
adac9def27 chore: updates readme and template taskfile
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-02-04 21:18:44 -05:00
Devin Buhl
c6123fce39 feat!: migrate flux ks out of flux-system (#1747) 2025-02-04 21:06:37 -05:00
Devin Buhl
1b9394d454 feat: remove openebs (#1746) 2025-02-04 08:30:21 -05:00
Devin Buhl
ab4e969fb3 feat(helmfile): use abs paths to helm-values
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-02-03 20:41:37 -05:00
renovate[bot]
f13beaed95 feat(helm): update cert-manager ( v1.16.3 → v1.17.0 ) (#1743)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-03 16:59:50 -05:00
Jim
ff92720ed8 Add read permission for flux local diff workflow (#1742)
- This is needed for private repos as setting the permission
   overwites ALL permissions.
- See https://github.com/actions/checkout/issues/254#issuecomment-981945812 for the explanation for a similar issue.
2025-02-02 12:34:01 -05:00
github-actions[bot]
02d52433c6 chore(mise): upgrade dependencies (#1737)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-02-01 09:52:48 -05:00
renovate[bot]
971f9dcd1a fix(helm): update openebs ( 4.1.2 → 4.1.3 ) (#1741)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-31 19:49:28 -05:00
renovate[bot]
a4e686b427 fix(container): update docker.io/cloudflare/cloudflared ( 2025.1.0 → 2025.1.1 ) (#1739)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-31 19:49:17 -05:00
Devin Buhl
a5792e5515 fix: remove email from config and cert manager (#1738) 2025-01-31 00:08:23 -05:00
Devin Buhl
e99d08bb09 fix: that should be no dawg 2025-01-29 14:44:41 -05:00
Devin Buhl
c6f3bd6012 feat: add cert-manager to helmfile (#1736) 2025-01-29 10:22:14 -05:00
renovate[bot]
5f40077989 fix(container): update ghcr.io/siderolabs/installer ( v1.9.2 → v1.9.3 ) (#1735)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 19:31:02 -05:00
github-actions[bot]
4d562f3684 chore(mise): upgrade dependencies (#1734)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-01-28 19:24:54 -05:00
Devin Buhl
8a6d3b21f5 fix: remove taskfile experiment env vars 2025-01-28 19:24:39 -05:00
AJ
a0aff5d9e3 Update README.md (#1733) 2025-01-28 17:27:26 -05:00
renovate[bot]
c136601433 fix(helm): update external-dns ( 1.15.0 → 1.15.1 ) (#1732)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-28 07:59:40 -05:00
renovate[bot]
979ff7b469 feat(helm): update coredns ( 1.37.3 → 1.38.1 ) (#1730)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-27 08:46:28 -05:00
Jamie Baker
d1f2e932b0 Update README.md (#1731)
typo on the apply-node example
2025-01-26 18:10:59 -05:00
Devin Buhl
b8bd34b9ae chore: update taskfiles (#1729) 2025-01-26 10:13:31 -05:00
wasurerarenai
6df4a270aa Execute talhelper commands within the talos directory (#1728) 2025-01-26 08:44:11 -05:00
github-actions[bot]
273eee0ead chore(mise): upgrade dependencies (#1726)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-01-25 19:11:07 -05:00
Devin Buhl
fd335ba3bf fix: update talos taskfile 2025-01-25 07:57:21 -05:00
renovate[bot]
6a08ae4481 fix(github-release): update uv ( 0.5.23 → 0.5.24 ) (#1725)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-24 20:03:58 -05:00
Devin Buhl
ebcb037551 fix: update talhelper config (#1723) 2025-01-24 10:38:38 -05:00
Jamie Baker
fb5c793e53 Replace outdated links in config template, added text to post-bootstrap state for clarity (#1722) 2025-01-24 07:13:00 -05:00
github-actions[bot]
f5b2feb1dc chore(mise): upgrade dependencies (#1721)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-01-23 20:29:17 -05:00
Devin Buhl
b044f5fa52 chore: update taskfiles
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-23 18:03:58 -05:00
Devin Buhl
67bde08eda chore: Update README.md 2025-01-23 14:42:23 -05:00
Devin Buhl
6cce02e16d fix: remove circular dependency (#1719) 2025-01-23 13:10:55 -05:00
Devin Buhl
9aa0ed26d2 chore: update readme 2025-01-23 13:04:34 -05:00
Devin Buhl
25d130b75b chore(taskfile): remove extraneous arg on talos task 2025-01-23 12:02:14 -05:00
github-actions[bot]
8d0a51c46e chore(mise): upgrade dependencies (#1718)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-01-22 19:09:00 -05:00
Devin Buhl
513bac852a chore: update flux-local workflow 2025-01-22 13:40:48 -05:00
Devin Buhl
df6c7eea36 chore: update flux-local workflow 2025-01-22 09:01:37 -05:00
renovate[bot]
f046fc2d9d fix(helm): update coredns ( 1.37.1 → 1.37.3 ) (#1717)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-22 08:58:08 -05:00
renovate[bot]
18f9a1e200 fix(helm): update cilium ( 1.16.5 → 1.16.6 ) (#1716)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-22 08:58:01 -05:00
Devin Buhl
abafa6f465 chore: update e2e workflow 2025-01-22 08:56:30 -05:00
Devin Buhl
fbe5113750 chore(workflows): enable verbose on e2e flux-local test 2025-01-22 08:33:32 -05:00
Devin Buhl
83e763a36a feat: refactor the network namespace (#1715) 2025-01-21 21:30:34 -05:00
Devin Buhl
02ee65a2aa fix: remove spegel from helmfile apps
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-21 19:47:29 -05:00
Devin Buhl
1b19e4dd5a chore(readme): add github sponsor support section
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-21 18:55:01 -05:00
Devin Buhl
97e1f4bfa3 fix(taskfiles): update talos operational commands
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-19 19:20:17 -05:00
Devin Buhl
7d20e0f915 chore: remove mise workflow with tidy task
this workflow requires a custom GH token created for it to work, plus better mise support is coming in renovate in the future.
2025-01-18 21:43:36 -05:00
github-actions[bot]
3e5baa3044 chore(mise): upgrade dependencies (#1712)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-01-18 20:20:12 -05:00
Devin Buhl
5f1df32bb4 fix: add talhelper validate to task configure (#1711) 2025-01-18 09:34:00 -05:00
wasurerarenai
53c59bd9c4 Node secureboot and disk encrypt (#1710) 2025-01-18 09:02:02 -05:00
AJ
e3b0d2b035 Talos secureboot conditional validation issue (#1708) 2025-01-17 21:34:46 -05:00
renovate[bot]
87ae2aa6e5 fix(container): update ghcr.io/siderolabs/kubelet ( v1.32.0 → v1.32.1 ) (#1701)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-17 19:34:49 -05:00
renovate[bot]
b57603b062 fix(container): update spegel ( v0.0.29 → v0.0.30 ) (#1703)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-17 19:34:36 -05:00
renovate[bot]
f52b854146 fix(container): update reloader ( 1.2.0 → 1.2.1 ) (#1702)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-17 19:34:00 -05:00
renovate[bot]
84de59448f fix(container): update ghcr.io/siderolabs/installer ( v1.9.1 → v1.9.2 ) (#1700)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-17 19:33:53 -05:00
renovate[bot]
ae077356ef fix(helm): update cert-manager ( v1.16.2 → v1.16.3 ) (#1705)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-17 19:33:07 -05:00
renovate[bot]
5b87df94b8 fix(helm): update coredns ( 1.37.0 → 1.37.1 ) (#1706)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-17 19:32:59 -05:00
renovate[bot]
994a05b5db chore(deps): update dependency cloudflare to v4 (#1707)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-17 19:32:52 -05:00
Devin Buhl
000926d360 chore(mise): remove square braces 2025-01-15 19:27:18 -05:00
github-actions[bot]
37525a2dfc chore(mise): upgrade dependencies (#1698)
Co-authored-by: onedr0p <213795+onedr0p@users.noreply.github.com>
2025-01-15 19:24:56 -05:00
Devin Buhl
0181f76c06 fix: flatten dual_stack_ipv4_first flag
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-14 08:42:25 -05:00
Devin Buhl
1145cc2c7f chore: update comments
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-12 20:01:38 -05:00
Devin Buhl
b54fb58675 fix(bgp): reduce options and clear up confusion (#1696) 2025-01-12 19:22:06 -05:00
Devin Buhl
caab35619b fix(fluxinstance): move dependsOn to HR
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-12 18:36:05 -05:00
Devin Buhl
2c77cded57 fix: add back ability to set branch 2025-01-12 17:36:08 -05:00
Devin Buhl
4ef112f4aa chore: update mise workflow
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-12 12:03:14 -05:00
Devin Buhl
7c5562b0f1 chore: update mise workflow
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-12 11:58:55 -05:00
Devin Buhl
f0627ca1a8 chore: update mise workflow (#1694) 2025-01-12 11:53:50 -05:00
Devin Buhl
f5983bd001 chore: pin mise dependencies and add upgrade workflow
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-12 11:39:27 -05:00
renovate[bot]
0cf442ebd6 fix(container): update app-template ( 3.6.0 → 3.6.1 ) (#1693)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-12 08:59:03 -05:00
Devin Buhl
61e26011a6 fix: renovate needs namespace on helm repositories for lookups
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-12 08:31:42 -05:00
Devin Buhl
4be8ea1cc2 fix: cluster-meta is not an "app" 2025-01-11 16:55:52 -05:00
Devin Buhl
1e4577425e chore: improve template:tidy Task
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-11 08:52:38 -05:00
Devin Buhl
f9e5998e5b feat: targetNamespace on cluster-meta
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-11 08:34:24 -05:00
Devin Buhl
48e54bd542 feat(config): require schematic id on nodes
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-10 19:41:22 -05:00
Devin Buhl
77757fca21 fix: english is hard
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-10 18:51:16 -05:00
Devin Buhl
35c0db644c feat: implement cluster-meta dir
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-10 17:47:58 -05:00
renovate[bot]
4211253818 fix(container): update spegel ( v0.0.28 → v0.0.29 ) (#1690)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 17:31:34 -05:00
renovate[bot]
174a476c37 fix(helm): update openebs ( 4.1.1 → 4.1.2 ) (#1691)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 17:31:26 -05:00
renovate[bot]
b6af3ca10a feat(container): update flux operator group ( 0.12.0 → 0.13.0 ) (#1692)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-10 17:31:19 -05:00
Benjamin Runnels
dec722c5eb Added more schemas (#1689) 2025-01-10 17:16:31 -05:00
Devin Buhl
5133a5d7d9 chore: update renovate config 2025-01-09 21:20:32 -05:00
renovate[bot]
707e514a0e feat(container)!: Update image docker.io/cloudflare/cloudflared to v2025 (#1688)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-09 21:10:41 -05:00
renovate[bot]
17a88acadc chore(deps): update helmrepository to source.toolkit.fluxcd.io/v1 (#1687)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-09 21:10:34 -05:00
Devin Buhl
0d4fcca100 fix: move github folder into flux instance
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-09 18:05:45 -05:00
Devin Buhl
ec5a3ec94d feat: deploy flux with flux-operator (#1686) 2025-01-09 09:07:42 -05:00
Robert Tooker
fa8da5646b fix ssl cert for ingresses (#1685) 2025-01-08 19:51:58 -05:00
Devin Buhl
0f64b6d1e4 feat: also allow for graceful takeover of spegel when update is released 2025-01-08 10:25:43 -05:00
Devin Buhl
c7712d6350 feat: allow flux to gracefully take over the helmfile apps
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-08 10:24:19 -05:00
Devin Buhl
ce11e150d1 chore: use the correct naming on that last commit 2025-01-08 00:19:51 -05:00
Devin Buhl
ad8576bfa3 chore: try to figure out what sed to use
Mac sed is Unix, so look for gsed which is the same as Linux sed
2025-01-08 00:18:23 -05:00
Devin Buhl
8e127330b8 fix: update sops configuration file
Allow encrypted files to be edited and
adjust YAML indentation to two.
2025-01-08 00:05:51 -05:00
Devin Buhl
615550eb5b chore: flux group is not needed anymore 2025-01-08 00:03:13 -05:00
Devin Buhl
fd1c9fdb09 feat!: deploy flux with helm (#1684) 2025-01-07 13:32:42 -05:00
Devin Buhl
5612222cc6 fix: github privatekey var
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-07 12:00:19 -05:00
Devin Buhl
ce59515ca2 feat: better organize talhelper patches
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-06 18:22:03 -05:00
Devin Buhl
608d6efc71 fix: prevent helmfile apps from restarting when flux takes over
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-06 18:16:15 -05:00
Devin Buhl
7c096def65 feat: remove kubelet-csr-approver
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-06 18:13:44 -05:00
Robert Tooker
cd92b8410d correct github private key reference in cluster.yaml.j2 (#1682)
flux failing due to not finding github.private_key when using config sample.
2025-01-05 16:22:45 -05:00
Devin Buhl
c2d4dabb11 feat: update config options and taskfiles (#1681) 2025-01-05 08:46:41 -05:00
Devin Buhl
82366a9cab fix(template): remove options for extra manifests and extension config (#1679) 2025-01-04 22:43:08 -05:00
renovate[bot]
84ec8e29c1 feat(helm): update chart ingress-nginx to 4.12.0 (#1677)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-04 17:36:46 -05:00
Devin Buhl
3659673e2d fix(ingress-nginx): make renovate happy
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-04 17:35:16 -05:00
Devin Buhl
abb8323f66 feat!: separate templating and bootstrap process connotations (#1674) 2025-01-04 10:48:35 -05:00
Devin Buhl
70fbd00ed2 chore: update workflows and clean task (#1672) 2025-01-03 10:01:38 -05:00
Devin Buhl
089123ba26 fix: remove talos health check
This doesn't work on clusters using Talos 1.9.0+
2025-01-03 08:18:36 -05:00
Devin Buhl
ac4321ba24 chore: update readme
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-03 07:46:48 -05:00
Devin Buhl
917d471c7d fix: separate out bootstrap app task into own task
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-02 14:48:29 -05:00
Devin Buhl
269eb5dc26 chore: update config sample
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-02 10:15:31 -05:00
Devin Buhl
ea42f08106 fix: move the config sample to config on task init
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-02 10:14:31 -05:00
Devin Buhl
5f3c2c507d fix: rename mise config to .mise.toml and remove requirements.txt on clean task
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-01 14:24:53 -05:00
Devin Buhl
9ddfdbb846 chore: update readme
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-01 11:59:34 -05:00
Devin Buhl
4398b2d3e9 chore: update readme
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-01 11:49:03 -05:00
Devin Buhl
0804079ff6 chore: update readme
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-01 11:43:38 -05:00
Devin Buhl
9dc415780f chore: update readme
Signed-off-by: Devin Buhl <devin@buhl.casa>
2025-01-01 11:42:32 -05:00
renovate[bot]
4739f004d6 feat(github-action)!: Update image ghcr.io/allenporter/flux-local to v7 (#1671)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-01-01 08:31:46 -05:00
renovate[bot]
3256356cc2 fix(helm): update chart kubelet-csr-approver to 1.2.4 (#1669)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-30 21:07:42 -05:00
Devin Buhl
11b1465a09 fix(talos): use service discovery defaults - requires reboot
Signed-off-by: Devin Buhl <devin@buhl.casa>
2024-12-30 14:12:46 -05:00
Devin Buhl
90d60f356e chore: update readme
Signed-off-by: Devin Buhl <devin@buhl.casa>
2024-12-30 09:27:17 -05:00
Devin Buhl
b731ccc05e feat(mise): use pip instead of uv (#1668) 2024-12-29 09:22:46 -05:00
Devin Buhl
5711d9fe1e chore: Update README 2024-12-28 21:11:24 -05:00
renovate[bot]
a12dd0ed99 fix(github-action): update image ghcr.io/allenporter/flux-local to v6.1.1 2024-12-26 22:13:15 +00:00
renovate[bot]
e2a3318dc3 feat(container): update image app-template to v3.6.0 (#1667)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-26 12:16:01 -05:00
renovate[bot]
282b1775f0 fix(container): update image ghcr.io/siderolabs/installer to v1.9.1 (#1666)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-26 12:15:54 -05:00
renovate[bot]
68f2b0bac1 feat(github-action): update image ghcr.io/allenporter/flux-local to v6.1.0 2024-12-26 17:13:07 +00:00
Devin Buhl
96eda88dec fix: update apply-ks task to be ks-apply or ks-delete 2024-12-26 11:57:41 -05:00
Aviator-Coding
73fb211f9b fix(task-kubernetes:apply-ks): --dry-run was appended to the path, making it invalid (#1665) 2024-12-26 11:55:03 -05:00
Devin Buhl
d62155849b fix(cloudflared): use originRequest.noTLSVerify=true on staging cert 2024-12-23 19:29:03 -05:00
Devin Buhl
4b4a318d10 fix: update talos service discovery (#1662) 2024-12-22 11:38:04 -05:00
Devin Buhl
6a98eea1e3 fix: remove use for VIRTUAL_ENV 2024-12-21 21:41:54 -05:00
Devin Buhl
215e3fb391 fix(ingress-nginx-internal): remove namespace value 2024-12-21 08:34:14 -05:00
renovate[bot]
5612df7572 fix(helm): update chart cilium to 1.16.5 (#1659)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-20 20:18:03 -05:00
renovate[bot]
27004a401b fix(container): update image prometheus-operator-crds to v17.0.2 (#1658)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-20 20:17:56 -05:00
renovate[bot]
a3474d7eba fix(container): update image docker.io/cloudflare/cloudflared to v2024.12.2 (#1657)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-20 20:17:44 -05:00
Devin Buhl
575ee1b974 chore: update readme 2024-12-20 12:37:52 -05:00
Devin Buhl
df4ffae01b fix(talos): remove defaulted config
Signed-off-by: Devin Buhl <devin@buhl.casa>
2024-12-20 10:56:21 -05:00
Devin Buhl
a26a4851c9 chore: update readme
Signed-off-by: Devin Buhl <devin@buhl.casa>
2024-12-20 09:38:46 -05:00
Devin Buhl
8aa35f4777 feat!: use mise for managing the dev env (#1656)
* feat(mise)!: Utilize mise for managing CLI tools and Python venv

Signed-off-by: Devin Buhl <devin@buhl.casa>

* feat(mise)!: Utilize mise for managing CLI tools and Python venv

Signed-off-by: Devin Buhl <devin@buhl.casa>

* feat(mise)!: Utilize mise for managing CLI tools and Python venv

Signed-off-by: Devin Buhl <devin@buhl.casa>

* feat(mise)!: Utilize mise for managing CLI tools and Python venv

Signed-off-by: Devin Buhl <devin@buhl.casa>

* feat(mise)!: Utilize mise for managing CLI tools and Python venv

Signed-off-by: Devin Buhl <devin@buhl.casa>

* feat(mise)!: Utilize mise for managing CLI tools and Python venv

Signed-off-by: Devin Buhl <devin@buhl.casa>

* feat(mise)!: Utilize mise for managing CLI tools and Python venv

Signed-off-by: Devin Buhl <devin@buhl.casa>

* feat(mise)!: Utilize mise for managing CLI tools and Python venv

Signed-off-by: Devin Buhl <devin@buhl.casa>

* feat(mise)!: Utilize mise for managing CLI tools and Python venv

Signed-off-by: Devin Buhl <devin@buhl.casa>

* feat(mise)!: Utilize mise for managing CLI tools and Python venv

Signed-off-by: Devin Buhl <devin@buhl.casa>

* feat(mise)!: Utilize mise for managing CLI tools and Python venv

Signed-off-by: Devin Buhl <devin@buhl.casa>

---------

Signed-off-by: Devin Buhl <devin@buhl.casa>
2024-12-19 22:06:37 -05:00
Devin Buhl
d739265c43 fix(talos): containerd v2 has these defaulted now 2024-12-18 08:03:48 -05:00
Devin Buhl
b6bb27e37c fix(talos): update containerd config for spegel 2024-12-17 21:10:10 -05:00
renovate[bot]
c91c59ba62 feat(talos): update to v1.32.0 and enable service discovery (#1650)
* feat(container): update image ghcr.io/siderolabs/kubelet to v1.32.0

* Update cluster-discovery.yaml.j2

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Devin Buhl <onedr0p@users.noreply.github.com>
2024-12-17 21:08:58 -05:00
renovate[bot]
5725092303 feat(container): update image ghcr.io/siderolabs/installer to v1.9.0 (#1654)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 13:52:06 -05:00
renovate[bot]
9e064e2f5e feat(container)!: Update image prometheus-operator-crds to v17 (#1653)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 08:17:04 -05:00
renovate[bot]
a4bb70c28a fix(container): update image spegel to v0.0.28 (#1652)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-17 08:16:57 -05:00
Devin Buhl
26f0a0ecd1 fix: improve validation for mac addr 2024-12-17 08:14:52 -05:00
renovate[bot]
c9d8b67677 feat(helm): update chart coredns to 1.37.0 (#1651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 20:41:25 -05:00
renovate[bot]
c2a0b8cef8 feat(container): update image docker.io/cloudflare/cloudflared to v2024.12.1 (#1649)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 20:41:13 -05:00
renovate[bot]
e081c5c753 fix(container): update image ghcr.io/siderolabs/installer to v1.8.4 (#1648)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-13 20:41:06 -05:00
Devin Buhl
491ffa8209 chore: update readme
Signed-off-by: Devin Buhl <devin@buhl.casa>
2024-12-09 20:37:55 -05:00
Devin Buhl
946edc9f8e fix(external-dns): update extraArgs values
Signed-off-by: Devin Buhl <devin@buhl.casa>
2024-12-09 20:12:07 -05:00
renovate[bot]
18ee1a21d7 chore(deps): update cloudflare to 3.1.1 (#1646)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-12-08 08:49:26 -05:00
Devin Buhl
e55e4b66f4 fix: add validation to node names to check for reserved names
Signed-off-by: Devin Buhl <devin@buhl.casa>
2024-12-08 08:47:10 -05:00
Emmanuel Ferdman
f7c30961bf docs: update kubernetes task file reference (#1645)
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
2024-12-01 07:50:41 -05:00
renovate[bot]
03136540b6 fix(container): update image prometheus-operator-crds to v16.0.1 (#1643)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-26 19:31:01 -05:00
Devin Buhl
0111d1e568 Update README.md 2024-11-26 10:41:07 -05:00
renovate[bot]
957757d60b fix(container): update image docker.io/cloudflare/cloudflared to v2024.11.1 (#1638)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-23 17:08:54 -05:00
renovate[bot]
66006d22e8 fix(container): update image ghcr.io/siderolabs/kubelet to v1.31.3 (#1639)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-23 17:08:48 -05:00
renovate[bot]
443840a9b7 fix(helm): update chart cert-manager to v1.16.2 (#1640)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-23 17:08:43 -05:00
renovate[bot]
6707bc3b34 fix(helm): update chart cilium to 1.16.4 (#1641)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-23 17:08:38 -05:00
renovate[bot]
629345916f feat(container): update image reloader to v1.2.0 (#1642)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-23 17:08:31 -05:00
renovate[bot]
0aebde4479 chore(deps): update makejinja to 2.7.2 (#1637)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-17 18:17:13 -05:00
Devin Buhl
6b33bd616b fix: wrong quotes around var TALOS_SECUREBOOT 2024-11-17 07:58:05 -05:00
Devin Buhl
74bcc0a453 fix: rename var to TALOS_SECUREBOOT 2024-11-17 07:54:10 -05:00
Devin Buhl
cc3551e503 fix: use secureboot when needed on Talos upgrade task 2024-11-17 07:49:13 -05:00
renovate[bot]
c3a80d827c chore(deps): update makejinja to 2.7.1 (#1635)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-17 07:25:31 -05:00
renovate[bot]
3bacd8ae3d chore(deps): update makejinja to 2.7.0 (#1632)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-15 09:44:39 -05:00
renovate[bot]
a9d65f8fd0 fix(container): update image ghcr.io/siderolabs/installer to v1.8.3 (#1631)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-15 09:44:27 -05:00
Jean-Paul van Ravensberg
643fc90ae1 Add hostNamespaceOnly setting (#1628)
Co-authored-by: Devin Buhl <onedr0p@users.noreply.github.com>
2024-11-13 14:38:15 -05:00
Devin Buhl
0962814ed2 chore: update readme
Signed-off-by: Devin Buhl <devin@buhl.casa>
2024-11-11 11:56:15 -05:00
renovate[bot]
ed4722db48 fix(github-action): update image ghcr.io/allenporter/flux-local to v6.0.2 2024-11-10 19:32:03 +00:00
Devin Buhl
cabfb1b9ea fix(devcontainer): use go-task since not aliased yet 2024-11-10 08:49:42 -05:00
Devin Buhl
68ec204b85 chore: update readme 2024-11-09 09:13:39 -05:00
renovate[bot]
6b7656d79b feat(container)!: Update image prometheus-operator-crds to v16 (#1626)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-08 19:53:12 -05:00
renovate[bot]
ac43f1e7f9 feat(container): update image docker.io/cloudflare/cloudflared to v2024.11.0 (#1625)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-08 19:53:04 -05:00
Tanguille
d2eb686cae fix(taskfile): remove redundant braces (#1624) 2024-11-08 12:24:37 -05:00
Devin Buhl
5b8bb5ae35 bootstrap: improve validation and update tasks (#1623) 2024-11-06 20:15:56 -05:00
AJ
9942f9ab54 Update missing quotes (#1622) 2024-11-04 17:08:45 -05:00
Devin Buhl
bfeaf9670f feat(talos) set sysctl vm.nr_hugepages=1024 2024-11-04 16:55:08 -05:00
Ikko Eltociear Ashimine
674cbce837 docs: update README.md (#1621)
runnning -> running
2024-11-04 07:06:19 -05:00
Devin Buhl
ea90bfaa89 Update README.md 2024-11-03 22:38:31 -05:00
renovate[bot]
bebd4701d2 fix(github-action): update image ghcr.io/allenporter/flux-local to v6.0.1 2024-11-02 16:42:31 +00:00
renovate[bot]
144b5f8052 fix(helm): update chart coredns to 1.36.1 (#1620)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-01 21:56:45 -04:00
renovate[bot]
642b96dad8 fix(container): update image ghcr.io/siderolabs/installer to v1.8.2 (#1619)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-01 21:56:40 -04:00
245 changed files with 3413 additions and 4046 deletions

View File

@@ -1,2 +0,0 @@
# Ref: https://github.com/devcontainers/ci/issues/191
FROM mcr.microsoft.com/devcontainers/base:alpine

View File

@@ -1,26 +0,0 @@
{
"$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json",
"name": "Flux Cluster Template (CI)",
"build": {
"dockerfile": "./Dockerfile",
"context": "."
},
"features": {
"./features": {}
},
"customizations": {
"vscode": {
"settings": {
"terminal.integrated.profiles.linux": {
"bash": {
"path": "/usr/bin/fish"
}
},
"terminal.integrated.defaultProfile.linux": "fish"
},
"extensions": [
"redhat.vscode-yaml"
]
}
}
}

View File

@@ -1,6 +0,0 @@
{
"name": "Cluster Template",
"id": "cluster-template",
"version": "1.0.0",
"description": "Work environment for the Cluster Template project"
}

View File

@@ -1,65 +0,0 @@
#!/usr/bin/env bash
set -e
set -o noglob
apk add --no-cache \
age bash bind-tools ca-certificates curl direnv fish fzf \
gettext git github-cli helm iputils jq k9s python3 py3-pip \
moreutils openssh-client openssl starship yq
apk add --no-cache \
--repository=https://dl-cdn.alpinelinux.org/alpine/edge/community \
flux kubectl kustomize go-task sops
apk add --no-cache \
--repository=https://dl-cdn.alpinelinux.org/alpine/edge/testing \
cloudflared cilium-cli helmfile kubeconform kubectl-krew lsd stern
for app in \
"budimanjojo/talhelper!!?as=talhelper&type=script" \
"kubecolor/kubecolor!!?as=kubecolor&type=script" \
"siderolabs/talos!!?as=talosctl&type=script"
do
echo "=== Installing ${app} ==="
curl -fsSL "https://i.jpillora.com/${app}" | bash
done
# Create the fish configuration directory
mkdir -p /home/vscode/.config/fish/{completions,conf.d}
# Setup autocompletions for fish
gh completion --shell fish > /home/vscode/.config/fish/completions/gh.fish
kubectl completion fish > /home/vscode/.config/fish/completions/kubectl.fish
talhelper completion fish > /home/vscode/.config/fish/completions/talhelper.fish
talosctl completion fish > /home/vscode/.config/fish/completions/talosctl.fish
# Add hooks into fish
tee /home/vscode/.config/fish/conf.d/hooks.fish > /dev/null <<EOF
if status is-interactive
direnv hook fish | source
starship init fish | source
end
EOF
# Add aliases into fish
tee /home/vscode/.config/fish/conf.d/aliases.fish > /dev/null <<EOF
alias ls lsd
alias kubectl kubecolor
alias k kubectl
alias task go-task
EOF
# Custom fish prompt
tee /home/vscode/.config/fish/conf.d/fish_greeting.fish > /dev/null <<EOF
set fish_greeting
EOF
# Add direnv whitelist for the workspace directory
mkdir -p /home/vscode/.config/direnv
tee /home/vscode/.config/direnv/direnv.toml > /dev/null <<EOF
[whitelist]
prefix = [ "/workspaces" ]
EOF
# Set ownership vscode .config directory to the vscode user
chown -R vscode:vscode /home/vscode/.config

View File

@@ -1,12 +0,0 @@
{
"$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json",
"name": "Flux Cluster Template",
"image": "ghcr.io/onedr0p/cluster-template/devcontainer:latest",
"initializeCommand": "docker pull ghcr.io/onedr0p/cluster-template/devcontainer:latest",
"postCreateCommand": {
"setup": "bash ${containerWorkspaceFolder}/.devcontainer/postCreateCommand.sh"
},
"postStartCommand": {
"git": "git config --global --add safe.directory ${containerWorkspaceFolder}"
}
}

View File

@@ -1,19 +0,0 @@
#!/usr/bin/env bash
set -e
set -o noglob
# Setup fisher plugin manager for fish and install plugins
/usr/bin/fish -c "
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher
fisher install decors/fish-colored-man
fisher install edc/bass
fisher install jorgebucaran/autopair.fish
fisher install nickeb96/puffer-fish
fisher install PatrickF1/fzf.fish
"
# Create/update virtual environment
if ! grep -q "venv /workspaces/" .venv/pyvenv.cfg; then
rm -rf .venv
fi
task workstation:venv

View File

@@ -1,4 +1,5 @@
# editorconfig.org
; https://editorconfig.org/
root = true
[*]
@@ -9,6 +10,13 @@ charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.{bash,py,sh}]
indent_style = space
[*.cue]
indent_style = tab
indent_size = 4
[*.md]
indent_size = 4
trim_trailing_whitespace = false
[*.sh]
indent_size = 4

14
.envrc
View File

@@ -1,14 +0,0 @@
#shellcheck disable=SC2148,SC2155
export KUBECONFIG="$(expand_path ./kubeconfig)"
export SOPS_AGE_KEY_FILE="$(expand_path ./age.key)"
# Venv
PATH_add "$(expand_path ./.venv/bin)"
export VIRTUAL_ENV="$(expand_path ./.venv)"
export PYTHONDONTWRITEBYTECODE="1"
# Talos
export TALOSCONFIG="$(expand_path ./kubernetes/bootstrap/talos/clusterconfig/talosconfig)"
# Bin
PATH_add "$(expand_path ./.bin)"
# Taskfile
export TASK_X_ENV_PRECEDENCE=1
export TASK_X_MAP_VARIABLES=0

11
.gitattributes vendored
View File

@@ -1,3 +1,10 @@
* text=auto eol=lf
*.yaml.j2 linguist-language=YAML
*.sops.* diff=sopsdiffer
*.env linguist-detectable linguist-language=SHELL
*.json linguist-detectable linguist-language=JSON
*.json5 linguist-detectable linguist-language=JSON5
*.md linguist-detectable linguist-language=MARKDOWN
*.sh linguist-detectable linguist-language=SHELL
*.toml linguist-detectable linguist-language=TOML
*.yml linguist-detectable linguist-language=YAML
*.yaml linguist-detectable linguist-language=YAML
*.yaml.j2 linguist-detectable linguist-language=YAML

39
.github/labeler.yaml vendored
View File

@@ -1,14 +1,43 @@
---
area/bootstrap:
- changed-files:
- any-glob-to-any-file: bootstrap/**/*
- any-glob-to-any-file:
- bootstrap/**/*
area/docs:
- changed-files:
- any-glob-to-any-file:
- README.md
area/github:
- changed-files:
- any-glob-to-any-file: .github/**/*
- any-glob-to-any-file:
- .github/**/*
area/kubernetes:
- changed-files:
- any-glob-to-any-file: kubernetes/**/*
- any-glob-to-any-file:
- kubernetes/**/*
area/mise:
- changed-files:
- any-glob-to-any-file:
- .mise.toml
area/renovate:
- changed-files:
- any-glob-to-any-file:
- .renovate/**/*
- .renovaterc.json5
area/scripts:
- changed-files:
- any-glob-to-any-file:
- scripts/**/*
area/talos:
- changed-files:
- any-glob-to-any-file:
- talos/**/*
area/taskfile:
- changed-files:
- any-glob-to-any-file: .taskfiles/**/*
- any-glob-to-any-file: Taskfile*
- any-glob-to-any-file:
- .taskfiles/**/*
- Taskfile.yaml
area/templates:
- changed-files:
- any-glob-to-any-file:
- templates/**/*

63
.github/labels.yaml vendored
View File

@@ -1,20 +1,47 @@
---
# Area
- { name: "area/bootstrap", color: "0e8a16" }
- { name: "area/github", color: "0e8a16" }
- { name: "area/kubernetes", color: "0e8a16" }
- { name: "area/taskfile", color: "0e8a16" }
# Distro
- { name: "distro/talos", color: "ffc300" }
# Renovate
- { name: "renovate/container", color: "027fa0" }
- { name: "renovate/github-action", color: "027fa0" }
- { name: "renovate/github-release", color: "027fa0" }
- { name: "renovate/helm", color: "027fa0" }
# Semantic Type
- { name: "type/patch", color: "ffec19" }
- { name: "type/minor", color: "ff9800" }
- { name: "type/major", color: "f6412d" }
- { name: "type/break", color: "f6412d" }
# Areas
- name: area/bootstrap
color: "0e8a16"
- name: area/docs
color: "0e8a16"
- name: area/github
color: "0e8a16"
- name: area/kubernetes
color: "0e8a16"
- name: area/mise
color: "0e8a16"
- name: area/renovate
color: "0e8a16"
- name: area/scripts
color: "0e8a16"
- name: area/talos
color: "0e8a16"
- name: area/templates
color: "0e8a16"
- name: area/taskfile
color: "0e8a16"
# Renovate Types
- name: renovate/container
color: "027fa0"
- name: renovate/github-action
color: "027fa0"
- name: renovate/grafana-dashboard
color: "027fa0"
- name: renovate/github-release
color: "027fa0"
- name: renovate/helm
color: "027fa0"
# Semantic Types
- name: type/digest
color: "ffeC19"
- name: type/patch
color: "ffeC19"
- name: type/minor
color: "ff9800"
- name: type/major
color: "f6412d"
# Uncategorized
- { name: "hold/upstream", color: "ee0701" }
- name: community
color: "370fb2"
- name: hold
color: "ee0701"

View File

@@ -1,4 +1,5 @@
changelog:
exclude:
authors:
- github-actions
- renovate

203
.github/renovate.json5 vendored
View File

@@ -1,203 +0,0 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended",
"docker:enableMajor",
":disableRateLimiting",
":dependencyDashboard",
":semanticCommits",
":automergeBranch"
],
"dependencyDashboard": true,
"dependencyDashboardTitle": "Renovate Dashboard 🤖",
"suppressNotifications": ["prEditedNotification", "prIgnoreNotification"],
"rebaseWhen": "conflicted",
"schedule": ["every weekend"],
"ignorePaths": ["**/*.sops.*"],
"flux": {
"fileMatch": ["(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$"]
},
"helm-values": {
"fileMatch": ["(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$"]
},
"helmfile": {
"fileMatch": ["(^|/)helmfile\\.ya?ml(?:\\.j2)?$"]
},
"kubernetes": {
"fileMatch": ["(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$"]
},
"kustomize": {
"fileMatch": ["(^|/)kustomization\\.ya?ml(?:\\.j2)?$"]
},
"pip_requirements": {
"fileMatch": ["(^|/)[\\w-]*requirements(-\\w+)?\\.(txt|pip)(?:\\.j2)?$"]
},
// commit message topics
"commitMessageTopic": "{{depName}}",
"commitMessageExtra": "to {{newVersion}}",
"commitMessageSuffix": "",
// package rules
"packageRules": [
// automerge
{
"description": ["Auto merge Github Actions"],
"matchManagers": ["github-actions"],
"automerge": true,
"automergeType": "branch",
"ignoreTests": true,
"matchUpdateTypes": ["minor", "patch"]
},
// groups
{
"description": ["Flux Group"],
"groupName": "Flux",
"matchPackagePatterns": ["fluxcd"],
"matchDatasources": ["docker", "github-tags"],
"versioning": "semver",
"group": {
"commitMessageTopic": "{{{groupName}}} group"
},
"separateMinorPatch": true
},
{
"description": ["Talos Group"],
"groupName": "Talos",
"matchPackagePatterns": [
"siderolabs/talosctl",
"siderolabs/installer"
],
"matchDatasources": ["docker"],
"group": {
"commitMessageTopic": "{{{groupName}}} group"
},
"separateMinorPatch": true
},
// commit message topics
{
"matchDatasources": ["helm"],
"commitMessageTopic": "chart {{depName}}"
},
{
"matchDatasources": ["docker"],
"commitMessageTopic": "image {{depName}}"
},
// commit messages
{
"matchDatasources": ["docker"],
"matchUpdateTypes": ["major"],
"commitMessagePrefix": "feat(container)!: "
},
{
"matchDatasources": ["docker"],
"matchUpdateTypes": ["minor"],
"semanticCommitType": "feat",
"semanticCommitScope": "container"
},
{
"matchDatasources": ["docker"],
"matchUpdateTypes": ["patch"],
"semanticCommitType": "fix",
"semanticCommitScope": "container"
},
{
"matchDatasources": ["docker"],
"matchUpdateTypes": ["digest"],
"semanticCommitType": "chore",
"semanticCommitScope": "container"
},
{
"matchDatasources": ["helm"],
"matchUpdateTypes": ["major"],
"commitMessagePrefix": "feat(helm)!: "
},
{
"matchDatasources": ["helm"],
"matchUpdateTypes": ["minor"],
"semanticCommitType": "feat",
"semanticCommitScope": "helm"
},
{
"matchDatasources": ["helm"],
"matchUpdateTypes": ["patch"],
"semanticCommitType": "fix",
"semanticCommitScope": "helm"
},
{
"matchDatasources": ["github-releases", "github-tags"],
"matchUpdateTypes": ["major"],
"commitMessagePrefix": "feat(github-release)!: "
},
{
"matchDatasources": ["github-releases", "github-tags"],
"matchUpdateTypes": ["minor"],
"semanticCommitType": "feat",
"semanticCommitScope": "github-release"
},
{
"matchDatasources": ["github-releases", "github-tags"],
"matchUpdateTypes": ["patch"],
"semanticCommitType": "fix",
"semanticCommitScope": "github-release"
},
{
"matchManagers": ["github-actions"],
"matchUpdateTypes": ["major"],
"commitMessagePrefix": "feat(github-action)!: "
},
{
"matchManagers": ["github-actions"],
"matchUpdateTypes": ["minor"],
"semanticCommitType": "feat",
"semanticCommitScope": "github-action"
},
{
"matchManagers": ["github-actions"],
"matchUpdateTypes": ["patch"],
"semanticCommitType": "fix",
"semanticCommitScope": "github-action"
},
// labels
{
"matchUpdateTypes": ["major"],
"labels": ["type/major"]
},
{
"matchUpdateTypes": ["minor"],
"labels": ["type/minor"]
},
{
"matchUpdateTypes": ["patch"],
"labels": ["type/patch"]
},
{
"matchDatasources": ["docker"],
"addLabels": ["renovate/container"]
},
{
"matchDatasources": ["helm"],
"addLabels": ["renovate/helm"]
},
{
"matchDatasources": ["github-releases", "github-tags"],
"addLabels": ["renovate/github-release"]
},
{
"matchManagers": ["github-actions"],
"addLabels": ["renovate/github-action"]
}
],
// custom managers
"customManagers": [
{
"customType": "regex",
"description": ["Process custom dependencies"],
"fileMatch": ["(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$"],
"matchStrings": [
// # renovate: datasource=helm depName=cilium repository=https://helm.cilium.io
// version: 1.15.1
"datasource=(?<datasource>\\S+) depName=(?<depName>\\S+)( repository=(?<registryUrl>\\S+))?\\n.+: (&\\S+\\s)?(?<currentValue>\\S+)"
],
"datasourceTemplate": "{{#if datasource}}{{{datasource}}}{{else}}github-releases{{/if}}"
}
]
}

View File

@@ -1,44 +0,0 @@
---
skip_tests: true
boostrap_talos:
schematic_id: "376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba"
bootstrap_node_network: 10.10.10.0/24
bootstrap_node_default_gateway: 10.10.10.1
bootstrap_node_inventory:
- name: k8s-controller-0
address: 10.10.10.100
controller: true
disk: fake
mac_addr: fake
- name: k8s-worker-0
address: 10.10.10.101
controller: false
disk: fake
mac_addr: fake
bootstrap_dns_servers: ["1.1.1.1", "1.0.0.1"]
bootstrap_ntp_servers: ["time.cloudflare.com"]
bootstrap_pod_network: 10.69.0.0/16
bootstrap_service_network: 10.96.0.0/16
bootstrap_controller_vip: 10.10.10.254
bootstrap_tls_sans: ["fake"]
bootstrap_age_pubkey: $BOOTSTRAP_AGE_PUBLIC_KEY
bootstrap_bgp:
enabled: false
bootstrap_github_address: https://github.com/onedr0p/cluster-template
bootstrap_github_branch: main
bootstrap_github_webhook_token: fake
bootstrap_cloudflare:
enabled: true
domain: fake
token: take
acme:
email: fake@example.com
production: false
tunnel:
account_id: fake
id: fake
secret: fake
ingress_vip: 10.10.10.252
ingress_vip: 10.10.10.251
gateway_vip: 10.10.10.253

19
.github/tests/nodes.yaml vendored Normal file
View File

@@ -0,0 +1,19 @@
nodes:
- name: k8s-0
address: 10.10.10.100
controller: true
disk: /dev/sdfake
mac_addr: 00:00:00:00:00:00
schematic_id: "376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba"
- name: k8s-1
address: 10.10.10.101
controller: false
disk: /dev/sdfake
mac_addr: 00:00:00:00:00:01
schematic_id: "376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba"
mtu: 1500
secureboot: true
encrypt_disk: true
kernel_modules:
- nvidia
- nvidia_uvm

22
.github/tests/private.yaml vendored Normal file
View File

@@ -0,0 +1,22 @@
---
node_cidr: "10.10.10.0/24"
# node_default_gateway: ""
# node_vlan_tag:
# cluster_pod_cidr: ""
# cluster_svc_cidr: ""
# node_dns_servers: []
# node_ntp_servers: []
cluster_api_addr: "10.10.10.254"
# cluster_api_tls_sans: []
cluster_gateway_addr: "10.10.10.252"
cluster_dns_gateway_addr: "10.10.10.253"
repository_name: "onedr0p/cluster-template"
# repository_branch: ""
repository_visibility: "private"
cloudflare_domain: "example.com"
cloudflare_token: "fake"
cloudflare_gateway_addr: "10.10.10.251"
# cilium_bgp_router_addr: ""
# cilium_bgp_router_asn: ""
# cilium_bgp_node_asn: ""
# cilium_loadbalancer_mode: ""

22
.github/tests/public.yaml vendored Normal file
View File

@@ -0,0 +1,22 @@
---
node_cidr: "10.10.10.0/24"
node_default_gateway: "10.10.10.1"
node_vlan_tag: "100"
cluster_pod_cidr: "10.42.0.0/16"
cluster_svc_cidr: "10.43.0.0/16"
node_dns_servers: ["1.1.1.1"]
node_ntp_servers: ["162.159.200.123"]
cluster_api_addr: "10.10.10.254"
cluster_api_tls_sans: ["example.com"]
cluster_gateway_addr: "10.10.10.252"
cluster_dns_gateway_addr: "10.10.10.253"
repository_name: "onedr0p/cluster-template"
repository_branch: "main"
repository_visibility: "public"
cloudflare_domain: "example.com"
cloudflare_token: "fake"
cloudflare_gateway_addr: "10.10.10.251"
cilium_loadbalancer_mode: "dsr"
cilium_bgp_router_addr: "10.10.1.1"
cilium_bgp_router_asn: "64513"
cilium_bgp_node_asn: "64514"

View File

@@ -1,54 +0,0 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: "devcontainer"
on:
workflow_dispatch:
push:
branches: ["main"]
paths: [".devcontainer/ci/**"]
pull_request:
branches: ["main"]
paths: [".devcontainer/ci/**"]
schedule:
- cron: "0 0 * * *"
concurrency:
group: ${{ github.workflow }}-${{ github.event.number || github.ref }}
cancel-in-progress: true
jobs:
devcontainer:
if: ${{ github.repository == 'onedr0p/cluster-template' }}
name: publish
runs-on: ubuntu-24.04 # TODO: Change to ubuntu-latest when available
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- if: ${{ github.event_name != 'pull_request' }}
name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: devcontainers/ci@v0.3
with:
imageName: ghcr.io/${{ github.repository }}/devcontainer
cacheFrom: ghcr.io/${{ github.repository }}/devcontainer
imageTag: latest
platform: linux/amd64,linux/arm64
configFile: .devcontainer/ci/devcontainer.json
push: ${{ github.event_name == 'pull_request' && 'never' || 'always' }}

View File

@@ -1,55 +1,18 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: "e2e"
on:
workflow_dispatch:
pull_request:
branches: ["main"]
paths-ignore:
- kubernetes/**
concurrency:
group: ${{ github.workflow }}-${{ github.event.number || github.ref }}
cancel-in-progress: true
jobs:
archlinux:
name: workstation (archlinux)
runs-on: ubuntu-latest
container:
image: greyltc/archlinux-aur:yay
options: --user root
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Test Arch dependencies
shell: bash
run: >-
sudo -E -u ab -D~ bash -c '
cd $GITHUB_WORKSPACE;
yay -Syu --needed --noconfirm --noprogressbar go-task;
go-task workstation:arch
'
generic-linux:
name: workstation (generic-linux)
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Homebrew
id: setup-homebrew
uses: Homebrew/actions/setup-homebrew@master
- name: Setup Workflow Tools
shell: bash
run: brew install go-task
- name: Run Workstation Generic linux tasks
shell: bash
run: task workstation:generic-linux
configure:
if: ${{ github.repository == 'onedr0p/cluster-template' }}
name: configure
@@ -58,70 +21,51 @@ jobs:
fail-fast: false
matrix:
config-files:
- talos
- public
- private
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup Homebrew
id: setup-homebrew
uses: Homebrew/actions/setup-homebrew@master
- name: Setup Python
uses: actions/setup-python@v5
id: setup-python
- name: Setup mise
uses: jdx/mise-action@6d1e696aa24c1aa1bcc1adea0212707c71ab78a8 # v3.6.1
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
with:
python-version: "3.11"
cache: false
- name: Cache homebrew packages
if: ${{ github.event_name == 'pull_request' }}
uses: actions/cache@v4
id: cache-homebrew-packages
with:
key: homebrew-${{ runner.os }}-${{ steps.setup-homebrew.outputs.gems-hash }}-${{ hashFiles('.taskfiles/workstation/Brewfile') }}
path: /home/linuxbrew/.linuxbrew
- name: Run init task
run: task init
- name: Cache venv
if: ${{ github.event_name == 'pull_request' }}
uses: actions/cache@v4
with:
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('requirements.txt', 'requirements.yaml') }}
path: .venv
- name: Setup Workflow Tools
if: ${{ github.event_name == 'pull_request' && steps.cache-homebrew-packages.outputs.cache-hit != 'true' }}
shell: bash
run: brew install go-task
- name: Run Workstation Brew tasks
if: ${{ github.event_name == 'pull_request' && steps.cache-homebrew-packages.outputs.cache-hit != 'true' }}
shell: bash
run: task workstation:brew
- name: Run Workstation venv tasks
shell: bash
run: task workstation:venv
- name: Run Workstation direnv tasks
shell: bash
run: task workstation:direnv
- name: Run Sops Age key task
shell: bash
run: task bootstrap:age-keygen
- name: Run init tasks
shell: bash
- name: Prepare files
run: |
task init
cp ./.github/tests/config-${{ matrix.config-files }}.yaml ./config.yaml
export BOOTSTRAP_AGE_PUBLIC_KEY=$(sed -n 's/# public key: //gp' age.key)
envsubst < ./config.yaml | sponge ./config.yaml
cp ./.github/tests/${{ matrix.config-files }}.yaml cluster.yaml
cp ./.github/tests/nodes.yaml nodes.yaml
echo '{"AccountTag":"fake","TunnelSecret":"fake","TunnelID":"fake"}' > cloudflare-tunnel.json
touch kubeconfig
- name: Run configure task
shell: bash
run: task configure --yes
- name: Run clean
shell: bash
run: task bootstrap:clean
- name: Run generate talconfig task
run: |
FILENAME=talos/talsecret.sops.yaml
talhelper gensecret | sops --filename-override $FILENAME --encrypt /dev/stdin > $FILENAME
task talos:generate-config
- name: Run flux-local test
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
- name: Dry run bootstrap talos task
run: task bootstrap:talos --dry
- name: Dry run bootstrap apps task
run: task bootstrap:apps --dry
- name: Run reset task
run: task template:reset --yes
- name: Run cleanup task
run: task template:tidy --yes

View File

@@ -1,68 +0,0 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: "Flux Diff"
on:
pull_request:
branches: ["main"]
paths: ["kubernetes/**"]
concurrency:
group: ${{ github.workflow }}-${{ github.event.number || github.ref }}
cancel-in-progress: true
jobs:
flux-diff:
name: Flux Diff
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
strategy:
matrix:
paths: ["kubernetes"]
resources: ["helmrelease", "kustomization"]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
path: pull
- name: Checkout Default Branch
uses: actions/checkout@v4
with:
ref: "${{ github.event.repository.default_branch }}"
path: default
- name: Diff Resources
uses: docker://ghcr.io/allenporter/flux-local:v6.0.0
with:
args: >-
diff ${{ matrix.resources }}
--unified 6
--path /github/workspace/pull/${{ matrix.paths }}/flux
--path-orig /github/workspace/default/${{ matrix.paths }}/flux
--strip-attrs "helm.sh/chart,checksum/config,app.kubernetes.io/version,chart"
--limit-bytes 10000
--all-namespaces
--sources "home-kubernetes"
--output-file diff.patch
- name: Generate Diff
id: diff
run: |
cat diff.patch
echo "diff<<EOF" >> $GITHUB_OUTPUT
cat diff.patch >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- if: ${{ steps.diff.outputs.diff != '' }}
name: Add comment
uses: mshick/add-pr-comment@v2
with:
message-id: "${{ github.event.pull_request.number }}/${{ matrix.paths }}/${{ matrix.resources }}"
message-failure: Diff was not successful
message: |
```diff
${{ steps.diff.outputs.diff }}
```

121
.github/workflows/flux-local.yaml vendored Normal file
View File

@@ -0,0 +1,121 @@
---
name: "Flux Local"
on:
pull_request:
branches: ["main"]
concurrency:
group: ${{ github.workflow }}-${{ github.event.number || github.ref }}
cancel-in-progress: true
jobs:
pre-job:
name: Flux Local Pre-Job
runs-on: ubuntu-latest
outputs:
any_changed: ${{ steps.changed-files.outputs.any_changed }}
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Get Changed Files
id: changed-files
uses: tj-actions/changed-files@7dee1b0c1557f278e5c7dc244927139d78c0e22a # v47.0.4
with:
files: kubernetes/**
test:
name: Flux Local Test
needs: pre-job
runs-on: ubuntu-latest
if: ${{ needs.pre-job.outputs.any_changed == 'true' }}
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Run flux-local test
uses: docker://ghcr.io/allenporter/flux-local:v8.1.0
with:
args: test --enable-helm --all-namespaces --path /github/workspace/kubernetes/flux/cluster -v
diff:
name: Flux Local Diff
needs: pre-job
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
strategy:
matrix:
resources: ["helmrelease", "kustomization"]
max-parallel: 4
fail-fast: false
if: ${{ needs.pre-job.outputs.any_changed == 'true' }}
steps:
- name: Checkout Pull Request Branch
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
path: pull
- name: Checkout Default Branch
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:v8.1.0
with:
args: >-
diff ${{ matrix.resources }}
--unified 6
--path /github/workspace/pull/kubernetes/flux/cluster
--path-orig /github/workspace/default/kubernetes/flux/cluster
--strip-attrs "helm.sh/chart,checksum/config,app.kubernetes.io/version,chart"
--limit-bytes 10000
--all-namespaces
--sources "flux-system"
--output-file diff.patch
- name: Generate Diff
id: diff
run: |
cat diff.patch;
{
echo 'diff<<EOF'
cat diff.patch
echo EOF
} >> "$GITHUB_OUTPUT";
{
echo "### Diff"
echo '```diff'
cat diff.patch
echo '```'
} >> "$GITHUB_STEP_SUMMARY"
- name: Add Comment
if: ${{ steps.diff.outputs.diff != '' }}
continue-on-error: true
uses: mshick/add-pr-comment@b8f338c590a895d50bcbfa6c5859251edc8952fc # v2.8.2
with:
message-id: "${{ github.event.pull_request.number }}/kubernetes/${{ matrix.resources }}"
message-failure: Diff was not successful
message: |
```diff
${{ steps.diff.outputs.diff }}
```
flux-local-status:
name: Flux Local Success
needs: ["test", "diff"]
runs-on: ubuntu-latest
if: ${{ always() }}
steps:
- name: Any jobs failed?
if: ${{ contains(needs.*.result, 'failure') }}
run: exit 1
- name: All jobs passed or skipped?
if: ${{ !(contains(needs.*.result, 'failure')) }}
run: echo "All jobs passed or skipped" && echo "${{ toJSON(needs.*.result) }}"

View File

@@ -1,29 +0,0 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: "Kubeconform"
on:
pull_request:
branches: ["main"]
paths: ["kubernetes/**"]
env:
KUBERNETES_DIR: ./kubernetes
jobs:
kubeconform:
name: Kubeconform
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Homebrew
uses: Homebrew/actions/setup-homebrew@master
- name: Setup Workflow Tools
run: brew install fluxcd/tap/flux kubeconform kustomize
- name: Run kubeconform
shell: bash
run: bash ./scripts/kubeconform.sh ${{ env.KUBERNETES_DIR }}

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: "Label Sync"
on:
@@ -12,12 +11,15 @@ jobs:
label-sync:
name: Label Sync
runs-on: ubuntu-latest
permissions:
contents: read
issues: write
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Sync Labels
uses: EndBug/label-sync@v2
uses: EndBug/label-sync@52074158190acb45f3077f9099fea818aa43f97a # v2.3.3
with:
config-file: .github/labels.yaml
delete-other-labels: true

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: "Labeler"
on:
@@ -14,8 +13,9 @@ jobs:
permissions:
contents: read
pull-requests: write
issues: write
steps:
- name: Labeler
uses: actions/labeler@v5
uses: actions/labeler@634933edcd8ababfe52f92936142cc22ac488b1b # v6.0.1
with:
configuration-path: .github/labeler.yaml

View File

@@ -1,44 +1,56 @@
---
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: "Release"
on:
workflow_dispatch:
schedule:
- cron: "0 0 1 * *"
- cron: "0 0 1 * *" # 1st of every month at midnight
jobs:
release:
if: ${{ github.repository == 'onedr0p/cluster-template' }}
name: Release
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Get Previous Release Tag and Determine Next Tag
id: determine-next-tag
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"
result-encoding: string
script: |
const { data: releases } = await github.rest.repos.listReleases({
owner: context.repo.owner,
repo: context.repo.repo,
per_page: 1,
});
let previousTag = "0.0.0"; // Default if no previous release exists
if (releases.length > 0) {
previousTag = releases[0].tag_name;
}
const [previousMajor, previousMinor, previousPatch] = previousTag.split('.').map(Number);
const currentYear = new Date().getFullYear();
const currentMonth = new Date().getMonth() + 1; // Months are 0-indexed in JavaScript
const nextMajorMinor = `${currentYear}.${currentMonth}`;
let nextPatch;
if (`${previousMajor}.${previousMinor}` === nextMajorMinor) {
console.log("Month release already exists for the year. Incrementing patch number by 1.");
nextPatch = previousPatch + 1;
} else {
console.log("Month release does not exist for the year. Starting with patch number 0.");
nextPatch = 0;
}
return `${nextMajorMinor}.${nextPatch}`;
- name: Create Release
shell: bash
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
run: |
# Retrieve previous release tag
previous_tag="$(gh release list --limit 1 | awk '{ print $1 }')"
previous_major="${previous_tag%%\.*}"
previous_minor="${previous_tag#*.}"
previous_minor="${previous_minor%.*}"
previous_patch="${previous_tag##*.}"
# Determine next release tag
next_major_minor="$(date +'%Y').$(date +'%-m')"
if [[ "${previous_major}.${previous_minor}" == "${next_major_minor}" ]]; then
echo "Month release already exists for year, incrementing patch number by 1"
next_patch="$((previous_patch + 1))"
else
echo "Month release does not exist for year, setting patch number to 0"
next_patch="0"
fi
# Create release
release_tag="${next_major_minor}.${next_patch}"
gh release create "${release_tag}" \
--repo="${GITHUB_REPOSITORY}" \
--title="${release_tag}" \
--generate-notes
uses: ncipollo/release-action@b7eabc95ff50cbeeedec83973935c8f306dfcd0b # v1.20.0
with:
generateReleaseNotes: true
tag: "${{ steps.determine-next-tag.outputs.result }}"
token: "${{ secrets.GITHUB_TOKEN }}"

43
.gitignore vendored
View File

@@ -1,26 +1,21 @@
# Trash
.DS_Store
Thumbs.db
# k8s
kubeconfig
talosconfig
.decrypted~*.yaml
.config.env
*.agekey
# Secrets
*.pub
*.key
# Private
.private
.bin
# Ansible
.venv*
# Taskfile
.task
# Brew
Brewfile.lock.json
# intellij
.idea
# wiki
wiki
# Bootstrap
/config.yaml
*.decrypted~*.yaml
/age.key
/cloudflare-tunnel.json
/github-deploy.key
/github-deploy.key.pub
/github-push-token.txt
# Template config files
/cluster.yaml
/nodes.yaml
# Kubernetes
kubeconfig
talosconfig
# Misc.
.private/
.task/
.venv/
.DS_Store
Thumbs.db

28
.mise.toml Normal file
View File

@@ -0,0 +1,28 @@
[env]
_.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.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.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"

172
.renovaterc.json5 Normal file
View File

@@ -0,0 +1,172 @@
{
$schema: "https://docs.renovatebot.com/renovate-schema.json",
extends: [
"config:recommended",
"docker:enableMajor",
"helpers:pinGitHubActionDigests",
":automergeBranch",
":dependencyDashboard",
":disableRateLimiting",
":semanticCommits",
],
dependencyDashboard: true,
dependencyDashboardTitle: "Renovate Dashboard :robot:",
schedule: ["every weekend"],
ignorePaths: ["**/*.sops.*"],
flux: {
managerFilePatterns: ["/(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$/"],
},
helmfile: {
managerFilePatterns: [
"/(^|/)helmfile\\.ya?ml(?:\\.gotmpl)?(?:\\.j2)?$/",
"/(^|/)helmfile\\.d/.+\\.ya?ml(?:\\.gotmpl)?(?:\\.j2)?$/",
],
},
kubernetes: {
managerFilePatterns: ["/(^|/)kubernetes/.+\\.ya?ml(?:\\.j2)?$/"],
},
kustomize: {
managerFilePatterns: ["/^kustomization\\.ya?ml(?:\\.j2)?$/"],
},
packageRules: [
{
description: "Override Helmfile Dependency Name",
matchDatasources: ["docker"],
matchManagers: ["helmfile"],
overrideDepName: "{{packageName}}",
},
{
description: "Flux Operator Group",
groupName: "flux-operator",
matchDatasources: ["docker"],
matchPackageNames: ["/flux-operator/", "/flux-instance/", "/flux-operator-manifests/"],
group: {
commitMessageTopic: "{{{groupName}}} group",
},
minimumGroupSize: 3,
},
{
description: "Auto-merge GitHub Actions",
matchManagers: ["github-actions"],
automerge: true,
automergeType: "branch",
matchUpdateTypes: ["minor", "patch", "digest"],
minimumReleaseAge: "3 days",
ignoreTests: true,
},
{
matchUpdateTypes: ["major"],
semanticCommitType: "feat",
commitMessagePrefix: "{{semanticCommitType}}({{semanticCommitScope}})!:",
commitMessageExtra: "( {{currentVersion}} ➔ {{newVersion}} )",
},
{
matchUpdateTypes: ["minor"],
semanticCommitType: "feat",
commitMessageExtra: "( {{currentVersion}} ➔ {{newVersion}} )",
},
{
matchUpdateTypes: ["patch"],
semanticCommitType: "fix",
commitMessageExtra: "( {{currentVersion}} ➔ {{newVersion}} )",
},
{
matchUpdateTypes: ["digest"],
semanticCommitType: "chore",
commitMessageExtra: "( {{currentDigestShort}} ➔ {{newDigestShort}} )",
},
{
matchDatasources: ["docker"],
semanticCommitScope: "container",
commitMessageTopic: "image {{depName}}",
},
{
matchDatasources: ["helm"],
semanticCommitScope: "helm",
commitMessageTopic: "chart {{depName}}",
},
{
matchManagers: ["github-actions"],
semanticCommitType: "ci",
semanticCommitScope: "github-action",
commitMessageTopic: "action {{depName}}",
},
{
matchDatasources: ["github-releases"],
semanticCommitScope: "github-release",
commitMessageTopic: "release {{depName}}",
},
{
matchManagers: ["mise"],
semanticCommitScope: "mise",
commitMessageTopic: "tool {{depName}}",
},
{
matchUpdateTypes: ["major"],
labels: ["type/major"],
},
{
matchUpdateTypes: ["minor"],
labels: ["type/minor"],
},
{
matchUpdateTypes: ["patch"],
labels: ["type/patch"],
},
{
matchUpdateTypes: ["digest"],
labels: ["type/digest"],
},
{
matchDatasources: ["docker"],
addLabels: ["renovate/container"],
},
{
matchDatasources: ["helm"],
addLabels: ["renovate/helm"],
},
{
matchManagers: ["github-actions"],
addLabels: ["renovate/github-action"],
},
{
matchDatasources: ["github-releases"],
addLabels: ["renovate/github-release"],
},
],
customManagers: [
{
description: "Process annotated dependencies",
customType: "regex",
managerFilePatterns: [
"/(^|/).+\\.env(?:\\.j2)?$/",
"/(^|/).+\\.sh(?:\\.j2)?$/",
"/(^|/).+\\.ya?ml(?:\\.j2)?$/",
],
matchStrings: [
// # renovate: datasource=github-releases depName=k3s-io/k3s
// k3s_release_version: &version v1.29.0+k3s1
// # renovate: datasource=helm depName=cilium repository=https://helm.cilium.io
// version: 1.15.1
// # renovate: datasource=docker depName=ghcr.io/siderolabs/kubelet
// KUBERNETES_VERSION=v1.31.1
"datasource=(?<datasource>\\S+) depName=(?<depName>\\S+)( repository=(?<registryUrl>\\S+))?\\n.+(:\\s|=)(&\\S+\\s)?(?<currentValue>\\S+)",
// # renovate: datasource=docker depName=ghcr.io/prometheus-operator/prometheus-operator
// https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagerconfigs.yaml
"datasource=(?<datasource>\\S+) depName=(?<depName>\\S+)\\n.+/(?<currentValue>(v|\\d)[^/]+)",
],
datasourceTemplate: "{{#if datasource}}{{{datasource}}}{{else}}github-releases{{/if}}",
},
{
customType: "regex",
description: "Process OCI dependencies",
managerFilePatterns: [
"/\\.yaml(?:\\.j2)?$/",
],
matchStrings: [
"oci://(?<depName>[^:]+):(?<currentValue>\\S+)",
],
datasourceTemplate: "docker",
},
],
}

2
.shellcheckrc Normal file
View File

@@ -0,0 +1,2 @@
disable=SC1091
disable=SC2155

View File

@@ -1,131 +1,30 @@
---
# yaml-language-server: $schema=https://taskfile.dev/schema.json
version: '3'
vars:
GITHUB_DEPLOY_KEY_FILE: '{{.KUBERNETES_DIR}}/bootstrap/flux/github-deploy-key.sops.yaml'
TALHELPER_CLUSTER_DIR: '{{.KUBERNETES_DIR}}/bootstrap/talos/clusterconfig'
TALHELPER_SECRET_FILE: '{{.KUBERNETES_DIR}}/bootstrap/talos/talsecret.sops.yaml'
TALHELPER_CONFIG_FILE: '{{.KUBERNETES_DIR}}/bootstrap/talos/talconfig.yaml'
env:
TALOSCONFIG: '{{.TALHELPER_CLUSTER_DIR}}/talosconfig'
tasks:
talos:
desc: Bootstrap the Talos cluster
dir: '{{.KUBERNETES_DIR}}/bootstrap/talos'
dir: '{{.TALOS_DIR}}'
cmds:
- '{{if eq .TALHELPER_SECRET_EXISTS "false"}}talhelper gensecret > {{.TALHELPER_SECRET_FILE}}{{end}}'
- '{{if eq .TALHELPER_SECRET_EXISTS "false"}}sops --encrypt --in-place {{.TALHELPER_SECRET_FILE}}{{end}}'
- talhelper genconfig --config-file {{.TALHELPER_CONFIG_FILE}} --secret-file {{.TALHELPER_SECRET_FILE}} --out-dir {{.TALHELPER_CLUSTER_DIR}}
- talhelper gencommand apply --config-file {{.TALHELPER_CONFIG_FILE}} --out-dir {{.TALHELPER_CLUSTER_DIR}} --extra-flags="--insecure" | bash
- until talhelper gencommand bootstrap --config-file {{.TALHELPER_CONFIG_FILE}} --out-dir {{.TALHELPER_CLUSTER_DIR}} | bash; do sleep 10; done
- until talhelper gencommand kubeconfig --config-file {{.TALHELPER_CONFIG_FILE}} --out-dir {{.TALHELPER_CLUSTER_DIR}} --extra-flags="{{.ROOT_DIR}} --force" | bash; do sleep 10; done
- task: apps
- talosctl health --server=false
vars:
TALHELPER_SECRET_EXISTS:
sh: test -f {{.TALHELPER_SECRET_FILE}} && echo true || echo false
- '[ -f talsecret.sops.yaml ] || talhelper gensecret | sops --filename-override talos/talsecret.sops.yaml --encrypt /dev/stdin > talsecret.sops.yaml'
- talhelper genconfig
- talhelper gencommand apply --extra-flags="--insecure" | bash
- until talhelper gencommand bootstrap | bash; do sleep 10; done
- until talhelper gencommand kubeconfig --extra-flags="{{.ROOT_DIR}} --force" | bash; do sleep 10; done
preconditions:
- msg: Missing talhelper config file
sh: test -f {{.TALHELPER_CONFIG_FILE}}
- msg: Missing Sops config file
sh: test -f {{.SOPS_CONFIG_FILE}}
- msg: Missing Sops Age key file
sh: test -f {{.SOPS_AGE_KEY_FILE}}
flux:
desc: Bootstrap Flux into the Talos cluster
cmds:
- '{{if eq .GITHUB_DEPLOY_KEY_EXISTS "true"}}kubectl create namespace flux-system --dry-run=client -o yaml | kubectl apply --filename -{{end}}'
- '{{if eq .GITHUB_DEPLOY_KEY_EXISTS "true"}}sops exec-file {{.GITHUB_DEPLOY_KEY_FILE}} "kubectl apply --server-side --filename {}"{{end}}'
- kubectl apply --server-side --kustomize {{.KUBERNETES_DIR}}/bootstrap/flux
- '{{if eq .SOPS_SECRET_EXISTS "false"}}cat {{.SOPS_AGE_KEY_FILE}} | kubectl --namespace flux-system create secret generic sops-age --from-file=age.agekey=/dev/stdin{{end}}'
- sops exec-file {{.KUBERNETES_DIR}}/flux/vars/cluster-secrets.sops.yaml "kubectl apply --server-side --filename {}"
- kubectl apply --server-side --filename {{.KUBERNETES_DIR}}/flux/vars/cluster-settings.yaml
- kubectl apply --server-side --kustomize {{.KUBERNETES_DIR}}/flux/config
vars:
GITHUB_DEPLOY_KEY_EXISTS:
sh: test -f {{.GITHUB_DEPLOY_KEY_FILE}} && echo true || echo false
SOPS_SECRET_EXISTS:
sh: kubectl --namespace flux-system get secret sops-age &>/dev/null && echo true || echo false
preconditions:
- msg: Missing kubeconfig
sh: test -f {{.KUBECONFIG}}
- msg: Missing Sops Age key file
sh: test -f {{.SOPS_AGE_KEY_FILE}}
- test -f {{.ROOT_DIR}}/.sops.yaml
- test -f {{.SOPS_AGE_KEY_FILE}}
- test -f {{.TALOS_DIR}}/talconfig.yaml
- which talhelper talosctl sops
apps:
internal: true
dir: '{{.KUBERNETES_DIR}}/bootstrap/talos'
cmds:
- until kubectl wait --for=condition=Ready=False nodes --all --timeout=600s; do sleep 10; done
- helmfile --file {{.KUBERNETES_DIR}}/bootstrap/helmfile.yaml apply --skip-diff-on-install --suppress-diff
- until kubectl wait --for=condition=Ready nodes --all --timeout=600s; do sleep 10; done
desc: Bootstrap apps into the Talos cluster
cmd: bash {{.SCRIPTS_DIR}}/bootstrap-apps.sh
preconditions:
- msg: Missing kubeconfig
sh: test -f {{.KUBECONFIG}}
- msg: Missing helmfile
sh: test -f {{.KUBERNETES_DIR}}/bootstrap/helmfile.yaml
age-keygen:
desc: Bootstrap the Sops Age key
cmd: age-keygen --output {{.SOPS_AGE_KEY_FILE}}
status:
- msg: Unsupported bash version, run `brew install bash` to upgrade
sh: '{{if eq OS "darwin"}}test -f /opt/homebrew/bin/bash || test -f /usr/local/bin/bash{{end}}'
- test -f {{.KUBECONFIG}}
- test -f {{.ROOT_DIR}}/.sops.yaml
- test -f {{.SCRIPTS_DIR}}/bootstrap-apps.sh
- test -f {{.SOPS_AGE_KEY_FILE}}
template:
internal: true
cmd: '{{.VIRTUAL_ENV}}/bin/makejinja'
preconditions:
- msg: Missing virtual environment
sh: test -d {{.VIRTUAL_ENV}}
- msg: Missing Makejinja config file
sh: test -f {{.MAKEJINJA_CONFIG_FILE}}
- msg: Missing Makejinja plugin file
sh: test -f {{.BOOTSTRAP_DIR}}/scripts/plugin.py
- msg: Missing bootstrap config file
sh: test -f {{.BOOTSTRAP_CONFIG_FILE}}
secrets:
internal: true
cmds:
- for: { var: SECRET_FILES }
cmd: |
if sops filestatus "{{.ITEM}}" | jq --exit-status ".encrypted == false" &>/dev/null; then
sops --encrypt --in-place "{{.ITEM}}"
fi
vars:
SECRET_FILES:
sh: find "{{.KUBERNETES_DIR}}" -type f -name "*.sops.*"
preconditions:
- msg: Missing Sops config file
sh: test -f {{.SOPS_CONFIG_FILE}}
- msg: Missing Sops Age key file
sh: test -f {{.SOPS_AGE_KEY_FILE}}
clean:
desc: Clean files and directories no longer needed after cluster bootstrap
cmds:
# Create backup directory
- mkdir -p {{.ROOT_DIR}}/.private
# Clean up CI
- rm -rf {{.ROOT_DIR}}/.github/tests
- rm -rf {{.ROOT_DIR}}/.github/workflows/e2e.yaml
# Clean up devcontainer
- rm -rf {{.ROOT_DIR}}/.devcontainer/ci
- rm -rf {{.ROOT_DIR}}/.github/workflows/devcontainer.yaml
# Move bootstrap directory to gitignored directory
- mv {{.BOOTSTRAP_DIR}} {{.ROOT_DIR}}/.private/bootstrap-{{.TS}}
- mv {{.MAKEJINJA_CONFIG_FILE}} {{.ROOT_DIR}}/.private/makejinja-{{.TS}}.toml
# Update renovate.json5
- sed -i {{if eq OS "darwin"}}''{{end}} 's/(..\.j2)\?//g' {{.ROOT_DIR}}/.github/renovate.json5
vars:
TS: '{{now | unixEpoch}}'
preconditions:
- msg: Missing bootstrap directory
sh: test -d {{.BOOTSTRAP_DIR}}
- msg: Missing Renovate config file
sh: test -f {{.ROOT_DIR}}/.github/renovate.json5

View File

@@ -1,63 +0,0 @@
---
# yaml-language-server: $schema=https://taskfile.dev/schema.json
version: '3'
vars:
KUBECONFORM_SCRIPT: "{{.SCRIPTS_DIR}}/kubeconform.sh"
tasks:
apply-ks:
desc: Apply a Flux Kustomization resource for a cluster
summary: |-
PATH: Path to the Flux Kustomization resource from the apps base dir (required, e.g. network/echo-server)
NS: Namespace the Flux Kustomization exists in (default: flux-system)
cmd: >
flux build --namespace {{.NS}} ks {{base .PATH}}
--kustomization-file {{.KUBERNETES_DIR}}/apps/{{.PATH}}/ks.yaml
--path {{.KUBERNETES_DIR}}/apps/{{.PATH}}
{{- if contains "not found" .KS }}--dry-run \{{ end }}
| yq 'with(select(.apiVersion == "kustomize.toolkit.fluxcd.io/v1" and .kind == "Kustomization"); .metadata.namespace = "{{.NS}}")' -
| kubectl apply --server-side --field-manager=kustomize-controller -f -
requires:
vars: [PATH]
vars:
NS: '{{.NS | default "flux-system"}}'
KS:
sh: flux --namespace {{.NS}} get kustomizations {{base .PATH}} 2>&1
preconditions:
- test -f {{.KUBERNETES_DIR}}/apps/{{.PATH}}/ks.yaml
reconcile:
desc: Force update Flux to pull in changes from your Git repository
cmd: flux reconcile --namespace flux-system kustomization cluster --with-source
preconditions:
- msg: Missing kubeconfig
sh: test -f {{.KUBECONFIG}}
kubeconform:
desc: Validate Kubernetes manifests with kubeconform
cmd: bash {{.KUBECONFORM_SCRIPT}} {{.KUBERNETES_DIR}}
preconditions:
- msg: Missing kubeconform script
sh: test -f {{.KUBECONFORM_SCRIPT}}
resources:
desc: Gather common resources in your cluster, useful when asking for support
cmds:
- for: { var: RESOURCE }
cmd: kubectl get {{.ITEM}} {{.CLI_ARGS | default "-A"}}
vars:
RESOURCE: >-
nodes
gitrepositories
kustomizations
helmrepositories
helmreleases
certificates
certificaterequests
ingresses
pods
preconditions:
- msg: Missing kubeconfig
sh: test -f {{.KUBECONFIG}}

View File

@@ -1,122 +1,65 @@
---
# yaml-language-server: $schema=https://taskfile.dev/schema.json
version: '3'
vars:
TALHELPER_CLUSTER_DIR: '{{.KUBERNETES_DIR}}/bootstrap/talos/clusterconfig'
TALHELPER_CONFIG_FILE: '{{.KUBERNETES_DIR}}/bootstrap/talos/talconfig.yaml'
TALHELPER_SECRET_FILE: '{{.KUBERNETES_DIR}}/bootstrap/talos/talsecret.sops.yaml'
TALOSCONFIG: '{{.TALHELPER_CLUSTER_DIR}}/talosconfig'
env:
TALOSCONFIG: '{{.TALOSCONFIG}}'
tasks:
generate-config:
desc: Generate Talos configuration
cmd: talhelper genconfig --config-file {{.TALHELPER_CONFIG_FILE}} --secret-file {{.TALHELPER_SECRET_FILE}} --out-dir {{.TALHELPER_CLUSTER_DIR}}
dir: '{{.TALOS_DIR}}'
cmd: talhelper genconfig
preconditions:
- msg: Missing talhelper config file
sh: test -f {{.TALHELPER_CONFIG_FILE}}
- msg: Missing Sops config file
sh: test -f {{.SOPS_CONFIG_FILE}}
- msg: Missing Sops Age key file
sh: test -f {{.SOPS_AGE_KEY_FILE}}
- test -f {{.TALOS_DIR}}/talconfig.yaml
- test -f {{.ROOT_DIR}}/.sops.yaml
- test -f {{.SOPS_AGE_KEY_FILE}}
- which talhelper
apply-config:
desc: Apply Talos configuration to a node
cmds:
- talosctl --nodes {{.HOSTNAME}} apply-config --mode=staged --file {{.TALHELPER_CLUSTER_DIR}}/{{.CLUSTER_NAME}}-{{.HOSTNAME}}.yaml
- talosctl --nodes {{.HOSTNAME}} reboot
- talosctl --nodes {{.HOSTNAME}} health --wait-timeout=10m --server=false
apply-node:
desc: Apply Talos config to a node [IP=required]
dir: '{{.TALOS_DIR}}'
cmd: talhelper gencommand apply --node {{.IP}} --extra-flags '--mode={{.MODE}}' | bash
vars:
CLUSTER_NAME:
sh: yq '.clusterName' {{.TALHELPER_CONFIG_FILE}}
MODE: '{{.MODE | default "auto"}}'
requires:
vars: [HOSTNAME]
vars: [IP]
preconditions:
- msg: Missing talosconfig
sh: test -f {{.TALOSCONFIG}}
- msg: Unable to retrieve Talos config
sh: talosctl config info &>/dev/null
- msg: Node not found
sh: talosctl --nodes {{.HOSTNAME}} get machineconfig &>/dev/null
- msg: Talos config for node not found
sh: test -f {{.TALHELPER_CLUSTER_DIR}}/{{.CLUSTER_NAME}}-{{.HOSTNAME}}.yaml
- talosctl --nodes {{.IP}} get machineconfig
- talosctl config info
- test -f {{.TALOSCONFIG}}
- which talhelper talosctl yq
upgrade-node:
desc: Upgrade Talos on a single node
cmds:
- task: '{{if ne .ROLLOUT true}}down{{else}}noop{{end}}'
- talosctl --nodes {{.HOSTNAME}} upgrade --image="factory.talos.dev/installer/{{.TALOS_SCHEMATIC_ID}}:{{.TALOS_VERSION}}" --timeout=10m
- talosctl --nodes {{.HOSTNAME}} health --wait-timeout=10m --server=false
- task: '{{if ne .ROLLOUT true}}up{{else}}noop{{end}}'
desc: Upgrade Talos on a single node [IP=required]
dir: '{{.TALOS_DIR}}'
cmd: talhelper gencommand upgrade --node {{.IP}} --extra-flags "--image='{{.TALOS_IMAGE}}:{{.TALOS_VERSION}}' --timeout=10m" | bash
vars:
TALOS_SCHEMATIC_ID:
sh: kubectl get node {{.HOSTNAME}} --output=jsonpath='{.metadata.annotations.extensions\.talos\.dev/schematic}'
TALOS_IMAGE:
sh: yq '.nodes[] | select(.ipAddress == "{{.IP}}") | .talosImageURL' {{.TALOS_DIR}}/talconfig.yaml
TALOS_VERSION:
sh: yq '.talosVersion' {{.TALHELPER_CONFIG_FILE}}
sh: yq '.talosVersion' {{.TALOS_DIR}}/talenv.yaml
requires:
vars: [HOSTNAME]
vars: [IP]
preconditions:
- msg: Missing talosconfig
sh: test -f {{.TALOSCONFIG}}
- msg: Unable to retrieve Talos config
sh: talosctl config info &>/dev/null
- msg: Node not found
sh: talosctl --nodes {{.HOSTNAME}} get machineconfig &>/dev/null
- msg: Upstream Talos version not found
sh: curl -fsSL -o /dev/null --fail https://github.com/siderolabs/talos/releases/tag/{{.TALOS_VERSION}}
upgrade-cluster:
desc: Upgrade Talos on the whole cluster
cmds:
- task: down
- for: { var: HOSTNAMES }
task: upgrade-node
vars:
HOSTNAME: '{{.ITEM}}'
ROLLOUT: true
- task: up
vars:
HOSTNAMES:
sh: kubectl get nodes --output=jsonpath='{.items[*].metadata.name}'
- talosctl --nodes {{.IP}} get machineconfig
- talosctl config info
- test -f {{.TALOSCONFIG}}
- which kubectl talhelper talosctl yq
upgrade-k8s:
desc: Upgrade Kubernetes
cmd: talosctl --nodes {{.KUBERNETES_CONTROLLER}} upgrade-k8s --to {{.KUBERNETES_VERSION}}
dir: '{{.TALOS_DIR}}'
cmd: talhelper gencommand upgrade-k8s --extra-flags "--to '{{.KUBERNETES_VERSION}}'" | bash
vars:
KUBERNETES_CONTROLLER:
sh: talosctl config info --output json | jq --raw-output '.endpoints[]' | shuf -n 1
KUBERNETES_VERSION:
sh: yq '.kubernetesVersion' {{.TALHELPER_CONFIG_FILE}}
sh: yq '.kubernetesVersion' {{.TALOS_DIR}}/talenv.yaml
preconditions:
- msg: Missing talosconfig
sh: test -f {{.TALOSCONFIG}}
- msg: Unable to retrieve Talos config
sh: talosctl config info &>/dev/null
- msg: Node not found
sh: talosctl --nodes {{.KUBERNETES_CONTROLLER}} get machineconfig &>/dev/null
- msg: Upstream Kubernetes version not found
sh: curl -fsSL -o /dev/null --fail https://github.com/siderolabs/kubelet/releases/tag/{{.KUBERNETES_VERSION}}
- talosctl config info
- test -f {{.TALOSCONFIG}}
- which talhelper talosctl yq
reset:
desc: Resets nodes back to maintenance mode
dir: "{{.KUBERNETES_DIR}}/bootstrap/talos"
dir: '{{.TALOS_DIR}}'
prompt: This will destroy your cluster and reset the nodes back to maintenance mode... continue?
cmd: talhelper gencommand reset --config-file {{.TALHELPER_CONFIG_FILE}} --out-dir {{.TALHELPER_CLUSTER_DIR}} --extra-flags="--reboot {{- if eq .CLI_FORCE false }} --system-labels-to-wipe STATE --system-labels-to-wipe EPHEMERAL{{ end }} --graceful=false --wait=false" | bash
down:
internal: true
cmd: flux --namespace flux-system suspend kustomization --all
up:
internal: true
cmd: flux --namespace flux-system resume kustomization --all
# Ref: https://github.com/go-task/task/issues/608
noop:
internal: true
silent: true
cmd: noop() { :; }
cmd: talhelper gencommand reset --extra-flags="--reboot {{- if eq .CLI_FORCE false }} --system-labels-to-wipe STATE --system-labels-to-wipe EPHEMERAL{{ end }} --graceful=false --wait=false" | bash
preconditions:
- which talhelper

View File

@@ -0,0 +1,173 @@
---
version: '3'
vars:
MAKEJINJA_CONFIG_FILE: '{{.ROOT_DIR}}/makejinja.toml'
TEMPLATE_DIR: '{{.ROOT_DIR}}/templates'
TEMPLATE_RESOURCES_DIR: '{{.ROOT_DIR}}/.taskfiles/template/resources'
TEMPLATE_CONFIG_FILE: '{{.ROOT_DIR}}/cluster.yaml'
TEMPLATE_NODE_CONFIG_FILE: '{{.ROOT_DIR}}/nodes.yaml'
tasks:
:init:
desc: Initialize configuration files
cmds:
- task: generate-template-config
- task: generate-age-key
- task: generate-deploy-key
- task: generate-push-token
generate-template-config:
internal: true
cmds:
- mv {{.TEMPLATE_CONFIG_FILE | replace ".yaml" ".sample.yaml"}} {{.TEMPLATE_CONFIG_FILE}}
- mv {{.TEMPLATE_NODE_CONFIG_FILE | replace ".yaml" ".sample.yaml"}} {{.TEMPLATE_NODE_CONFIG_FILE}}
status:
- test -f {{.TEMPLATE_CONFIG_FILE}}
- test -f {{.TEMPLATE_NODE_CONFIG_FILE}}
generate-age-key:
internal: true
cmd: age-keygen --output {{.SOPS_AGE_KEY_FILE}}
status:
- test -f {{.SOPS_AGE_KEY_FILE}}
preconditions:
- which age-keygen
generate-deploy-key:
internal: true
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:
- which ssh-keygen
generate-push-token:
internal: true
cmd: python -c "import secrets; print(secrets.token_hex(16))" > {{.ROOT_DIR}}/github-push-token.txt
status:
- test -f {{.ROOT_DIR}}/github-push-token.txt
:configure:
desc: Render and validate configuration files
prompt: Any conflicting files in the kubernetes directory will be overwritten... continue?
cmds:
- task: validate-schemas
- task: render-configs
- task: encrypt-secrets
- task: validate-kubernetes-config
- task: validate-talos-config
preconditions:
- msg: An existing Age key interferes with the age key in this repository, rename or delete ~/.config/sops/age/keys.txt
sh: '! test -f ~/.config/sops/age/keys.txt'
- msg: File cluster.yaml not found, did you run `task init`?
sh: test -f {{.TEMPLATE_CONFIG_FILE}}
- msg: File nodes.yaml not found, did you run `task init`?
sh: test -f {{.TEMPLATE_NODE_CONFIG_FILE}}
- msg: File cloudflare-tunnel.json not found, see the README for information on creating it.
sh: test -f {{.ROOT_DIR}}/cloudflare-tunnel.json
validate-schemas:
internal: true
cmds:
- cue vet {{.TEMPLATE_CONFIG_FILE}} {{.TEMPLATE_RESOURCES_DIR}}/cluster.schema.cue
- cue vet {{.TEMPLATE_NODE_CONFIG_FILE}} {{.TEMPLATE_RESOURCES_DIR}}/nodes.schema.cue
preconditions:
- test -f {{.TEMPLATE_RESOURCES_DIR}}/cluster.schema.cue
- test -f {{.TEMPLATE_RESOURCES_DIR}}/nodes.schema.cue
- which cue
render-configs:
internal: true
cmd: makejinja
env:
PYTHONDONTWRITEBYTECODE: '1'
preconditions:
- test -f {{.TEMPLATE_DIR}}/scripts/plugin.py
- test -f {{.MAKEJINJA_CONFIG_FILE}}
- which makejinja
encrypt-secrets:
internal: true
cmds:
- for: { var: SECRET_FILES }
cmd: |
if [ $(sops filestatus "{{.ITEM}}" | jq ".encrypted") == "false" ]; then
sops --encrypt --in-place "{{.ITEM}}"
fi
vars:
SECRET_FILES:
sh: find "{{.BOOTSTRAP_DIR}}" "{{.KUBERNETES_DIR}}" "{{.TALOS_DIR}}" -type f -name "*.sops.*" -print
preconditions:
- test -f {{.SOPS_AGE_KEY_FILE}}
- test -f {{.ROOT_DIR}}/.sops.yaml
- which jq sops
validate-kubernetes-config:
internal: true
cmd: bash {{.TEMPLATE_RESOURCES_DIR}}/kubeconform.sh {{.KUBERNETES_DIR}}
preconditions:
- test -f {{.TEMPLATE_RESOURCES_DIR}}/kubeconform.sh
- which kubeconform
validate-talos-config:
internal: true
dir: '{{.TALOS_DIR}}'
cmd: talhelper validate talconfig {{.TALOS_DIR}}/talconfig.yaml
preconditions:
- test -f {{.TALOS_DIR}}/talconfig.yaml
- which talhelper
debug:
desc: Gather common resources in your cluster
cmds:
- for:
matrix:
RESOURCE: [certificates, certificaterequests, gitrepositories, helmrepositories, helmreleases, httproutes, kustomizations, nodes, pods]
cmd: kubectl get --all-namespaces {{.ITEM.RESOURCE}}
preconditions:
- test -f {{.KUBECONFIG}}
- which kubectl
tidy:
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
- rm -rf {{.ROOT_DIR}}/.github/workflows/e2e.yaml
- rm -rf {{.ROOT_DIR}}/.github/workflows/mise.yaml
- rm -rf {{.ROOT_DIR}}/.github/workflows/release.yaml
- |
{{.SED}} -i 's/(..\.j2)\?//g' {{.ROOT_DIR}}/.renovaterc.json5
- mv {{.TEMPLATE_DIR}} {{.TIDY_FOLDER}}/templates
- mv {{.MAKEJINJA_CONFIG_FILE}} {{.TIDY_FOLDER}}/makejinja.toml
- mv {{.TEMPLATE_CONFIG_FILE}} {{.TIDY_FOLDER}}/cluster.yaml
- mv {{.TEMPLATE_NODE_CONFIG_FILE}} {{.TIDY_FOLDER}}/nodes.yaml
- |
{{.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:
sh: which gsed || which sed
preconditions:
- msg: Unsupported sed version, run `brew install gsed` to upgrade
sh: '{{if eq OS "darwin"}}test -f /opt/homebrew/bin/gsed || test -f /usr/local/bin/gsed{{end}}'
- test -d {{.ROOT_DIR}}/.taskfiles/template
- test -d {{.TEMPLATE_DIR}}
- test -f {{.MAKEJINJA_CONFIG_FILE}}
- test -f {{.ROOT_DIR}}/.renovaterc.json5
reset:
desc: Remove templated files and directories
prompt: Remove all templated files and directories... continue?
cmds:
- rm -rf {{.BOOTSTRAP_DIR}}
- rm -rf {{.KUBERNETES_DIR}}
- rm -rf {{.TALOS_DIR}}
- rm -rf {{.ROOT_DIR}}/.sops.yaml

View File

@@ -0,0 +1,31 @@
package config
import (
"net"
)
#Config: {
node_cidr: net.IPCIDR & !=cluster_pod_cidr & !=cluster_svc_cidr
node_dns_servers?: [...net.IPv4]
node_ntp_servers?: [...net.IPv4]
node_default_gateway?: net.IPv4 & !=""
node_vlan_tag?: string & !=""
cluster_pod_cidr: *"10.42.0.0/16" | net.IPCIDR & !=node_cidr & !=cluster_svc_cidr
cluster_svc_cidr: *"10.43.0.0/16" | net.IPCIDR & !=node_cidr & !=cluster_pod_cidr
cluster_api_addr: net.IPv4
cluster_api_tls_sans?: [...net.FQDN]
cluster_gateway_addr: net.IPv4 & !=cluster_api_addr & !=cluster_dns_gateway_addr & !=cloudflare_gateway_addr
cluster_dns_gateway_addr: net.IPv4 & !=cluster_api_addr & !=cluster_gateway_addr & !=cloudflare_gateway_addr
repository_name: string
repository_branch?: string & !=""
repository_visibility?: *"public" | "private"
cloudflare_domain: net.FQDN
cloudflare_token: string
cloudflare_gateway_addr: net.IPv4 & !=cluster_api_addr & !=cluster_gateway_addr & !=cluster_dns_gateway_addr
cilium_bgp_router_addr?: net.IPv4 & !=""
cilium_bgp_router_asn?: string & !=""
cilium_bgp_node_asn?: string & !=""
cilium_loadbalancer_mode?: *"dsr" | "snat"
}
#Config

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash
set -o errexit
set -o pipefail
set -euo pipefail
KUBERNETES_DIR=$1
@@ -12,7 +12,7 @@ kubeconform_args=(
"-strict"
"-ignore-missing-schemas"
"-skip"
"Secret"
"Gateway,HTTPRoute,Secret"
"-schema-location"
"default"
"-schema-location"

View File

@@ -0,0 +1,30 @@
package config
import (
"net"
"list"
)
#Config: {
nodes: [...#Node]
_nodes_check: {
name: list.UniqueItems() & [for item in nodes {item.name}]
address: list.UniqueItems() & [for item in nodes {item.address}]
mac_addr: list.UniqueItems() & [for item in nodes {item.mac_addr}]
}
}
#Node: {
name: =~"^[a-z0-9][a-z0-9\\-]{0,61}[a-z0-9]$|^[a-z0-9]$" & !="global" & !="controller" & !="worker"
address: net.IPv4
controller: bool
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
kernel_modules?: [...string]
}
#Config

View File

@@ -1,18 +0,0 @@
age
cloudflared-bin
direnv
flux-bin
go-task
go-yq
helm
helmfile
jq
kubeconform
kubectl-bin
kustomize
minijinja-cli-bin
moreutils
sops
stern-bin
talhelper-bin
talosctl

View File

@@ -1,21 +0,0 @@
tap "fluxcd/tap"
tap "go-task/tap"
tap "siderolabs/tap"
brew "age"
brew "cloudflared"
brew "direnv"
brew "fluxcd/tap/flux"
brew "go-task/tap/go-task"
brew "helm"
brew "helmfile"
brew "jq"
brew "kubeconform"
brew "kubernetes-cli"
brew "kustomize"
brew "minijinja-cli"
brew "moreutils"
brew "siderolabs/tap/talosctl"
brew "sops"
brew "stern"
brew "talhelper"
brew "yq"

View File

@@ -1,91 +0,0 @@
---
# yaml-language-server: $schema=https://taskfile.dev/schema.json
version: '3'
tasks:
arch:
desc: Set up Arch Linux tools
cmd: '{{.PKGMGR}} -Syu --needed --noconfirm --noprogressbar $(cat {{.ROOT_DIR}}/.taskfiles/workstation/Archfile | xargs)'
vars:
PKGMGR:
sh: command -v paru || command -v yay
preconditions:
- msg: Missing paru or yay
sh: command -v paru &>/dev/null || command -v yay &>/dev/null
- msg: Missing Archfile
sh: test -f {{.ROOT_DIR}}/.taskfiles/workstation/Archfile
brew:
desc: Set up Homebrew tools
cmds:
- brew bundle --file {{.ROOT_DIR}}/.taskfiles/workstation/Brewfile
sources:
- '{{.ROOT_DIR}}/.taskfiles/workstation/Brewfile'
generates:
- '{{.ROOT_DIR}}/.taskfiles/workstation/Brewfile.lock.json'
preconditions:
- msg: Missing brew
sh: command -v brew &>/dev/null
- msg: Missing Brewfile
sh: test -f {{.ROOT_DIR}}/.taskfiles/workstation/Brewfile
direnv:
desc: Run direnv hooks
cmd: direnv allow .
status:
- '[[ $(direnv status --json | jq ".state.foundRC.allowed") == 0 ]]'
- '[[ $(direnv status --json | jq ".state.loadedRC.allowed") == 0 ]]'
preconditions:
- msg: Missing direnv
sh: command -v direnv &>/dev/null
generic-linux:
desc: Setup CLI tools into the projects .bin directory
dir: '{{.ROOT_DIR}}/.bin'
platforms: ['linux/amd64', 'linux/arm64']
cmds:
- for:
- budimanjojo/talhelper?as=talhelper
- cloudflare/cloudflared?as=cloudflared
- FiloSottile/age?as=age
- fluxcd/flux2?as=flux
- helmfile/helmfile?as=helmfile
- jqlang/jq?as=jq
- kubernetes-sigs/kustomize?as=kustomize
- mikefarah/yq?as=yq
- siderolabs/talos?as=talosctl
- yannh/kubeconform?as=kubeconform
cmd: curl -fsSL "https://i.jpillora.com/{{.ITEM}}&type=script" | bash
- cmd: |
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl";
curl -sSfL -o sops https://github.com/getsops/sops/releases/latest/download/sops-v3.9.1.linux.amd64
platforms: ['linux/amd64']
- cmd: |
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/arm64/kubectl";
curl -sSfL -o sops https://github.com/getsops/sops/releases/latest/download/sops-v3.9.1.linux.arm64
platforms: ['linux/arm64']
- cmd: chmod +x kubectl sops
- cmd: curl -sSfL https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
- cmd: curl -sSfL https://github.com/mitsuhiko/minijinja/releases/latest/download/minijinja-cli-installer.sh | bash
env:
MINIJINJA_CLI_INSTALL_DIR: '.'
MINIJINJA_CLI_UNMANAGED_INSTALL: 'true'
HELM_INSTALL_DIR: '.'
USE_SUDO: 'false'
venv:
desc: Set up virtual environment
cmds:
- python3 -m venv {{.VIRTUAL_ENV}}
- '{{.VIRTUAL_ENV}}/bin/python3 -m pip install --upgrade pip setuptools wheel'
- '{{.VIRTUAL_ENV}}/bin/python3 -m pip install --upgrade --requirement "{{.ROOT_DIR}}/requirements.txt"'
sources:
- '{{.ROOT_DIR}}/requirements.txt'
generates:
- '{{.VIRTUAL_ENV}}/pyvenv.cfg'
preconditions:
- msg: Missing python3
sh: command -v python3 &>/dev/null
- msg: Missing Pip requirements file
sh: test -f {{.ROOT_DIR}}/requirements.txt

View File

@@ -1,14 +1,9 @@
{
"recommendations": [
"albert.TabOut",
"britesnow.vscode-toggle-quotes",
"fcrespo82.markdown-table-formatter",
"mikestead.dotenv",
"mitchdenny.ecdc",
"signageos.signageos-vscode-sops",
"will-stone.in-any-case",
"EditorConfig.editorconfig",
"PKief.material-icon-theme",
"Gruntfuggly.todo-tree"
]
"recommendations": [
"blueglassblock.better-json5",
"irongeek.vscode-env",
"redhat.vscode-yaml",
"signageos.signageos-vscode-sops",
"hverlin.mise-vscode"
]
}

12
.vscode/settings.json vendored
View File

@@ -1,16 +1,18 @@
{
"editor.bracketPairColorization.enabled": true,
"files.associations": {
"*.json5": "jsonc",
"./kubernetes/**/*.sops.toml": "plaintext"
"**/*.json5": "json5"
},
"files.trimTrailingWhitespace": true,
"sops.defaults.ageKeyFile": "age.key",
"yaml.schemas": {
"Kubernetes": "./kubernetes/*.yaml"
},
"vs-kubernetes": {
"vs-kubernetes.kubeconfig": "./kubeconfig",
"vs-kubernetes.knownKubeconfigs": [
"./kubeconfig"
]
},
"yaml.schemaStore.enable": true,
"yaml.schemas": {
"kubernetes": "./kubernetes/**/*.yaml"
}
}

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2024 onedr0p
Copyright (c) 2025 onedr0p
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

483
README.md
View File

@@ -1,321 +1,297 @@
# ⛵ Cluster Template
Welcome to my opinionated and extensible template for deploying a single Kubernetes cluster. The goal of this project is to make it easier for people interested in using Kubernetes to deploy a cluster at home on bare-metal or VMs.
Welcome to my template designed for deploying a single Kubernetes cluster. Whether you're setting up a cluster at home on bare-metal or virtual machines (VMs), this project aims to simplify the process and make Kubernetes more accessible. This template is inspired by my personal [home-ops](https://github.com/onedr0p/home-ops) repository, providing a practical starting point for anyone interested in managing their own Kubernetes environment.
At a high level this project makes use of [makejinja](https://github.com/mirkolenz/makejinja) to read in a [configuration file](./config.sample.yaml) which renders out templates that will allow you to install and manage your Kubernetes cluster with.
At its core, this project leverages [makejinja](https://github.com/mirkolenz/makejinja), a powerful tool for rendering templates. By reading configuration files—such as [cluster.yaml](./cluster.sample.yaml) and [nodes.yaml](./nodes.sample.yaml)—Makejinja generates the necessary configurations to deploy a Kubernetes cluster with the following features:
- Easy configuration through YAML files.
- Compatibility with home setups, whether on physical hardware or VMs.
- A modular and extensible approach to cluster deployment and management.
With this approach, you'll gain a solid foundation to build and manage your Kubernetes cluster efficiently.
## ✨ Features
The features included will depend on the type of configuration you want to use. There are currently **2 different types** of **configurations** available with this template.
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.
1. **"Flux cluster"** - a Kubernetes cluster deployed on-top of [Talos Linux](https://github.com/siderolabs/talos) with an opinionated implementation of [Flux](https://github.com/fluxcd/flux2) using [GitHub](https://github.com/) as the Git provider and [sops](https://github.com/getsops/sops) to manage secrets.
- **Required:** Some knowledge of [Containers](https://opencontainers.org/), [YAML](https://yaml.org/), and [Git](https://git-scm.com/).
- **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), and [openebs](https://github.com/openebs/openebs).
2. **"Flux cluster with Cloudflare"** - An addition to "**Flux cluster**" that provides DNS and SSL with [Cloudflare](https://www.cloudflare.com/). [Cloudflare Tunnel](https://www.cloudflare.com/products/tunnel/) is also included to provide external access to certain applications deployed in your cluster.
- **Required:** A Cloudflare account with a domain managed in your Cloudflare account.
- **Components:** [ingress-nginx](https://github.com/kubernetes/ingress-nginx/), [external-dns](https://github.com/kubernetes-sigs/external-dns) and [cloudflared](https://github.com/cloudflare/cloudflared).
- **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), [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:**
- A [Renovate](https://www.mend.io/renovate)-ready repository with pull request diffs provided by [flux-local](https://github.com/allenporter/flux-local)
- Integrated [GitHub Actions](https://github.com/features/actions) with helpful workflows.
- Dev env managed w/ [mise](https://mise.jdx.dev/)
- Workflow automation w/ [GitHub Actions](https://github.com/features/actions)
- Dependency automation w/ [Renovate](https://www.mend.io/renovate)
- Flux `HelmRelease` and `Kustomization` diffs w/ [flux-local](https://github.com/allenporter/flux-local)
## 💻 Machine Preparation
Does this sound cool to you? If so, continue to read on! 👇
### System requirements
## 🚀 Let's Go!
> [!NOTE]
> 1. The included behaviour of Talos is that all nodes are able to run workloads, **including** the controller nodes. **Worker nodes** are therefore **optional**.
> 2. Do you have 3 or more nodes? It is highly recommended to make 3 of them controller nodes for a highly available control plane.
> 3. Running the cluster on Proxmox VE? My thoughts and recommendations about that are documented [here](https://onedr0p.github.io/home-ops/notes/proxmox-considerations.html).
There are **6 stages** outlined below for completing this project, make sure you follow the stages in order.
| Role | Cores | Memory | System Disk |
|---------|----------|---------------|---------------------------|
| Control | 4 _(6*)_ | 8GB _(24GB*)_ | 120GB _(500GB*)_ SSD/NVMe |
| Worker | 4 _(6*)_ | 8GB _(24GB*)_ | 120GB _(500GB*)_ SSD/NVMe |
| _\* recommended_ |
### Stage 1: Hardware Configuration
1. Head over to <https://factory.talos.dev> and follow the instructions which will eventually lead you to download a Talos Linux iso file (or for SBCs the `.raw.xz`). Make sure to note the schematic ID you will need this later on.
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.
2. Flash the iso or raw file to a USB drive and boot to Talos on your nodes with it.
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.
3. Continue on to 🚀 [**Getting Started**](#-getting-started)
**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.
## 🚀 Getting Started
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.
Once you have installed Talos on your nodes, there are six stages to getting a Flux-managed cluster up and runnning.
### Stage 2: Machine Preparation
> [!NOTE]
> For all stages below the commands **MUST** be ran on your personal workstation within your repository directory
> [!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**.
>
> **Minimum system requirements**
> | Role | Cores | Memory | System Disk |
> |---------|----------|---------------|---------------------------|
> | Control/Worker | 4 | 16GB | 256GB SSD/NVMe |
### 🎉 Stage 1: Create a Git repository
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.
1. Create a new **public** repository by clicking the big green "Use this template" button at the top of this page.
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.
2. Clone **your new repo** to you local workstation and `cd` into it.
3. Flash the Talos ISO or RAW image to a USB drive and boot from it on your nodes.
3. Continue on to 🌱 [**Stage 2**](#-stage-2-setup-your-local-workstation-environment)
### 🌱 Stage 2: Setup your local workstation
You have two different options for setting up your local workstation.
- First option is using a `devcontainer` which requires you to have Docker and VSCode installed. This method is the fastest to get going because all the required CLI tools are provided for you in my [devcontainer](https://github.com/onedr0p/cluster-template/pkgs/container/cluster-template%2Fdevcontainer) image.
- The second option is setting up the CLI tools directly on your workstation.
#### Devcontainer method
1. Start Docker and open your repository in VSCode. There will be a pop-up asking you to use the `devcontainer`, click the button to start using it.
2. Continue on to 🔧 [**Stage 3**](#-stage-3-bootstrap-configuration)
#### Non-devcontainer method
1. Install the most recent version of [task](https://taskfile.dev/) and [direnv](https://direnv.net/)
4. Verify with `nmap` that your nodes are available on the network. (Replace `192.168.1.0/24` with the network your nodes are on.)
```sh
# Homebrew
brew install direnv go-task
# or, Arch
pacman -S --noconfirm direnv go-task \
&& ln -sf /usr/bin/go-task /usr/local/bin/task
nmap -Pn -n -p 50000 192.168.1.0/24 -vv | grep 'Discovered'
```
2. [Hook `direnv` into your preferred shell](https://direnv.net/docs/hook.html), then run:
### 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 use the [GitHub CLI](https://cli.github.com/) ...
```sh
task workstation:direnv
export REPONAME="home-ops"
gh repo create $REPONAME --template onedr0p/cluster-template --public --clone
cd $REPONAME
```
📍 _**Verify** that `direnv` is setup properly by opening a new terminal and `cd`ing into your repository. You should see something like:_
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).
4. Use `mise` to install the **required** CLI tools:
```sh
cd /path/to/repo
direnv: loading ... .envrc
direnv: export +VIRTUAL_ENV ... ~PATH
mise trust
pip install pipx
mise install
```
3. Install the additional **required** CLI tools
📍 _**Having trouble installing the tools?** Try unsetting the `GITHUB_TOKEN` env var and then run these commands again_
📍 _**Not using Homebrew or ArchLinux?** Try using the generic Linux task below, if that fails check out the [Brewfile](.taskfiles/workstation/Brewfile)/[Archfile](.taskfiles/workstation/Archfile) for what CLI tools needed and install them._
📍 _**Having trouble compiling Python?** Try running `mise settings python.compile=0` and then run these commands again_
5. Logout of the GitHub Container Registry as this may cause authorization problems in future steps when using the public registry:
```sh
# Homebrew
task workstation:brew
# or, Arch with yay/paru
task workstation:arch
# or, Generic Linux (YMMV, this pulls binaires in to ./bin)
task workstation:generic-linux
docker logout ghcr.io
helm registry logout ghcr.io
```
4. Setup a Python virual environment by running the following task command.
### Stage 4: Cloudflare configuration
📍 _This commands requires Python 3.11+ to be installed._
> [!WARNING]
> 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.
- Click the blue `Use template` button for the `Edit zone DNS` template.
- Name your token `kubernetes`
- Under `Permissions`, click `+ Add More` and add permissions `Zone - DNS - Edit` and `Account - Cloudflare Tunnel - Read`
- Limit the permissions to a specific account and/or zone resources and then click `Continue to Summary` and then `Create Token`.
- **Save this token somewhere safe**, you will need it later on.
2. Create the Cloudflare Tunnel:
```sh
task workstation:venv
cloudflared tunnel login
cloudflared tunnel create --credentials-file cloudflare-tunnel.json kubernetes
```
5. Continue on to 🔧 [**Stage 3**](#-stage-3-bootstrap-configuration)
### Stage 5: Cluster configuration
### 🔧 Stage 3: Bootstrap configuration
> [!NOTE]
> The [config.sample.yaml](./config.sample.yaml) file contains config that is **vital** to the bootstrap process.
1. Generate the `config.yaml` from the [config.sample.yaml](./config.sample.yaml) configuration file.
1. Generate the config files from the sample files:
```sh
task init
```
2. Fill out the `config.yaml` configuration file using the comments in that file as a guide.
2. Fill out `cluster.yaml` and `nodes.yaml` configuration files using the comments in those file as a guide.
3. Run the following command which will generate all the files needed to continue.
3. Template out the kubernetes and talos configuration files, if any issues come up be sure to read the error and adjust your config files accordingly.
```sh
task configure
```
4. Push you changes to git
4. Push your changes to git:
📍 _**Verify** all the `./kubernetes/**/*.sops.*` files are **encrypted** with SOPS_
```sh
git add -A
git commit -m "Initial commit :rocket:"
git commit -m "chore: initial commit :rocket:"
git push
```
### ⛵ Stage 4: Install Kubernetes
> [!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.
1. Deploy your cluster and bootstrap it. This generates secrets, generates the config files for your nodes and applies them. It bootstraps the cluster afterwards, fetches the kubeconfig file and installs Cilium and kubelet-csr-approver. It finishes with some health checks.
### 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 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:
```sh
task bootstrap:talos
```
2. ⚠️ 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. This is a normal. If this step gets interrupted, e.g. by pressing <kbd>Ctrl</kbd> + <kbd>C</kbd>, you likely will need to [nuke the cluster](#-Nuke) before trying again.
#### Cluster validation
1. The `kubeconfig` for interacting with your cluster should have been created in the root of your repository.
2. Verify the nodes are online
📍 _If this command **fails** you likely haven't configured `direnv` as [mentioned previously](#non-devcontainer-method) in the guide._
2. Push your changes to git:
```sh
kubectl get nodes -o wide
# NAME STATUS ROLES AGE VERSION
# k8s-0 Ready control-plane,etcd,master 1h v1.30.1
# k8s-1 Ready worker 1h v1.30.1
git add -A
git commit -m "chore: add talhelper encrypted secret :lock:"
git push
```
3. Continue on to 🔹 [**Stage 6**](#-stage-6-install-flux-in-your-cluster)
### 🔹 Stage 6: Install Flux in your cluster
1. Verify Flux can be installed
3. Install cilium, coredns, spegel, flux and sync the cluster to the repository state:
```sh
flux check --pre
# ► checking prerequisites
# ✔ kubectl 1.30.1 >=1.18.0-0
# ✔ Kubernetes 1.30.1 >=1.16.0-0
# ✔ prerequisites checks passed
task bootstrap:apps
```
2. Install Flux and sync the cluster to the Git repository
4. Watch the rollout of your cluster happen:
```sh
task bootstrap:flux
# namespace/flux-system configured
# customresourcedefinition.apiextensions.k8s.io/alerts.notification.toolkit.fluxcd.io created
# ...
kubectl get pods --all-namespaces --watch
```
3. Verify Flux components are running in the cluster
## 📣 Post installation
### ✅ Verifications
1. Check the status of Cilium:
```sh
kubectl -n flux-system get pods -o wide
# NAME READY STATUS RESTARTS AGE
# helm-controller-5bbd94c75-89sb4 1/1 Running 0 1h
# kustomize-controller-7b67b6b77d-nqc67 1/1 Running 0 1h
# notification-controller-7c46575844-k4bvr 1/1 Running 0 1h
# source-controller-7d6875bcb4-zqw9f 1/1 Running 0 1h
cilium status
```
### 🎤 Verification Steps
2. Check the status of Flux and if the Flux resources are up-to-date and in a ready state:
_Mic check, 1, 2_ - In a few moments applications should be lighting up like Christmas in July 🎄
1. Output all the common resources in your cluster.
📍 _Feel free to use the provided [kubernetes tasks](.taskfiles/Kubernetes/Taskfile.yaml) for validation of cluster resources or continue to get familiar with the `kubectl` and `flux` CLI tools._
📍 _Run `task reconcile` to force Flux to sync your Git repository state_
```sh
task kubernetes:resources
flux check
flux get sources git flux-system
flux get ks -A
flux get hr -A
```
2. ⚠️ It might take `cert-manager` awhile to generate certificates, this is normal so be patient.
3. Check TCP connectivity to both the internal and external gateways:
3. 🏆 **Congratulations** if all goes smooth you will have a Kubernetes cluster managed by Flux and your Git repository is driving the state of your cluster.
📍 _The variables are only placeholders, replace them with your actual values_
4. 🧠 Now it's time to pause and go get some motel motor oil ☕ and admire you made it this far!
```sh
nmap -Pn -n -p 443 ${cluster_gateway_addr} ${cloudflare_gateway_addr} -vv
```
## 📣 Flux w/ Cloudflare post installation
4. Check you can resolve DNS for `echo`, this should resolve to `${cloudflare_gateway_addr}`:
#### 🌐 Public DNS
📍 _The variables are only placeholders, replace them with your actual values_
The `external-dns` application created in the `networking` namespace will handle creating public DNS records. By default, `echo-server` and the `flux-webhook` are the only subdomains reachable from the public internet. In order to make additional applications public you must set set the correct ingress class name and ingress annotations like in the HelmRelease for `echo-server`.
```sh
dig @${cluster_dns_gateway_addr} echo.${cloudflare_domain}
```
#### 🏠 Home DNS
5. Check the status of your wildcard `Certificate`:
`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 `${bootstrap_cloudflare.domain}` to `${bootstrap_cloudflare.gateway_vip}` instead of the upstream DNS server(s) it normally uses. This is a form of **split DNS** (aka split-horizon DNS / conditional forwarding).
```sh
kubectl -n network describe certificates
```
### 🌐 Public DNS
> [!TIP]
> Below is how to configure a Pi-hole for split DNS. Other platforms should be similar.
> 1. Apply this file on the Pihole server while substituting the variables
> ```sh
> # /etc/dnsmasq.d/99-k8s-gateway-forward.conf
> server=/${bootstrap_cloudflare.domain}/${bootstrap_cloudflare.gateway_vip}
> ```
> 2. Restart dnsmasq on the server.
> 3. Query an internal-only subdomain from your workstation (any `internal` class ingresses): `dig @${home-dns-server-ip} echo-server-internal.${bootstrap_cloudflare.domain}`. It should resolve to `${bootstrap_cloudflare.ingress_vip}`.
> 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.
If you're having trouble with DNS be sure to check out these two GitHub discussions: [Internal DNS](https://github.com/onedr0p/cluster-template/discussions/719) and [Pod DNS resolution broken](https://github.com/onedr0p/cluster-template/discussions/635).
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`.
... Nothing working? That is expected, this is DNS after all!
### 🏠 Home DNS
#### 📜 Certificates
> [!TIP]
> 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.
By default this template will deploy a wildcard certificate using the Let's Encrypt **staging environment**, which prevents you from getting rate-limited by the Let's Encrypt production servers if your cluster doesn't deploy properly (for example due to a misconfiguration). Once you are sure you will keep the cluster up for more than a few hours be sure to switch to the production servers as outlined in `config.yaml`.
`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).
📍 _You will need a production certificate to reach internet-exposed applications through `cloudflared`._
_... 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.
> [!NOTE]
> This will only work after you have switched over certificates to the Let's Encrypt Production servers.
1. Obtain the webhook path:
1. Obtain the webhook path
📍 _Hook id and path should look like `/hook/12ebd1e363c641dc3c2e430ecf3cee2b3c7a5ac9e1234506f6f5f3ce1230e123`_
📍 _Hook id and path should look like `/hook/12ebd1e363c641dc3c2e430ecf3cee2b3c7a5ac9e1234506f6f5f3ce1230e123`_
```sh
kubectl -n flux-system get receiver github-receiver -o jsonpath='{.status.webhookPath}'
kubectl -n flux-system get receiver github-webhook --output=jsonpath='{.status.webhookPath}'
```
2. Piece together the full URL with the webhook path appended
2. Piece together the full URL with the webhook path appended:
```text
https://flux-webhook.${bootstrap_cloudflare.domain}/hook/12ebd1e363c641dc3c2e430ecf3cee2b3c7a5ac9e1234506f6f5f3ce1230e123
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 `bootstrap_github_webhook_token` secret in `config.yaml`, 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
There might be a situation where you want to destroy your Kubernetes cluster. The following command will reset your nodes back to maintenance mode, append `--force` to completely format your the Talos installation. Either way the nodes should reboot after the command has run.
> [!CAUTION]
> **Resetting** the cluster **multiple times in a short period of time** could lead to being **rate limited by DockerHub or Let's Encrypt**.
There might be a situation where you want to destroy your Kubernetes cluster. The following command will reset your nodes back to maintenance mode.
```sh
task talos:reset # --force
task talos:reset
```
## 🛠️ Talos and Kubernetes Maintenance
#### ⚙️ Updating Talos node configuration
### ⚙️ Updating Talos node configuration
📍 _Ensure you have updated `talconfig.yaml` and any patches with your updated configuration._
> [!TIP]
> Ensure you have updated `talconfig.yaml` and any patches with your updated configuration. In some cases you **not only need to apply the configuration but also upgrade talos** to apply new configuration.
```sh
# (Re)generate the Talos config
task talos:generate-config
# Apply the config to the node
task talos:apply-config HOSTNAME=? MODE=?
# e.g. task talos:apply-config HOSTNAME=k8s-0 MODE=reboot
task talos:apply-node IP=? MODE=?
# e.g. task talos:apply-node IP=10.10.10.10 MODE=auto
```
#### ⬆️ Updating Talos and Kubernetes versions
### ⬆️ Updating Talos and Kubernetes versions
📍 _Ensure the `talosVersion` and `kubernetesVersion` in `talhelper.yaml` are up-to-date with the version you wish to upgrade to._
```sh
# Upgrade the whole cluster to a newer Talos version
task talos:upgrade-cluster
# e.g. task talos:upgrade-cluster
```
> [!TIP]
> Ensure the `talosVersion` and `kubernetesVersion` in `talenv.yaml` are up-to-date with the version you wish to upgrade to.
```sh
# Upgrade node to a newer Talos version
task talos:upgrade-node HOSTNAME=?
# e.g. task talos:upgrade HOSTNAME=k8s-0
task talos:upgrade-node IP=?
# e.g. task talos:upgrade-node IP=10.10.10.10
```
```sh
@@ -324,96 +300,183 @@ 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, Ansible roles... even Flux itself! Merging a PR will cause Flux to apply the update to your cluster.
[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.
To enable Renovate, click the 'Configure' button over at their [Github app page](https://github.com/apps/renovate) and select your repository. Renovate creates a "Dependency Dashboard" as an issue in your repository, giving an overview of the status of all updates. The dashboard has interactive checkboxes that let you do things like advance scheduling or reattempt update PRs you closed without merging.
The base Renovate configuration in your repository can be viewed at [.github/renovate.json5](./.github/renovate.json5). By default it is scheduled to be active with PRs every weekend, but you can [change the schedule to anything you want](https://docs.renovatebot.com/presets-schedule), or remove it if you want Renovate to open PRs right away.
The base Renovate configuration in your repository can be viewed at [.renovaterc.json5](.renovaterc.json5). By default it is scheduled to be active with PRs every weekend, but you can [change the schedule to anything you want](https://docs.renovatebot.com/presets-schedule), or remove it if you want Renovate to open PRs immediately.
## 🐛 Debugging
Below is a general guide on trying to debug an issue with an resource or application. For example, if a workload/resource is not showing up or a pod has started but in a `CrashLoopBackOff` or `Pending` state.
Below is a general guide on trying to debug an issue with an resource or application. For example, if a workload/resource is not showing up or a pod has started but in a `CrashLoopBackOff` or `Pending` state. These steps do not include a way to fix the problem as the problem could be one of many different things.
1. Start by checking all Flux Kustomizations & Git Repository & OCI Repository and verify they are healthy.
1. Check if the Flux resources are up-to-date and in a ready state:
📍 _Run `task reconcile` to force Flux to sync your Git repository state_
```sh
flux get sources oci -A
flux get sources git -A
flux get ks -A
```
2. Then check all the Flux Helm Releases and verify they are healthy.
```sh
flux get hr -A
```
3. Then check the if the pod is present.
2. Do you see the pod of the workload you are debugging:
```sh
kubectl -n <namespace> get pods -o wide
```
4. Then 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
# or
stern -n <namespace> <fuzzy-name>
```
5. 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>
```
6. Check the namespace events
5. Check the namespace events:
```sh
kubectl -n <namespace> get events --sort-by='.metadata.creationTimestamp'
```
Resolving problems that you have could take some tweaking of your YAML manifests in order to get things working, other times it could be a external factor like permissions on NFS. If you are unable to figure out your problem see the help section below.
Resolving problems that you have could take some tweaking of your YAML manifests in order to get things working, other times it could be a external factor like permissions on a NFS server. If you are unable to figure out your problem see the support sections below.
## 👉 Help
## 🧹 Tidy up
- 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.
Once your cluster is fully configured and you no longer need to run `task configure`, it's a good idea to clean up the repository by removing the [templates](./templates) directory and any files related to the templating process. This will help eliminate unnecessary clutter from the upstream template repository and resolve any "duplicate registry" warnings from Renovate.
1. Tidy up your repository:
```sh
task template:tidy
```
2. Push your changes to git:
```sh
git add -A
git commit -m "chore: tidy up :broom:"
git push
```
## ❔ What's next
The cluster is your oyster (or something like that). Below are some optional considerations you might want to review.
There's a lot to absorb here, especially if you're new to these tools. Take some time to familiarize yourself with the tooling and understand how all the components interconnect. Dive into the documentation of the various tools included — they are a valuable resource. This shouldn't be a production environment yet, so embrace the freedom to experiment. Move fast, break things intentionally, and challenge yourself to fix them.
### Ship it
To browse or get ideas on applications people are running, community member [@whazor](https://github.com/whazor) created [Kubesearch](https://kubesearch.dev) as a creative way to search Flux HelmReleases across Github and Gitlab.
Below are some optional considerations you may want to explore.
### DNS
Instead of using [k8s_gateway](https://github.com/ori-edge/k8s_gateway) to provide DNS for your applications you might want to check out [external-dns](https://github.com/kubernetes-sigs/external-dns), it has wide support for many different providers such as [Pi-hole](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/pihole.md), [UniFi](https://github.com/kashalls/external-dns-unifi-webhook), [Adguard Home](https://github.com/muhlba91/external-dns-provider-adguard), [Bind](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/rfc2136.md) and more.
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:
- [Pi-hole](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/pihole.md)
- [UniFi](https://github.com/kashalls/external-dns-unifi-webhook)
- [Adguard Home](https://github.com/muhlba91/external-dns-provider-adguard)
- [Bind](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/rfc2136.md)
This flexibility allows you to integrate seamlessly with a range of DNS solutions to suit your environment and offload DNS from your cluster to your router, or external device.
### 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.
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.
### Storage
The included CSI (openebs in local-hostpath mode) is a great start for storage but soon you might find you need more features like replicated block storage, or to connect to a NFS/SMB/iSCSI server. If you need any of those features be sure to check out the projects like [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),
and [synology-csi](https://github.com/SynologyOpenSource/synology-csi).
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)
- [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)
- [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.
### Community Repositories
Community member [@whazor](https://github.com/whazor) created [Kubesearch](https://kubesearch.dev) to allow searching Flux HelmReleases across Github and Gitlab repositories with the `kubesearch` topic.
## 🙋 Support
### Community
- 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.
## 📺 Media
Check out these videos below. If you find them helpful, a like and subscribe goes a long way!
<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
If this repo is too hot to handle or too cold to hold check out these following projects.
- [khuedoan/homelab](https://github.com/khuedoan/homelab) - _Modern self-hosting framework, fully automated from empty disk to operating services with a single command._
- [danmanners/aws-argo-cluster-template](https://github.com/danmanners/aws-argo-cluster-template) - _A community opinionated template for deploying Kubernetes clusters on-prem and in AWS using Pulumi, SOPS, Sealed Secrets, GitHub Actions, Renovate, Cilium and more!_
- [ricsanfre/pi-cluster](https://github.com/ricsanfre/pi-cluster) - _Pi Kubernetes Cluster. Homelab kubernetes cluster automated with Ansible and ArgoCD_
- [techno-tim/k3s-ansible](https://github.com/techno-tim/k3s-ansible) - _The easiest way to bootstrap a self-hosted High Availability Kubernetes cluster. A fully automated HA k3s etcd install with kube-vip, MetalLB, and more_
- [ajaykumar4/cluster-template](https://github.com/ajaykumar4/cluster-template) - _A template for deploying a Talos Kubernetes cluster including Argo for GitOps_
- [khuedoan/homelab](https://github.com/khuedoan/homelab) - _Fully automated homelab from empty disk to running services with a single command._
- [mitchross/k3s-argocd-starter](https://github.com/mitchross/k3s-argocd-starter) - starter kit for k3s, argocd
- [ricsanfre/pi-cluster](https://github.com/ricsanfre/pi-cluster) - _Pi Kubernetes Cluster. Homelab kubernetes cluster automated with Ansible and FluxCD_
- [techno-tim/k3s-ansible](https://github.com/techno-tim/k3s-ansible) - _The easiest way to bootstrap a self-hosted High Availability Kubernetes cluster. A fully automated HA k3s etcd install with kube-vip, MetalLB, and more. Build. Destroy. Repeat._
## ⭐ Stargazers
<div align="center">
[![Star History Chart](https://api.star-history.com/svg?repos=onedr0p/cluster-template&type=Date)](https://star-history.com/#onedr0p/cluster-template&Date)
<a href="https://star-history.com/#onedr0p/cluster-template&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=onedr0p/cluster-template&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=onedr0p/cluster-template&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=onedr0p/cluster-template&type=Date" />
</picture>
</a>
</div>

View File

@@ -1,5 +1,4 @@
---
# yaml-language-server: $schema=https://taskfile.dev/schema.json
version: '3'
set: [pipefail]
@@ -9,44 +8,27 @@ vars:
BOOTSTRAP_DIR: '{{.ROOT_DIR}}/bootstrap'
KUBERNETES_DIR: '{{.ROOT_DIR}}/kubernetes'
SCRIPTS_DIR: '{{.ROOT_DIR}}/scripts'
BOOTSTRAP_CONFIG_FILE: '{{.ROOT_DIR}}/config.yaml'
MAKEJINJA_CONFIG_FILE: '{{.ROOT_DIR}}/makejinja.toml'
SOPS_CONFIG_FILE: '{{.ROOT_DIR}}/.sops.yaml'
TALOS_DIR: '{{.ROOT_DIR}}/talos'
PRIVATE_DIR: '{{.ROOT_DIR}}/.private'
TALOSCONFIG: '{{.ROOT_DIR}}/talos/clusterconfig/talosconfig'
env:
KUBECONFIG: '{{.ROOT_DIR}}/kubeconfig'
PYTHONDONTWRITEBYTECODE: '1'
SOPS_AGE_KEY_FILE: '{{.ROOT_DIR}}/age.key'
VIRTUAL_ENV: '{{.ROOT_DIR}}/.venv'
TALOSCONFIG: '{{.TALOSCONFIG}}'
includes:
bootstrap: .taskfiles/bootstrap
kubernetes: .taskfiles/kubernetes
talos: .taskfiles/talos
workstation: .taskfiles/workstation
user:
taskfile: .taskfiles/User
optional: true
template: .taskfiles/template
tasks:
default: task --list
init:
desc: Initialize configuration files
cmd: cp {{.BOOTSTRAP_CONFIG_FILE | replace ".yaml" ".sample.yaml"}} {{.BOOTSTRAP_CONFIG_FILE}}
status:
- test -f {{.BOOTSTRAP_CONFIG_FILE}}
configure:
desc: Render and validate configuration files
prompt: Any conflicting config in the kubernetes directory will be overwritten... continue?
deps:
- init
- bootstrap:age-keygen
- workstation:direnv
- workstation:venv
cmds:
- task: bootstrap:template
- task: bootstrap:secrets
- task: kubernetes:kubeconform
reconcile:
desc: Force Flux to pull in changes from your Git repository
cmd: flux --namespace flux-system reconcile kustomization flux-system --with-source
preconditions:
- test -f {{.KUBECONFIG}}
- which flux

View File

@@ -1,81 +0,0 @@
import importlib.util
import sys
from collections.abc import Callable
from pathlib import Path
from typing import Any
from typing import Any
from netaddr import IPNetwork
import makejinja
import validation
# Return the filename of a path without the j2 extension
def basename(value: str) -> str:
return Path(value).stem
# Return a list of files in the talos patches directory
def talos_patches(value: str) -> list[str]:
path = Path(f'bootstrap/templates/kubernetes/bootstrap/talos/patches/{value}')
if not path.is_dir():
return []
return [str(f) for f in sorted(path.glob('*.yaml.j2')) if f.is_file()]
# Return the nth host in a CIDR range
def nthhost(value: str, query: int) -> str:
value = IPNetwork(value)
try:
nth = int(query)
if value.size > nth:
return str(value[nth])
except ValueError:
return False
return value
def import_filter(file: Path) -> Callable[[dict[str, Any]], bool]:
module_path = file.relative_to(Path.cwd()).with_suffix("")
module_name = str(module_path).replace("/", ".")
spec = importlib.util.spec_from_file_location(module_name, file)
assert spec is not None
module = importlib.util.module_from_spec(spec)
sys.modules[module_name] = module
assert spec.loader is not None
spec.loader.exec_module(module)
return module.main
class Plugin(makejinja.plugin.Plugin):
def __init__(self, data: dict[str, Any], config: makejinja.config.Config):
self._data = data
self._config = config
self._excluded_dirs: set[Path] = set()
for input_path in config.inputs:
for filter_file in input_path.rglob(".mjfilter.py"):
filter_func = import_filter(filter_file)
if filter_func(data) is False:
self._excluded_dirs.add(filter_file.parent)
validation.validate(data)
def filters(self) -> makejinja.plugin.Filters:
return [basename, nthhost]
def functions(self) -> makejinja.plugin.Functions:
return [talos_patches]
def path_filters(self):
return [self._mjfilter_func]
def _mjfilter_func(self, path: Path) -> bool:
return not any(
path.is_relative_to(excluded_dir) for excluded_dir in self._excluded_dirs
)

View File

@@ -1,113 +0,0 @@
from functools import wraps
from shutil import which
from typing import Callable, cast
from zoneinfo import available_timezones
import netaddr
import re
import socket
import sys
GLOBAL_CLI_TOOLS = ["age", "flux", "helmfile", "sops", "jq", "kubeconform", "kustomize", "talosctl", "talhelper"]
CLOUDFLARE_TOOLS = ["cloudflared"]
def required(*keys: str):
def wrapper_outter(func: Callable):
@wraps(func)
def wrapper(data: dict, *_, **kwargs) -> None:
for key in keys:
if data.get(key) is None:
raise ValueError(f"Missing required key {key}")
return func(*[data[key] for key in keys], **kwargs)
return wrapper
return wrapper_outter
def validate_python_version() -> None:
required_version = (3, 11, 0)
if sys.version_info < required_version:
raise ValueError(f"Python {sys.version_info} is below 3.11. Please upgrade.")
def validate_ip(ip: str) -> str:
try:
netaddr.IPAddress(ip)
except netaddr.core.AddrFormatError as e:
raise ValueError(f"Invalid IP address {ip}") from e
return ip
def validate_network(cidr: str, family: int) -> str:
try:
network = netaddr.IPNetwork(cidr)
if network.version != family:
raise ValueError(f"Invalid CIDR family {network.version}")
except netaddr.core.AddrFormatError as e:
raise ValueError(f"Invalid CIDR {cidr}") from e
return cidr
def validate_node(node: dict, node_cidr: str) -> None:
if not node.get("name"):
raise ValueError(f"A node is missing a name")
if not re.match(r"^[a-z0-9-]+$", node.get('name')):
raise ValueError(f"Node {node.get('name')} has an invalid name")
if not node.get("disk"):
raise ValueError(f"Node {node.get('name')} is missing disk")
if not node.get("mac_addr"):
raise ValueError(f"Node {node.get('name')} is missing mac_addr")
if not re.match(r"(?:[0-9a-fA-F]:?){12}", node.get("mac_addr")):
raise ValueError(f"Node {node.get('name')} has an invalid mac_addr, is this a MAC address?")
if node.get("address"):
ip = validate_ip(node.get("address"))
if netaddr.IPAddress(ip, 4) not in netaddr.IPNetwork(node_cidr):
raise ValueError(f"Node {node.get('name')} is not in the node CIDR {node_cidr}")
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
sock.settimeout(5)
result = sock.connect_ex((ip, 50000))
if result != 0:
raise ValueError(f"Node {node.get('name')} port 50000 is not open")
@required("bootstrap_cloudflare")
def validate_cli_tools(cloudflare: dict, **_) -> None:
for tool in GLOBAL_CLI_TOOLS:
if not which(tool):
raise ValueError(f"Missing required CLI tool {tool}")
for tool in CLOUDFLARE_TOOLS if cloudflare.get("enabled", False) else []:
if not which(tool):
raise ValueError(f"Missing required CLI tool {tool}")
@required("bootstrap_age_pubkey")
def validate_age(key: str, **_) -> None:
if not re.match(r"^age1[a-z0-9]{0,58}$", key):
raise ValueError(f"Invalid Age public key {key}")
@required("bootstrap_node_network", "bootstrap_node_inventory")
def validate_nodes(node_cidr: str, nodes: dict[list], **_) -> None:
node_cidr = validate_network(node_cidr, 4)
controllers = [node for node in nodes if node.get('controller') == True]
if len(controllers) < 1:
raise ValueError(f"Must have at least one controller node")
if len(controllers) % 2 == 0:
raise ValueError(f"Must have an odd number of controller nodes")
for node in controllers:
validate_node(node, node_cidr)
workers = [node for node in nodes if node.get('controller') == False]
for node in workers:
validate_node(node, node_cidr)
def validate(data: dict) -> None:
validate_python_version()
validate_cli_tools(data)
validate_age(data)
if not data.get("skip_tests", False):
validate_nodes(data)

View File

@@ -1,12 +0,0 @@
---
creation_rules:
- # IMPORTANT: This rule MUST be above the others
path_regex: talos/.*\.sops\.ya?ml
key_groups:
- age:
- "#{ bootstrap_age_pubkey }#"
- path_regex: kubernetes/.*\.sops\.ya?ml
encrypted_regex: "^(data|stringData)$"
key_groups:
- age:
- "#{ bootstrap_age_pubkey }#"

View File

@@ -1 +0,0 @@
main = lambda data: data.get("bootstrap_cloudflare", {}).get("enabled", False) == True

View File

@@ -1,39 +0,0 @@
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-production
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: "${SECRET_ACME_EMAIL}"
privateKeySecretRef:
name: letsencrypt-production
solvers:
- dns01:
cloudflare:
apiTokenSecretRef:
name: cert-manager-secret
key: api-token
selector:
dnsZones:
- "${SECRET_DOMAIN}"
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-staging
spec:
acme:
server: https://acme-staging-v02.api.letsencrypt.org/directory
email: "${SECRET_ACME_EMAIL}"
privateKeySecretRef:
name: letsencrypt-staging
solvers:
- dns01:
cloudflare:
apiTokenSecretRef:
name: cert-manager-secret
key: api-token
selector:
dnsZones:
- "${SECRET_DOMAIN}"

View File

@@ -1,42 +0,0 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app cert-manager
namespace: flux-system
spec:
targetNamespace: cert-manager
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/cert-manager/cert-manager/app
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: true
interval: 30m
timeout: 5m
#% if bootstrap_cloudflare.enabled %#
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app cert-manager-issuers
namespace: flux-system
spec:
targetNamespace: cert-manager
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn:
- name: cert-manager
path: ./kubernetes/apps/cert-manager/cert-manager/issuers
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: true
interval: 30m
timeout: 5m
#% endif %#

View File

@@ -1,6 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./namespace.yaml
- ./webhooks/ks.yaml

View File

@@ -1,22 +0,0 @@
#% if bootstrap_cloudflare.enabled %#
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: flux-webhook
annotations:
external-dns.alpha.kubernetes.io/target: "external.${SECRET_DOMAIN}"
spec:
ingressClassName: external
rules:
- host: "flux-webhook.${SECRET_DOMAIN}"
http:
paths:
- path: /hook/
pathType: Prefix
backend:
service:
name: webhook-receiver
port:
number: 80
#% endif %#

View File

@@ -1,5 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./github

View File

@@ -1,19 +0,0 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app flux-webhooks
namespace: flux-system
spec:
targetNamespace: flux-system
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/flux-system/webhooks/app
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: true
interval: 30m
timeout: 5m

View File

@@ -1,70 +0,0 @@
---
autoDirectNodeRoutes: true
#% if bootstrap_bgp.enabled %#
bgpControlPlane:
enabled: true
#% endif %#
bpf:
masquerade: false # Required for Talos `.machine.features.hostDNS.forwardKubeDNSToHost`
cgroup:
automount:
enabled: false
hostRoot: /sys/fs/cgroup
cluster:
id: 1
name: "#{ bootstrap_cluster_name | default('home-kubernetes', true) }#"
cni:
exclusive: false
# NOTE: devices might need to be set if you have more than one active NIC on your hosts
# devices: eno+ eth+
endpointRoutes:
enabled: true
envoy:
enabled: false
hubble:
enabled: false
ipam:
mode: kubernetes
ipv4NativeRoutingCIDR: "#{ bootstrap_pod_network.split(',')[0] }#"
#% if bootstrap_feature_gates.dual_stack_ipv4_first %#
ipv6NativeRoutingCIDR: "#{ bootstrap_pod_network.split(',')[1] }#"
ipv6:
enabled: true
#% endif %#
k8sServiceHost: 127.0.0.1
k8sServicePort: 7445
kubeProxyReplacement: true
kubeProxyReplacementHealthzBindAddr: 0.0.0.0:10256
l2announcements:
#% if ((bootstrap_bgp.enabled) or (bootstrap_feature_gates.dual_stack_ipv4_first)) %#
enabled: false # https://github.com/cilium/cilium/issues/28985
#% else %#
enabled: true
#% endif %#
loadBalancer:
algorithm: maglev
mode: "#{ bootstrap_loadbalancer_mode | default('dsr', true) }#"
localRedirectPolicy: true
operator:
replicas: 1
rollOutPods: true
rollOutCiliumPods: true
routingMode: native
securityContext:
capabilities:
ciliumAgent:
- CHOWN
- KILL
- NET_ADMIN
- NET_RAW
- IPC_LOCK
- SYS_ADMIN
- SYS_RESOURCE
- DAC_OVERRIDE
- FOWNER
- SETGID
- SETUID
cleanCiliumState:
- NET_ADMIN
- SYS_ADMIN
- SYS_RESOURCE

View File

@@ -1,76 +0,0 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: cilium
spec:
interval: 30m
chart:
spec:
chart: cilium
version: 1.16.3
sourceRef:
kind: HelmRepository
name: cilium
namespace: flux-system
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
retries: 3
valuesFrom:
- kind: ConfigMap
name: cilium-helm-values
values:
#% if bootstrap_cloudflare.enabled %#
hubble:
enabled: true
metrics:
enabled:
- dns:query
- drop
- tcp
- flow
- port-distribution
- icmp
- http
serviceMonitor:
enabled: true
dashboards:
enabled: true
annotations:
grafana_folder: Cilium
relay:
enabled: true
rollOutPods: true
prometheus:
serviceMonitor:
enabled: true
ui:
enabled: true
rollOutPods: true
ingress:
enabled: true
className: internal
hosts: ["hubble.${SECRET_DOMAIN}"]
#% endif %#
operator:
prometheus:
enabled: true
serviceMonitor:
enabled: true
dashboards:
enabled: true
annotations:
grafana_folder: Cilium
prometheus:
enabled: true
serviceMonitor:
enabled: true
trustCRDsExist: true
dashboards:
enabled: true
annotations:
grafana_folder: Cilium

View File

@@ -1,11 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
configMapGenerator:
- name: cilium-helm-values
files:
- values.yaml=./helm-values.yaml
configurations:
- kustomizeconfig.yaml

View File

@@ -1,7 +0,0 @@
---
nameReference:
- kind: ConfigMap
version: v1
fieldSpecs:
- path: spec/valuesFrom/name
kind: HelmRelease

View File

@@ -1,26 +0,0 @@
#% if ((not bootstrap_bgp.enabled) and (not bootstrap_feature_gates.dual_stack_ipv4_first)) %#
---
# https://docs.cilium.io/en/latest/network/l2-announcements
apiVersion: cilium.io/v2alpha1
kind: CiliumL2AnnouncementPolicy
metadata:
name: l2-policy
spec:
loadBalancerIPs: true
# NOTE: interfaces might need to be set if you have more than one active NIC on your hosts
# interfaces:
# - ^eno[0-9]+
# - ^eth[0-9]+
nodeSelector:
matchLabels:
kubernetes.io/os: linux
---
apiVersion: cilium.io/v2alpha1
kind: CiliumLoadBalancerIPPool
metadata:
name: l2-pool
spec:
allowFirstLastIPs: "Yes"
blocks:
- cidr: "#{ bootstrap_node_network }#"
#% endif %#

View File

@@ -1,41 +0,0 @@
#% if bootstrap_bgp.enabled %#
---
# https://docs.cilium.io/en/latest/network/bgp-control-plane/
apiVersion: cilium.io/v2alpha1
kind: CiliumBGPPeeringPolicy
metadata:
name: l3-policy
spec:
nodeSelector:
matchLabels:
kubernetes.io/os: linux
virtualRouters:
- localASN: #{ bootstrap_bgp.local_asn }#
neighbors:
#% if bootstrap_bgp.peers %#
#% for item in bootstrap_bgp.peers %#
- peerAddress: "#{ item }#/32"
peerASN: #{ bootstrap_bgp.peer_asn }#
peerPort: #{ bootstrap_bgp.peer_port | default(179, true) }#
#% endfor %#
#% else %#
#% if bootstrap_node_default_gateway %#
- peerAddress: "#{ bootstrap_node_default_gateway }#/32"
#% else %#
- peerAddress: "#{ bootstrap_node_network | nthhost(1) }#/32"
#% endif %#
peerASN: #{ bootstrap_bgp.peer_asn }#
#% endif %#
serviceSelector:
matchExpressions:
- {key: somekey, operator: NotIn, values: ['never-used-value']}
---
apiVersion: cilium.io/v2alpha1
kind: CiliumLoadBalancerIPPool
metadata:
name: l3-pool
spec:
allowFirstLastIPs: "Yes"
blocks:
- cidr: "#{ bootstrap_bgp.advertised_network }#"
#% endif %#

View File

@@ -1,11 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
#% if bootstrap_bgp.enabled %#
- ./cilium-l3.yaml
#% elif not bootstrap_feature_gates.dual_stack_ipv4_first %#
- ./cilium-l2.yaml
#% else %#
[]
#% endif %#

View File

@@ -1,40 +0,0 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app cilium
namespace: flux-system
spec:
targetNamespace: kube-system
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/kube-system/cilium/app
prune: false # never should be deleted
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: true
interval: 30m
timeout: 5m
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app cilium-config
namespace: flux-system
spec:
targetNamespace: kube-system
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn:
- name: cilium
path: ./kubernetes/apps/kube-system/cilium/config
prune: false # never should be deleted
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: false
interval: 30m
timeout: 5m

View File

@@ -1,50 +0,0 @@
---
fullnameOverride: coredns
k8sAppLabelOverride: kube-dns
serviceAccount:
create: true
service:
name: kube-dns
clusterIP: "#{ bootstrap_service_network | nthhost(10) }#"
servers:
- zones:
- zone: .
scheme: dns://
use_tcp: true
port: 53
plugins:
- name: errors
- name: health
configBlock: |-
lameduck 5s
- name: ready
- name: log
configBlock: |-
class error
- name: prometheus
parameters: 0.0.0.0:9153
- name: kubernetes
parameters: cluster.local in-addr.arpa ip6.arpa
configBlock: |-
pods insecure
fallthrough in-addr.arpa ip6.arpa
- name: forward
parameters: . /etc/resolv.conf
- name: cache
parameters: 30
- name: loop
- name: reload
- name: loadbalance
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/control-plane
operator: Exists
tolerations:
- key: CriticalAddonsOnly
operator: Exists
- key: node-role.kubernetes.io/control-plane
operator: Exists
effect: NoSchedule

View File

@@ -1,26 +0,0 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: coredns
spec:
interval: 30m
chart:
spec:
chart: coredns
version: 1.36.0
sourceRef:
kind: HelmRepository
name: coredns
namespace: flux-system
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
strategy: rollback
retries: 3
valuesFrom:
- kind: ConfigMap
name: coredns-helm-values

View File

@@ -1,11 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
configMapGenerator:
- name: coredns-helm-values
files:
- values.yaml=./helm-values.yaml
configurations:
- kustomizeconfig.yaml

View File

@@ -1,7 +0,0 @@
---
nameReference:
- kind: ConfigMap
version: v1
fieldSpecs:
- path: spec/valuesFrom/name
kind: HelmRelease

View File

@@ -1,3 +0,0 @@
---
providerRegex: ^(#{ (bootstrap_node_inventory | map(attribute='name') | join('|')) }#)$
bypassDnsResolution: true

View File

@@ -1,30 +0,0 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: kubelet-csr-approver
spec:
interval: 30m
chart:
spec:
chart: kubelet-csr-approver
version: 1.2.3
sourceRef:
kind: HelmRepository
name: postfinance
namespace: flux-system
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
retries: 3
valuesFrom:
- kind: ConfigMap
name: kubelet-csr-approver-helm-values
values:
metrics:
enable: true
serviceMonitor:
enabled: true

View File

@@ -1,11 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
configMapGenerator:
- name: kubelet-csr-approver-helm-values
files:
- values.yaml=./helm-values.yaml
configurations:
- kustomizeconfig.yaml

View File

@@ -1,7 +0,0 @@
---
nameReference:
- kind: ConfigMap
version: v1
fieldSpecs:
- path: spec/valuesFrom/name
kind: HelmRelease

View File

@@ -1,19 +0,0 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app kubelet-csr-approver
namespace: flux-system
spec:
targetNamespace: kube-system
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/kube-system/kubelet-csr-approver/app
prune: false # never should be deleted
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: false
interval: 30m
timeout: 5m

View File

@@ -1,31 +0,0 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: metrics-server
spec:
interval: 30m
chart:
spec:
chart: metrics-server
version: 3.12.2
sourceRef:
kind: HelmRepository
name: metrics-server
namespace: flux-system
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
retries: 3
values:
args:
- --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
- --kubelet-use-node-status-port
- --metric-resolution=15s
metrics:
enabled: true
serviceMonitor:
enabled: true

View File

@@ -1,29 +0,0 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: reloader
spec:
interval: 30m
chart:
spec:
chart: reloader
version: 1.1.0
sourceRef:
kind: HelmRepository
name: stakater
namespace: flux-system
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
retries: 3
values:
fullnameOverride: reloader
reloader:
readOnlyRootFileSystem: true
podMonitor:
enabled: true
namespace: "{{ .Release.Namespace }}"

View File

@@ -1,7 +0,0 @@
---
spegel:
containerdSock: /run/containerd/containerd.sock
containerdRegistryConfigPath: /etc/cri/conf.d/hosts
service:
registry:
hostPort: 29999

View File

@@ -1,30 +0,0 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: spegel
spec:
interval: 30m
chart:
spec:
chart: spegel
version: v0.0.27
sourceRef:
kind: HelmRepository
name: spegel
namespace: flux-system
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
retries: 3
valuesFrom:
- kind: ConfigMap
name: spegel-helm-values
values:
grafanaDashboard:
enabled: true
serviceMonitor:
enabled: true

View File

@@ -1,11 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml
configMapGenerator:
- name: spegel-helm-values
files:
- values.yaml=./helm-values.yaml
configurations:
- kustomizeconfig.yaml

View File

@@ -1,7 +0,0 @@
---
nameReference:
- kind: ConfigMap
version: v1
fieldSpecs:
- path: spec/valuesFrom/name
kind: HelmRelease

View File

@@ -1 +0,0 @@
main = lambda data: data.get("bootstrap_cloudflare", {}).get("enabled", False) == True

View File

@@ -1,10 +0,0 @@
---
originRequest:
originServerName: "external.${SECRET_DOMAIN}"
ingress:
- hostname: "${SECRET_DOMAIN}"
service: https://ingress-nginx-external-controller.network.svc.cluster.local:443
- hostname: "*.${SECRET_DOMAIN}"
service: https://ingress-nginx-external-controller.network.svc.cluster.local:443
- service: http_status:404

View File

@@ -1,13 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./dnsendpoint.yaml
- ./secret.sops.yaml
- ./helmrelease.yaml
configMapGenerator:
- name: cloudflared-configmap
files:
- ./configs/config.yaml
generatorOptions:
disableNameSuffixHash: true

View File

@@ -1,13 +0,0 @@
---
apiVersion: v1
kind: Secret
metadata:
name: cloudflared-secret
stringData:
TUNNEL_ID: "#{ bootstrap_cloudflare.tunnel.id }#"
credentials.json: |
{
"AccountTag": "#{ bootstrap_cloudflare.tunnel.account_id }#",
"TunnelSecret": "#{ bootstrap_cloudflare.tunnel.secret }#",
"TunnelID": "#{ bootstrap_cloudflare.tunnel.id }#"
}

View File

@@ -1,21 +0,0 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app cloudflared
namespace: flux-system
spec:
targetNamespace: network
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn:
- name: external-dns
path: ./kubernetes/apps/network/cloudflared/app
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: false
interval: 30m
timeout: 5m

View File

@@ -1,19 +0,0 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app echo-server
namespace: flux-system
spec:
targetNamespace: network
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/network/echo-server/app
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: false
interval: 30m
timeout: 5m

View File

@@ -1,48 +0,0 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: &app external-dns
spec:
interval: 30m
chart:
spec:
chart: external-dns
version: 1.15.0
sourceRef:
kind: HelmRepository
name: external-dns
namespace: flux-system
install:
crds: CreateReplace
remediation:
retries: 3
upgrade:
cleanupOnFail: true
crds: CreateReplace
remediation:
strategy: rollback
retries: 3
values:
fullnameOverride: *app
provider: cloudflare
env:
- name: CF_API_TOKEN
valueFrom:
secretKeyRef:
name: external-dns-secret
key: api-token
extraArgs:
- --ingress-class=external
- --cloudflare-proxied
- --crd-source-apiversion=externaldns.k8s.io/v1alpha1
- --crd-source-kind=DNSEndpoint
policy: sync
sources: ["crd", "ingress"]
txtPrefix: k8s.
txtOwnerId: default
domainFilters: ["${SECRET_DOMAIN}"]
serviceMonitor:
enabled: true
podAnnotations:
secret.reloader.stakater.com/reload: external-dns-secret

View File

@@ -1,7 +0,0 @@
---
apiVersion: v1
kind: Secret
metadata:
name: external-dns-secret
stringData:
api-token: "#{ bootstrap_cloudflare.token }#"

View File

@@ -1,19 +0,0 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app external-dns
namespace: flux-system
spec:
targetNamespace: network
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/network/external-dns/app
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: true
interval: 30m
timeout: 5m

View File

@@ -1,8 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./staging.yaml
#% if bootstrap_cloudflare.acme.production %#
- ./production.yaml
#% endif %#

View File

@@ -1,14 +0,0 @@
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: "${SECRET_DOMAIN/./-}-staging"
spec:
secretName: "${SECRET_DOMAIN/./-}-staging-tls"
issuerRef:
name: letsencrypt-staging
kind: ClusterIssuer
commonName: "${SECRET_DOMAIN}"
dnsNames:
- "${SECRET_DOMAIN}"
- "*.${SECRET_DOMAIN}"

View File

@@ -1,83 +0,0 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: ingress-nginx-external
spec:
interval: 30m
chart:
spec:
chart: ingress-nginx
version: 4.11.2
sourceRef:
kind: HelmRepository
name: ingress-nginx
namespace: flux-system
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
retries: 3
dependsOn:
- name: cloudflared
namespace: network
values:
fullnameOverride: ingress-nginx-external
controller:
service:
annotations:
external-dns.alpha.kubernetes.io/hostname: "external.${SECRET_DOMAIN}"
lbipam.cilium.io/ips: "#{ bootstrap_cloudflare.tunnel.ingress_vip }#"
#% if bgp.enabled %#
externalTrafficPolicy: Local
#% else %#
externalTrafficPolicy: Cluster
#% endif %#
ingressClassResource:
name: external
default: false
controllerValue: k8s.io/external
admissionWebhooks:
objectSelector:
matchExpressions:
- key: ingress-class
operator: In
values: ["external"]
config:
client-body-buffer-size: 100M
client-body-timeout: 120
client-header-timeout: 120
enable-brotli: "true"
enable-real-ip: "true"
hsts-max-age: 31449600
keep-alive-requests: 10000
keep-alive: 120
log-format-escape-json: "true"
log-format-upstream: >
{"time": "$time_iso8601", "remote_addr": "$proxy_protocol_addr", "x_forwarded_for": "$proxy_add_x_forwarded_for",
"request_id": "$req_id", "remote_user": "$remote_user", "bytes_sent": $bytes_sent, "request_time": $request_time,
"status": $status, "vhost": "$host", "request_proto": "$server_protocol", "path": "$uri", "request_query": "$args",
"request_length": $request_length, "duration": $request_time, "method": "$request_method", "http_referrer": "$http_referer",
"http_user_agent": "$http_user_agent"}
proxy-body-size: 0
proxy-buffer-size: 16k
ssl-protocols: TLSv1.3 TLSv1.2
metrics:
enabled: true
serviceMonitor:
enabled: true
namespaceSelector:
any: true
extraArgs:
#% if bootstrap_cloudflare.acme.production %#
default-ssl-certificate: "network/${SECRET_DOMAIN/./-}-production-tls"
#% else %#
default-ssl-certificate: "network/${SECRET_DOMAIN/./-}-staging-tls"
#% endif %#
resources:
requests:
cpu: 100m
limits:
memory: 500Mi

View File

@@ -1,5 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml

View File

@@ -1,80 +0,0 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: ingress-nginx-internal
namespace: network
spec:
interval: 30m
chart:
spec:
chart: ingress-nginx
version: 4.11.2
sourceRef:
kind: HelmRepository
name: ingress-nginx
namespace: flux-system
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
retries: 3
values:
fullnameOverride: ingress-nginx-internal
controller:
service:
annotations:
lbipam.cilium.io/ips: "#{ bootstrap_cloudflare.ingress_vip }#"
#% if bgp.enabled %#
externalTrafficPolicy: Local
#% else %#
externalTrafficPolicy: Cluster
#% endif %#
ingressClassResource:
name: internal
default: true
controllerValue: k8s.io/internal
admissionWebhooks:
objectSelector:
matchExpressions:
- key: ingress-class
operator: In
values: ["internal"]
config:
client-body-buffer-size: 100M
client-body-timeout: 120
client-header-timeout: 120
enable-brotli: "true"
enable-real-ip: "true"
hsts-max-age: 31449600
keep-alive-requests: 10000
keep-alive: 120
log-format-escape-json: "true"
log-format-upstream: >
{"time": "$time_iso8601", "remote_addr": "$proxy_protocol_addr", "x_forwarded_for": "$proxy_add_x_forwarded_for",
"request_id": "$req_id", "remote_user": "$remote_user", "bytes_sent": $bytes_sent, "request_time": $request_time,
"status": $status, "vhost": "$host", "request_proto": "$server_protocol", "path": "$uri", "request_query": "$args",
"request_length": $request_length, "duration": $request_time, "method": "$request_method", "http_referrer": "$http_referer",
"http_user_agent": "$http_user_agent"}
proxy-body-size: 0
proxy-buffer-size: 16k
ssl-protocols: TLSv1.3 TLSv1.2
metrics:
enabled: true
serviceMonitor:
enabled: true
namespaceSelector:
any: true
extraArgs:
#% if bootstrap_cloudflare.acme.production %#
default-ssl-certificate: "network/${SECRET_DOMAIN/./-}-production-tls"
#% else %#
default-ssl-certificate: "network/${SECRET_DOMAIN/./-}-staging-tls"
#% endif %#
resources:
requests:
cpu: 100m
limits:
memory: 500Mi

View File

@@ -1,5 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml

View File

@@ -1,63 +0,0 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app ingress-nginx-certificates
namespace: flux-system
spec:
targetNamespace: network
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn:
- name: cert-manager-issuers
path: ./kubernetes/apps/network/ingress-nginx/certificates
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: true
interval: 30m
timeout: 5m
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app ingress-nginx-internal
namespace: flux-system
spec:
targetNamespace: network
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn:
- name: ingress-nginx-certificates
path: ./kubernetes/apps/network/ingress-nginx/internal
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: false
interval: 30m
timeout: 5m
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app ingress-nginx-external
namespace: flux-system
spec:
targetNamespace: network
commonMetadata:
labels:
app.kubernetes.io/name: *app
dependsOn:
- name: ingress-nginx-certificates
path: ./kubernetes/apps/network/ingress-nginx/external
prune: true
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: false
interval: 30m
timeout: 5m

View File

@@ -1,37 +0,0 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: k8s-gateway
spec:
interval: 30m
chart:
spec:
chart: k8s-gateway
version: 2.4.0
sourceRef:
kind: HelmRepository
name: k8s-gateway
namespace: flux-system
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
retries: 3
values:
fullnameOverride: k8s-gateway
domain: "${SECRET_DOMAIN}"
ttl: 1
service:
type: LoadBalancer
port: 53
annotations:
lbipam.cilium.io/ips: "#{ bootstrap_cloudflare.gateway_vip }#"
#% if bgp.enabled %#
externalTrafficPolicy: Local
#% else %#
externalTrafficPolicy: Cluster
#% endif %#
watchedResources: ["Ingress", "Service"]

View File

@@ -1,5 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml

View File

@@ -1,10 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./namespace.yaml
- ./cloudflared/ks.yaml
- ./echo-server/ks.yaml
- ./external-dns/ks.yaml
- ./ingress-nginx/ks.yaml
- ./k8s-gateway/ks.yaml

View File

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

View File

@@ -1,22 +0,0 @@
---
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
name: prometheus-operator-crds
spec:
interval: 30m
chart:
spec:
chart: prometheus-operator-crds
version: 15.0.0
sourceRef:
kind: HelmRepository
name: prometheus-community
namespace: flux-system
install:
remediation:
retries: 3
upgrade:
cleanupOnFail: true
remediation:
retries: 3

View File

@@ -1,5 +0,0 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./helmrelease.yaml

View File

@@ -1,19 +0,0 @@
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: &app prometheus-operator-crds
namespace: flux-system
spec:
targetNamespace: observability
commonMetadata:
labels:
app.kubernetes.io/name: *app
path: ./kubernetes/apps/observability/prometheus-operator-crds/app
prune: false # never should be deleted
sourceRef:
kind: GitRepository
name: home-kubernetes
wait: false
interval: 30m
timeout: 5m

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