Compare commits

..

288 Commits

Author SHA1 Message Date
alexlebens
610af91b32 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2025-03-06 00:10:46 +00:00
alexlebens
d3abb9efb5 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2025-03-03 17:17:28 +00:00
alexlebens
473bbf0dba Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2025-03-03 17:16:31 +00:00
alexlebens
9de1e8bb20 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2025-02-26 19:58:07 +00:00
alexlebens
c273645944 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2025-02-18 02:19:47 +00:00
alexlebens
35b6e040fb Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2025-02-18 02:17:50 +00:00
alexlebens
0a73098177 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2025-02-18 02:16:40 +00:00
alexlebens
2510671468 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2025-01-31 03:08:56 +00:00
alexlebens
528fb29dc1 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2025-01-17 23:23:32 +00:00
alexlebens
71a76aef91 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2025-01-08 23:39:27 +00:00
alexlebens
a683733861 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2025-01-08 21:50:39 +00:00
alexlebens
7193fa0e43 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2025-01-08 21:34:13 +00:00
alexlebens
4d0778700c Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2025-01-08 21:20:44 +00:00
alexlebens
9400aae940 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2025-01-07 20:22:42 +00:00
alexlebens
bd37be4bd5 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2025-01-07 19:45:54 +00:00
alexlebens
11918960dc Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-30 23:11:15 +00:00
alexlebens
e5ad8122cb Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-30 23:04:31 +00:00
alexlebens
34c5ae6ff9 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-30 23:00:56 +00:00
alexlebens
efaf49caeb Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-30 22:55:32 +00:00
alexlebens
c0b6e849ae Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-25 03:08:20 +00:00
alexlebens
38487b296b Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-22 23:29:48 +00:00
alexlebens
13b0b3c060 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-22 05:48:31 +00:00
alexlebens
81d804f550 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-22 05:40:38 +00:00
alexlebens
72c30e6dc5 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-22 05:30:04 +00:00
alexlebens
f0c2cd0b19 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-22 05:26:54 +00:00
alexlebens
45670a55c8 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-22 05:22:53 +00:00
alexlebens
5d96c9a1d6 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-22 05:08:32 +00:00
alexlebens
9c0b97c753 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-22 04:54:14 +00:00
alexlebens
5b4f8d0ed7 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-22 04:46:33 +00:00
alexlebens
f07d9ec151 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-22 04:40:09 +00:00
alexlebens
515f4f91be Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-22 04:31:16 +00:00
alexlebens
a2dc782e14 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-22 04:20:27 +00:00
alexlebens
fe322f909e Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-21 01:33:43 +00:00
alexlebens
fd75a39adb Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-21 01:25:55 +00:00
alexlebens
7b29fe16d8 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-19 20:50:15 +00:00
alexlebens
081ac23ce4 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-19 19:59:50 +00:00
alexlebens
552ee9f4ce Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-19 19:58:55 +00:00
alexlebens
9b96e15872 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-16 16:32:15 +00:00
alexlebens
6b9abf71cb Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-12-12 17:13:15 +00:00
alexlebens
4b84ec822a Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-11-24 04:41:10 +00:00
alexlebens
c08ddac2cb Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-11-24 04:38:54 +00:00
alexlebens
0194e3fb79 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-10-19 05:59:06 +00:00
alexlebens
37e3de028e Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-10-13 17:39:19 +00:00
alexlebens
3ac94f8aed Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-10-13 04:35:21 +00:00
alexlebens
30c8789ffa Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-10-13 04:18:28 +00:00
alexlebens
8f4de35f4a Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-10-12 00:03:40 +00:00
alexlebens
4dafc9c9e2 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-09-28 21:44:00 +00:00
alexlebens
b42ff70fb3 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-09-28 07:07:44 +00:00
alexlebens
047338cf09 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-09-28 02:30:22 +00:00
alexlebens
9524ccad75 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-08-24 06:30:34 +00:00
alexlebens
a82c593200 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-08-19 21:43:11 +00:00
alexlebens
13da8c9acb Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-08-19 21:41:35 +00:00
alexlebens
b6ceaa4dcd Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-08-19 21:40:30 +00:00
alexlebens
500d1cb201 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-07-08 17:09:44 +00:00
alexlebens
6d5e37091c Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-07-05 03:52:17 +00:00
alexlebens
d374fb1638 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-07-05 03:45:55 +00:00
alexlebens
563b46e16b Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-07-05 03:41:51 +00:00
alexlebens
7776863d14 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-07-01 23:08:39 +00:00
alexlebens
4f02bbc1c7 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-06-28 22:01:20 +00:00
alexlebens
224437bb9b Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-06-22 23:26:36 +00:00
alexlebens
d5a477f068 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-06-22 23:22:39 +00:00
alexlebens
9149d3c05c Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-06-22 23:18:20 +00:00
alexlebens
dc072ba102 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-06-22 22:59:00 +00:00
alexlebens
c3bb7d6137 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-06-15 02:37:15 +00:00
alexlebens
7e38a8aa04 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-06-15 02:31:10 +00:00
alexlebens
4486902d0e Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-06-15 02:24:04 +00:00
alexlebens
81006a958e Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-06-15 02:17:59 +00:00
alexlebens
a1b6a39989 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-06-13 16:01:17 +00:00
alexlebens
4caa7851a4 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-06-13 15:58:46 +00:00
alexlebens
0930742d3e Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-28 20:28:16 +00:00
alexlebens
4f2ed4e5cc Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-28 20:09:51 +00:00
alexlebens
43f7bf3766 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-28 19:04:11 +00:00
alexlebens
ad7e930bd9 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-26 20:43:35 +00:00
alexlebens
7a3cfda12f Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-26 20:31:27 +00:00
alexlebens
da8171ce2c Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-26 20:28:37 +00:00
alexlebens
e4cbf821a7 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-25 02:50:46 +00:00
alexlebens
efed4951f6 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-25 02:01:05 +00:00
alexlebens
32927c3c64 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-20 17:14:22 +00:00
alexlebens
6239551f2c Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-20 17:12:31 +00:00
alexlebens
3992d9a7a0 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-18 19:40:36 +00:00
alexlebens
9700f8c662 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-18 19:40:23 +00:00
alexlebens
a12294d785 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-17 17:08:33 +00:00
alexlebens
939bb2a104 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-17 17:08:04 +00:00
alexlebens
98a660ac54 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-16 22:19:58 +00:00
alexlebens
784bd59523 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-16 18:57:46 +00:00
alexlebens
064e67a9fd Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-16 18:44:44 +00:00
alexlebens
b9a68c67b1 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-16 18:44:26 +00:00
alexlebens
0b69ea6362 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-16 18:15:32 +00:00
alexlebens
1ba753446f Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-16 17:49:02 +00:00
alexlebens
9f1c32e5fc Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-16 17:48:43 +00:00
alexlebens
4147016809 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-16 17:47:56 +00:00
alexlebens
24b52d8716 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-16 17:46:59 +00:00
alexlebens
2576527aa0 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-16 17:46:04 +00:00
alexlebens
2aae35d757 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-16 17:45:31 +00:00
alexlebens
548db97f81 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-16 17:45:02 +00:00
alexlebens
094a8b3b90 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-16 17:43:19 +00:00
alexlebens
222a87befc Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-16 17:42:05 +00:00
alexlebens
44be1ae304 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-16 17:35:54 +00:00
alexlebens
e8fb911722 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-16 17:35:46 +00:00
alexlebens
7cd16dd92f Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-05-16 17:35:21 +00:00
alexlebens
1f240a8fac Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-26 20:36:10 +00:00
alexlebens
4b84bd188e Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-26 20:05:43 +00:00
alexlebens
f4a591eaca Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-26 16:00:28 +00:00
alexlebens
8a0068c120 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-23 22:43:42 +00:00
alexlebens
fc751e627b Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-23 21:58:06 +00:00
alexlebens
37e374fa31 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-23 09:35:00 +00:00
alexlebens
d6062263de Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-23 09:33:12 +00:00
alexlebens
631e5c3073 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-22 12:43:52 +00:00
alexlebens
d9e72caf94 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-21 12:41:00 +00:00
alexlebens
4d909a32b4 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-21 10:03:50 +00:00
alexlebens
390b7ccfa1 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-21 09:59:41 +00:00
alexlebens
5e0fc7ffbe Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-20 03:37:42 +00:00
alexlebens
7fd290fb89 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-19 11:41:59 +00:00
alexlebens
4b4acdf570 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-19 11:32:49 +00:00
alexlebens
4ee3bb4d49 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-19 11:22:34 +00:00
alexlebens
d04e10a4e5 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-19 11:05:31 +00:00
alexlebens
86b7430210 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-19 11:01:43 +00:00
alexlebens
c4c054f983 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-19 10:59:06 +00:00
alexlebens
933a92bb07 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-19 10:54:26 +00:00
alexlebens
952ab164d4 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-19 10:51:14 +00:00
alexlebens
c588e18077 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-19 10:41:47 +00:00
alexlebens
0e91873833 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-19 10:09:46 +00:00
alexlebens
3843f7d272 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-19 04:03:15 +00:00
alexlebens
b3f43086d7 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-18 11:49:33 +00:00
alexlebens
af8a8127fe Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-18 11:35:26 +00:00
alexlebens
c0f6ac7fbc Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-18 10:35:57 +00:00
alexlebens
bf62fdd631 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-18 09:44:09 +00:00
alexlebens
b4718bce46 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-18 09:27:18 +00:00
alexlebens
792a5723be Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-18 07:51:23 +00:00
alexlebens
6ca9b94db4 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-18 07:48:20 +00:00
alexlebens
a530195ea9 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-18 07:39:49 +00:00
alexlebens
02801b1aa1 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-18 07:35:35 +00:00
alexlebens
810d74b2ae Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-18 07:17:31 +00:00
alexlebens
d69a2d28b0 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-18 07:07:54 +00:00
alexlebens
d054e42199 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-18 02:02:05 +00:00
alexlebens
63b5ca7614 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-18 02:00:24 +00:00
alexlebens
4be5cd418d Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-18 01:16:18 +00:00
alexlebens
df96e6556e Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-18 01:14:18 +00:00
alexlebens
59b2ed8001 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-18 01:10:07 +00:00
alexlebens
cd9fbe56a4 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-18 01:05:45 +00:00
alexlebens
20fcd67ea3 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-18 01:05:27 +00:00
alexlebens
6f6d30a862 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-18 01:03:35 +00:00
alexlebens
f1a65dd177 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-18 00:55:51 +00:00
alexlebens
bdd7060748 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-17 10:43:21 +00:00
alexlebens
07e2ac7acd Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-15 09:32:13 +00:00
alexlebens
787765f1e7 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-15 08:48:10 +00:00
alexlebens
9f18f3ba2f Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-15 08:44:39 +00:00
alexlebens
e62daee353 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-14 05:38:22 +00:00
alexlebens
85f3f47dca Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-14 05:33:14 +00:00
alexlebens
9ff16890c5 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-14 05:28:29 +00:00
alexlebens
c68b04c38e Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-14 05:20:27 +00:00
alexlebens
04d98c0d65 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-14 05:14:46 +00:00
alexlebens
62512ca909 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-14 05:12:10 +00:00
alexlebens
9409e36b58 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-14 05:07:43 +00:00
alexlebens
25af8d718d Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-14 05:05:34 +00:00
alexlebens
554c480d39 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-14 04:58:16 +00:00
alexlebens
b55dfc3cad Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-14 04:31:36 +00:00
alexlebens
afd5c8b4b2 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-14 04:30:03 +00:00
alexlebens
c7cf440b0e Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-14 04:18:12 +00:00
alexlebens
a5be172d48 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-13 20:58:43 +00:00
alexlebens
dbc1cdd8d5 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-13 09:28:43 +00:00
alexlebens
3c2d3d6ef4 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-13 09:25:13 +00:00
alexlebens
6890d1d974 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-13 08:42:04 +00:00
alexlebens
df8bfb1b55 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-13 08:06:16 +00:00
alexlebens
a6cb051c9c Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-13 02:11:30 +00:00
alexlebens
8154a36b2d Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-12 23:42:50 +00:00
alexlebens
297b3f9a70 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-12 01:38:02 +00:00
alexlebens
af003f0990 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-12 01:35:24 +00:00
alexlebens
0a2facc20d Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-12 01:33:37 +00:00
alexlebens
f06d4e26a1 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-12 01:32:16 +00:00
alexlebens
a2a25f3e2d Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-12 01:05:35 +00:00
alexlebens
e7ee0ee1d6 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-12 00:04:57 +00:00
alexlebens
0553d58a6b Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-12 00:04:10 +00:00
alexlebens
5db00bf5b8 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-11 23:45:21 +00:00
alexlebens
57178b4b42 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-11 23:38:45 +00:00
alexlebens
18f2464049 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-10 04:35:45 +00:00
alexlebens
ba610b41c8 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-10 02:17:05 +00:00
alexlebens
3cfedcd13f Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-09 00:19:33 +00:00
alexlebens
1d4547aea8 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-08 17:30:43 +00:00
alexlebens
eea3e93b2c Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-08 17:28:25 +00:00
alexlebens
72087e86aa Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-06 21:41:20 +00:00
alexlebens
ee1f7a1760 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-05 05:22:32 +00:00
alexlebens
97d93a6f55 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-04 20:53:50 +00:00
alexlebens
98cc39ddcc Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-04 19:43:30 +00:00
alexlebens
cd41ea7174 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-04 19:36:55 +00:00
alexlebens
c65b033644 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-04 17:48:42 +00:00
alexlebens
e07b07eb64 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-04-04 02:15:59 +00:00
AlexanderLebens
871e6e0a62 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-04-01 15:28:34 +00:00
AlexanderLebens
e80814b9b9 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-30 22:47:56 +00:00
AlexanderLebens
e37a5842f5 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-30 20:49:04 +00:00
AlexanderLebens
7be8dfcd6b Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-30 20:43:27 +00:00
AlexanderLebens
d69358027d Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-30 20:32:36 +00:00
AlexanderLebens
3c36d6ce01 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-30 20:27:42 +00:00
AlexanderLebens
4a583293fc Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-30 20:23:11 +00:00
AlexanderLebens
04bce9d600 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-30 20:17:37 +00:00
AlexanderLebens
c8b61dec7e Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-30 19:31:03 +00:00
AlexanderLebens
fca1400d3b Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-30 19:30:25 +00:00
alexlebens
ec74e2fae0 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-03-25 16:16:36 +00:00
alexlebens
f0d53c3b4a Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-03-25 16:16:00 +00:00
alexlebens
25b7379a06 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-03-25 16:13:23 +00:00
alexlebens
6462d8fed1 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-03-25 16:12:41 +00:00
alexlebens
de2b2541c0 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-03-22 21:50:46 +00:00
alexlebens
8dde430d41 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-03-22 21:42:25 +00:00
alexlebens
f27eaafdaa Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-03-18 07:30:19 +00:00
alexlebens
fc12a578fb Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-03-18 07:28:35 +00:00
AlexanderLebens
a05bcb83cb Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-17 07:32:37 +00:00
AlexanderLebens
c62e8ab3ef Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 15:56:20 +00:00
AlexanderLebens
f44a361278 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 15:52:30 +00:00
AlexanderLebens
558fdfd00e Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 15:42:04 +00:00
AlexanderLebens
f38e146609 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 15:37:11 +00:00
AlexanderLebens
10129a8e68 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 15:34:23 +00:00
AlexanderLebens
814ac3c4f8 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 15:29:21 +00:00
AlexanderLebens
23d159db0a Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 15:21:50 +00:00
AlexanderLebens
51ae6468dc Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 15:13:01 +00:00
AlexanderLebens
cbff0f59f2 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 15:04:39 +00:00
AlexanderLebens
bce9ccfa78 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 14:16:57 +00:00
AlexanderLebens
f6a0eedc3f Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 13:25:42 +00:00
AlexanderLebens
3cca83b6cc Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 13:16:04 +00:00
AlexanderLebens
3f309e422c Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 11:44:27 +00:00
AlexanderLebens
455e9d9384 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 10:38:58 +00:00
AlexanderLebens
c7fdfd8f5c Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 10:12:03 +00:00
AlexanderLebens
bd13cce830 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 10:11:36 +00:00
AlexanderLebens
bfc0e8b773 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 07:43:11 +00:00
AlexanderLebens
c784a90fed Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 07:35:02 +00:00
AlexanderLebens
6eba5070ff Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 05:05:02 +00:00
AlexanderLebens
9ef14fba32 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 04:38:07 +00:00
AlexanderLebens
3c9a2f82af Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 04:37:02 +00:00
AlexanderLebens
e1c29c604f Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-16 01:12:28 +00:00
AlexanderLebens
c3e8cf22cc Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-15 08:23:47 +00:00
AlexanderLebens
bbfb4ee61c Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-15 08:19:27 +00:00
AlexanderLebens
c459ef40d3 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-15 08:16:54 +00:00
AlexanderLebens
9f16e49683 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-15 08:01:11 +00:00
AlexanderLebens
5b21ae3351 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-15 07:57:42 +00:00
AlexanderLebens
57458962e8 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-15 05:59:33 +00:00
alexlebens
543addccb4 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-03-14 23:11:53 +00:00
AlexanderLebens
02f2335783 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-14 14:59:42 +00:00
AlexanderLebens
08d9c65bd9 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-14 14:53:10 +00:00
AlexanderLebens
716d16810f Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-14 14:47:17 +00:00
AlexanderLebens
7bb2f3ff91 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-14 12:32:57 +00:00
AlexanderLebens
e8d1097b55 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-14 07:30:33 +00:00
AlexanderLebens
106f40f661 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-14 06:18:30 +00:00
AlexanderLebens
27cf8540f7 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-13 12:00:48 +00:00
AlexanderLebens
5273942d52 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-13 12:00:42 +00:00
AlexanderLebens
76049fa566 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-13 11:55:07 +00:00
AlexanderLebens
69252499cd Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-13 11:49:51 +00:00
AlexanderLebens
d913d3da59 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-13 11:46:28 +00:00
AlexanderLebens
396bbfe5f2 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-13 11:40:51 +00:00
AlexanderLebens
4c895a4ed0 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-13 10:43:34 +00:00
AlexanderLebens
e9a392c950 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-13 10:38:16 +00:00
AlexanderLebens
445738af76 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-13 07:12:16 +00:00
AlexanderLebens
9ea0742dfa Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-13 07:08:49 +00:00
AlexanderLebens
4e9899edc7 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-13 07:07:19 +00:00
AlexanderLebens
f55b3255e3 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-13 05:23:51 +00:00
AlexanderLebens
f39c7c4a80 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-12 04:53:06 +00:00
AlexanderLebens
480d729a4c Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-12 04:50:09 +00:00
AlexanderLebens
250938ffff Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-03-12 04:36:40 +00:00
alexlebens
6c3ad7f7ad Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-03-07 18:25:14 +00:00
alexlebens
e1bc375c55 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-02-28 15:41:17 +00:00
alexlebens
c75b850bfa Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-02-28 14:42:47 +00:00
alexlebens
ed29678481 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-02-27 00:46:29 +00:00
alexlebens
a7a249fe91 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-02-24 00:12:51 +00:00
alexlebens
15375ef4ba Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-02-23 20:14:02 +00:00
alexlebens
d49119097b Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-02-23 02:02:58 +00:00
alexlebens
570a13a8f4 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-02-23 01:02:14 +00:00
alexlebens
6888ede71a Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-02-22 20:57:28 +00:00
alexlebens
16acf28739 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-02-22 20:49:20 +00:00
alexlebens
6bda8bee03 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-02-22 20:05:19 +00:00
alexlebens
0278d8c496 Update index.yaml
Signed-off-by: alexlebens <alexlebens@users.noreply.github.com>
2024-02-21 12:50:25 +00:00
AlexanderLebens
6dfd30b631 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-02-15 18:47:52 +00:00
AlexanderLebens
e62ffb332d Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-02-13 14:34:35 +00:00
AlexanderLebens
3792ad098f Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-02-13 14:07:08 +00:00
AlexanderLebens
ad46386aaf Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-02-13 13:58:08 +00:00
AlexanderLebens
8976ae00ec Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-02-13 13:41:25 +00:00
AlexanderLebens
3ca7ae0bec Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-02-13 13:40:11 +00:00
AlexanderLebens
cfa13cf66a Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-02-13 13:16:12 +00:00
AlexanderLebens
8bf1ac6e6c Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-02-13 13:07:07 +00:00
AlexanderLebens
aaf2cda058 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-02-13 13:01:22 +00:00
AlexanderLebens
75c28e6358 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-02-13 04:05:20 +00:00
AlexanderLebens
a36ea6690f Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-02-13 03:56:01 +00:00
AlexanderLebens
6cb3333d9f Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-02-13 03:06:36 +00:00
AlexanderLebens
5e9f0b0c7c Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-02-13 02:34:06 +00:00
AlexanderLebens
663f974072 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-02-10 18:35:00 +00:00
AlexanderLebens
4b0c86c2b9 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-02-10 18:12:55 +00:00
AlexanderLebens
ee7ea230e6 Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-02-10 11:09:13 +00:00
AlexanderLebens
5f147e0d0a Update index.yaml
Signed-off-by: AlexanderLebens <AlexanderLebens@users.noreply.github.com>
2024-02-10 10:16:35 +00:00
1ab49f7f94 change readme 2024-02-10 03:04:42 -07:00
2992ee5b5b change readme 2024-02-10 03:03:06 -07:00
be85591839 remove for page 2024-02-10 02:53:41 -07:00
195 changed files with 6018 additions and 13328 deletions

View File

@@ -1,2 +0,0 @@
# This file is processed by Renovate bot so that it creates a PR on new major Renovate versions
FROM renovate/renovate:37

112
.github/renovate.json vendored
View File

@@ -1,112 +0,0 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended",
"mergeConfidence:all-badges",
":rebaseStalePrs"
],
"timezone": "US/Mountain",
"schedule": [
"every weekday"
],
"labels": [],
"packageRules": [
{
"description": "Disables for non major Renovate version",
"matchPaths": [
".github/renovate-update-notification/Dockerfile"
],
"matchUpdateTypes": [
"minor",
"patch",
"pin",
"digest",
"rollback"
],
"enabled": false
},
{
"description": "Generate for major Renovate version",
"matchPaths": [
".github/renovate-update-notification/Dockerfile"
],
"matchUpdateTypes": [
"major"
],
"addLabels": [
"upgrade"
],
"automerge": false
},
{
"description": "Label service images",
"matchPackageNames": [
"ghcr.io/alex1989hu/kubelet-serving-cert-approver",
"ghcr.io/cloudnative-pg/postgresql",
"redis/redis-stack-server"
],
"matchDatasources": [
"docker"
],
"addLabels": [
"service",
"image"
],
"automerge": false,
"minimumReleaseAge": "3 days"
},
{
"description": "Label service charts",
"matchPackageNames": [
"elasticsearch",
"redis"
],
"matchDatasources": [
"helm"
],
"addLabels": [
"serivce",
"chart"
],
"automerge": false,
"minimumReleaseAge": "3 days"
},
{
"description": "Label application images",
"matchPackageNames": [
"bbilly1/tubearchivist-jf",
"bbilly1/tubearchivist",
"freshrss/freshrss",
"ghcr.io/gethomepage/homepage",
"homeassistant/home-assistant",
"linuxserver/calibre",
"linuxserver/code-server",
"linuxserver/cops",
"outlinewiki/outline",
"rmcrackan/libation"
],
"matchDatasources": [
"docker"
],
"addLabels": [
"application",
"image"
],
"automerge": false,
"minimumReleaseAge": "3 days"
},
{
"description": "Label application charts",
"matchPackageNames": [],
"matchDatasources": [
"helm"
],
"addLabels": [
"application",
"chart"
],
"automerge": false,
"minimumReleaseAge": "3 days"
}
]
}

View File

@@ -1,37 +0,0 @@
name: lint-and-test-charts
on: pull_request
jobs:
lint-test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v4
with:
version: v3.13.3
- uses: actions/setup-python@v5
with:
python-version: "3.10"
check-latest: true
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.6.1
- name: Run chart-testing (list-changed)
id: list-changed
run: |
changed=$(ct list-changed --target-branch ${{ github.event.repository.default_branch }})
if [[ -n "$changed" ]]; then
echo "changed=true" >> "$GITHUB_OUTPUT"
fi
- name: Run chart-testing (lint)
if: steps.list-changed.outputs.changed == 'true'
run: ct lint --target-branch ${{ github.event.repository.default_branch }}

View File

@@ -1,27 +0,0 @@
name: release-charts
on:
push:
branches:
- main
jobs:
release:
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
- name: Run chart-releaser
uses: helm/chart-releaser-action@v1.6.0
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

9
.gitignore vendored
View File

@@ -1,9 +0,0 @@
# Compiled Helm chart dependencies
charts/**/Chart.lock
charts/**/charts/
# Testing
__snapshot__/
# Docs
_site/

201
LICENSE
View File

@@ -1,201 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

1
_config.yml Normal file
View File

@@ -0,0 +1 @@
theme: jekyll-theme-cayman

View File

@@ -1,13 +0,0 @@
apiVersion: v2
name: calibre-server
version: 0.0.6
description: Chart for Calibre content database
keywords:
- media
- books
sources:
- https://github.com/kovidgoyal/calibre
maintainers:
- name: alexlebens
icon: https://raw.githubusercontent.com/kovidgoyal/calibre/master/resources/images/lt.png
appVersion: 7.5.1

View File

@@ -1,18 +0,0 @@
## Introduction
[Calibre](https://calibre-ebook.com/)
calibre is an e-book manager. It can view, convert, edit and catalog e-books in all of the major e-book formats. It can also talk to e-book reader devices. It can go out to the internet and fetch metadata for your books. It can download newspapers and convert them into e-books for convenient reading.
This chart bootstraps a [Calibre](https://github.com/home-assistant) deployment on a [Kubernetes](https://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
## Prerequisites
- Kubernetes
- Helm
- Traefik v2 / IngressRoute
- Authentik / Auth
## Parameters
See the [values files](values.yaml).

View File

@@ -1,83 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: calibre-server
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: calibre-server
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
revisionHistoryLimit: 3
replicas: {{ .Values.deployment.replicas }}
strategy:
type: {{ .Values.deployment.strategy }}
selector:
matchLabels:
app.kubernetes.io/name: calibre-server
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: calibre-server
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
serviceAccountName: calibre-server
automountServiceAccountToken: true
containers:
- name: calibre-server
image: "{{ .Values.deployment.image.repository }}:{{ .Values.deployment.image.tag }}"
imagePullPolicy: {{ .Values.deployment.image.imagePullPolicy }}
ports:
- name: http
containerPort: {{ .Values.service.http.port }}
protocol: TCP
- name: content
containerPort: {{ .Values.service.content.port }}
protocol: TCP
env:
{{- range $k,$v := .Values.deployment.env }}
- name: {{ $k }}
value: {{ $v | quote }}
{{- end }}
{{- with .Values.deployment.envFrom }}
envFrom:
{{- toYaml . | nindent 12 }}
{{- end }}
volumeMounts:
- mountPath: /config
name: calibre-server-config
- mountPath: /books
name: calibre-server-books
resources:
{{- toYaml .Values.deployment.resources | nindent 12 }}
livenessProbe:
tcpSocket:
port: {{ .Values.service.http.port }}
initialDelaySeconds: 0
failureThreshold: 3
timeoutSeconds: 1
periodSeconds: 10
readinessProbe:
tcpSocket:
port: {{ .Values.service.http.port }}
initialDelaySeconds: 0
failureThreshold: 3
timeoutSeconds: 1
periodSeconds: 10
startupProbe:
tcpSocket:
port: {{ .Values.service.http.port }}
initialDelaySeconds: 0
failureThreshold: 30
timeoutSeconds: 1
periodSeconds: 5
volumes:
- name: calibre-server-config
persistentVolumeClaim:
claimName: calibre-server-config
- name: calibre-server-books
persistentVolumeClaim:
claimName: {{ .Values.persistence.books.claimName }}

View File

@@ -1,34 +0,0 @@
{{- if .Values.ingressRoute.enabled }}
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: calibre-server
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: calibre-server
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: calibre-server
spec:
entryPoints:
- websecure
routes:
- kind: Rule
match: "Host(`{{ .Values.ingressRoute.http.host }}`)"
middlewares:
- name: "authentik-{{ .Release.Name }}"
namespace: {{ .Release.Namespace }}
priority: 10
services:
- kind: Service
name: calibre-server
port: {{ .Values.service.http.port }}
- kind: Rule
match: "Host(`{{ .Values.ingressRoute.http.host }}`) && PathPrefix(`/outpost.goauthentik.io/`)"
priority: 15
services:
- kind: Service
name: {{ .Values.ingressRoute.authentik.outpost }}
port: {{ .Values.ingressRoute.authentik.port }}
{{- end }}

View File

@@ -1,29 +0,0 @@
{{- if .Values.ingressRoute.enabled }}
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: "authentik-{{ .Release.Name }}"
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: auth
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
forwardAuth:
address: "http://{{ .Values.ingressRoute.authentik.outpost }}.authentik:{{ .Values.ingressRoute.authentik.port }}/outpost.goauthentik.io/auth/traefik"
trustForwardHeader: true
authResponseHeaders:
- X-authentik-username
- X-authentik-groups
- X-authentik-email
- X-authentik-name
- X-authentik-uid
- X-authentik-jwt
- X-authentik-meta-jwks
- X-authentik-meta-outpost
- X-authentik-meta-provider
- X-authentik-meta-app
- X-authentik-meta-version
{{- end }}

View File

@@ -1,19 +0,0 @@
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: calibre-server-config
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: calibre-server
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.persistence.config.storageSize }}
storageClassName: {{ .Values.persistence.config.storageClassName }}
volumeMode: {{ .Values.persistence.config.volumeMode }}

View File

@@ -1,11 +0,0 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: calibre-server
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: calibre-server
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: calibre-server

View File

@@ -1,44 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: calibre-server
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: calibre-server
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
type: ClusterIP
ports:
- port: {{ .Values.service.http.port }}
targetPort: http
protocol: TCP
name: http
selector:
app.kubernetes.io/name: calibre-server
app.kubernetes.io/instance: {{ .Release.Name }}
---
apiVersion: v1
kind: Service
metadata:
name: calibre-server-content
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: calibre-server
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
type: ClusterIP
ports:
- port: {{ .Values.service.content.port }}
targetPort: content
protocol: TCP
name: content
selector:
app.kubernetes.io/name: calibre-server
app.kubernetes.io/instance: {{ .Release.Name }}

View File

@@ -1,42 +0,0 @@
deployment:
replicas: 1
strategy: Recreate
image:
repository: linuxserver/calibre
tag: v7.5.1-ls269
imagePullPolicy: IfNotPresent
env:
PGID: "1001"
PUID: "1001"
TZ: UTC
UMASK_SET: "022"
CUSTOM_USER: calibre
TITLE: Calibre Server
NO_DECOR: true
envFrom:
resources:
requests:
memory: 256Mi
cpu: 50m
limits:
memory: 1Gi
cpu: 500m
service:
http:
port: 8080
content:
port: 8081
ingressRoute:
enabled: true
http:
host:
authentik:
outpost:
port: 9000
persistence:
config:
storageClassName: default
storageSize: 5Gi
volumeMode: Filesystem
books:
claimName:

View File

@@ -1,12 +0,0 @@
apiVersion: v2
name: cops
version: 0.0.3
description: Chart for Calibre OPDS (and HTML) PHP Server
keywords:
- calibre
- OPDS
sources:
- https://github.com/seblucas/cops
maintainers:
- name: alexlebens
appVersion: 1.1.3

View File

@@ -1,22 +0,0 @@
## Introduction
[Calibre OPDS (and HTML) PHP Server](https://github.com/seblucas/cops)
COPS's main advantages are :
- No need for many dependencies.
- No need for a lot of CPU or RAM.
- Not much code.
- Search is available.
- It was fun to code.
This chart bootstraps a [COPS](https://github.com/seblucas/cops) deployment on a [Kubernetes](https://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
## Prerequisites
- Kubernetes
- Helm
## Parameters
See the [values files](values.yaml).

View File

@@ -1,82 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace | quote }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
revisionHistoryLimit: 3
replicas: {{ .Values.deployment.replicas }}
strategy:
type: {{ .Values.deployment.strategy }}
selector:
matchLabels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
serviceAccountName: {{ .Release.Name }}
containers:
- name: {{ .Release.Name }}
image: "{{ .Values.deployment.image.repository }}:{{ .Values.deployment.image.tag }}"
imagePullPolicy: {{ .Values.deployment.image.imagePullPolicy }}
ports:
- name: http
containerPort: {{ .Values.service.http.port }}
protocol: TCP
volumeMounts:
- mountPath: /config
name: cops-config
- mountPath: /books
name: cops-books
resources:
{{- toYaml .Values.deployment.resources | nindent 12 }}
env:
{{- range $k,$v := .Values.deployment.env }}
- name: {{ $k }}
value: {{ $v | quote }}
{{- end }}
{{- with .Values.deployment.envFrom }}
envFrom:
{{- toYaml . | nindent 12 }}
{{- end }}
livenessProbe:
httpGet:
path: /
port: {{ .Values.service.http.port }}
initialDelaySeconds: 0
failureThreshold: 5
timeoutSeconds: 1
periodSeconds: 10
readinessProbe:
httpGet:
path: /
port: {{ .Values.service.http.port }}
initialDelaySeconds: 0
failureThreshold: 5
timeoutSeconds: 1
periodSeconds: 10
startupProbe:
httpGet:
path: /
port: {{ .Values.service.http.port }}
initialDelaySeconds: 5
failureThreshold: 30
periodSeconds: 10
timeoutSeconds: 1
volumes:
- name: cops-config
persistentVolumeClaim:
claimName: cops-config
- name: cops-books
persistentVolumeClaim:
claimName: {{ .Values.persistence.books.claimName }}

View File

@@ -1,32 +0,0 @@
{{- if .Values.ingress.enabled }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
annotations:
{{- toYaml .Values.ingress.annotations | nindent 4 }}
spec:
ingressClassName: {{ .Values.ingress.className }}
tls:
- hosts:
- {{ .Values.ingress.host }}
secretName: {{ .Release.Name }}-secret-tls
rules:
- host: {{ .Values.ingress.host }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: {{ .Release.Name }}
port:
name: http
{{- end }}

View File

@@ -1,19 +0,0 @@
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: cops-config
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.persistence.config.storageSize }}
storageClassName: {{ .Values.persistence.config.storageClassName }}
volumeMode: {{ .Values.persistence.config.volumeMode }}

View File

@@ -1,26 +0,0 @@
apiVersion: v1
kind: Pod
metadata:
name: "{{ .Release.Name }}-test-connection"
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
annotations:
"helm.sh/hook": test-success
spec:
restartPolicy: Never
containers:
- name: wget
image: busybox
command: ['wget']
args: ['{{ .Release.Name }}:{{ .Values.service.http.port }}']
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 50m
memory: 256Mi

View File

@@ -1,11 +0,0 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}

View File

@@ -1,22 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
type: ClusterIP
externalTrafficPolicy:
ports:
- port: {{ .Values.service.http.port }}
targetPort: http
protocol: TCP
name: http
selector:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}

View File

@@ -1,36 +0,0 @@
deployment:
replicas: 1
strategy: Recreate
image:
repository: linuxserver/cops
tag: 2.3.1-ls185
imagePullPolicy: IfNotPresent
env:
PGID: "1000"
PUID: "1000"
TZ: UTC
envFrom:
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 50m
memory: 256Mi
serviceAccount:
create: true
service:
http:
port: 80
ingress:
enabled: false
annotations:
className:
host:
persistence:
config:
storageClassName: default
storageSize: 5Gi
volumeMode: Filesystem
books:
claimName:

View File

@@ -1,12 +0,0 @@
apiVersion: v2
name: freshrss
version: 0.0.3
description: Chart for Freshrss
keywords:
- rss
sources:
- https://github.com/FreshRSS/FreshRSS
maintainers:
- name: alexlebens
icon: https://avatars.githubusercontent.com/u/9414285?s=48&v=4
appVersion: "1.23.1"

View File

@@ -1,18 +0,0 @@
## Introduction
[FreshRSS](https://github.com/FreshRSS/FreshRSS)
FreshRSS is a self-hosted RSS feed aggregator.
It is lightweight, easy to work with, powerful, and customizable.
This chart bootstraps a [FreshRSS](https://github.com/FreshRSS/FreshRSS) deployment on a [Kubernetes](https://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
## Prerequisites
- Kubernetes
- Helm
## Parameters
See the [values files](values.yaml).

View File

@@ -1,76 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace | quote }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
revisionHistoryLimit: 3
replicas: {{ .Values.deployment.replicas }}
strategy:
type: {{ .Values.deployment.strategy }}
selector:
matchLabels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
serviceAccountName: {{ .Release.Name }}
containers:
- name: {{ .Release.Name }}
image: "{{ .Values.deployment.image.repository }}:{{ .Values.deployment.image.tag }}"
imagePullPolicy: {{ .Values.deployment.image.imagePullPolicy }}
ports:
- name: http
containerPort: {{ .Values.service.http.port }}
protocol: TCP
volumeMounts:
- name: {{ .Release.Name }}-config
mountPath: /config
resources:
{{- toYaml .Values.deployment.resources | nindent 12 }}
env:
- name: LISTEN
value: "0.0.0.0:{{ .Values.service.http.port }}"
{{- range $k,$v := .Values.deployment.env }}
- name: {{ $k }}
value: {{ $v | quote }}
{{- end }}
{{- with .Values.deployment.envFrom }}
envFrom:
{{- toYaml . | nindent 12 }}
{{- end }}
livenessProbe:
tcpSocket:
port: {{ .Values.service.http.port }}
initialDelaySeconds: 0
failureThreshold: 3
timeoutSeconds: 1
periodSeconds: 10
readinessProbe:
tcpSocket:
port: {{ .Values.service.http.port }}
initialDelaySeconds: 0
failureThreshold: 3
timeoutSeconds: 1
periodSeconds: 10
startupProbe:
tcpSocket:
port: {{ .Values.service.http.port }}
initialDelaySeconds: 0
failureThreshold: 30
timeoutSeconds: 1
periodSeconds: 5
volumes:
- name: {{ .Release.Name }}-config
persistentVolumeClaim:
claimName: {{ .Release.Name }}-config

View File

@@ -1,32 +0,0 @@
{{- if .Values.ingress.enabled }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
annotations:
{{- toYaml .Values.ingress.annotations | nindent 4 }}
spec:
ingressClassName: {{ .Values.ingress.className }}
tls:
- hosts:
- {{ .Values.ingress.host }}
secretName: {{ .Release.Name }}-secret-tls
rules:
- host: {{ .Values.ingress.host }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: {{ .Release.Name }}
port:
name: http
{{- end }}

View File

@@ -1,19 +0,0 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ .Release.Name }}-config
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.persistence.config.storageSize }}
storageClassName: {{ .Values.persistence.config.storageClassName }}
volumeMode: {{ .Values.persistence.config.volumeMode }}

View File

@@ -1,26 +0,0 @@
apiVersion: v1
kind: Pod
metadata:
name: "{{ .Release.Name }}-test-connection"
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
annotations:
"helm.sh/hook": test-success
spec:
restartPolicy: Never
containers:
- name: wget
image: busybox
command: ['wget']
args: ['{{ .Release.Name }}:{{ .Values.service.http.port }}']
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 50m
memory: 256Mi

View File

@@ -1,11 +0,0 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}

View File

@@ -1,21 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
type: ClusterIP
ports:
- port: {{ .Values.service.http.port }}
targetPort: http
protocol: TCP
name: http
selector:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}

View File

@@ -1,33 +0,0 @@
deployment:
replicas: 1
strategy: Recreate
image:
repository: freshrss/freshrss
tag: 1.23.1
imagePullPolicy: IfNotPresent
env:
PGID: "568"
PUID: "568"
TZ: UTC
FRESHRSS_ENV: production
envFrom:
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 50m
memory: 256Mi
service:
http:
port: 80
ingress:
enabled: true
className:
annotations:
host:
persistence:
config:
storageClassName: default
storageSize: 5Gi
volumeMode: Filesystem

View File

@@ -1,12 +0,0 @@
apiVersion: v2
name: home-assistant
version: 0.1.10
description: Chart for Home Assistant
keywords:
- home-automation
sources:
- https://github.com/home-assistant
maintainers:
- name: alexlebens
icon: https://avatars.githubusercontent.com/u/13844975?s=200&v=4
appVersion: v2024.4.3

View File

@@ -1,18 +0,0 @@
## Introduction
[Home Assistant](https://www.home-assistant.io/)
Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server.
This chart bootstraps a [Home-Assistant](https://github.com/home-assistant) deployment on a [Kubernetes](https://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
## Prerequisites
- Kubernetes
- Helm
- Traefik v2 / IngressRoute
- Authentik / Auth
## Parameters
See the [values files](values.yaml).

View File

@@ -1,98 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: home-assistant
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
revisionHistoryLimit: 3
replicas: {{ .Values.deployment.replicas }}
strategy:
type: {{ .Values.deployment.strategy }}
selector:
matchLabels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
serviceAccountName: {{ .Release.Name }}
automountServiceAccountToken: true
containers:
- name: {{ .Release.Name }}
image: "{{ .Values.deployment.image.repository }}:{{ .Values.deployment.image.tag }}"
imagePullPolicy: {{ .Values.deployment.image.imagePullPolicy }}
ports:
- name: http
containerPort: {{ .Values.service.http.port }}
protocol: TCP
env:
{{- range $k,$v := .Values.deployment.env }}
- name: {{ $k }}
value: {{ $v | quote }}
{{- end }}
{{- with .Values.deployment.envFrom }}
envFrom:
{{- toYaml . | nindent 12 }}
{{- end }}
volumeMounts:
- mountPath: /config
name: home-assistant-config
resources:
{{- toYaml .Values.deployment.resources | nindent 12 }}
livenessProbe:
tcpSocket:
port: {{ .Values.service.http.port }}
initialDelaySeconds: 0
failureThreshold: 3
timeoutSeconds: 1
periodSeconds: 10
readinessProbe:
tcpSocket:
port: {{ .Values.service.http.port }}
initialDelaySeconds: 0
failureThreshold: 3
timeoutSeconds: 1
periodSeconds: 10
startupProbe:
tcpSocket:
port: {{ .Values.service.http.port }}
initialDelaySeconds: 0
failureThreshold: 30
timeoutSeconds: 1
periodSeconds: 5
{{- if .Values.codeserver.enabled }}
- name: codeserver
image: "{{ .Values.codeserver.image.repository }}:{{ .Values.codeserver.image.tag }}"
imagePullPolicy: {{ .Values.codeserver.image.imagePullPolicy }}
ports:
- containerPort: {{ .Values.codeserver.service.http.port }}
name: codeserver-http
protocol: TCP
env:
{{- range $k,$v := .Values.codeserver.env }}
- name: {{ $k }}
value: {{ $v | quote }}
{{- end }}
{{- with .Values.codeserver.envFrom }}
envFrom:
{{- toYaml . | nindent 12 }}
{{- end }}
securityContext:
{{- toYaml .Values.codeserver.securityContext | nindent 12 }}
volumeMounts:
- mountPath: /config/home-assistant
name: home-assistant-config
{{- end }}
volumes:
- name: home-assistant-config
persistentVolumeClaim:
claimName: "{{ .Release.Name }}-config"

View File

@@ -1,70 +0,0 @@
{{- if .Values.ingressRoute.enabled }}
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
entryPoints:
- websecure
routes:
- kind: Rule
match: "Host(`{{ .Values.ingressRoute.host }}`)"
middlewares:
- name: "authentik-{{ .Release.Name }}"
namespace: {{ .Release.Namespace }}
priority: 10
services:
- kind: Service
name: {{ .Release.Name }}
port: {{ .Values.service.http.port }}
- kind: Rule
match: "Host(`{{ .Values.ingressRoute.host }}`) && PathPrefix(`/outpost.goauthentik.io/`)"
priority: 15
services:
- kind: Service
name: {{ .Values.ingressRoute.authentik.outpost }}
port: {{ .Values.ingressRoute.authentik.port }}
{{- end }}
---
{{- if and .Values.codeserver.ingressRoute.enabled .Values.codeserver.enabled }}
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: "{{ .Release.Name }}-codeserver"
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
entryPoints:
- websecure
routes:
- kind: Rule
match: "Host(`{{ .Values.codeserver.ingressRoute.host }}`)"
middlewares:
- name: "authentik-{{ .Release.Name }}"
namespace: {{ .Release.Namespace }}
priority: 10
services:
- kind: Service
name: "{{ .Release.Name }}-codeserver"
port: {{ .Values.codeserver.service.http.port }}
- kind: Rule
match: "Host(`{{ .Values.ingressRoute.host }}`) && PathPrefix(`/outpost.goauthentik.io/`)"
priority: 15
services:
- kind: Service
name: {{ .Values.ingressRoute.authentik.outpost }}
port: {{ .Values.ingressRoute.authentik.port }}
{{- end }}

View File

@@ -1,29 +0,0 @@
{{- if .Values.ingressRoute.enabled }}
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: "authentik-{{ .Release.Name }}"
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: auth
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
forwardAuth:
address: "http://{{ .Values.ingressRoute.authentik.outpost }}.authentik:{{ .Values.ingressRoute.authentik.port }}/outpost.goauthentik.io/auth/traefik"
trustForwardHeader: true
authResponseHeaders:
- X-authentik-username
- X-authentik-groups
- X-authentik-email
- X-authentik-name
- X-authentik-uid
- X-authentik-jwt
- X-authentik-meta-jwks
- X-authentik-meta-outpost
- X-authentik-meta-provider
- X-authentik-meta-app
- X-authentik-meta-version
{{- end }}

View File

@@ -1,19 +0,0 @@
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: "{{ .Release.Name }}-config"
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.persistence.config.storageSize }}
storageClassName: {{ .Values.persistence.config.storageClassName }}
volumeMode: {{ .Values.persistence.config.volumeMode }}

View File

@@ -1,18 +0,0 @@
{{- if and .Values.metrics.enabled .Values.metrics.prometheusRule.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
groups:
- name: {{ .Release.Name }}
rules:
{{- toYaml .Values.metrics.prometheusRule.rules | nindent 8 }}
{{- end }}

View File

@@ -1,11 +0,0 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}

View File

@@ -1,26 +0,0 @@
{{- if .Values.metrics.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
selector:
matchLabels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
endpoints:
- port: http
interval: {{ .Values.metrics.serviceMonitor.interval }}
scrapeTimeout: {{ .Values.metrics.serviceMonitor.scrapeTimeout }}
path: /api/prometheus
bearerTokenSecret:
name: {{ .Values.metrics.serviceMonitor.bearerTokenSecret.name }}
key: {{ .Values.metrics.serviceMonitor.bearerTokenSecret.key }}
{{- end }}

View File

@@ -1,46 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
type: ClusterIP
ports:
- port: {{ .Values.service.http.port }}
targetPort: http
protocol: TCP
name: http
selector:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
---
{{- if .Values.codeserver.enabled }}
apiVersion: v1
kind: Service
metadata:
name: "{{ .Release.Name }}-codeserver"
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
type: ClusterIP
ports:
- port: {{ .Values.codeserver.service.http.port }}
targetPort: codeserver-http
protocol: TCP
name: codeserver-http
selector:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}

View File

@@ -1,74 +0,0 @@
deployment:
replicas: 1
strategy: Recreate
image:
repository: homeassistant/home-assistant
tag: 2024.4.3
imagePullPolicy: IfNotPresent
env:
TZ: UTC
envFrom:
resources:
requests:
memory: 512Mi
cpu: 50m
limits:
memory: 1Gi
cpu: 500m
service:
http:
port: 8123
ingressRoute:
enabled: true
host:
authentik:
outpost:
port: 9000
metrics:
enabled: false
serviceMonitor:
interval: 1m
scrapeTimeout: 30s
## See https://www.home-assistant.io/docs/authentication/ for where to find
## long lived access token creation under your account profile, which is
## needed to monitor Home Assistant
bearerTokenSecret:
name: ""
key: ""
prometheusRule:
enabled: false
rules:
- alert: HomeAssistantAbsent
annotations:
description: Home Assistant has disappeared from Prometheus service discovery.
summary: Home Assistant is down.
expr: |
absent(up{job=~".*home-assistant.*"} == 1)
for: 5m
labels:
severity: critical
persistence:
config:
storageClassName: default
storageSize: 1Gi
volumeMode: Filesystem
codeserver:
enabled: false
image:
repository: linuxserver/code-server
tag: 4.23.1
imagePullPolicy: IfNotPresent
env:
TZ: UTC
PUID: 1000
PGID: 1000
DEFAULT_WORKSPACE: /config
envFrom:
securityContext:
runAsUser: 0
service:
http:
port: 8443
ingressRoute:
enabled: false
host:

View File

@@ -1,12 +0,0 @@
apiVersion: v2
name: homepage
version: 0.0.11
description: Chart for benphelps homepage
keywords:
- dashboard
sources:
- https://github.com/gethomepage/homepage
maintainers:
- name: alexlebens
icon: https://github.com/benphelps/homepage/blob/de584eae8f12a0d257e554e9511ef19bd2a1232c/public/mstile-150x150.png
appVersion: v0.8.12

View File

@@ -1,18 +0,0 @@
## Introduction
[Homepage](https://github.com/benphelps/homepage)
A modern (fully static, fast), secure (fully proxied), highly customizable application dashboard with integrations for more than 25 services and translations for over 15 languages. Easily configured via YAML files (or discovery via docker labels).
This chart bootstraps a [Homepage](https://github.com/benphelps/homepage) deployment on a [Kubernetes](https://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
## Prerequisites
- Kubernetes
- Helm
- Traefik v2 / IngressRoute
- Authentik / Auth
## Parameters
See the [values files](values.yaml).

View File

@@ -1,19 +0,0 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ .Release.Name }}
subjects:
- kind: ServiceAccount
name: homepage
namespace: {{ .Release.Namespace }}

View File

@@ -1,51 +0,0 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
rules:
- apiGroups:
- ""
resources:
- namespaces
- pods
- nodes
verbs:
- get
- list
- apiGroups:
- extensions
- networking.k8s.io
resources:
- ingresses
verbs:
- get
- list
- apiGroups:
- traefik.containo.us
- traefik.io
resources:
- ingressroutes
verbs:
- get
- list
- apiGroups:
- metrics.k8s.io
resources:
- nodes
- pods
verbs:
- get
- list
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions/status
verbs:
- get

View File

@@ -1,36 +0,0 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: homepage-config
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: homepage
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: homepage
data:
bookmarks.yaml: {{- if .Values.config.bookmarks }} |
{{- .Values.config.bookmarks | toYaml | nindent 4}}
{{- else }} ""
{{- end }}
docker.yaml: {{- if .Values.config.docker }} |
{{- .Values.config.docker | toYaml | nindent 4 }}
{{- else }} ""
{{- end }}
kubernetes.yaml: {{- if .Values.config.kubernetes }} |
{{- .Values.config.kubernetes | toYaml | nindent 4 }}
{{- else }} ""
{{- end }}
services.yaml: {{- if .Values.config.services }} |
{{- .Values.config.services | toYaml | nindent 4 }}
{{- else }} ""
{{- end }}
settings.yaml: {{- if .Values.config.settings }} |
{{- .Values.config.settings | toYaml | nindent 4 }}
{{- else }} ""
{{- end }}
widgets.yaml: {{- if .Values.config.widgets }} |
{{- .Values.config.widgets | toYaml | nindent 4 }}
{{- else }} ""
{{- end }}

View File

@@ -1,95 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: homepage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: homepage
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: homepage
spec:
revisionHistoryLimit: 3
replicas: {{ .Values.deployment.replicas }}
strategy:
type: {{ .Values.deployment.strategy }}
selector:
matchLabels:
app.kubernetes.io/name: homepage
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: homepage
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
serviceAccountName: homepage
automountServiceAccountToken: true
containers:
- name: {{ .Release.Name }}
image: "{{ .Values.deployment.image.repository }}:{{ .Values.deployment.image.tag }}"
imagePullPolicy: {{ .Values.deployment.image.imagePullPolicy }}
ports:
- name: http
containerPort: {{ .Values.service.http.port }}
protocol: TCP
env:
{{- range $k,$v := .Values.deployment.env }}
- name: {{ $k }}
value: {{ $v | quote }}
{{- end }}
{{- with .Values.deployment.envFrom }}
envFrom:
{{- toYaml . | nindent 12 }}
{{- end }}
volumeMounts:
- name: homepage-config
subPath: bookmarks.yaml
mountPath: /app/config/bookmarks.yaml
- name: homepage-config
subPath: docker.yaml
mountPath: /app/config/docker.yaml
- name: homepage-config
subPath: kubernetes.yaml
mountPath: /app/config/kubernetes.yaml
- name: homepage-config
subPath: services.yaml
mountPath: /app/config/services.yaml
- name: homepage-config
subPath: settings.yaml
mountPath: /app/config/settings.yaml
- name: homepage-config
subPath: widgets.yaml
mountPath: /app/config/widgets.yaml
- name: logs
mountPath: /app/config/logs
resources:
{{- toYaml .Values.deployment.resources | nindent 12 }}
livenessProbe:
failureThreshold: 3
initialDelaySeconds: 0
periodSeconds: 10
tcpSocket:
port: {{ .Values.service.http.port }}
timeoutSeconds: 1
readinessProbe:
failureThreshold: 3
initialDelaySeconds: 0
periodSeconds: 10
tcpSocket:
port: {{ .Values.service.http.port }}
timeoutSeconds: 1
startupProbe:
failureThreshold: 30
initialDelaySeconds: 0
periodSeconds: 5
tcpSocket:
port: {{ .Values.service.http.port }}
timeoutSeconds: 1
volumes:
- name: homepage-config
configMap:
name: homepage-config
- name: logs
emptyDir: {}

View File

@@ -1,32 +0,0 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: homepage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: homepage
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: homepage
spec:
entryPoints:
- websecure
routes:
- kind: Rule
match: "Host(`{{ .Values.ingressRoute.host }}`)"
middlewares:
- name: "authentik-{{ .Release.Name }}"
namespace: {{ .Release.Namespace }}
priority: 10
services:
- kind: Service
name: homepage
port: {{ .Values.service.http.port }}
- kind: Rule
match: "Host(`{{ .Values.ingressRoute.host }}`) && PathPrefix(`/outpost.goauthentik.io/`)"
priority: 15
services:
- kind: Service
name: {{ .Values.ingressRoute.authentik.outpost }}
port: {{ .Values.ingressRoute.authentik.port }}

View File

@@ -1,27 +0,0 @@
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: "authentik-{{ .Release.Name }}"
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: auth
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
forwardAuth:
address: "http://{{ .Values.ingressRoute.authentik.outpost }}.authentik:{{ .Values.ingressRoute.authentik.port }}/outpost.goauthentik.io/auth/traefik"
trustForwardHeader: true
authResponseHeaders:
- X-authentik-username
- X-authentik-groups
- X-authentik-email
- X-authentik-name
- X-authentik-uid
- X-authentik-jwt
- X-authentik-meta-jwks
- X-authentik-meta-outpost
- X-authentik-meta-provider
- X-authentik-meta-app
- X-authentik-meta-version

View File

@@ -1,14 +0,0 @@
apiVersion: v1
kind: Secret
type: kubernetes.io/service-account-token
metadata:
name: "{{ .Release.Name }}-sa-token"
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: homepage
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: homepage
annotations:
kubernetes.io/service-account.name: homepage

View File

@@ -1,13 +0,0 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: homepage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: homepage
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: homepage
secrets:
- name: "{{ .Release.Name }}-sa-token"

View File

@@ -1,21 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: homepage
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: homepage
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: homepage
spec:
type: ClusterIP
ports:
- port: {{ .Values.service.http.port }}
targetPort: http
protocol: TCP
name: http
selector:
app.kubernetes.io/name: homepage
app.kubernetes.io/instance: {{ .Release.Name }}

View File

@@ -1,32 +0,0 @@
deployment:
replicas: 1
strategy: Recreate
image:
repository: ghcr.io/gethomepage/homepage
tag: v0.8.12
imagePullPolicy: IfNotPresent
env:
envFrom:
resources:
requests:
memory: 256Mi
cpu: 50m
limits:
memory: 512Mi
cpu: 500m
service:
http:
port: 3000
ingressRoute:
host:
authentik:
outpost:
port: 9000
config:
bookmarks:
services:
widgets:
kubernetes:
mode: cluster
docker:
settings:

View File

@@ -1,13 +0,0 @@
apiVersion: v2
name: kubelet-serving-cert-approver
version: 0.0.4
description: Kubelet Serving TLS Certificate Signing Request Approver
keywords:
- kubernetes
- certificate
sources:
- https://github.com/alex1989hu/kubelet-serving-cert-approver
- https://github.com/alexlebens/helm-charts/charts/homepage
maintainers:
- name: alexlebens
appVersion: 0.8.1

View File

@@ -1,16 +0,0 @@
## Introduction
[Kubelet Serving Certificate Approver](https://github.com/alex1989hu/kubelet-serving-cert-approver)
Kubelet Serving Certificate Approver is a custom approving controller which approves kubernetes.io/kubelet-serving Certificate Signing Request that kubelet use to serve TLS endpoints.
This chart bootstraps a [Kubelet Serving Certificate Approver](https://github.com/alex1989hu/kubelet-serving-cert-approver) deployment on a [Kubernetes](https://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
## Prerequisites
- Kubernetes
- Helm
## Parameters
See the [values files](values.yaml).

View File

@@ -1,19 +0,0 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kubelet-serving-cert-approver
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: kubelet-serving-cert-approver
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: server
app.kubernetes.io/part-of: kubelet-serving-cert-approver
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: "certificates:{{ .Release.Name }}"
subjects:
- kind: ServiceAccount
name: {{ .Release.Name }}
namespace: {{ .Release.Namespace }}

View File

@@ -1,61 +0,0 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: "certificates:{{ .Release.Name }}"
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: kubelet-serving-cert-approver
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: server
app.kubernetes.io/part-of: kubelet-serving-cert-approver
rules:
- apiGroups:
- certificates.k8s.io
resources:
- certificatesigningrequests
verbs:
- get
- list
- watch
- apiGroups:
- certificates.k8s.io
resources:
- certificatesigningrequests/approval
verbs:
- update
- apiGroups:
- authorization.k8s.io
resources:
- subjectaccessreviews
verbs:
- create
- apiGroups:
- certificates.k8s.io
resourceNames:
- kubernetes.io/kubelet-serving
resources:
- signers
verbs:
- approve
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: "events:{{ .Release.Name }}"
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: kubelet-serving-cert-approver
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: server
app.kubernetes.io/part-of: kubelet-serving-cert-approverv
rules:
- apiGroups:
- ""
resources:
- events
verbs:
- create
- patch

View File

@@ -1,88 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: kubelet-serving-cert-approver
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: kubelet-serving-cert-approver
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: server
app.kubernetes.io/part-of: kubelet-serving-cert-approver
spec:
revisionHistoryLimit: 3
replicas: {{ .Values.deployment.replicas }}
strategy:
type: {{ .Values.deployment.strategy }}
selector:
matchLabels:
app.kubernetes.io/name: kubelet-serving-cert-approver
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: kubelet-serving-cert-approver
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- preference:
matchExpressions:
- key: node-role.kubernetes.io/master
operator: DoesNotExist
- key: node-role.kubernetes.io/control-plane
operator: DoesNotExist
weight: 100
containers:
- name: {{ .Release.Name }}
image: "{{ .Values.deployment.image.repository }}:{{ .Values.deployment.image.tag }}"
imagePullPolicy: {{ .Values.deployment.image.imagePullPolicy }}
ports:
- containerPort: 8080
name: health
- containerPort: 9090
name: metrics
args:
- serve
env:
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
resources:
{{- toYaml .Values.deployment.resources | nindent 12 }}
livenessProbe:
httpGet:
path: /healthz
port: health
initialDelaySeconds: 6
readinessProbe:
httpGet:
path: /readyz
port: health
initialDelaySeconds: 3
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
privileged: false
readOnlyRootFilesystem: true
runAsNonRoot: true
priorityClassName: {{ .Values.deployment.priorityClassName }}
securityContext:
fsGroup: 65534
runAsGroup: 65534
runAsUser: 65534
seccompProfile:
type: RuntimeDefault
serviceAccountName: kubelet-serving-cert-approver
tolerations:
- effect: NoSchedule
key: node-role.kubernetes.io/master
operator: Exists
- effect: NoSchedule
key: node-role.kubernetes.io/control-plane
operator: Exists

View File

@@ -1,10 +0,0 @@
apiVersion: v1
kind: Namespace
metadata:
name: kubelet-serving-cert-approver
labels:
app.kubernetes.io/name: kubelet-serving-cert-approver
app.kubernetes.io/instance: {{ .Release.Name }}
pod-security.kubernetes.io/audit: restricted
pod-security.kubernetes.io/enforce: restricted
pod-security.kubernetes.io/warn: restricted

View File

@@ -1,19 +0,0 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: "events:{{ .Release.Name }}"
namespace: default
labels:
app.kubernetes.io/name: kubelet-serving-cert-approver
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: server
app.kubernetes.io/part-of: kubelet-serving-cert-approver
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: "events:{{ .Release.Name }}"
subjects:
- kind: ServiceAccount
name: kubelet-serving-cert-approver
namespace: {{ .Release.Name }}

View File

@@ -1,11 +0,0 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: kubelet-serving-cert-approver
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: kubelet-serving-cert-approver
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: server
app.kubernetes.io/part-of: kubelet-serving-cert-approver

View File

@@ -1,20 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: kubelet-serving-cert-approver
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: kubelet-serving-cert-approver
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: server
app.kubernetes.io/part-of: kubelet-serving-cert-approver
spec:
ports:
- name: metrics
port: 9090
protocol: TCP
targetPort: metrics
selector:
app.kubernetes.io/name: kubelet-serving-cert-approver
app.kubernetes.io/instance: {{ .Release.Name }}

View File

@@ -1,15 +0,0 @@
deployment:
replicas: 1
strategy: Recreate
priorityClassName: system-cluster-critical
image:
repository: ghcr.io/alex1989hu/kubelet-serving-cert-approver
tag: main
imagePullPolicy: Always
resources:
limits:
cpu: 250m
memory: 32Mi
requests:
cpu: 10m
memory: 16Mi

View File

@@ -1,23 +0,0 @@
apiVersion: v2
name: kyoo
version: 0.1.9
description: Chart for Kyoo
keywords:
- media
sources:
- https://github.com/zoriya/Kyoo
- https://github.com/rabbitmq/rabbitmq-server
- https://github.com/bitnami/charts/tree/main/bitnami/rabbitmq
- https://github.com/meilisearch/meilisearch
- https://github.com/meilisearch/meilisearch-kubernetes/tree/main/charts/meilisearch
maintainers:
- name: alexlebens
icon: https://raw.githubusercontent.com/zoriya/Kyoo/master/icons/icon-256x256.png
dependencies:
- name: rabbitmq
version: 14.0.1
repository: https://charts.bitnami.com/bitnami
- name: meilisearch
version: 0.6.1
repository: https://meilisearch.github.io/meilisearch-kubernetes
appVersion: v4.4.0

View File

@@ -1,17 +0,0 @@
## Introduction
[Kyoo](https://github.com/zoriya/Kyoo)
A portable and vast media library solution.
This chart bootstraps a [Kyoo](https://github.com/zoriya/Kyoo) deployment on a [Kubernetes](https://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
## Prerequisites
- Kubernetes
- Helm
## Parameters
See the [values files](values.yaml).

View File

@@ -1,155 +0,0 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "kyoo.name" -}}
{{- default .Chart.Name .Values.global.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
*/}}
{{- define "kyoo.fullname" -}}
{{- if .Values.global.fullnameOverride -}}
{{- .Values.global.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.global.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label
*/}}
{{- define "kyoo.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "kyoo.labels" -}}
app.kubernetes.io/name: {{ template "kyoo.name" . }}
helm.sh/chart: {{ template "kyoo.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Common labels for specific components
*/}}
{{- define "kyoo.autosync.labels" -}}
app.kubernetes.io/name: {{ template "kyoo.name" . }}-autosync
helm.sh/chart: {{ template "kyoo.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{- define "kyoo.back.labels" -}}
app.kubernetes.io/name: {{ template "kyoo.name" . }}-back
helm.sh/chart: {{ template "kyoo.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{- define "kyoo.front.labels" -}}
app.kubernetes.io/name: {{ template "kyoo.name" . }}-front
helm.sh/chart: {{ template "kyoo.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{- define "kyoo.matcher.labels" -}}
app.kubernetes.io/name: {{ template "kyoo.name" . }}-matcher
helm.sh/chart: {{ template "kyoo.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{- define "kyoo.migrations.labels" -}}
app.kubernetes.io/name: {{ template "kyoo.name" . }}-migrations
helm.sh/chart: {{ template "kyoo.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{- define "kyoo.scanner.labels" -}}
app.kubernetes.io/name: {{ template "kyoo.name" . }}-scanner
helm.sh/chart: {{ template "kyoo.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{- define "kyoo.transcoder.labels" -}}
app.kubernetes.io/name: {{ template "kyoo.name" . }}-transcoder
helm.sh/chart: {{ template "kyoo.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}
{{/*
Labels to use on deploy.spec.selector.matchLabels and svc.spec.selector
*/}}
{{- define "kyoo.matchLabels" -}}
app.kubernetes.io/name: {{ template "kyoo.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{- define "kyoo.autosync.matchLabels" -}}
app.kubernetes.io/name: {{ template "kyoo.name" . }}-autosync
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{- define "kyoo.back.matchLabels" -}}
app.kubernetes.io/name: {{ template "kyoo.name" . }}-back
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{- define "kyoo.front.matchLabels" -}}
app.kubernetes.io/name: {{ template "kyoo.name" . }}-front
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{- define "kyoo.matcher.matchLabels" -}}
app.kubernetes.io/name: {{ template "kyoo.name" . }}-matcher
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{- define "kyoo.migrations.matchLabels" -}}
app.kubernetes.io/name: {{ template "kyoo.name" . }}-migrations
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{- define "kyoo.scanner.matchLabels" -}}
app.kubernetes.io/name: {{ template "kyoo.name" . }}-scanner
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{- define "kyoo.transcoder.matchLabels" -}}
app.kubernetes.io/name: {{ template "kyoo.name" . }}-transcoder
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}
{{/*
Create the name of the service account to use
*/}}
{{- define "kyoo.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "kyoo.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}
{{/*
Create the name of the back persistent volume
*/}}
{{- define "kyoo.backVolumeName" -}}
{{- if .Values.persistence.back.existingClaim -}}
{{ .Values.persistence.back.existingClaim }}
{{- else -}}
{{ printf "%s-back" (include "kyoo.fullname" .) | trunc 63 | trimSuffix "-" }}
{{- end -}}
{{- end -}}
{{/*
Create the name of the metadata persistent volume
*/}}
{{- define "kyoo.metadataVolumeName" -}}
{{- if .Values.persistence.metadata.existingClaim -}}
{{ .Values.persistence.metadata.existingClaim }}
{{- else -}}
{{ printf "%s-metadata" (include "kyoo.fullname" .) | trunc 63 | trimSuffix "-" }}
{{- end -}}
{{- end -}}

View File

@@ -1,75 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "kyoo.fullname" . }}-autosync
namespace: {{ .Release.Namespace }}
annotations:
{{- with .Values.global.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
labels:
{{- include "kyoo.autosync.labels" . | nindent 4 }}
{{- with .Values.global.labels }}
{{ toYaml . | nindent 4 }}
{{- end }}
spec:
revisionHistoryLimit: 3
replicas: {{ .Values.autosync.replicas }}
strategy:
type: Recreate
selector:
matchLabels:
{{- include "kyoo.autosync.matchLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "kyoo.autosync.labels" . | nindent 8 }}
app.kubernetes.io/component: {{ template "kyoo.name" . }}-autosync
annotations:
{{- with .Values.autosync.podAnnotations }}
{{ toYaml . | nindent 8 }}
{{- end }}
spec:
affinity:
{{- with .Values.autosync.affinity }}
{{ toYaml . | nindent 8 }}
{{- end }}
nodeSelector:
{{- with .Values.autosync.nodeSelector }}
{{ toYaml . | nindent 8 }}
{{- end }}
tolerations:
{{- with .Values.autosync.tolerations }}
{{ toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ template "kyoo.serviceAccountName" . }}
securityContext:
{{- with .Values.autosync.securityContext }}
{{ toYaml . | nindent 8 }}
{{- end }}
containers:
- name: {{ template "kyoo.fullname" . }}-autosync
image: "{{ .Values.autosync.image.repository }}:{{ .Values.autosync.image.tag }}"
imagePullPolicy: {{ .Values.autosync.image.pullPolicy }}
resources:
{{ toYaml .Values.autosync.resources | nindent 12 }}
env:
- name: RABBITMQ_HOST
value: {{ template "kyoo.fullname" . }}-rabbitmq
- name: RABBITMQ_DEFAULT_USER
value: "{{ .Values.rabbitmq.auth.username }}"
- name: RABBITMQ_DEFAULT_PASS
valueFrom:
secretKeyRef:
name: "{{ .Values.rabbitmq.auth.existingPasswordSecret }}"
key: "{{ .Values.rabbitmq.auth.existingSecretPasswordKey }}"
{{ if .Values.config.secretAPIKey.existingSimklSecretKey }}
- name: OIDC_SIMKL_CLIENTID
valueFrom:
secretKeyRef:
name: "{{ .Values.config.secretAPIKey.existingSecretName }}"
key: "{{ .Values.config.secretAPIKey.existingSimklSecretKey }}"
{{ end }}
{{- with .Values.autosync.extraVars }}
{{- toYaml . | nindent 12 }}
{{- end }}

View File

@@ -1,173 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "kyoo.fullname" . }}-back
namespace: {{ .Release.Namespace }}
annotations:
{{- with .Values.global.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
labels:
{{- include "kyoo.back.labels" . | nindent 4 }}
{{- with .Values.global.labels }}
{{ toYaml . | nindent 4 }}
{{- end }}
spec:
revisionHistoryLimit: 3
replicas: {{ .Values.back.replicas }}
strategy:
type: Recreate
selector:
matchLabels:
{{- include "kyoo.back.matchLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "kyoo.back.labels" . | nindent 8 }}
app.kubernetes.io/component: {{ template "kyoo.name" . }}-back
annotations:
{{- with .Values.back.podAnnotations }}
{{ toYaml . | nindent 8 }}
{{- end }}
spec:
affinity:
{{- with .Values.back.affinity }}
{{ toYaml . | nindent 8 }}
{{- end }}
nodeSelector:
{{- with .Values.back.nodeSelector }}
{{ toYaml . | nindent 8 }}
{{- end }}
tolerations:
{{- with .Values.back.tolerations }}
{{ toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ template "kyoo.serviceAccountName" . }}
securityContext:
{{- with .Values.back.securityContext }}
{{ toYaml . | nindent 8 }}
{{- end }}
containers:
- name: {{ template "kyoo.fullname" . }}-back
image: "{{ .Values.back.image.repository }}:{{ .Values.back.image.tag }}"
imagePullPolicy: {{ .Values.back.image.pullPolicy }}
resources:
{{ toYaml .Values.back.resources | nindent 12 }}
ports:
- name: kyoo-back
containerPort: {{ .Values.back.service.port }}
protocol: TCP
volumeMounts:
- name: kyoo-back
mountPath: /kyoo
env:
{{- with .Values.back.extraVars }}
{{- toYaml . | nindent 12 }}
{{- end }}
- name: REQUIRE_ACCOUNT_VERIFICATION
value: "{{ .Values.config.requireAccountVerification }}"
- name: UNLOGGED_PERMISSIONS
value: "{{ .Values.config.unloggedPermissions }}"
- name: DEFAULT_PERMISSIONS
value: "{{ .Values.config.defaultPermissions }}"
- name: AUTHENTICATION_SECRET
valueFrom:
secretKeyRef:
name: "{{ .Values.config.secretAuthenticationKey.existingSecretName }}"
key: "{{ .Values.config.secretAuthenticationKey.existingSecretKey }}"
- name: KYOO_APIKEYS
valueFrom:
secretKeyRef:
name: "{{ .Values.config.secretAPIKey.existingSecretName }}"
key: "{{ .Values.config.secretAPIKey.existingKyooSecretKey }}"
- name: PUBLIC_URL
value: "{{ .Values.config.publicUrl }}"
- name: POSTGRES_USER
value: "{{ .Values.config.postgresql.username }}"
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: "{{ .Values.config.postgresql.existingSecretName }}"
key: "{{ .Values.config.postgresql.passwordKey }}"
- name: POSTGRES_DB
value: "{{ .Values.config.postgresql.database }}"
- name: POSTGRES_SERVER
value: "{{ .Values.config.postgresql.host }}"
- name: POSTGRES_PORT
value: "{{ .Values.config.postgresql.port }}"
{{ if .Values.config.oidc.enabled }}
- name: OIDC_SERVICE_NAME
value: "{{ .Values.config.oidc.name }}"
- name: OIDC_SERVICE_LOGO
value: "{{ .Values.config.oidc.logo }}"
- name: OIDC_SERVICE_AUTHORIZATION
value: "{{ .Values.config.oidc.authorization }}"
- name: OIDC_SERVICE_TOKEN
value: "{{ .Values.config.oidc.token }}"
- name: OIDC_SERVICE_PROFILE
value: "{{ .Values.config.oidc.profile }}"
- name: OIDC_SERVICE_SCOPE
value: "{{ .Values.config.oidc.scope }}"
- name: OIDC_CLIENT_ID
valueFrom:
secretKeyRef:
name: "{{ .Values.config.oidc.existingSecretName }}"
key: "{{ .Values.config.oidc.clientIDKey }}"
- name: OIDC_CLIENT_SECRET
valueFrom:
secretKeyRef:
name: "{{ .Values.config.oidc.existingSecretName }}"
key: "{{ .Values.config.oidc.secretIDKey }}"
{{ end }}
- name: MEILI_HOST
value: http://{{ template "kyoo.fullname" . }}-meilisearch.{{ .Release.Namespace }}:{{ .Values.meilisearch.service.port }}
- name: MEILI_MASTER_KEY
valueFrom:
secretKeyRef:
name: "{{ .Values.meilisearch.auth.existingMasterKeySecret }}"
key: MEILI_MASTER_KEY
- name: RABBITMQ_HOST
value: {{ template "kyoo.fullname" . }}-rabbitmq
- name: RABBITMQ_DEFAULT_USER
value: "{{ .Values.rabbitmq.auth.username }}"
- name: RABBITMQ_DEFAULT_PASS
valueFrom:
secretKeyRef:
name: "{{ .Values.rabbitmq.auth.existingPasswordSecret }}"
key: "{{ .Values.rabbitmq.auth.existingSecretPasswordKey }}"
{{- if .Values.back.livenessProbe.enabled }}
livenessProbe:
httpGet:
path: {{ .Values.back.livenessProbe.path }}
port: {{ .Values.back.service.port }}
initialDelaySeconds: {{ .Values.back.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.back.livenessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.back.livenessProbe.timeoutSeconds }}
successThreshold: {{ .Values.back.livenessProbe.successThreshold }}
failureThreshold: {{ .Values.back.livenessProbe.failureThreshold }}
{{- end }}
{{- if .Values.back.readinessProbe.enabled }}
readinessProbe:
httpGet:
path: {{ .Values.back.livenessProbe.path }}
port: {{ .Values.back.service.port }}
initialDelaySeconds: {{ .Values.back.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.back.readinessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.back.readinessProbe.timeoutSeconds }}
successThreshold: {{ .Values.back.readinessProbe.successThreshold }}
failureThreshold: {{ .Values.back.readinessProbe.failureThreshold }}
{{- end }}
volumes:
- name: kyoo-back
{{- if .Values.persistence.back.enabled }}
persistentVolumeClaim:
claimName: {{ include "kyoo.backVolumeName" . }}
{{- else }}
emptyDir: {}
{{- end }}

View File

@@ -1,90 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "kyoo.fullname" . }}-front
namespace: {{ .Release.Namespace }}
annotations:
{{- with .Values.global.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
labels:
{{- include "kyoo.front.labels" . | nindent 4 }}
{{- with .Values.global.labels }}
{{ toYaml . | nindent 4 }}
{{- end }}
spec:
revisionHistoryLimit: 3
replicas: {{ .Values.front.replicas }}
strategy:
type: Recreate
selector:
matchLabels:
{{- include "kyoo.front.matchLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "kyoo.front.labels" . | nindent 8 }}
app.kubernetes.io/component: {{ template "kyoo.name" . }}-front
annotations:
{{- with .Values.front.podAnnotations }}
{{ toYaml . | nindent 8 }}
{{- end }}
spec:
affinity:
{{- with .Values.front.affinity }}
{{ toYaml . | nindent 8 }}
{{- end }}
nodeSelector:
{{- with .Values.front.nodeSelector }}
{{ toYaml . | nindent 8 }}
{{- end }}
tolerations:
{{- with .Values.front.tolerations }}
{{ toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ template "kyoo.serviceAccountName" . }}
securityContext:
{{- with .Values.front.securityContext }}
{{ toYaml . | nindent 8 }}
{{- end }}
containers:
- name: {{ template "kyoo.fullname" . }}-front
image: "{{ .Values.front.image.repository }}:{{ .Values.front.image.tag }}"
imagePullPolicy: {{ .Values.front.image.pullPolicy }}
resources:
{{ toYaml .Values.front.resources | nindent 12 }}
ports:
- name: kyoo-front
containerPort: {{ .Values.front.service.port }}
protocol: TCP
env:
{{- with .Values.back.extraVars }}
{{- toYaml . | nindent 12 }}
{{- end }}
- name: KYOO_URL
value: http://{{ template "kyoo.fullname" . }}-back.{{ .Release.Namespace }}:{{ .Values.back.service.port }}
{{- if .Values.front.livenessProbe.enabled }}
livenessProbe:
httpGet:
path: {{ .Values.front.livenessProbe.path }}
port: {{ .Values.front.service.port }}
initialDelaySeconds: {{ .Values.front.livenessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.front.livenessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.front.livenessProbe.timeoutSeconds }}
successThreshold: {{ .Values.front.livenessProbe.successThreshold }}
failureThreshold: {{ .Values.front.livenessProbe.failureThreshold }}
{{- end }}
{{- if .Values.front.readinessProbe.enabled }}
readinessProbe:
httpGet:
path: {{ .Values.front.livenessProbe.path }}
port: {{ .Values.front.service.port }}
initialDelaySeconds: {{ .Values.front.readinessProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.front.readinessProbe.periodSeconds }}
timeoutSeconds: {{ .Values.front.readinessProbe.timeoutSeconds }}
successThreshold: {{ .Values.front.readinessProbe.successThreshold }}
failureThreshold: {{ .Values.front.readinessProbe.failureThreshold }}
{{- end }}

View File

@@ -1,92 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "kyoo.fullname" . }}-matcher
namespace: {{ .Release.Namespace }}
annotations:
{{- with .Values.global.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
labels:
{{- include "kyoo.matcher.labels" . | nindent 4 }}
{{- with .Values.global.labels }}
{{ toYaml . | nindent 4 }}
{{- end }}
spec:
revisionHistoryLimit: 3
replicas: {{ .Values.matcher.replicas }}
strategy:
type: Recreate
selector:
matchLabels:
{{- include "kyoo.matcher.matchLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "kyoo.matcher.labels" . | nindent 8 }}
app.kubernetes.io/component: {{ template "kyoo.name" . }}-matcher
annotations:
{{- with .Values.matcher.podAnnotations }}
{{ toYaml . | nindent 8 }}
{{- end }}
spec:
affinity:
{{- with .Values.matcher.affinity }}
{{ toYaml . | nindent 8 }}
{{- end }}
nodeSelector:
{{- with .Values.matcher.nodeSelector }}
{{ toYaml . | nindent 8 }}
{{- end }}
tolerations:
{{- with .Values.matcher.tolerations }}
{{ toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ template "kyoo.serviceAccountName" . }}
securityContext:
{{- with .Values.matcher.securityContext }}
{{ toYaml . | nindent 8 }}
{{- end }}
containers:
- name: {{ template "kyoo.fullname" . }}-matcher
image: "{{ .Values.matcher.image.repository }}:{{ .Values.matcher.image.tag }}"
imagePullPolicy: {{ .Values.matcher.image.pullPolicy }}
resources:
{{ toYaml .Values.matcher.resources | nindent 12 }}
command:
- matcher
env:
{{- with .Values.back.extraVars }}
{{- toYaml . | nindent 12 }}
{{- end }}
- name: KYOO_URL
value: http://{{ template "kyoo.fullname" . }}-back.{{ .Release.Namespace }}:{{ .Values.back.service.port }}
{{- if .Values.config.secretAPIKey.existingKyooSecretKey }}
- name: KYOO_APIKEYS
valueFrom:
secretKeyRef:
name: "{{ .Values.config.secretAPIKey.existingSecretName }}"
key: "{{ .Values.config.secretAPIKey.existingKyooSecretKey }}"
{{- end }}
{{- if .Values.config.secretAPIKey.existingTMDBSecretKey }}
- name: THEMOVIEDB_APIKEY
valueFrom:
secretKeyRef:
name: "{{ .Values.config.secretAPIKey.existingSecretName }}"
key: "{{ .Values.config.secretAPIKey.existingTMDBSecretKey }}"
{{- end }}
- name: LIBRARY_LANGUAGES
value: "{{ .Values.config.libraryLanguages }}"
- name: RABBITMQ_HOST
value: {{ template "kyoo.fullname" . }}-rabbitmq
- name: RABBITMQ_DEFAULT_USER
value: "{{ .Values.rabbitmq.auth.username }}"
- name: RABBITMQ_DEFAULT_PASS
valueFrom:
secretKeyRef:
name: "{{ .Values.rabbitmq.auth.existingPasswordSecret }}"
key: "{{ .Values.rabbitmq.auth.existingSecretPasswordKey }}"

View File

@@ -1,133 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "kyoo.fullname" . }}-migrations
namespace: {{ .Release.Namespace }}
annotations:
{{- with .Values.global.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
labels:
{{- include "kyoo.migrations.labels" . | nindent 4 }}
{{- with .Values.global.labels }}
{{ toYaml . | nindent 4 }}
{{- end }}
spec:
revisionHistoryLimit: 3
replicas: {{ .Values.migrations.replicas }}
strategy:
type: Recreate
selector:
matchLabels:
{{- include "kyoo.migrations.matchLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "kyoo.migrations.labels" . | nindent 8 }}
app.kubernetes.io/component: {{ template "kyoo.name" . }}-migrations
annotations:
{{- with .Values.migrations.podAnnotations }}
{{ toYaml . | nindent 8 }}
{{- end }}
spec:
affinity:
{{- with .Values.migrations.affinity }}
{{ toYaml . | nindent 8 }}
{{- end }}
nodeSelector:
{{- with .Values.migrations.nodeSelector }}
{{ toYaml . | nindent 8 }}
{{- end }}
tolerations:
{{- with .Values.migrations.tolerations }}
{{ toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ template "kyoo.serviceAccountName" . }}
securityContext:
{{- with .Values.migrations.securityContext }}
{{ toYaml . | nindent 8 }}
{{- end }}
containers:
- name: {{ template "kyoo.fullname" . }}-migrations
image: "{{ .Values.migrations.image.repository }}:{{ .Values.migrations.image.tag }}"
imagePullPolicy: {{ .Values.migrations.image.pullPolicy }}
resources:
{{ toYaml .Values.migrations.resources | nindent 12 }}
env:
{{- with .Values.back.extraVars }}
{{- toYaml . | nindent 12 }}
{{- end }}
- name: REQUIRE_ACCOUNT_VERIFICATION
value: "{{ .Values.config.requireAccountVerification }}"
- name: UNLOGGED_PERMISSIONS
value: "{{ .Values.config.unloggedPermissions }}"
- name: DEFAULT_PERMISSIONS
value: "{{ .Values.config.defaultPermissions }}"
- name: AUTHENTICATION_SECRET
valueFrom:
secretKeyRef:
name: "{{ .Values.config.secretAuthenticationKey.existingSecretName }}"
key: "{{ .Values.config.secretAuthenticationKey.existingSecretKey }}"
- name: KYOO_APIKEYS
valueFrom:
secretKeyRef:
name: "{{ .Values.config.secretAPIKey.existingSecretName }}"
key: "{{ .Values.config.secretAPIKey.existingKyooSecretKey }}"
- name: PUBLIC_URL
value: "{{ .Values.config.publicUrl }}"
- name: POSTGRES_USER
value: "{{ .Values.config.postgresql.username }}"
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: "{{ .Values.config.postgresql.existingSecretName }}"
key: "{{ .Values.config.postgresql.passwordKey }}"
- name: POSTGRES_DB
value: "{{ .Values.config.postgresql.database }}"
- name: POSTGRES_SERVER
value: "{{ .Values.config.postgresql.host }}"
- name: POSTGRES_PORT
value: "{{ .Values.config.postgresql.port }}"
{{ if .Values.config.oidc.enabled }}
- name: OIDC_SERVICE_NAME
value: "{{ .Values.config.oidc.name }}"
- name: OIDC_SERVICE_LOGO
value: "{{ .Values.config.oidc.logo }}"
- name: OIDC_SERVICE_AUTHORIZATION
value: "{{ .Values.config.oidc.authorization }}"
- name: OIDC_SERVICE_TOKEN
value: "{{ .Values.config.oidc.token }}"
- name: OIDC_SERVICE_PROFILE
value: "{{ .Values.config.oidc.profile }}"
- name: OIDC_SERVICE_SCOPE
value: "{{ .Values.config.oidc.scope }}"
- name: OIDC_CLIENT_ID
valueFrom:
secretKeyRef:
name: "{{ .Values.config.oidc.existingSecretName }}"
key: "{{ .Values.config.oidc.clientIDKey }}"
- name: OIDC_CLIENT_SECRET
valueFrom:
secretKeyRef:
name: "{{ .Values.config.oidc.existingSecretName }}"
key: "{{ .Values.config.oidc.secretIDKey }}"
{{ end }}
- name: MEILI_HOST
value: http://{{ template "kyoo.fullname" . }}-meilisearch.{{ .Release.Namespace }}:{{ .Values.meilisearch.service.port }}
- name: MEILI_MASTER_KEY
valueFrom:
secretKeyRef:
name: "{{ .Values.meilisearch.auth.existingMasterKeySecret }}"
key: MEILI_MASTER_KEY
- name: RABBITMQ_HOST
value: {{ template "kyoo.fullname" . }}-rabbitmq
- name: RABBITMQ_DEFAULT_USER
value: "{{ .Values.rabbitmq.auth.username }}"
- name: RABBITMQ_DEFAULT_PASS
valueFrom:
secretKeyRef:
name: "{{ .Values.rabbitmq.auth.existingPasswordSecret }}"
key: "{{ .Values.rabbitmq.auth.existingSecretPasswordKey }}"

View File

@@ -1,108 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "kyoo.fullname" . }}-scanner
namespace: {{ .Release.Namespace }}
annotations:
{{- with .Values.global.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
labels:
{{- include "kyoo.scanner.labels" . | nindent 4 }}
{{- with .Values.global.labels }}
{{ toYaml . | nindent 4 }}
{{- end }}
spec:
revisionHistoryLimit: 3
replicas: {{ .Values.scanner.replicas }}
strategy:
type: Recreate
selector:
matchLabels:
{{- include "kyoo.scanner.matchLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "kyoo.scanner.labels" . | nindent 8 }}
app.kubernetes.io/component: {{ template "kyoo.name" . }}-scanner
annotations:
{{- with .Values.scanner.podAnnotations }}
{{ toYaml . | nindent 8 }}
{{- end }}
spec:
affinity:
{{- with .Values.scanner.affinity }}
{{ toYaml . | nindent 8 }}
{{- end }}
nodeSelector:
{{- with .Values.scanner.nodeSelector }}
{{ toYaml . | nindent 8 }}
{{- end }}
tolerations:
{{- with .Values.scanner.tolerations }}
{{ toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ template "kyoo.serviceAccountName" . }}
securityContext:
{{- with .Values.scanner.securityContext }}
{{ toYaml . | nindent 8 }}
{{- end }}
containers:
- name: {{ template "kyoo.fullname" . }}-scanner
image: "{{ .Values.scanner.image.repository }}:{{ .Values.scanner.image.tag }}"
imagePullPolicy: {{ .Values.scanner.image.pullPolicy }}
resources:
{{ toYaml .Values.scanner.resources | nindent 12 }}
volumeMounts:
- name: kyoo-library
mountPath: "{{ .Values.persistence.library.mountPath }}"
command:
- scanner
env:
{{- with .Values.back.extraVars }}
{{- toYaml . | nindent 12 }}
{{- end }}
- name: KYOO_URL
value: http://{{ template "kyoo.fullname" . }}-back.{{ .Release.Namespace }}:{{ .Values.back.service.port }}
{{- if .Values.config.secretAPIKey.existingKyooSecretKey }}
- name: KYOO_APIKEYS
valueFrom:
secretKeyRef:
name: "{{ .Values.config.secretAPIKey.existingSecretName }}"
key: "{{ .Values.config.secretAPIKey.existingKyooSecretKey }}"
{{- end }}
{{- if .Values.config.secretAPIKey.existingTMDBSecretKey }}
- name: THEMOVIEDB_APIKEY
valueFrom:
secretKeyRef:
name: "{{ .Values.config.secretAPIKey.existingSecretName }}"
key: "{{ .Values.config.secretAPIKey.existingTMDBSecretKey }}"
{{- end }}
- name: LIBRARY_LANGUAGES
value: "{{ .Values.config.libraryLanguages }}"
- name: LIBRARY_IGNORE_PATTERN
value: "{{ .Values.config.libraryIgnorePattern }}"
- name: SCANNER_LIBRARY_ROOT
value: "{{ .Values.persistence.library.mountPath }}"
- name: RABBITMQ_HOST
value: {{ template "kyoo.fullname" . }}-rabbitmq
- name: RABBITMQ_DEFAULT_USER
value: "{{ .Values.rabbitmq.auth.username }}"
- name: RABBITMQ_DEFAULT_PASS
valueFrom:
secretKeyRef:
name: "{{ .Values.rabbitmq.auth.existingPasswordSecret }}"
key: "{{ .Values.rabbitmq.auth.existingSecretPasswordKey }}"
volumes:
- name: kyoo-library
{{- if .Values.persistence.library.enabled }}
persistentVolumeClaim:
claimName: {{ .Values.persistence.library.existingClaim }}
{{- else }}
emptyDir: {}
{{- end }}

View File

@@ -1,114 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "kyoo.fullname" . }}-transcoder
namespace: {{ .Release.Namespace }}
annotations:
{{- with .Values.global.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
labels:
{{- include "kyoo.transcoder.labels" . | nindent 4 }}
{{- with .Values.global.labels }}
{{ toYaml . | nindent 4 }}
{{- end }}
spec:
revisionHistoryLimit: 3
replicas: {{ .Values.transcoder.replicas }}
strategy:
type: Recreate
selector:
matchLabels:
{{- include "kyoo.transcoder.matchLabels" . | nindent 6 }}
template:
metadata:
labels:
{{- include "kyoo.transcoder.labels" . | nindent 8 }}
app.kubernetes.io/component: {{ template "kyoo.name" . }}-transcoder
annotations:
{{- with .Values.transcoder.podAnnotations }}
{{ toYaml . | nindent 8 }}
{{- end }}
spec:
affinity:
{{- with .Values.transcoder.affinity }}
{{ toYaml . | nindent 8 }}
{{- end }}
nodeSelector:
{{- with .Values.transcoder.nodeSelector }}
{{ toYaml . | nindent 8 }}
{{- end }}
tolerations:
{{- with .Values.transcoder.tolerations }}
{{ toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ template "kyoo.serviceAccountName" . }}
securityContext:
{{- with .Values.transcoder.securityContext }}
{{ toYaml . | nindent 8 }}
{{- end }}
containers:
- name: {{ template "kyoo.fullname" . }}-transcoder
image: "{{ .Values.transcoder.image.repository }}:{{ .Values.transcoder.image.tag }}"
imagePullPolicy: {{ .Values.transcoder.image.pullPolicy }}
resources:
{{ toYaml .Values.transcoder.resources | nindent 12 }}
ports:
- name: kyoo-transcoder
containerPort: {{ .Values.transcoder.service.port }}
protocol: TCP
volumeMounts:
- name: kyoo-metadata
mountPath: "{{ .Values.persistence.metadata.mountPath }}"
- name: kyoo-cache
mountPath: "{{ .Values.persistence.cache.mountPath }}"
- name: kyoo-library
mountPath: "{{ .Values.persistence.library.mountPath }}"
env:
{{- with .Values.back.extraVars }}
{{- toYaml . | nindent 12 }}
{{- end }}
{{- if eq .Values.config.transcoderProfile "vaapi" }}
- name: GOCODER_HWACCEL
value: "vaapi"
- name: GOCODER_VAAPI_RENDERER
value: "{{ .Values.config.transcoderRenderPath }}"
{{- else if eq .Values.config.transcoderProfile "qsv" }}
- name: GOCODER_HWACCEL
value: "qsv"
- name: GOCODER_QSV_RENDERER
value: "{{ .Values.config.transcoderRenderPath }}"
{{- else if eq .Values.config.transcoderProfile "nvidia" }}
- name: GOCODER_HWACCEL
value: "nvidia"
{{- else }}
- name: GOCODER_HWACCEL
value: "disabled"
{{- end }}
- name: GOCODER_PRESET
value: "{{ .Values.config.transcoderPreset }}"
- name: GOCODER_METADATA_ROOT
value: "{{ .Values.persistence.metadata.mountPath }}"
- name: GOCODER_CACHE_ROOT
value: "{{ .Values.persistence.cache.mountPath }}"
volumes:
- name: kyoo-metadata
{{- if .Values.persistence.metadata.enabled }}
persistentVolumeClaim:
claimName: {{ include "kyoo.metadataVolumeName" . }}
{{- else }}
emptyDir: {}
{{- end }}
- name: kyoo-cache
emptyDir:
sizeLimit: {{ .Values.persistence.cache.size }}
- name: kyoo-library
{{- if .Values.persistence.library.enabled }}
persistentVolumeClaim:
claimName: {{ .Values.persistence.library.existingClaim }}
{{- else }}
emptyDir: {}
{{- end }}

View File

@@ -1,44 +0,0 @@
{{- if .Values.ingress.enabled }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ template "kyoo.fullname" . }}
namespace: {{ .Release.Namespace }}
annotations:
{{- with .Values.global.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- toYaml .Values.ingress.annotations | nindent 4 }}
labels:
{{- include "kyoo.labels" . | nindent 4 }}
{{- with .Values.global.labels }}
{{ toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.ingress.labels }}
{{ toYaml . | nindent 4 }}
{{- end }}
spec:
ingressClassName: {{ .Values.ingress.className }}
tls:
- hosts:
- {{ .Values.ingress.host }}
secretName: {{ template "kyoo.fullname" . }}-secret-tls
rules:
- host: {{ .Values.ingress.host }}
http:
paths:
- path: /
backend:
service:
name: "{{ template "kyoo.fullname" . }}-front"
port:
name: kyoo-front
pathType: ImplementationSpecific
- path: /api
backend:
service:
name: "{{ template "kyoo.fullname" . }}-back"
port:
name: kyoo-back
pathType: ImplementationSpecific
{{- end }}

View File

@@ -1,54 +0,0 @@
{{- if and .Values.persistence.back.enabled (not .Values.persistence.back.existingClaim) }}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: {{ template "kyoo.backVolumeName" . }}
namespace: {{ .Release.Namespace }}
annotations:
{{- with .Values.global.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- if .Values.persistence.back.retain }}
helm.sh/resource-policy: keep
{{- end }}
labels:
{{- include "kyoo.labels" . | nindent 4 }}
{{- with .Values.global.labels }}
{{ toYaml . | nindent 4 }}
{{- end }}
spec:
storageClassName: {{ .Values.persistence.back.storageClass }}
accessModes:
- {{ .Values.persistence.back.accessMode }}
resources:
requests:
storage: {{ .Values.persistence.back.size }}
{{- end }}
---
{{- if and .Values.persistence.metadata.enabled (not .Values.persistence.metadata.existingClaim) }}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: {{ template "kyoo.metadataVolumeName" . }}
namespace: {{ .Release.Namespace }}
annotations:
{{- with .Values.global.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- if .Values.persistence.metadata.retain }}
"helm.sh/resource-policy": keep
{{- end }}
labels:
{{- include "kyoo.labels" . | nindent 4 }}
{{- with .Values.global.labels }}
{{ toYaml . | nindent 4 }}
{{- end }}
spec:
storageClassName: {{ .Values.persistence.metadata.storageClass }}
accessModes:
- {{ .Values.persistence.metadata.accessMode }}
resources:
requests:
storage: {{ .Values.persistence.metadata.size }}
{{- end }}

View File

@@ -1,20 +0,0 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ template "kyoo.serviceAccountName" . }}
namespace: {{ .Release.Namespace }}
annotations:
{{- with .Values.global.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.serviceAccount.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
labels:
{{- include "kyoo.labels" . | nindent 4 }}
{{- with .Values.global.labels }}
{{ toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.serviceAccount.labels }}
{{ toYaml . | nindent 4 }}
{{- end }}

View File

@@ -1,100 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: {{ template "kyoo.fullname" . }}-back
namespace: {{ .Release.Namespace }}
annotations:
{{- with .Values.global.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.back.service.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
labels:
{{- include "kyoo.back.labels" . | nindent 4 }}
{{- with .Values.global.labels }}
{{ toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.back.service.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
type: {{ .Values.back.service.type }}
ports:
- port: {{ .Values.back.service.port }}
targetPort: kyoo-back
protocol: TCP
name: kyoo-back
selector:
{{- include "kyoo.back.matchLabels" . | nindent 4 }}
{{- with .Values.back.service.extraSelectorLabels }}
{{- toYaml . | nindent 4 }}
{{- end }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ template "kyoo.fullname" . }}-front
namespace: {{ .Release.Namespace }}
annotations:
{{- with .Values.global.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.front.service.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
labels:
{{- include "kyoo.front.labels" . | nindent 4 }}
{{- with .Values.global.labels }}
{{ toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.front.service.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
type: {{ .Values.front.service.type }}
ports:
- port: {{ .Values.front.service.port }}
targetPort: kyoo-front
protocol: TCP
name: kyoo-front
selector:
{{- include "kyoo.front.matchLabels" . | nindent 4 }}
{{- with .Values.front.service.extraSelectorLabels }}
{{- toYaml . | nindent 4 }}
{{- end }}
---
apiVersion: v1
kind: Service
metadata:
name: transcoder
namespace: {{ .Release.Namespace }}
annotations:
{{- with .Values.global.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.transcoder.service.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
labels:
{{- include "kyoo.transcoder.labels" . | nindent 4 }}
{{- with .Values.global.labels }}
{{ toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.transcoder.service.labels }}
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
type: {{ .Values.transcoder.service.type }}
ports:
- port: {{ .Values.transcoder.service.port }}
targetPort: kyoo-transcoder
protocol: TCP
name: kyoo-transcoder
selector:
{{- include "kyoo.transcoder.matchLabels" . | nindent 4 }}
{{- with .Values.transcoder.service.extraSelectorLabels }}
{{- toYaml . | nindent 4 }}
{{- end }}

View File

@@ -1,892 +0,0 @@
## Global
##
global:
# -- Set an override for the prefix of the fullname
nameOverride:
# -- Set the entire name definition
fullnameOverride:
# -- Set additional global labels. Helm templates can be used.
labels: {}
# -- Set additional global annotations. Helm templates can be used.
annotations: {}
## Service Account
##
serviceAccount:
# -- Specifies whether a service account should be created
create: false
# -- Annotations to add to the service account
annotations: {}
# -- Labels to add to the service account
labels: {}
# -- The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
## Config options
##
config:
## Secret key
## Specificy the secret name and the key containg a strong secret key
##
secretAuthenticationKey:
existingSecretName: ""
existingSecretKey: ""
## API keys
## Specificy the secret name and the key containg an API key for that service
##
secretAPIKey:
existingSecretName: ""
# -- Kyoo
existingKyooSecretKey: ""
# -- The Movie Database
existingTMDBSecretKey: ""
# -- Simkl: https://simkl.docs.apiary.io/#
existingSimklSecretKey: ""
# Langauges
libraryLanguages: en
# A pattern (regex) to ignore video files, ie ".*/[dD]ownloads?/.*"
libraryIgnorePattern: ""
# If this is true, new accounts wont have any permissions before you approve them in your admin dashboard.
requireAccountVerification: true
# Specify permissions of guest accounts, default is no permissions,
# but you can allow anyone to use your instance without account by doing:
# UNLOGGED_PERMISSIONS=overall.read,overall.play
# You can specify this to allow guests users to see your collection without behing able to play videos for example:
# UNLOGGED_PERMISSIONS=overall.read
unloggedPermissions: overall.read
# Specify permissions of new accounts.
defaultPermissions: overall.read,overall.play
# Hardware transcoding (equivalent of --profile docker compose option).
# cpu (no hardware acceleration) or vaapi or qsv or nvidia
transcoderProfile: cpu
# Path to the hardware device for the specificied transcoder profile
transcoderRenderPath: /dev/dri/renderD128
# the preset used during transcode. faster means worst quality, you can probably use a slower preset with hwaccels
# warning: using vaapi hwaccel disable presets (they are not supported).
transcoderPreset: fast
# The url you can use to reach your kyoo instance. This is also used during oidc to redirect users to your instance.
publicUrl: ""
## OIDC authentication
##
oidc:
enabled: false
# Name of the OIDC provider, ie Authentik, Keycloak, Authelia, etc
name: ""
# URL to the an image of the provider logo
logo: ""
# Urls to access the provider
authorization: ""
token: ""
profile: ""
# Scopes space separeted
scope: "openid profile email"
# Generated from the provider, these are expected to be stored in a secret
existingSecretName: ""
clientIDKey: ""
secretIDKey: ""
## Postgresql
##
postgresql:
username: ""
database: ""
host: ""
port: ""
# -- Use a secret to store the pasword
existingSecretName: ""
passwordKey: ""
## Configure the ingress resource that allows you to access the
## kyoo installation. Set up the URL
## ref: http://kubernetes.io/docs/user-guide/ingress/
##
ingress:
# -- Enables or disables the ingress
enabled: false
# -- Provide additional annotations which may be required.
annotations: {}
# -- Provide additional labels which may be required.
labels: {}
# -- Set the ingressClass that is used for this ingress.
className: ""
## Configure the hosts for the ingress
host: chart-example.local
## Enable persistence using Persistent Volume Claims
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
##
persistence:
back:
# -- Enables or disables the persistence item. Defaults to true
enabled: true
# -- Storage Class for the config volume.
# If set to `-`, dynamic provisioning is disabled.
# If set to something else, the given storageClass is used.
# If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner.
storageClass: ""
# -- If you want to reuse an existing claim, the name of the existing PVC can be passed here.
existingClaim: ""
# -- AccessMode for the persistent volume.
# Make sure to select an access mode that is supported by your storage provider!
# [[ref]](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes)
accessMode: ReadWriteOnce
# -- The amount of storage that is requested for the persistent volume.
size: 5Gi
# -- Set to true to retain the PVC upon `helm uninstall`
retain: false
metadata:
# -- Enables or disables the persistence item. Defaults to true
enabled: true
# -- Storage Class for the config volume.
# If set to `-`, dynamic provisioning is disabled.
# If set to something else, the given storageClass is used.
# If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner.
storageClass: ""
# -- If you want to reuse an existing claim, the name of the existing PVC can be passed here.
existingClaim: ""
# -- AccessMode for the persistent volume.
# Make sure to select an access mode that is supported by your storage provider!
# [[ref]](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes)
accessMode: ReadWriteOnce
# -- The amount of storage that is requested for the persistent volume.
size: 5Gi
# -- Set to true to retain the PVC upon `helm uninstall`
retain: false
# -- Mount path inside container
mountPath: /metadata
cache:
# -- Transcoder cache will be mounted as an emptyDir, specificy a limit to the cache size
size: 10Gi
# -- Mount path inside container
mountPath: /cache
library:
enabled: false
# -- Provide an existing claim to you media library
existingClaim: ""
# -- Mount path inside container, used as the root path for the library
mountPath: /video
## Auto Sync
##
autosync:
## Kyoo Auto Sync image version
## ref: https://hub.docker.com/r/zoriya/kyoo_autosync/tags
##
image:
repository: zoriya/kyoo_autosync
tag: "4.4.0"
## Specify a imagePullPolicy
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
##
pullPolicy: IfNotPresent
## Define the number of pods the deployment will create
## Do not change unless your persistent volume allows more than one writer, ie NFS
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
##
replicas: 1
## Pod annotations
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
##
podAnnotations: {}
## Affinity for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
##
affinity: {}
## Node labels for pod assignment. Evaluated as a template.
## Ref: https://kubernetes.io/docs/user-guide/node-selection/
##
nodeSelector: {}
## Tolerations for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
##
tolerations: []
## Pod Security Context
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
##
securityContext: {}
## kyoo containers' resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources:
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
limits: {}
# cpu: 2
# memory: 1Gi
requests: {}
# cpu: 1
# memory: 1Gi
## Extra environment variables
##
extraVars:
# - name: EXAMPLE
# value: "example"
## Back
##
back:
## Kyoo Back image version
## ref: https://hub.docker.com/r/zoriya/kyoo_back/tags
##
image:
repository: zoriya/kyoo_back
tag: "4.4.0"
## Specify a imagePullPolicy
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
##
pullPolicy: IfNotPresent
## Define the number of pods the deployment will create
## Do not change unless your persistent volume allows more than one writer, ie NFS
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
##
replicas: 1
## Pod annotations
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
##
podAnnotations: {}
## Affinity for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
##
affinity: {}
## Node labels for pod assignment. Evaluated as a template.
## Ref: https://kubernetes.io/docs/user-guide/node-selection/
##
nodeSelector: {}
## Tolerations for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
##
tolerations: []
## Pod Security Context
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
##
securityContext: {}
## kyoo containers' resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources:
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
limits: {}
# cpu: 2
# memory: 1Gi
requests: {}
# cpu: 1
# memory: 1Gi
## Configure extra options for liveness and readiness probes
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes)
##
livenessProbe:
enabled: false
path: /health
initialDelaySeconds: 20
periodSeconds: 10
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 3
readinessProbe:
enabled: false
path: /health
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 3
## Extra environment variables
##
extraVars:
# - name: EXAMPLE
# value: "example"
## Service
##
service:
# -- Set the service type
type: ClusterIP
# -- Provide additional annotations which may be required.
annotations: {}
# -- Provide additional labels which may be required.
labels: {}
# -- Allow adding additional match labels
extraSelectorLabels: {}
# -- HTTP port number
port: 5000
## Front
##
front:
## Kyoo Front image version
## ref: https://hub.docker.com/r/zoriya/kyoo_front/tags
##
image:
repository: zoriya/kyoo_front
tag: "4.4.0"
## Specify a imagePullPolicy
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
##
pullPolicy: IfNotPresent
## Define the number of pods the deployment will create
## Do not change unless your persistent volume allows more than one writer, ie NFS
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
##
replicas: 1
## Pod annotations
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
##
podAnnotations: {}
## Affinity for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
##
affinity: {}
## Node labels for pod assignment. Evaluated as a template.
## Ref: https://kubernetes.io/docs/user-guide/node-selection/
##
nodeSelector: {}
## Tolerations for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
##
tolerations: []
## Pod Security Context
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
##
securityContext: {}
## kyoo containers' resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources:
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
limits: {}
# cpu: 2
# memory: 1Gi
requests: {}
# cpu: 1
# memory: 1Gi
## Configure extra options for liveness and readiness probes
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes)
##
livenessProbe:
enabled: false
path: /
initialDelaySeconds: 20
periodSeconds: 10
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 3
readinessProbe:
enabled: false
path: /
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 1
successThreshold: 1
failureThreshold: 3
## Extra environment variables
##
extraVars:
# - name: EXAMPLE
# value: "example"
## Service
##
service:
# -- Set the service type
type: ClusterIP
# -- Provide additional annotations which may be required.
annotations: {}
# -- Provide additional labels which may be required.
labels: {}
# -- Allow adding additional match labels
extraSelectorLabels: {}
# -- HTTP port number
port: 8901
## Matcher
##
matcher:
## Kyoo Matcher image version
## ref: https://hub.docker.com/r/zoriya/kyoo_matcher/tags
##
image:
repository: zoriya/kyoo_scanner
tag: "4.4.0"
## Specify a imagePullPolicy
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
##
pullPolicy: IfNotPresent
## Define the number of pods the deployment will create
## Do not change unless your persistent volume allows more than one writer, ie NFS
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
##
replicas: 1
## Pod annotations
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
##
podAnnotations: {}
## Affinity for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
##
affinity: {}
## Node labels for pod assignment. Evaluated as a template.
## Ref: https://kubernetes.io/docs/user-guide/node-selection/
##
nodeSelector: {}
## Tolerations for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
##
tolerations: []
## Pod Security Context
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
##
securityContext: {}
## kyoo containers' resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources:
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
limits: {}
# cpu: 2
# memory: 1Gi
requests: {}
# cpu: 1
# memory: 1Gi
## Extra environment variables
##
extraVars:
# - name: EXAMPLE
# value: "example"
## Migrations
##
migrations:
## Kyoo Migrations image version
## ref: https://hub.docker.com/r/zoriya/kyoo_migrations/tags
##
image:
repository: zoriya/kyoo_migrations
tag: "4.4.0"
## Specify a imagePullPolicy
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
##
pullPolicy: IfNotPresent
## Define the number of pods the deployment will create
## Do not change unless your persistent volume allows more than one writer, ie NFS
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
##
replicas: 1
## Pod annotations
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
##
podAnnotations: {}
## Affinity for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
##
affinity: {}
## Node labels for pod assignment. Evaluated as a template.
## Ref: https://kubernetes.io/docs/user-guide/node-selection/
##
nodeSelector: {}
## Tolerations for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
##
tolerations: []
## Pod Security Context
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
##
securityContext: {}
## kyoo containers' resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources:
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
limits: {}
# cpu: 2
# memory: 1Gi
requests: {}
# cpu: 1
# memory: 1Gi
## Extra environment variables
##
extraVars:
# - name: EXAMPLE
# value: "example"
## Scanner
##
scanner:
## Kyoo Scanner image version
## ref: https://hub.docker.com/r/zoriya/zoriya/kyoo_scanner/tags
##
image:
repository: zoriya/kyoo_scanner
tag: "4.4.0"
## Specify a imagePullPolicy
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
##
pullPolicy: IfNotPresent
## Define the number of pods the deployment will create
## Do not change unless your persistent volume allows more than one writer, ie NFS
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
##
replicas: 1
## Pod annotations
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
##
podAnnotations: {}
## Affinity for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
##
affinity: {}
## Node labels for pod assignment. Evaluated as a template.
## Ref: https://kubernetes.io/docs/user-guide/node-selection/
##
nodeSelector: {}
## Tolerations for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
##
tolerations: []
## Pod Security Context
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
##
securityContext: {}
## kyoo containers' resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources:
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
limits: {}
# cpu: 2
# memory: 1Gi
requests: {}
# cpu: 1
# memory: 1Gi
## Extra environment variables
##
extraVars:
# - name: EXAMPLE
# value: "example"
## Transcoder
##
transcoder:
## Kyoo Transcoder image version
## ref: https://hub.docker.com/r/zoriya/kyoo_transcoder/tags
##
image:
repository: zoriya/kyoo_transcoder
tag: "4.4.0"
## Specify a imagePullPolicy
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
##
pullPolicy: IfNotPresent
## Define the number of pods the deployment will create
## Do not change unless your persistent volume allows more than one writer, ie NFS
## ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/
##
replicas: 1
## Pod annotations
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
##
podAnnotations: {}
## Affinity for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
##
affinity: {}
## Node labels for pod assignment. Evaluated as a template.
## Ref: https://kubernetes.io/docs/user-guide/node-selection/
##
nodeSelector: {}
## Tolerations for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
##
tolerations: []
## Pod Security Context
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
##
securityContext: {}
## kyoo containers' resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources:
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
limits: {}
# cpu: 2
# memory: 1Gi
requests: {}
# cpu: 1
# memory: 1Gi
## Extra environment variables
##
extraVars:
# - name: EXAMPLE
# value: "example"
## Service
##
service:
# -- Set the service type
type: ClusterIP
# -- Provide additional annotations which may be required.
annotations: {}
# -- Provide additional labels which may be required.
labels: {}
# -- Allow adding additional match labels
extraSelectorLabels: {}
# -- HTTP port number
port: 7666
## Rabbitmq
## https://artifacthub.io/packages/helm/bitnami/rabbitmq?modal=values-schema
##
rabbitmq:
auth:
## @param auth.username RabbitMQ application username
## ref: https://github.com/bitnami/containers/tree/main/bitnami/rabbitmq#environment-variables
##
username: kyoo
## @param auth.existingPasswordSecret Existing secret with RabbitMQ credentials (existing secret must contain a value for `rabbitmq-password` key or override with setting auth.existingSecretPasswordKey)
## e.g:
## existingPasswordSecret: name-of-existing-secret
##
existingPasswordSecret: ""
existingSecretPasswordKey: ""
## @param auth.existingErlangSecret Existing secret with RabbitMQ Erlang cookie (must contain a value for `rabbitmq-erlang-cookie` key or override with auth.existingSecretErlangKey)
## e.g:
## existingErlangSecret: name-of-existing-secret
##
existingErlangSecret: ""
## @param auth.existingSecretErlangKey [default: rabbitmq-erlang-cookie] Erlang cookie key to be retrieved from existing secret
## NOTE: ignored unless `auth.existingErlangSecret` parameter is set
##
existingSecretErlangKey: ""
## @param configurationExistingSecret Existing secret with the configuration to use as rabbitmq.conf.
## Must contain the key "rabbitmq.conf"
## Takes precedence over `configuration`, so do not use both simultaneously
## With providing an existingSecret, extraConfiguration and extraConfigurationExistingSecret do not take any effect
##
configurationExistingSecret: ""
## @param extraConfiguration [string] Configuration file content: extra configuration to be appended to RabbitMQ configuration
## Use this instead of `configuration` to add more configuration
## Do not use simultaneously with `extraConfigurationExistingSecret`
##
extraConfiguration: |-
default_vhost = '/'
default_permissions.configure = .*
default_permissions.read = .*
default_permissions.write = .*
## Meilisearch
## https://github.com/meilisearch/meilisearch-kubernetes/blob/main/charts/meilisearch/values.yaml
##
meilisearch:
environment:
# -- Deactivates analytics
MEILI_NO_ANALYTICS: true
# -- Sets the environment. Either **production** or **development**
MEILI_ENV: production
# For production deployment, the environment MEILI_MASTER_KEY is required.
# If MEILI_ENV is set to "production" without setting MEILI_MASTER_KEY, this
# chart will automatically create a secure MEILI_MASTER_KEY and push it as a
# secret. Otherwise the below value of MEILI_MASTER_KEY will be used instead.
# MEILI_MASTER_KEY: ""
auth:
# -- Use an existing Kubernetes secret for the MEILI_MASTER_KEY
existingMasterKeySecret: ""
service:
# -- Kubernetes Service type
type: ClusterIP
# -- Kubernetes Service port
port: 7700
# -- Additional annotations for service
annotations: {}
persistence:
enabled: false
# -- PVC Access Mode
accessMode: ReadWriteOnce
## Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## If set to "-", storageClassName: "", which disables dynamic provisioning
## If undefined (the default) or set to null, no storageClassName spec is
## set, choosing the default provisioner. (gp2 on AWS, standard on
## GKE, AWS & OpenStack)
##
# -- PVC Storage Class
storageClass: "-"
## Data Persistent Volume existing claim name
## Requires persistence.enabled: true
## If defined, PVC must be created manually before volume will be bound
# -- Existing PVC
existingClaim: ""
# -- PVC Storage Request
size: 10Gi
resources: {}
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
serviceMonitor:
enabled: false

View File

@@ -1,18 +0,0 @@
apiVersion: v2
name: lazy-librarian
version: 0.1.1
description: A Helm chart for deploying LazyLibrarian
keywords:
- lazylibrarian
- ebooks
sources:
- https://gitlab.com/LazyLibrarian/LazyLibrarian.git
- https://lazylibrarian.gitlab.io
maintainers:
- name: alexlebens
dependencies:
- name: common
repository: https://bjw-s.github.io/helm-charts/
version: 3.1.0
icon: https://lazylibrarian.gitlab.io/logo.svg
appVersion: version-b3a081ec

View File

@@ -1,85 +0,0 @@
# lazylibrarian
![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![AppVersion: version-b3a081ec](https://img.shields.io/badge/AppVersion-version--b3a081ec-informational?style=flat-square)
A Helm chart for deploying LazyLibrarian
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/alexlebens/helm-charts/issues/new/choose)**
## Source Code
* <https://gitlab.com/LazyLibrarian/LazyLibrarian.git>
* <https://lazylibrarian.gitlab.io>
## Requirements
Kubernetes: `>=1.16.0-0`
## Dependencies
| Repository | Name | Version |
|------------|------|---------|
| https://github.com/bjw-s/helm-charts | common | 3.1.0 |
## TL;DR
```console
helm repo add alexlebens-helm-charts http://alexlebens.github.io/helm-charts
helm repo update
helm install lazy-librarian alexlebens-helm-charts/lazy-librarian
```
## Installing the Chart
To install the chart with the release name `lazy-librarian`
```console
helm install lazy-librarian alexlebens-helm-charts/lazy-librarian
```
## Uninstalling the Chart
To uninstall the `lazy-librarian` deployment
```console
helm uninstall lazy-librarian
```
The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
## Configuration
Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
Other values may be used from the [values.yaml](https://github.com/alexlebens/helm-charts/blob/main/charts/lazy-librarian/values.yaml) from the [common library](https://github.com/bjw-s/helm-charts/blob/main/charts/library/common/values.yaml).
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
```console
helm install lazy-librarian \
--set env.TZ="US/Mountain" \
alexlebens-helm-charts/lazy-librarian
```
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
```console
helm install lazy-librarian alexlebens-helm-charts/lazy-librarian -f values.yaml
```
## Values
**Important**: When deploying an application Helm chart you can add more values from the common library chart [here](https://github.com/bjw-s/helm-charts/blob/main/charts/library/common/values.yaml)
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| env | object | See below | environment variables. |
| env.PGID | string | `"1001"` | Specify the group ID the application will run as |
| env.PUID | string | `"1001"` | Specify the user ID the application will run as |
| env.TZ | string | `"UTC"` | Set the container timezone |
| env.DOCKER_MODS | string | `"linuxserver/mods:universal-calibre|linuxserver/mods:lazylibrarian-ffmpeg"` | Add linuxserver docker mods |
| image.pullPolicy | string | `"IfNotPresent"` | image pull policy |
| image.repository | string | `"linuxserver/lazylibrarian"` | image repository |
| image.tag | string | `"version-b3a081ec"` | image tag |
| ingress.main | object | See values.yaml | Enable and configure ingress settings for the chart under this key. |
| persistence | object | See values.yaml | Configure persistence settings for the chart under this key. |
| service | object | See values.yaml | Configures service settings for the chart. |

View File

@@ -1,323 +0,0 @@
common:
global:
# -- Set an override for the prefix of the fullname
nameOverride:
# -- Set the entire name definition
fullnameOverride:
# -- Set additional global labels. Helm templates can be used.
labels: {}
# -- Set additional global annotations. Helm templates can be used.
annotations: {}
defaultPodOptions:
# -- Defines affinity constraint rules.
# [[ref]](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity)
affinity: {}
# -- Set annotations on the Pod. Pod-specific values will be merged with this.
annotations: {}
# -- Specifies whether a service account token should be automatically mounted.
automountServiceAccountToken: true
# -- Configuring the ndots option may resolve nslookup issues on some Kubernetes setups.
dnsConfig: {}
# -- Defaults to "ClusterFirst" if hostNetwork is false and "ClusterFirstWithHostNet" if hostNetwork is true.
dnsPolicy: ""
# -- Enable/disable the generation of environment variables for services.
# [[ref]](https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/#accessing-the-service)
enableServiceLinks: false
# -- Allows specifying explicit hostname setting
hostname: ""
# -- Use hostAliases to add custom entries to /etc/hosts - mapping IP addresses to hostnames.
# [[ref]](https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/)
hostAliases: []
# -- Use the host's ipc namespace
hostIPC: false
# -- When using hostNetwork make sure you set dnsPolicy to `ClusterFirstWithHostNet`
hostNetwork: false
# -- Use the host's pid namespace
hostPID: false
# -- Set image pull secrets
imagePullSecrets: []
# -- Set labels on the Pod. Pod-specific values will be merged with this.
labels: {}
# -- Node selection constraint
# [[ref]](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector)
nodeSelector: {}
# -- Custom priority class for different treatment by the scheduler
priorityClassName: ""
# -- Set Container restart policy.
# @default -- `Always`. When `controller.type` is `cronjob` it defaults to `Never`.
restartPolicy: ""
# -- Allow specifying a runtimeClassName other than the default one (ie: nvidia)
runtimeClassName: ""
# -- Allows specifying a custom scheduler name
schedulerName: ""
# -- Configure the Security Context for the Pod
securityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
fsGroupChangePolicy: "OnRootMismatch"
# -- Duration in seconds the pod needs to terminate gracefully
# -- [[ref](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#lifecycle)]
terminationGracePeriodSeconds:
# -- Specify taint tolerations
# [[ref]](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/)
tolerations: []
# -- Defines topologySpreadConstraint rules.
# [[ref]](https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/)
topologySpreadConstraints: []
controllers:
main:
# -- enable the controller.
enabled: true
# -- Set the controller type.
# Valid options are deployment, daemonset, statefulset, cronjob or job
type: deployment
# -- Set annotations on the deployment/statefulset/daemonset/cronjob/job
annotations: {}
# -- Set labels on the deployment/statefulset/daemonset/cronjob/job
labels: {}
# -- Number of desired pods. When using a HorizontalPodAutoscaler, set this to `null`.
replicas: 1
# -- Set the controller upgrade strategy
# For Deployments, valid values are Recreate (default) and RollingUpdate.
# For StatefulSets, valid values are OnDelete and RollingUpdate (default).
# DaemonSets/CronJobs/Jobs ignore this.
strategy: Recreate
# -- ReplicaSet revision history limit
revisionHistoryLimit: 3
# -- Container
containers:
main:
# -- Override the container name
nameOverride:
# -- Specify if this container depends on any other containers
# This is used to determine the order in which the containers are rendered.
dependsOn: []
# -- Image
image:
# -- image repository
repository: lscr.io/linuxserver/lazylibrarian
# -- image tag
tag: version-b3a081ec
# -- image pull policy
pullPolicy: IfNotPresent
# -- Override the command(s) for the default container
command: []
# -- Override the args for the default container
args: []
# -- Override the working directory for the default container
workingDir:
# -- Environment variables. Template enabled.
env:
PUID: 1000
PGID: 1000
TZ: US/Mountain
DOCKER_MODS: linuxserver/mods:universal-calibre|linuxserver/mods:lazylibrarian-ffmpeg
# -- Secrets and/or ConfigMaps that will be loaded as environment variables.
envFrom: []
# -- Set the resource requests / limits for the container.
resources:
## We usually recommend not to specify default resources and to leave this as a conscious
## choice for the user. This also increases chances charts run on environments with little
## resources, such as Minikube. If you do want to specify resources, uncomment the following
## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 10m
memory: 256Mi
serviceAccount:
# -- Specifies whether a service account should be created
create: true
# -- Annotations to add to the service account
annotations: {}
# -- Labels to add to the service account
labels: {}
# -- The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
service:
main:
# -- Enables or disables the service
enabled: true
# -- Override the name suffix that is used for this service
nameOverride: ""
# -- Configure which controller this service should target
controller: main
# -- Make this the primary service for this controller (used in probes, notes, etc...).
# If there is more than 1 service targeting the controller, make sure that only 1 service is
# marked as primary.
primary: true
# -- Set the service type
type: ClusterIP
# -- Specify the externalTrafficPolicy for the service. Options: Cluster, Local
# -- [[ref](https://kubernetes.io/docs/tutorials/services/source-ip/)]
externalTrafficPolicy:
# -- Specify the ip policy. Options: SingleStack, PreferDualStack, RequireDualStack
ipFamilyPolicy:
# -- The ip families that should be used. Options: IPv4, IPv6
ipFamilies: []
# -- Provide additional annotations which may be required.
annotations: {}
# -- Provide additional labels which may be required.
labels: {}
# -- Allow adding additional match labels
extraSelectorLabels: {}
# -- Configure the Service port information here.
# Additional ports can be added by adding a dictionary key similar to the 'http' service.
# @default -- See below
ports:
http:
# -- Enables or disables the port
enabled: true
# -- Make this the primary port (used in probes, notes, etc...)
# If there is more than 1 service, make sure that only 1 port is marked as primary.
primary: true
# -- The port number
port: 5299
# -- Port protocol.
# Support values are `HTTP`, `HTTPS`, `TCP` and `UDP`.
# HTTP and HTTPS spawn a TCP service and get used for internal URL and name generation
protocol: HTTP
# -- Specify a service targetPort if you wish to differ the service port from the application port.
# If `targetPort` is specified, this port number is used in the container definition instead of
# the `port` value. Therefore named ports are not supported for this field.
targetPort:
# -- Specify the nodePort value for the LoadBalancer and NodePort service types.
# [[ref]](https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport)
nodePort:
# -- Specify the appProtocol value for the Service.
# [[ref]](https://kubernetes.io/docs/concepts/services-networking/service/#application-protocol)
appProtocol:
ingress:
# -- An example is shown below
main:
# -- Enables or disables the ingress
enabled: true
# -- Override the name suffix that is used for this ingress.
nameOverride:
# -- Provide additional annotations which may be required.
annotations: {}
# -- Provide additional labels which may be required.
labels: {}
# -- Set the ingressClass that is used for this ingress.
className:
# -- Configure the defaultBackend for this ingress. This will disable any other rules for the ingress.
defaultBackend:
## Configure the hosts for the ingress
hosts:
- # -- Host address. Helm template can be passed.
host: chart-example.local
## Configure the paths for the host
paths:
- # -- Path. Helm template can be passed.
path: /
pathType: Prefix
service:
# -- The service name to reference.
name: main
# -- The service port number reference for this path
port: 5299
# -- Configure TLS for the ingress. Both secretName and hosts can process a Helm template.
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
persistence:
config:
# -- Enables or disables the persistence item. Defaults to true
enabled: false
# -- Sets the persistence type
# Valid options are persistentVolumeClaim, emptyDir, nfs, hostPath, secret, configMap or custom
type: persistentVolumeClaim
# -- Storage Class for the config volume.
# If set to `-`, dynamic provisioning is disabled.
# If set to something else, the given storageClass is used.
# If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner.
storageClass:
# -- If you want to reuse an existing claim, the name of the existing PVC can be passed here.
existingClaim:
# -- AccessMode for the persistent volume.
# Make sure to select an access mode that is supported by your storage provider!
# [[ref]](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes)
accessMode: ReadWriteOnce
# -- The amount of storage that is requested for the persistent volume.
size: 1Gi
# -- Set to true to retain the PVC upon `helm uninstall`
retain: false
# -- Configure mounts to all controllers and containers. By default the persistence item
# will be mounted to `/<name_of_the_peristence_item>`.
# Example:
# globalMounts:
# - path: /config
# readOnly: false
globalMounts:
- path: /config
downloads:
# -- Enables or disables the persistence item. Defaults to true
enabled: false
# -- Sets the persistence type
# Valid options are persistentVolumeClaim, emptyDir, nfs, hostPath, secret, configMap or custom
type: persistentVolumeClaim
# -- Storage Class for the config volume.
# If set to `-`, dynamic provisioning is disabled.
# If set to something else, the given storageClass is used.
# If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner.
storageClass:
# -- If you want to reuse an existing claim, the name of the existing PVC can be passed here.
existingClaim:
# -- AccessMode for the persistent volume.
# Make sure to select an access mode that is supported by your storage provider!
# [[ref]](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes)
accessMode: ReadWriteOnce
# -- The amount of storage that is requested for the persistent volume.
size: 1Gi
# -- Set to true to retain the PVC upon `helm uninstall`
retain: false
# -- Configure mounts to all controllers and containers. By default the persistence item
# will be mounted to `/<name_of_the_peristence_item>`.
# Example:
# globalMounts:
# - path: /config
# readOnly: false
globalMounts:
- path: /downloads
books:
# -- Enables or disables the persistence item. Defaults to true
enabled: false
# -- Sets the persistence type
# Valid options are persistentVolumeClaim, emptyDir, nfs, hostPath, secret, configMap or custom
type: persistentVolumeClaim
# -- Storage Class for the config volume.
# If set to `-`, dynamic provisioning is disabled.
# If set to something else, the given storageClass is used.
# If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner.
storageClass:
# -- If you want to reuse an existing claim, the name of the existing PVC can be passed here.
existingClaim:
# -- AccessMode for the persistent volume.
# Make sure to select an access mode that is supported by your storage provider!
# [[ref]](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes)
accessMode: ReadWriteOnce
# -- The amount of storage that is requested for the persistent volume.
size: 1Gi
# -- Set to true to retain the PVC upon `helm uninstall`
retain: false
# -- Configure mounts to all controllers and containers. By default the persistence item
# will be mounted to `/<name_of_the_peristence_item>`.
# Example:
# globalMounts:
# - path: /config
# readOnly: false
globalMounts:
- path: /books

View File

@@ -1,13 +0,0 @@
apiVersion: v2
name: libation
version: 0.0.6
description: Import library from audible
keywords:
- audiobooks
- job
sources:
- https://github.com/rmcrackan/Libation
maintainers:
- name: alexlebens
icon: https://getlibation.com/images/libation-logo.png
appVersion: "11.1.0"

View File

@@ -1,18 +0,0 @@
## Introduction
[Libation](https://github.com/rmcrackan/Libation)
Libation: Liberate your Library. Import library from audible, including cover art
This chart bootstraps a [Libation](https://github.com/benphelps/homepage) CronJob on a [Kubernetes](https://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
## Prerequisites
- Kubernetes
- Helm
- CronJob
## Parameters
See the [values files](values.yaml).

View File

@@ -1,39 +0,0 @@
apiVersion: batch/v1
kind: CronJob
metadata:
name: libation
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: libation
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: job
app.kubernetes.io/part-of: libation
spec:
schedule: {{ .Values.job.schedule }}
successfulJobsHistoryLimit: 3
failedJobsHistoryLimit: 3
jobTemplate:
spec:
template:
spec:
restartPolicy: Never
containers:
- name: libation
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
env:
- name: SLEEP_TIME
value: "-1"
volumeMounts:
- name: libation-config
mountPath: /config
- name: libation-books
mountPath: /data
volumes:
- name: libation-config
persistentVolumeClaim:
claimName: libation-config
- name: libation-books
persistentVolumeClaim:
claimName: {{ .Values.persistence.books.claimName }}

View File

@@ -1,19 +0,0 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: libation-config
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: libation
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: libation
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.persistence.config.storageSize }}
storageClassName: {{ .Values.persistence.config.storageClassName }}
volumeMode: {{ .Values.persistence.config.volumeMode }}

View File

@@ -1,13 +0,0 @@
job:
schedule: "0 * * * *"
image:
repository: rmcrackan/libation
tag: "11.1.0"
pullPolicy: IfNotPresent
persistence:
config:
storageClassName: default
storageSize: 1Gi
volumeMode: Filesystem
books:
claimName:

View File

@@ -1,14 +0,0 @@
apiVersion: v2
name: matrix-hookshot
version: 0.1.1
description: Chart for Matrix Hookshot
keywords:
- matrix
- matrix-hookshot
- webhook
sources:
- https://github.com/matrix-org/matrix-hookshot
maintainers:
- name: alexlebens
icon: https://avatars.githubusercontent.com/u/8418310?s=48&v=4
appVersion: "5.3.0"

View File

@@ -1,43 +0,0 @@
{{/*
Helper for secret name
*/}}
{{- define "hookshot.secretName" -}}
{{- if .Values.hookshot.existingSecret }}
{{- printf "%s" .Values.hookshot.existingSecret -}}
{{- else }}
{{- printf "matrix-hookshot-config-secret" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{/*
Helper for registration secret name
*/}}
{{- define "hookshot.registrationSecretName" -}}
{{- if .Values.hookshot.existingRegistrationSecret }}
{{- printf "%s" .Values.hookshot.existingRegistrationSecret -}}
{{- else }}
{{- printf "matrix-hookshot-registration-secret" }}
{{- end }}
{{- end }}
{{/*
Helper for passkey secret name
*/}}
{{- define "hookshot.passkeySecretName" -}}
{{- if .Values.hookshot.existingPasskeySecret }}
{{- printf "%s" .Values.hookshot.existingPasskeySecret -}}
{{- else }}
{{- printf "matrix-hookshot-passkey-secret" }}
{{- end }}
{{- end }}
{{/*
Helper for passkey file name
*/}}
{{- define "hookshot.passFile" -}}
{{- if .Values.hookshot.config.passFile }}
{{- printf "%s" .Values.hookshot.config.passFile -}}
{{- else }}
{{- printf "passkey.pem" }}
{{- end }}
{{- end }}

View File

@@ -1,79 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: matrix-hookshot
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: matrix-hookshot
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
revisionHistoryLimit: 3
replicas: {{ .Values.deployment.replicas }}
strategy:
type: {{ .Values.deployment.strategy }}
selector:
matchLabels:
app.kubernetes.io/name: matrix-hookshot
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: matrix-hookshot
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
serviceAccountName: matrix-hookshot
automountServiceAccountToken: true
containers:
- name: matrix-hookshot
image: "{{ .Values.deployment.image.repository }}:{{ .Values.deployment.image.tag }}"
imagePullPolicy: {{ .Values.deployment.image.imagePullPolicy }}
ports:
- name: webhook
containerPort: {{ .Values.service.webhook.port }}
protocol: TCP
- name: metrics
containerPort: {{ .Values.service.metrics.port }}
protocol: TCP
- name: appservice
containerPort: {{ .Values.service.appservice.port }}
protocol: TCP
- name: widgets
containerPort: {{ .Values.service.widgets.port }}
protocol: TCP
env:
{{- range $k,$v := .Values.deployment.env }}
- name: {{ $k }}
value: {{ $v | quote }}
{{- end }}
{{- with .Values.deployment.envFrom }}
envFrom:
{{- toYaml . | nindent 12 }}
{{- end }}
resources:
{{- toYaml .Values.deployment.resources | nindent 12 }}
volumeMounts:
- name: config
mountPath: /data/config.yml
subPath: config.yml
readOnly: true
- name: registration
mountPath: /data/registration.yml
subPath: registration.yml
readOnly: true
- name: passkey
mountPath: "/data/{{ template "hookshot.passFile" . }}"
subPath: {{ template "hookshot.passFile" . }}
readOnly: true
volumes:
- name: config
secret:
secretName: {{ template "hookshot.secretName" . }}
- name: registration
secret:
secretName: {{ template "hookshot.registrationSecretName" . }}
- name: passkey
secret:
secretName: {{ template "hookshot.passkeySecretName" . }}

View File

@@ -1,100 +0,0 @@
{{- if .Values.ingress.webhook.enabled }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: matrix-hookshot-webhook
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: matrix-hookshot-webhook
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
annotations:
{{- toYaml .Values.ingress.webhook.annotations | nindent 4 }}
spec:
ingressClassName: {{ .Values.ingress.webhook.className }}
tls:
- hosts:
- {{ .Values.ingress.webhook.host }}
secretName: {{ .Release.Name }}-webhook-secret-tls
rules:
- host: {{ .Values.ingress.webhook.host }}
http:
paths:
- path: /webhook/
pathType: Prefix
backend:
service:
name: {{ .Release.Name }}
port:
name: webhook
{{- end }}
---
{{- if .Values.ingress.appservice.enabled }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: matrix-hookshot-appservice
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: matrix-hookshot-appservice
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
annotations:
{{- toYaml .Values.ingress.appservice.annotations | nindent 4 }}
spec:
ingressClassName: {{ .Values.ingress.appservice.className }}
tls:
- hosts:
- {{ .Values.ingress.appservice.host }}
secretName: {{ .Release.Name }}-appservice-secret-tls
rules:
- host: {{ .Values.ingress.appservice.host }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: {{ .Release.Name }}
port:
name: appservice
{{- end }}
---
{{- if .Values.ingress.widgets.enabled }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: matrix-hookshot-widgets
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: matrix-hookshot-widgets
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
annotations:
{{- toYaml .Values.ingress.widgets.annotations | nindent 4 }}
spec:
ingressClassName: {{ .Values.ingress.widgets.className }}
tls:
- hosts:
- {{ .Values.ingress.widgets.host }}
secretName: {{ .Release.Name }}-widgets-secret-tls
rules:
- host: {{ .Values.ingress.widgets.host }}
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: {{ .Release.Name }}
port:
name: widgets
{{- end }}

View File

@@ -1,26 +0,0 @@
apiVersion: v1
kind: Pod
metadata:
name: matrix-hookshot-test-connection
labels:
app.kubernetes.io/name: matrix-hookshot-test-connection
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
annotations:
"helm.sh/hook": test-success
spec:
restartPolicy: Never
containers:
- name: wget
image: busybox
command: ['wget']
args: ['matrix-hookshot:{{ .Values.service.webhook.port }}']
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 50m
memory: 256Mi

View File

@@ -1,52 +0,0 @@
{{- if not .Values.hookshot.existingSecret }}
apiVersion: v1
kind: Secret
metadata:
name: matrix-hookshot-config-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: matrix-hookshot-config
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
data:
config.yml: |
{{ toYaml .Values.hookshot.config | indent 4 }}
{{- end }}
---
{{- if not .Values.hookshot.existingRegistrationSecret }}
apiVersion: v1
kind: Secret
metadata:
name: matrix-hookshot-registration-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: matrix-hookshot-registration
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
data:
registration.yml: |
{{ toYaml .Values.hookshot.registration | indent 4 }}
{{- end }}
---
{{- if not .Values.hookshot.existingPasskeySecret }}
apiVersion: v1
kind: Secret
metadata:
name: matrix-hookshot-passkey-secret
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: matrix-hookshot-passkey
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
data:
{{ .Values.hookshot.config.passFile }}: |
{{ toYaml .Values.hookshot.passkey | indent 4 }}
{{- end }}

View File

@@ -1,11 +0,0 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: matrix-hookshot
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: matrix-hookshot
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}

View File

@@ -1,23 +0,0 @@
{{- if and .Values.metrics.enabled .Values.metrics.serviceMonitor.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: matrix-hookshot
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: matrix-hookshot
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
endpoints:
- port: metrics
interval: {{ .Values.metrics.serviceMonitor.interval }}
scrapeTimeout: {{ .Values.metrics.serviceMonitor.scrapeTimeout }}
path: /metrics
selector:
matchLabels:
app.kubernetes.io/name: matrix-hookshot
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}

View File

@@ -1,33 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: matrix-hookshot
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: matrix-hookshot
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.webhook.port }}
targetPort: webhook
protocol: TCP
name: webhook
- port: {{ .Values.service.metrics.port }}
targetPort: metrics
protocol: TCP
name: metrics
- port: {{ .Values.service.appservice.port }}
targetPort: appservice
protocol: TCP
name: appservice
- port: {{ .Values.service.widgets.port }}
targetPort: widgets
protocol: TCP
name: widgets
selector:
app.kubernetes.io/name: matrix-hookshot
app.kubernetes.io/instance: {{ .Release.Name }}

View File

@@ -1,248 +0,0 @@
deployment:
replicas: 1
strategy: Recreate
image:
repository: halfshot/matrix-hookshot
tag: "5.3.0"
imagePullPolicy: IfNotPresent
env: {}
envFrom: []
resources:
limits:
memory: 512Mi
cpu: 100m
requests:
memory: 256Mi
cpu: 50m
service:
type: ClusterIP
webhook:
port: 9000
metrics:
port: 9001
appservice:
port: 9002
widgets:
port: 9003
ingress:
webhook:
enabled: false
className: ""
annotations: {}
host: ""
appservice:
enabled: false
className: ""
annotations: {}
host: ""
widgets:
enabled: false
className: ""
annotations: {}
host: ""
metrics:
enabled: false
serviceMonitor:
enabled: false
interval: 15s
scrapeTimeout: 5s
# Reference the following for examples
# https://matrix-org.github.io/matrix-hookshot/latest/setup/sample-configuration.html
hookshot:
# config.yml contents
existingSecret: ""
config:
bridge:
domain: example.com
url: http://localhost:8008
mediaUrl: https://example.com
port: 9993
bindAddress: 0.0.0.0
passFile: passkey.pem
logging:
level: info
colorize: true
json: false
timestampFormat: HH:mm:ss:SSS
listeners:
- port: 9000
bindAddress: 0.0.0.0
resources:
- webhooks
- port: 9001
bindAddress: 0.0.0.0
resources:
- metrics
- provisioning
- port: 9003
bindAddress: 0.0.0.0
resources:
- widgets
# github:
# # (Optional) Configure this to enable GitHub support
# auth:
# # Authentication for the GitHub App.
# id: 123
# privateKeyFile: github-key.pem
# webhook:
# # Webhook settings for the GitHub app.
# secret: secrettoken
# oauth:
# # (Optional) Settings for allowing users to sign in via OAuth.
# client_id: foo
# client_secret: bar
# redirect_uri: https://example.com/oauth/
# defaultOptions:
# # (Optional) Default options for GitHub connections.
# showIssueRoomLink: false
# hotlinkIssues:
# prefix: "#"
# userIdPrefix:
# # (Optional) Prefix used when creating ghost users for GitHub accounts.
# _github_
# gitlab:
# # (Optional) Configure this to enable GitLab support
# instances:
# gitlab.com:
# url: https://gitlab.com
# webhook:
# secret: secrettoken
# publicUrl: https://example.com/hookshot/
# userIdPrefix:
# # (Optional) Prefix used when creating ghost users for GitLab accounts.
# _gitlab_
# commentDebounceMs:
# # (Optional) Aggregate comments by waiting this many miliseconds before posting them to Matrix. Defaults to 5000 (5 seconds)
# 5000
# figma:
# # (Optional) Configure this to enable Figma support
# publicUrl: https://example.com/hookshot/
# instances:
# your-instance:
# teamId: your-team-id
# accessToken: your-personal-access-token
# passcode: your-webhook-passcode
# jira:
# # (Optional) Configure this to enable Jira support. Only specify `url` if you are using a On Premise install (i.e. not atlassian.com)
# webhook:
# # Webhook settings for JIRA
# secret: secrettoken
# oauth:
# # (Optional) OAuth settings for connecting users to JIRA. See documentation for more information
# client_id: foo
# client_secret: bar
# redirect_uri: https://example.com/oauth/
# generic:
# # (Optional) Support for generic webhook events.
# #'allowJsTransformationFunctions' will allow users to write short transformation snippets in code, and thus is unsafe in untrusted environments
# enabled: false
# enableHttpGet: false
# urlPrefix: https://example.com/webhook/
# userIdPrefix: _webhooks_
# allowJsTransformationFunctions: false
# waitForComplete: false
# feeds:
# # (Optional) Configure this to enable RSS/Atom feed support
# enabled: false
# pollConcurrency: 4
# pollIntervalSeconds: 600
# pollTimeoutSeconds: 30
# provisioning:
# # (Optional) Provisioning API for integration managers
# secret: "!secretToken"
# bot:
# # (Optional) Define profile information for the bot user
# displayname: Hookshot Bot
# avatar: mxc://half-shot.uk/2876e89ccade4cb615e210c458e2a7a6883fe17d
# serviceBots:
# # (Optional) Define additional bot users for specific services
# - localpart: feeds
# displayname: Feeds
# avatar: ./assets/feeds_avatar.png
# prefix: "!feeds"
# service: feeds
# metrics:
# # (Optional) Prometheus metrics support
# enabled: true
# cache:
# # (Optional) Cache options for large scale deployments.
# # For encryption to work, this must be configured.
# redisUri: redis://localhost:6379
# queue:
# # (Optional) Message queue configuration options for large scale deployments.
# # For encryption to work, this must not be configured.
# redisUri: redis://localhost:6379
# widgets:
# # (Optional) EXPERIMENTAL support for complimentary widgets
# addToAdminRooms: false
# disallowedIpRanges:
# - 127.0.0.0/8
# - 10.0.0.0/8
# - 172.16.0.0/12
# - 192.168.0.0/16
# - 100.64.0.0/10
# - 192.0.0.0/24
# - 169.254.0.0/16
# - 192.88.99.0/24
# - 198.18.0.0/15
# - 192.0.2.0/24
# - 198.51.100.0/24
# - 203.0.113.0/24
# - 224.0.0.0/4
# - ::1/128
# - fe80::/10
# - fc00::/7
# - 2001:db8::/32
# - ff00::/8
# - fec0::/10
# roomSetupWidget:
# addOnInvite: false
# publicUrl: https://example.com/widgetapi/v1/static/
# branding:
# widgetTitle: Hookshot Configuration
# sentry:
# # (Optional) Configure Sentry error reporting
# dsn: https://examplePublicKey@o0.ingest.sentry.io/0
# environment: production
# permissions:
# # (Optional) Permissions for using the bridge. See docs/setup.md#permissions for help
# - actor: example.com
# services:
# - service: "*"
# level: admin
# registration.yml contents
existingRegistrationSecret: ""
registration:
id: matrix-hookshot
as_token: ""
hs_token: ""
namespaces:
rooms: []
users: []
sender_localpart: hookshot
url: "http://example.com"
rate_limited: false
# A passkey used to encrypt tokens stored inside the bridge.
# Run openssl genpkey -out passkey.pem -outform PEM -algorithm RSA -pkeyopt rsa_keygen_bits:4096 to generate
existingPasskeySecret: ""
passkey: ""

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