Compare commits

..

254 Commits

Author SHA1 Message Date
3fad4e4ff0 update image 2024-12-20 19:25:40 -06:00
1f867e0276 update image 2024-12-20 19:25:03 -06:00
601790ab7a change backup schedule 2024-12-19 14:50:00 -06:00
16ebdda6a4 update image 2024-12-19 13:59:37 -06:00
dbf8f14512 update image 2024-12-19 13:58:37 -06:00
22dcd7a14c update image 2024-12-16 10:31:56 -06:00
8862d97c27 change retention policy 2024-12-12 11:12:58 -06:00
1f4cd543c0 bump chart version 2024-11-23 22:40:06 -06:00
4aac272e98 update image 2024-11-23 22:39:06 -06:00
b8602fb919 update image to 16.6 2024-11-23 22:38:36 -06:00
fb34897269 update image 2024-10-19 00:58:50 -05:00
ec27eff4da add priority class name and tolerations 2024-10-13 12:39:03 -05:00
2b31df483e listen on all addresses 2024-10-12 23:35:08 -05:00
53191f1d68 add generic device plugin 2024-10-12 23:18:07 -05:00
172526fb79 update common chart 2024-10-11 19:03:23 -05:00
5d5aad265a fix settings for tensorchord type 2024-09-28 16:43:45 -05:00
84af71da49 add tag for postgres version 2024-09-28 02:07:28 -05:00
ab3ca49103 add tensorchord type 2024-09-28 02:05:34 -05:00
8b2342d1c2 bump chart version 2024-09-27 21:29:54 -05:00
9107020db2 update chart and image 2024-09-27 21:28:05 -05:00
3ecef5f8d1 add options for tagging 2024-09-27 21:27:01 -05:00
renovate[bot]
e5b1b733fe Update cloudflare/cloudflared Docker tag to v2024.8.3 (#63)
* Update cloudflare/cloudflared Docker tag to v2024.8.3

* update chart

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: alexlebens <alexanderlebens@gmail.com>
2024-08-24 01:30:19 -05:00
843e37e233 update postresql image 2024-08-19 16:42:54 -05:00
ee944a6b83 update image 2024-08-19 16:41:19 -05:00
renovate[bot]
5fe95ea7ad Update renovate/renovate Docker tag to v38 (#62)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-19 16:40:33 -05:00
6a33a670e1 update common chart 2024-08-19 16:40:16 -05:00
27cdfd742e remove mysql-cluster 2024-08-19 15:31:01 -05:00
9f68b30a31 change condition handling 2024-07-08 12:09:29 -05:00
668d50dfdb add conditional check for postinit 2024-07-04 22:52:02 -05:00
93a232947e increment chart 2024-07-04 22:45:41 -05:00
667236239d fix backup fields 2024-07-04 22:45:18 -05:00
875f0c143c fix backup fields 2024-07-04 22:41:31 -05:00
670b6e600c add conditional check for values 2024-07-01 18:08:23 -05:00
6f5b5ffcb4 change value inseration 2024-07-01 18:08:23 -05:00
renovate[bot]
295a7296bc Update cloudflare/cloudflared Docker tag to v2024.6.1 (#60)
* Update cloudflare/cloudflared Docker tag to v2024.6.1

* update chart

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: alexlebens <alexanderlebens@gmail.com>
2024-06-28 17:01:04 -05:00
f1b4020287 change flow control 2024-06-22 18:26:19 -05:00
969357a664 change null handling 2024-06-22 18:22:25 -05:00
5685190e43 remove field not declared in schema 2024-06-22 18:18:03 -05:00
5e88f116fc disable rules by default 2024-06-22 17:58:43 -05:00
f99ebfaa44 change initdb keys 2024-06-14 21:37:00 -05:00
64e3612762 fix init keys 2024-06-14 21:30:54 -05:00
a6821995ca fix post init location 2024-06-14 21:23:48 -05:00
4291c3d18c add options for postgresql init 2024-06-14 21:17:45 -05:00
renovate[bot]
3f1fc33123 Update cloudflare/cloudflared Docker tag to v2024.6.0 (#59)
* Update cloudflare/cloudflared Docker tag to v2024.6.0

* bump chart version

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: alexlebens <alexanderlebens@gmail.com>
2024-06-13 11:01:03 -05:00
fad13607e6 bump chart version 2024-06-13 10:58:31 -05:00
a1811097c0 add resources to values 2024-06-13 10:58:01 -05:00
6b850205ad move image to values 2024-06-13 10:56:49 -05:00
d075a47f03 remove hookshot 2024-06-13 10:53:52 -05:00
0a437d983d remove discord 2024-06-13 10:53:44 -05:00
7058201439 remove whatsapp 2024-06-13 10:53:29 -05:00
42cd8834b9 remove outline 2024-06-01 18:13:49 -05:00
2cda957b4c remove taiga 2024-06-01 18:13:42 -05:00
238d01c5e4 remove kublet cert 2024-05-30 11:59:29 -05:00
9f0fae9fdf remove qbittorrent 2024-05-30 11:59:13 -05:00
d2f062e3db remove unpackerr 2024-05-30 11:58:57 -05:00
a1c9367b6d remove penpot 2024-05-30 11:58:45 -05:00
9857d61093 change command 2024-05-28 15:28:00 -05:00
cfe7ebea99 force http2 connection 2024-05-28 15:09:36 -05:00
aface2b57d add cloudflared 2024-05-28 14:03:55 -05:00
8158d1689c remove cops 2024-05-28 13:12:05 -05:00
276921cf8a remove calibre server 2024-05-28 13:11:55 -05:00
e420e092c9 remove tdarr 2024-05-28 10:50:06 -05:00
e20049fc8c remove home-assistant 2024-05-27 22:00:05 -05:00
37ba06acc7 remove tubearchvist plugin 2024-05-27 21:27:28 -05:00
02228e31cc remove tubearchivist 2024-05-27 21:27:18 -05:00
6708443275 remove libation 2024-05-27 20:41:01 -05:00
987cedb98a remove homepage 2024-05-27 20:40:52 -05:00
7f0fd5d5c7 remove freshrss 2024-05-27 20:40:44 -05:00
d381bdee39 change renovate config 2024-05-27 20:40:35 -05:00
ed4a43cd31 add archive folder to ignore 2024-05-27 20:40:27 -05:00
1b01ed0ba2 remove registration secret 2024-05-26 15:43:20 -05:00
58151e21aa remove registration secret 2024-05-26 15:43:14 -05:00
3f2615097f remove registration 2024-05-26 15:31:12 -05:00
a8bbc84740 remove registration 2024-05-26 15:28:21 -05:00
a8b3615f2f change conf 2024-05-24 21:50:27 -05:00
590b095a32 change image version 2024-05-24 21:00:48 -05:00
5d2cdc9648 update dependencies 2024-05-20 12:13:43 -05:00
99c106bd63 update dependencies 2024-05-20 12:13:33 -05:00
e6938fe645 bump version 2024-05-20 12:12:00 -05:00
7f5d870579 update dependencies 2024-05-18 14:40:42 -05:00
6cf2db87f4 update dependencies 2024-05-18 14:40:13 -05:00
537d9bd125 update dependencies 2024-05-18 14:39:55 -05:00
9627287f30 update base image 2024-05-17 12:08:15 -05:00
dd724b5b32 update base image 2024-05-17 12:06:04 -05:00
cd91a16c75 pass destinationPath through to values 2024-05-16 17:19:41 -05:00
69900d3931 update image version 2024-05-16 13:57:33 -05:00
f80cec8c82 change renovate config 2024-05-16 13:51:53 -05:00
f3d629fe00 add namespace to authentik proxy 2024-05-16 13:44:28 -05:00
4d3574ffa8 add namespace to authentik proxy 2024-05-16 13:44:20 -05:00
f98268fd25 add namespace to authentik proxy 2024-05-16 13:44:09 -05:00
7514ea022e bump chart version 2024-05-16 13:15:13 -05:00
a65a0dbcec change timezone 2024-05-16 13:01:35 -05:00
6bc5aea01f update dependencies 2024-05-16 12:48:42 -05:00
80940910a9 update dependencies 2024-05-16 12:48:19 -05:00
6895b078b5 update image version 2024-05-16 12:47:41 -05:00
27e70a1786 update image version 2024-05-16 12:46:44 -05:00
de21d07a5d update image version 2024-05-16 12:45:49 -05:00
58cc48724b update image version 2024-05-16 12:45:15 -05:00
8a357574e9 update dependencies 2024-05-16 12:44:35 -05:00
220e9e011b update image version 2024-05-16 12:42:57 -05:00
9483523eb8 update dependencies 2024-05-16 12:42:04 -05:00
ca205a8802 update dependencies 2024-05-16 12:41:41 -05:00
36267ada6f update middleware api 2024-05-16 12:35:39 -05:00
153b7a1ad2 update middleware api 2024-05-16 12:35:27 -05:00
9b30408661 update middleware api 2024-05-16 12:35:04 -05:00
947120d73c fix backup schedule 2024-04-26 14:35:54 -06:00
a62e24142c add mysql cluster 2024-04-26 14:05:21 -06:00
03c825e816 change s3 path 2024-04-26 10:00:10 -06:00
38c2be01f9 remove kyoo 2024-04-25 12:45:25 -06:00
renovate[bot]
5ac88f9aa8 Update homeassistant/home-assistant Docker tag to v2024.4.4 (#44)
* Update homeassistant/home-assistant Docker tag to v2024.4.4

* update chart

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: alexlebens <alexanderlebens@gmail.com>
2024-04-23 16:43:29 -06:00
renovate[bot]
3c3f1bdb76 Update Helm release redis to v19.1.3 (#43)
* Update Helm release redis to v19.1.3

* update chart versions

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: alexlebens <alexanderlebens@gmail.com>
2024-04-23 15:57:32 -06:00
renovate[bot]
718acdc607 Update Helm release rabbitmq to v14.0.2 (#42)
* Update Helm release rabbitmq to v14.0.2

* update chart

* remove tailing whitespace

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: alexlebens <alexanderlebens@gmail.com>
2024-04-23 03:34:32 -06:00
renovate[bot]
71a5d81c09 Update bbilly1/tubearchivist-jf Docker tag to v0.2.0 (#41)
* Update bbilly1/tubearchivist-jf Docker tag to v0.2.0

* update chart

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: alexlebens <alexanderlebens@gmail.com>
2024-04-23 03:32:57 -06:00
renovate[bot]
e2d4c395e5 Update Helm release elasticsearch to v21 (#40)
* Update Helm release elasticsearch to v21

* update elastic search chart

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: alexlebens <alexanderlebens@gmail.com>
2024-04-22 06:43:28 -06:00
fd611813b7 add annotations to deployment 2024-04-21 06:40:46 -06:00
ab5da15b10 remove lazy-librarian 2024-04-21 04:59:41 -06:00
e584566dde fix app version 2024-04-21 04:03:32 -06:00
f06aa3a175 add lazy-librarian 2024-04-21 03:59:25 -06:00
9abeba8f9d add penpot 2024-04-19 21:34:56 -06:00
1f498323a4 change postgres settings to import only password from secret 2024-04-19 05:41:38 -06:00
646e3a2c36 grant read to unlogged users 2024-04-19 05:32:28 -06:00
197ca6ef81 add quotes around default vhost of / 2024-04-19 05:22:14 -06:00
b8780a7339 add default vhost 2024-04-19 05:05:10 -06:00
b90968ea85 fix scanner image name 2024-04-19 05:01:23 -06:00
d3275f8067 create switch if various api keys are provided 2024-04-19 04:58:46 -06:00
649f362824 remove extra configuration from rabbitmq 2024-04-19 04:54:03 -06:00
732761d73b fix default vhost 2024-04-19 04:50:49 -06:00
0e7627cb7d fix oidc values path 2024-04-19 04:41:22 -06:00
d81c246b35 add kyoo 2024-04-19 04:08:55 -06:00
renovate[bot]
b97dd1f892 Update Helm release redis to v19.1.2 (#39)
* Update Helm release redis to v19.1.2

* update chart

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: alexlebens <alexanderlebens@gmail.com>
2024-04-18 22:02:37 -06:00
0b8374753d change default cpu limit 2024-04-18 05:49:15 -06:00
cb29afdcb2 fix source server naming 2024-04-18 05:35:06 -06:00
4f366535c3 change default cpu limit 2024-04-18 04:35:42 -06:00
f32ef77551 add additional options for recovery 2024-04-18 03:43:52 -06:00
d02f649164 remove default option in bootstrap helper 2024-04-18 03:27:00 -06:00
3b50ca2bfe fix comparision operator position 2024-04-18 01:51:06 -06:00
17796a1183 increment chart version 2024-04-18 01:48:03 -06:00
512b1d4243 set default value for comparision 2024-04-18 01:47:46 -06:00
a2b0cdd5b6 fix ordering of comparision operator 2024-04-18 01:39:33 -06:00
e79af169b9 calculate length of array separately 2024-04-18 01:35:19 -06:00
661f9342b9 fix length measurement of database 2024-04-18 01:17:16 -06:00
9d1244c7a1 remove patch from image tag 2024-04-18 01:07:36 -06:00
0dc50bf88f change default cluster name to start with release 2024-04-17 20:01:47 -06:00
75accbbf87 use semver function to pull major version into cluster name 2024-04-17 20:00:06 -06:00
19fbd95a79 change templating for cluster naming 2024-04-17 19:45:08 -06:00
d73c42fd42 change default values 2024-04-17 19:15:54 -06:00
renovate[bot]
6399a8ca97 Update Helm release rabbitmq to v14 (#34)
* Update Helm release rabbitmq to v14

* update chart

* align comments for readability

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: alexlebens <alexanderlebens@gmail.com>
2024-04-17 19:13:57 -06:00
renovate[bot]
580c7da73a Update Helm release redis to v19.1.1 (#18)
* Update Helm release redis to v19.1.1

* update charts

* fix indentation

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: alexlebens <alexanderlebens@gmail.com>
2024-04-17 19:09:36 -06:00
renovate[bot]
11d47799f1 Update dock.mau.dev/mautrix/whatsapp Docker tag to v0.10.7 (#36)
* Update dock.mau.dev/mautrix/whatsapp Docker tag to v0.10.7

* update helm chart

* fix indentation

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: alexlebens <alexanderlebens@gmail.com>
2024-04-17 19:05:30 -06:00
renovate[bot]
7d825da72d Update linuxserver/code-server Docker tag to v4.23.1 (#35)
* Update linuxserver/code-server Docker tag to v4.23.1

* update helm chart

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: alexlebens <alexanderlebens@gmail.com>
2024-04-17 19:05:16 -06:00
renovate[bot]
adf49292bd Update halfshot/matrix-hookshot Docker tag to v5.3.0 (#38)
* Update halfshot/matrix-hookshot Docker tag to v5.3.0

* update chart

* fix linting errors

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: alexlebens <alexanderlebens@gmail.com>
2024-04-17 19:03:21 -06:00
renovate[bot]
63e69df14a Update ghcr.io/gethomepage/homepage Docker tag to v0.8.12 (#37)
* Update ghcr.io/gethomepage/homepage Docker tag to v0.8.12

* update chart

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Lebens <alexanderlebens@gmail.com>
2024-04-17 18:55:36 -06:00
7bd8a4525a if oidc is enabled add an ingress path to the backend 2024-04-17 04:42:51 -06:00
a860789056 add env to front deployment about oidc enablement 2024-04-15 03:31:49 -06:00
58f89640a8 fix naming of changed rabbitmq charts 2024-04-15 02:47:45 -06:00
132e086d6d change rabbitmq chart naming to generate proper dns and app names 2024-04-15 02:44:10 -06:00
617505ee99 fix length of app port 2024-04-13 23:37:58 -06:00
34a21702ab fix http service value 2024-04-13 23:32:48 -06:00
15d3253af9 fix events app port to service and port 2024-04-13 23:28:03 -06:00
90970ef172 fix events health endpoint 2024-04-13 23:19:59 -06:00
0d6f789ffd increment chart version 2024-04-13 23:14:21 -06:00
f968776cd0 fix trello importer switch for async container 2024-04-13 23:13:44 -06:00
0b2beb08b7 fix indentation of events deployment 2024-04-13 23:11:44 -06:00
8fae31a679 properly enable/disable trello importer 2024-04-13 23:07:20 -06:00
f67ac05610 fix indentation 2024-04-13 23:05:03 -06:00
7803519d04 add major version value 2024-04-13 22:58:01 -06:00
55e63c2c72 fix minor formatting and remove uneeded values 2024-04-13 22:31:07 -06:00
6e083293bb fix minor formatting and remove uneeded values 2024-04-13 22:29:33 -06:00
60e427826c add taiga 2024-04-13 22:17:45 -06:00
f905b4ccfe change s3 env keys 2024-04-13 14:58:20 -06:00
487786455c change default credential secret name 2024-04-13 03:28:27 -06:00
585d39657a change how the cluster name is generated and used 2024-04-13 03:24:58 -06:00
e5e2812ed5 remove chart as functionality is now included in postgres-cluster chart 2024-04-13 02:46:38 -06:00
506218210e add replica import type 2024-04-13 02:41:46 -06:00
a7a08ef9f3 change chart to align with cnpg's chart 2024-04-13 02:06:02 -06:00
0fe94afd2a revert to redis image 2024-04-12 20:11:10 -06:00
renovate[bot]
73262aa60a Update homeassistant/home-assistant Docker tag to v2024.4.3 (#31)
* Update homeassistant/home-assistant Docker tag to v2024.4.3

* update chart

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Lebens <alexanderlebens@gmail.com>
2024-04-12 17:42:37 -06:00
a322553210 update readme 2024-04-11 19:37:45 -06:00
09aae9e79d change default cluster size to 3 2024-04-11 19:35:05 -06:00
c72c25a74d upgrade default postgres version to 16.2 2024-04-11 19:33:20 -06:00
9c93b1dc4a bump chart version 2024-04-11 19:31:56 -06:00
cfd426f657 bump chart version 2024-04-11 19:31:46 -06:00
93f4991a05 remove default as storage class 2024-04-11 19:30:58 -06:00
ce0f3c7b07 remove default as storage class 2024-04-11 19:30:50 -06:00
58c5443de1 add postgres-cluster-upgrade chart 2024-04-11 19:05:18 -06:00
b3acbf3cbc update redis chart to 19 2024-04-11 18:04:23 -06:00
3270a3102b change redis image to use valkey 2024-04-11 18:03:44 -06:00
acc9710c72 update redis chart to 19 2024-04-11 18:03:23 -06:00
756ef9b0c6 upgrade elasticsearch chart version 2024-04-11 17:44:53 -06:00
renovate[bot]
8baec6fd41 Update bbilly1/tubearchivist Docker tag to v0.4.7 (#30)
* Update bbilly1/tubearchivist Docker tag to v0.4.7

* update chart

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Lebens <alexanderlebens@gmail.com>
2024-04-11 17:38:23 -06:00
c1ab4afc46 add s3 accelerate env 2024-04-09 22:35:16 -06:00
bdcd63284a add url protocol to s3 endpoint 2024-04-09 20:16:43 -06:00
renovate[bot]
e8a951405d Update linuxserver/code-server Docker tag to v4.23.0 (#29)
* Update linuxserver/code-server Docker tag to v4.23.0

* update chart

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Lebens <alexanderlebens@gmail.com>
2024-04-08 18:19:18 -06:00
renovate[bot]
93caa67bad Update ghcr.io/gethomepage/homepage Docker tag to v0.8.11 (#28)
* Update ghcr.io/gethomepage/homepage Docker tag to v0.8.11

* update chart

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Lebens <alexanderlebens@gmail.com>
2024-04-08 11:30:31 -06:00
renovate[bot]
0dfaebdb7f Update homeassistant/home-assistant Docker tag to v2024.4.2 (#27)
* Update homeassistant/home-assistant Docker tag to v2024.4.2

* update chart

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Lebens <alexanderlebens@gmail.com>
2024-04-08 11:28:09 -06:00
renovate[bot]
2f721343aa Update homeassistant/home-assistant Docker tag to v2024.4.1 (#26)
* Update homeassistant/home-assistant Docker tag to v2024.4.1

* update chart

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Lebens <alexanderlebens@gmail.com>
2024-04-06 15:41:04 -06:00
270b62be53 add tubearchivist to jellyfin 2024-04-04 23:22:14 -06:00
0984e40cc8 remove workflow path 2024-04-04 14:53:35 -06:00
4e26a7c727 remove commands from bridges 2024-04-04 14:47:35 -06:00
17d146a444 add archive folder 2024-04-04 13:47:48 -06:00
323955129b add mautrix-whatsapp 2024-04-04 13:43:13 -06:00
d4eaeb7c21 add mautrix-discord 2024-04-04 13:36:39 -06:00
725e83af07 add port and host to database env 2024-04-04 11:48:22 -06:00
renovate[bot]
d58fbbd819 Update homeassistant/home-assistant Docker tag to v2024.4.0 (#25)
* Update homeassistant/home-assistant Docker tag to v2024.4.0

* update chart

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Lebens <alexanderlebens@gmail.com>
2024-04-03 20:15:46 -06:00
bab4c95580 update image version to latest 2024-04-01 09:28:19 -06:00
536b133850 add widgets 2024-03-30 16:47:42 -06:00
ead44d21f7 fix service account name 2024-03-30 14:48:51 -06:00
ff7fb92c19 create tempalte name for passFile 2024-03-30 14:43:13 -06:00
46effc5599 fix secret field schema 2024-03-30 14:32:22 -06:00
0f7a0d658f fix naming 2024-03-30 14:27:29 -06:00
08b0782645 add service monitor 2024-03-30 14:22:55 -06:00
9f7f83a40a change webhook path 2024-03-30 14:17:21 -06:00
b3f9c93fcb change chart name 2024-03-30 13:30:46 -06:00
b6bcae462f add matrix hookshot 2024-03-30 13:30:11 -06:00
renovate[bot]
70cbd7b60d Update Helm release tdarr-exporter to v1.1.1 (#20)
* Update Helm release tdarr-exporter to v1.1.1

* bump chart version

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Lebens <alexanderlebens@gmail.com>
2024-03-25 10:16:22 -06:00
renovate[bot]
ba065b36b2 Update ghcr.io/qdm12/gluetun Docker tag to v3.38.0 (#22)
* Update ghcr.io/qdm12/gluetun Docker tag to v3.38.0

* bump chart version

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Lebens <alexanderlebens@gmail.com>
2024-03-25 10:15:48 -06:00
renovate[bot]
cfc4d78b9f Update Helm release redis to v18.19.4 (#16)
* Update Helm release redis to v18.19.4

* bump chart version

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Lebens <alexanderlebens@gmail.com>
2024-03-25 10:12:55 -06:00
renovate[bot]
34e96804f4 Update ghcr.io/gethomepage/homepage Docker tag to v0.8.10 (#21)
* Update ghcr.io/gethomepage/homepage Docker tag to v0.8.10

* update chart

* remove whitespace

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Lebens <alexanderlebens@gmail.com>
2024-03-25 10:12:28 -06:00
renovate[bot]
3a8354635b Update Helm release tdarr-exporter to v1.1.0 (#17)
* Update Helm release tdarr-exporter to v1.1.0

* increment chart version

* remove trailing whitespace

* remove trailing whitespace

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Lebens <alexanderlebens@gmail.com>
2024-03-22 15:50:34 -06:00
renovate[bot]
fcba2d6011 Update homeassistant/home-assistant Docker tag to v2024.3.3 (#19)
* Update homeassistant/home-assistant Docker tag to v2024.3.3

* update chart version

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Lebens <alexanderlebens@gmail.com>
2024-03-22 15:42:11 -06:00
renovate[bot]
8db4555032 Update linuxserver/code-server Docker tag to v4.22.1 (#15)
* Update linuxserver/code-server Docker tag to v4.22.1

* update chart

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Lebens <alexanderlebens@gmail.com>
2024-03-18 01:30:05 -06:00
renovate[bot]
f22b33deba Update homeassistant/home-assistant Docker tag to v2024.3.1 (#14)
* Update homeassistant/home-assistant Docker tag to v2024.3.1

* update chart

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Lebens <alexanderlebens@gmail.com>
2024-03-18 01:28:21 -06:00
f73b754d9c fix values 2024-03-17 01:32:21 -06:00
f2e3dba5e2 remove probes 2024-03-16 09:56:06 -06:00
e89bd04a8d fix env merging 2024-03-16 09:52:14 -06:00
6f2550cf79 change env type 2024-03-16 09:41:49 -06:00
0c94180823 hardcode the exporter port 2024-03-16 09:36:56 -06:00
f59d77f8bc fix metrics switch 2024-03-16 09:34:09 -06:00
57983912f5 remove node api and probes 2024-03-16 09:29:07 -06:00
8a6cfef4c5 add server IP env 2024-03-16 09:21:32 -06:00
7c9a06dcee add existing secret name for gluetun 2024-03-16 09:12:46 -06:00
580f9efa06 add qbittorrent 2024-03-16 09:04:25 -06:00
c0b41a6d6c add tdarr 2024-03-16 08:16:38 -06:00
4efdc15832 add unpackerr 2024-03-16 07:25:27 -06:00
2dc9f33109 update chart details 2024-03-16 07:15:39 -06:00
d0255ca5d1 remove specific values 2024-03-16 05:44:05 -06:00
790ad5b440 update renovate config 2024-03-16 05:43:49 -06:00
9539635918 change repo 2024-03-16 04:38:43 -06:00
7c61825d5f enable enviroment variables 2024-03-16 04:11:46 -06:00
c2446ab6e2 add freshrss 2024-03-16 04:11:17 -06:00
120fbe05e6 fix mount location 2024-03-16 01:42:55 -06:00
e686771ce3 fix names 2024-03-16 01:34:46 -06:00
a5bd0b724a enable proxy auth for ha 2024-03-15 23:04:47 -06:00
35c7223d40 change tls secret name 2024-03-15 22:37:38 -06:00
32bda525a1 change proxy auth to code server 2024-03-15 22:36:45 -06:00
42231a40f4 add tubearchivist-to-jellyfin 2024-03-15 19:12:12 -06:00
76c6016a9e change redis image 2024-03-15 02:23:23 -06:00
d8e6ac1d7b fix env value 2024-03-15 02:19:03 -06:00
03d0cab454 update elasticsearch chart version 2024-03-15 02:16:26 -06:00
b149fbd85e add tubearchivist 2024-03-15 02:00:46 -06:00
97528e845d fix redis chart version 2024-03-15 01:57:19 -06:00
f04f777ec2 add cops 2024-03-14 23:58:52 -06:00
renovate[bot]
688d6498b0 Update homeassistant/home-assistant Docker tag to v2024.3.0 (#11)
* Update homeassistant/home-assistant Docker tag to v2024.3.0

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Alex Lebens <alexanderlebens@gmail.com>
2024-03-14 17:11:41 -06:00
7d8c554354 change ingress and port name 2024-03-14 08:59:18 -06:00
75 changed files with 843 additions and 2022 deletions

View File

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

39
.github/renovate.json vendored
View File

@@ -5,13 +5,11 @@
"mergeConfidence:all-badges",
":rebaseStalePrs"
],
"timezone": "US/Mountain",
"timezone": "US/Central",
"schedule": [
"after 10am every weekday",
"before 5pm every weekday"
],
"labels": [
"every weekday"
],
"labels": [],
"packageRules": [
{
"description": "Disables for non major Renovate version",
@@ -41,51 +39,24 @@
"automerge": false
},
{
"description": "Generate image updates on Tuesdays",
"matchPackageNames": [
"linuxserver/calibre",
"homeassistant/home-assistant",
"linuxserver/code-server",
"ghcr.io/gethomepage/homepage",
"ghcr.io/alex1989hu/kubelet-serving-cert-approver",
"rmcrackan/libation",
"outlinewiki/outline",
"ghcr.io/cloudnative-pg/postgresql"
],
"description": "Label images",
"matchDatasources": [
"docker"
],
"schedule": [
"after 10am on tuesday",
"before 5pm on tuesday"
],
"addLabels": [
"upgrade",
"weekly",
"image"
],
"bumpVersion": "minor",
"automerge": false,
"minimumReleaseAge": "3 days"
},
{
"description": "Generate application charts on Tuesdays",
"matchPackageNames": [
"redis"
],
"description": "Label charts",
"matchDatasources": [
"helm"
],
"schedule": [
"after 10am on tuesday",
"before 5pm on tuesday"
],
"addLabels": [
"upgrade",
"weekly",
"chart"
],
"bumpVersion": "minor",
"automerge": false,
"minimumReleaseAge": "3 days"
}

3
.gitignore vendored
View File

@@ -1,3 +1,6 @@
# Archived
charts/**/archive
# Compiled Helm chart dependencies
charts/**/Chart.lock
charts/**/charts/

View File

@@ -1,13 +0,0 @@
apiVersion: v2
name: calibre-server
version: 0.0.5
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: authentik-proxy-outpost
port: 9000
persistence:
config:
storageClassName: default
storageSize: 5Gi
volumeMode: Filesystem
books:
claimName:

View File

@@ -0,0 +1,18 @@
apiVersion: v2
name: cloudflared
version: 1.12.0
description: Cloudflared Tunnel
keywords:
- cloudflare
- tunnel
sources:
- https://github.com/cloudflare/cloudflared
- https://github.com/bjw-s/helm-charts/tree/main/charts/library/common
maintainers:
- name: alexlebens
dependencies:
- name: common
repository: https://bjw-s.github.io/helm-charts/
version: 3.5.1
icon: https://avatars.githubusercontent.com/u/314135?s=48&v=4
appVersion: "2024.12.2"

View File

@@ -0,0 +1,16 @@
## Introduction
[Cloudflared](https://github.com/cloudflare/cloudflared)
Contains the command-line client for Cloudflare Tunnel, a tunneling daemon that proxies traffic from the Cloudflare network to your origins.
This chart bootstraps a [Cloudflared](https://github.com/cloudflare/cloudflared) tunnel 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

@@ -0,0 +1,41 @@
{{- include "bjw-s.common.loader.init" . }}
{{- define "cloudflared.hardcodedValues" -}}
{{ if not .Values.global.nameOverride }}
global:
nameOverride: {{ .Values.name }}
{{ end }}
controllers:
main:
type: deployment
strategy: Recreate
containers:
main:
image:
repository: {{ .Values.image.repository }}
tag: {{ .Values.image.tag }}
pullPolicy: {{ .Values.image.pullPolicy }}
args:
- tunnel
- --protocol
- http2
- --no-autoupdate
- run
- --token
- $(CF_MANAGED_TUNNEL_TOKEN)
env:
- name: CF_MANAGED_TUNNEL_TOKEN
valueFrom:
secretKeyRef:
name: {{ .Values.existingSecretName }}
key: {{ .Values.existingSecretKey }}
resources:
{{- with .Values.resources }}
resources:
{{- toYaml . | nindent 10 }}
{{ end }}
{{- end -}}
{{- $_ := mergeOverwrite .Values (include "cloudflared.hardcodedValues" . | fromYaml) -}}
{{/* Render the templates */}}
{{ include "bjw-s.common.loader.generate" . }}

View File

@@ -0,0 +1,11 @@
name: cloudflared
existingSecretName: cloudflared-secret
existingSecretKey: cf-tunnel-token
image:
repository: cloudflare/cloudflared
tag: "2024.12.2"
pullPolicy: IfNotPresent
resources:
requests:
cpu: 100m
memory: 128Mi

View File

@@ -0,0 +1,18 @@
apiVersion: v2
name: generic-device-plugin
version: 0.1.2
description: Generic Device Plugin
keywords:
- generic-device-plugin
- device
- plugin
sources:
- https://github.com/squat/generic-device-plugin
- https://github.com/bjw-s/helm-charts/tree/main/charts/library/common
maintainers:
- name: alexlebens
dependencies:
- name: common
repository: https://bjw-s.github.io/helm-charts/
version: 3.5.1
appVersion: 0.1.2

View File

@@ -0,0 +1,16 @@
## Introduction
[Generic Device Plugin](https://github.com/squat/generic-device-plugin)
The generic-device-plugin enables allocating generic Linux devices, such as serial devices, the FUSE device, or video cameras, to Kubernetes Pods.
This chart bootstraps a [Generic Device Plugin](https://github.com/squat/generic-device-plugin) daemonset 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

@@ -0,0 +1,82 @@
{{- include "bjw-s.common.loader.init" . }}
{{- define "genericDevicePlugin.hardcodedValues" -}}
{{ if not .Values.global.nameOverride }}
global:
nameOverride: {{ .Values.name }}
{{ end }}
controllers:
main:
type: daemonset
pod:
priorityClassName: system-node-critical
tolerations:
- operator: "Exists"
effect: "NoExecute"
- operator: "Exists"
effect: "NoSchedule"
containers:
main:
image:
repository: {{ .Values.image.repository }}
tag: {{ .Values.image.tag }}
pullPolicy: {{ .Values.image.pullPolicy }}
args:
- --config=/config/config.yaml
env:
- name: LISTEN
value: :{{ .Values.service.listenPort }}
- name: PLUGIN_DIRECTORY
value: /var/lib/kubelet/device-plugins
- name: DOMAIN
value: {{ .Values.deviceDomain }}
probes:
liveness:
type: HTTP
path: /health
readiness:
type: HTTP
path: /health
startup:
type: HTTP
path: /health
securityContext:
privileged: True
configMaps:
config:
enabled: {{ .Values.config.enabled }}
data:
config.yaml: {{ toYaml .Values.config.data | nindent 8 }}
service:
main:
controller: main
ports:
http:
port: {{ .Values.service.listenPort }}
persistence:
config:
enabled: true
type: configMap
name: {{ .Values.name }}-config
device-plugins:
enabled: true
type: hostPath
hostPath: /var/lib/kubelet/device-plugins
dev:
enabled: true
type: hostPath
hostPath: /dev
serviceMonitor:
main:
serviceName: generic-device-plugin
endpoints:
- port: http
scheme: http
path: /metrics
interval: 30s
scrapeTimeout: 10s
{{- end -}}
{{- $_ := mergeOverwrite .Values (include "genericDevicePlugin.hardcodedValues" . | fromYaml) -}}
{{/* Render the templates */}}
{{ include "bjw-s.common.loader.generate" . }}

View File

@@ -0,0 +1,74 @@
name: generic-device-plugin
image:
repository: ghcr.io/squat/generic-device-plugin
pullPolicy: Always
tag: latest
deviceDomain: squat.ai
service:
listenPort: 8080
resources:
limit:
cpu: 100m
memory: 20Mi
requests:
cpu: 50m
memory: 10Mi
config:
enabled: true
# -- generic-device-plugin config file [[ref]](https://github.com/squat/generic-device-plugin#usage)
# @default -- See [values.yaml](./values.yaml)
data: |
devices:
- name: serial
groups:
- paths:
- path: /dev/ttyUSB*
- paths:
- path: /dev/ttyACM*
- paths:
- path: /dev/tty.usb*
- paths:
- path: /dev/cu.*
- paths:
- path: /dev/cuaU*
- paths:
- path: /dev/rfcomm*
- name: video
groups:
- paths:
- path: /dev/video0
- name: fuse
groups:
- count: 10
paths:
- path: /dev/fuse
- name: audio
groups:
- count: 10
paths:
- path: /dev/snd
- name: capture
groups:
- paths:
- path: /dev/snd/controlC0
- path: /dev/snd/pcmC0D0c
- paths:
- path: /dev/snd/controlC1
mountPath: /dev/snd/controlC0
- path: /dev/snd/pcmC1D0c
mountPath: /dev/snd/pcmC0D0c
- paths:
- path: /dev/snd/controlC2
mountPath: /dev/snd/controlC0
- path: /dev/snd/pcmC2D0c
mountPath: /dev/snd/pcmC0D0c
- paths:
- path: /dev/snd/controlC3
mountPath: /dev/snd/controlC0
- path: /dev/snd/pcmC3D0c
mountPath: /dev/snd/pcmC0D0c

View File

@@ -1,12 +0,0 @@
apiVersion: v2
name: home-assistant
version: 0.0.15
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.2.5

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: home-assistant
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: home-assistant
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: home-assistant
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
serviceAccountName: home-assistant
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: home-assistant-config

View File

@@ -1,60 +0,0 @@
{{- if .Values.ingressRoute.enabled }}
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: home-assistant
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: home-assistant
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: home-assistant
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: home-assistant
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: home-assistant-codeserver
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: home-assistant
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: home-assistant
spec:
entryPoints:
- websecure
routes:
- kind: Rule
match: "Host(`{{ .Values.codeserver.ingressRoute.host }}`)"
priority: 10
services:
- kind: Service
name: home-assistant-codeserver
port: {{ .Values.codeserver.service.http.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: home-assistant-config
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: home-assistant
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: home-assistant
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: home-assistant
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: home-assistant
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: home-assistant
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: home-assistant
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: home-assistant

View File

@@ -1,26 +0,0 @@
{{- if .Values.metrics.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: home-assistant
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: home-assistant
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: home-assistant
spec:
selector:
matchLabels:
app.kubernetes.io/name: home-assistant
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: home-assistant
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: home-assistant
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: home-assistant
app.kubernetes.io/instance: {{ .Release.Name }}
---
{{- if .Values.codeserver.enabled }}
apiVersion: v1
kind: Service
metadata:
name: home-assistant-codeserver
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: home-assistant
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: home-assistant
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.3.0
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: authentik-proxy-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.22.0
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.7
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.9

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.9
imagePullPolicy: IfNotPresent
env:
envFrom:
resources:
requests:
memory: 256Mi
cpu: 50m
limits:
memory: 512Mi
cpu: 500m
service:
http:
port: 3000
ingressRoute:
host:
authentik:
outpost: authentik-proxy-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,13 +0,0 @@
apiVersion: v2
name: libation
version: 0.0.5
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: nfs-client
storageSize: 1Gi
volumeMode: Filesystem
books:
claimName: libation-nfs-storage

View File

@@ -1,18 +0,0 @@
apiVersion: v2
name: outline
version: 0.0.4
description: Chart for Outline wiki
keywords:
- wiki
- documentation
sources:
- https://github.com/outline/outline
- https://github.com/bitnami/charts/tree/main/bitnami/redis
maintainers:
- name: alexlebens
icon: https://avatars.githubusercontent.com/u/1765001?s=48&v=4
dependencies:
- name: redis
repository: https://charts.bitnami.com/bitnami
version: 18.x.x
appVersion: v0.75.2

View File

@@ -1,17 +0,0 @@
## Introduction
[Outline](https://github.com/outline/outline)
The fastest knowledge base for growing teams. Beautiful, realtime collaborative, feature packed, and markdown compatible.
This chart bootstraps an [Outline](https://github.com/outline/outline) deployment on a [Kubernetes](https://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
## Prerequisites
- Kubernetes
- Helm
- Bitnami Redis Chart
## Parameters
See the [values files](values.yaml).

View File

@@ -1,201 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: outline
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: outline
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: web
app.kubernetes.io/part-of: outline
spec:
revisionHistoryLimit: 3
replicas: {{ .Values.deployment.replicas }}
strategy:
type: {{ .Values.deployment.strategy }}
selector:
matchLabels:
app.kubernetes.io/name: outline
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
labels:
app.kubernetes.io/name: outline
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
serviceAccountName: outline
automountServiceAccountToken: true
containers:
- name: {{ .Release.Name }}
image: "{{ .Values.deployment.image.repository }}:{{ .Values.deployment.image.tag }}"
imagePullPolicy: {{ .Values.deployment.image.imagePullPolicy }}
ports:
- name: web
containerPort: {{ .Values.service.web.port }}
protocol: TCP
env:
- name: NODE_ENV
value: "{{ .Values.outline.nodeEnv }}"
- name: URL
value: "{{ .Values.outline.url }}"
- name: PORT
value: "{{ .Values.service.web.port }}"
- name: SECRET_KEY
valueFrom:
secretKeyRef:
name: "{{ .Values.outline.secretKey.existingSecretName }}"
key: "{{ .Values.outline.secretKey.existingSecretKey }}"
- name: UTILS_SECRET
valueFrom:
secretKeyRef:
name: "{{ .Values.outline.utilsSecret.existingSecretName }}"
key: "{{ .Values.outline.secretKey.existingSecretKey }}"
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: "{{ .Values.outline.database.passwordSecret.existingSecretName }}"
key: "{{ .Values.outline.database.passwordSecret.existingSecretKey }}"
- name: POSTGRES_USERNAME
valueFrom:
secretKeyRef:
name: "{{ .Values.outline.database.usernameSecret.existingSecretName }}"
key: "{{ .Values.outline.database.usernameSecret.existingSecretKey }}"
- name: POSTGRES_DATABASE_NAME
valueFrom:
secretKeyRef:
name: "{{ .Values.outline.database.databaseName.existingSecretName }}"
key: "{{ .Values.outline.database.databaseName.existingSecretKey }}"
- name: POSTGRES_DATABASE_HOST
valueFrom:
secretKeyRef:
name: "{{ .Values.outline.database.databaseHost.existingSecretName }}"
key: "{{ .Values.outline.database.databaseHost.existingSecretKey }}"
- name: DATABASE_URL
value: "postgres://$(POSTGRES_USERNAME):$(POSTGRES_PASSWORD)@postgresql-{{ .Release.Name }}-cluster-rw:5432/$(POSTGRES_DATABASE_NAME)"
- name: DATABASE_URL_TEST
value: "postgres://$(POSTGRES_USERNAME):$(POSTGRES_PASSWORD)@postgresql-{{ .Release.Name }}-cluster-rw:5432/$(POSTGRES_DATABASE_NAME)-test"
- name: DATABASE_CONNECTION_POOL_MIN
value: "{{ .Values.outline.database.connectionPoolMin }}"
- name: DATABASE_CONNECTION_POOL_MAX
value: "{{ .Values.outline.database.connectionPoolMax }}"
- name: PGSSLMODE
value: "{{ .Values.outline.database.sslMode }}"
- name: REDIS_URL
value: "redis://{{ .Release.Name }}-redis-master:6379"
- name: FILE_STORAGE
value: "{{ .Values.persistence.type }}"
{{- if eq .Values.persistence.type "s3" }}
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: "{{ .Values.persistence.s3.credentialsSecret }}"
key: AWS_ACCESS_KEY_ID
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: "{{ .Values.persistence.s3.credentialsSecret }}"
key: AWS_SECRET_ACCESS_KEY
{{- if .Values.persistence.s3.endpointConfigMap.enabled }}
- name: AWS_REGION
valueFrom:
configMapKeyRef:
name: "{{ .Values.persistence.s3.endpointConfigMap.name }}"
key: BUCKET_REGION
- name: AWS_S3_UPLOAD_BUCKET_NAME
valueFrom:
configMapKeyRef:
name: "{{ .Values.persistence.s3.endpointConfigMap.name }}"
key: BUCKET_NAME
- name: AWS_S3_UPLOAD_BUCKET_HOST
valueFrom:
configMapKeyRef:
name: "{{ .Values.persistence.s3.endpointConfigMap.name }}"
key: BUCKET_HOST
- name: AWS_S3_UPLOAD_BUCKET_PORT
valueFrom:
configMapKeyRef:
name: "{{ .Values.persistence.s3.endpointConfigMap.name }}"
key: BUCKET_PORT
- name: AWS_S3_UPLOAD_BUCKET_URL
value: "$(AWS_S3_UPLOAD_BUCKET_HOST):$(AWS_S3_UPLOAD_BUCKET_PORT)|"
{{- else }}
- name: AWS_REGION
value: "{{ .Values.persistence.s3.region }}"
- name: AWS_S3_UPLOAD_BUCKET_NAME
value: "{{ .Values.persistence.s3.bucketName }}"
- name: AWS_S3_UPLOAD_BUCKET_URL
value: "{{ .Values.persistence.s3.endpoint }}"
{{- end }}
- name: AWS_S3_FORCE_PATH_STYLE
value: "{{ .Values.persistence.s3.forcePathStyle }}"
- name: AWS_S3_ACL
value: "{{ .Values.persistence.s3.acl }}"
- name: FILE_STORAGE_UPLOAD_MAX_SIZE
value: "{{ .Values.persistence.s3.uploadMaxSize }}"
{{- else if eq .Values.persistence.type "local" }}
- name: FILE_STORAGE_LOCAL_ROOT_DIR
value: "{{ .Values.persistence.local.localRootDir }}"
- name: FILE_STORAGE_UPLOAD_MAX_SIZE
value: "{{ .Values.persistence.local.uploadMaxSize }}"
{{- end }}
- name: FORCE_HTTPS
value: "{{ .Values.outline.optional.forceHttps }}"
- name: ENABLE_UPDATES
value: "{{ .Values.outline.optional.enableUpdates }}"
- name: WEB_CONCURRENCY
value: "{{ .Values.outline.optional.webConcurrency }}"
- name: FILE_STORAGE_IMPORT_MAX_SIZE
value: "{{ .Values.outline.optional.maximumImportSize }}"
- name: LOG_LEVEL
value: "{{ .Values.outline.optional.logLevel }}"
- name: DEFAULT_LANGUAGE
value: "{{ .Values.outline.optional.defaultLanguage }}"
- name: RATE_LIMITER_ENABLED
value: "{{ .Values.outline.optional.rateLimiter.enabled }}"
- name: RATE_LIMITER_REQUESTS
value: "{{ .Values.outline.optional.rateLimiter.requests }}"
- name: RATE_LIMITER_DURATION_WINDOW
value: "{{ .Values.outline.optional.rateLimiter.durationWindow }}"
- name: DEVELOPMENT_UNSAFE_INLINE_CSP
value: "{{ .Values.outline.optional.developmentUnsafeInlineCsp }}"
{{- if .Values.outline.auth.oidc.enabled }}
- name: OIDC_CLIENT_ID
valueFrom:
secretKeyRef:
name: "{{ .Values.outline.auth.oidc.clientId.existingSecretName }}"
key: "{{ .Values.outline.auth.oidc.clientId.existingSecretKey }}"
- name: OIDC_CLIENT_SECRET
valueFrom:
secretKeyRef:
name: "{{ .Values.outline.auth.oidc.clientSecret.existingSecretName }}"
key: "{{ .Values.outline.auth.oidc.clientSecret.existingSecretKey }}"
- name: OIDC_AUTH_URI
value: "{{ .Values.outline.auth.oidc.authUri }}"
- name: OIDC_TOKEN_URI
value: "{{ .Values.outline.auth.oidc.tokenUri }}"
- name: OIDC_USERINFO_URI
value: "{{ .Values.outline.auth.oidc.userinfoUri }}"
- name: OIDC_USERNAME_CLAIM
value: "{{ .Values.outline.auth.oidc.usernameClaim }}"
- name: OIDC_DISPLAY_NAME
value: "{{ .Values.outline.auth.oidc.displayName }}"
- name: OIDC_SCOPES
value: "{{ .Values.outline.auth.oidc.scopes }}"
{{- end }}
resources:
{{- toYaml .Values.deployment.resources | nindent 12 }}
{{- if eq .Values.persistence.type "local" }}
volumeMounts:
- name: "{{ .Release.Name }}-volume-claim"
mountPath: {{ .Values.persistence.local.localRootDir }}
volumes:
- name: "{{ .Release.Name }}-volume-claim"
persistentVolumeClaim:
claimName: "{{ .Release.Name }}-volume-claim"
{{- end }}

View File

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

View File

@@ -1,20 +0,0 @@
{{- if eq .Values.persistence.type "local" }}
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ .Release.Name }}-volume-claim
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: outline
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: storage
app.kubernetes.io/part-of: outline
spec:
storageClassName: {{ .Values.persistence.local.storageClassName }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.persistence.local.storageSize }}
{{- end }}

View File

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

View File

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

View File

@@ -1,96 +0,0 @@
deployment:
replicas: 1
strategy: Recreate
image:
repository: outlinewiki/outline
tag: "0.75.2"
imagePullPolicy: IfNotPresent
resources:
requests:
memory: 256Mi
cpu: 50m
limits:
memory: 1Gi
cpu: 500m
service:
web:
port: 3000
ingress:
enabled: true
className: traefik
annotations:
host:
persistence:
type: s3
s3:
credentialsSecret:
endpointConfigMap:
enabled: false
name:
region:
bucketName:
endpoint:
uploadMaxSize: "26214400"
forcePathStyle: false
acl: private
local:
storageClassName: default
storageSize: 50Gi
localRootDir: /var/lib/outline/data
uploadMaxSize: 26214400
redis:
architecture: standalone
auth:
enabled: false
outline:
nodeEnv: production
url:
secretKey:
existingSecretName: outline-key-secret
existingSecretKey: secret-key
utilsSecret:
existingSecretName: outline-key-secret
existingSecretKey: utils-key
database:
passwordSecret:
existingSecretName:
existingSecretKey: password
usernameSecret:
existingSecretName:
existingSecretKey: username
databaseName:
existingSecretName:
existingSecretKey: dbname
databaseHost:
existingSecretName:
existingSecretKey: host
connectionPoolMin: ""
connectionPoolMax: "20"
sslMode: disable
optional:
forceHttps: false
enableUpdates: false
webConcurrency: 1
maximumImportSize: 5120000
logLevel: info
defaultLanguage: en_US
rateLimiter:
enabled: false
requests: 1000
durationWindow: 60
developmentUnsafeInlineCsp: false
auth:
oidc:
enabled: true
clientId:
existingSecretName: outline-auth-secret
existingSecretKey: oidc-client-id
clientSecret:
existingSecretName: outline-auth-secret
existingSecretKey: oidc-client-secret
authUri:
tokenUri:
userinfoUri:
usernameClaim:
displayName:
scopes: openid profile email

View File

@@ -1,6 +1,6 @@
apiVersion: v2
name: postgres-cluster
version: 0.2.3
version: 3.18.0
description: Chart for cloudnative-pg cluster
keywords:
- database
@@ -10,4 +10,4 @@ sources:
maintainers:
- name: alexlebens
icon: https://avatars.githubusercontent.com/u/100373852?s=48&v=4
appVersion: v1.22.1
appVersion: v1.24.1

View File

@@ -0,0 +1,50 @@
{{- define "cluster.backup" -}}
{{- if .Values.backup.enabled }}
backup:
retentionPolicy: {{ .Values.backup.retentionPolicy }}
barmanObjectStore:
destinationPath: {{ .Values.backup.destinationPath }}
endpointURL: {{ .Values.backup.endpointURL }}
{{- if .Values.backup.endpointCA }}
endpointCA:
name: {{ .Values.backup.endpointCA }}
key: ca-bundle.crt
{{- end }}
serverName: "{{ include "cluster.name" . }}-backup-{{ .Values.backup.backupIndex }}"
tags:
{{- with .Values.backup.tags }}
{{- . | toYaml | nindent 6 }}
{{- end }}
historyTags:
{{- with .Values.backup.historyTags }}
{{- . | toYaml | nindent 6 }}
{{- end }}
s3Credentials:
accessKeyId:
name: {{ include "cluster.backupCredentials" . }}
key: ACCESS_KEY_ID
secretAccessKey:
name: {{ include "cluster.backupCredentials" . }}
key: ACCESS_SECRET_KEY
wal:
{{- if .Values.backup.wal.compression }}
compression: {{ .Values.backup.wal.compression }}
{{- end }}
{{- if .Values.backup.wal.encryption }}
encryption: {{ .Values.backup.wal.encryption }}
{{- end }}
{{- if .Values.backup.wal.maxParallel }}
maxParallel: {{ .Values.backup.wal.maxParallel }}
{{- end }}
data:
{{- if .Values.backup.data.compression }}
compression: {{ .Values.backup.data.compression }}
{{- end }}
{{- if .Values.backup.data.encryption }}
encryption: {{ .Values.backup.data.encryption }}
{{- end }}
{{- if .Values.backup.data.jobs }}
jobs: {{ .Values.backup.data.jobs }}
{{- end }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,117 @@
{{- define "cluster.bootstrap" -}}
bootstrap:
{{- if eq .Values.mode "standalone" }}
initdb:
{{- with .Values.cluster.initdb }}
{{- with (omit . "postInitApplicationSQL") }}
{{- . | toYaml | nindent 4 }}
{{- end }}
{{- end }}
{{- if eq .Values.type "tensorchord" }}
dataChecksums: true
{{- end }}
{{- if or (eq .Values.type "postgis") (eq .Values.type "timescaledb") (eq .Values.type "tensorchord") (.Values.cluster.initdb.postInitApplicationSQL) }}
postInitApplicationSQL:
{{- if eq .Values.type "postgis" }}
- CREATE EXTENSION IF NOT EXISTS postgis;
- CREATE EXTENSION IF NOT EXISTS postgis_topology;
- CREATE EXTENSION IF NOT EXISTS fuzzystrmatch;
- CREATE EXTENSION IF NOT EXISTS postgis_tiger_geocoder;
{{- else if eq .Values.type "timescaledb" }}
- CREATE EXTENSION IF NOT EXISTS timescaledb;
{{- else if eq .Values.type "tensorchord" }}
- ALTER SYSTEM SET search_path TO "$user", public, vectors;
- SET search_path TO "$user", public, vectors;
- CREATE EXTENSION IF NOT EXISTS "vectors";
- CREATE EXTENSION IF NOT EXISTS "cube";
- CREATE EXTENSION IF NOT EXISTS "earthdistance";
- ALTER SCHEMA vectors OWNER TO "app";
- GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA vectors TO "app";
- GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "app";
{{- end }}
{{- with .Values.cluster.initdb }}
{{- range .postInitApplicationSQL }}
{{- printf "- %s" . | nindent 6 }}
{{- end }}
{{- end }}
{{- end }}
{{- else if eq .Values.mode "replica" }}
initdb:
import:
type: {{ .Values.replica.importType }}
databases:
{{- if and (gt (len .Values.replica.importDatabases) 1) (eq .Values.replica.importType "microservice") }}
{{ fail "Too many databases in import type of microservice!" }}
{{- else}}
{{- with .Values.replica.importDatabases }}
{{- . | toYaml | nindent 8 }}
{{- end }}
{{- end }}
{{- if eq .Values.replica.importType "monolith" }}
roles:
{{- with .Values.replica.importRoles }}
{{- . | toYaml | nindent 8 }}
{{- end }}
{{- end }}
{{- if and (.Values.replica.postImportApplicationSQL) (eq .Values.replica.importType "microservice") }}
postImportApplicationSQL:
{{- with .Values.replica.postImportApplicationSQL }}
{{- . | toYaml | nindent 8 }}
{{- end }}
{{- end }}
source:
externalCluster: "{{ include "cluster.name" . }}-cluster"
externalClusters:
- name: "{{ include "cluster.name" . }}-cluster"
{{- with .Values.replica.externalCluster }}
{{- . | toYaml | nindent 4 }}
{{- end }}
{{- else if eq .Values.mode "recovery" }}
recovery:
{{- with .Values.recovery.pitrTarget.time }}
recoveryTarget:
targetTime: {{ . }}
{{- end }}
source: {{ include "cluster.recoveryServerName" . }}
externalClusters:
- name: {{ include "cluster.recoveryServerName" . }}
barmanObjectStore:
serverName: {{ include "cluster.recoveryServerName" . }}
destinationPath: {{ .Values.recovery.destinationPath }}
endpointURL: {{ .Values.recovery.endpointURL }}
{{- with .Values.recovery.endpointCA }}
endpointCA:
name: {{ . }}
key: ca-bundle.crt
{{- end }}
s3Credentials:
accessKeyId:
name: {{ include "cluster.recoveryCredentials" . }}
key: ACCESS_KEY_ID
secretAccessKey:
name: {{ include "cluster.recoveryCredentials" . }}
key: ACCESS_SECRET_KEY
wal:
{{- if .Values.recovery.wal.compression }}
compression: {{ .Values.recovery.wal.compression }}
{{- end }}
{{- if .Values.recovery.wal.encryption }}
encryption: {{ .Values.recovery.wal.encryption }}
{{- end }}
{{- if .Values.recovery.wal.maxParallel }}
maxParallel: {{ .Values.recovery.wal.maxParallel }}
{{- end }}
data:
{{- if .Values.recovery.data.compression }}
compression: {{ .Values.recovery.data.compression }}
{{- end }}
{{- if .Values.recovery.data.encryption }}
encryption: {{ .Values.recovery.data.encryption }}
{{- end }}
{{- if .Values.recovery.data.jobs }}
jobs: {{ .Values.recovery.data.jobs }}
{{- end }}
{{- else }}
{{ fail "Invalid cluster mode!" }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,91 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "cluster.name" -}}
{{- if .Values.nameOverride }}
{{- .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-postgresql-%s" .Release.Name ((semver .Values.cluster.image.tag).Major | toString) | trunc 63 | trimSuffix "-" -}}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "cluster.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "cluster.labels" -}}
helm.sh/chart: {{ include "cluster.chart" . }}
{{ include "cluster.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "cluster.selectorLabels" -}}
app.kubernetes.io/name: {{ include "cluster.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/part-of: cloudnative-pg
{{- end }}
{{/*
Generate name for object store credentials
*/}}
{{- define "cluster.recoveryCredentials" -}}
{{- if .Values.recovery.endpointCredentials -}}
{{- .Values.recovery.endpointCredentials -}}
{{- else -}}
{{- printf "%s-backup-secret" (include "cluster.name" .) | trunc 63 | trimSuffix "-" -}}
{{- end }}
{{- end }}
{{- define "cluster.backupCredentials" -}}
{{- if .Values.backup.endpointCredentials -}}
{{- .Values.backup.endpointCredentials -}}
{{- else -}}
{{- printf "%s-backup-secret" (include "cluster.name" .) | trunc 63 | trimSuffix "-" -}}
{{- end }}
{{- end }}
{{/*
Generate backup server name
*/}}
{{- define "cluster.backupName" -}}
{{- if .Values.backup.backupName -}}
{{- .Values.backup.backupName -}}
{{- else -}}
{{ include "cluster.name" . }}
{{- end }}
{{- end }}
{{/*
Generate recovery server name
*/}}
{{- define "cluster.recoveryServerName" -}}
{{- if .Values.recovery.recoveryServerName -}}
{{- .Values.recovery.recoveryServerName -}}
{{- else -}}
{{- printf "%s-backup-%s" (include "cluster.name" .) (toString .Values.recovery.recoveryIndex) | trunc 63 | trimSuffix "-" -}}
{{- end }}
{{- end }}
{{/*
Generate recovery instance name
*/}}
{{- define "cluster.recoveryInstanceName" -}}
{{- if .Values.recovery.recoveryInstanceName -}}
{{- .Values.recovery.recoveryInstanceName -}}
{{- else -}}
{{ include "cluster.name" . }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,63 @@
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: {{ include "cluster.name" . }}-cluster
namespace: {{ .Release.Namespace }}
{{- with .Values.cluster.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
labels:
{{- include "cluster.labels" . | nindent 4 }}
{{- with .Values.cluster.additionalLabels }}
{{ toYaml . | nindent 4 }}
{{- end }}
spec:
instances: {{ .Values.cluster.instances }}
imageName: "{{ .Values.cluster.image.repository }}:{{ .Values.cluster.image.tag }}"
imagePullPolicy: {{ .Values.cluster.image.pullPolicy }}
postgresUID: {{ .Values.cluster.postgresUID }}
postgresGID: {{ .Values.cluster.postgresGID }}
walStorage:
size: {{ .Values.cluster.walStorage.size }}
storageClass: {{ .Values.cluster.walStorage.storageClass }}
storage:
size: {{ .Values.cluster.storage.size }}
storageClass: {{ .Values.cluster.storage.storageClass }}
{{- with .Values.cluster.resources }}
resources:
{{- toYaml . | nindent 4 }}
{{ end }}
{{- with .Values.cluster.affinity }}
affinity:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- if .Values.cluster.priorityClassName }}
priorityClassName: {{ .Values.cluster.priorityClassName }}
{{- end }}
primaryUpdateMethod: {{ .Values.cluster.primaryUpdateMethod }}
primaryUpdateStrategy: {{ .Values.cluster.primaryUpdateStrategy }}
logLevel: {{ .Values.cluster.logLevel }}
postgresql:
{{- if eq .Values.type "timescaledb" }}
shared_preload_libraries:
- timescaledb
{{- end }}
{{- if eq .Values.type "tensorchord" }}
shared_preload_libraries:
- vectors.so
enableAlterSystem: true
{{- end }}
{{- with .Values.cluster.postgresql.shared_preload_libraries }}
shared_preload_libraries:
{{- toYaml . | nindent 6 }}
{{ end }}
{{- with .Values.cluster.postgresql.parameters }}
parameters:
{{- toYaml . | nindent 6 }}
{{ end }}
monitoring:
enablePodMonitor: {{ and .Values.cluster.monitoring.enabled .Values.cluster.monitoring.podMonitor.enabled }}
{{ include "cluster.bootstrap" . | nindent 2 }}
{{ include "cluster.backup" . | nindent 2 }}

View File

@@ -1,81 +0,0 @@
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: "postgresql-{{ .Release.Name }}-cluster"
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: database
app.kubernetes.io/part-of: {{ .Release.Name }}
spec:
imageName: "{{ .Values.cluster.image.repository }}:{{ .Values.cluster.image.tag }}"
instances: {{ .Values.cluster.instances }}
replicationSlots:
highAvailability:
enabled: true
affinity:
enablePodAntiAffinity: true
topologyKey: kubernetes.io/hostname
postgresql:
parameters:
{{- toYaml .Values.cluster.parameters | nindent 6 }}
resources:
{{- toYaml .Values.cluster.resources | nindent 4 }}
storage:
storageClass: {{ .Values.cluster.storage.data.storageClass }}
size: {{ .Values.cluster.storage.data.size }}
walStorage:
storageClass: {{ .Values.cluster.storage.wal.storageClass }}
size: {{ .Values.cluster.storage.wal.size }}
monitoring:
enablePodMonitor: true
{{- if .Values.bootstrap.initdbEnabled }}
bootstrap:
initdb:
{{- toYaml .Values.bootstrap.initdb | nindent 6 }}
{{- end }}
{{- if .Values.bootstrap.recoveryEnabled }}
bootstrap:
recovery:
source: "postgresql-{{ .Release.Name }}-cluster-backup-index-{{ .Values.bootstrap.recoveryIndex }}"
externalClusters:
- name: "postgresql-{{ .Release.Name }}-cluster-backup-index-{{ .Values.bootstrap.recoveryIndex }}"
barmanObjectStore:
endpointURL: {{ .Values.bootstrap.endpointURL }}
destinationPath: "s3://{{ .Values.bootstrap.bucket }}/{{ .Values.cluster.name }}/postgresql/{{ .Release.Name }}-cluster"
s3Credentials:
accessKeyId:
name: "postgresql-{{ .Release.Name }}-cluster-backup-secret"
key: ACCESS_KEY_ID
secretAccessKey:
name: "postgresql-{{ .Release.Name }}-cluster-backup-secret"
key: ACCESS_SECRET_KEY
data:
compression: {{ .Values.cluster.compression }}
wal:
compression: {{ .Values.cluster.compression }}
{{- end }}
{{- if .Values.backup.backupEnabled }}
backup:
retentionPolicy: "{{ .Values.backup.retentionPolicy }}"
barmanObjectStore:
destinationPath: "s3://{{ .Values.backup.bucket }}/{{ .Values.cluster.name }}/postgresql/{{ .Release.Name }}-cluster"
endpointURL: {{ .Values.backup.endpointURL }}
serverName: "postgresql-{{ .Release.Name }}-cluster-backup-index-{{ .Values.backup.backupIndex }}"
s3Credentials:
accessKeyId:
name: "postgresql-{{ .Release.Name }}-cluster-backup-secret"
key: ACCESS_KEY_ID
secretAccessKey:
name: "postgresql-{{ .Release.Name }}-cluster-backup-secret"
key: ACCESS_SECRET_KEY
data:
compression: {{ .Values.cluster.compression }}
wal:
compression: {{ .Values.cluster.compression }}
{{- end }}

View File

@@ -0,0 +1,30 @@
{{- if and .Values.cluster.monitoring.enabled .Values.cluster.monitoring.prometheusRule.enabled -}}
apiVersion: monitoring.coreos.com/v1
kind: PrometheusRule
metadata:
name: {{ include "cluster.name" . }}-alert-rules
namespace: {{ .Release.Namespace }}
labels:
{{- include "cluster.labels" . | nindent 4 }}
{{- with .Values.cluster.additionalLabels }}
{{ toYaml . | nindent 4 }}
{{- end }}
spec:
groups:
- name: cloudnative-pg/{{ include "cluster.name" . }}
rules:
{{- $dict := dict "excludeRules" .Values.cluster.monitoring.prometheusRule.excludeRules -}}
{{- $_ := set $dict "value" "{{ $value }}" -}}
{{- $_ := set $dict "namespace" .Release.Namespace -}}
{{- $_ := set $dict "cluster" (printf "%s-cluster" (include "cluster.name" .) ) -}}
{{- $_ := set $dict "labels" (dict "job" "{{ $labels.job }}" "node" "{{ $labels.node }}" "pod" "{{ $labels.pod }}") -}}
{{- $_ := set $dict "podSelector" (printf "%s-cluster-([1-9][0-9]*)$" (include "cluster.name" .) ) -}}
{{- $_ := set $dict "Values" .Values -}}
{{- $_ := set $dict "Template" .Template -}}
{{- range $path, $_ := .Files.Glob "prometheus_rules/**.yaml" }}
{{- $tpl := tpl ($.Files.Get $path) $dict | nindent 10 | trim -}}
{{- with $tpl }}
- {{ $tpl }}
{{- end -}}
{{- end -}}
{{ end }}

View File

@@ -1,16 +1,18 @@
{{ if .Values.backup.enabled }}
apiVersion: postgresql.cnpg.io/v1
kind: ScheduledBackup
metadata:
name: "postgresql-{{ .Release.Name }}-cluster-backup"
name: {{ include "cluster.name" . }}-scheduled-backup
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: postgresql
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion }}
app.kubernetes.io/component: database
app.kubernetes.io/part-of: {{ .Release.Name }}
{{- include "cluster.labels" . | nindent 4 }}
{{- with .Values.cluster.additionalLabels }}
{{ toYaml . | nindent 4 }}
{{- end }}
spec:
immediate: true
schedule: {{ .Values.backup.schedule }}
backupOwnerReference: self
cluster:
name: "postgresql-{{ .Release.Name }}-cluster"
name: {{ include "cluster.name" . }}-cluster
{{ end }}

View File

@@ -1,42 +1,205 @@
# -- Override the name of the cluster
nameOverride: ""
###
# -- Type of the CNPG database. Available types:
# * `postgresql`
# * `postgis`
# * `timescaledb`
# * `tensorchord`
type: postgresql
###
# Cluster mode of operation. Available modes:
# * `standalone` - Default mode. Creates new or updates an existing CNPG cluster.
# * `recovery` - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup
# * `replica` - Create database as a replica from another CNPG cluster
mode: standalone
cluster:
name: cl01tl
instances: 3
image:
repository: ghcr.io/cloudnative-pg/postgresql
tag: 16.0
instances: 2
parameters:
shared_buffers: 128MB
max_slot_wal_keep_size: 2000MB
hot_standby_feedback: "on"
compression: snappy
tag: "16.6-22"
pullPolicy: IfNotPresent
# The UID and GID of the postgres user inside the image
postgresUID: 26
postgresGID: 26
walStorage:
size: 2Gi
storageClass: ""
storage:
size: 10Gi
storageClass: ""
resources:
requests:
memory: 512Mi
cpu: 100m
memory: 256Mi
cpu: 10m
limits:
memory: 2Gi
cpu: 1500m
hugepages-2Mi: 512Mi
storage:
data:
storageClass: default
size: 10Gi
wal:
storageClass: default
size: 2Gi
bootstrap:
recoveryEnabled: false
memory: 1Gi
cpu: 800m
hugepages-2Mi: 256Mi
# See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-AffinityConfiguration
affinity:
enablePodAntiAffinity: true
topologyKey: kubernetes.io/hostname
additionalLabels: {}
annotations: {}
priorityClassName: ""
# Method to follow to upgrade the primary server during a rolling update procedure, after all replicas have been
# successfully updated. It can be switchover (default) or in-place (restart).
primaryUpdateMethod: switchover
# Strategy to follow to upgrade the primary server during a rolling update procedure, after all replicas have been
# successfully updated: it can be automated (unsupervised - default) or manual (supervised)
primaryUpdateStrategy: unsupervised
logLevel: "info"
monitoring:
enabled: false
podMonitor:
enabled: true
prometheusRule:
enabled: false
excludeRules: []
# See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-PostgresConfiguration
postgresql:
parameters:
shared_buffers: 128MB
max_slot_wal_keep_size: 2000MB
hot_standby_feedback: "on"
shared_preload_libraries: []
# BootstrapInitDB is the configuration of the bootstrap process when initdb is used.
# See: https://cloudnative-pg.io/documentation/current/bootstrap/
# See: https://cloudnative-pg.io/documentation/current/cloudnative-pg.v1/#postgresql-cnpg-io-v1-bootstrapinitdb
initdb: {}
# database: app
# owner: app
# secret: "" # Name of the secret containing the initial credentials for the owner of the user database. If empty a new secret will be created from scratch
# postInitApplicationSQL:
# - CREATE TABLE IF NOT EXISTS example;
recovery:
# Point in time recovery target in RFC3339 format
pitrTarget:
time: ""
# S3 https endpoint and the s3:// path
endpointURL: ""
destinationPath: ""
# Specifies secret that contains a CA bundle to validate a privately signed certificate, should contain the key ca-bundle.crt
endpointCA: ""
# Specifies secret that contains S3 credentials, should contain the keys ACCESS_KEY_ID and ACCESS_SECRET_KEY
endpointCredentials: ""
# Generate external cluster name, uses: {{ .Release.Name }}postgresql-<major version>-cluster-backup-index-{{ .Values.recovery.recoveryIndex }}
recoveryIndex: 1
endpointURL:
bucket:
initdbEnabled: false
initdb:
database: app
owner: app
# Name of the recovery cluster in the object store, defaults to "cluster.name"
recoveryServerName: ""
# Name of the recovery cluster in the object store, defaults to ".Release.Name"
recoveryInstanceName: ""
wal:
# WAL compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`.
compression: snappy
# Whether to instruct the storage provider to encrypt WAL files. One of `` (use the storage container default), `AES256` or `aws:kms`.
encryption: ""
# Number of WAL files to be archived or restored in parallel.
maxParallel: 2
data:
# Data compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`.
compression: snappy
# Whether to instruct the storage provider to encrypt data files. One of `` (use the storage container default), `AES256` or `aws:kms`.
encryption: ""
# Number of data files to be archived or restored in parallel.
jobs: 2
replica:
# See https://cloudnative-pg.io/documentation/current/database_import/
# * `microservice` - Single database import as expected from cnpg clusters
# * `monolith` - Import multiple databases and roles
importType: microservice
# If type microservice only one database is allowed, default is app as standard in cnpg clusters
importDatabases:
- app
# If type microservice no roles are imported and ignored
importRoles: []
# If import type is monolith postImportApplicationSQL is not supported and ignored
postImportApplicationSQL: []
# External cluster connection, password specifies a secret name and the key containing the password value
externalCluster:
connectionParameters:
host: postgresql
user: app
dbname: app
password:
name: postgresql
key: password
backup:
backupEnabled: true
schedule: "0 0 0 * * *"
retentionPolicy: 14d
enabled: false
# S3 endpoint starting with "https://"
endpointURL: ""
# S3 path starting with "s3://"
destinationPath: ""
# Specifies secret that contains a CA bundle to validate a privately signed certificate, should contain the key ca-bundle.crt
endpointCA: ""
# Specifies secret that contains S3 credentials, should contain the keys ACCESS_KEY_ID and ACCESS_SECRET_KEY
endpointCredentials: ""
# Generate external cluster name, creates: postgresql-{{ .Release.Name }}-cluster-backup-index-{{ .Values.backups.backupIndex }}"
backupIndex: 1
endpointURL:
bucket:
# Name of the backup cluster in the object store, defaults to "cluster.name"
backupName: ""
# Tags to add to backups. Add in key value beneath the type.
tags:
backupRetentionPolicy: ""
historyTags:
backupRetentionPolicy: ""
# Configuration for the WAL and data files.
wal:
# WAL compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`.
compression: snappy
# Whether to instruct the storage provider to encrypt WAL files. One of `` (use the storage container default), `AES256` or `aws:kms`.
encryption: ""
# Number of WAL files to be archived or restored in parallel.
maxParallel: 2
data:
# Data compression method. One of `` (for no compression), `gzip`, `bzip2` or `snappy`.
compression: snappy
# Whether to instruct the storage provider to encrypt data files. One of `` (use the storage container default), `AES256` or `aws:kms`.
encryption: ""
# Number of data files to be archived or restored in parallel.
jobs: 2
# Retention policy for backups
retentionPolicy: "14d"
# Scheduled backup in cron format
schedule: "0 0 */3 * *"