232 Commits

Author SHA1 Message Date
de171da65d Update Helm release argo-workflows to v0.46.1
All checks were successful
renovate/stability-days Updates have met minimum release age requirement
lint-test-helm / helm-lint (pull_request) Successful in 15s
2025-12-03 22:43:43 +00:00
26f6d518f3 Update rmcrackan/libation Docker tag to v12.8.0 (#2219)
Some checks failed
render-manifests-push / render-manifests-push (push) Failing after 14s
lint-test-helm / helm-lint (push) Successful in 8s
renovate / renovate (push) Successful in 2m16s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [rmcrackan/libation](https://github.com/rmcrackan/Libation) | minor | `12.7.5` -> `12.8.0` |

---

### Release Notes

<details>
<summary>rmcrackan/Libation (rmcrackan/libation)</summary>

### [`v12.8.0`](https://github.com/rmcrackan/Libation/releases/tag/v12.8.0): Libation 12.8

[Compare Source](https://github.com/rmcrackan/Libation/compare/v12.7.5...v12.8.0)

- New feature: Add dark mode to Classic
- New setting: Allow users to choose whether Libation imports Audible Plus titles
- New feature [#&#8203;1436](https://github.com/rmcrackan/Libation/issues/1436) : Add "Download split by chapters" context menu item
- Bug fix [#&#8203;1473](https://github.com/rmcrackan/Libation/issues/1473) : Fix LibationCli reusing content licenses
- Bug fix [#&#8203;1470](https://github.com/rmcrackan/Libation/issues/1470) : Fix PDF validation error

Thanks to [@&#8203;Mbucari](https://github.com/Mbucari)

[Libation](https://github.com/rmcrackan/Libation) is a free, open source audible library manager. Decrypt, backup, organize, and search your audible library

I intend to keep Libation free and open source, but if you want to [leave a tip](https://paypal.me/mcrackan?locale.x=en_us), who am I to argue?

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41LjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi41LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImltYWdlIl19-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/2219
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2025-12-03 22:41:59 +00:00
b56d55ae15 Migrate Renovate config (#2224)
All checks were successful
renovate / renovate (push) Successful in 1m42s
The Renovate config in this repository needs migrating. Typically this is because one or more configuration options you are using have been renamed.

  You don't need to merge this PR right away, because Renovate will continue to migrate these fields internally each time it runs. But later some of these fields may be fully deprecated and the migrations removed. So it's a good idea to merge this migration PR soon.

🔕 **Ignore**: Close this PR and you won't be reminded about config migration again, but one day your current config may no longer be valid.

 Got questions? Does something look wrong to you? Please don't hesitate to [request help here](https://github.com/renovatebot/renovate/discussions).

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).

Reviewed-on: #2224
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2025-12-03 22:39:12 +00:00
9506dec535 separete render for each type
All checks were successful
renovate / renovate (push) Successful in 1m58s
2025-12-03 16:33:38 -06:00
a016d1b194 update message
All checks were successful
renovate / renovate (push) Successful in 3m45s
2025-12-03 16:00:48 -06:00
0456bc146e update message 2025-12-03 16:00:48 -06:00
99beb77bbd Update ghcr.io/autobrr/qui Docker tag to v1.8.1 (#2211)
Some checks failed
lint-test-helm / helm-lint (push) Successful in 15s
render-manifests / render-manifests (push) Failing after 24s
renovate / renovate (push) Successful in 6m14s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/autobrr/qui](https://github.com/autobrr/qui) | minor | `v1.7.0` -> `v1.8.1` |

---

### Release Notes

<details>
<summary>autobrr/qui (ghcr.io/autobrr/qui)</summary>

### [`v1.8.1`](https://github.com/autobrr/qui/releases/tag/v1.8.1)

[Compare Source](https://github.com/autobrr/qui/compare/v1.8.0...v1.8.1)

#### Changelog

##### Bug Fixes

- [`61c87e1`](61c87e1cac): fix(torznab): use detached context for indexer tests ([#&#8203;659](https://github.com/autobrr/qui/issues/659)) ([@&#8203;s0up4200](https://github.com/s0up4200))

**Full Changelog**: <https://github.com/autobrr/qui/compare/v1.8.0...v1.8.1>

#### Docker images

- `docker pull ghcr.io/autobrr/qui:v1.8.1`
- `docker pull ghcr.io/autobrr/qui:latest`

#### What to do next?

- Join our [Discord server](https://discord.autobrr.com/qui)

Thank you for using qui!

### [`v1.8.0`](https://github.com/autobrr/qui/releases/tag/v1.8.0)

[Compare Source](https://github.com/autobrr/qui/compare/v1.7.0...v1.8.0)

#### Changelog

##### New Features

- [`6903812`](6903812f17): feat(crossseed): batch torrent file lookups end-to-end ([#&#8203;625](https://github.com/autobrr/qui/issues/625)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`336ce48`](336ce480b8): feat(crossseed): persist seeded search settings ([#&#8203;618](https://github.com/autobrr/qui/issues/618)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`7b0b292`](7b0b292365): feat(docker): add curl to Dockerfiles ([#&#8203;570](https://github.com/autobrr/qui/issues/570)) ([@&#8203;onedr0p](https://github.com/onedr0p))
- [`91e1677`](91e1677116): feat(filters): default-hide empty status/category/tag groups ([#&#8203;581](https://github.com/autobrr/qui/issues/581)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`f07bb8d`](f07bb8d04d): feat(header): add missing links to header burger menu ([#&#8203;624](https://github.com/autobrr/qui/issues/624)) ([@&#8203;nuxencs](https://github.com/nuxencs))
- [`ee4c16b`](ee4c16b266): feat(instances): allow disabling qbit instances ([#&#8203;582](https://github.com/autobrr/qui/issues/582)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`477db14`](477db14618): feat(search): column filters ([#&#8203;633](https://github.com/autobrr/qui/issues/633)) ([@&#8203;nuxencs](https://github.com/nuxencs))
- [`cd6db45`](cd6db45004): feat(themes): add basic variation support ([#&#8203;569](https://github.com/autobrr/qui/issues/569)) ([@&#8203;jabloink](https://github.com/jabloink))
- [`979a0d4`](979a0d4d74): feat(torrents): add clear filters action for empty filtered state ([#&#8203;627](https://github.com/autobrr/qui/issues/627)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`e06acb7`](e06acb7648): feat(torrents): add cross-seeding and search ([#&#8203;553](https://github.com/autobrr/qui/issues/553)) ([@&#8203;KyleSanderson](https://github.com/KyleSanderson))
- [`95cef23`](95cef23327): feat(torrents): add reannounce monitor ([#&#8203;606](https://github.com/autobrr/qui/issues/606)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`098fdb0`](098fdb06a9): feat(torrents): add rename functionality in TorrentDetailsPanel ([#&#8203;590](https://github.com/autobrr/qui/issues/590)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`6e8fdbd`](6e8fdbd2b8): feat(torrents): implement drag-and-drop file upload to add torrents ([#&#8203;568](https://github.com/autobrr/qui/issues/568)) ([@&#8203;dthinhle](https://github.com/dthinhle))
- [`9240545`](92405457da): feat(ui): add dense view mode for compact table display ([#&#8203;643](https://github.com/autobrr/qui/issues/643)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`77fad15`](77fad1532f): feat(ui): improve torrent details panel file tree and rename UX ([#&#8203;650](https://github.com/autobrr/qui/issues/650)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`8b1e70e`](8b1e70e050): feat(web): Use original qBittorrent status names ([#&#8203;595](https://github.com/autobrr/qui/issues/595)) ([@&#8203;FibreTTP](https://github.com/FibreTTP))
- [`01dd553`](01dd553eaa): feat(web): show listening port in connectable status tooltip ([#&#8203;635](https://github.com/autobrr/qui/issues/635)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`3140739`](3140739c0e): feat: make tracker icon column sortable ([#&#8203;513](https://github.com/autobrr/qui/issues/513)) ([@&#8203;s0up4200](https://github.com/s0up4200))

##### Bug Fixes

- [`240b40d`](240b40df39): fix(auth): avoid logout on license activation errors ([#&#8203;602](https://github.com/autobrr/qui/issues/602)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`7185408`](7185408486): fix(backups): do not persist ZIPs to disk ([#&#8203;632](https://github.com/autobrr/qui/issues/632)) ([@&#8203;KyleSanderson](https://github.com/KyleSanderson))
- [`de0e00a`](de0e00a6ed): fix(content): use Hints for detection ([#&#8203;621](https://github.com/autobrr/qui/issues/621)) ([@&#8203;KyleSanderson](https://github.com/KyleSanderson))
- [`5f016a8`](5f016a8452): fix(cross): performance improvements ([#&#8203;629](https://github.com/autobrr/qui/issues/629)) ([@&#8203;KyleSanderson](https://github.com/KyleSanderson))
- [`82c74ba`](82c74ba576): fix(crossseed): flip deduplication to maps ([#&#8203;622](https://github.com/autobrr/qui/issues/622)) ([@&#8203;KyleSanderson](https://github.com/KyleSanderson))
- [`b78a079`](b78a079046): fix(crossseed): inherit TMM state from matched torrent ([#&#8203;654](https://github.com/autobrr/qui/issues/654)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`2438fc6`](2438fc6c4a): fix(crossseed): process full RSS feeds ([#&#8203;615](https://github.com/autobrr/qui/issues/615)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`6f57090`](6f5709090c): fix(database): do not release mutex on tx err ([#&#8203;571](https://github.com/autobrr/qui/issues/571)) ([@&#8203;KyleSanderson](https://github.com/KyleSanderson))
- [`74509d4`](74509d4e06): fix(incognito): prevent categories leaking ([#&#8203;592](https://github.com/autobrr/qui/issues/592)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`f08eff2`](f08eff2789): fix(instances): support empty username for localhost bypass ([#&#8203;575](https://github.com/autobrr/qui/issues/575)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`cd3caaf`](cd3caaf53c): fix(license): cap 7d offline grace, ignore transient errors ([#&#8203;617](https://github.com/autobrr/qui/issues/617)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`59c747b`](59c747b426): fix(reannounce): validate number fields and show min hints ([#&#8203;613](https://github.com/autobrr/qui/issues/613)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`f6bd1e6`](f6bd1e658b): fix(themes): correct Nightwalker description from purple to blue ([#&#8203;648](https://github.com/autobrr/qui/issues/648)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`2b641c5`](2b641c59df): fix(torznab): filter Prowlarr autodiscovery to enabled torrent indexers ([#&#8203;638](https://github.com/autobrr/qui/issues/638)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`1995783`](19957834b0): fix(ui): improve cross-seed mobile responsiveness ([#&#8203;647](https://github.com/autobrr/qui/issues/647)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`b83aebe`](b83aebe98f): fix(web): align CrossSeedDialog indexers with search flows ([#&#8203;619](https://github.com/autobrr/qui/issues/619)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`3b60821`](3b60821476): fix(web): indent subcategories in SetCategoryDialog ([#&#8203;636](https://github.com/autobrr/qui/issues/636)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`82850cd`](82850cd2b9): fix: glob pattern formatting in tooltip content ([#&#8203;579](https://github.com/autobrr/qui/issues/579)) ([@&#8203;onedr0p](https://github.com/onedr0p))

##### Other Changes

- [`c20bc0a`](c20bc0a235): build(vite): enable default minification ([#&#8203;574](https://github.com/autobrr/qui/issues/574)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`ceac8ca`](ceac8cafbb): chore(ci): upgrade Claude Code workflow to Opus 4.5 ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`9d6c10e`](9d6c10e780): chore(deps): bump actions/checkout from 5 to 6 in the github group ([#&#8203;628](https://github.com/autobrr/qui/issues/628)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`f5704de`](f5704de372): chore(deps): bump golang.org/x/crypto from 0.43.0 to 0.45.0 ([#&#8203;611](https://github.com/autobrr/qui/issues/611)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`0aae9aa`](0aae9aa5d6): chore(deps): bump the golang group with 3 updates ([#&#8203;546](https://github.com/autobrr/qui/issues/546)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])
- [`0d97087`](0d97087436): chore(themes): add crypto instructions in-app ([#&#8203;620](https://github.com/autobrr/qui/issues/620)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`e778865`](e778865299): docs(funding): add donation methods and crypto addresses ([#&#8203;583](https://github.com/autobrr/qui/issues/583)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`563645c`](563645c815): docs: update qui image ([#&#8203;655](https://github.com/autobrr/qui/issues/655)) ([@&#8203;s0up4200](https://github.com/s0up4200))

**Full Changelog**: <https://github.com/autobrr/qui/compare/v1.7.0...v1.8.0>

#### Docker images

- `docker pull ghcr.io/autobrr/qui:v1.8.0`
- `docker pull ghcr.io/autobrr/qui:latest`

#### What to do next?

- Join our [Discord server](https://discord.autobrr.com/qui)

Thank you for using qui!

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41LjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi41LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImltYWdlIl19-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/2211
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2025-12-03 21:57:04 +00:00
427df1e201 change config
All checks were successful
renovate / renovate (push) Successful in 2m12s
2025-12-03 15:42:27 -06:00
44fb774fef remove condition
All checks were successful
renovate / renovate (push) Successful in 2m1s
2025-12-03 15:25:09 -06:00
f9f27aac12 change commit pattern 2025-12-03 15:25:09 -06:00
8ec24e013e Update harbor.alexlebens.net/images/site-documentation Docker tag to v0.0.4 (#2200)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 10s
render-manifests / render-manifests (push) Successful in 33s
renovate / renovate (push) Successful in 2m21s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [harbor.alexlebens.net/images/site-documentation](https://gitea.alexlebens.dev/alexlebens/site-documentation) | patch | `0.0.3` -> `0.0.4` |

---

### Release Notes

<details>
<summary>alexlebens/site-documentation (harbor.alexlebens.net/images/site-documentation)</summary>

### [`v0.0.4`](https://gitea.alexlebens.dev/alexlebens/site-documentation/compare/0.0.3...0.0.4)

[Compare Source](https://gitea.alexlebens.dev/alexlebens/site-documentation/compare/0.0.3...0.0.4)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41LjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi41LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImF1dG9tZXJnZSIsImltYWdlIl19-->

Reviewed-on: #2200
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2025-12-03 21:18:30 +00:00
7798bf19dd change condition
Some checks failed
renovate / renovate (push) Has been cancelled
2025-12-03 15:17:38 -06:00
5525b35055 fix name 2025-12-03 15:17:38 -06:00
68de6d6fcf Update Helm release rook-ceph-cluster to v1.18.8 (#2205)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 10s
render-manifests / render-manifests (push) Successful in 27s
renovate / renovate (push) Successful in 1m50s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [rook-ceph-cluster](https://github.com/rook/rook) | patch | `v1.18.7` -> `v1.18.8` |

---

### Release Notes

<details>
<summary>rook/rook (rook-ceph-cluster)</summary>

### [`v1.18.8`](https://github.com/rook/rook/releases/tag/v1.18.8)

[Compare Source](https://github.com/rook/rook/compare/v1.18.7...v1.18.8)

### Improvements

Rook v1.18.8 is a patch release limited in scope and focusing on feature additions and bug fixes to the Ceph operator.

- core: Add support for ceph tentacle ([#&#8203;16501](https://github.com/rook/rook/issues/16501), [@&#8203;subhamkrai](https://github.com/subhamkrai))
- helm: Include exporter options in CephCluster ([#&#8203;16745](https://github.com/rook/rook/issues/16745), [@&#8203;michaeltchapman](https://github.com/michaeltchapman))
- toolbox: Merge rook-config-override ConfigMap into ceph.conf ([#&#8203;16731](https://github.com/rook/rook/issues/16731), [@&#8203;mheler](https://github.com/mheler))
- csi: ControllerPlugin/NodePlugin resource settings were reversed ([#&#8203;16735](https://github.com/rook/rook/issues/16735), [@&#8203;swills](https://github.com/swills))
- osd: Allow snaptrimp and snaptrip\_wait PGs by the PDBs during node drains ([#&#8203;16713](https://github.com/rook/rook/issues/16713), [@&#8203;sp98](https://github.com/sp98))
- helm: Fix default pathType for HTTPRoute in the rook-ceph-cluster chart ([#&#8203;16724](https://github.com/rook/rook/issues/16724), [@&#8203;fancl20](https://github.com/fancl20))
- pool: Retry if pool status is empty in the rados namespace controller ([#&#8203;16705](https://github.com/rook/rook/issues/16705), [@&#8203;parth-gr](https://github.com/parth-gr))
- namespace: Add retryOnConflict when updating status ([#&#8203;16661](https://github.com/rook/rook/issues/16661), [@&#8203;subhamkrai](https://github.com/subhamkrai))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41LjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi41LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImF1dG9tZXJnZSIsImNoYXJ0Il19-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/2205
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2025-12-03 21:03:00 +00:00
97294a8b56 update auto render
All checks were successful
renovate / renovate (push) Successful in 3m1s
2025-12-03 14:58:32 -06:00
40cd429d33 Update Helm release rook-ceph to v1.18.8 (#2203)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 1m17s
render-manifests / render-manifests (push) Successful in 1m30s
renovate / renovate (push) Successful in 1m53s
2025-12-03 20:02:10 +00:00
f9f7591f0b Update Helm release element-web to v1.4.25 (#2202)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 9s
render-manifests / render-manifests (push) Successful in 24s
renovate / renovate (push) Successful in 4m33s
2025-12-03 18:01:53 +00:00
07a4507dd3 Update searxng/searxng:latest Docker digest to 09dfc12 (#2222)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 10s
render-manifests / render-manifests (push) Successful in 1m19s
renovate / renovate (push) Successful in 3m6s
2025-12-03 17:01:49 +00:00
c8cb11beb0 Update searxng/searxng:latest Docker digest to 74b24c5 (#2221)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 11s
render-manifests / render-manifests (push) Successful in 32s
renovate / renovate (push) Successful in 1m42s
2025-12-03 12:01:58 +00:00
d41bb490fe Update searxng/searxng:latest Docker digest to 6dd0dff (#2220)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 9s
render-manifests / render-manifests (push) Successful in 24s
renovate / renovate (push) Successful in 1m43s
2025-12-03 10:01:27 +00:00
7bf5e8525e Update kube-prometheus-stack Docker tag to v79.11.0 (#2218)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 11s
render-manifests / render-manifests (push) Successful in 26s
renovate / renovate (push) Successful in 1m13s
2025-12-03 06:22:10 +00:00
f18f2e9cdb Update ghcr.io/n8n-io/n8n Docker tag to v1.123.0 (#2215)
Some checks failed
lint-test-helm / helm-lint (push) Successful in 7s
render-manifests / render-manifests (push) Successful in 21s
renovate / renovate (push) Has been cancelled
2025-12-03 06:20:41 +00:00
4bd9cb45db Update ghcr.io/gitroomhq/postiz-app Docker tag to v2.9.0 (#2213)
Some checks failed
render-manifests / render-manifests (push) Has been cancelled
lint-test-helm / helm-lint (push) Has been cancelled
renovate / renovate (push) Has been cancelled
2025-12-03 06:19:50 +00:00
a71fd03dfb Update ghcr.io/advplyr/audiobookshelf Docker tag to v2.31.0 (#2210)
Some checks failed
lint-test-helm / helm-lint (push) Has been cancelled
render-manifests / render-manifests (push) Has been cancelled
renovate / renovate (push) Has been cancelled
2025-12-03 06:19:16 +00:00
858608a3ff Update clidey/whodb Docker tag to v0.81.0 (#2209)
Some checks failed
lint-test-helm / helm-lint (push) Has been cancelled
render-manifests / render-manifests (push) Has been cancelled
renovate / renovate (push) Has been cancelled
2025-12-03 06:19:07 +00:00
157db8f8c0 Update vectorim/element-web Docker tag to v1.12.5 (#2208)
Some checks failed
lint-test-helm / helm-lint (push) Has been cancelled
render-manifests / render-manifests (push) Has been cancelled
renovate / renovate (push) Has been cancelled
2025-12-03 06:18:49 +00:00
b30b57cf28 Update ollama/ollama Docker tag to v0.13.1 (#2206)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 9s
render-manifests / render-manifests (push) Successful in 31s
renovate / renovate (push) Successful in 7m16s
2025-12-03 06:10:14 +00:00
af166a72ee Update harbor.alexlebens.net/images/site-profile Docker tag to v2.1.1 (#2201)
Some checks failed
lint-test-helm / helm-lint (push) Successful in 10s
render-manifests / render-manifests (push) Successful in 40s
renovate / renovate (push) Has been cancelled
2025-12-03 06:08:18 +00:00
8ba9ee874c Update ghcr.io/tailscale/tailscale Docker tag to v1.90.9 (#2199)
Some checks failed
renovate / renovate (push) Has been cancelled
lint-test-docker / docker-lint (push) Successful in 9s
2025-12-03 06:07:51 +00:00
5f68528f73 Update ghcr.io/stuffanthings/qbit_manage Docker tag to v4.6.5 (#2198)
Some checks failed
renovate / renovate (push) Has been cancelled
lint-test-helm / helm-lint (push) Has been cancelled
render-manifests / render-manifests (push) Has been cancelled
2025-12-03 06:07:38 +00:00
8716cf225d Update ghcr.io/open-webui/open-webui Docker tag to v0.6.41 (#2197)
Some checks failed
lint-test-helm / helm-lint (push) Has been cancelled
render-manifests / render-manifests (push) Has been cancelled
renovate / renovate (push) Has been cancelled
2025-12-03 06:07:23 +00:00
ff58fefefd Update ghcr.io/linuxserver/code-server Docker tag to v4.106.3 (#2196)
Some checks failed
lint-test-helm / helm-lint (push) Has been cancelled
render-manifests / render-manifests (push) Has been cancelled
renovate / renovate (push) Has been cancelled
2025-12-03 06:07:04 +00:00
d98ab0cd5e Update ghcr.io/kiwix/kiwix-serve Docker tag to v3.8.1 (#2195)
Some checks failed
lint-test-helm / helm-lint (push) Has been cancelled
render-manifests / render-manifests (push) Has been cancelled
renovate / renovate (push) Has been cancelled
2025-12-03 06:06:52 +00:00
5d62995bdd Update ghcr.io/jellyfin/jellyfin Docker tag to v10.11.4 (#2194)
Some checks failed
lint-test-helm / helm-lint (push) Has been cancelled
render-manifests / render-manifests (push) Has been cancelled
renovate / renovate (push) Has been cancelled
2025-12-03 06:06:36 +00:00
a88ec5426a Update ghcr.io/fuzzygrim/yamtrack Docker tag to v0.24.8 (#2193)
Some checks failed
lint-test-helm / helm-lint (push) Has been cancelled
renovate / renovate (push) Has been cancelled
render-manifests / render-manifests (push) Has been cancelled
2025-12-03 06:06:23 +00:00
8204ef7109 Update ghcr.io/flaresolverr/flaresolverr Docker tag to v3.4.6 (#2192)
Some checks failed
lint-test-helm / helm-lint (push) Has been cancelled
render-manifests / render-manifests (push) Has been cancelled
renovate / renovate (push) Has been cancelled
2025-12-03 06:06:08 +00:00
8bd90bf506 Update cloudflared Docker tag to v1.23.1 (#2191)
Some checks failed
lint-test-helm / helm-lint (push) Successful in 10s
render-manifests / render-manifests (push) Has been cancelled
renovate / renovate (push) Has been cancelled
2025-12-03 06:05:58 +00:00
7c199aa888 update description
All checks were successful
lint-test-helm / helm-lint (push) Successful in 8s
render-manifests / render-manifests (push) Successful in 28s
renovate / renovate (push) Successful in 22m12s
2025-12-02 23:07:52 -06:00
da1fe3f7ed add test
All checks were successful
renovate / renovate (push) Successful in 1m26s
2025-12-02 23:05:58 -06:00
b29a9f2afa delete on delete
Some checks failed
lint-test-helm / helm-lint (push) Successful in 12s
render-manifests / render-manifests (push) Failing after 17s
renovate / renovate (push) Successful in 1m18s
2025-12-02 23:01:35 -06:00
581098e755 fix
All checks were successful
renovate / renovate (push) Successful in 1m30s
2025-12-02 22:45:03 -06:00
6e6917a00b migrate argocd
All checks were successful
lint-test-helm / helm-lint (push) Successful in 14s
render-manifests / render-manifests (push) Successful in 19s
renovate / renovate (push) Successful in 1m16s
2025-12-02 22:41:58 -06:00
78cb9efe8f remove
Some checks failed
lint-test-helm / helm-lint (push) Successful in 19s
renovate / renovate (push) Failing after 1m58s
2025-12-02 22:33:50 -06:00
52f62892c3 skip refresh
All checks were successful
renovate / renovate (push) Successful in 1m7s
2025-12-02 22:29:27 -06:00
80c296fd25 fix
All checks were successful
renovate / renovate (push) Successful in 1m43s
2025-12-02 22:13:45 -06:00
3224562335 remove special handling for kublet signing
All checks were successful
lint-test-helm / helm-lint (push) Successful in 9s
render-manifests / render-manifests (push) Successful in 35s
renovate / renovate (push) Successful in 2m6s
2025-12-02 22:08:06 -06:00
a5138e81d2 use case rendering 2025-12-02 22:07:02 -06:00
d28d80ddbb change trigger 2025-12-02 21:07:45 -06:00
1971a1fb5a proper handling of checks
All checks were successful
renovate / renovate (push) Successful in 1m51s
2025-12-02 20:54:51 -06:00
fd62970d4e Update d3fk/s3cmd:latest Docker digest to 590c427 (#2187)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 12s
render-manifests / render-manifests (push) Successful in 18s
renovate / renovate (push) Successful in 1m37s
2025-12-03 02:49:12 +00:00
6c4df85cc0 add automerge
Some checks failed
renovate / renovate (push) Has been cancelled
2025-12-02 20:47:43 -06:00
489f453c1c fix to account for array
All checks were successful
renovate / renovate (push) Successful in 1m0s
2025-12-02 20:09:31 -06:00
4cfe3a659a fix order 2025-12-02 20:07:15 -06:00
8291048a8f add check
All checks were successful
lint-test-helm / helm-lint (push) Successful in 14s
render-manifests / render-manifests (push) Successful in 41s
renovate / renovate (push) Successful in 1m9s
2025-12-02 20:05:57 -06:00
ea3d2248ea format 2025-12-02 20:02:44 -06:00
9d4d42bf8f fix
All checks were successful
renovate / renovate (push) Successful in 1m7s
2025-12-02 19:59:57 -06:00
4fac355ad0 fix
All checks were successful
renovate / renovate (push) Successful in 1m46s
2025-12-02 19:51:08 -06:00
0fd12c1142 fix
Some checks failed
renovate / renovate (push) Has been cancelled
2025-12-02 19:50:01 -06:00
c07fc7ec1c fix
Some checks failed
renovate / renovate (push) Has been cancelled
2025-12-02 19:48:54 -06:00
8934340cff fix
All checks were successful
renovate / renovate (push) Successful in 49s
2025-12-02 18:42:36 -06:00
07fdff96b7 better logic for directory render
All checks were successful
renovate / renovate (push) Successful in 1m30s
2025-12-02 18:40:29 -06:00
8fe1d857cb better logic for directory render
All checks were successful
renovate / renovate (push) Successful in 1m8s
2025-12-02 18:37:46 -06:00
44a6c9af93 better logic for directory render
All checks were successful
renovate / renovate (push) Successful in 1m23s
2025-12-02 18:35:27 -06:00
661edf809c Update Helm release postgres-cluster to v6.16.1 (#2186)
Some checks failed
lint-test-helm / helm-lint (push) Successful in 10s
render-manifests / render-manifests (push) Failing after 29s
renovate / renovate (push) Has been cancelled
2025-12-03 00:34:45 +00:00
b994d07ff5 better logic for directory render
Some checks failed
renovate / renovate (push) Has been cancelled
2025-12-02 18:33:39 -06:00
5e89422e25 Update Helm release generic-device-plugin to v0.20.3 (#2185)
Some checks failed
lint-test-helm / helm-lint (push) Successful in 8s
render-manifests / render-manifests (push) Failing after 26s
renovate / renovate (push) Has been cancelled
2025-12-03 00:32:38 +00:00
5209813b91 better logic for directory render
Some checks failed
renovate / renovate (push) Has been cancelled
2025-12-02 18:31:01 -06:00
843eb24ebf better logic for directory render
All checks were successful
renovate / renovate (push) Successful in 1m22s
2025-12-02 18:27:04 -06:00
ced6645ac2 better logic for directory render
All checks were successful
renovate / renovate (push) Successful in 1m32s
2025-12-02 18:20:46 -06:00
85112d34ad better logic for directory render
All checks were successful
renovate / renovate (push) Successful in 1m24s
2025-12-02 18:16:59 -06:00
7d38102cff better logic for directory render
All checks were successful
renovate / renovate (push) Successful in 1m15s
2025-12-02 18:10:07 -06:00
2b888046eb update endpoint to check
All checks were successful
renovate / renovate (push) Successful in 1m58s
2025-12-02 18:03:22 -06:00
36df85d865 change to select all on dispatch
All checks were successful
renovate / renovate (push) Successful in 2m1s
2025-12-02 17:52:42 -06:00
6b604db4ca update description
Some checks failed
lint-test-helm / helm-lint (push) Successful in 7s
render-manifests / render-manifests (push) Failing after 22s
renovate / renovate (push) Successful in 1m0s
2025-12-02 17:44:05 -06:00
cc2f89f9fc migrate
All checks were successful
lint-test-helm / helm-lint (push) Successful in 8s
render-manifests / render-manifests (push) Successful in 19s
renovate / renovate (push) Successful in 1m17s
2025-12-02 17:36:59 -06:00
076a9e6bc8 Update ghcr.io/linuxserver/bazarr:1.5.3 Docker digest to ec11e98 (#2183)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 8s
render-manifests / render-manifests (push) Successful in 33s
renovate / renovate (push) Successful in 1m40s
2025-12-02 22:01:57 +00:00
c64894d6e7 Update slskd/slskd Docker tag to v0.24.1 (#2182)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 9s
render-manifests / render-manifests (push) Successful in 36s
renovate / renovate (push) Successful in 1m44s
2025-12-02 20:02:29 +00:00
4ed5745e90 Update searxng/searxng:latest Docker digest to 277cb4b (#2180)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 12s
render-manifests / render-manifests (push) Successful in 26s
renovate / renovate (push) Successful in 2m22s
2025-12-02 11:01:41 +00:00
5dd015875f fix list
All checks were successful
renovate / renovate (push) Successful in 1m28s
2025-12-01 23:18:56 -06:00
4960f15ead quote 2025-12-01 23:16:33 -06:00
9f6469dd73 add repos
All checks were successful
renovate / renovate (push) Successful in 1m28s
2025-12-01 23:14:35 -06:00
4371c53508 update description
Some checks failed
lint-test-helm / helm-lint (push) Successful in 11s
renovate / renovate (push) Successful in 2m16s
render-manifests / render-manifests (push) Failing after 1m4s
2025-12-01 23:11:55 -06:00
10c638bfe8 remove subchart linting
Some checks failed
renovate / renovate (push) Has been cancelled
2025-12-01 23:11:35 -06:00
b9030396c7 update description
Some checks failed
lint-test-helm / helm-lint (push) Successful in 10s
render-manifests / render-manifests (push) Failing after 25s
renovate / renovate (push) Successful in 54s
2025-12-01 23:00:12 -06:00
27ab96a003 filter for path
Some checks failed
renovate / renovate (push) Has been cancelled
2025-12-01 22:59:59 -06:00
b01be4abe4 update description
All checks were successful
lint-test-helm / helm-lint (push) Successful in 8s
render-manifests / render-manifests (push) Successful in 16s
renovate / renovate (push) Successful in 1m10s
2025-12-01 22:56:17 -06:00
5fa6567f2a use event sha 2025-12-01 22:55:57 -06:00
63afc77197 update description
Some checks failed
lint-test-helm / helm-lint (push) Successful in 11s
render-manifests / render-manifests (push) Failing after 20s
renovate / renovate (push) Successful in 56s
2025-12-01 22:48:26 -06:00
b398373485 update to use shorthand
Some checks failed
renovate / renovate (push) Has been cancelled
2025-12-01 22:47:40 -06:00
a87fd358dc Update Helm release speedtest-exporter to v0.1.2 (#2178)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 8s
renovate / renovate (push) Successful in 1m7s
render-manifests / render-manifests (push) Successful in 32s
2025-12-02 04:37:17 +00:00
b0b3106692 add
Some checks failed
lint-test-helm / helm-lint (push) Successful in 11s
render-manifests / render-manifests (push) Successful in 19s
renovate / renovate (push) Has been cancelled
2025-12-01 22:35:00 -06:00
fc530795fe migrate 2025-12-01 22:34:41 -06:00
937c79ab91 remove 2025-12-01 22:34:17 -06:00
f30b7e47c2 fix for argocd
All checks were successful
lint-test-helm / helm-lint (push) Successful in 12s
renovate / renovate (push) Successful in 1m44s
2025-12-01 22:14:17 -06:00
73ed84431f update description
All checks were successful
lint-test-helm / helm-lint (push) Successful in 9s
render-manifests / render-manifests (push) Successful in 34s
renovate / renovate (push) Successful in 57s
2025-12-01 22:11:19 -06:00
00238c2f88 fix quote 2025-12-01 22:11:06 -06:00
0a732bee0c update description
Some checks failed
render-manifests / render-manifests (push) Failing after 25s
lint-test-helm / helm-lint (push) Successful in 14s
renovate / renovate (push) Successful in 58s
2025-12-01 22:07:35 -06:00
5e3328aad3 fix command
Some checks failed
renovate / renovate (push) Has been cancelled
2025-12-01 22:07:20 -06:00
3ad532c982 update description
Some checks failed
render-manifests / render-manifests (push) Failing after 24s
lint-test-helm / helm-lint (push) Successful in 8s
renovate / renovate (push) Has been cancelled
2025-12-01 22:05:55 -06:00
8fabd3612a fix
Some checks failed
renovate / renovate (push) Has been cancelled
2025-12-01 22:05:39 -06:00
a9d902a87a update description
All checks were successful
lint-test-helm / helm-lint (push) Successful in 15s
render-manifests / render-manifests (push) Successful in 15s
renovate / renovate (push) Successful in 1m44s
2025-12-01 22:03:15 -06:00
f05e966c53 add description 2025-12-01 22:02:58 -06:00
3bb2e3c2c0 add fetch depth
Some checks failed
renovate / renovate (push) Has been cancelled
2025-12-01 22:00:59 -06:00
08cf7f58c3 update description
Some checks failed
lint-test-helm / helm-lint (push) Successful in 9s
renovate / renovate (push) Successful in 1m13s
render-manifests / render-manifests (push) Failing after 23s
2025-12-01 21:59:39 -06:00
86f102142e remove old app sets 2025-12-01 21:58:44 -06:00
b15772f700 use diff
All checks were successful
renovate / renovate (push) Successful in 1m5s
2025-12-01 21:56:50 -06:00
c53716e5f5 add logging
All checks were successful
renovate / renovate (push) Successful in 57s
2025-12-01 21:51:36 -06:00
0be89f97f4 fix check
All checks were successful
renovate / renovate (push) Successful in 1m27s
2025-12-01 21:48:41 -06:00
f77653ef13 migrate
Some checks failed
lint-test-helm / helm-lint (push) Successful in 9s
renovate / renovate (push) Has been cancelled
render-manifests / render-manifests (push) Successful in 14s
2025-12-01 21:46:49 -06:00
3ca37402c4 add deletion handling
Some checks failed
renovate / renovate (push) Has been cancelled
2025-12-01 21:46:16 -06:00
57d67c12cf check for changes to render 2025-12-01 21:40:41 -06:00
d9e9a97395 move out
All checks were successful
lint-test-helm / helm-lint (push) Successful in 9s
renovate / renovate (push) Successful in 1m14s
render-manifests / render-manifests-helm (push) Successful in 10m25s
2025-12-01 21:03:10 -06:00
accbfa0a6d move out
Some checks failed
lint-test-helm / helm-lint (push) Successful in 9s
renovate / renovate (push) Successful in 1m19s
render-manifests / render-manifests-helm (push) Failing after 8m37s
2025-12-01 20:53:44 -06:00
b52d76cc58 migrate
Some checks failed
lint-test-helm / helm-lint (push) Successful in 11s
renovate / renovate (push) Successful in 1m18s
render-manifests / render-manifests-helm (push) Failing after 2m22s
2025-12-01 20:50:19 -06:00
6da426af29 migrate
All checks were successful
lint-test-helm / helm-lint (push) Successful in 12s
renovate / renovate (push) Successful in 1m13s
render-manifests / render-manifests-helm (push) Successful in 6m53s
2025-12-01 20:14:09 -06:00
3e90af0eb5 migrate
All checks were successful
lint-test-helm / helm-lint (push) Successful in 10s
render-manifests / render-manifests-helm (push) Successful in 1m18s
renovate / renovate (push) Successful in 1m19s
2025-12-01 19:47:11 -06:00
9b3615a0cf pin workflow
All checks were successful
renovate / renovate (push) Successful in 1m43s
2025-12-01 19:44:54 -06:00
cc90faad93 Update searxng/searxng:latest Docker digest to faa7118 (#2171)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 8s
render-manifests / render-manifests-helm (push) Successful in 45s
renovate / renovate (push) Successful in 1m30s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| searxng/searxng | digest | `0124d32` -> `faa7118` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled because a matching PR was automerged previously.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41LjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi41LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImF1dG9tZXJnZSIsImltYWdlIl19-->

Reviewed-on: #2171
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2025-12-02 01:39:08 +00:00
ae2a9bcd9d update pull
Some checks failed
renovate / renovate (push) Has been cancelled
2025-12-01 19:38:52 -06:00
72989730c7 migrate
All checks were successful
lint-test-helm / helm-lint (push) Successful in 11s
render-manifests / render-manifests-helm (push) Successful in 40s
renovate / renovate (push) Successful in 1m50s
2025-12-01 19:33:40 -06:00
e72427c734 add assigne
All checks were successful
renovate / renovate (push) Successful in 1m8s
2025-12-01 18:35:00 -06:00
4c82749916 migrate
All checks were successful
lint-test-helm / helm-lint (push) Successful in 8s
render-manifests / render-manifests-helm (push) Successful in 34s
renovate / renovate (push) Successful in 1m18s
2025-12-01 18:33:17 -06:00
a68e3f8967 don't use error hanndling
All checks were successful
renovate / renovate (push) Successful in 1m0s
2025-12-01 18:20:47 -06:00
ef96e0fc71 add set e
All checks were successful
renovate / renovate (push) Successful in 1m1s
2025-12-01 18:18:19 -06:00
b6551ef375 fix
All checks were successful
renovate / renovate (push) Successful in 1m13s
2025-12-01 18:16:12 -06:00
7dd1446d5a change logging
All checks were successful
renovate / renovate (push) Successful in 1m33s
2025-12-01 18:05:46 -06:00
dd2b93b64f add explicit dir switching
All checks were successful
renovate / renovate (push) Successful in 2m50s
2025-12-01 17:58:49 -06:00
876ef10477 prepare manifest branch step
All checks were successful
renovate / renovate (push) Successful in 1m8s
2025-12-01 17:56:50 -06:00
a4f5472bc4 fix check
All checks were successful
renovate / renovate (push) Successful in 1m26s
2025-12-01 17:27:33 -06:00
73a7615dd1 use single pr pattern
All checks were successful
renovate / renovate (push) Successful in 1m22s
2025-12-01 16:57:16 -06:00
aaa2a7a606 Update rmcrackan/libation Docker tag to v12.7.5 (#2168)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 13s
render-manifests / render-manifests-helm (push) Successful in 27s
renovate / renovate (push) Successful in 1m41s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [rmcrackan/libation](https://github.com/rmcrackan/Libation) | patch | `12.7.4` -> `12.7.5` |

---

### Release Notes

<details>
<summary>rmcrackan/Libation (rmcrackan/libation)</summary>

### [`v12.7.5`](https://github.com/rmcrackan/Libation/releases/tag/v12.7.5): Libation 12.7.5

[Compare Source](https://github.com/rmcrackan/Libation/compare/v12.7.4...v12.7.5)

- Bug fix [#&#8203;1464](https://github.com/rmcrackan/Libation/issues/1464) , [#&#8203;1457](https://github.com/rmcrackan/Libation/issues/1457) : Fix MessageBox launch error on macOS

Thanks to [@&#8203;Mbucari](https://github.com/Mbucari)

[Libation](https://github.com/rmcrackan/Libation) is a free, open source audible library manager. Decrypt, backup, organize, and search your audible library

I intend to keep Libation free and open source, but if you want to [leave a tip](https://paypal.me/mcrackan?locale.x=en_us), who am I to argue?

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled because a matching PR was automerged previously.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41LjEiLCJ1cGRhdGVkSW5WZXIiOiI0Mi41LjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImF1dG9tZXJnZSIsImltYWdlIl19-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/2168
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2025-12-01 22:05:06 +00:00
468c07fa8c migrate
All checks were successful
lint-test-helm / helm-lint (push) Successful in 10s
render-manifests / render-manifests-helm (push) Successful in 23s
renovate / renovate (push) Successful in 1m39s
2025-12-01 15:59:21 -06:00
67478f0845 downgrade
All checks were successful
lint-test-helm / helm-lint (push) Successful in 9s
renovate / renovate (push) Successful in 59s
2025-12-01 15:41:50 -06:00
cb8d7fdf1c remove reference to helm
All checks were successful
lint-test-helm / helm-lint (push) Successful in 8s
render-manifests / render-manifests-helm (push) Successful in 18s
renovate / renovate (push) Successful in 54s
2025-12-01 15:36:06 -06:00
995d61a6a0 fix path
All checks were successful
lint-test-helm / helm-lint (push) Successful in 10s
render-manifests / render-manifests-helm (push) Successful in 17s
renovate / renovate (push) Successful in 1m9s
2025-12-01 15:33:33 -06:00
a20354992a remove actual from old set
All checks were successful
lint-test-helm / helm-lint (push) Successful in 9s
renovate / renovate (push) Successful in 51s
2025-12-01 15:25:11 -06:00
a6427aa56c Update php Docker tag to v8.5.0 (#2119)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 7s
renovate / renovate (push) Successful in 1m14s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| php | minor | `8.4.15-apache-bookworm` -> `8.5.0-apache-bookworm` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41LjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi41LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImltYWdlIl19-->

Reviewed-on: #2119
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2025-12-01 21:21:37 +00:00
a9272358fd change path
All checks were successful
renovate / renovate (push) Successful in 1m15s
2025-12-01 15:18:57 -06:00
35acd8f602 change revision
All checks were successful
lint-test-helm / helm-lint (push) Successful in 8s
renovate / renovate (push) Successful in 57s
2025-12-01 15:17:55 -06:00
3b1c52427a update path
All checks were successful
renovate / renovate (push) Successful in 1m53s
2025-12-01 15:11:16 -06:00
031472bab1 remove charts to prep for migration
All checks were successful
lint-test-helm / helm-lint (push) Successful in 8s
renovate / renovate (push) Successful in 2m5s
2025-12-01 15:06:07 -06:00
4a30f53bd2 remove charts to prep for migration
Some checks failed
lint-test-helm / helm-lint (push) Successful in 28s
renovate / renovate (push) Has been cancelled
2025-12-01 15:05:25 -06:00
5ae2a63f5b Update Helm release argo-cd to v9.1.5 (#2161)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 17s
renovate / renovate (push) Successful in 1m37s
2025-12-01 19:02:18 +00:00
78cd19307e Update clidey/whodb Docker tag to v0.80.0 (#2160)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 9s
renovate / renovate (push) Successful in 2m6s
2025-12-01 16:02:01 +00:00
892a3b6bef Update searxng/searxng:latest Docker digest to faa7118 (#2159)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 8s
renovate / renovate (push) Successful in 1m49s
2025-12-01 15:01:56 +00:00
e1221f7913 Update rmcrackan/libation Docker tag to v12.7.5 (#2158)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 14s
renovate / renovate (push) Successful in 1m45s
2025-12-01 05:02:35 +00:00
598c91f1c4 don't ignore archive as its no longer used
All checks were successful
renovate / renovate (push) Successful in 2m18s
2025-11-30 22:12:19 -06:00
855245e8f8 fix templating
Some checks failed
lint-test-helm / helm-lint (push) Successful in 10s
renovate / renovate (push) Has been cancelled
render-manifests / render-manifests-helm (push) Successful in 1m52s
2025-11-30 22:10:45 -06:00
3467b8a427 ignore errors
All checks were successful
renovate / renovate (push) Successful in 1m38s
2025-11-30 22:06:25 -06:00
97f3fcf206 fix
All checks were successful
renovate / renovate (push) Successful in 1m32s
2025-11-30 21:55:25 -06:00
9763fd7744 remove uneeded log
All checks were successful
renovate / renovate (push) Successful in 1m57s
2025-11-30 21:47:52 -06:00
7d6be3985c add cluster loop
Some checks failed
lint-test-helm / helm-lint (push) Successful in 11s
render-manifests / render-manifests-helm (push) Failing after 23s
renovate / renovate (push) Has been cancelled
2025-11-30 21:46:44 -06:00
e694ad3fb3 use with sh
Some checks failed
lint-test-helm / helm-lint (push) Successful in 9s
render-manifests / render-manifests-helm (push) Failing after 10s
renovate / renovate (push) Successful in 1m8s
2025-11-30 21:42:51 -06:00
b7913afca1 fix command, add logs
All checks were successful
renovate / renovate (push) Successful in 1m27s
2025-11-30 21:36:22 -06:00
7d27140114 add repo step
All checks were successful
renovate / renovate (push) Successful in 3m39s
2025-11-30 21:19:17 -06:00
6e613e1e65 add chart lock
Some checks failed
lint-test-helm / helm-lint (push) Successful in 7s
render-manifests / render-manifests-helm (push) Failing after 36s
renovate / renovate (push) Successful in 1m13s
2025-11-30 21:14:57 -06:00
dafa71f8f3 update gitignore 2025-11-30 21:00:37 -06:00
708e52dfbb add new stack 2025-11-30 21:00:21 -06:00
418bc22998 deactivate deletion
All checks were successful
lint-test-helm / helm-lint (push) Successful in 10s
render-manifests / render-manifests-helm (push) Successful in 1m13s
renovate / renovate (push) Successful in 1m30s
2025-11-30 20:24:33 -06:00
85b15e8590 add step to clear prior manifests
All checks were successful
renovate / renovate (push) Successful in 1m54s
2025-11-30 19:19:46 -06:00
32d6244acf update paths
All checks were successful
renovate / renovate (push) Successful in 1m25s
2025-11-30 18:15:58 -06:00
8e2c65663b use separate dir for each branch
All checks were successful
renovate / renovate (push) Successful in 1m14s
2025-11-30 18:09:47 -06:00
9ead73777f change
All checks were successful
renovate / renovate (push) Successful in 3m36s
2025-11-30 17:26:38 -06:00
3e0cb21863 change
All checks were successful
renovate / renovate (push) Successful in 1m26s
2025-11-30 17:08:27 -06:00
a9f2dc375c change
All checks were successful
renovate / renovate (push) Successful in 2m9s
2025-11-30 16:56:34 -06:00
63fdef0e26 change
All checks were successful
renovate / renovate (push) Successful in 1m17s
2025-11-30 16:53:33 -06:00
fcbde5abc4 change
All checks were successful
renovate / renovate (push) Successful in 1m12s
2025-11-30 16:51:29 -06:00
2ba863bb98 change
All checks were successful
renovate / renovate (push) Successful in 1m44s
2025-11-30 16:48:57 -06:00
441f39b0cd fix jq
All checks were successful
renovate / renovate (push) Successful in 2m0s
2025-11-30 16:43:52 -06:00
4a4e8ab77f use jq
All checks were successful
renovate / renovate (push) Successful in 1m18s
2025-11-30 16:41:11 -06:00
68a25dc9fd change command
All checks were successful
renovate / renovate (push) Successful in 1m35s
2025-11-30 16:26:57 -06:00
96a44b823e fix
All checks were successful
renovate / renovate (push) Successful in 1m14s
2025-11-30 16:17:32 -06:00
e23dbd4df2 echo content
All checks were successful
renovate / renovate (push) Successful in 2m7s
2025-11-30 16:12:04 -06:00
1e6f90271a change redirection
All checks were successful
renovate / renovate (push) Successful in 1m24s
2025-11-30 16:05:55 -06:00
b789f2030e add error handling
All checks were successful
renovate / renovate (push) Successful in 1m6s
2025-11-30 15:55:58 -06:00
77ef98c3e0 use webrequest
Some checks failed
renovate / renovate (push) Failing after 3s
2025-11-30 15:45:13 -06:00
6156597591 use manual workflow
All checks were successful
renovate / renovate (push) Successful in 1m34s
2025-11-30 15:24:41 -06:00
48c232c275 revert
All checks were successful
renovate / renovate (push) Successful in 1m1s
2025-11-30 14:58:21 -06:00
9e897757c6 fix secrets
All checks were successful
renovate / renovate (push) Successful in 1m4s
2025-11-30 14:39:21 -06:00
b5beaa88b1 use different package
All checks were successful
renovate / renovate (push) Successful in 1m31s
2025-11-30 14:36:59 -06:00
5508678a6c use different package
All checks were successful
renovate / renovate (push) Successful in 1m14s
2025-11-30 14:21:06 -06:00
f3ed21b8a8 use different package
All checks were successful
renovate / renovate (push) Successful in 2m31s
2025-11-30 14:16:10 -06:00
2f4a342811 use token
All checks were successful
renovate / renovate (push) Successful in 1m27s
2025-11-30 14:10:43 -06:00
39c52e03a3 remove
All checks were successful
renovate / renovate (push) Successful in 1m56s
2025-11-30 14:07:45 -06:00
43aeb04ade use token
All checks were successful
renovate / renovate (push) Successful in 1m38s
2025-11-30 14:05:47 -06:00
9122e9f339 add commiter and author
All checks were successful
renovate / renovate (push) Successful in 1m13s
2025-11-30 13:46:03 -06:00
e212872535 Update clidey/whodb Docker tag to v0.78.0 (#2153)
Some checks failed
render-manifests / render-manifests-helm (push) Failing after 12s
lint-test-helm / helm-lint (push) Successful in 13s
renovate / renovate (push) Successful in 1m48s
2025-11-30 13:02:36 +00:00
08a0d296a3 Update ghcr.io/linuxserver/qbittorrent:5.1.4 Docker digest to a2eedc9 (#2152)
Some checks failed
lint-test-helm / helm-lint (push) Successful in 11s
render-manifests / render-manifests-helm (push) Failing after 1m15s
renovate / renovate (push) Successful in 2m29s
2025-11-30 08:03:31 +00:00
32c1f3a450 fix token
All checks were successful
renovate / renovate (push) Successful in 3m21s
2025-11-29 23:36:49 -06:00
b865730722 specific path
All checks were successful
renovate / renovate (push) Successful in 1m33s
2025-11-29 23:30:47 -06:00
8682100cc6 update file path
All checks were successful
renovate / renovate (push) Successful in 1m9s
2025-11-29 23:19:42 -06:00
5bad734c75 fix path
All checks were successful
renovate / renovate (push) Successful in 1m40s
2025-11-29 23:09:50 -06:00
0343b2d9ee use local path
Some checks failed
renovate / renovate (push) Failing after 3s
2025-11-29 23:05:33 -06:00
1c100f1c6b use absolute paths
All checks were successful
renovate / renovate (push) Successful in 1m1s
2025-11-29 22:58:47 -06:00
bee206bec1 remove name from build and lint
All checks were successful
renovate / renovate (push) Successful in 1m5s
2025-11-29 22:45:45 -06:00
e4b3d06e1d change to directory
Some checks failed
renovate / renovate (push) Has been cancelled
2025-11-29 22:44:35 -06:00
7408d8effb downgrade helm
All checks were successful
renovate / renovate (push) Successful in 1m11s
2025-11-29 22:39:33 -06:00
274ab32e2a add build and lint
All checks were successful
renovate / renovate (push) Successful in 1m41s
2025-11-29 22:31:45 -06:00
ce87523597 fix path
All checks were successful
renovate / renovate (push) Successful in 1m29s
2025-11-29 22:25:40 -06:00
25710206d5 fix env
All checks were successful
renovate / renovate (push) Successful in 1m18s
2025-11-29 22:23:16 -06:00
c705885dda fix path
All checks were successful
renovate / renovate (push) Successful in 2m23s
2025-11-29 22:03:01 -06:00
783d307998 add dispatch
All checks were successful
renovate / renovate (push) Successful in 2m5s
2025-11-29 21:49:49 -06:00
06397c2b57 fix render
All checks were successful
renovate / renovate (push) Successful in 1m40s
2025-11-29 21:45:18 -06:00
e102d910bc add render manifest workflow
Some checks failed
lint-test-helm / helm-lint (push) Successful in 9s
render-manifests / render-manifests-helm (push) Failing after 30s
renovate / renovate (push) Successful in 2m6s
2025-11-29 21:41:00 -06:00
bcc6a517ee fix secret
All checks were successful
lint-test-helm / helm-lint (push) Successful in 39s
renovate / renovate (push) Successful in 1m40s
2025-11-29 20:06:28 -06:00
f1a0008763 change cred
All checks were successful
lint-test-helm / helm-lint (push) Successful in 8s
renovate / renovate (push) Successful in 1m17s
2025-11-29 17:54:33 -06:00
425351b338 Update searxng/searxng:latest Docker digest to 0124d32 (#2151)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 11s
renovate / renovate (push) Successful in 1m2s
2025-11-29 16:02:04 +00:00
9b90e7a19b add garage
All checks were successful
lint-test-helm / helm-lint (push) Successful in 16s
renovate / renovate (push) Successful in 1m53s
2025-11-28 22:55:54 -06:00
b58b3a3ed0 increase compression
Some checks failed
lint-test-docker / docker-lint (push) Successful in 8s
renovate / renovate (push) Has been cancelled
2025-11-28 22:55:08 -06:00
cc5fe67955 adjust interval
All checks were successful
lint-test-helm / helm-lint (push) Successful in 12s
renovate / renovate (push) Successful in 1m39s
2025-11-28 22:09:50 -06:00
31f7014f07 update labels
All checks were successful
lint-test-helm / helm-lint (push) Successful in 12s
renovate / renovate (push) Successful in 1m29s
2025-11-28 22:07:08 -06:00
c9ac593fc5 expand disk size
All checks were successful
lint-test-helm / helm-lint (push) Successful in 21s
renovate / renovate (push) Successful in 2m12s
2025-11-28 21:50:25 -06:00
0f538ceb3c expand disk size
All checks were successful
lint-test-helm / helm-lint (push) Successful in 41s
renovate / renovate (push) Successful in 1m48s
2025-11-28 21:46:10 -06:00
9fa80152bf rename servarr to content
All checks were successful
lint-test-helm / helm-lint (push) Successful in 11s
renovate / renovate (push) Successful in 1m6s
2025-11-28 18:49:29 -06:00
f617b0d175 rename servarr to content
All checks were successful
lint-test-helm / helm-lint (push) Successful in 11s
renovate / renovate (push) Successful in 1m48s
2025-11-28 18:44:46 -06:00
027367a16c Update ghcr.io/linuxserver/sonarr:4.0.16 Docker digest to 60e5edc (#2150)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 8s
renovate / renovate (push) Successful in 1m49s
2025-11-29 00:03:10 +00:00
d9f5e91d5d Update clidey/whodb Docker tag to v0.77.0 (#2149)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 10s
renovate / renovate (push) Successful in 3m1s
2025-11-28 21:01:45 +00:00
6fbb80c097 Update clidey/whodb Docker tag to v0.76.0 (#2148)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 9s
renovate / renovate (push) Successful in 1m33s
2025-11-28 20:01:56 +00:00
b628c8597b Update searxng/searxng:latest Docker digest to 7f816e1 (#2147)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 9s
renovate / renovate (push) Successful in 1m45s
2025-11-28 13:01:43 +00:00
07b0ace900 Update searxng/searxng:latest Docker digest to 782d8ab (#2146)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 12s
renovate / renovate (push) Successful in 1m28s
2025-11-28 11:01:20 +00:00
4144aad3cb Update searxng/searxng:latest Docker digest to ee07122 (#2145)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 9s
renovate / renovate (push) Successful in 1m9s
2025-11-28 10:01:43 +00:00
72d2293644 Update rmcrackan/libation Docker tag to v12.7.4 (#2144)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 9s
renovate / renovate (push) Successful in 1m28s
2025-11-27 05:01:44 +00:00
6bd1bacdd1 Update Helm release tailscale-operator to v1.90.9 (#2143)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 17s
renovate / renovate (push) Successful in 1m29s
2025-11-26 23:02:19 +00:00
0ccbc96cdb Update Helm release matrix-synapse to v3.12.16 (#2142)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 10s
renovate / renovate (push) Successful in 2m12s
2025-11-26 19:02:04 +00:00
5168ce593a Update ghcr.io/booklore-app/booklore Docker tag to v1.12.0 (#2140)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 23s
renovate / renovate (push) Successful in 1m54s
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| ghcr.io/booklore-app/booklore | minor | `v1.11.0` -> `v1.12.0` |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi41LjAiLCJ1cGRhdGVkSW5WZXIiOiI0Mi41LjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImltYWdlIl19-->

Reviewed-on: #2140
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
2025-11-26 17:26:51 +00:00
0ce6a82c26 Update ghcr.io/linuxserver/prowlarr:2.3.0 Docker digest to 4758535 (#2141)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 7s
renovate / renovate (push) Successful in 1m13s
2025-11-26 05:01:48 +00:00
77b0e35a61 Update caronc/apprise Docker tag to v1.2.6 (#2139)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 7s
renovate / renovate (push) Successful in 1m33s
2025-11-26 03:01:49 +00:00
51701655b6 Update d3fk/s3cmd:latest Docker digest to 7bdbd33 (#2138)
Some checks failed
lint-test-helm / helm-lint (push) Successful in 8s
renovate / renovate (push) Has been cancelled
2025-11-26 03:01:38 +00:00
c5074ba043 remove calibre
All checks were successful
lint-test-helm / helm-lint (push) Successful in 7s
lint-test-docker / docker-lint (push) Successful in 10s
renovate / renovate (push) Successful in 1m36s
2025-11-25 20:11:36 -06:00
a6d9443290 Update Helm release generic-device-plugin to v0.20.1 (#2137)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 9s
renovate / renovate (push) Successful in 1m5s
2025-11-26 01:01:42 +00:00
a616c13446 Update ghcr.io/linuxserver/bazarr:1.5.3 Docker digest to 2be164c (#2136)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 6s
renovate / renovate (push) Successful in 1m30s
2025-11-25 22:01:21 +00:00
65c0028ba7 Update rmcrackan/libation Docker tag to v12.7.3 (#2135)
All checks were successful
lint-test-helm / helm-lint (push) Successful in 7s
renovate / renovate (push) Successful in 1m10s
2025-11-25 21:01:42 +00:00
679 changed files with 2866 additions and 915 deletions

View File

@@ -6,7 +6,6 @@ on:
- main
paths:
- 'hosts/**'
- ! 'hosts/archive'
jobs:
docker-lint:

View File

@@ -6,7 +6,6 @@ on:
- main
paths:
- 'hosts/**'
- ! 'hosts/archive'
jobs:
docker-lint:

View File

@@ -6,7 +6,6 @@ on:
- main
paths:
- 'clusters/**'
- ! 'clusters/*/archive'
jobs:
helm-lint:
@@ -32,7 +31,7 @@ jobs:
uses: azure/setup-helm@v4
with:
token: ${{ secrets.GITEA_TOKEN }}
version: latest
version: v3.19.2
- name: Lint Helm Chart
if: steps.check-branch-exists.outputs.exists == 'true'
@@ -68,6 +67,11 @@ jobs:
echo "$CHANGED_CHARTS"
echo "$CHANGED_CHARTS" | while read -r chart; do
helm dependency list --max-col-width 120 $chart 2> /dev/null \
| tail +2 | head -n -1 \
| awk '{ print "helm repo add " $1 " " $3 }' \
| while read cmd; do echo "$cmd" | sh; done || true
echo ">> Building dependency for "$chart" ..."
helm dependency build "$chart"
echo ">> Linting $chart..."

View File

@@ -6,7 +6,6 @@ on:
- main
paths:
- 'clusters/**'
- ! 'clusters/*/archive'
jobs:
helm-lint:
@@ -21,12 +20,10 @@ jobs:
uses: azure/setup-helm@v4
with:
token: ${{ secrets.GITEA_TOKEN }}
version: latest
version: v3.19.2
- name: Lint Helm Chart
run: |
set -e # Exit immediately if a command exits with a non-zero status.
TARGET_BRANCH="origin/main"
echo ">> Target branch for diff is: $TARGET_BRANCH"
@@ -56,6 +53,11 @@ jobs:
echo "$CHANGED_CHARTS"
echo "$CHANGED_CHARTS" | while read -r chart; do
helm dependency list --max-col-width 120 $chart 2> /dev/null \
| tail +2 | head -n -1 \
| awk '{ print "helm repo add " $1 " " $3 }' \
| while read cmd; do echo "$cmd" | sh; done || true
echo ">> Building dependency for "$chart" ..."
helm dependency build "$chart"
echo ">> Linting $chart..."

View File

@@ -0,0 +1,411 @@
name: render-manifests-automerge
on:
pull_request:
branches:
- main
paths:
- 'clusters/cl01tl/helm/**'
types:
- closed
env:
CLUSTER: cl01tl
BASE_BRANCH: manifests
BRANCH_NAME_BASE: auto/update-manifests-automerge
MAIN_DIR: /workspace/alexlebens/infrastructure/infrastructure
MANIFEST_DIR: /workspace/alexlebens/infrastructure/infrastructure-manifests
jobs:
render-manifests-automerge:
runs-on: ubuntu-js
if: ${{ (github.event.pull_request.merged == true) && (contains(github.event.pull_request.labels.*.name, 'automerge')) }}
steps:
- name: Checkout Main
uses: actions/checkout@v6
with:
path: infrastructure
fetch-depth: 0
- name: Checkout Manifests
uses: actions/checkout@v6
with:
ref: manifests
path: infrastructure-manifests
- name: Set up Helm
uses: azure/setup-helm@v4
with:
token: ${{ secrets.GITEA_TOKEN }}
version: v3.17.2 # Pending https://github.com/helm/helm/pull/30743
- name: Prepare Manifest Branch
id: prepare-manifest-branch
run: |
cd ${MANIFEST_DIR}
BRANCH_NAME="${BRANCH_NAME_BASE}-$(date +%Y%m%d%H%M%S)"
echo ">> Configure git to use gitea-bot as user ..."
git config user.name "gitea-bot"
git config user.email "gitea-bot@alexlebens.net"
echo ">> Creating branch ..."
git checkout -b $BRANCH_NAME
echo "----"
echo "BRANCH_NAME=${BRANCH_NAME}" >> $GITEA_OUTPUT
- name: Check which Directories have Changes
id: check-dir-changes
run: |
cd ${MAIN_DIR}
RENDER_DIR=()
echo ">> Checking for changes from HEAD^..HEAD ..."
GIT_DIFF=$(git diff --name-only HEAD^..HEAD | xargs -I {} dirname {} | sort -u | grep "clusters/cl01tl/helm/")
if [ -n "${GIT_DIFF}" ]; then
echo ">> Changes detected:"
echo "$GIT_DIFF"
for path in $GIT_DIFF; do
RENDER_DIR+=$(echo "$path" | awk -F '/' '{print $4}')
done
else
echo ">> No changes detected"
fi
if [ -n "${RENDER_DIR}" ]; then
echo ">> Directories to Render:"
echo "$(printf "%s\n" "${RENDER_DIR[@]}" | sort -u)"
echo "----"
echo "changes-detected=true" >> $GITEA_OUTPUT
echo "render-dir<<EOF" >> $GITEA_OUTPUT
echo "$(printf "%s\n" "${RENDER_DIR[@]}" | sort -u)" >> $GITEA_OUTPUT
echo "EOF" >> $GITEA_OUTPUT
else
echo "changes-detected=false" >> $GITEA_OUTPUT
fi
- name: Add Repositories
if: steps.check-dir-changes.outputs.changes-detected == 'true'
env:
RENDER_DIR: ${{ steps.check-dir-changes.outputs.render-dir }}
run: |
cd ${MAIN_DIR}
echo ">> Adding repositories for chart dependencies ..."
for dir in ${RENDER_DIR}; do
helm dependency list --max-col-width 120 ${MAIN_DIR}/clusters/${CLUSTER}/helm/$dir 2> /dev/null \
| tail +2 | head -n -1 \
| awk '{ print "helm repo add " $1 " " $3 }' \
| while read cmd; do echo "$cmd" | sh; done || true
done
if helm repo list | tail +2 | read -r; then
echo ">> Update repository cache ..."
helm repo update
fi
echo "----"
- name: Remove Changed Manifest Files
if: steps.check-dir-changes.outputs.changes-detected == 'true'
env:
RENDER_DIR: ${{ steps.check-dir-changes.outputs.render-dir }}
run: |
cd ${MANIFEST_DIR}
echo ">> Remove manfiest files and rebuild from source ..."
for dir in ${RENDER_DIR}; do
chart_path=${MANIFEST_DIR}/clusters/${CLUSTER}/manifests/$dir
echo "$chart_path"
rm -rf $chart_path/*
done
echo "----"
- name: Render Helm Manifests
id: render-manifests
if: steps.check-dir-changes.outputs.changes-detected == 'true'
env:
RENDER_DIR: ${{ steps.check-dir-changes.outputs.render-dir }}
run: |
cd ${MAIN_DIR}
echo ">> Rendering Manifests ..."
for dir in ${RENDER_DIR}; do
chart_path=${MAIN_DIR}/clusters/${CLUSTER}/helm/$dir
chart_name=$(basename "$chart_path")
echo ">> Rendering chart: $chart_name"
echo ">> Chart path $chart_path"
if [ -f "$chart_path/Chart.yaml" ]; then
mkdir -p ${MANIFEST_DIR}/clusters/${CLUSTER}/manifests/$chart_name
OUTPUT_FILE="${MANIFEST_DIR}/clusters/${CLUSTER}/manifests/$chart_name/$chart_name.yaml"
cd $chart_path
echo ""
echo ">> Building helm dependency ..."
helm dependency build --skip-refresh
echo ""
echo ">> Linting helm ..."
helm lint --namespace "$chart_name"
echo ""
echo ">> Rendering templates ..."
case "$chart_name" in
"stack")
echo ">> Special Rendering for stack ..."
helm template stack ./ --namespace argocd --include-crds > "$OUTPUT_FILE"
;;
"cilium")
echo ">> Special Rendering for cilium ..."
helm template cilium ./ --namespace kube-system --include-crds > "$OUTPUT_FILE"
;;
"coredns")
echo ">> Special Rendering for coredns ..."
helm template coredns ./ --namespace kube-system --include-crds > "$OUTPUT_FILE"
;;
"metrics-server")
echo ">> Special Rendering for metrics-server ..."
helm template metrics-server ./ --namespace kube-system --include-crds > "$OUTPUT_FILE"
;;
"prometheus-operator-crds")
echo ">> Special Rendering for prometheus-operator-crds ..."
helm template prometheus-operator-crds ./ --namespace kube-system --include-crds > "$OUTPUT_FILE"
;;
*)
echo ">> Standard Rendering for $chart_name ..."
helm template "$chart_name" ./ --namespace "$chart_name" --include-crds > "$OUTPUT_FILE"
;;
esac
echo ""
echo ">> Manifests for $chart_name rendered to $OUTPUT_FILE"
echo ""
else
echo ""
echo ">> Directory $chart_path does not contain a Chart.yaml. Skipping ..."
echo ""
fi
done
echo "----"
- name: Check for Changes
id: check-changes
if: steps.check-dir-changes.outputs.changes-detected == 'true'
run: |
cd ${MANIFEST_DIR}
if git status --porcelain | grep -q .; then
echo ">> Changes detected"
git status --porcelain
echo "changes-detected=true" >> $GITEA_OUTPUT
else
echo ">> No changes detected, skipping PR creation"
exit 0
fi
echo "----"
- name: Commit and Push Changes
id: commit-push
if: steps.check-changes.outputs.changes-detected == 'true'
env:
BRANCH_NAME: ${{ steps.prepare-manifest-branch.outputs.BRANCH_NAME }}
run: |
cd ${MANIFEST_DIR}
echo ">> Commiting changes to ${BRANCH_NAME} ..."
git add .
git commit -m "chore: Update manifests after automerge"
REPO_URL="${{ secrets.REPO_URL }}/${{ gitea.repository }}"
echo ">> Pushing changes to $REPO_URL ..."
git push -u "https://oauth2:${{ secrets.BOT_TOKEN }}@$(echo $REPO_URL | sed -e 's|https://||')" ${BRANCH_NAME}
echo "----"
echo "push=true" >> $GITEA_OUTPUT
- name: Create Pull Request
id: create-pull-request
if: steps.commit-push.outputs.push == 'true'
env:
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
GITEA_URL: ${{ secrets.REPO_URL }}
BRANCH_NAME: ${{ steps.prepare-manifest-branch.outputs.BRANCH_NAME }}
run: |
cd ${MANIFEST_DIR}
API_ENDPOINT="${GITEA_URL}/api/v1/repos/${{ gitea.repository }}/pulls"
PAYLOAD=$( jq -n \
--arg head "${BRANCH_NAME}" \
--arg base "${BASE_BRANCH}" \
--arg title "Automated Manifest Update" \
--arg body "This PR contains newly rendered Kubernetes manifests automatically generated by the CI workflow. This is expected to be automerged." \
'{head: $head, base: $base, title: $title, body: $body'} )
echo ">> Creating PR from branch ${BRANCH_NAME} into ${BASE_BRANCH}"
echo ">> With Endpoint of:"
echo "$API_ENDPOINT"
echo ">> With Payload of:"
echo "$PAYLOAD"
HTTP_STATUS=$(
curl -X POST \
--silent \
--write-out '%{http_code}' \
--output response_body.json \
--dump-header response_headers.txt \
--data "$PAYLOAD" \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
"$API_ENDPOINT" 2> response_errors.txt
)
echo ">> HTTP Status Code: $HTTP_STATUS"
echo ">> Response Output ..."
echo "----"
cat response_body.json
echo "----"
cat response_headers.txt
echo "----"
cat response_errors.txt
echo "----"
if [ "$HTTP_STATUS" == "201" ]; then
echo ">> Pull Request created successfully!"
PR_URL=$(cat response_body.json | jq -r .html_url)
echo "pull-request-url=${PR_URL}" >> $GITEA_OUTPUT
PR_ID=$(cat response_body.json | jq -r .id)
echo "pull-request-id=${PR_ID}" >> $GITEA_OUTPUT
echo "pull-request-operation=created" >> $GITEA_OUTPUT
elif [ "$HTTP_STATUS" == "422" ]; then
echo ">> Failed to create PR (HTTP 422: Unprocessable Entity), PR may already exist"
elif [ "$HTTP_STATUS" == "409" ]; then
echo ">> Failed to create PR (HTTP 409: Conflict), PR already exists"
else
echo ">> Failed to create PR, HTTP status code: $HTTP_STATUS"
exit 1
fi
echo "----"
- name: Merge Changes
id: merge-changes
if: steps.commit-push.outputs.push == 'true'
env:
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
GITEA_URL: ${{ secrets.REPO_URL }}
BRANCH_NAME: ${{ steps.prepare-manifest-branch.outputs.BRANCH_NAME }}
PR_ID: ${{ steps.prepare-manifest-branch.outputs.pull-request-id }}
run: |
cd ${MANIFEST_DIR}
API_ENDPOINT="${GITEA_URL}/api/v1/repos/${{ gitea.repository }}/pulls/${PR_ID}/merge"
PAYLOAD=$( jq -n \
--arg Do "merge" \
--arg delete_branch_after_merge "true" \
'{Do: $Do, delete_branch_after_merge: $delete_branch_after_merge'} )
echo ">> Merging PR with ID: ${PR_ID}"
echo ">> With Endpoint of:"
echo "$API_ENDPOINT"
echo ">> With Payload of:"
echo "$PAYLOAD"
HTTP_STATUS=$(
curl -X POST \
--silent \
--write-out '%{http_code}' \
--output response_body.json \
--dump-header response_headers.txt \
--data "$PAYLOAD" \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
"$API_ENDPOINT" 2> response_errors.txt
)
echo ">> HTTP Status Code: $HTTP_STATUS"
echo ">> Response Output ..."
echo "----"
cat response_body.json
echo "----"
cat response_headers.txt
echo "----"
cat response_errors.txt
echo "----"
if [ "$HTTP_STATUS" == "200" ]; then
echo ">> Pull Request merged successfully!"
echo "pull-request-operation=merged" >> $GITEA_OUTPUT
else
echo ">> Failed to create PR, HTTP status code: $HTTP_STATUS"
echo "pull-request-operation=failed" >> $GITEA_OUTPUT
exit 1
fi
echo "----"
- name: Cleanup Branch
if: failure()
env:
BRANCH_NAME: ${{ steps.prepare-manifest-branch.outputs.BRANCH_NAME }}
run: |
cd ${MANIFEST_DIR}
echo ">> Removing branch: ${BRANCH_NAME}"
git push origin --delete ${BRANCH_NAME}
echo "----"
- name: ntfy Merged
uses: niniyas/ntfy-action@master
if: steps.merge-changes.outputs.pull-request-operation == 'merged'
with:
url: "${{ secrets.NTFY_URL }}"
topic: "${{ secrets.NTFY_TOPIC }}"
title: "Manifest Render PR Merged - Infrastructure"
priority: 3
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,successfully,completed
details: "Automerge Manifest rendering for Infrastructure!"
icon: "https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png"
actions: '[{"action": "view", "label": "Open Gitea", "url": "${{ steps.create-pull-request.outputs.pull-request-url }}", "clear": true}]'
- name: ntfy Failed
uses: niniyas/ntfy-action@master
if: failure()
with:
url: "${{ secrets.NTFY_URL }}"
topic: "${{ secrets.NTFY_TOPIC }}"
title: "Manifest Render Failure - Infrastructure"
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: "Automerge Manifest rendering for Infrastructure has failed!"
icon: "https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png"
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/infrastructure/actions?workflow=render-manifests-automerge.yaml", "clear": true}]'
image: true

View File

@@ -0,0 +1,381 @@
name: render-manifests-dispatch
on:
workflow_dispatch:
env:
CLUSTER: cl01tl
BASE_BRANCH: manifests
BRANCH_NAME: auto/update-manifests
ASSIGNEE: alexlebens
MAIN_DIR: /workspace/alexlebens/infrastructure/infrastructure
MANIFEST_DIR: /workspace/alexlebens/infrastructure/infrastructure-manifests
jobs:
render-manifests-dispatch:
runs-on: ubuntu-js
steps:
- name: Checkout Main
uses: actions/checkout@v6
with:
path: infrastructure
fetch-depth: 0
- name: Checkout Manifests
uses: actions/checkout@v6
with:
ref: manifests
path: infrastructure-manifests
- name: Set up Helm
uses: azure/setup-helm@v4
with:
token: ${{ secrets.GITEA_TOKEN }}
version: v3.17.2 # Pending https://github.com/helm/helm/pull/30743
- name: Prepare Manifest Branch
run: |
cd ${MANIFEST_DIR}
echo ">> Configure git to use gitea-bot as user ..."
git config user.name "gitea-bot"
git config user.email "gitea-bot@alexlebens.net"
echo ">> Checking if PR branch exists ..."
if [[ $(git ls-remote --heads origin "${BRANCH_NAME}" | wc -l) -gt 0 ]]; then
echo ">> Branch '${BRANCH_NAME}' exists, pulling changes ..."
git fetch origin "${BRANCH_NAME}"
git checkout "${BRANCH_NAME}"
git pull --rebase
else
echo ">> Branch '${BRANCH_NAME}' does not exist, creating ..."
git checkout -b $BRANCH_NAME
fi
echo "----"
- name: Check which Directories have Changes
id: check-dir-changes
run: |
cd ${MAIN_DIR}
RENDER_DIR=()
echo ">> Triggered on dispatch, will check all paths ..."
RENDER_DIR+=$(ls clusters/cl01tl/helm/)
if [ -n "${RENDER_DIR}" ]; then
echo ">> Directories to Render:"
echo "$(printf "%s\n" "${RENDER_DIR[@]}" | sort -u)"
echo "----"
echo "changes-detected=true" >> $GITEA_OUTPUT
echo "render-dir<<EOF" >> $GITEA_OUTPUT
echo "$(printf "%s\n" "${RENDER_DIR[@]}" | sort -u)" >> $GITEA_OUTPUT
echo "EOF" >> $GITEA_OUTPUT
else
echo "changes-detected=false" >> $GITEA_OUTPUT
fi
- name: Add Repositories
if: steps.check-dir-changes.outputs.changes-detected == 'true'
env:
RENDER_DIR: ${{ steps.check-dir-changes.outputs.render-dir }}
run: |
cd ${MAIN_DIR}
echo ">> Adding repositories for chart dependencies ..."
for dir in ${RENDER_DIR}; do
helm dependency list --max-col-width 120 ${MAIN_DIR}/clusters/${CLUSTER}/helm/$dir 2> /dev/null \
| tail +2 | head -n -1 \
| awk '{ print "helm repo add " $1 " " $3 }' \
| while read cmd; do echo "$cmd" | sh; done || true
done
if helm repo list | tail +2 | read -r; then
echo ">> Update repository cache ..."
helm repo update
fi
echo "----"
- name: Remove Changed Manifest Files
if: steps.check-dir-changes.outputs.changes-detected == 'true'
env:
RENDER_DIR: ${{ steps.check-dir-changes.outputs.render-dir }}
run: |
cd ${MANIFEST_DIR}
echo ">> Remove manfiest files and rebuild from source ..."
for dir in ${RENDER_DIR}; do
chart_path=${MANIFEST_DIR}/clusters/${CLUSTER}/manifests/$dir
echo "$chart_path"
rm -rf $chart_path/*
done
echo "----"
- name: Render Helm Manifests
id: render-manifests
if: steps.check-dir-changes.outputs.changes-detected == 'true'
env:
RENDER_DIR: ${{ steps.check-dir-changes.outputs.render-dir }}
run: |
cd ${MAIN_DIR}
echo ">> Rendering Manifests ..."
for dir in ${RENDER_DIR}; do
chart_path=${MAIN_DIR}/clusters/${CLUSTER}/helm/$dir
chart_name=$(basename "$chart_path")
echo ">> Rendering chart: $chart_name"
echo ">> Chart path $chart_path"
if [ -f "$chart_path/Chart.yaml" ]; then
mkdir -p ${MANIFEST_DIR}/clusters/${CLUSTER}/manifests/$chart_name
OUTPUT_FILE="${MANIFEST_DIR}/clusters/${CLUSTER}/manifests/$chart_name/$chart_name.yaml"
cd $chart_path
echo ""
echo ">> Building helm dependency ..."
helm dependency build --skip-refresh
echo ""
echo ">> Linting helm ..."
helm lint --namespace "$chart_name"
echo ""
echo ">> Rendering templates ..."
case "$chart_name" in
"stack")
echo ">> Special Rendering for stack ..."
helm template stack ./ --namespace argocd --include-crds > "$OUTPUT_FILE"
;;
"cilium")
echo ">> Special Rendering for cilium ..."
helm template cilium ./ --namespace kube-system --include-crds > "$OUTPUT_FILE"
;;
"coredns")
echo ">> Special Rendering for coredns ..."
helm template coredns ./ --namespace kube-system --include-crds > "$OUTPUT_FILE"
;;
"metrics-server")
echo ">> Special Rendering for metrics-server ..."
helm template metrics-server ./ --namespace kube-system --include-crds > "$OUTPUT_FILE"
;;
"prometheus-operator-crds")
echo ">> Special Rendering for prometheus-operator-crds ..."
helm template prometheus-operator-crds ./ --namespace kube-system --include-crds > "$OUTPUT_FILE"
;;
*)
echo ">> Standard Rendering for $chart_name ..."
helm template "$chart_name" ./ --namespace "$chart_name" --include-crds > "$OUTPUT_FILE"
;;
esac
echo ""
echo ">> Manifests for $chart_name rendered to $OUTPUT_FILE"
echo ""
else
echo ""
echo ">> Directory $chart_path does not contain a Chart.yaml. Skipping ..."
echo ""
fi
done
echo "----"
- name: Check for Changes
id: check-changes
if: steps.check-dir-changes.outputs.changes-detected == 'true'
run: |
cd ${MANIFEST_DIR}
if git status --porcelain | grep -q .; then
echo ">> Changes detected"
git status --porcelain
echo "changes-detected=true" >> $GITEA_OUTPUT
else
echo ">> No changes detected, skipping PR creation"
exit 0
fi
echo "----"
- name: Commit and Push Changes
id: commit-push
if: steps.check-changes.outputs.changes-detected == 'true'
run: |
cd ${MANIFEST_DIR}
echo ">> Commiting changes to ${BRANCH_NAME} ..."
git add .
git commit -m "chore: Update manifests after change"
REPO_URL="${{ secrets.REPO_URL }}/${{ gitea.repository }}"
echo ">> Pushing changes to $REPO_URL ..."
git push -u "https://oauth2:${{ secrets.BOT_TOKEN }}@$(echo $REPO_URL | sed -e 's|https://||')" ${BRANCH_NAME}
echo "----"
echo "HEAD_BRANCH=${BRANCH_NAME}" >> $GITEA_OUTPUT
echo "push=true" >> $GITEA_OUTPUT
- name: Check for Pull Request
id: check-for-pull-requst
if: steps.commit-push.outputs.push == 'true'
env:
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
GITEA_URL: ${{ secrets.REPO_URL }}
HEAD_BRANCH: ${{ steps.commit-push.outputs.HEAD_BRANCH }}
run: |
cd ${MANIFEST_DIR}
API_ENDPOINT="${GITEA_URL}/api/v1/repos/${{ gitea.repository }}/pulls?base_branch=${BASE_BRANCH}&state=open&page=1"
echo ">> Checking if PR from branch ${HEAD_BRANCH} into ${BASE_BRANCH}"
echo ">> With Endpoint of:"
echo "$API_ENDPOINT"
HTTP_STATUS=$(
curl -X GET \
--silent \
--write-out '%{http_code}' \
--output response_body.json \
--dump-header response_headers.txt \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
"$API_ENDPOINT" 2> response_errors.txt
)
echo ">> HTTP Status Code: $HTTP_STATUS"
echo ">> Response Output ..."
echo "----"
cat response_body.json
echo "----"
cat response_headers.txt
echo "----"
cat response_errors.txt
echo "----"
if [ "$HTTP_STATUS" == "200" ] && [ "$(cat response_body.json | jq -r .[0].state)" == "open" ]; then
echo ">> Pull Request has been found open, will update"
PR_INDEX=$(cat response_body.json | jq -r .[0].number)
echo "pull-request-exists=${PR_INDEX}" >> $GITEA_OUTPUT
echo "pull-request-index=true" >> $GITEA_OUTPUT
elif [ "$HTTP_STATUS" == "200" ] && [ "$(cat response_body.json | jq -r .[0].state)" == "closed" ]; then
echo ">> Pull Request found, but was closed"
echo "pull-request-exists=false" >> $GITEA_OUTPUT
else
echo ">> Pull Request not found"
echo "pull-request-exists=false" >> $GITEA_OUTPUT
fi
echo "----"
- name: Create Pull Request
id: create-pull-request
if: steps.commit-push.outputs.push == 'true' && steps.check-for-pull-requst.outputs.pull-request-exists == 'false'
env:
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
GITEA_URL: ${{ secrets.REPO_URL }}
HEAD_BRANCH: ${{ steps.commit-push.outputs.HEAD_BRANCH }}
run: |
cd ${MANIFEST_DIR}
API_ENDPOINT="${GITEA_URL}/api/v1/repos/${{ gitea.repository }}/pulls"
PAYLOAD=$( jq -n \
--arg head "${HEAD_BRANCH}" \
--arg base "${BASE_BRANCH}" \
--arg assignee "${ASSIGNEE}" \
--arg title "Automated Manifest Update" \
--arg body "This PR contains newly rendered Kubernetes manifests automatically generated by the CI workflow." \
'{head: $head, base: $base, assignee: $assignee, title: $title, body: $body'} )
echo ">> Creating PR from branch ${HEAD_BRANCH} into ${BASE_BRANCH}"
echo ">> With Endpoint of:"
echo "$API_ENDPOINT"
echo ">> With Payload of:"
echo "$PAYLOAD"
HTTP_STATUS=$(
curl -X POST \
--silent \
--write-out '%{http_code}' \
--output response_body.json \
--dump-header response_headers.txt \
--data "$PAYLOAD" \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
"$API_ENDPOINT" 2> response_errors.txt
)
echo ">> HTTP Status Code: $HTTP_STATUS"
echo ">> Response Output ..."
echo "----"
cat response_body.json
echo "----"
cat response_headers.txt
echo "----"
cat response_errors.txt
echo "----"
if [ "$HTTP_STATUS" == "201" ]; then
echo ">> Pull Request created successfully!"
PR_URL=$(cat response_body.json | jq -r .html_url)
echo "pull-request-url=${PR_URL}" >> $GITEA_OUTPUT
PR_ID=$(cat response_body.json | jq -r .id)
echo "pull-request-id=${PR_ID}" >> $GITEA_OUTPUT
echo "pull-request-operation=created" >> $GITEA_OUTPUT
elif [ "$HTTP_STATUS" == "422" ]; then
echo ">> Failed to create PR (HTTP 422: Unprocessable Entity), PR may already exist"
elif [ "$HTTP_STATUS" == "409" ]; then
echo ">> Failed to create PR (HTTP 409: Conflict), PR already exists"
else
echo ">> Failed to create PR, HTTP status code: $HTTP_STATUS"
exit 1
fi
echo "----"
- name: ntfy Created
uses: niniyas/ntfy-action@master
if: steps.create-pull-request.outputs.pull-request-operation == 'created'
with:
url: "${{ secrets.NTFY_URL }}"
topic: "${{ secrets.NTFY_TOPIC }}"
title: "Manifest Render PR Created - Infrastructure"
priority: 3
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,successfully,completed
details: "Manifest rendering for Infrastructure has created a new Pull Request with ID: ${{ steps.create-pull-request.outputs.pull-request-id }}!"
icon: "https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png"
actions: '[{"action": "view", "label": "Open Gitea", "url": "${{ steps.create-pull-request.outputs.pull-request-url }}", "clear": true}]'
- name: ntfy Failed
uses: niniyas/ntfy-action@master
if: failure()
with:
url: "${{ secrets.NTFY_URL }}"
topic: "${{ secrets.NTFY_TOPIC }}"
title: "Manifest Render Failure - Infrastructure"
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: "Manifest rendering for Infrastructure has failed!"
icon: "https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png"
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/infrastructure/actions?workflow=render-manifests.yaml", "clear": true}]'
image: true

View File

@@ -0,0 +1,400 @@
name: render-manifests-merge
on:
pull_request:
branches:
- main
paths:
- 'clusters/cl01tl/helm/**'
types:
- closed
env:
CLUSTER: cl01tl
BASE_BRANCH: manifests
BRANCH_NAME: auto/update-manifests
ASSIGNEE: alexlebens
MAIN_DIR: /workspace/alexlebens/infrastructure/infrastructure
MANIFEST_DIR: /workspace/alexlebens/infrastructure/infrastructure-manifests
jobs:
render-manifests-merge:
runs-on: ubuntu-js
if: ${{ (github.event.pull_request.merged == true) && !(contains(github.event.pull_request.labels.*.name, 'automerge')) }}
steps:
- name: Checkout Main
uses: actions/checkout@v6
with:
path: infrastructure
fetch-depth: 0
- name: Checkout Manifests
uses: actions/checkout@v6
with:
ref: manifests
path: infrastructure-manifests
- name: Set up Helm
uses: azure/setup-helm@v4
with:
token: ${{ secrets.GITEA_TOKEN }}
version: v3.17.2 # Pending https://github.com/helm/helm/pull/30743
- name: Prepare Manifest Branch
run: |
cd ${MANIFEST_DIR}
echo ">> Configure git to use gitea-bot as user ..."
git config user.name "gitea-bot"
git config user.email "gitea-bot@alexlebens.net"
echo ">> Checking if PR branch exists ..."
if [[ $(git ls-remote --heads origin "${BRANCH_NAME}" | wc -l) -gt 0 ]]; then
echo ">> Branch '${BRANCH_NAME}' exists, pulling changes ..."
git fetch origin "${BRANCH_NAME}"
git checkout "${BRANCH_NAME}"
git pull --rebase
else
echo ">> Branch '${BRANCH_NAME}' does not exist, creating ..."
git checkout -b $BRANCH_NAME
fi
echo "----"
- name: Check which Directories have Changes
id: check-dir-changes
run: |
cd ${MAIN_DIR}
RENDER_DIR=()
echo ">> Checking for changes ..."
GIT_DIFF=$(git diff --name-only ${{ gitea.event.before }}..HEAD | xargs -I {} dirname {} | sort -u | grep "clusters/cl01tl/helm/")
if [ -n "${GIT_DIFF}" ]; then
echo ">> Changes detected:"
echo "$GIT_DIFF"
for path in $GIT_DIFF; do
RENDER_DIR+=$(echo "$path" | awk -F '/' '{print $4}')
done
else
echo ">> No changes detected"
fi
if [ -n "${RENDER_DIR}" ]; then
echo ">> Directories to Render:"
echo "$(printf "%s\n" "${RENDER_DIR[@]}" | sort -u)"
echo "----"
echo "changes-detected=true" >> $GITEA_OUTPUT
echo "render-dir<<EOF" >> $GITEA_OUTPUT
echo "$(printf "%s\n" "${RENDER_DIR[@]}" | sort -u)" >> $GITEA_OUTPUT
echo "EOF" >> $GITEA_OUTPUT
else
echo "changes-detected=false" >> $GITEA_OUTPUT
fi
- name: Add Repositories
if: steps.check-dir-changes.outputs.changes-detected == 'true'
env:
RENDER_DIR: ${{ steps.check-dir-changes.outputs.render-dir }}
run: |
cd ${MAIN_DIR}
echo ">> Adding repositories for chart dependencies ..."
for dir in ${RENDER_DIR}; do
helm dependency list --max-col-width 120 ${MAIN_DIR}/clusters/${CLUSTER}/helm/$dir 2> /dev/null \
| tail +2 | head -n -1 \
| awk '{ print "helm repo add " $1 " " $3 }' \
| while read cmd; do echo "$cmd" | sh; done || true
done
if helm repo list | tail +2 | read -r; then
echo ">> Update repository cache ..."
helm repo update
fi
echo "----"
- name: Remove Changed Manifest Files
if: steps.check-dir-changes.outputs.changes-detected == 'true'
env:
RENDER_DIR: ${{ steps.check-dir-changes.outputs.render-dir }}
run: |
cd ${MANIFEST_DIR}
echo ">> Remove manfiest files and rebuild from source ..."
for dir in ${RENDER_DIR}; do
chart_path=${MANIFEST_DIR}/clusters/${CLUSTER}/manifests/$dir
echo "$chart_path"
rm -rf $chart_path/*
done
echo "----"
- name: Render Helm Manifests
id: render-manifests
if: steps.check-dir-changes.outputs.changes-detected == 'true'
env:
RENDER_DIR: ${{ steps.check-dir-changes.outputs.render-dir }}
run: |
cd ${MAIN_DIR}
echo ">> Rendering Manifests ..."
for dir in ${RENDER_DIR}; do
chart_path=${MAIN_DIR}/clusters/${CLUSTER}/helm/$dir
chart_name=$(basename "$chart_path")
echo ">> Rendering chart: $chart_name"
echo ">> Chart path $chart_path"
if [ -f "$chart_path/Chart.yaml" ]; then
mkdir -p ${MANIFEST_DIR}/clusters/${CLUSTER}/manifests/$chart_name
OUTPUT_FILE="${MANIFEST_DIR}/clusters/${CLUSTER}/manifests/$chart_name/$chart_name.yaml"
cd $chart_path
echo ""
echo ">> Building helm dependency ..."
helm dependency build --skip-refresh
echo ""
echo ">> Linting helm ..."
helm lint --namespace "$chart_name"
echo ""
echo ">> Rendering templates ..."
case "$chart_name" in
"stack")
echo ">> Special Rendering for stack ..."
helm template stack ./ --namespace argocd --include-crds > "$OUTPUT_FILE"
;;
"cilium")
echo ">> Special Rendering for cilium ..."
helm template cilium ./ --namespace kube-system --include-crds > "$OUTPUT_FILE"
;;
"coredns")
echo ">> Special Rendering for coredns ..."
helm template coredns ./ --namespace kube-system --include-crds > "$OUTPUT_FILE"
;;
"metrics-server")
echo ">> Special Rendering for metrics-server ..."
helm template metrics-server ./ --namespace kube-system --include-crds > "$OUTPUT_FILE"
;;
"prometheus-operator-crds")
echo ">> Special Rendering for prometheus-operator-crds ..."
helm template prometheus-operator-crds ./ --namespace kube-system --include-crds > "$OUTPUT_FILE"
;;
*)
echo ">> Standard Rendering for $chart_name ..."
helm template "$chart_name" ./ --namespace "$chart_name" --include-crds > "$OUTPUT_FILE"
;;
esac
echo ""
echo ">> Manifests for $chart_name rendered to $OUTPUT_FILE"
echo ""
else
echo ""
echo ">> Directory $chart_path does not contain a Chart.yaml. Skipping ..."
echo ""
fi
done
echo "----"
- name: Check for Changes
id: check-changes
if: steps.check-dir-changes.outputs.changes-detected == 'true'
run: |
cd ${MANIFEST_DIR}
if git status --porcelain | grep -q .; then
echo ">> Changes detected"
git status --porcelain
echo "changes-detected=true" >> $GITEA_OUTPUT
else
echo ">> No changes detected, skipping PR creation"
exit 0
fi
echo "----"
- name: Commit and Push Changes
id: commit-push
if: steps.check-changes.outputs.changes-detected == 'true'
run: |
cd ${MANIFEST_DIR}
echo ">> Commiting changes to ${BRANCH_NAME} ..."
git add .
git commit -m "chore: Update manifests after change"
REPO_URL="${{ secrets.REPO_URL }}/${{ gitea.repository }}"
echo ">> Pushing changes to $REPO_URL ..."
git push -u "https://oauth2:${{ secrets.BOT_TOKEN }}@$(echo $REPO_URL | sed -e 's|https://||')" ${BRANCH_NAME}
echo "----"
echo "HEAD_BRANCH=${BRANCH_NAME}" >> $GITEA_OUTPUT
echo "push=true" >> $GITEA_OUTPUT
- name: Check for Pull Request
id: check-for-pull-requst
if: steps.commit-push.outputs.push == 'true'
env:
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
GITEA_URL: ${{ secrets.REPO_URL }}
HEAD_BRANCH: ${{ steps.commit-push.outputs.HEAD_BRANCH }}
run: |
cd ${MANIFEST_DIR}
API_ENDPOINT="${GITEA_URL}/api/v1/repos/${{ gitea.repository }}/pulls?base_branch=${BASE_BRANCH}&state=open&page=1"
echo ">> Checking if PR from branch ${HEAD_BRANCH} into ${BASE_BRANCH}"
echo ">> With Endpoint of:"
echo "$API_ENDPOINT"
HTTP_STATUS=$(
curl -X GET \
--silent \
--write-out '%{http_code}' \
--output response_body.json \
--dump-header response_headers.txt \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
"$API_ENDPOINT" 2> response_errors.txt
)
echo ">> HTTP Status Code: $HTTP_STATUS"
echo ">> Response Output ..."
echo "----"
cat response_body.json
echo "----"
cat response_headers.txt
echo "----"
cat response_errors.txt
echo "----"
if [ "$HTTP_STATUS" == "200" ] && [ "$(cat response_body.json | jq -r .[0].state)" == "open" ]; then
echo ">> Pull Request has been found open, will update"
PR_INDEX=$(cat response_body.json | jq -r .[0].number)
echo "pull-request-exists=${PR_INDEX}" >> $GITEA_OUTPUT
echo "pull-request-index=true" >> $GITEA_OUTPUT
elif [ "$HTTP_STATUS" == "200" ] && [ "$(cat response_body.json | jq -r .[0].state)" == "closed" ]; then
echo ">> Pull Request found, but was closed"
echo "pull-request-exists=false" >> $GITEA_OUTPUT
else
echo ">> Pull Request not found"
echo "pull-request-exists=false" >> $GITEA_OUTPUT
fi
echo "----"
- name: Create Pull Request
id: create-pull-request
if: steps.commit-push.outputs.push == 'true' && steps.check-for-pull-requst.outputs.pull-request-exists == 'false'
env:
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
GITEA_URL: ${{ secrets.REPO_URL }}
HEAD_BRANCH: ${{ steps.commit-push.outputs.HEAD_BRANCH }}
run: |
cd ${MANIFEST_DIR}
API_ENDPOINT="${GITEA_URL}/api/v1/repos/${{ gitea.repository }}/pulls"
PAYLOAD=$( jq -n \
--arg head "${HEAD_BRANCH}" \
--arg base "${BASE_BRANCH}" \
--arg assignee "${ASSIGNEE}" \
--arg title "Automated Manifest Update" \
--arg body "This PR contains newly rendered Kubernetes manifests automatically generated by the CI workflow." \
'{head: $head, base: $base, assignee: $assignee, title: $title, body: $body'} )
echo ">> Creating PR from branch ${HEAD_BRANCH} into ${BASE_BRANCH}"
echo ">> With Endpoint of:"
echo "$API_ENDPOINT"
echo ">> With Payload of:"
echo "$PAYLOAD"
HTTP_STATUS=$(
curl -X POST \
--silent \
--write-out '%{http_code}' \
--output response_body.json \
--dump-header response_headers.txt \
--data "$PAYLOAD" \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
"$API_ENDPOINT" 2> response_errors.txt
)
echo ">> HTTP Status Code: $HTTP_STATUS"
echo ">> Response Output ..."
echo "----"
cat response_body.json
echo "----"
cat response_headers.txt
echo "----"
cat response_errors.txt
echo "----"
if [ "$HTTP_STATUS" == "201" ]; then
echo ">> Pull Request created successfully!"
PR_URL=$(cat response_body.json | jq -r .html_url)
echo "pull-request-url=${PR_URL}" >> $GITEA_OUTPUT
PR_ID=$(cat response_body.json | jq -r .id)
echo "pull-request-id=${PR_ID}" >> $GITEA_OUTPUT
echo "pull-request-operation=created" >> $GITEA_OUTPUT
elif [ "$HTTP_STATUS" == "422" ]; then
echo ">> Failed to create PR (HTTP 422: Unprocessable Entity), PR may already exist"
elif [ "$HTTP_STATUS" == "409" ]; then
echo ">> Failed to create PR (HTTP 409: Conflict), PR already exists"
else
echo ">> Failed to create PR, HTTP status code: $HTTP_STATUS"
exit 1
fi
echo "----"
- name: ntfy Created
uses: niniyas/ntfy-action@master
if: steps.create-pull-request.outputs.pull-request-operation == 'created'
with:
url: "${{ secrets.NTFY_URL }}"
topic: "${{ secrets.NTFY_TOPIC }}"
title: "Manifest Render PR Created - Infrastructure"
priority: 3
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,successfully,completed
details: "Manifest rendering for Infrastructure has created a new Pull Request with ID: ${{ steps.create-pull-request.outputs.pull-request-id }}!"
icon: "https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png"
actions: '[{"action": "view", "label": "Open Gitea", "url": "${{ steps.create-pull-request.outputs.pull-request-url }}", "clear": true}]'
- name: ntfy Failed
uses: niniyas/ntfy-action@master
if: failure()
with:
url: "${{ secrets.NTFY_URL }}"
topic: "${{ secrets.NTFY_TOPIC }}"
title: "Manifest Render Failure - Infrastructure"
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: "Manifest rendering for Infrastructure has failed!"
icon: "https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png"
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/infrastructure/actions?workflow=render-manifests.yaml", "clear": true}]'
image: true

View File

@@ -0,0 +1,421 @@
name: render-manifests-push
on:
push:
branches:
- main
paths:
- 'clusters/cl01tl/helm/**'
env:
CLUSTER: cl01tl
BASE_BRANCH: manifests
BRANCH_NAME: auto/update-manifests
ASSIGNEE: alexlebens
MAIN_DIR: /workspace/alexlebens/infrastructure/infrastructure
MANIFEST_DIR: /workspace/alexlebens/infrastructure/infrastructure-manifests
jobs:
render-manifests-push:
runs-on: ubuntu-js
steps:
- name: Checkout Main
uses: actions/checkout@v6
with:
path: infrastructure
fetch-depth: 0
- name: Checkout Manifests
uses: actions/checkout@v6
with:
ref: manifests
path: infrastructure-manifests
- name: Check if Commit is from Push
id: check-push-type
run: |
echo "">> Checking if Commit is from Push ..."
git checkout ${{ gitea.event.after }}
PARENT_COUNT=$(git rev-list --parents -n 1 ${{ gitea.event.after }} | wc -w)
echo ">> Commit SHA: ${{ gitea.event.after }}"
echo ">> Word Count (Parent Count + 1): $PARENT_COUNT"
if [ $PARENT_COUNT > 1]; do
echo "">> Commit detected to be a direct commit to main"
fi
echo "parent-count=$PARENT_COUNT" >> "$GITHUB_OUTPUT"
- name: Run CI for Direct Pushes Only
if: steps.check-push-type.outputs.parent-count == '2'
run: |
echo "This is a direct push (non-merge). Running CI/Tests in Gitea."
- name: Set up Helm
uses: azure/setup-helm@v4
if: steps.check-push-type.outputs.parent-count == '2'
with:
token: ${{ secrets.GITEA_TOKEN }}
version: v3.17.2 # Pending https://github.com/helm/helm/pull/30743
- name: Prepare Manifest Branch
if: steps.check-push-type.outputs.parent-count == '2'
run: |
cd ${MANIFEST_DIR}
echo ">> Configure git to use gitea-bot as user ..."
git config user.name "gitea-bot"
git config user.email "gitea-bot@alexlebens.net"
echo ">> Checking if PR branch exists ..."
if [[ $(git ls-remote --heads origin "${BRANCH_NAME}" | wc -l) -gt 0 ]]; then
echo ">> Branch '${BRANCH_NAME}' exists, pulling changes ..."
git fetch origin "${BRANCH_NAME}"
git checkout "${BRANCH_NAME}"
git pull --rebase
else
echo ">> Branch '${BRANCH_NAME}' does not exist, creating ..."
git checkout -b $BRANCH_NAME
fi
echo "----"
- name: Check which Directories have Changes
id: check-dir-changes
if: steps.check-push-type.outputs.parent-count == '2'
run: |
cd ${MAIN_DIR}
RENDER_DIR=()
echo ">> Checking for changes ..."
GIT_DIFF=$(git diff --name-only ${{ gitea.event.before }}..HEAD | xargs -I {} dirname {} | sort -u | grep "clusters/cl01tl/helm/")
if [ -n "${GIT_DIFF}" ]; then
echo ">> Changes detected:"
echo "$GIT_DIFF"
for path in $GIT_DIFF; do
RENDER_DIR+=$(echo "$path" | awk -F '/' '{print $4}')
done
else
echo ">> No changes detected"
fi
if [ -n "${RENDER_DIR}" ]; then
echo ">> Directories to Render:"
echo "$(printf "%s\n" "${RENDER_DIR[@]}" | sort -u)"
echo "----"
echo "changes-detected=true" >> $GITEA_OUTPUT
echo "render-dir<<EOF" >> $GITEA_OUTPUT
echo "$(printf "%s\n" "${RENDER_DIR[@]}" | sort -u)" >> $GITEA_OUTPUT
echo "EOF" >> $GITEA_OUTPUT
else
echo "changes-detected=false" >> $GITEA_OUTPUT
fi
- name: Add Repositories
if: steps.check-dir-changes.outputs.changes-detected == 'true'
env:
RENDER_DIR: ${{ steps.check-dir-changes.outputs.render-dir }}
run: |
cd ${MAIN_DIR}
echo ">> Adding repositories for chart dependencies ..."
for dir in ${RENDER_DIR}; do
helm dependency list --max-col-width 120 ${MAIN_DIR}/clusters/${CLUSTER}/helm/$dir 2> /dev/null \
| tail +2 | head -n -1 \
| awk '{ print "helm repo add " $1 " " $3 }' \
| while read cmd; do echo "$cmd" | sh; done || true
done
if helm repo list | tail +2 | read -r; then
echo ">> Update repository cache ..."
helm repo update
fi
echo "----"
- name: Remove Changed Manifest Files
if: steps.check-dir-changes.outputs.changes-detected == 'true'
env:
RENDER_DIR: ${{ steps.check-dir-changes.outputs.render-dir }}
run: |
cd ${MANIFEST_DIR}
echo ">> Remove manfiest files and rebuild from source ..."
for dir in ${RENDER_DIR}; do
chart_path=${MANIFEST_DIR}/clusters/${CLUSTER}/manifests/$dir
echo "$chart_path"
rm -rf $chart_path/*
done
echo "----"
- name: Render Helm Manifests
id: render-manifests
if: steps.check-dir-changes.outputs.changes-detected == 'true'
env:
RENDER_DIR: ${{ steps.check-dir-changes.outputs.render-dir }}
run: |
cd ${MAIN_DIR}
echo ">> Rendering Manifests ..."
for dir in ${RENDER_DIR}; do
chart_path=${MAIN_DIR}/clusters/${CLUSTER}/helm/$dir
chart_name=$(basename "$chart_path")
echo ">> Rendering chart: $chart_name"
echo ">> Chart path $chart_path"
if [ -f "$chart_path/Chart.yaml" ]; then
mkdir -p ${MANIFEST_DIR}/clusters/${CLUSTER}/manifests/$chart_name
OUTPUT_FILE="${MANIFEST_DIR}/clusters/${CLUSTER}/manifests/$chart_name/$chart_name.yaml"
cd $chart_path
echo ""
echo ">> Building helm dependency ..."
helm dependency build --skip-refresh
echo ""
echo ">> Linting helm ..."
helm lint --namespace "$chart_name"
echo ""
echo ">> Rendering templates ..."
case "$chart_name" in
"stack")
echo ">> Special Rendering for stack ..."
helm template stack ./ --namespace argocd --include-crds > "$OUTPUT_FILE"
;;
"cilium")
echo ">> Special Rendering for cilium ..."
helm template cilium ./ --namespace kube-system --include-crds > "$OUTPUT_FILE"
;;
"coredns")
echo ">> Special Rendering for coredns ..."
helm template coredns ./ --namespace kube-system --include-crds > "$OUTPUT_FILE"
;;
"metrics-server")
echo ">> Special Rendering for metrics-server ..."
helm template metrics-server ./ --namespace kube-system --include-crds > "$OUTPUT_FILE"
;;
"prometheus-operator-crds")
echo ">> Special Rendering for prometheus-operator-crds ..."
helm template prometheus-operator-crds ./ --namespace kube-system --include-crds > "$OUTPUT_FILE"
;;
*)
echo ">> Standard Rendering for $chart_name ..."
helm template "$chart_name" ./ --namespace "$chart_name" --include-crds > "$OUTPUT_FILE"
;;
esac
echo ""
echo ">> Manifests for $chart_name rendered to $OUTPUT_FILE"
echo ""
else
echo ""
echo ">> Directory $chart_path does not contain a Chart.yaml. Skipping ..."
echo ""
fi
done
echo "----"
- name: Check for Changes
id: check-changes
if: steps.check-dir-changes.outputs.changes-detected == 'true'
run: |
cd ${MANIFEST_DIR}
if git status --porcelain | grep -q .; then
echo ">> Changes detected"
git status --porcelain
echo "changes-detected=true" >> $GITEA_OUTPUT
else
echo ">> No changes detected, skipping PR creation"
exit 0
fi
echo "----"
- name: Commit and Push Changes
id: commit-push
if: steps.check-changes.outputs.changes-detected == 'true'
run: |
cd ${MANIFEST_DIR}
echo ">> Commiting changes to ${BRANCH_NAME} ..."
git add .
git commit -m "chore: Update manifests after change"
REPO_URL="${{ secrets.REPO_URL }}/${{ gitea.repository }}"
echo ">> Pushing changes to $REPO_URL ..."
git push -u "https://oauth2:${{ secrets.BOT_TOKEN }}@$(echo $REPO_URL | sed -e 's|https://||')" ${BRANCH_NAME}
echo "----"
echo "HEAD_BRANCH=${BRANCH_NAME}" >> $GITEA_OUTPUT
echo "push=true" >> $GITEA_OUTPUT
- name: Check for Pull Request
id: check-for-pull-requst
if: steps.commit-push.outputs.push == 'true'
env:
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
GITEA_URL: ${{ secrets.REPO_URL }}
HEAD_BRANCH: ${{ steps.commit-push.outputs.HEAD_BRANCH }}
run: |
cd ${MANIFEST_DIR}
API_ENDPOINT="${GITEA_URL}/api/v1/repos/${{ gitea.repository }}/pulls?base_branch=${BASE_BRANCH}&state=open&page=1"
echo ">> Checking if PR from branch ${HEAD_BRANCH} into ${BASE_BRANCH}"
echo ">> With Endpoint of:"
echo "$API_ENDPOINT"
HTTP_STATUS=$(
curl -X GET \
--silent \
--write-out '%{http_code}' \
--output response_body.json \
--dump-header response_headers.txt \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
"$API_ENDPOINT" 2> response_errors.txt
)
echo ">> HTTP Status Code: $HTTP_STATUS"
echo ">> Response Output ..."
echo "----"
cat response_body.json
echo "----"
cat response_headers.txt
echo "----"
cat response_errors.txt
echo "----"
if [ "$HTTP_STATUS" == "200" ] && [ "$(cat response_body.json | jq -r .[0].state)" == "open" ]; then
echo ">> Pull Request has been found open, will update"
PR_INDEX=$(cat response_body.json | jq -r .[0].number)
echo "pull-request-exists=${PR_INDEX}" >> $GITEA_OUTPUT
echo "pull-request-index=true" >> $GITEA_OUTPUT
elif [ "$HTTP_STATUS" == "200" ] && [ "$(cat response_body.json | jq -r .[0].state)" == "closed" ]; then
echo ">> Pull Request found, but was closed"
echo "pull-request-exists=false" >> $GITEA_OUTPUT
else
echo ">> Pull Request not found"
echo "pull-request-exists=false" >> $GITEA_OUTPUT
fi
echo "----"
- name: Create Pull Request
id: create-pull-request
if: steps.commit-push.outputs.push == 'true' && steps.check-for-pull-requst.outputs.pull-request-exists == 'false'
env:
GITEA_TOKEN: ${{ secrets.BOT_TOKEN }}
GITEA_URL: ${{ secrets.REPO_URL }}
HEAD_BRANCH: ${{ steps.commit-push.outputs.HEAD_BRANCH }}
run: |
cd ${MANIFEST_DIR}
API_ENDPOINT="${GITEA_URL}/api/v1/repos/${{ gitea.repository }}/pulls"
PAYLOAD=$( jq -n \
--arg head "${HEAD_BRANCH}" \
--arg base "${BASE_BRANCH}" \
--arg assignee "${ASSIGNEE}" \
--arg title "Automated Manifest Update" \
--arg body "This PR contains newly rendered Kubernetes manifests automatically generated by the CI workflow." \
'{head: $head, base: $base, assignee: $assignee, title: $title, body: $body'} )
echo ">> Creating PR from branch ${HEAD_BRANCH} into ${BASE_BRANCH}"
echo ">> With Endpoint of:"
echo "$API_ENDPOINT"
echo ">> With Payload of:"
echo "$PAYLOAD"
HTTP_STATUS=$(
curl -X POST \
--silent \
--write-out '%{http_code}' \
--output response_body.json \
--dump-header response_headers.txt \
--data "$PAYLOAD" \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
"$API_ENDPOINT" 2> response_errors.txt
)
echo ">> HTTP Status Code: $HTTP_STATUS"
echo ">> Response Output ..."
echo "----"
cat response_body.json
echo "----"
cat response_headers.txt
echo "----"
cat response_errors.txt
echo "----"
if [ "$HTTP_STATUS" == "201" ]; then
echo ">> Pull Request created successfully!"
PR_URL=$(cat response_body.json | jq -r .html_url)
echo "pull-request-url=${PR_URL}" >> $GITEA_OUTPUT
PR_ID=$(cat response_body.json | jq -r .id)
echo "pull-request-id=${PR_ID}" >> $GITEA_OUTPUT
echo "pull-request-operation=created" >> $GITEA_OUTPUT
elif [ "$HTTP_STATUS" == "422" ]; then
echo ">> Failed to create PR (HTTP 422: Unprocessable Entity), PR may already exist"
elif [ "$HTTP_STATUS" == "409" ]; then
echo ">> Failed to create PR (HTTP 409: Conflict), PR already exists"
else
echo ">> Failed to create PR, HTTP status code: $HTTP_STATUS"
exit 1
fi
echo "----"
- name: ntfy Created
uses: niniyas/ntfy-action@master
if: steps.create-pull-request.outputs.pull-request-operation == 'created'
with:
url: "${{ secrets.NTFY_URL }}"
topic: "${{ secrets.NTFY_TOPIC }}"
title: "Manifest Render PR Created - Infrastructure"
priority: 3
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,successfully,completed
details: "Manifest rendering for Infrastructure has created a new Pull Request with ID: ${{ steps.create-pull-request.outputs.pull-request-id }}!"
icon: "https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png"
actions: '[{"action": "view", "label": "Open Gitea", "url": "${{ steps.create-pull-request.outputs.pull-request-url }}", "clear": true}]'
- name: ntfy Failed
uses: niniyas/ntfy-action@master
if: failure()
with:
url: "${{ secrets.NTFY_URL }}"
topic: "${{ secrets.NTFY_TOPIC }}"
title: "Manifest Render Failure - Infrastructure"
priority: 4
headers: '{"Authorization": "Bearer ${{ secrets.NTFY_CRED }}"}'
tags: action,failed
details: "Manifest rendering for Infrastructure has failed!"
icon: "https://cdn.jsdelivr.net/gh/selfhst/icons/png/gitea.png"
actions: '[{"action": "view", "label": "Open Gitea", "url": "https://gitea.alexlebens.dev/alexlebens/infrastructure/actions?workflow=render-manifests.yaml", "clear": true}]'
image: true

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
/**/archive/
/**/charts/
/**/manifests/

View File

@@ -1,21 +0,0 @@
apiVersion: v2
name: calibre-web-automated
version: 1.0.0
description: Calibre Web Automated
keywords:
- calibre-web-automated
- books
home: https://wiki.alexlebens.dev/s/fdcfdb7e-8f73-438e-b59c-3c2de2081885
sources:
- https://github.com/crocodilestick/Calibre-Web-Automator
- https://hub.docker.com/r/crocodilestick/calibre-web-automated
- https://github.com/bjw-s-labs/helm-charts/tree/main/charts/other/app-template
maintainers:
- name: alexlebens
dependencies:
- name: app-template
alias: calibre-web-automated
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.4.0
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/calibre-web.png
appVersion: V3.0.4

View File

@@ -1,78 +0,0 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: calibre-web-automated-gmail-config
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: calibre-web-automated-gmail-config
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
data:
- secretKey: gmail.json
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/calibre-web/gmail
metadataPolicy: None
property: gmail.json
---
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: calibre-web-automated-config-backup-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: calibre-web-automated-config-backup-secret
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
secretStoreRef:
kind: ClusterSecretStore
name: vault
target:
template:
mergePolicy: Merge
engineVersion: v2
data:
RESTIC_REPOSITORY: "{{ `{{ .BUCKET_ENDPOINT }}` }}/calibre-web-automated/calibre-web-automated-config"
data:
- secretKey: BUCKET_ENDPOINT
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/volsync/restic/config
metadataPolicy: None
property: S3_BUCKET_ENDPOINT
- secretKey: RESTIC_PASSWORD
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/volsync/restic/config
metadataPolicy: None
property: RESTIC_PASSWORD
- secretKey: AWS_DEFAULT_REGION
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /cl01tl/volsync/restic/config
metadataPolicy: None
property: AWS_DEFAULT_REGION
- secretKey: AWS_ACCESS_KEY_ID
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /digital-ocean/home-infra/volsync-backups
metadataPolicy: None
property: access_key
- secretKey: AWS_SECRET_ACCESS_KEY
remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: /digital-ocean/home-infra/volsync-backups
metadataPolicy: None
property: secret_key

View File

@@ -1,58 +0,0 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: http-route-calibre
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: http-route-calibre
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: traefik-gateway
namespace: traefik
hostnames:
- calibre.alexlebens.net
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- group: ''
kind: Service
name: calibre-web-automated-main
port: 8083
weight: 100
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: http-route-calibre-downloader
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: http-route-calibre-downloader
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: traefik-gateway
namespace: traefik
hostnames:
- calibre-downloader.alexlebens.net
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- group: ''
kind: Service
name: calibre-web-automated-downloader
port: 8084
weight: 100

View File

@@ -1,36 +0,0 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: calibre-web-automated-nfs-storage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: calibre-web-automated-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
volumeName: calibre-web-automated-nfs-storage
storageClassName: nfs-client
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: calibre-web-automated-ingest-nfs-storage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: calibre-web-automated-ingest-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
volumeName: calibre-web-automated-ingest-nfs-storage
storageClassName: nfs-client
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi

View File

@@ -1,48 +0,0 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: calibre-web-automated-nfs-storage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: calibre-web-automated-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-client
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
nfs:
path: /volume2/Storage/Calibre
server: synologybond.alexlebens.net
mountOptions:
- vers=4
- minorversion=1
- noac
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: calibre-web-automated-ingest-nfs-storage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: calibre-web-automated-ingest-nfs-storage
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
persistentVolumeReclaimPolicy: Retain
storageClassName: nfs-client
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
nfs:
path: /volume2/Storage/Calibre Import
server: synologybond.alexlebens.net
mountOptions:
- vers=4
- minorversion=1
- noac

View File

@@ -1,28 +0,0 @@
apiVersion: volsync.backube/v1alpha1
kind: ReplicationSource
metadata:
name: calibre-web-automated-config-backup-source
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: calibre-web-automated-config-backup-source
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
sourcePVC: calibre-web-automated-config
trigger:
schedule: 0 4 * * *
restic:
pruneIntervalDays: 7
repository: calibre-web-automated-config-backup-secret
retain:
hourly: 1
daily: 3
weekly: 2
monthly: 2
yearly: 4
moverSecurityContext:
runAsUser: 1000
runAsGroup: 100
copyMethod: Snapshot
storageClassName: ceph-block
volumeSnapshotClassName: ceph-blockpool-snapshot

View File

@@ -1,119 +0,0 @@
calibre-web-automated:
controllers:
main:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
containers:
main:
image:
repository: crocodilestick/calibre-web-automated
tag: V3.0.4
pullPolicy: IfNotPresent
env:
- name: TZ
value: US/Central
- name: PUID
value: 1000
- name: PGID
value: 100
resources:
requests:
cpu: 10m
memory: 256Mi
downloader:
type: deployment
replicas: 1
strategy: Recreate
revisionHistoryLimit: 3
containers:
main:
image:
repository: ghcr.io/calibrain/calibre-web-automated-book-downloader
tag: latest@sha256:b1296c5edc89eee8742d86392ce40707233671044a454e002821e5c76cd58deb
pullPolicy: IfNotPresent
env:
- name: FLASK_PORT
value: 8084
- name: UID
value: 1000
- name: GID
value: 100
- name: USE_CF_BYPASS
value: false
- name: CLOUDFLARE_PROXY_URL
value: http://localhost:8000
- name: INGEST_DIR
value: /cwa-book-ingest
- name: BOOK_LANGUAGE
value: end
resources:
requests:
cpu: 10m
memory: 256Mi
bypass:
image:
repository: ghcr.io/sarperavci/cloudflarebypassforscraping
tag: latest@sha256:fc8443dd96450ab10ed455a05397c8a17bab89b8408b7cbb6242fa6e4fb9edf5
pullPolicy: IfNotPresent
resources:
requests:
cpu: 10m
memory: 128Mi
service:
main:
controller: main
ports:
http:
port: 8083
targetPort: 8083
protocol: HTTP
downloader:
controller: downloader
ports:
http:
port: 8084
targetPort: 8084
protocol: HTTP
persistence:
config:
forceRename: calibre-web-automated-config
storageClass: ceph-block
accessMode: ReadWriteOnce
size: 5Gi
retain: true
advancedMounts:
main:
main:
- path: /config
readOnly: false
gmail:
enabled: true
type: secret
name: calibre-web-automated-gmail-config
advancedMounts:
main:
main:
- path: /app/calibre-web/gmail.json
readOnly: true
mountPropagation: None
subPath: gmail.json
books:
existingClaim: calibre-web-automated-nfs-storage
advancedMounts:
main:
main:
- path: /calibre-library
readOnly: false
ingest:
existingClaim: calibre-web-automated-ingest-nfs-storage
advancedMounts:
main:
main:
- path: /cwa-book-ingest
readOnly: false
downloader:
main:
- path: /cwa-book-ingest
readOnly: false

View File

@@ -1,57 +0,0 @@
{{- range $index, $stack := .Values.applicationSet }}
---
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: {{ $stack.name }}
namespace: {{ $.Release.Namespace }}
labels:
app.kubernetes.io/name: {{ $stack.name }}
app.kubernetes.io/instance: {{ $stack.name }}
app.kubernetes.io/part-of: {{ $.Release.Name }}
spec:
syncPolicy:
applicationsSync: create-update
preserveResourcesOnDeletion: false
generators:
- git:
repoURL: {{ $.Values.git.repo }}
revision: {{ $.Values.git.revision }}
directories:
- path: "clusters/{{ $.Values.cluster.name }}/{{ $stack.name }}/*"
template:
metadata:
name: '{{ `{{path.basename}}` }}'
spec:
destination:
name: in-cluster
namespace: '{{ $stack.namespace | default `{{path.basename}}` }}'
project: default
revisionHistoryLimit: 3
source:
repoURL: {{ $.Values.git.repo }}
targetRevision: {{ $.Values.git.revision }}
path: '{{ `{{path}}` }}'
helm:
releaseName: "{{ `{{path.basename}}` }}"
{{- if $stack.ignoreDifferences }}
ignoreDifferences:
{{- toYaml $stack.ignoreDifferences | nindent 8 }}
{{ end }}
syncPolicy:
automated:
prune: {{ $stack.syncPolicy.automated.prune | default false }}
selfHeal: {{ $stack.syncPolicy.automated.selfHeal | default false }}
retry:
limit: 3
backoff:
duration: 1m
factor: 2
maxDuration: 15m
syncOptions:
- CreateNamespace={{ $stack.syncPolicy.syncOptions.createNamespace | default true }}
- ApplyOutOfSyncOnly={{ $stack.syncPolicy.syncOptions.applyOutOfSyncOnly | default true }}
- ServerSideApply={{ $stack.syncPolicy.syncOptions.serverSideApply | default true }}
- PruneLast={{ $stack.syncPolicy.syncOptions.pruneLast | default true }}
- RespectIgnoreDifferences={{ $stack.syncPolicy.syncOptions.respectIgnoreDifferences | default true }}
{{- end }}

View File

@@ -1,112 +0,0 @@
cluster:
name: cl01tl
git:
# repo: git@github.com:alexlebens/infrastructure.git
# repo: https://github.com/alexlebens/infrastructure.git
repo: http://gitea-http.gitea:3000/alexlebens/infrastructure
# repo: ssh://git@gitea-ssh.gitea/alexlebens/infrastructure
revision: HEAD
applicationSet:
- name: applications
ignoreDifferences:
- group: ""
kind: Service
jqPathExpressions:
- .spec.externalName
syncPolicy:
automated:
prune: true
syncOptions:
serverSideApply: true
- name: deployment
namespace: argocd
syncPolicy:
automated:
prune: true
syncOptions:
serverSideApply: true
- name: management
ignoreDifferences:
- group: ""
kind: Service
jqPathExpressions:
- .spec.externalName
syncPolicy:
automated:
prune: true
syncOptions:
serverSideApply: true
- name: monitoring
ignoreDifferences:
- group: ""
kind: Service
jqPathExpressions:
- .spec.externalName
- group: "apps"
kind: StatefulSet
jqPathExpressions:
- .spec.volumeClaimTemplates[]?.apiVersion
- .spec.volumeClaimTemplates[]?.kind
- .spec.volumeClaimTemplates[]?.metadata.creationTimestamp
syncPolicy:
automated:
prune: true
syncOptions:
serverSideApply: true
- name: platform
ignoreDifferences:
- group: ""
kind: Service
jqPathExpressions:
- .spec.externalName
- group: "apps"
kind: StatefulSet
jqPathExpressions:
- .spec.volumeClaimTemplates[]?.apiVersion
- .spec.volumeClaimTemplates[]?.kind
- .spec.volumeClaimTemplates[]?.metadata.creationTimestamp
syncPolicy:
automated:
prune: true
syncOptions:
serverSideApply: true
- name: services
ignoreDifferences:
- group: ""
kind: GpuDevicePlugin
jqPathExpressions:
- .metadata.annotations[]
- group: "apps"
kind: "Deployment"
jsonPointers:
- /spec/template/metadata/annotations/checksum~1secret
- /spec/template/metadata/annotations/checksum~1secret-core
- /spec/template/metadata/annotations/checksum~1secret-jobservice
- /spec/template/metadata/annotations/checksum~1tls
- group: "apps"
kind: "StatefulSet"
jsonPointers:
- /spec/template/metadata/annotations/checksum~1secret
- /spec/template/metadata/annotations/checksum~1tls
- group: "apps"
kind: StatefulSet
jqPathExpressions:
- .spec.volumeClaimTemplates[]?.apiVersion
- .spec.volumeClaimTemplates[]?.kind
- .spec.volumeClaimTemplates[]?.metadata.creationTimestamp
syncPolicy:
automated:
prune: true
syncOptions:
serverSideApply: true
- name: storage
ignoreDifferences:
- group: ""
kind: Service
jqPathExpressions:
- .spec.externalName
syncPolicy:
automated:
prune: true
syncOptions:
serverSideApply: true

View File

@@ -0,0 +1,6 @@
dependencies:
- name: app-template
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.4.0
digest: sha256:b5d823171e1b4dc1d3856f782f0c67cbb5d49e4fa170df2f21b06303c7aff7f5
generated: "2025-11-30T21:05:19.732832-06:00"

View File

@@ -18,4 +18,4 @@ dependencies:
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.4.0
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/actual-budget.png
appVersion: v25.5.0
appVersion: 25.11.0

View File

@@ -0,0 +1,12 @@
dependencies:
- name: argo-workflows
repository: https://argoproj.github.io/argo-helm
version: 0.46.1
- name: argo-events
repository: https://argoproj.github.io/argo-helm
version: 2.4.17
- name: postgres-cluster
repository: oci://harbor.alexlebens.net/helm-charts
version: 6.16.0
digest: sha256:d1e5e0a31c90bdff093db673f95c0e5f1cb5dfa0b910c21e5ec430a3cc4dd6aa
generated: "2025-12-03T22:43:33.154562838Z"

View File

@@ -18,7 +18,7 @@ maintainers:
- name: alexlebens
dependencies:
- name: argo-workflows
version: 0.45.28
version: 0.46.1
repository: https://argoproj.github.io/argo-helm
- name: argo-events
version: 2.4.17

View File

@@ -0,0 +1,6 @@
dependencies:
- name: argo-cd
repository: https://argoproj.github.io/argo-helm
version: 9.1.5
digest: sha256:07f7f6d369af426cdd213ddbc58373a4e5b4f54724efd4612662d7da0315232d
generated: "2025-12-02T21:27:41.876154-06:00"

View File

@@ -15,7 +15,7 @@ maintainers:
- name: alexlebens
dependencies:
- name: argo-cd
version: 9.1.4
version: 9.1.5
repository: https://argoproj.github.io/argo-helm
icon: https://cdn.jsdelivr.net/gh/selfhst/icons/png/argo-cd.png
appVersion: 3.0.0

View File

@@ -0,0 +1,6 @@
dependencies:
- name: app-template
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.4.0
digest: sha256:f3a9990542f24965fadad0b5493059b78cdc3fae91c8214577fa6f41ca5f7de3
generated: "2025-11-30T21:05:21.317114-06:00"

View File

@@ -9,7 +9,7 @@ audiobookshelf:
main:
image:
repository: ghcr.io/advplyr/audiobookshelf
tag: 2.30.0
tag: 2.31.0
pullPolicy: IfNotPresent
env:
- name: TZ

View File

@@ -0,0 +1,12 @@
dependencies:
- name: authentik
repository: https://charts.goauthentik.io/
version: 2025.10.2
- name: cloudflared
repository: oci://harbor.alexlebens.net/helm-charts
version: 1.23.1
- name: postgres-cluster
repository: oci://harbor.alexlebens.net/helm-charts
version: 6.16.0
digest: sha256:2c3f84ecf3c8cabb7aa7e7e8a1b38cced65156c1e1db9b984154f514c33c9f69
generated: "2025-12-03T06:02:07.501444093Z"

View File

@@ -26,7 +26,7 @@ dependencies:
- name: cloudflared
alias: cloudflared
repository: oci://harbor.alexlebens.net/helm-charts
version: 1.23.0
version: 1.23.1
- name: postgres-cluster
alias: postgres-17-cluster
version: 6.16.0

View File

@@ -0,0 +1,6 @@
dependencies:
- name: app-template
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.4.0
digest: sha256:aa797b99d6d8b7aafe142811938408b7f234df6d429a7e076196337cc63876cb
generated: "2025-12-01T20:25:09.888407-06:00"

View File

@@ -0,0 +1,6 @@
dependencies:
- name: app-template
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.4.0
digest: sha256:c6f6d1f2fb9fedf54094920737a6f0bd1a2ab89f0a4122966ca98f6c9d3f11fa
generated: "2025-11-30T21:05:22.694344-06:00"

View File

@@ -15,7 +15,7 @@ bazarr:
main:
image:
repository: ghcr.io/linuxserver/bazarr
tag: 1.5.3@sha256:a42fef2a5ffa1dca8714e12892ba0b8de5c6c513f1bcdb1ffe4143e715cffb45
tag: 1.5.3@sha256:ec11e988e8e13411c994a4d9f43ed9b97409aa92c1da54d9f23926c3da7c2032
pullPolicy: IfNotPresent
env:
- name: TZ

View File

@@ -0,0 +1,6 @@
dependencies:
- name: app-template
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.4.0
digest: sha256:0009729bcf7f1941401b767fd4ae952b7a8d44f80053090b4a9224de912a14ef
generated: "2025-12-01T20:25:13.511406-06:00"

View File

@@ -112,8 +112,6 @@ blocky:
backrest IN CNAME traefik-cl01tl
bazarr IN CNAME traefik-cl01tl
booklore IN CNAME traefik-cl01tl
calibre IN CNAME traefik-cl01tl
calibre-downloader IN CNAME traefik-cl01tl
ceph IN CNAME traefik-cl01tl
code-server IN CNAME traefik-cl01tl
ephemera IN CNAME traefik-cl01tl

View File

@@ -0,0 +1,9 @@
dependencies:
- name: app-template
repository: https://bjw-s-labs.github.io/helm-charts/
version: 4.4.0
- name: mariadb-cluster
repository: https://helm.mariadb.com/mariadb-operator
version: 25.10.2
digest: sha256:264725306c1d1f38140293c0820abdc7e8aa4f39764b4d91e20200705ce2ec91
generated: "2025-11-30T21:05:24.649316-06:00"

View File

@@ -9,7 +9,7 @@ booklore:
main:
image:
repository: ghcr.io/booklore-app/booklore
tag: v1.11.0
tag: v1.12.0
pullPolicy: IfNotPresent
env:
- name: TZ

View File

@@ -0,0 +1,6 @@
dependencies:
- name: cert-manager
repository: https://charts.jetstack.io
version: v1.19.1
digest: sha256:0b1238a5552bc6d457d4b1a2a1f387a3e7f2c19f820ecb64e14d20481a1ed1ce
generated: "2025-12-01T20:25:17.762628-06:00"

View File

@@ -0,0 +1,6 @@
dependencies:
- name: cilium
repository: https://helm.cilium.io/
version: 1.18.4
digest: sha256:e38eb92ee87c9a52b0f45a2451142ade02bac7d484b246d32379eacce3800bc8
generated: "2025-12-02T17:17:49.043599-06:00"

View File

@@ -75,6 +75,7 @@ cilium:
prometheus:
enabled: true
serviceMonitor:
trustCRDsExist: true
enabled: true
envoy:
enabled: true

View File

@@ -0,0 +1,9 @@
dependencies:
- name: cloudnative-pg
repository: https://cloudnative-pg.io/charts/
version: 0.26.1
- name: plugin-barman-cloud
repository: https://cloudnative-pg.io/charts/
version: 0.3.1
digest: sha256:b38e5104d77ab1737a27a2542eda958e82038443940f07b7c2cbe3b0a477e1e6
generated: "2025-12-01T20:25:20.341325-06:00"

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