Compare commits

..
Author SHA1 Message Date
KilianBoute 7b6316c626 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-10-19 16:22:46 +00:00
KilianBoute d6e7c82696 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-10-19 13:24:16 +00:00
KilianBoute d70b29727a Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-10-19 13:14:38 +00:00
KilianBoute 2d3b2e0ddc Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-10-16 11:57:54 +00:00
KilianBoute 7548d38583 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-10-14 12:52:39 +00:00
KilianBoute 046f8f7ae9 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-10-14 12:35:50 +00:00
KilianBoute f259f1ea30 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-10-13 11:17:59 +00:00
KilianBoute 5ba937d45e Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-10-13 10:23:40 +00:00
cedricve 064dbb25d9 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-10-10 11:24:32 +00:00
KilianBoute 669c2d14db Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-10-08 14:51:52 +00:00
KilianBoute b0fe25f96f Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-10-08 06:46:21 +00:00
KilianBoute d5424c0f8d Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-10-06 09:39:34 +00:00
KilianBoute d7de61c369 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-10-06 07:19:13 +00:00
cedricve 6391d8cf19 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-10-05 19:48:47 +00:00
cedricve eb5a06af84 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-10-05 15:17:15 +00:00
KilianBoute c002d69e0b Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-10-05 14:41:00 +00:00
KilianBoute ffde7cce09 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-09-29 14:15:17 +00:00
cedricve 4ad6389587 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-09-28 15:18:00 +00:00
cedricve 8a02a4984f Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-09-25 14:26:28 +00:00
cedricve a7a4fa9dd7 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-09-21 19:40:35 +00:00
KilianBoute e492051936 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-09-21 15:44:20 +00:00
KilianBoute 5378e29466 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-09-21 14:18:45 +00:00
KilianBoute 468a54daac Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-09-21 10:08:50 +00:00
KilianBoute ef3d12fc6d Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-09-16 06:53:33 +00:00
KilianBoute 05f0a8f9a9 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-09-15 15:08:04 +00:00
KilianBoute f5f9fb6144 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-09-15 09:54:21 +00:00
KilianBoute ab352180bb Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-09-14 14:24:54 +00:00
KilianBoute e6ecc06796 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-09-11 14:16:00 +00:00
KilianBoute 3e37aac800 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-09-11 08:53:44 +00:00
KilianBoute 512e727c1d Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-09-09 09:58:14 +00:00
KilianBoute 8a6f94c95a Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-09-07 14:20:16 +00:00
KilianBoute 6c43e36b3b Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-09-04 14:45:48 +00:00
cedricve 8ae80b9309 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-09-01 14:19:07 +00:00
KilianBoute 25e5cd6529 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-08-28 15:18:51 +00:00
KilianBoute 71df96b6f7 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-08-28 14:13:08 +00:00
KilianBoute 79411e36ee Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-08-24 11:02:32 +00:00
KilianBoute a5c8e8fc89 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-08-24 09:28:45 +00:00
cedricve 31568ae802 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-08-20 20:11:03 +00:00
cedricve 5034d90e7d Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-08-20 19:44:46 +00:00
cedricve 639d2c1833 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-08-11 20:01:53 +00:00
cedricve c13574d9b4 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-08-11 12:14:47 +00:00
KilianBoute 994da19ab7 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-08-10 10:36:43 +00:00
cedricve be90f14f48 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-08-05 20:43:00 +00:00
KilianBoute 11d97f2b19 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-08-05 16:07:33 +00:00
KilianBoute ec9fccce4c Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-08-05 11:03:59 +00:00
cedricve 1ad2e8bd9c Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-07-31 13:35:15 +00:00
cedricve f06b24ecf6 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-07-16 09:29:33 +00:00
KilianBoute 33ea73df30 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-07-10 17:22:38 +00:00
KilianBoute 4ed4b8bb59 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-07-08 13:06:09 +00:00
KilianBoute c3e814f7a0 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-07-07 13:10:12 +00:00
KilianBoute b09649a0e5 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-06-25 16:43:30 +00:00
cedricve 1e89b57299 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-06-17 09:56:49 +00:00
cedricve 31da9180f3 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-06-16 07:39:52 +00:00
cedricve 29703cc938 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-06-02 18:40:53 +00:00
cedricve b2907247f4 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-06-01 07:50:19 +00:00
KilianBoute fbbe663070 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-05-29 15:03:12 +00:00
cedricve 0883f7cbe1 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-05-26 13:21:16 +00:00
cedricve 0dca2dbc39 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-05-26 13:13:29 +00:00
cedricve 39e18e5130 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-05-25 19:26:15 +00:00
cedricve 4e830a83dc Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-05-22 14:36:04 +00:00
KilianBoute ac5c4663bc Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2026-05-13 10:04:34 +00:00
cedricve 82f46f753a Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-05-06 18:49:36 +00:00
cedricve 809e6000c7 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-04-03 08:06:37 +00:00
cedricve 3970c096d3 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-04-03 07:55:20 +00:00
cedricve e4ff457518 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-03-28 11:34:17 +00:00
cedricve 3fc697c1bb Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-03-28 11:12:01 +00:00
cedricve d5b3f0fd7d Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-03-28 10:56:17 +00:00
cedricve a89b20ea28 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-03-23 08:40:17 +00:00
cedricve ab9b26b8c8 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-03-07 21:07:48 +00:00
cedricve f32968dfb6 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2026-03-02 10:58:46 +00:00
cedricve 68c8f2098b Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2025-12-12 15:42:54 +00:00
cedricve 2e65f5f525 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2025-12-09 16:08:01 +00:00
cedricve b1403e6f55 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2025-11-26 12:53:52 +00:00
cedricve f74a2d9e32 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2025-10-03 05:37:48 +00:00
cedricve 00aad660cd Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2025-08-29 12:43:54 +00:00
KilianBoute a48a42b1b9 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2025-08-12 11:35:54 +00:00
cedricve fb3fa1cd6e Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2025-08-04 12:46:56 +00:00
KilianBoute a1b9f3aaa3 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2025-07-08 07:41:42 +00:00
KilianBoute 3f7c2c9ac7 Update index.yaml
Signed-off-by: KilianBoute <KilianBoute@users.noreply.github.com>
2025-07-04 11:13:42 +00:00
cedricve b7d7ef11c3 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2025-06-24 05:59:41 +00:00
cedricve 6b731cfd82 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2025-04-29 12:13:07 +00:00
cedricve a0fd4b2dfd Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2025-03-25 11:29:17 +00:00
cedricve 75f6a67ab6 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2025-03-07 16:29:26 +00:00
cedricve 81c85cd055 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2025-03-07 16:14:20 +00:00
cedricve 3cc4f656f8 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2025-03-07 13:19:08 +00:00
cedricve 9e5585ae4b Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2025-03-07 12:43:13 +00:00
cedricve c0034c1c0b Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2025-03-06 12:13:29 +00:00
cedricve 69e98bbf78 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-12-02 11:57:10 +00:00
cedricve 80307ec014 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-12-02 10:42:26 +00:00
cedricve 7076529fc0 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-12-02 10:23:10 +00:00
cedricve 4806b8b70f Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-11-27 13:24:51 +00:00
cedricve 6251179997 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-11-26 15:54:36 +00:00
cedricve e27b70ac48 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-11-20 14:15:35 +00:00
cedricve 13c276f822 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-10-31 15:42:49 +00:00
cedricve f3f6c16c09 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-10-31 15:01:28 +00:00
cedricve a191c1c17d Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-10-31 11:57:03 +00:00
cedricve 0f7eef7a24 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-10-30 21:31:41 +00:00
cedricve 5fff034d94 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-10-30 21:23:05 +00:00
cedricve de6ea7bab5 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-10-30 21:17:05 +00:00
cedricve 0952831fd9 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-10-30 21:05:49 +00:00
cedricve 780a082633 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-10-30 20:47:30 +00:00
cedricve c49688b488 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-10-30 20:43:38 +00:00
cedricve ead090d25b Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-10-30 20:26:43 +00:00
cedricve 3e38c4ba16 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-10-04 20:37:20 +00:00
cedricve 66693cdd83 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-10-04 19:12:39 +00:00
cedricve 949132bbc6 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-10-04 17:54:28 +00:00
cedricve 5aac27eefb Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-10-04 12:26:18 +00:00
cedricve 1853a025f4 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-10-03 07:40:20 +00:00
cedricve b47b02704a Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-09-14 20:36:00 +00:00
cedricve 887745be40 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-07-23 10:50:34 +00:00
cedricve cdce4589ec Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-07-02 14:55:16 +00:00
cedricve d18eca00ce Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-06-11 08:28:37 +00:00
cedricve 45ae8aa720 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-05-15 14:14:10 +00:00
cedricve fcb2f276c7 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-04-24 14:03:08 +00:00
cedricve 646c377ba1 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-03-19 20:39:44 +00:00
cedricve 93b00ba861 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-02-28 18:31:33 +00:00
cedricve 7b75c10c2c Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-02-12 00:24:20 +00:00
cedricve ae52d08a9b Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2024-01-26 19:52:58 +00:00
cedricve 6263c4fb51 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2023-11-10 14:23:21 +00:00
cedricve 0d6a14c288 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2023-06-02 14:47:04 +00:00
cedricve 4a5a1cf952 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2023-04-12 17:31:56 +00:00
cedricve db8ce43416 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2023-03-26 18:33:59 +00:00
cedricve dab6953561 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2023-03-25 21:20:28 +00:00
cedricve 64e273d56d Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2023-03-24 11:57:12 +00:00
cedricve a1aa29e20a Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2023-03-07 13:34:27 +00:00
cedricve a09e754de5 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2023-02-20 10:20:45 +00:00
cedricve f4f3adc38e Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2023-01-16 07:37:21 +00:00
cedricve 10d00281d0 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2022-12-10 20:59:50 +00:00
cedricve c6159ca14a Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2022-11-17 19:16:02 +00:00
cedricve daed3b3a9b Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2022-10-21 10:13:44 +00:00
cedricve d27b9b5407 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2022-09-29 11:05:50 +00:00
thomasqp a2eec76b61 Update index.yaml
Signed-off-by: thomasqp <thomasqp@users.noreply.github.com>
2022-08-05 09:20:00 +00:00
thomasqp bb99af95d7 Update index.yaml
Signed-off-by: thomasqp <thomasqp@users.noreply.github.com>
2022-07-18 13:34:58 +00:00
thomasqp 7c8a7a4859 Update index.yaml
Signed-off-by: thomasqp <thomasqp@users.noreply.github.com>
2022-07-01 06:11:28 +00:00
cedricve c914a29a5b Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2022-06-17 18:14:15 +00:00
cedricve 497c3da194 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2022-06-17 17:58:22 +00:00
Cédric Verstraeten 4ff9375751 Create CNAME 2022-06-13 17:44:27 +02:00
Cédric Verstraeten f599f4bb08 Delete CNAME 2022-06-13 16:09:01 +02:00
Cédric Verstraeten 3a47a8c7ed Create CNAME 2022-06-13 15:33:13 +02:00
cedricve c031b16b32 Update index.yaml
Signed-off-by: cedricve <cedricve@users.noreply.github.com>
2022-06-13 13:30:33 +00:00
62 changed files with 6049 additions and 4309 deletions
-28
View File
@@ -1,28 +0,0 @@
FROM mcr.microsoft.com/devcontainers/go:1.25-bookworm
# Remove expired Yarn GPG key from base image
RUN sudo rm -f /etc/apt/sources.list.d/yarn.list
# Remove expired Yarn repository key (inherited from base image)
RUN sudo rm -f /etc/apt/sources.list.d/yarn.list
# Install AZURE CLI
RUN curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
# Install helm and kubectl
RUN curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash
RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" \
&& chmod +x ./kubectl \
&& sudo mv ./kubectl /usr/local/bin/kubectl
# Install Argocd CLI
RUN VERSION=$(curl -L -s https://raw.githubusercontent.com/argoproj/argo-cd/stable/VERSION)
RUN curl -sSL -o argocd-linux-amd64 https://github.com/argoproj/argo-cd/releases/download/v$VERSION/argocd-linux-amd64
RUN sudo install -m 555 argocd-linux-amd64 /usr/local/bin/argocd
RUN rm argocd-linux-amd64
# Install google-cloud-sdk
RUN echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list
RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/cloud.google.gpg
RUN sudo apt-get update && sudo apt-get install -y google-cloud-cli
RUN sudo apt-get install google-cloud-cli-gke-gcloud-auth-plugin
-23
View File
@@ -1,23 +0,0 @@
{
"name": "go:1.25-bookworm",
"dockerFile": "Dockerfile",
"runArgs": [
"--name=helm-charts",
"--network=host",
"--privileged"
],
"customizations": {
"vscode": {
"extensions": [
"ms-kubernetes-tools.vscode-kubernetes-tools",
"redhat.vscode-yaml",
"Tim-Koehler.helm-intellisense",
"ms-vscode.azurecli",
"ms-vscode-remote.remote-containers",
"GitHub.copilot",
"ms-kubernetes-tools.vscode-aks-tools",
"fabiospampinato.vscode-diff"
]
}
}
}
-56
View File
@@ -1,56 +0,0 @@
name: Deploy on k3d
on:
workflow_dispatch:
pull_request:
jobs:
deploy:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04, ubuntu-24.04]
k3d: [v5.7.5]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: "Create single cluster"
uses: AbsaOSS/k3d-action@v2
with:
k3d-version: ${{ matrix.k3d }}
cluster-name: "k3d-cluster"
- name: Print Kubernetes Version
run: |
kubectl version
- name: Test k3d
run: |
echo "Sleeping for 120 seconds, give time for the cluster to be ready" && sleep 120
kubectl get no
kubectl get pods -A -o wide
kubectl get sc
- name: Checkout repository
uses: actions/checkout@v2
- name: Install Prometheus operator
id: install-prometheus-operator
run: |
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.48.1/bundle.yaml
kubectl wait --for=condition=available deployment/prometheus-operator -n default --timeout=300s
kubectl get crd
kubectl get po -A -o wide
- name: Install Hub Helm chart
id: install-hub
run: |
helm repo add kerberos https://charts.kerberos.io
kubectl create namespace kerberos-hub
helm install hub ./charts/hub --values charts/hub/values.yaml -n kerberos-hub --create-namespace
kubectl get pods -A -o wide
- name: Send Slack Notification on Success
if: success()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"✅ K3d deployment successful on ${{ matrix.os }} (${{ matrix.k3d }}) - triggered by ${{ github.actor }}\"}" $SLACK_WEBHOOK_URL
- name: Send Slack Notification on Failure
if: failure()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"❌ K3d deployment failed on ${{ matrix.os }} (${{ matrix.k3d }}) - <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View logs>\"}" $SLACK_WEBHOOK_URL
-52
View File
@@ -1,52 +0,0 @@
name: Deploy on kind
on:
workflow_dispatch:
pull_request:
jobs:
deploy:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04, ubuntu-24.04]
kind: [v0.25.0]
steps:
- name: Create kind
uses: helm/kind-action@v1
with:
version: ${{ matrix.kind }}
- name: Print Kubernetes Version
run: |
kubectl version
- name: Test kind
run: |
kubectl get no
kubectl get pods -A -o wide
kubectl get sc
- name: Checkout repository
uses: actions/checkout@v2
- name: Install Prometheus operator
id: install-prometheus-operator
run: |
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.48.1/bundle.yaml
kubectl wait --for=condition=available deployment/prometheus-operator -n default --timeout=300s
kubectl get crd
kubectl get po -A -o wide
- name: Install Hub Helm chart
id: install-hub
run: |
helm repo add kerberos https://charts.kerberos.io
kubectl create namespace kerberos-hub
helm install hub ./charts/hub --values charts/hub/values.yaml -n kerberos-hub --create-namespace
kubectl get pods -A -o wide
- name: Send Slack Notification on Success
if: success()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"✅ Kind deployment successful on ${{ matrix.os }} (${{ matrix.kind }}) - triggered by ${{ github.actor }}\"}" $SLACK_WEBHOOK_URL
- name: Send Slack Notification on Failure
if: failure()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"❌ Kind deployment failed on ${{ matrix.os }} (${{ matrix.kind }}) - <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View logs>\"}" $SLACK_WEBHOOK_URL
-53
View File
@@ -1,53 +0,0 @@
name: Deploy on microk8s
on:
workflow_dispatch:
pull_request:
jobs:
deploy:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04, ubuntu-24.04]
microk8s: [1.32/stable]
steps:
- uses: balchua/microk8s-actions@v0.4.3
with:
channel: ${{ matrix.microk8s }}
addons: '["dns", "dashboard", "hostpath-storage", "nvidia"]'
- name: Set permissions
run: |
sudo chown -f -R $USER $HOME/.kube $HOME/.config
- name: Test microk8s
id: list-pods
run: |
kubectl get no
kubectl get pods -A -o wide
- name: Checkout repository
uses: actions/checkout@v2
- name: Install Prometheus operator
id: install-prometheus-operator
run: |
kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.48.1/bundle.yaml
kubectl wait --for=condition=available deployment/prometheus-operator -n default --timeout=300s
kubectl get crd
kubectl get po -A -o wide
- name: Install Hub Helm chart
id: install-hub
run: |
helm repo add kerberos https://charts.kerberos.io
kubectl create namespace kerberos-hub
helm install hub ./charts/hub --values charts/hub/values.yaml -n kerberos-hub --create-namespace
kubectl get pods -A -o wide
- name: Send Slack Notification on Success
if: success()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"✅ MicroK8s deployment successful on ${{ matrix.os }} (${{ matrix.microk8s }}) - triggered by ${{ github.actor }}\"}" $SLACK_WEBHOOK_URL
- name: Send Slack Notification on Failure
if: failure()
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
curl -X POST -H 'Content-type: application/json' --data "{\"text\": \"❌ MicroK8s deployment failed on ${{ matrix.os }} (${{ matrix.microk8s }}) - <${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View logs>\"}" $SLACK_WEBHOOK_URL
@@ -1,11 +1,9 @@
name: Create a new release
name: Release Charts
on:
push:
branches:
- main
paths:
- 'charts/**/Chart.yaml'
jobs:
release:
+1
View File
@@ -0,0 +1 @@
charts.kerberos.io
+8 -13
View File
@@ -1,24 +1,19 @@
## Helm charts
## Usage
Kerberos.io ecosystem can be deployed through Helm charts. Use one of the following charts to boost the installation:
- [Hub](https://github.com/kerberos-io/helm-charts/tree/main/charts/hub)
## Prerequisite
[Helm](https://helm.sh) must be installed to use the charts. Please refer to Helm's [documentation](https://helm.sh/docs) to get started.
[Helm](https://helm.sh) must be installed to use the charts. Please refer to
Helm's [documentation](https://helm.sh/docs) to get started.
Once Helm has been set up correctly, add the repo as follows:
helm repo add kerberos https://charts.kerberos.io
helm repo add <alias> https://<orgname>.github.io/helm-charts
If you had already added this repo earlier, run `helm repo update` to retrieve
the latest versions of the packages. You can then run `helm search repo kerberos` to see the charts.
the latest versions of the packages. You can then run `helm search repo <alias>` to see the charts.
To install the `kerberos` chart:
To install the <chart-name> chart:
helm install my-hub kerberos/hub
helm install my-<chart-name> <alias>/<chart-name>
To uninstall the chart:
helm delete my-hub
helm delete my-<chart-name>
+3 -3
View File
@@ -1,6 +1,6 @@
apiVersion: v2
name: hub
description: A Helm chart to install Kerberos Hub in Kubernetes
description: A Helm chart for install Kerberos Hub in Kubernetes
icon: https://doc.kerberos.io/images/kerberos-logo.svg
# A chart can be either an 'application' or a 'library' chart.
@@ -16,10 +16,10 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
version: 0.104.0
version: 0.29.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
# follow Semantic Versioning. They should reflect the version the application is using.
# It is recommended to use it with quotes.
appVersion: "3.3.0"
appVersion: "3.0.0"
+296 -427
View File
@@ -2,30 +2,169 @@
Kerberos Hub is the single pane of glass for your Kerberos agents. It comes with a best of breed open source technology stack, modular and scale first mindset, and allows you to build and maintain an everless growing video surveillance and video analytics landscape.
![Kerberos Hub Interface](assets/images/hub-dashboard.png)
## License
To use Kerberos Hub a license is required. This license will grant access the Kerberos Hub API, and allow to connect a number of cameras and Kerberos Vaults.
## What's in the repo?
This repo describes how to install Kerberos Hub inside your own Kubernetes cluster (or [K3S cluster](https://k3s.io/)) using a Helm chart.
A couple of dependencies need to be installed first:
- A Kafka message queue,
- a Mongodb database,
- a MQTT message broker ([Vernemq](https://vernemq.com/))
- and a TURN server ([Pion](https://github.com/pion/turn))
Next to that one can use an Nginx ingress controller or Traefik for orchestrating the ingresses. Once all dependencies are installed, the appropriate values should be updated in the **values.yaml** file.
We do manage certificates through cert-manager and letsencrypt, and rely on HTTP01 and DNS01 resolvers. So you might need to change that for your custom scenarion (e.g. on premise deployment).
![hubdashboard](hub-dashboard.png)
# What are we building?
As shown below you will find the architecture of what we are going to install (the green rectangle).
![hubarechitecture](architecture.png)
# Let's give it a try.
## Add helm repos
The Kerberos Hub installation makes use of this Helm chart. Therefore, we will add those repos to our Kubernetes cluster.
The Kerberos Hub installation makes use a couple of other charts which are shipped within their on Helm repos. Therefore, we will add those repos to our Kubernetes cluster.
helm repo add kerberos https://charts.kerberos.io
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add jetstack https://charts.jetstack.io
helm repo add traefik https://helm.traefik.io/traefik
helm repo add vernemq https://vernemq.github.io/docker-vernemq
helm repo add kerberos https://kerberos-io.github.io/hub
helm repo update
## Prerequisites
## Cert manager
Go and follow the Kerberos Hub installation at the [hub repository](https://github.com/kerberos-io/hub). Once you have [installed all prerequisites](https://github.com/kerberos-io/helm-charts/tree/main/charts/hub#lets-give-it-a-try) come back here.
We rely on cert-manager and letsencrypt for generating all the certificates we'll need for the Kerberos Hub web interface, Kerberos Hub api and the Vernemq broker (WSS/TLS).
## Kerberos Hub
As a best practice we will install all the dependencies in their own namespace. Let's start by creating a separate namespace for cert-manager.
So once you hit this step, you should have installed all required dependencies. Hopefully you didn't had too much pain with the certificates. Before starting, it's important to have a look at the `values.yaml` file. This includes the different parameters to configure the different deployments. Reach out to us if you would need any help with this.
kubectl create namespace cert-manager
Install the Kerberos Hub chart in a specific namespace and take into the values.yaml file.
Install the cert-manager helm chart into that namespace.
helm install hub kerberos/hub --values values.yaml -n kerberos-hub --create-namespace
helm install cert-manager jetstack/cert-manager --namespace cert-manager --set installCRDs=true
If you already have the CRDs install you could get rid of `--set installCRDs=true`.
Next we will install a cluster issuer that will make the HTTP01 challenges, this is needed for resolving the certificates of both Kerberos Hub web interface and api.
kubectl apply -f cert-manager/cluster-issuer.yaml
## Optional - Rancher
A great way to manage your cluster through a UI is Rancher. This is totally up to you, but we love to use it a Kerberos.io
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
helm repo update
kubectl create namespace cattle-system
helm install rancher rancher-latest/rancher \
--namespace cattle-system \
--set hostname=rancher.kerberos.xxx \
--set ingress.tls.source=letsEncrypt \
--set letsEncrypt.email=xxx@email.com \
--set 'extraEnv[0].name=CATTLE_TLS_MIN_VERSION' \
--set 'extraEnv[0].value=1.2'
## Kafka
Kafka is used for the Kerberos Pipeline, this is the place where microservices are executed in parallel and/or sequentially. These microservices will receive events from a Kafka topic and then process the recording, and it's metadata. Results are injected back into Kafka and passed on to the following microservices. Microservices are independently horizontal scalable through replicas, this means that you can distribute your workload across your nodes if a specific microservice requires that.
As a best practice let's create another namespace.
kubectl create namespace kafka
Before installing the Kafka helm chart, go and have a look in the kafka/values.yaml file. You should update the clientUsers and clientPasswords. Have a look at the zookeeper credentials as well and update accordingly.
helm install kafka bitnami/kafka -f ./kafka/values.yaml -n kafka
## MongoDB
A MongoDB instance is used for data persistence. Data might come from the Kerberos Pipeline or user interaction on the Kerberos Hub frontend.
We will create a namespace for our Mongodb deployment as well.
kubectl create namespace mongodb
Create a persistent volume, this is where the data will be stored on disk.
kubectl apply -f ./mongodb/fast.yaml
Before installing the mongodb helm chart, go and have a look in the `mongodb/values.yaml` file. You should update the root password to a custom secure value.
helm install mongodb bitnami/mongodb --values ./mongodb/values.yaml -n mongodb
## Vernemq
Next to Kafka, we are using MQTT for bidirectional communication in the Kerberos ecosystem. This Vernemq broker, which is horizontal scalable, allows communicating with Kerberos agents at the edge (or wherever they live) and Kerberos Vault to forward recordings from the edge into the cloud.
We'll create a namespace for our message broker Vernemq.
kubectl create namespace vernemq
Create a certificate, so we can handle TLS/WSS. (this needs a DNS challenge)
kubectl apply -f vernemq/vernemq-secret.yaml --namespace vernemq
kubectl apply -f vernemq/vernemq-issuer.yaml --namespace vernemq
kubectl apply -f vernemq/vernemq-certificate.yaml --namespace vernemq
By default, a username and password is set for the Vernemq broker. You can find these in the `vernemq/values.yaml` file [as shown below](https://github.com/kerberos-io/hub/blob/master/vernemq/values.yaml#L216-L217).
...
- name: DOCKER_VERNEMQ_USER_YOURUSERNAME
value: "yourpassword"
...
Please note that the username is defined in capitals `YOURUSERNAME`, but will result as `yourusername`. So anything written in capitals, will be lowercase.
Go a head and install the Vernemq chart with the relevant configuration options.
helm install vernemq vernemq/vernemq -f vernemq/values.yaml --namespace vernemq
## TURN/STUN
Within Kerberos Hub we allow streaming live from the edge to the cloud without port-forwarding. To make this work we are using a technology called WebRTC that leverages a TURN/STUN server.
![hubarechitecture](images/turn-stun.svg)
To run a TURN/STUN server please [have a look at following repository](https://github.com/kerberos-io/turn-and-stun), this will deploy a Docker container on a specific host that will act as a proxy for network traversal. The TURN/STUN server will make sure a connection from a Kerberos Agent to a Kerberos Hub viewer is established.
## Install Nginx ingress
Ingresses are needed to expose the Kerberos hub front-end and api to the internet or intranet. We prefer nginx ingress but if you would prefer Traefik, that is perfectly fine as well.
helm upgrade --install ingress-nginx ingress-nginx \
--repo https://kubernetes.github.io/ingress-nginx \
--namespace ingress-nginx --create-namespace
### or (option) Install traefik
helm install traefik traefik/traefik -f ./traefik/values-ssl.yaml
## Kerberos Hub
So once you hit this step, you should have installed a previous defined dependencies. Hopefully you didn't have too much pain with the certificates :).
Before starting, it's important to have a look at the `values.yaml` file. This includes the different parameters to configure the different deployments.
Reach out to us if you would need any help with this.
As previously mentioned a couple of times, we should also create a kerberos namespace.
kubectl create namespace kerberos-hub
Install the `registry credentials` to download the Kerberos Hub and Kerberos Pipeline. You'll need to request the `regcred.yaml` from the Kerberos team, to be able to download the Kerberos Hub images.
kubectl apply -f regcred.yaml -n kerberos-hub
Install the Kerberos Hub chart and take into the values.yaml file.
helm install hub kerberos/hub --values values.yaml -n kerberos-hub
Uninstall the Kerberos Hub chart
@@ -35,390 +174,141 @@ Uninstall the Kerberos Hub chart
Below all configuration options and parameters are listed.
| Name | Description | Value |
| ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | ----- |
| `license` | The license key you received from support@kerberos.io. If not available request one. | `""` |
| `licenseServer.url` | The license server for validating the license of your Kerberos Hub, by default `'"https://license.kerberos.io/verify"'`. | `""` |
| `licenseServer.token` | The license server API token to sign the license validation by default `'214%ˆ#ddfsf@#3rfdsgl_)23sffeqasSwefDSFNBM'`. | `""` |
| `environment` | A colored banner will be shown on top of the application to illustrate a non-production environment: `staging`, `demo`, .. | `""` |
| `isPrivate` | Global StorageClass for Persistent Volume(s) | `""` |
| `readOnly` | This will stop any write process to mongodb or any processing done in the Kerberos Hub pipeline. | `""` |
| `mode` | Deployment mode: `all`, `pipeline`, or `ui`. `all` renders everything, `pipeline` only pipeline services, `ui` only hub services. | `"all"` |
| `global.imageRegistry` | Global container registry override used for all images. | `""` |
| `ingress` | The ingress being used for `kerberoshub.api.url` and `kerberoshub.frontend.url`. | `""` |
| `mongodb.host` | MongoDB hostname (`'mongodb:27017'`) or mongodb replicas (`'mongodb-0:27017,mongodb-1:27017'`). | `""` |
| `mongodb.adminDatabase` | MongoDB admin database, this is named `admin` by default. | `""` |
| `mongodb.authenticationMechanism` | MongoDB authentication mechanism (for example `SCRAM-SHA-256`). | `""` |
| `mongodb.username` | MongoDB user account, we are using in the hub installation `'root'`. | `""` |
| `mongodb.password` | MongoDB user password, by default `'yourmongodbpassword'` | `""` |
| `mongodb.retryWrites` | Enable or disable MongoDB retryable writes. | `""` |
| `mqtt.host` | MQTT (Vernemq) hostname. | `""` |
| `mqtt.port` | MQTT (Vernemq) port for WSS (secure sockets), by default `'8443'`. | `""` |
| `mqtt.protocol` | MQTT (Vernemq) protocol, by default `'wss'`. | `""` |
| `mqtt.username` | MQTT (Vernemq) username, by default `'yourusername'`. | `""` |
| `mqtt.password` | MQTT (Vernemq) password, by default `'yourpassword'`. | `""` |
| `mqtt.legacy.host` | Legacy MQTT broker host used for backward-compatible clients. | `""` |
| `mqtt.legacy.port` | Legacy MQTT broker port used for backward-compatible clients. | `""` |
| `queueProvider` | The queue we are using for the [pipeline](https://doc.kerberos.io/hub/pipeline/): 'SQS', 'KAFKA' or `RABBITMQ`. | `""` |
| `queueName` | The event queue which is propagating messages in the [Kerberos Hub pipeline](https://doc.kerberos.io/hub/pipeline/). | `""` |
| `rabbitmq.host` | RabbitMQ host, by default `'rabbitmq.yourdomain.com:5671'` | `""` |
| `rabbitmq.username` | RabbitMQ username, by default `'yourusername'` | `""` |
| `rabbitmq.password` | RabbitMQ password, by default `'yourpassword'` | `""` |
| `rabbitmq.exchange` | RabbitMQ exchange, by default `''` | `""` |
| `kafka.broker` | Kafka brokers, by default `'kafka1.yourdomain.com:9094,kafka2.yourdomain.com:9094'` | `""` |
| `kafka.username` | Kafka username, by default `'yourusername'` | `""` |
| `kafka.password` | Kafka password, by default `'yourpassword'` | `""` |
| `kafka.mechanism` | Kafka mechanism, by default `'PLAIN'` | `""` |
| `kafka.security` | Kafka security, by default `'SASL_PLAINTEXT'` | `""` |
| `turn.host` | TURN/STUN hostname, by default `'turn:turn.yourdomain.com:8443'` | `""` |
| `turn.username` | TURN/STUN username, by default `'username1'` | `""` |
| `turn.password` | TURN/STUN password, by default `'password1'` | `""` |
| `opentelemetry.enabled` | Enable or disable OpenTelemetry instrumentation. | `""` |
| `opentelemetry.routingEnabled` | Enable or disable OpenTelemetry routing/export behavior. | `""` |
| `opentelemetry.collector.endpoint` | OpenTelemetry collector endpoint used for trace export. | `""` |
| `openai.enabled` | Enable or disable OpenAI-backed semantic features. | `""` |
| `openai.apikey` | OpenAI API key used when OpenAI integration is enabled. | `""` |
| `kerberosvault.uri` | The default Kerberos Vault uri (you can add multiple within the app), by default `'https://api.storage.yourdomain.com'` | `""` |
| `kerberosvault.provider` | The default Kerberos Vault provider`'a-provider'` | `""` |
| `kerberosvault.accesskey` | The default Kerberos Vault access key, by default `'xxx'` | `""` |
| `kerberosvault.secretkey` | The default Kerberos Vault secret key, by default `'xxx'` | `""` |
| `kerberosvault.archive.provider` | When a task is created, the relevant recording is moved to this provider `'an-archive-provider'` | `""` |
| `kerberosvault.archive.accesskey` | When a task is created, the relevant recording is moved to another provider, using this access key `'xxx'` | `""` |
| `kerberosvault.archive.secretkey` | When a task is created, the relevant recording is moved to another provider, using this secret key`'xxx'` | `""` |
| `kerberosvault.thumbnail.provider` | Configuration value for `kerberosvault.thumbnail.provider`. | `""` |
| `kerberosvault.thumbnail.accessKey` | Access key for `kerberosvault.thumbnail`. | `""` |
| `kerberosvault.thumbnail.secretKey` | Secret key for `kerberosvault.thumbnail`. | `""` |
| `kerberosvault.sprite.provider` | Configuration value for `kerberosvault.sprite.provider`. | `""` |
| `kerberosvault.sprite.accessKey` | Access key for `kerberosvault.sprite`. | `""` |
| `kerberosvault.sprite.secretKey` | Secret key for `kerberosvault.sprite`. | `""` |
| `admin.repository` | Container image repository for `admin`. | `""` |
| `admin.pullPolicy` | Image pull policy for `admin`. | `""` |
| `admin.tag` | Container image tag/version for `admin`. | `""` |
| `admin.replicas` | Number of replicas for `admin`. | `""` |
| `admin.logLevel` | Log verbosity level for `admin`. | `""` |
| `admin.resources.requests.memory` | Memory request for `admin`. | `""` |
| `admin.resources.requests.cpu` | CPU request for `admin`. | `""` |
| `admin.url` | URL for `admin`. | `""` |
| `admin.tls.secretName` | Kubernetes Secret name used by `admin.tls`. | `""` |
| `admin.oauth2Proxy.enabled` | Enable or disable `admin.oauth2Proxy`. | `""` |
| `admin.oauth2Proxy.github.clientId` | Client ID used by `admin.oauth2Proxy.github`. | `""` |
| `admin.oauth2Proxy.github.clientSecret` | Client secret used by `admin.oauth2Proxy.github`. | `""` |
| `admin.oauth2Proxy.github.cookieSecret` | Cookie secret used by `admin.oauth2Proxy.github`. | `""` |
| `admin.oauth2Proxy.github.organization` | Organization value used by `admin.oauth2Proxy.github`. | `""` |
| `admin.oauth2Proxy.github.team` | Team value used by `admin.oauth2Proxy.github`. | `""` |
| `kerberoshub.extraEnv` | Additional environment variables injected into Kerberos Hub pods. | `""` |
| `kerberoshub.serviceAccount.create` | Create or manage `kerberoshub.serviceAccount` resources. | `""` |
| `kerberoshub.serviceAccount.name` | Name value for `kerberoshub.serviceAccount`. | `""` |
| `kerberoshub.serviceAccount.annotations` | Annotations applied to `kerberoshub.serviceAccount` resources. | `""` |
| `kerberoshub.serviceAccount.labels` | Labels applied to `kerberoshub.serviceAccount` resources. | `""` |
| `kerberoshub.api.repository` | The Docker registry where the Kerberos Hub API container is hosted. | `""` |
| `kerberoshub.api.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberoshub.api.tag` | The Docker image tag/version. | `""` |
| `kerberoshub.api.replicas` | The number of pods/replicas running for the Kerberos Hub API deployment. | `""` |
| `kerberoshub.api.logLevel` | Log verbosity level for `kerberoshub.api`. | `""` |
| `kerberoshub.api.jwtSecret` | A secret that is for generating JWT tokens. | `""` |
| `kerberoshub.api.schema` | The protocol to serve the Kerberos Hub API, `'http'` or `'https'`. | `""` |
| `kerberoshub.api.url` | The Kerberos Hub API ingress to access the API. | `""` |
| `kerberoshub.api.resources.requests.memory` | Memory request for `kerberoshub.api`. | `""` |
| `kerberoshub.api.resources.requests.cpu` | CPU request for `kerberoshub.api`. | `""` |
| `kerberoshub.api.serverTLS.enabled` | Enable or disable `kerberoshub.api.serverTLS`. | `""` |
| `kerberoshub.api.serverTLS.secretName` | Kubernetes Secret name used by `kerberoshub.api.serverTLS`. | `""` |
| `kerberoshub.api.serverTLS.mountPath` | Filesystem path where the Hub API TLS secret is mounted. | `""` |
| `kerberoshub.api.serverTLS.certFile` | Path to the TLS certificate file used by Hub API server-side TLS. | `""` |
| `kerberoshub.api.serverTLS.keyFile` | Path to the TLS private key file used by Hub API server-side TLS. | `""` |
| `kerberoshub.api.mfaIssuer` | When enabling the MFA access, this is the name that will be shown in the MFA app. | `""` |
| `kerberoshub.api.apiKey` | API key for `kerberoshub.api`. | `""` |
| `kerberoshub.api.tls` | Bring your own TLS certificates for Kerberos Hub API ingress. | `""` |
| `kerberoshub.api.tls.secretName` | Kubernetes Secret name used by `kerberoshub.api.tls`. | `""` |
| `kerberoshub.api.language` | The language of Kerberos Hub API responses, error messages will be communicated in the specified language. | `""` |
| `kerberoshub.api.fallbackLanguage` | The fallback language, if a specific translation is not available. | `""` |
| `kerberoshub.api.aws.region` | AWS region used by the Hub API legacy S3 integration. | `""` |
| `kerberoshub.api.aws.bucket` | AWS S3 bucket used by the Hub API legacy S3 integration. | `""` |
| `kerberoshub.api.aws.accessKey` | Access key for `kerberoshub.api.aws`. | `""` |
| `kerberoshub.api.aws.secretKey` | Secret key for `kerberoshub.api.aws`. | `""` |
| `kerberoshub.api.stripe.privateKey` | Private key for `kerberoshub.api.stripe`. | `""` |
| `kerberoshub.api.slack.enabled` | Slack integration for sending events and notifications coming from the Kerberos Hub API, `'true'` or `'false'`. | `""` |
| `kerberoshub.api.slack.hook` | Slack integration hook url. | `""` |
| `kerberoshub.api.slack.username` | Slack integration username. | `""` |
| `kerberoshub.api.elasticsearch.enabled` | Elasticsearch for storing events coming from the Kerberos Hub API, `'true'` or `'false'` | `""` |
| `kerberoshub.api.elasticsearch.protocol` | Elasticsearch protocol, `'http'` or `'https'`. | `""` |
| `kerberoshub.api.elasticsearch.host` | Elasticsearch host. | `""` |
| `kerberoshub.api.elasticsearch.port` | Elasticsearch port. | `""` |
| `kerberoshub.api.elasticsearch.index` | Elasticsearch index which is used to store the events. | `""` |
| `kerberoshub.api.elasticsearch.username` | Elasticsearch username. | `""` |
| `kerberoshub.api.elasticsearch.password` | Elasticsearch password. | `""` |
| `kerberoshub.api.sso.redirectUrl` | The OIC redirectUrl, once the authentication is validated. | `""` |
| `kerberoshub.api.sso.forceSSO` | Force SSO login for users of the configured domain. | `""` |
| `kerberoshub.api.sso.issuer` | Kerberos Hub can be linked to OpenID Connect for SSO. Specify the OIC issuer. | `""` |
| `kerberoshub.api.sso.claimId` | OIDC claim used to uniquely identify the authenticated user. | `""` |
| `kerberoshub.api.sso.clientId` | The OIC client id. | `""` |
| `kerberoshub.api.sso.clientSecret` | The OIC client secret. | `""` |
| `kerberoshub.api.sso.clientVerificationId` | Optional client verification ID used for SSO chaining scenarios. | `""` |
| `kerberoshub.api.sso.extraHeaders` | Additional headers appended to outbound SSO provider requests. | `""` |
| `kerberoshub.api.sso.extraHeaders.value` | Header value for each configured SSO extra header entry. | `""` |
| `kerberoshub.frontend.repository` | The Docker registry where the Kerberos Hub frontend is hosted. | `""` |
| `kerberoshub.frontend.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberoshub.frontend.tag` | The Docker image tag/version. | `""` |
| `kerberoshub.frontend.replicas` | The number of pods/replicas running for the Kerberos Hub frontend deployment. | `""` |
| `kerberoshub.frontend.logLevel` | Log verbosity level for `kerberoshub.frontend`. | `""` |
| `kerberoshub.frontend.schema` | The protocol to serve the Kerberos Hub frontend, `'http'` or `'https'`. | `""` |
| `kerberoshub.frontend.url` | The Kerberos Hub frontend ingress to access the frontend. | `""` |
| `kerberoshub.frontend.resources.requests.memory` | Memory request for `kerberoshub.frontend`. | `""` |
| `kerberoshub.frontend.resources.requests.cpu` | CPU request for `kerberoshub.frontend`. | `""` |
| `kerberoshub.frontend.tls` | Bring your own TLS certificates for Kerberos Hub frontend ingress. | `""` |
| `kerberoshub.frontend.tls.secretName` | Kubernetes Secret name used by `kerberoshub.frontend.tls`. | `""` |
| `kerberoshub.frontend.mixpanel.apikey` | No longer used. | `""` |
| `kerberoshub.frontend.sentry.url` | No longer used. | `""` |
| `kerberoshub.frontend.stripe.publicKey` | Public key for `kerberoshub.frontend.stripe`. | `""` |
| `kerberoshub.frontend.googlemaps.apikey` | Within Kerberos Hub frontend a couple of maps are being used, the google maps is leveraged for that. | `""` |
| `kerberoshub.frontend.zendesk.url` | No longer used. | `""` |
| `kerberoshub.frontend.posthog.key` | The API key retrieved from the Posthog instance. | `""` |
| `kerberoshub.frontend.posthog.url` | Posthog's endpoint (http/https). | `""` |
| `kerberoshub.frontend.hideAddAgent` | Configuration value for `kerberoshub.frontend.hideAddAgent`. | `""` |
| `kerberoshub.frontend.multiTenant` | Configuration value for `kerberoshub.frontend.multiTenant`. | `""` |
| `kerberoshub.frontend.title` | Title text used for `kerberoshub.frontend`. | `""` |
| `kerberoshub.frontend.logo` | The logo being used in the Kerberos Hub frontend, set to 'custom' if you want to mount your own stylesheet. | `""` |
| `kerberoshub.frontend.floorPlanName` | Configuration value for `kerberoshub.frontend.floorPlanName`. | `""` |
| `kerberoshub.frontend.sitesName` | Configuration value for `kerberoshub.frontend.sitesName`. | `""` |
| `kerberoshub.frontend.sitesDescription` | Custom description text for `sites` in the frontend UI. | `""` |
| `kerberoshub.frontend.groupsName` | Configuration value for `kerberoshub.frontend.groupsName`. | `""` |
| `kerberoshub.frontend.groupsDescription` | Custom description text for `groups` in the frontend UI. | `""` |
| `kerberoshub.frontend.siteGroupName` | Configuration value for `kerberoshub.frontend.siteGroupName`. | `""` |
| `kerberoshub.frontend.siteGroupDescription` | Custom description text for `site group` in the frontend UI. | `""` |
| `kerberoshub.frontend.deviceGroupName` | Configuration value for `kerberoshub.frontend.deviceGroupName`. | `""` |
| `kerberoshub.frontend.deviceGroupDescription` | Custom description text for `device group` in the frontend UI. | `""` |
| `kerberoshub.frontend.markersName` | Configuration value for `kerberoshub.frontend.markersName`. | `""` |
| `kerberoshub.frontend.eventsName` | Configuration value for `kerberoshub.frontend.eventsName`. | `""` |
| `kerberoshub.frontend.loginDescription` | Custom description text for `login` in the frontend UI. | `""` |
| `kerberoshub.frontend.loginCopyright` | Configuration value for `kerberoshub.frontend.loginCopyright`. | `""` |
| `kerberoshub.frontend.dashboardTitle` | Custom title text for `dashboard` in the frontend UI. | `""` |
| `kerberoshub.frontend.dashboardSubTitle` | Custom title text for `dashboard sub` in the frontend UI. | `""` |
| `kerberoshub.frontend.latestEventsTitle` | Custom title text for `latest events` in the frontend UI. | `""` |
| `kerberoshub.frontend.latestEventsSubTitle` | Custom title text for `latest events sub` in the frontend UI. | `""` |
| `kerberoshub.frontend.dayTitle` | Custom title text for `day` in the frontend UI. | `""` |
| `kerberoshub.frontend.daySubTitle` | Custom title text for `day sub` in the frontend UI. | `""` |
| `kerberoshub.frontend.livestreamTitle` | Custom title text for `livestream` in the frontend UI. | `""` |
| `kerberoshub.frontend.livestreamSubTitle` | Custom title text for `livestream sub` in the frontend UI. | `""` |
| `kerberoshub.frontend.mediaTitle` | Custom title text for `media` in the frontend UI. | `""` |
| `kerberoshub.frontend.mediaSubTitle` | Custom title text for `media sub` in the frontend UI. | `""` |
| `kerberoshub.frontend.cpuUsageDescription` | Custom description text for `cpu usage` in the frontend UI. | `""` |
| `kerberoshub.frontend.framesPerSecondDescription` | Custom description text for `frames per second` in the frontend UI. | `""` |
| `kerberoshub.frontend.mlaUtilizationDescription` | Custom description text for `mla utilization` in the frontend UI. | `""` |
| `kerberoshub.frontend.objectsDetectedDescription` | Custom description text for `objects detected` in the frontend UI. | `""` |
| `kerberoshub.frontend.navigationLinkTitle1` | Custom navigation item (title 1) | `""` |
| `kerberoshub.frontend.navigationLinkUrl1` | Custom navigation item (url 1) | `""` |
| `kerberoshub.frontend.navigationLinkTitle2` | Custom navigation item (title 2) | `""` |
| `kerberoshub.frontend.navigationLinkUrl2` | Custom navigation item (url 2) | `""` |
| `kerberoshub.frontend.navigationLinkTitle3` | Custom navigation item (title 3) | `""` |
| `kerberoshub.frontend.navigationLinkUrl3` | Custom navigation item (url 3) | `""` |
| `kerberoshub.frontend.navigationLinkTitle4` | Custom navigation item (title 4) | `""` |
| `kerberoshub.frontend.navigationLinkUrl4` | Custom navigation item (url 4) | `""` |
| `kerberoshub.frontend.navigationLinkTitle5` | Custom navigation item (title 5) | `""` |
| `kerberoshub.frontend.navigationLinkUrl5` | Custom navigation item (url 5) | `""` |
| `kerberoshub.frontend.caseFilterAssigneesDefault` | Default assignee filter behavior for cases in the frontend. | `""` |
| `kerberoshub.frontend.features.case.enabled` | Enable or disable the case feature in the frontend. | `""` |
| `kerberoshub.frontend.features.darkModeEnabled` | Enable or disable dark mode in the frontend. | `""` |
| `kerberoshub.frontend.features.landingPage` | Frontend landing page configuration. | `""` |
| `kerberoshub.frontend.features.map.tileUrlLight` | Tile URL used by the map in light mode. | `""` |
| `kerberoshub.frontend.features.map.tileUrlDark` | Tile URL used by the map in dark mode. | `""` |
| `kerberoshub.frontend.features.map.attribution` | Attribution text displayed on the map tiles. | `""` |
| `kerberoshub.frontend.features.liveview.defaultStreamMode` | Liveview behavior setting: `defaultStreamMode`. | `""` |
| `kerberoshub.frontend.features.liveview.paginationEnabled` | Liveview behavior setting: `paginationEnabled`. | `""` |
| `kerberoshub.frontend.features.liveview.emptyByDefault` | Liveview behavior setting: `emptyByDefault`. | `""` |
| `kerberoshub.frontend.features.liveview.maxStreams` | Liveview behavior setting: `maxStreams`. | `""` |
| `kerberoshub.frontend.features.devices.hideAgent` | Hide agent controls in the devices section of the frontend. | `""` |
| `kerberoshub.frontend.features.media.filter.date.enabled` | Enable or disable `kerberoshub.frontend.features.media.filter.date`. | `""` |
| `kerberoshub.frontend.features.media.filter.sites.enabled` | Enable or disable `kerberoshub.frontend.features.media.filter.sites`. | `""` |
| `kerberoshub.frontend.features.media.filter.groups.enabled` | Enable or disable `kerberoshub.frontend.features.media.filter.groups`. | `""` |
| `kerberoshub.frontend.features.media.filter.devices.enabled` | Enable or disable `kerberoshub.frontend.features.media.filter.devices`. | `""` |
| `kerberoshub.frontend.features.media.filter.objectDetection.enabled` | Enable or disable `kerberoshub.frontend.features.media.filter.objectDetection`. | `""` |
| `kerberoshub.frontend.features.media.filter.star.enabled` | Enable or disable `kerberoshub.frontend.features.media.filter.star`. | `""` |
| `kerberoshub.frontend.features.media.filter.region.enabled` | Enable or disable `kerberoshub.frontend.features.media.filter.region`. | `""` |
| `kerberoshub.frontend.features.media.filter.sort.enabled` | Enable or disable `kerberoshub.frontend.features.media.filter.sort`. | `""` |
| `kerberoshub.frontend.features.media.filter.category.enabled` | Enable or disable `kerberoshub.frontend.features.media.filter.category`. | `""` |
| `kerberoshub.frontend.features.media.filter.markers.enabled` | Enable or disable `kerberoshub.frontend.features.media.filter.markers`. | `""` |
| `kerberoshub.frontend.features.media.filter.events.enabled` | Enable or disable `kerberoshub.frontend.features.media.filter.events`. | `""` |
| `kerberoshub.frontend.features.media.filter.tags.enabled` | Enable or disable `kerberoshub.frontend.features.media.filter.tags`. | `""` |
| `kerberoshub.frontend.features.floorplan.enabled` | Enable or disable `kerberoshub.frontend.features.floorplan`. | `""` |
| `kerberoshub.frontend.features.floorplan.colorDeviceActive` | Color customization for `floorplan` in the frontend. | `""` |
| `kerberoshub.frontend.features.floorplan.colorDeviceInactive` | Color customization for `floorplan` in the frontend. | `""` |
| `kerberoshub.frontend.features.floorplan.colorDeviceIdle` | Color customization for `floorplan` in the frontend. | `""` |
| `kerberoshub.frontend.features.floorplan.colorDeviceMotion` | Color customization for `floorplan` in the frontend. | `""` |
| `kerberoshub.frontend.features.floorplan.colorLiveViewControlActive` | Color customization for `floorplan` in the frontend. | `""` |
| `kerberoshub.frontend.features.floorplan.colorLiveViewControlMotion` | Color customization for `floorplan` in the frontend. | `""` |
| `kerberoshub.frontend.features.floorplan.colorFloorPlanLabelText` | Color customization for `floorplan` in the frontend. | `""` |
| `kerberoshub.frontend.features.floorplan.colorFloorPlanLabelBackground` | Color customization for `floorplan` in the frontend. | `""` |
| `kerberoshub.frontend.features.floorplan.colorDeviceMarkerBorder` | Color customization for `floorplan` in the frontend. | `""` |
| `kerberoshub.frontend.features.floorplan.colorTrackBox` | Color customization for `floorplan` in the frontend. | `""` |
| `kerberoshub.frontend.features.floorplan.colorTrackBoxHover` | Color customization for `floorplan` in the frontend. | `""` |
| `kerberoshub.frontend.features.floorplan.colorTrackBoxDrawing` | Color customization for `floorplan` in the frontend. | `""` |
| `kerberoshub.frontend.features.floorplan.colorTrackBoxControlsDelete` | Color customization for `floorplan` in the frontend. | `""` |
| `kerberoshub.frontend.features.faceRedaction.enabled` | Enable or disable `kerberoshub.frontend.features.faceRedaction`. | `""` |
| `kerberoshub.support.enabled` | Enable or disable in-app support features. | `""` |
| `kerberoshub.oauth2Proxy.enabled` | Enable or disable `kerberoshub.oauth2Proxy`. | `""` |
| `kerberoshub.oauth2Proxy.github.clientId` | Client ID used by `kerberoshub.oauth2Proxy.github`. | `""` |
| `kerberoshub.oauth2Proxy.github.clientSecret` | Client secret used by `kerberoshub.oauth2Proxy.github`. | `""` |
| `kerberoshub.oauth2Proxy.github.cookieSecret` | Cookie secret used by `kerberoshub.oauth2Proxy.github`. | `""` |
| `kerberoshub.oauth2Proxy.github.organization` | Organization value used by `kerberoshub.oauth2Proxy.github`. | `""` |
| `kerberoshub.oauth2Proxy.github.team` | Team value used by `kerberoshub.oauth2Proxy.github`. | `""` |
| `kerberoshub.cleanup.repository` | The Docker container that is responsible for cleaning up the Kerberos Hub API content and related MongoDB collections. | `""` |
| `kerberoshub.cleanup.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberoshub.cleanup.tag` | The Docker image tag/version. | `""` |
| `kerberoshub.cleanup.replicas` | Number of replicas for `kerberoshub.cleanup`. | `""` |
| `kerberoshub.cleanup.logLevel` | Log verbosity level for `kerberoshub.cleanup`. | `""` |
| `kerberoshub.cleanup.maxDays` | Maximum age (in days) of data retained by the cleanup process. | `""` |
| `kerberoshub.cleanup.resources.requests.memory` | Memory request for `kerberoshub.cleanup`. | `""` |
| `kerberoshub.cleanup.resources.requests.cpu` | CPU request for `kerberoshub.cleanup`. | `""` |
| `kerberoshub.monitordevice.repository` | The monitoring microservice, following up the status of your cameras and Kerberos Agents. | `""` |
| `kerberoshub.monitordevice.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberoshub.monitordevice.tag` | The Docker image tag/version. | `""` |
| `kerberoshub.monitordevice.replicas` | Number of replicas for `kerberoshub.monitordevice`. | `""` |
| `kerberoshub.monitordevice.logLevel` | Log verbosity level for `kerberoshub.monitordevice`. | `""` |
| `kerberoshub.monitordevice.resources.requests.memory` | Memory request for `kerberoshub.monitordevice`. | `""` |
| `kerberoshub.monitordevice.resources.requests.cpu` | CPU request for `kerberoshub.monitordevice`. | `""` |
| `kerberoshub.reactivate.repository` | Container image repository for `kerberoshub.reactivate`. | `""` |
| `kerberoshub.reactivate.pullPolicy` | Image pull policy for `kerberoshub.reactivate`. | `""` |
| `kerberoshub.reactivate.tag` | Container image tag/version for `kerberoshub.reactivate`. | `""` |
| `kerberoshub.reactivate.replicas` | Number of replicas for `kerberoshub.reactivate`. | `""` |
| `kerberoshub.reactivate.logLevel` | Log verbosity level for `kerberoshub.reactivate`. | `""` |
| `kerberoshub.reactivate.resources.requests.memory` | Memory request for `kerberoshub.reactivate`. | `""` |
| `kerberoshub.reactivate.resources.requests.cpu` | CPU request for `kerberoshub.reactivate`. | `""` |
| `kerberoshub.forwarder.enabled` | Enable or disable the Hub forwarder component. | `""` |
| `kerberoshub.proxy.repository` | Container image repository for `kerberoshub.proxy`. | `""` |
| `kerberoshub.proxy.pullPolicy` | Image pull policy for `kerberoshub.proxy`. | `""` |
| `kerberoshub.proxy.tag` | Container image tag/version for `kerberoshub.proxy`. | `""` |
| `kerberoshub.proxy.replicas` | Number of replicas for `kerberoshub.proxy`. | `""` |
| `kerberoshub.proxy.logLevel` | Log verbosity level for `kerberoshub.proxy`. | `""` |
| `kerberoshub.proxy.resources.requests.memory` | Memory request for `kerberoshub.proxy`. | `""` |
| `kerberoshub.proxy.resources.requests.cpu` | CPU request for `kerberoshub.proxy`. | `""` |
| `kerberospipeline.event.repository` | The [event orchestration](https://doc.kerberos.io/hub/pipeline/#orchestrator) microservice. | `""` |
| `kerberospipeline.event.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberospipeline.event.tag` | The Docker image tag/version. | `""` |
| `kerberospipeline.event.replicas` | Number of replicas for `kerberospipeline.event`. | `""` |
| `kerberospipeline.event.logLevel` | Log verbosity level for `kerberospipeline.event`. | `""` |
| `kerberospipeline.event.resources.requests.memory` | Memory request for `kerberospipeline.event`. | `""` |
| `kerberospipeline.event.resources.requests.cpu` | CPU request for `kerberospipeline.event`. | `""` |
| `kerberospipeline.monitor.repository` | The [monitoring microservice](https://doc.kerberos.io/hub/pipeline/#monitoring), calculating metrics of incoming messages. | `""` |
| `kerberospipeline.monitor.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberospipeline.monitor.tag` | The Docker image tag/version. | `""` |
| `kerberospipeline.monitor.replicas` | Number of replicas for `kerberospipeline.monitor`. | `""` |
| `kerberospipeline.monitor.resources.requests.memory` | Memory request for `kerberospipeline.monitor`. | `""` |
| `kerberospipeline.monitor.resources.requests.cpu` | CPU request for `kerberospipeline.monitor`. | `""` |
| `kerberospipeline.sequence.repository` | The [sequencer microservice](https://doc.kerberos.io/hub/pipeline/#sequencer), grouping recordings in chunks/groups. | `""` |
| `kerberospipeline.sequence.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberospipeline.sequence.tag` | The Docker image tag/version. | `""` |
| `kerberospipeline.sequence.replicas` | Number of replicas for `kerberospipeline.sequence`. | `""` |
| `kerberospipeline.sequence.resources.requests.memory` | Memory request for `kerberospipeline.sequence`. | `""` |
| `kerberospipeline.sequence.resources.requests.cpu` | CPU request for `kerberospipeline.sequence`. | `""` |
| `kerberospipeline.throttler.repository` | The [throttler microservice](https://doc.kerberos.io/hub/pipeline/#throttler), throttling events. | `""` |
| `kerberospipeline.throttler.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberospipeline.throttler.tag` | The Docker image tag/version. | `""` |
| `kerberospipeline.throttler.replicas` | Number of replicas for `kerberospipeline.throttler`. | `""` |
| `kerberospipeline.throttler.logLevel` | Log verbosity level for `kerberospipeline.throttler`. | `""` |
| `kerberospipeline.throttler.resources.requests.memory` | Memory request for `kerberospipeline.throttler`. | `""` |
| `kerberospipeline.throttler.resources.requests.cpu` | CPU request for `kerberospipeline.throttler`. | `""` |
| `kerberospipeline.notify.repository` | The [notification microservice](https://doc.kerberos.io/hub/pipeline/#notification), sending notifications on events. | `""` |
| `kerberospipeline.notify.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberospipeline.notify.tag` | The Docker image tag/version. | `""` |
| `kerberospipeline.notify.replicas` | Number of replicas for `kerberospipeline.notify`. | `""` |
| `kerberospipeline.notify.logLevel` | Log verbosity level for `kerberospipeline.notify`. | `""` |
| `kerberospipeline.notify.resources.requests.memory` | Memory request for `kerberospipeline.notify`. | `""` |
| `kerberospipeline.notify.resources.requests.cpu` | CPU request for `kerberospipeline.notify`. | `""` |
| `kerberospipeline.notifyTest.repository` | The notification service for testing, the different channels. | `""` |
| `kerberospipeline.notifyTest.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberospipeline.notifyTest.tag` | The Docker image tag/version. | `""` |
| `kerberospipeline.notifyTest.replicas` | Number of replicas for `kerberospipeline.notifyTest`. | `""` |
| `kerberospipeline.notifyTest.resources.requests.memory` | Memory request for `kerberospipeline.notifyTest`. | `""` |
| `kerberospipeline.notifyTest.resources.requests.cpu` | CPU request for `kerberospipeline.notifyTest`. | `""` |
| `kerberospipeline.analysis.repository` | The [analysis microservices](https://doc.kerberos.io/hub/pipeline/#analyser) which executed specific analysis in parallel. | `""` |
| `kerberospipeline.analysis.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberospipeline.analysis.tag` | The Docker image tag/version. | `""` |
| `kerberospipeline.analysis.replicas` | Number of replicas for `kerberospipeline.analysis`. | `""` |
| `kerberospipeline.analysis.logLevel` | Log verbosity level for `kerberospipeline.analysis`. | `""` |
| `kerberospipeline.analysis.resources.requests.memory` | Memory request for `kerberospipeline.analysis`. | `""` |
| `kerberospipeline.analysis.resources.requests.cpu` | CPU request for `kerberospipeline.analysis`. | `""` |
| `kerberospipeline.dominantColor.repository` | The dominant color microservices is computing a top 3 color histogram. | `""` |
| `kerberospipeline.dominantColor.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberospipeline.dominantColor.tag` | The Docker image tag/version. | `""` |
| `kerberospipeline.dominantColor.replicas` | Number of replicas for `kerberospipeline.dominantColor`. | `""` |
| `kerberospipeline.dominantColor.logLevel` | Log verbosity level for `kerberospipeline.dominantColor`. | `""` |
| `kerberospipeline.dominantColor.resources.requests.memory` | Memory request for `kerberospipeline.dominantColor`. | `""` |
| `kerberospipeline.dominantColor.resources.requests.cpu` | CPU request for `kerberospipeline.dominantColor`. | `""` |
| `kerberospipeline.dominantColor.resources.limits.memory` | Memory limit for `kerberospipeline.dominantColor`. | `""` |
| `kerberospipeline.dominantColor.resources.limits.cpu` | CPU limit for `kerberospipeline.dominantColor`. | `""` |
| `kerberospipeline.thumbnail.repository` | The thumbnail microservices generated a thumbnail for a recordings. | `""` |
| `kerberospipeline.thumbnail.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberospipeline.thumbnail.tag` | The Docker image tag/version. | `""` |
| `kerberospipeline.thumbnail.replicas` | Number of replicas for `kerberospipeline.thumbnail`. | `""` |
| `kerberospipeline.thumbnail.logLevel` | Log verbosity level for `kerberospipeline.thumbnail`. | `""` |
| `kerberospipeline.thumbnail.quality` | Configuration value for `kerberospipeline.thumbnail.quality`. | `""` |
| `kerberospipeline.thumbnail.width` | Configuration value for `kerberospipeline.thumbnail.width`. | `""` |
| `kerberospipeline.thumbnail.height` | Configuration value for `kerberospipeline.thumbnail.height`. | `""` |
| `kerberospipeline.thumbnail.kerberosvault.enabled` | Enable or disable `kerberospipeline.thumbnail.kerberosvault`. | `""` |
| `kerberospipeline.thumbnail.resources.requests.memory` | Memory request for `kerberospipeline.thumbnail`. | `""` |
| `kerberospipeline.thumbnail.resources.requests.cpu` | CPU request for `kerberospipeline.thumbnail`. | `""` |
| `kerberospipeline.thumbnail.resources.limits.memory` | Memory limit for `kerberospipeline.thumbnail`. | `""` |
| `kerberospipeline.thumbnail.resources.limits.cpu` | CPU limit for `kerberospipeline.thumbnail`. | `""` |
| `kerberospipeline.counting.repository` | The counting microservices computes objects passing different line segments. | `""` |
| `kerberospipeline.counting.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberospipeline.counting.tag` | The Docker image tag/version. | `""` |
| `kerberospipeline.counting.replicas` | Number of replicas for `kerberospipeline.counting`. | `""` |
| `kerberospipeline.counting.logLevel` | Log verbosity level for `kerberospipeline.counting`. | `""` |
| `kerberospipeline.counting.resources.requests.memory` | Memory request for `kerberospipeline.counting`. | `""` |
| `kerberospipeline.counting.resources.requests.cpu` | CPU request for `kerberospipeline.counting`. | `""` |
| `kerberospipeline.sprite.enabled` | Enable or disable `kerberospipeline.sprite`. | `""` |
| `kerberospipeline.sprite.repository` | Container image repository for `kerberospipeline.sprite`. | `""` |
| `kerberospipeline.sprite.pullPolicy` | Image pull policy for `kerberospipeline.sprite`. | `""` |
| `kerberospipeline.sprite.tag` | Container image tag/version for `kerberospipeline.sprite`. | `""` |
| `kerberospipeline.sprite.replicas` | Number of replicas for `kerberospipeline.sprite`. | `""` |
| `kerberospipeline.sprite.logLevel` | Log verbosity level for `kerberospipeline.sprite`. | `""` |
| `kerberospipeline.sprite.interval` | Configuration value for `kerberospipeline.sprite.interval`. | `""` |
| `kerberospipeline.sprite.width` | Configuration value for `kerberospipeline.sprite.width`. | `""` |
| `kerberospipeline.sprite.height` | Configuration value for `kerberospipeline.sprite.height`. | `""` |
| `kerberospipeline.sprite.resources.requests.memory` | Memory request for `kerberospipeline.sprite`. | `""` |
| `kerberospipeline.sprite.resources.requests.cpu` | CPU request for `kerberospipeline.sprite`. | `""` |
| `kerberospipeline.sprite.resources.limits.memory` | Memory limit for `kerberospipeline.sprite`. | `""` |
| `kerberospipeline.sprite.resources.limits.cpu` | CPU limit for `kerberospipeline.sprite`. | `""` |
| `kerberospipeline.export.repository` | Container image repository for `kerberospipeline.export`. | `""` |
| `kerberospipeline.export.pullPolicy` | Image pull policy for `kerberospipeline.export`. | `""` |
| `kerberospipeline.export.tag` | Container image tag/version for `kerberospipeline.export`. | `""` |
| `kerberospipeline.export.replicas` | Number of replicas for `kerberospipeline.export`. | `""` |
| `kerberospipeline.export.logLevel` | Log verbosity level for `kerberospipeline.export`. | `""` |
| `kerberospipeline.export.resources.requests.memory` | Memory request for `kerberospipeline.export`. | `""` |
| `kerberospipeline.export.resources.requests.cpu` | CPU request for `kerberospipeline.export`. | `""` |
| `email.provider` | The email service provider for sending out messages over email , use `'mailgun'` or `'smtp'`. | `""` |
| `email.from` | The email address that is sending messages in name of, by default `'support@yourdomain.com'`. | `""` |
| `email.displayName` | The display name that is sending messages in name of, by default `'yourdomain.com'` | `""` |
| `email.mailgun.domain` | While using `mailgun` as email service provider, you will need to provide your Mailgun domain. | `""` |
| `email.mailgun.apikey` | Mailgun API key (lowercase variant) used when provider is `mailgun`. | `""` |
| `email.smtp.server` | While using `smtp` as email service provider, use the SMTP server. | `""` |
| `email.smtp.port` | SMTP port specified by your SMTP server, by default `'456'`. | `""` |
| `email.smtp.username` | SMTP username. | `""` |
| `email.smtp.password` | SMTP password. | `""` |
| `email.templates.welcome` | The template which is send when a new user registered on the platform (`IS_PRIVATE='false'`), by default `'disabled'`. | `""` |
| `email.templates.welcomeTitle` | The welcome title use in the subject of the email. | `""` |
| `email.templates.activate` | The template which is send when a user is required to activate his account , by default `'activate'`. | `""` |
| `email.templates.activateTitle` | The activation title use in the subject of the email. | `""` |
| `email.templates.forgot` | The template which is send when an account is requesting a forgot password, by default `'forgot'`. | `""` |
| `email.templates.forgotTitle` | The forgot title use in the subject of the email. | `""` |
| `email.templates.share` | Email template name/key for `share` notifications. | `""` |
| `email.templates.shareTitle` | Email subject title for the `share` template. | `""` |
| `email.templates.assignTask` | Email template name/key for `assign task` notifications. | `""` |
| `email.templates.assignTaskTitle` | Email subject title for the `assign task` template. | `""` |
| `email.templates.detection` | We use templates to send notifications, this allow you to bring your own `Mailgun` templates, by default `'detection'`. | `""` |
| `email.templates.disabled` | The template which is send when an account is disabled due to reaching its upload limit, by default `'disabled'`. | `""` |
| `email.templates.highupload` | The template which is send when an account is reaching a specific upload threshold, by default `'threshold'`. | `""` |
| `email.templates.device` | The template which is send when a camera goes online or offline, by default `'device'`. | `""` |
| `email.templates.alertTitle` | Email subject title for the `alert` template. | `""` |
| `email.templates.deviceTitle` | Email subject title for the `device` template. | `""` |
| `email.mailgun.apiKey` | The Mailgun API key linked to your Mailgun domain. | `""` |
| `imagePullSecrets.name` | Docker registry secret name, which is also granted with the license. This allows you to download the Docker images. | `""` |
| `kerberoshub.forwarder.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberoshub.forwarder.repository` | The Docker container which orchestrates forwarding coming from different Kerberos Vaults. | `""` |
| `kerberoshub.forwarder.tag` | The Docker image tag/version. | `""` |
| `kerberoshub.frontend.ssoDomain` | The domain that's being used to activate SSO from the login page. | `""` |
| `kerberoshub.frontend.stripe.apikey` | If using the public version, `stripe` can be used for automated billing and subscriptions. | `""` |
| Name | Description | Value |
| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ----- |
| `license` | The license key you received from support@kerberos.io. If not available request one. | `""` |
| `licenseServer.url` | The license server for validating the license of your Kerberos Hub, by default `'"https://license.kerberos.io/verify"'`. | `""` |
| `licenseServer.token` | The license server API token to sign the license validation by default `'214%ˆ#ddfsf@#3rfdsgl_)23sffeqasSwefDSFNBM'`. | `""` |
| `imagePullSecrets.name` | Docker registry secret name, which is also granted with the license. This allows you to download the Docker images. | `""` |
| `isPrivate` | Global StorageClass for Persistent Volume(s) | `""` |
| `readOnly` | This will stop any write process to mongodb or any processing done in the Kerberos Hub pipeline. | `""` |
| `ingress` | The ingress being used for `kerberoshub.api.url` and `kerberoshub.frontend.url`. | `""` |
| `mongodb.host` | MongoDB hostname (`'mongodb:27017'`) or mongodb replicas (`'mongodb-0:27017,mongodb-1:27017'`). | `""` |
| `mongodb.adminDatabase` | MongoDB admin database, this is named `admin` by default. | `""` |
| `mongodb.username` | MongoDB user account, we are using in the hub installation `'root'`. | `""` |
| `mongodb.password` | MongoDB user password, by default `'yourmongodbpassword'` | `""` |
| `mqtt.host` | MQTT (Vernemq) hostname. | `""` |
| `mqtt.port` | MQTT (Vernemq) port for WSS (secure sockets), by default `'8443'`. | `""` |
| `mqtt.protocol` | MQTT (Vernemq) protocol, by default `'wss'`. | `""` |
| `mqtt.username` | MQTT (Vernemq) username, by default `'yourusername'`. | `""` |
| `mqtt.password` | MQTT (Vernemq) password, by default `'yourpassword'`. | `""` |
| `queueProvider` | The queue we are using for the [Kerberos Hub pipeline](https://doc.kerberos.io/hub/pipeline/), can be 'SQS' or 'KAFKA'. | `""` |
| `queueName` | The event queue which is propagating messages in the [Kerberos Hub pipeline](https://doc.kerberos.io/hub/pipeline/). | `""` |
| `kafka.broker` | Kafka brokers, by default `'kafka1.yourdomain.com:9094,kafka2.yourdomain.com:9094'` | `""` |
| `kafka.username` | Kafka username, by default `'yourusername'` | `""` |
| `kafka.password` | Kafka password, by default `'yourpassword'` | `""` |
| `kafka.mechanism` | Kafka mechanism, by default `'PLAIN'` | `""` |
| `kafka.security` | Kafka security, by default `'SASL_PLAINTEXT'` | `""` |
| `turn.host` | TURN/STUN hostname, by default `'turn:turn.yourdomain.com:8443'` | `""` |
| `turn.username` | TURN/STUN username, by default `'username1'` | `""` |
| `turn.password` | TURN/STUN password, by default `'password1'` | `""` |
| `kerberosvault.uri` | The default Kerberos Vault uri (you can add multiple within the app), by default `'https://api.storage.yourdomain.com'` | `""` |
| `kerberosvault.accesskey` | The default Kerberos Vault access key, by default `'xxx'` | `""` |
| `kerberosvault.secretkey` | The default Kerberos Vault secret key, by default `'xxx'` | `""` |
| `kerberosvault.provider` | The default Kerberos Vault provider`'a-provider'` | `""` |
| `kerberosvault.archive.accesskey` | When a task is created, the relevant recording is moved to another provider, using this access key `'xxx'` | `""` |
| `kerberosvault.archive.secretkey` | When a task is created, the relevant recording is moved to another provider, using this secret key`'xxx'` | `""` |
| `kerberosvault.archive.provider` | When a task is created, the relevant recording is moved to this provider `'an-archive-provider'` | `""` |
| `email.provider` | The email service provider for sending out messages over email , use `'mailgun'` or `'smtp'`. | `""` |
| `email.from` | The email address that is sending messages in name of, by default `'support@yourdomain.com'`. | `""` |
| `email.displayName` | The display name that is sending messages in name of, by default `'yourdomain.com'` | `""` |
| `email.mailgun.domain` | While using `mailgun` as email service provider, you will need to provide your Mailgun domain. | `""` |
| `email.mailgun.apiKey` | The Mailgun API key linked to your Mailgun domain. | `""` |
| `email.smtp.server` | While using `smtp` as email service provider, use the SMTP server. | `""` |
| `email.smtp.port` | SMTP port specified by your SMTP server, by default `'456'`. | `""` |
| `email.smtp.username` | SMTP username. | `""` |
| `email.smtp.password` | SMTP password. | `""` |
| `email.templates.detection` | We use templates to send notifications, this allow you to bring your own `Mailgun` templates, by default `'detection'`. | `""` |
| `email.templates.disabled` | The template which is send when an account is disabled due to reaching its upload limit, by default `'disabled'`. | `""` |
| `email.templates.highupload` | The template which is send when an account is reaching a specific upload threshold, by default `'threshold'`. | `""` |
| `email.templates.device` | The template which is send when a camera goes online or offline, by default `'device'`. | `""` |
| `email.templates.welcome` | The template which is send when a new user registered on the platform (`IS_PRIVATE='false'`), by default `'disabled'`. | `""` |
| `email.templates.welcomeTitle` | The welcome title use in the subject of the email. | `""` |
| `email.templates.activate` | The template which is send when a user is required to activate his account , by default `'activate'`. | `""` |
| `email.templates.activateTitle` | The activation title use in the subject of the email. | `""` |
| `email.templates.forgot` | The template which is send when an account is requesting a forgot password, by default `'forgot'`. | `""` |
| `email.templates.forgotTitle` | The forgot title use in the subject of the email. | `""` |
| `kerberoshub.api.repository` | The Docker registry where the Kerberos Hub API container is hosted. | `""` |
| `kerberoshub.api.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberoshub.api.tag` | The Docker image tag/version. | `""` |
| `kerberoshub.api.replicas` | The number of pods/replicas running for the Kerberos Hub API deployment. | `""` |
| `kerberoshub.api.jwtSecret` | A secret that is for generating JWT tokens. | `""` |
| `kerberoshub.api.schema` | The protocol to serve the Kerberos Hub API, `'http'` or `'https'`. | `""` |
| `kerberoshub.api.url` | The Kerberos Hub API ingress to access the API. | `""` |
| `kerberoshub.api.tls` | Bring your own TLS certificates for Kerberos Hub API ingress. | `""` |
| `kerberoshub.api.language` | The language of Kerberos Hub API responses, error messages will be communicated in the specified language. | `""` |
| `kerberoshub.api.fallbackLanguage` | The fallback language, if a specific translation is not available. | `""` |
| `kerberoshub.api.slack.enabled` | Slack integration for sending events and notifications coming from the Kerberos Hub API, `'true'` or `'false'`. | `""` |
| `kerberoshub.api.slack.hook` | Slack integration hook url. | `""` |
| `kerberoshub.api.slack.username` | Slack integration username. | `""` |
| `kerberoshub.api.elasticsearch.enabled` | Elasticsearch for storing events coming from the Kerberos Hub API, `'true'` or `'false'` | `""` |
| `kerberoshub.api.elasticsearch.protocol` | Elasticsearch protocol, `'http'` or `'https'`. | `""` |
| `kerberoshub.api.elasticsearch.host` | Elasticsearch host. | `""` |
| `kerberoshub.api.elasticsearch.port` | Elasticsearch port. | `""` |
| `kerberoshub.api.elasticsearch.index` | Elasticsearch index which is used to store the events. | `""` |
| `kerberoshub.api.elasticsearch.username` | Elasticsearch username. | `""` |
| `kerberoshub.api.elasticsearch.password` | Elasticsearch password. | `""` |
| `kerberoshub.api.sso.issuer` | Kerberos Hub can be linked to OpenID Connect for SSO. Specify the OIC issuer. | `""` |
| `kerberoshub.api.sso.clientId` | The OIC client id. | `""` |
| `kerberoshub.api.sso.clientSecret` | The OIC client secret. | `""` |
| `kerberoshub.api.sso.redirectUrl` | The OIC redirectUrl, once the authentication is validated. | `""` |
| `kerberoshub.frontend.repository` | The Docker registry where the Kerberos Hub frontend is hosted. | `""` |
| `kerberoshub.frontend.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberoshub.frontend.tag` | The Docker image tag/version. | `""` |
| `kerberoshub.frontend.replicas` | The number of pods/replicas running for the Kerberos Hub frontend deployment. | `""` |
| `kerberoshub.frontend.schema` | The protocol to serve the Kerberos Hub frontend, `'http'` or `'https'`. | `""` |
| `kerberoshub.frontend.url` | The Kerberos Hub frontend ingress to access the frontend. | `""` |
| `kerberoshub.frontend.tls` | Bring your own TLS certificates for Kerberos Hub frontend ingress. | `""` |
| `kerberoshub.frontend.ssoDomain` | The domain that's being used to activate SSO from the login page. | `""` |
| `kerberoshub.frontend.logo` | The logo being used in the Kerberos Hub frontend, set to 'custom' if you want to mount your own stylesheet. | `""` |
| `kerberoshub.frontend.mixpanel.apikey` | No longer used. | `""` |
| `kerberoshub.frontend.sentry.url` | No longer used. | `""` |
| `kerberoshub.frontend.posthog.key` | The API key retrieved from the Posthog instance. | `""` |
| `kerberoshub.frontend.posthog.url` | Posthog's endpoint (http/https). | `""` |
| `kerberoshub.frontend.stripe.apikey` | If using the public version, `stripe` can be used for automated billing and subscriptions. | `""` |
| `kerberoshub.frontend.googlemaps.apikey` | Within Kerberos Hub frontend a couple of maps are being used, the google maps is leveraged for that. | `""` |
| `kerberoshub.frontend.zendesk.url` | No longer used. | `""` |
| `kerberoshub.frontend.zendesk.url` | No longer used. | `""` |
| `kerberoshub.cleanup.repository` | The Docker container that is responsible for cleaning up the Kerberos Hub API content and related MongoDB collections. | `""` |
| `kerberoshub.cleanup.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberoshub.cleanup.tag` | The Docker image tag/version. | `""` |
| `kerberoshub.forwarder.repository` | The Docker container which orchestrates forwarding coming from different Kerberos Vaults. | `""` |
| `kerberoshub.forwarder.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberoshub.forwarder.tag` | The Docker image tag/version. | `""` |
| `kerberoshub.monitordevice.repository` | The monitoring microservice, following up the status of your cameras and Kerberos Agents. | `""` |
| `kerberoshub.monitordevice.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberoshub.monitordevice.tag` | The Docker image tag/version. | `""` |
| `kerberospipeline.event.repository` | The [event orchestration](https://doc.kerberos.io/hub/pipeline/#orchestrator) microservice. | `""` |
| `kerberospipeline.event.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberospipeline.event.tag` | The Docker image tag/version. | `""` |
| `kerberospipeline.monitor.repository` | The [monitoring microservice](https://doc.kerberos.io/hub/pipeline/#monitoring), calculating metrics of incoming messages.| `""` |
| `kerberospipeline.monitor.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberospipeline.monitor.tag` | The Docker image tag/version. | `""` |
| `kerberospipeline.sequence.repository` | The [sequencer microservice](https://doc.kerberos.io/hub/pipeline/#sequencer), grouping recordings in chunks/groups. | `""` |
| `kerberospipeline.sequence.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberospipeline.sequence.tag` | The Docker image tag/version. | `""` |
| `kerberospipeline.throttler.repository` | The [throttler microservice](https://doc.kerberos.io/hub/pipeline/#throttler), throttling events. | `""` |
| `kerberospipeline.throttler.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberospipeline.throttler.tag` | The Docker image tag/version. | `""` |
| `kerberospipeline.notify.repository` | The [notification microservice](https://doc.kerberos.io/hub/pipeline/#notification), sending notifications on events. | `""` |
| `kerberospipeline.notify.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberospipeline.notify.tag` | The Docker image tag/version. | `""` |
| `kerberospipeline.notifyTest.repository` | The notification service for testing, the different channels. | `""` |
| `kerberospipeline.notifyTest.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberospipeline.notifyTest.tag` | The Docker image tag/version. | `""` |
| `kerberospipeline.analysis.repository` | The [analysis microservices](https://doc.kerberos.io/hub/pipeline/#analyser) which executed specific analysis in parallel.| `""` |
| `kerberospipeline.analysis.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberospipeline.analysis.tag` | The Docker image tag/version. | `""` |
| `kerberospipeline.dominantColor.repository` | The dominant color microservices is computing a top 3 color histogram. | `""` |
| `kerberospipeline.dominantColor.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberospipeline.dominantColor.tag` | The Docker image tag/version. | `""` |
| `kerberospipeline.thumbnail.repository` | The thumbnail microservices generated a thumbnail for a recordings. | `""` |
| `kerberospipeline.thumbnail.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberospipeline.thumbnail.tag` | The Docker image tag/version. | `""` |
| `kerberospipeline.counting.repository` | The counting microservices computes objects passing different line segments. | `""` |
| `kerberospipeline.counting.pullPolicy` | The Docker registry pull policy. | `""` |
| `kerberospipeline.counting.tag` | The Docker image tag/version. | `""` |
### Post installation
After the installation you'll need to initialise the Mongodb with some objects. Have a look at the `mongodb/` folder, you'll find three files available:
@@ -429,7 +319,7 @@ After the installation you'll need to initialise the Mongodb with some objects.
Open your favourite Mongodb client (or cli) and connect to your Mongodb database as previously created (or have already installed). Import the previous mentioned `.nosql` files into a new database called `Kerberos`.
![Open the Mongodb client](assets/images/mongodb-client.png)
<img width="1037" alt="Screenshot 2021-05-24 at 16 01 24" src="https://user-images.githubusercontent.com/1546779/119358865-4fd84300-bca9-11eb-8ea1-82998f88d3d8.png">
Once done you should be able to sign in with following credentials:
@@ -440,47 +330,25 @@ Please note that the default username and password can be changed [by the changi
### Subscription settings
Once the collections are loaded in the Mongodb instance, you should see the `user`, `subscriptons` and `settings` collections. Those three collections will allow a user to login into the Kerberos Hub web interface, using the previously mentioned username and password.
Once the collections are loaded in the Mongodb instance, you should see the `user`, `subscriptons` and `settings` collections. Those three collections will allow a user to login into the Kerberos Hub web interface, using the previously mentioned username and password.
Next to that, in the `subscriptions` collection you will find a subscription for that specific user. The subscription specifies which kind of access the user has in terms of features and upload quota.
Next to that, in the `subscriptions` collection you will find a subscription for that specific user. The subscription specifies which kind of access the user has in terms of features and upload quota.
Building further on those `subscriptions`, you will find a `settings` collection that contains the quota for each `subscription`.
### Settings collection
As mentioned during the Post installation step, you'll import some `.nosql` files. The `settings.nosql` file includes all the relevant configurations and parameters that allow you to tweak the Kerberos Hub deployment (dynamically).
#### Classifications
Within the Kerberos Hub front-end you'll see the option to filter through classifications. This filtered is stored in the `settings` collection. By changing the entries of the `classifications` object, you can add, edit or remove items from the filters.
### Indexing
Following indexes should be executed on the MongoDB database (Kerberos) to improve future performance. Within Kerberos Hub several queries are executed, following indexes will improve the loading times. If not applied you might experience application timeouts or reduced performance when storing lots of data.
Following indexes should be executed on the MongoDB database (Kerberos) to improve future performance.
#### Sequences collection
db.getCollection('sequences').createIndex({start:1})
db.getCollection('sequences').createIndex({user_id:1, "images.key":1})
db.getCollection('sequences').createIndex({user_id:1, end:1, start: -1, devices: 1})
db.getCollection('sequences').createIndex({user_id:1, end:1, start: 1, "images.instanceName": 1})
db.getCollection('sequences').createIndex({user_id:1, "images.key":1})
#### Notifications collection
db.getCollection("notifications").createIndex({"user":1})
db.getCollection("notifications").createIndex({userid:1})
db.getCollection("notifications").createIndex({userid:1, timestamp:1})
db.getCollection("notifications").createIndex({alert_master_user:1, media_key: 1})
#### Analysis collection
db.getCollection("analysis").createIndex({start:1})
db.getCollection("analysis").createIndex({userid:1, key:1})
db.getCollection("analysis").createIndex({userid:1, start:1})
#### Heatmap collection
db.getCollection("heatmap").createIndex({timestamp:1})
db.getCollection("heatmap").createIndex({user_id:1, timestamp: 1})
db.getCollection("analysis").createIndex({"key":1})
# Upgrade
@@ -492,15 +360,16 @@ The first argument is the helm project name, you could find this out by running
# Building
To build a new release the following steps needs to be executed. Please note that this repository has a Github action which automatically releases new a Helm chart version.
To build a new release the following steps needs to be executed.
cd hub
helm lint
helm lint
cd ..
helm package hub
mv hub-*.tgz hub
helm repo index hub --url https://charts.kerberos.io/hub
helm repo index hub --url https://kerberos-io.github.io/hub
cd hub
cat index.yaml
Binary file not shown.

After

Width:  |  Height:  |  Size: 275 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 343 KiB

@@ -0,0 +1,18 @@
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
# The ACME server URL
server: https://acme-v02.api.letsencrypt.org/directory
# Email address used for ACME registration
email: cedric@verstraeten.io
# Name of a secret used to store the ACME account private key
privateKeySecretRef:
name: letsencrypt-prod
# Enable the HTTP-01 challenge provider
solvers:
- http01:
ingress:
class: nginx
File diff suppressed because it is too large Load Diff
@@ -1,409 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"
/>
<meta name="description" content="Kerberos.io Mailing">
<style type="text/css">
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff2"),
url("https://kerberos.io/dist/fonts/Inter-Regular.woff?v=/dist/fonts/Inter-Regular.woff2?v=3.183.18") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 500;
font-display: swap;
src: url("https://kerberos.io/dist/fonts/Inter-Medium.woff2?v=3.18") format("woff2"),
url("https://kerberos.io/dist/fonts/Inter-Medium.woff?v=3.18") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff2?v=3.18") format("woff2"),
url("https://kerberos.io/dist/fonts/Inter-SemiBold.woff?v=3.18") format("woff");
}
@font-face {
font-family: 'Inter var';
font-weight: 100 900;
font-display: swap;
font-style: normal;
font-named-instance: 'Regular';
src: url("https://kerberos.io/dist/fonts/Inter-roman.var.woff2?v=3.18") format("woff2");
}
body{
background: #E5E5E5;
margin-top:0;
margin-bottom: 0;
margin-right: 0;
margin-left: 0;
padding-top: 0;
padding-left: 0;
padding-right: 0;
padding-bottom: 0;
font-family: 'Inter';
}
a, a:hover, a:active {
color: #262424;
text-decoration: none;
}
.corner-td{
width: 60px;
}
table {border-collapse:separate;max-width: 850px; margin: 0 auto; width: 100%;}
.ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td {line-height: 100%;}
.ExternalClass {width: 100%;}
@media screen and (max-width:500px){
.tab-td{
padding-left: 10px!important;
}
.tab-td a h4{
font-size: 14px!important;
}
.corner-td{
width: 20px!important;
}
.company-name-td h3{
font-size: 16px!important;
}
table.header-table{
padding-top: 8px!important;
padding-right: 0px!important;
padding-bottom: 24px!important;
padding-left: 0px!important;
}
.colored-card-td h4{
font-size: 14px!important;
}
.colored-card-td h2{
font-size: 20px!important;
}
.colored-card-td a p{
font-size: 12px!important;
width: 143px!important;
}
.colored-card-td{
padding-top: 24px!important;
padding-right: 24px!important;
padding-bottom: 24px!important;
padding-left: 24px!important;
}
.colorless-card-td{
padding-top: 24px!important;
padding-right: 24px!important;
padding-bottom: 24px!important;
padding-left: 24px!important;
}
.colorless-card-td h3{
font-size: 18px!important;
}
.colorless-card-td p{
font-size: 14px!important;
}
.colorless-card-table{
margin-left: 0px!important;
margin-right: 0px!important;
margin-top: 24px!important;
margin-bottom: 24px!important;
}
.footer-td{
display: table-row!important;
}
}
@media screen and (max-width:600px) {
.footer-td{
display: table-row!important;
}
}
@media screen and (max-width:650px) {
.footer-table{
margin-left: 0px!important;
margin-right: 0px!important;
margin-top: 0px!important;
margin-bottom: 36px!important;
}
}
</style>
</head>
<body height="100%" width="100%">
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
<tr>
<td bgcolor="E5E5E5">
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="36" class="header-table" style="padding-top: 36px ;padding-right: 0;padding-bottom: 36px;padding-left: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
<tbody>
<tr>
<td class="corner-td" align="left"></td>
<td width="48" height="36" align="left"><img alt="Kerberos.io" width="36" height="36" src="https://kerberos.io/images/email/kerberos.png"/></td>
<td height="36" align="left" class="company-name-td">
<h3 width="36" height="36" style=" font-family: Inter;
font-size: 20px;
font-style: normal;
font-weight: 600;
line-height: 24px;
mso-line-height-rule:exactly;
letter-spacing: 0em;
text-align: left;
color: #262424;">Kerberos.io</h3>
</td>
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right">
<a style="text-decoration: none;color: none;" href={{tab1_href}}>
<h4 style="font-family: Inter;
font-size: 16px;
font-style: normal;
font-weight: 500;
line-height: 36px;
mso-line-height-rule:exactly;
letter-spacing: 0em;
text-align: right;
color: #6D6666;">{{tab1_title}}</h4>
</a>
</td>
<td height="36" width="36" style="padding-left: 36px;" class="tab-td" align="right" >
<a style="text-decoration: none;color: none;" href={{tab2_href}}>
<h4 style="font-family: Inter;
font-size: 16px;
font-style: normal;
font-weight: 500;
line-height: 36px;
mso-line-height-rule:exactly;
letter-spacing: 0em;
text-align: right;
color: #6D6666;">{{tab2_title}}</h4>
</a>
</td>
<td class="corner-td" align="right"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
<tr>
<td bgcolor="E5E5E5">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
<tbody>
<tr>
<td class="corner-td" align="left"></td>
<td class="colored-card-td" bgcolor="#57356B" style="padding-left: 48px;padding-right: 48px;padding-top: 48px;padding-bottom: 48px;border-radius: 4px;background-color:#57356B;">
<h4 style="font-family: Inter;
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: 24px;
mso-line-height-rule:exactly;
letter-spacing: 0em;
text-align: left;
color:#b09fb9;">Hey, {{assignee}}</h4>
<h2 style=" font-family: Inter;
font-size: 24px;
font-style: normal;
font-weight: 600;
line-height: 36px;
mso-line-height-rule:exactly;
letter-spacing: 0em;
text-align: left;
color:#FFFFFF;
padding-top: 12px;
padding-bottom: 24px;
padding-left: 0;
padding-right: 0;">You have been assigned to a task</h2>
<p style="font-family: Inter;
font-size: 18px;
font-style: normal;
font-weight: 600;
line-height: 24px;
mso-line-height-rule:exactly;
letter-spacing: 0em;
text-align: left;
color:#FFFFFF;
padding-top: 0;
padding-bottom: 0;
padding-left: 0;
padding-right: 0;
">Task Details:</p>
<ul style="font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 600;
line-height: 24px;
mso-line-height-rule:exactly;
letter-spacing: 0em;
text-align: left;
color:#FFFFFF;
padding-top: 0;
padding-bottom: 12px;
padding-left: 0;
padding-right: 0;
margin-left: 12px">
<li>Task Name: {{task_name}}</li>
<li>Assigned By: {{user}}</li>
</ul>
<a style="text-decoration: none;color: none;" href="{{link}}">
<p style="font-family: Inter;
font-size: 14px;
font-style: normal;
line-height: 20px;
mso-line-height-rule:exactly;
letter-spacing: 0em;
text-align: left;
color:#FFFFFF;
background-color: #84559F;
padding-top: 6px;
padding-bottom: 6px;
padding-right: 16px;
padding-left: 16px;
width: 166px;
border-radius: 4px;
cursor: pointer;">View task on kerberos hub</p>
</a>
</td>
<td class="corner-td" align="right"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="E5E5E5" style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
<tr>
<td bgcolor="E5E5E5">
<table border="0" cellpadding="0" cellspacing="0" width="100%" class="footer-table" style="margin-top: 0;border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;" >
<tbody>
<tr>
<td class="corner-td" align="left"></td>
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
<![endif]-->
<td height="146" width="190" class="footer-td" style="margin-bottom: 12px;" valign="top" align="left">
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
<tbody>
<tr>
<td>
<h4 style=" font-family: Inter;
font-size: 16px;
font-style: normal;
font-weight: 600;
line-height: 36px;
mso-line-height-rule:exactly;
letter-spacing: 0em;
text-align: left;
color:#6D6666;">Get in touch</h4>
<a style="text-decoration: none;color: none;" href="mailto:support@verstraeten.io">
<p style=" font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 16px;
mso-line-height-rule:exactly;
letter-spacing: 0em;
text-align: left;
color: #A69D9D;">support@kerberos.io</p>
</a>
<p style=" font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 16px;
mso-line-height-rule:exactly;
letter-spacing: 0em;
text-align: left;
color: #A69D9D;">9000 Ghent, BE</p>
<a style="text-decoration: none;color: none;" href="https://kerberos.io/">
<p style=" font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 24px;
mso-line-height-rule:exactly;
letter-spacing: 0em;
text-align: left;
color: #A69D9D;">https://kerberos.io</p>
</a>
</td>
</tr>
</tbody>
</table>
</td>
<!--[if mso | IE]>
<table role="presentation" border="0" cellpadding="0" cellspacing="0"><tr><td style="vertical-align:top;display:table-row !important">
<![endif]-->
<td class="footer-td" style="border-radius: 4px;padding-left: 0;padding-right: 0;padding-top: 0;padding-bottom: 0; margin-bottom: 12px;" valign="top" align="left">
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
<tbody>
<tr>
<td>
<h4 style=" font-family: Inter;
font-size: 16px;
font-style: normal;
font-weight: 600;
line-height: 36px;
mso-line-height-rule:exactly;
letter-spacing: 0em;
text-align: left;
color:#6D6666;">About Kerberos</h4>
<p style=" font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 24px;
mso-line-height-rule:exactly;
letter-spacing: 0em;
text-align: left;
color: #A69D9D;">Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.</p>
<p style="margin-top: 12px;">
<a href="https://twitter.com/kerberosio" style="text-decoration: none;color: none;">
<img width="24" height="24" alt="Twitter" src="https://kerberos.io/images/email/twitter.png"/>
</a>
<a href="https://reddit.com/r/kerberos_io" style="text-decoration: none;color: none;">
<img g width="24" height="24" alt="Reddit" src="https://kerberos.io/images/email/reddit.png"/>
</a>
<a href="https://www.youtube.com/channel/UCnd9q7iRNNw4W95eQwQuECA" style="text-decoration: none;color: none;">
<img g width="24" height="24" alt="Youtube" src="https://kerberos.io/images/email/youtube.png"/>
</a>
<a href="https://github.com/kerberos-io" style="text-decoration: none;color: none;">
<img g width="24" height="24" alt="Github" src="https://kerberos.io/images/email/github.png"/>
</a>
</p>
</td>
</tr>
</tbody>
</table>
</td>
<td class="corner-td" align="right"></td>
</tr>
</tbody>
</table>
<table style="border-collaps:collaps; mso-table-lspace:0pt; mso-table-rspace:0pt;">
<tbody>
<tr style="height: 50px">
<td></td>
</tr>
</tbody>
</table>
</td>
</tr>
</table>
</body>
</html>
@@ -1,19 +0,0 @@
Kerberos.io
------------
Hey, {{assignee}}
You have been assigned to a new task on Kerberos Hub.
Task Details:
- Task Name: {{task_name}}
- Assigned By: {{user}}
- Link: {{link}}
Get in touch
------------
support@kerberos.io
9000 Ghent, BE
https://kerberos.io
About Kerberos
------------
Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.
@@ -1,31 +1,3 @@
package templates
var TEMPLATE_DETECTION_TEXT = `
Kerberos.io
------------
Hey, {{user}}
Welcome to Kerberos Hub
Activate your account ->
{{link}}
Kerberos Hub in a nutshell
With Kerberos Hub you can access your surveillance media remotely. By subscribing to a plan, you get access to a set of features, from advanced filtering, notifications to machine learning.
However before you get started this amazing applications, please activate your account.
Get in touch
------------
support@kerberos.io
9000 Ghent, BE
https://kerberos.io
About Kerberos
------------
Welcome to the revolutionary video analytics and video management platform. Open, modular, and extensible for everyone, anywhere.
`
var TEMPLATE_DETECTION = `
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
@@ -303,25 +275,10 @@ var TEMPLATE_DETECTION = `
letter-spacing: 0em;
text-align: left;
color: #6D6666;
margin-top: 12px;">An alert was send to your e-mail as one of the conditions was triggered for your device <b>{{devicename}}</b>. Please watch the recording, by clicking on below button.
margin-top: 12px;">An alert was send to your e-mail as one of the conditions was triggered. Please watch the recording, by clicking on below button.
If you believe this event is a false positive, go to your Kerberos Hub account and change the alert settings accordingly.</p>
<p style=" font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 24px;
mso-line-height-rule:exactly;
letter-spacing: 0em;
text-align: left;
color: #6D6666;
margin-top: 12px;">Following event was detected at {{datetime}}.</p>
<a style="text-decoration: none;color: none;" href="{{link}}">
{{thumbnail}}
</a>
<a style="text-decoration: none;color: none;" href="{{link}}">
<p style="font-family: Inter;
font-size: 14px;
@@ -472,4 +429,4 @@ If you believe this event is a false positive, go to your Kerberos Hub account a
</tr>
</table>
</body>
</html>`
</html>
@@ -1,17 +0,0 @@
apiVersion: v1
kind: Secret
metadata:
name: hub-api-server-tls
namespace: kerberos-hub
type: kubernetes.io/tls
stringData:
# Paste your PEM certificate chain here (e.g., fullchain.pem)
tls.crt: |
-----BEGIN CERTIFICATE-----
REPLACE_WITH_YOUR_CERTIFICATE
-----END CERTIFICATE-----
# Paste your PEM private key here (e.g., privkey.pem)
tls.key: |
-----BEGIN PRIVATE KEY-----
REPLACE_WITH_YOUR_PRIVATE_KEY
-----END PRIVATE KEY-----

Before

Width:  |  Height:  |  Size: 543 KiB

After

Width:  |  Height:  |  Size: 543 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 258 KiB

File diff suppressed because it is too large Load Diff
+7
View File
@@ -0,0 +1,7 @@
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: fast
provisioner: kubernetes.io/gce-pd
parameters:
type: pd-ssd
-18
View File
@@ -65,22 +65,4 @@ db.settings.insertMany([
"dayLimit" : NumberInt(30)
}
}
},
{
"_id" : ObjectId("63f346ec64011a574161cf99"),
"key" : "classifications",
"map" : {
"objects" : [
{
"text" : "Car",
"value" : "car",
"icon" : "car"
},
{
"text" : "Person",
"value" : "pedestrian",
"icon" : "pedestrian"
}
]
}
}])
+932
View File
@@ -0,0 +1,932 @@
## Global Docker image parameters
## Please, note that this will override the image parameters, including dependencies, configured to use the global value
## Current available global Docker image parameters: imageRegistry and imagePullSecrets
##
# global:
# imageRegistry: myRegistryName
# imagePullSecrets:
# - myRegistryKeySecretName
# storageClass: myStorageClass
## Override the namespace for resource deployed by the chart, but can itself be overridden by the local namespaceOverride
# namespaceOverride: my-global-namespace
image:
## Bitnami MongoDB registry
##
registry: docker.io
## Bitnami MongoDB image name
##
repository: bitnami/mongodb
## Bitnami MongoDB image tag
## ref: https://hub.docker.com/r/bitnami/mongodb/tags/
##
tag: 4.4.2-debian-10-r0
## Specify a imagePullPolicy
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
##
pullPolicy: IfNotPresent
## Optionally specify an array of imagePullSecrets.
## Secrets must be manually created in the namespace.
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
##
# pullSecrets:
# - myRegistryKeySecretName
## Set to true if you would like to see extra information on logs
## It turns on Bitnami debugging in minideb-extras-base
## ref: https://github.com/bitnami/minideb-extras-base
debug: false
## String to partially override mongodb.fullname template (will maintain the release name)
##
# nameOverride:
## String to fully override mongodb.fullname template
##
# fullnameOverride:
## Kubernetes Cluster Domain
##
clusterDomain: cluster.local
## Use an alternate scheduler, e.g. "stork".
## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
##
# schedulerName:
## MongoDB architecture. Allowed values: standalone or replicaset
##
architecture: standalone
## Use StatefulSet instead of Deployment when deploying standalone
##
useStatefulSet: false
## MongoDB Authentication parameters
##
auth:
## Enable authentication
## ref: https://docs.mongodb.com/manual/tutorial/enable-authentication/
##
enabled: true
## MongoDB root password
## ref: https://github.com/bitnami/bitnami-docker-mongodb/blob/master/README.md#setting-the-root-password-on-first-run
##
rootPassword: "yourmongodbpassword"
## MongoDB custom user and database
## ref: https://github.com/bitnami/bitnami-docker-mongodb/blob/master/README.md#creating-a-user-and-database-on-first-run
##
# username: username
# password: password
# database: database
## Key used for replica set authentication
## Ignored when mongodb.architecture=standalone
##
replicaSetKey: ""
## Existing secret with MongoDB credentials
## NOTE: When it's set the previous parameters are ignored.
##
# existingSecret: name-of-existing-secret
tls:
## Enable or disable MongoDB TLS Support
enabled: false
##
## Bitnami Nginx image
##
image:
registry: docker.io
repository: bitnami/cert-manager
tag: 1.19.4-debian-10-r19
pullPolicy: IfNotPresent
## Name of the replica set
## Ignored when mongodb.architecture=standalone
##
replicaSetName: rs0
## Enable DNS hostnames in the replica set config
## Ignored when mongodb.architecture=standalone
## Ignored when externalAccess.enabled=true
##
replicaSetHostnames: true
## Whether enable/disable IPv6 on MongoDB
## ref: https://github.com/bitnami/bitnami-docker-mongodb/blob/master/README.md#enabling/disabling-ipv6
##
enableIPv6: false
## Whether enable/disable DirectoryPerDB on MongoDB
## ref: https://github.com/bitnami/bitnami-docker-mongodb/blob/master/README.md#enabling/disabling-directoryperdb
##
directoryPerDB: false
## MongoDB System Log configuration
## ref: https://github.com/bitnami/bitnami-docker-mongodb#configuring-system-log-verbosity-level
##
systemLogVerbosity: 0
disableSystemLog: false
## MongoDB configuration file for Primary and Secondary nodes. For documentation of all options, see:
## http://docs.mongodb.org/manual/reference/configuration-options/
## Example:
## configuration: |-
## # where and how to store data.
## storage:
## dbPath: /bitnami/mongodb/data/db
## journal:
## enabled: true
## directoryPerDB: false
## # where to write logging data
## systemLog:
## destination: file
## quiet: false
## logAppend: true
## logRotate: reopen
## path: /opt/bitnami/mongodb/logs/mongodb.log
## verbosity: 0
## # network interfaces
## net:
## port: 27017
## unixDomainSocket:
## enabled: true
## pathPrefix: /opt/bitnami/mongodb/tmp
## ipv6: false
## bindIpAll: true
## # replica set options
## #replication:
## #replSetName: replicaset
## #enableMajorityReadConcern: true
## # process management options
## processManagement:
## fork: false
## pidFilePath: /opt/bitnami/mongodb/tmp/mongodb.pid
## # set parameter options
## setParameter:
## enableLocalhostAuthBypass: true
## # security options
## security:
## authorization: disabled
## #keyFile: /opt/bitnami/mongodb/conf/keyfile
##
configuration: ""
## ConfigMap with MongoDB configuration for Primary and Secondary nodes
## NOTE: When it's set the arbiter.configuration parameter is ignored
##
# existingConfigmap:
## initdb scripts
## Specify dictionary of scripts to be run at first boot
## Example:
## initdbScripts:
## my_init_script.sh: |
## #!/bin/bash
## echo "Do something."
initdbScripts: {}
## Existing ConfigMap with custom init scripts
##
# initdbScriptsConfigMap:
## Command and args for running the container (set to default if not set). Use array form
##
# command:
# args:
## Additional command line flags
## Example:
## extraFlags:
## - "--wiredTigerCacheSizeGB=2"
##
extraFlags: []
## Additional environment variables to set
## E.g:
## extraEnvVars:
## - name: FOO
## value: BAR
##
extraEnvVars: []
## ConfigMap with extra environment variables
##
# extraEnvVarsCM:
## Secret with extra environment variables
##
# extraEnvVarsSecret:
## Annotations to be added to the MongoDB statefulset. Evaluated as a template.
##
annotations: {}
## Additional labels to be added to the MongoDB statefulset. Evaluated as a template.
##
labels: {}
## Number of MongoDB replicas to deploy.
## Ignored when mongodb.architecture=standalone
##
replicaCount: 2
## StrategyType for MongoDB statefulset
## It can be set to RollingUpdate or Recreate by default.
##
strategyType: RollingUpdate
## MongoDB should be initialized one by one when building the replicaset for the first time.
##
podManagementPolicy: OrderedReady
## Affinity for pod assignment. Evaluated as a template.
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
##
affinity: {}
## Node labels for pod assignment. Evaluated as a template.
## ref: https://kubernetes.io/docs/user-guide/node-selection/
##
nodeSelector: {}
## Tolerations for pod assignment. Evaluated as a template.
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
##
tolerations: []
## Lables for MongoDB pods. Evaluated as a template.
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
##
podLabels: {}
## Annotations for MongoDB pods. Evaluated as a template.
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
##
podAnnotations: {}
## MongoDB pods' priority.
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
##
# priorityClassName: ""
## MongoDB pods' Security Context.
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
##
podSecurityContext:
enabled: true
fsGroup: 1001
## sysctl settings
## Example:
## sysctls:
## - name: net.core.somaxconn
## value: "10000"
##
sysctls: []
## MongoDB containers' Security Context (main and metrics container).
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
##
containerSecurityContext:
enabled: true
runAsUser: 1001
runAsNonRoot: true
## MongoDB containers' resource requests and limits.
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources:
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
limits:
cpu: 2048m
memory: 4096Mi
requests:
cpu: 512m
memory: 1024Mi
## MongoDB pods' liveness and readiness probes. Evaluated as a template.
## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
##
livenessProbe:
enabled: true
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 6
successThreshold: 1
readinessProbe:
enabled: true
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 6
successThreshold: 1
## Custom Liveness probes for MongoDB pods
##
customLivenessProbe: {}
## Custom Rediness probes MongoDB pods
##
customReadinessProbe: {}
## Add init containers to the MongoDB pods.
## Example:
## initContainers:
## - name: your-image-name
## image: your-image
## imagePullPolicy: Always
## ports:
## - name: portname
## containerPort: 1234
##
initContainers: {}
## Add sidecars to the MongoDB pods.
## Example:
## sidecars:
## - name: your-image-name
## image: your-image
## imagePullPolicy: Always
## ports:
## - name: portname
## containerPort: 1234
##
sidecars: {}
## extraVolumes and extraVolumeMounts allows you to mount other volumes on MongoDB pods
## Examples:
## extraVolumeMounts:
## - name: extras
## mountPath: /usr/share/extras
## readOnly: true
## extraVolumes:
## - name: extras
## emptyDir: {}
extraVolumeMounts: []
extraVolumes: []
## MongoDB Pod Disruption Budget configuration
## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
##
pdb:
create: false
## Min number of pods that must still be available after the eviction
##
minAvailable: 1
## Max number of pods that can be unavailable after the eviction
##
# maxUnavailable: 1
## Enable persistence using Persistent Volume Claims
## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
##
persistence:
enabled: true
## A manually managed Persistent Volume and Claim
## Requires persistence.enabled: true
## If defined, PVC must be created manually before volume will be bound
## Ignored when mongodb.architecture=replicaset
##
# existingClaim:
## PV Storage Class
## If defined, storageClassName: <storageClass>
## If set to "-", storageClassName: "", which disables dynamic provisioning
## If undefined (the default) or set to null, no storageClassName spec is
## set, choosing the default provisioner.
##
# storageClass: "-"
## PV Access Mode
##
accessModes:
- ReadWriteOnce
## PVC size
##
size: 8Gi
## PVC annotations
##
annotations: {}
## The path the volume will be mounted at, useful when using different
## MongoDB images.
##
mountPath: /bitnami/mongodb
## The subdirectory of the volume to mount to, useful in dev environments
## and one PV for multiple services.
##
subPath: ""
## Service parameters
##
service:
## Service type
##
type: ClusterIP
## MongoDB service port
##
port: 27017
## MongoDB service port name
##
portName: mongodb
## Specify the nodePort value for the LoadBalancer and NodePort service types.
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
##
nodePort: ""
## MongoDB service clusterIP IP
##
# clusterIP: None
## Specify the externalIP value ClusterIP service type.
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#external-ips
##
externalIPs: []
## Specify the loadBalancerIP value for LoadBalancer service types.
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer
##
# loadBalancerIP:
## Specify the loadBalancerSourceRanges value for LoadBalancer service types.
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
##
loadBalancerSourceRanges: []
## Provide any additional annotations which may be required. Evaluated as a template
##
annotations: {}
## External Access to MongoDB nodes configuration
##
externalAccess:
## Enable Kubernetes external cluster access to MongoDB nodes
##
enabled: false
## External IPs auto-discovery configuration
## An init container is used to auto-detect LB IPs or node ports by querying the K8s API
## Note: RBAC might be required
##
autoDiscovery:
## Enable external IP/ports auto-discovery
##
enabled: false
## Bitnami Kubectl image
## ref: https://hub.docker.com/r/bitnami/kubectl/tags/
##
image:
registry: docker.io
repository: bitnami/kubectl
tag: 1.18.12-debian-10-r2
## Specify a imagePullPolicy
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
##
pullPolicy: IfNotPresent
## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace)
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
## Example:
## pullSecrets:
## - myRegistryKeySecretName
##
pullSecrets: []
## Init Container resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources:
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
limits: {}
# cpu: 100m
# memory: 128Mi
requests: {}
# cpu: 100m
# memory: 128Mi
## Parameters to configure K8s service(s) used to externally access MongoDB
## A new service per broker will be created
##
service:
## Service type. Allowed values: LoadBalancer or NodePort
##
type: LoadBalancer
## Port used when service type is LoadBalancer
##
port: 27017
## Array of load balancer IPs for each MongoDB node. Length must be the same as replicaCount
## Example:
## loadBalancerIPs:
## - X.X.X.X
## - Y.Y.Y.Y
##
loadBalancerIPs: []
## Load Balancer sources
## ref: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
## Example:
## loadBalancerSourceRanges:
## - 10.10.10.0/24
##
loadBalancerSourceRanges: []
## Array of node ports used for each MongoDB nodes. Length must be the same as replicaCount
## Example:
## nodePorts:
## - 30001
## - 30002
##
nodePorts: []
## When service type is NodePort, you can specify the domain used for MongoDB advertised hostnames.
## If not specified, the container will try to get the kubernetes node external IP
##
# domain: mydomain.com
## Provide any additional annotations which may be required. Evaluated as a template
##
annotations: {}
##
## MongoDB Arbiter parameters.
##
arbiter:
## Enable deploying the MongoDB Arbiter
## https://docs.mongodb.com/manual/tutorial/add-replica-set-arbiter/
enabled: true
## MongoDB configuration file for the Arbiter. For documentation of all options, see:
## http://docs.mongodb.org/manual/reference/configuration-options/
##
configuration: ""
## ConfigMap with MongoDB configuration for the Arbiter
## NOTE: When it's set the arbiter.configuration parameter is ignored
##
# existingConfigmap:
## Command and args for running the container (set to default if not set). Use array form
##
# command:
# args:
## Additional command line flags
## Example:
## extraFlags:
## - "--wiredTigerCacheSizeGB=2"
##
extraFlags: []
## Additional environment variables to set
## E.g:
## extraEnvVars:
## - name: FOO
## value: BAR
##
extraEnvVars: []
## ConfigMap with extra environment variables
##
# extraEnvVarsCM:
## Secret with extra environment variables
##
# extraEnvVarsSecret:
## Annotations to be added to the Arbiter statefulset. Evaluated as a template.
##
annotations: {}
## Additional to be added to the Arbiter statefulset. Evaluated as a template.
##
labels: {}
## Affinity for pod assignment. Evaluated as a template.
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
##
affinity: {}
## Node labels for pod assignment. Evaluated as a template.
## ref: https://kubernetes.io/docs/user-guide/node-selection/
##
nodeSelector: {}
## Tolerations for pod assignment. Evaluated as a template.
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
##
tolerations: []
## Lables for MongoDB Arbiter pods. Evaluated as a template.
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
##
podLabels: {}
## Annotations for MongoDB Arbiter pods. Evaluated as a template.
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
##
podAnnotations: {}
## MongoDB Arbiter pods' priority.
## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
##
# priorityClassName: ""
## MongoDB Arbiter pods' Security Context.
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
##
podSecurityContext:
enabled: true
fsGroup: 1001
## sysctl settings
## Example:
## sysctls:
## - name: net.core.somaxconn
## value: "10000"
##
sysctls: []
## MongoDB Arbiter containers' Security Context (only main container).
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
##
containerSecurityContext:
enabled: true
runAsUser: 1001
## MongoDB Arbiter containers' resource requests and limits.
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources:
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
limits: {}
# cpu: 100m
# memory: 128Mi
requests: {}
# cpu: 100m
# memory: 128Mi
## MongoDB Arbiter pods' liveness and readiness probes. Evaluated as a template.
## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-probes
##
livenessProbe:
enabled: true
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 6
successThreshold: 1
readinessProbe:
enabled: true
initialDelaySeconds: 5
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 6
successThreshold: 1
## Custom Liveness probes for MongoDB Arbiter pods
##
customLivenessProbe: {}
## Custom Rediness probes MongoDB Arbiter pods
##
customReadinessProbe: {}
## Add init containers to the MongoDB Arbiter pods.
## Example:
## initContainers:
## - name: your-image-name
## image: your-image
## imagePullPolicy: Always
## ports:
## - name: portname
## containerPort: 1234
##
initContainers: {}
## Add sidecars to the MongoDB Arbiter pods.
## Example:
## sidecars:
## - name: your-image-name
## image: your-image
## imagePullPolicy: Always
## ports:
## - name: portname
## containerPort: 1234
##
sidecars: {}
## extraVolumes and extraVolumeMounts allows you to mount other volumes on MongoDB Arbiter pods
## Examples:
## extraVolumeMounts:
## - name: extras
## mountPath: /usr/share/extras
## readOnly: true
## extraVolumes:
## - name: extras
## emptyDir: {}
extraVolumeMounts: []
extraVolumes: []
## MongoDB Arbiter Pod Disruption Budget configuration
## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb/
##
pdb:
create: false
## Min number of pods that must still be available after the eviction
##
minAvailable: 1
## Max number of pods that can be unavailable after the eviction
##
# maxUnavailable: 1
## ServiceAccount
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
##
serviceAccount:
## Specifies whether a ServiceAccount should be created
##
create: true
## The name of the ServiceAccount to use.
## If not set and create is true, a name is generated using the rabbitmq.fullname template
##
# name:
## Role Based Access
## ref: https://kubernetes.io/docs/admin/authorization/rbac/
##
rbac:
## Specifies whether RBAC rules should be created
## binding MongoDB ServiceAccount to a role
## that allows MongoDB pods querying the K8s API
##
create: false
## Init Container paramaters
## Change the owner and group of the persistent volume(s) mountpoint(s) to 'runAsUser:fsGroup' on each component
## values from the securityContext section of the component
##
volumePermissions:
enabled: false
## Bitnami Minideb image
## ref: https://hub.docker.com/r/bitnami/minideb/tags/
##
image:
registry: docker.io
repository: bitnami/minideb
tag: buster
## Specify a imagePullPolicy
## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
##
pullPolicy: Always
## Optionally specify an array of imagePullSecrets (secrets must be manually created in the namespace)
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
## Example:
## pullSecrets:
## - myRegistryKeySecretName
##
pullSecrets: []
## Init Container resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources:
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
limits: {}
# cpu: 100m
# memory: 128Mi
requests: {}
# cpu: 100m
# memory: 128Mi
## Init container Security Context
## Note: the chown of the data folder is done to containerSecurityContext.runAsUser
## and not the below volumePermissions.securityContext.runAsUser
## When runAsUser is set to special value "auto", init container will try to chwon the
## data folder to autodetermined user&group, using commands: `id -u`:`id -G | cut -d" " -f2`
## "auto" is especially useful for OpenShift which has scc with dynamic userids (and 0 is not allowed).
## You may want to use this volumePermissions.securityContext.runAsUser="auto" in combination with
## podSecurityContext.enabled=false,containerSecurityContext.enabled=false and shmVolume.chmod.enabled=false
##
securityContext:
runAsUser: 0
## Prometheus Exporter / Metrics
##
metrics:
enabled: false
## Bitnami MongoDB Promtheus Exporter image
## ref: https://hub.docker.com/r/bitnami/mongodb-exporter/tags/
##
image:
registry: docker.io
repository: bitnami/mongodb-exporter
tag: 0.11.2-debian-10-r44
pullPolicy: IfNotPresent
## Optionally specify an array of imagePullSecrets.
## Secrets must be manually created in the namespace.
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
##
# pullSecrets:
# - myRegistryKeySecretName
## String with extra flags to the metrics exporter
## ref: https://github.com/percona/mongodb_exporter/blob/master/mongodb_exporter.go
##
extraFlags: ""
## String with additional URI options to the metrics exporter
## ref: https://docs.mongodb.com/manual/reference/connection-string
##
extraUri: ""
## Metrics exporter container resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources:
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
limits: {}
# cpu: 100m
# memory: 128Mi
requests: {}
# cpu: 100m
# memory: 128Mi
## Prometheus Exporter service configuration
##
service:
## Annotations for Prometheus Exporter pods. Evaluated as a template.
## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
##
annotations:
prometheus.io/scrape: "true"
prometheus.io/port: "{{ .Values.metrics.service.port }}"
prometheus.io/path: "/metrics"
type: ClusterIP
port: 9216
## Metrics exporter liveness and readiness probes
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes)
##
livenessProbe:
enabled: true
initialDelaySeconds: 15
periodSeconds: 5
timeoutSeconds: 5
failureThreshold: 3
successThreshold: 1
readinessProbe:
enabled: true
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 1
failureThreshold: 3
successThreshold: 1
## Prometheus Service Monitor
## ref: https://github.com/coreos/prometheus-operator
## https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md
##
serviceMonitor:
## If the operator is installed in your cluster, set to true to create a Service Monitor Entry
enabled: false
## Specify the namespace where Prometheus Operator is running
##
# namespace: monitoring
## Specify the interval at which metrics should be scraped
##
interval: 30s
## Specify the timeout after which the scrape is ended
##
# scrapeTimeout: 30s
## Used to pass Labels that are used by the Prometheus installed in your cluster to select Service Monitors to work with
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#prometheusspec
##
additionalLabels: {}
## Custom PrometheusRule to be defined
## ref: https://github.com/coreos/prometheus-operator#customresourcedefinitions
##
prometheusRule:
enabled: false
additionalLabels: {}
## Specify the namespace where Prometheus Operator is running
##
# namespace: monitoring
## Define individual alerting rules as required
## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#rulegroup
## https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/
##
## This is an example of a rule, you should add the below code block under the "rules" param, removing the brackets
## - name: example
## rules:
## - alert: HighRequestLatency
## expr: job:request_latency_seconds:mean5m{job="myjob"} > 0.5
## for: 10m
## labels:
## severity: page
## annotations:
## summary: High request latency
##
rules: {}
+7
View File
@@ -0,0 +1,7 @@
apiVersion: v1
kind: Secret
metadata:
name: regcred
type: kubernetes.io/dockerconfigjson
data:
.dockerconfigjson: xxxxkeytoberequestedxxx
@@ -1,45 +0,0 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "ui") -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: admin
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.admin.replicas }}
selector:
matchLabels:
app: admin
template:
metadata:
labels:
app: admin
spec:
containers:
- name: admin
image: "{{ .Values.global.imageRegistry }}{{ .Values.admin.repository }}:{{ .Values.admin.tag }}"
imagePullPolicy: {{ .Values.admin.pullPolicy }}
{{- with .Values.admin.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
ports:
- name: http
containerPort: 80
protocol: TCP
env:
- name: LOG_LEVEL
value: "{{ .Values.admin.logLevel }}"
- name: API_URL
value: "{{ .Values.kerberoshub.api.schema }}://{{ .Values.kerberoshub.api.url }}"
- name: TITLE
value: Hub Admin | Scale for everyone, anywhere
- name: LOGO_NAME
- name: ENVIRONMENT
value: staging
- name: PRIVATE_EDITION
value: "false"
- name: PRODUCTION
value: "true"
- name: DEMO
value: "false"
{{- end }}
-52
View File
@@ -1,52 +0,0 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "ui") -}}
{{ if ne .Values.ingress "" }}
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
apiVersion: networking.k8s.io/v1
{{- else }}
apiVersion: networking.k8s.io/v1beta1
{{- end }}
kind: Ingress
metadata:
name: admin-ingress
namespace: {{ .Release.Namespace }}
annotations:
{{- if eq .Values.admin.oauth2Proxy.enabled true }}
nginx.ingress.kubernetes.io/auth-url: "https://$host/oauth2/auth"
nginx.ingress.kubernetes.io/auth-signin: "https://$host/oauth2/start?rd=$escaped_request_uri"
{{- end }}
{{- if eq .Values.ingress "nginx" }}
kubernetes.io/tls-acme: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
cert-manager.io/cluster-issuer: "letsencrypt-prod"
{{- end }}
spec:
ingressClassName: {{ .Values.ingress }}
{{- with .Values.admin.tls }}
tls:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
rules:
- host: "{{ .Values.admin.url }}"
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: admin-svc
port:
number: 80
{{- else }}
rules:
- host: "{{ .Values.admin.url }}"
http:
paths:
- path: /
backend:
serviceName: admin-svc
servicePort: 80
{{- end }}
{{- end }}
{{- end }}
@@ -1,96 +0,0 @@
{{- if and (or (eq .Values.mode "all") (eq .Values.mode "ui")) (eq .Values.admin.oauth2Proxy.enabled true) }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: oauth2-proxy-admin
namespace: kube-system
annotations:
{{- if eq .Values.ingress "nginx" }}
cert-manager.io/cluster-issuer: letsencrypt-prod
kubernetes.io/tls-acme: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/enable-cors: "true"
{{- end }}
spec:
ingressClassName: {{ .Values.ingress }}
rules:
- host: "{{ .Values.admin.url }}"
http:
paths:
- path: /oauth2
pathType: Prefix
backend:
service:
name: oauth2-proxy-admin
port:
number: 4180
tls:
- hosts:
- "{{ .Values.admin.url }}"
secretName:
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: oauth2-proxy-admin
namespace: kube-system
labels:
k8s-app: oauth2-proxy-admin
spec:
replicas: 1
selector:
matchLabels:
k8s-app: oauth2-proxy-admin
template:
metadata:
labels:
k8s-app: oauth2-proxy-admin
spec:
containers:
- args:
- --provider=github
- --email-domain=*
- --upstream=file:///dev/null
- --http-address=0.0.0.0:4180
- --skip-auth-preflight=true
env:
- name: OAUTH2_PROXY_CLIENT_ID
value: "{{ .Values.admin.oauth2Proxy.github.clientId }}"
- name: OAUTH2_PROXY_CLIENT_SECRET
value: "{{ .Values.admin.oauth2Proxy.github.clientSecret }}"
- name: OAUTH2_PROXY_COOKIE_SECRET
value: "{{ .Values.admin.oauth2Proxy.github.cookieSecret }}"
- name: OAUTH2_PROXY_GITHUB_ORG
value: "{{ .Values.admin.oauth2Proxy.github.organization }}"
- name: OAUTH2_PROXY_GITHUB_TEAM
value: "{{ .Values.admin.oauth2Proxy.github.team }}"
image: quay.io/oauth2-proxy/oauth2-proxy:latest
imagePullPolicy: Always
name: oauth2-proxy
ports:
- containerPort: 4180
protocol: TCP
resources:
limits:
cpu: 100m
memory: 50Mi
requests:
cpu: 100m
memory: 50Mi
---
apiVersion: v1
kind: Service
metadata:
labels:
k8s-app: oauth2-proxy-admin
name: oauth2-proxy-admin
namespace: kube-system
spec:
ports:
- name: http
port: 4180
protocol: TCP
targetPort: 4180
selector:
k8s-app: oauth2-proxy-admin
{{- end -}}
-17
View File
@@ -1,17 +0,0 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "ui") -}}
apiVersion: v1
kind: Service
metadata:
name: admin-svc
namespace: {{ .Release.Namespace }}
labels:
app: admin-svc
spec:
ports:
- protocol: TCP
port: 80
targetPort: 80
name: http
selector:
app: admin
{{- end }}
@@ -1,14 +0,0 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: mongodb-config
namespace: {{ .Release.Namespace }}
data:
MONGODB_URI: "{{ .Values.mongodb.uri }}"
MONGODB_HOST: "{{ .Values.mongodb.host }}"
MONGODB_AUTHENTICATION_MECHANISM: "{{ .Values.mongodb.authenticationMechanism }}"
MONGODB_DATABASE_CREDENTIALS: "{{ .Values.mongodb.adminDatabase }}"
MONGODB_USERNAME: "{{ .Values.mongodb.username }}"
MONGODB_PASSWORD: "{{ .Values.mongodb.password }}"
MONGODB_RETRY_WRITES: "{{ .Values.mongodb.retryWrites }}"
MONGODB_DATABASE_CLOUD: "Kerberos"
+71 -157
View File
@@ -1,9 +1,7 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "ui") -}}
apiVersion: v1
kind: Service
metadata:
name: hub-api-svc
namespace: {{ .Release.Namespace }}
labels:
app: hub-api-svc
spec:
@@ -18,32 +16,47 @@ spec:
protocol: TCP
selector:
app: hub-api
{{ if ne .Values.ingress "" }}
---
{{ if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
apiVersion: networking.k8s.io/v1
{{ else }}
{{ if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
apiVersion: networking.k8s.io/v1beta1
{{ else }}
apiVersion: networking.k8s.io/v1
{{ end }}
kind: Ingress
metadata:
name: hub-api-ingress
namespace: {{ .Release.Namespace }}
annotations:
kubernetes.io/ingress.class: {{ .Values.ingress }}
{{- if eq .Values.ingress "nginx" }}
kubernetes.io/tls-acme: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/proxy-body-size: 200m # This might throw a 413 Entity Too Large when uploading large recordings.
cert-manager.io/cluster-issuer: "letsencrypt-prod"
{{- end }}
spec:
ingressClassName: {{ .Values.ingress }}
{{- with .Values.kerberoshub.api.tls }}
tls:
{{- toYaml . | nindent 8 }}
{{- end }}
{{ if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
rules:
- host: "{{ .Values.kerberoshub.api.url }}"
http:
paths:
- path: /
backend:
serviceName: hub-api-svc
servicePort: 8081
{{- if .Values.kerberoshub.api.legacyUrl }}
- host: "{{ .Values.kerberoshub.api.legacyUrl }}"
http:
paths:
- path: /
backend:
serviceName: hub-api-svc
servicePort: 8081
{{- end }}
{{- else }}
rules:
- host: "{{ .Values.kerberoshub.api.url }}"
http:
@@ -77,32 +90,12 @@ spec:
name: hub-api-svc
port:
number: 80
{{ else }}
rules:
- host: "{{ .Values.kerberoshub.api.url }}"
http:
paths:
- path: /
backend:
serviceName: hub-api-svc
servicePort: 8081
{{- if .Values.kerberoshub.api.legacyUrl }}
- host: "{{ .Values.kerberoshub.api.legacyUrl }}"
http:
paths:
- path: /
backend:
serviceName: hub-api-svc
servicePort: 8081
{{- end }}
{{ end }}
{{- end }}
{{- end }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: hub-api
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.kerberoshub.api.replicas }}
selector:
@@ -116,65 +109,35 @@ spec:
maxSurge: 1
template:
metadata:
annotations:
checksum/config-mongodb: {{ include (print $.Template.BasePath "/configmap-mongodb.yaml") . | sha256sum }}
labels:
app: hub-api
spec:
{{- if .Values.kerberoshub.serviceAccount.create }}
serviceAccountName: {{ default (printf "%s-%s-sa" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-") .Values.kerberoshub.serviceAccount.name }}
{{- end }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- $serverTLS := .Values.kerberoshub.api.serverTLS }}
{{- if or .Values.kerberoshub.api.volumes (and $serverTLS.enabled $serverTLS.secretName) }}
volumes:
{{- with .Values.kerberoshub.api.volumes }}
volumes:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- if and $serverTLS.enabled $serverTLS.secretName }}
- name: hub-api-server-tls
secret:
secretName: {{ $serverTLS.secretName }}
{{- end }}
{{- end }}
containers:
- name: hub-api
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberoshub.api.repository }}:{{ .Values.kerberoshub.api.tag }}"
image: "{{ .Values.kerberoshub.api.repository }}:{{ .Values.kerberoshub.api.tag }}"
imagePullPolicy: {{ .Values.kerberoshub.api.pullPolicy }}
{{- with .Values.kerberoshub.api.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
requests:
memory: 100Mi
cpu: 50m
ports:
- containerPort: 80
name: http
{{- if or .Values.kerberoshub.api.volumeMounts (and $serverTLS.enabled $serverTLS.secretName) }}
volumeMounts:
name: http
{{- with .Values.kerberoshub.api.volumeMounts}}
volumeMounts:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- if and $serverTLS.enabled $serverTLS.secretName }}
- name: hub-api-server-tls
mountPath: {{ $serverTLS.mountPath }}
readOnly: true
{{- end }}
{{- end }}
# Mongodb - loaded from ConfigMap
envFrom:
- configMapRef:
name: mongodb-config
env:
- name: ENVIRONMENT
value: "{{ .Values.environment }}"
- name: READ_ONLY
value: "{{ .Values.readOnly }}"
- name: LOG_LEVEL
value: "{{ .Values.kerberoshub.api.logLevel }}"
- name: SUPPORT_ENABLED
value: "{{ .Values.kerberoshub.support.enabled }}"
value: "{{ .Values.readonly }}"
- name: CLOUD_API_URL
value: "{{ .Values.kerberoshub.api.url }}"
- name: API_URL
@@ -194,12 +157,6 @@ spec:
value: "{{ .Values.kerberoshub.api.fallbackLanguage }}"
- name: API_KEY
value: "{{ .Values.kerberoshub.api.apiKey }}"
{{- if .Values.kerberoshub.api.serverTLS.enabled }}
- name: TLS_CERT_FILE
value: "{{ .Values.kerberoshub.api.serverTLS.certFile }}"
- name: TLS_KEY_FILE
value: "{{ .Values.kerberoshub.api.serverTLS.keyFile }}"
{{- end }}
# Kerberos Hub
- name: LICENSE_KEY
@@ -208,30 +165,20 @@ spec:
value: "{{ .Values.licenseServer.url }}"
- name: LICENSE_PUBLIC_API_TOKEN
value: "{{ .Values.licenseServer.token }}"
# Authorization - Authentication secret
- name: KERBEROS_JWT_SECRET
value: "{{ .Values.kerberoshub.api.jwtSecret }}"
# SSO (OIDC) setup
- name: SSO_DOMAINS
value: "{{- range .Values.kerberoshub.api.sso }}{{ .domain }};{{- end }}"
- name: SSO_REDIRECTURLS
value: "{{- range .Values.kerberoshub.api.sso }}{{ .redirectUrl }};{{- end }}"
- name: SSO_CLAIMIDS
value: "{{- range .Values.kerberoshub.api.sso }}{{ .claimId }};{{- end }}"
- name: SSO_ISSUERS
value: "{{- range .Values.kerberoshub.api.sso }}{{ .issuer }};{{- end }}"
- name: SSO_CLIENTIDS
value: "{{- range .Values.kerberoshub.api.sso }}{{ .clientId }};{{- end }}"
- name: SSO_CLIENTSECRETS
value: "{{- range .Values.kerberoshub.api.sso }}{{ .clientSecret }};{{- end }}"
- name: SSO_CLIENTVERIFICATIONIDS
value: "{{- range .Values.kerberoshub.api.sso }}{{ .clientVerificationId }};{{- end }}"
- name: SSO_FORCE_SSO
value: "{{- range .Values.kerberoshub.api.sso }}{{ .forceSSO }};{{- end }}"
- name: SSO_EXTRA_HEADERS
value: "{{- range .Values.kerberoshub.api.sso }}{{- if .extraHeaders }}{{- range .extraHeaders }}{{ .name }}:{{ .value }};{{- end }}{{- else }}{{- end }}*{{- end }}"
- name: SSO_ISSUER
value: "{{ .Values.kerberoshub.api.sso.issuer }}"
- name: SSO_CLIENTID
value: "{{ .Values.kerberoshub.api.sso.clientId }}"
- name: SSO_CLIENTSECRET
value: "{{ .Values.kerberoshub.api.sso.clientSecret }}"
- name: SSO_REDIRECTURL
value: "{{ .Values.kerberoshub.api.schema }}://{{ .Values.kerberoshub.api.url }}{{ .Values.kerberoshub.api.sso.redirectUrl }}"
# Kerberos pipeline
- name: QUEUE_SYSTEM
@@ -243,14 +190,6 @@ spec:
- name: STRIPE_KEY
value: "{{ .Values.kerberoshub.api.stripe.privateKey }}"
# OpenAI
- name: OPENAI_API_KEY
value: "{{ .Values.openai.apikey }}"
# MFA Issuer name (Will be shown when scanning in)
- name: MFA_ISSUER
value: "{{ .Values.kerberoshub.api.mfaIssuer }}"
# AWS (Legacy, use Kerberos Vault instead)
- name: AWS_REGION
value: "{{ .Values.kerberoshub.api.aws.region }}"
@@ -290,15 +229,17 @@ spec:
- name: KAFKA_SECURITY
value: "{{ .Values.kafka.security }}"
# RabbitMQ settings
- name: RABBITMQ_HOST
value: "{{ .Values.rabbitmq.host }}"
- name: RABBITMQ_EXCHANGE
value: "{{ .Values.rabbitmq.exchange }}"
- name: RABBITMQ_USERNAME
value: "{{ .Values.rabbitmq.username }}"
- name: RABBITMQ_PASSWORD
value: "{{ .Values.rabbitmq.password }}"
# Mongodb
- name: MONGODB_DATABASE_CLOUD
value: "Kerberos"
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
value: "{{ .Values.mongodb.username }}"
- name: MONGODB_PASSWORD
value: "{{ .Values.mongodb.password }}"
# Slack notifications (this will send events/logs to a specific channel).
- name: SLACK_ENABLED
@@ -308,6 +249,22 @@ spec:
- name: SLACK_USERNAME
value: "{{ .Values.kerberoshub.api.slack.username }}"
# Elastic search - Kibana
- name: LOGGING_ELASTICSEARCH
value: "{{ .Values.kerberoshub.api.elasticsearch.enabled }}"
- name: LOGGING_ELASTICSEARCH_PROTOCOL
value: "{{ .Values.kerberoshub.api.elasticsearch.protocol }}"
- name: LOGGING_ELASTICSEARCH_HOST
value: "{{ .Values.kerberoshub.api.elasticsearch.host }}"
- name: LOGGING_ELASTICSEARCH_PORT
value: "{{ .Values.kerberoshub.api.elasticsearch.port }}"
- name: LOGGING_ELASTICSEARCH_INDEX
value: "{{ .Values.kerberoshub.api.elasticsearch.index }}"
- name: LOGGING_ELASTICSEARCH_USERNAME
value: "{{ .Values.kerberoshub.api.elasticsearch.username }}"
- name: LOGGING_ELASTICSEARCH_PASSWORD
value: "{{ .Values.kerberoshub.api.elasticsearch.password }}"
# Mail settings
- name: MAIL_PROVIDER
value: "{{ .Values.email.provider }}"
@@ -315,7 +272,7 @@ spec:
value: "{{ .Values.email.from }}"
- name: EMAIL_FROM_DISPLAYNAME
value: "{{ .Values.email.displayName }}"
# Mail templates
- name: WELCOME_TEMPLATE
value: "{{ .Values.email.templates.welcome }}"
@@ -333,10 +290,6 @@ spec:
value: "{{ .Values.email.templates.share }}"
- name: SHARE_TITLE
value: "{{ .Values.email.templates.shareTitle }}"
- name: ASSIGN_TASK_TEMPLATE
value: "{{ .Values.email.templates.assignTask }}"
- name: ASSIGN_TASK_TITLE
value: "{{ .Values.email.templates.assignTaskTitle }}"
# SMTP
- name: SMTP_SERVER
@@ -347,48 +300,9 @@ spec:
value: "{{ .Values.email.smtp.username }}"
- name: SMTP_PASSWORD
value: "{{ .Values.email.smtp.password }}"
# Mailgun
- name: MAILGUN_DOMAIN
value: "{{ .Values.email.mailgun.domain }}"
- name: MAILGUN_API_KEY
value: "{{ .Values.email.mailgun.apikey }}"
# There is an option to store the thumbnails in a storage provider in Kerberos Vault.
# This will lower storage in mongodb.
- name: THUMBNAIL_VAULT_ENABLED
value: "{{ .Values.kerberospipeline.thumbnail.kerberosvault.enabled }}"
- name: VAULT_THUMBNAIL_PROVIDER
value: "{{ .Values.kerberosvault.thumbnail.provider }}"
- name: VAULT_THUMBNAIL_ACCESS_KEY
value: "{{ .Values.kerberosvault.thumbnail.accessKey }}"
- name: VAULT_THUMBNAIL_SECRET_KEY
value: "{{ .Values.kerberosvault.thumbnail.secretKey }}"
# There is an option to store the sprites in a storage provider in Kerberos Vault.
- name: VAULT_SPRITE_ENABLED
value: "{{ .Values.kerberospipeline.sprite.enabled }}"
- name: VAULT_SPRITE_PROVIDER
value: "{{ .Values.kerberosvault.sprite.provider }}"
- name: VAULT_SPRITE_ACCESS_KEY
value: "{{ .Values.kerberosvault.sprite.accessKey }}"
- name: VAULT_SPRITE_SECRET_KEY
value: "{{ .Values.kerberosvault.sprite.secretKey }}"
- name: VAULT_SPRITE_INTERVAL
value: "{{ .Values.kerberosvault.sprite.interval }}"
- name: VAULT_SPRITE_WIDTH
value: "{{ .Values.kerberosvault.sprite.width }}"
- name: VAULT_SPRITE_HEIGHT
value: "{{ .Values.kerberosvault.sprite.height }}"
{{- if .Values.kerberoshub.extraEnv }}
{{- toYaml .Values.kerberoshub.extraEnv | nindent 12 }}
{{- end }}
# Open Telemetry tracing
- name: OTEL_EXPORTED_OTLP_ENABLED
value: "{{ .Values.opentelemetry.enabled }}"
- name: OTEL_EXPORTED_OTLP_ROUTING_ENABLED
value: "{{ .Values.opentelemetry.routingEnabled }}"
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "{{ .Values.opentelemetry.collector.endpoint }}"
{{- end }}
@@ -1,18 +0,0 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "ui") -}}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: hub-cleanup-servicemonitor
namespace: {{ .Release.Namespace }}
labels:
service: hub-cleanup
release: prometheus
spec:
selector:
matchLabels:
service: hub-cleanup
endpoints:
- port: hub-metrics
interval: 15s
path: /metrics
{{- end }}
@@ -1,11 +1,9 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "ui") -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: hub-cleanup
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.kerberoshub.cleanup.replicas }}
replicas: 1
selector:
matchLabels:
app: hub-cleanup
@@ -17,58 +15,32 @@ spec:
maxSurge: 1
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap-mongodb.yaml") . | sha256sum }}
labels:
app: hub-cleanup
spec:
{{- if .Values.kerberoshub.serviceAccount.create }}
serviceAccountName: {{ default (printf "%s-%s-sa" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-") .Values.kerberoshub.serviceAccount.name }}
{{- end }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: hub-cleanup
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberoshub.cleanup.repository }}:{{ .Values.kerberoshub.cleanup.tag }}"
image: "{{ .Values.kerberoshub.cleanup.repository }}:{{ .Values.kerberoshub.cleanup.tag }}"
imagePullPolicy: {{ .Values.kerberoshub.cleanup.pullPolicy }}
{{- with .Values.kerberoshub.cleanup.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
envFrom:
- configMapRef:
name: mongodb-config
ports:
- containerPort: 8080
requests:
memory: 10Mi
cpu: 10m
env:
- name: MODE
value: "{{ .Values.kerberoshub.cleanup.mode }}"
- name: LOG_LEVEL
value: "{{ .Values.kerberoshub.cleanup.logLevel }}"
- name: READ_ONLY
value: "{{ .Values.readonly }}"
- name: MAX_DAYS
value: "{{ .Values.kerberoshub.cleanup.maxDays }}"
{{- if .Values.kerberoshub.extraEnv }}
{{- toYaml .Values.kerberoshub.extraEnv | nindent 12 }}
{{- end }}
---
apiVersion: v1
kind: Service
metadata:
name: hub-cleanup
namespace: {{ .Release.Namespace }}
labels:
app: hub-cleanup
service: hub-cleanup
spec:
ports:
- name: hub-metrics
port: 8080
targetPort: 8080
protocol: TCP
selector:
app: hub-cleanup
{{- end }}
value: "30"
- name: MONGODB_DATABASE_CLOUD
value: "Kerberos"
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
value: "{{ .Values.mongodb.username }}"
- name: MONGODB_PASSWORD
value: "{{ .Values.mongodb.password }}"
@@ -1,9 +1,7 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "ui") -}}
apiVersion: v1
kind: Service
metadata:
name: hub-frontend-demo-svc
namespace: {{ .Release.Namespace }}
labels:
app: hub-frontend-demo-svc
spec:
@@ -14,30 +12,39 @@ spec:
name: http
selector:
app: hub-frontend-demo
{{ if ne .Values.ingress "" }}
---
{{ if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
apiVersion: networking.k8s.io/v1
{{ else }}
{{ if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
apiVersion: networking.k8s.io/v1beta1
{{ else }}
apiVersion: networking.k8s.io/v1
{{ end }}
kind: Ingress
metadata:
name: hub-frontend-demo-ingress
namespace: {{ .Release.Namespace }}
annotations:
kubernetes.io/ingress.class: {{ .Values.ingress }}
{{- if eq .Values.ingress "nginx" }}
kubernetes.io/tls-acme: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
cert-manager.io/cluster-issuer: "letsencrypt-prod"
{{- end }}
spec:
ingressClassName: {{ .Values.ingress }}
{{- with .Values.kerberoshub.frontend.demoTls }}
tls:
{{- toYaml . | nindent 8 }}
{{- end }}
{{ if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
rules:
- host: "{{ .Values.kerberoshub.frontend.demoUrl }}"
http:
paths:
- path: /
backend:
serviceName: hub-frontend-demo-svc
servicePort: 80
{{- else }}
rules:
- host: "{{ .Values.kerberoshub.frontend.demoUrl }}"
http:
@@ -49,23 +56,12 @@ spec:
name: hub-frontend-demo-svc
port:
number: 80
{{ else }}
rules:
- host: "{{ .Values.kerberoshub.frontend.demoUrl }}"
http:
paths:
- path: /
backend:
serviceName: hub-frontend-demo-svc
servicePort: 80
{{ end }}
{{ end }}
{{- end }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: hub-frontend-demo
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.kerberoshub.frontend.replicas }}
selector:
@@ -82,9 +78,6 @@ spec:
labels:
app: hub-frontend-demo
spec:
{{- if .Values.kerberoshub.serviceAccount.create }}
serviceAccountName: {{ default (printf "%s-%s-sa" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-") .Values.kerberoshub.serviceAccount.name }}
{{- end }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
@@ -95,12 +88,12 @@ spec:
{{- end }}
containers:
- name: hub-frontend-demo
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberoshub.frontend.repository }}:{{ .Values.kerberoshub.frontend.tag }}"
image: "{{ .Values.kerberoshub.frontend.repository }}:{{ .Values.kerberoshub.frontend.tag }}"
imagePullPolicy: {{ .Values.kerberoshub.frontend.pullPolicy }}
{{- with .Values.kerberoshub.frontend.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
requests:
memory: 10Mi
cpu: 10m
ports:
- containerPort: 80
name: http
@@ -109,18 +102,12 @@ spec:
{{- toYaml . | nindent 8 }}
{{- end }}
env:
- name: SSO_DOMAINS
# get the domain attribute from the list of sso domains
value: "{{- range .Values.kerberoshub.api.sso }}{{ .domain }};{{- end }}"
- name: SSO_FORCE_DOMAINS
# get the domain attribute from the list of sso domains
value: "{{- range .Values.kerberoshub.api.sso }}{{ .forceSSO }};{{- end }}"
- name: SSO_DOMAIN
value: "{{ .Values.kerberoshub.frontend.ssoDomain }}"
- name: TITLE
value: "{{ .Values.kerberoshub.frontend.title }}"
- name: LOGO_NAME
value: "{{ .Values.kerberoshub.frontend.logo }}"
- name: ENVIRONMENT
value: "demo"
- name: API_URL
value: "" # legacy
- name: NEW_API_URL
@@ -136,10 +123,6 @@ spec:
value: "true"
- name: DEMO
value: "true"
- name: MULTI_TENANT
value: "{{ .Values.kerberoshub.frontend.multiTenant }}"
- name: TENANT_BASE_DOMAIN
value: "{{ .Values.kerberoshub.frontend.tenantBaseDomain }}"
# Mqtt (VERNEMQ)
- name: MQTT_PROTOCOL
@@ -152,14 +135,6 @@ spec:
value: "{{ .Values.mqtt.username }}"
- name: MQTT_PASSWORD
value: "{{ .Values.mqtt.password }}"
- name: MQTT_LEGACY_SERVER
value: "{{ .Values.mqtt.legacy.host }}"
- name: MQTT_LEGACY_PORT
value: "{{ .Values.mqtt.legacy.port }}"
# OpenAI
- name: OPENAI_ENABLED
value: "{{ .Values.openai.enabled }}"
# Turn (Pion)
- name: TURN_SERVER
@@ -216,10 +191,6 @@ spec:
value: "{{ .Values.kerberoshub.frontend.mediaTitle }}"
- name: PAGE_MEDIA_SUB_TITLE
value: "{{ .Values.kerberoshub.frontend.mediaSubTitle }}"
- name: PAGE_DAY_TITLE
value: "{{ .Values.kerberoshub.frontend.dayTitle }}"
- name: PAGE_DAY_SUB_TITLE
value: "{{ .Values.kerberoshub.frontend.daySubTitle }}"
- name: PAGE_DASHBOARD_CPU_USAGE
value: "{{ .Values.kerberoshub.frontend.cpuUsageDescription }}"
- name: PAGE_DASHBOARD_FPS
@@ -228,138 +199,3 @@ spec:
value: "{{ .Values.kerberoshub.frontend.mlaUtilizationDescription }}"
- name: PAGE_DASHBOARD_OBJECTS
value: "{{ .Values.kerberoshub.frontend.objectsDetectedDescription }}"
- name: HIDE_ADD_AGENT
value: "{{ .Values.kerberoshub.frontend.hideAddAgent }}"
# Navigation links
- name: NAVIGATION_LINK_TITLE_1
value: "{{ .Values.kerberoshub.frontend.navigationLinkTitle1 }}"
- name: NAVIGATION_LINK_URL_1
value: "{{ .Values.kerberoshub.frontend.navigationLinkUrl1 }}"
- name: NAVIGATION_LINK_TITLE_2
value: "{{ .Values.kerberoshub.frontend.navigationLinkTitle2 }}"
- name: NAVIGATION_LINK_URL_2
value: "{{ .Values.kerberoshub.frontend.navigationLinkUrl2 }}"
- name: NAVIGATION_LINK_TITLE_3
value: "{{ .Values.kerberoshub.frontend.navigationLinkTitle3 }}"
- name: NAVIGATION_LINK_URL_3
value: "{{ .Values.kerberoshub.frontend.navigationLinkUrl3 }}"
- name: NAVIGATION_LINK_TITLE_4
value: "{{ .Values.kerberoshub.frontend.navigationLinkTitle4 }}"
- name: NAVIGATION_LINK_URL_4
value: "{{ .Values.kerberoshub.frontend.navigationLinkUrl4 }}"
- name: NAVIGATION_LINK_TITLE_5
value: "{{ .Values.kerberoshub.frontend.navigationLinkTitle5 }}"
- name: NAVIGATION_LINK_URL_5
value: "{{ .Values.kerberoshub.frontend.navigationLinkUrl5 }}"
- name: CASE_FILTER_ASSIGNEES_DEFAULT
value: "{{ .Values.kerberoshub.frontend.caseFilterAssigneesDefault }}"
# features > general
- name: FEATURE_CASE_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.case.enabled }}"
- name: FEATURE_DARK_MODE
value: "{{ .Values.kerberoshub.frontend.features.darkMode }}"
- name: FEATURE_LANDING_PAGE
value: "{{ .Values.kerberoshub.frontend.features.landingPage }}"
# features > liveview
- name: FEATURE_LIVEVIEW_PAGINATION_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.liveview.paginationEnabled }}"
- name: FEATURE_LIVEVIEW_EMPTY_BY_DEFAULT
value: "{{ .Values.kerberoshub.frontend.features.liveview.emptyByDefault }}"
- name: FEATURE_LIVEVIEW_MAX_STREAMS
value: "{{ .Values.kerberoshub.frontend.features.liveview.maxStreams }}"
# features > devices
- name: FEATURE_DEVICES_HIDE_AGENT
value: "{{ .Values.kerberoshub.frontend.features.devices.hideAgent }}"
# features > floorplan
- name: FEATURE_FLOORPLAN_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.floorplan.enabled }}"
- name: COLOR_TRACK_BOX
value: "{{ .Values.kerberoshub.frontend.features.floorplan.colorTrackBox }}"
- name: COLOR_TRACK_BOX_HOVER
value: "{{ .Values.kerberoshub.frontend.features.floorplan.colorTrackBoxHover }}"
- name: COLOR_TRACK_BOX_DRAWING
value: "{{ .Values.kerberoshub.frontend.features.floorplan.colorTrackBoxDrawing }}"
- name: COLOR_TRACK_BOX_CONTROLS_DELETE
value: "{{ .Values.kerberoshub.frontend.features.floorplan.colorTrackBoxControlsDelete }}"
- name: COLOR_DEVICE_ACTIVE
value: "{{ .Values.kerberoshub.frontend.colorDeviceActive }}"
- name: COLOR_DEVICE_INACTIVE
value: "{{ .Values.kerberoshub.frontend.colorDeviceInactive }}"
- name: COLOR_DEVICE_IDLE
value: "{{ .Values.kerberoshub.frontend.colorDeviceIdle }}"
- name: COLOR_DEVICE_MOTION
value: "{{ .Values.kerberoshub.frontend.colorDeviceMotion }}"
- name: COLOR_LIVE_VIEW_CONTROL_ACTIVE
value: "{{ .Values.kerberoshub.frontend.colorLiveViewControlActive }}"
- name: COLOR_LIVE_VIEW_CONTROL_MOTION
value: "{{ .Values.kerberoshub.frontend.colorLiveViewControlMotion }}"
- name: COLOR_FLOOR_PLAN_LABEL_TEXT
value: "{{ .Values.kerberoshub.frontend.colorFloorPlanLabelText }}"
- name: COLOR_FLOOR_PLAN_LABEL_BACKGROUND
value: "{{ .Values.kerberoshub.frontend.colorFloorPlanLabelBackground }}"
- name: COLOR_DEVICE_MARKER_BORDER
value: "{{ .Values.kerberoshub.frontend.colorDeviceMarkerBorder }}"
# features > face redaction
- name: FEATURE_FACE_REDACTION_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.faceRedaction.enabled }}"
# features > media
- name: FEATURE_MEDIA_FILTER_DATE_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.date.enabled }}"
- name: FEATURE_MEDIA_FILTER_SITES_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.sites.enabled }}"
- name: FEATURE_MEDIA_FILTER_GROUPS_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.groups.enabled }}"
- name: FEATURE_MEDIA_FILTER_DEVICES_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.devices.enabled }}"
- name: FEATURE_MEDIA_FILTER_OBJECT_DETECTION_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.objectDetection.enabled }}"
- name: FEATURE_MEDIA_FILTER_STAR_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.star.enabled }}"
- name: FEATURE_MEDIA_FILTER_REGION_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.region.enabled }}"
- name: FEATURE_MEDIA_FILTER_SORT_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.sort.enabled }}"
- name: FEATURE_MEDIA_FILTER_CATEGORY_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.category.enabled }}"
- name: FEATURE_MEDIA_FILTER_MARKERS_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.markers.enabled }}"
- name: FEATURE_MEDIA_FILTER_EVENTS_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.events.enabled }}"
- name: FEATURE_MEDIA_FILTER_TAGS_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.tags.enabled }}"
- name: MARKERS_NAME
value: "{{ .Values.kerberoshub.frontend.markersName }}"
- name: EVENTS_NAME
value: "{{ .Values.kerberoshub.frontend.eventsName }}"
- name: FLOOR_PLAN_NAME
value: "{{ .Values.kerberoshub.frontend.floorPlanName }}"
- name: SITES_NAME
value: "{{ .Values.kerberoshub.frontend.sitesName }}"
- name: SITES_DESCRIPTION
value: "{{ .Values.kerberoshub.frontend.sitesDescription }}"
- name: GROUPS_NAME
value: "{{ .Values.kerberoshub.frontend.groupsName }}"
- name: GROUPS_DESCRIPTION
value: "{{ .Values.kerberoshub.frontend.groupsDescription }}"
- name: SITE_GROUP_NAME
value: "{{ .Values.kerberoshub.frontend.siteGroupName }}"
- name: SITE_GROUP_DESCRIPTION
value: "{{ .Values.kerberoshub.frontend.siteGroupDescription }}"
- name: DEVICE_GROUP_NAME
value: "{{ .Values.kerberoshub.frontend.deviceGroupName }}"
- name: DEVICE_GROUP_DESCRIPTION
value: "{{ .Values.kerberoshub.frontend.deviceGroupDescription }}"
{{- if .Values.kerberoshub.extraEnv }}
{{- toYaml .Values.kerberoshub.extraEnv | nindent 8 }}
{{- end }}
{{- end }}
@@ -1,9 +1,7 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "ui") -}}
apiVersion: v1
kind: Service
metadata:
name: hub-frontend-svc
namespace: {{ .Release.Namespace }}
labels:
app: hub-frontend-svc
spec:
@@ -14,137 +12,77 @@ spec:
name: http
selector:
app: hub-frontend
{{ if ne .Values.ingress "" }}
---
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
apiVersion: networking.k8s.io/v1
{{- else }}
{{ if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
apiVersion: networking.k8s.io/v1beta1
{{- end }}
{{ else }}
apiVersion: networking.k8s.io/v1
{{ end }}
kind: Ingress
metadata:
name: hub-frontend-ingress
namespace: {{ .Release.Namespace }}
annotations:
{{- if eq .Values.kerberoshub.oauth2Proxy.enabled true }}
nginx.ingress.kubernetes.io/auth-url: "https://$host/oauth2/auth"
nginx.ingress.kubernetes.io/auth-signin: "https://$host/oauth2/start?rd=$escaped_request_uri"
{{- end }}
kubernetes.io/ingress.class: {{ .Values.ingress }}
{{- if eq .Values.ingress "nginx" }}
kubernetes.io/tls-acme: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
cert-manager.io/cluster-issuer: "letsencrypt-prod"
{{- end }}
spec:
ingressClassName: {{ .Values.ingress }}
{{- with .Values.kerberoshub.frontend.tls }}
tls:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1" }}
{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1" }}
rules:
- host: "{{ .Values.kerberoshub.frontend.url }}"
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: hub-frontend-svc
port:
number: 80
- path: /
backend:
serviceName: hub-frontend-svc
servicePort: 80
{{- if .Values.kerberoshub.frontend.legacyUrl }}
- host: "{{ .Values.kerberoshub.frontend.legacyUrl }}"
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: hub-frontend-svc
port:
number: 80
- path: /
backend:
serviceName: hub-frontend-svc
servicePort: 80
{{- end }}
{{- range .Values.kerberoshub.frontend.domains }}
- host: "{{ . }}"
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: hub-frontend-svc
port:
number: 80
{{- end }}
{{- else }}
rules:
- host: "{{ .Values.kerberoshub.frontend.url }}"
http:
paths:
- path: /
backend:
serviceName: hub-frontend-svc
servicePort: 80
- path: /
pathType: Prefix
backend:
service:
name: hub-frontend-svc
port:
number: 80
{{- if .Values.kerberoshub.frontend.legacyUrl }}
- host: "{{ .Values.kerberoshub.frontend.legacyUrl }}"
http:
paths:
- path: /
backend:
serviceName: hub-frontend-svc
servicePort: 80
{{- end }}
{{- range .Values.kerberoshub.frontend.domains }}
- host: "{{ . }}"
http:
paths:
- path: /
backend:
serviceName: hub-frontend-svc
servicePort: 80
- path: /
pathType: Prefix
backend:
service:
name: hub-frontend-svc
port:
number: 80
{{- end }}
{{- end }}
{{- end }}
{{- if eq .Values.kerberoshub.oauth2Proxy.enabled true }}
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: oauth2-proxy-frontend
namespace: kube-system
annotations:
{{- if eq .Values.ingress "nginx" }}
cert-manager.io/cluster-issuer: letsencrypt-prod
kubernetes.io/tls-acme: "true"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/enable-cors: "true"
{{- end }}
spec:
ingressClassName: {{ .Values.ingress }}
rules:
- host: "{{ .Values.kerberoshub.frontend.url }}"
http:
paths:
- path: /oauth2
pathType: Prefix
backend:
service:
name: oauth2-proxy
port:
number: 4180
tls:
- hosts:
- "{{ .Values.kerberoshub.frontend.url }}"
secretName:
{{- end }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: hub-frontend
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.kerberoshub.frontend.replicas }}
selector:
@@ -161,9 +99,6 @@ spec:
labels:
app: hub-frontend
spec:
{{- if .Values.kerberoshub.serviceAccount.create }}
serviceAccountName: {{ default (printf "%s-%s-sa" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-") .Values.kerberoshub.serviceAccount.name }}
{{- end }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
@@ -174,12 +109,12 @@ spec:
{{- end }}
containers:
- name: hub-frontend
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberoshub.frontend.repository }}:{{ .Values.kerberoshub.frontend.tag }}"
image: "{{ .Values.kerberoshub.frontend.repository }}:{{ .Values.kerberoshub.frontend.tag }}"
imagePullPolicy: {{ .Values.kerberoshub.frontend.pullPolicy }}
{{- with .Values.kerberoshub.frontend.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
requests:
memory: 10Mi
cpu: 10m
ports:
- containerPort: 80
name: http
@@ -188,20 +123,12 @@ spec:
{{- toYaml . | nindent 8 }}
{{- end }}
env:
- name: LOG_LEVEL
value: "{{ .Values.kerberoshub.frontend.logLevel }}"
- name: SSO_DOMAINS
# get the domain attribute from the list of sso domains
value: "{{- range .Values.kerberoshub.api.sso }}{{ .domain }};{{- end }}"
- name: SSO_FORCE_DOMAINS
# get the domain attribute from the list of sso domains
value: "{{- range .Values.kerberoshub.api.sso }}{{ .forceSSO }};{{- end }}"
- name: SSO_DOMAIN
value: "{{ .Values.kerberoshub.frontend.ssoDomain }}"
- name: TITLE
value: "{{ .Values.kerberoshub.frontend.title }}"
- name: LOGO_NAME
value: "{{ .Values.kerberoshub.frontend.logo }}"
- name: ENVIRONMENT
value: "{{ .Values.environment }}"
- name: API_URL
value: "" # legacy
- name: NEW_API_URL
@@ -238,10 +165,6 @@ spec:
- name: MQTT_LEGACY_PORT
value: "{{ .Values.mqtt.legacy.port }}"
# OpenAI
- name: OPENAI_ENABLED
value: "{{ .Values.openai.enabled }}"
# Turn (Pion)
- name: TURN_SERVER
value: "{{ .Values.turn.host }}"
@@ -297,10 +220,6 @@ spec:
value: "{{ .Values.kerberoshub.frontend.mediaTitle }}"
- name: PAGE_MEDIA_SUB_TITLE
value: "{{ .Values.kerberoshub.frontend.mediaSubTitle }}"
- name: PAGE_DAY_TITLE
value: "{{ .Values.kerberoshub.frontend.dayTitle }}"
- name: PAGE_DAY_SUB_TITLE
value: "{{ .Values.kerberoshub.frontend.daySubTitle }}"
- name: PAGE_DASHBOARD_CPU_USAGE
value: "{{ .Values.kerberoshub.frontend.cpuUsageDescription }}"
- name: PAGE_DASHBOARD_FPS
@@ -309,159 +228,3 @@ spec:
value: "{{ .Values.kerberoshub.frontend.mlaUtilizationDescription }}"
- name: PAGE_DASHBOARD_OBJECTS
value: "{{ .Values.kerberoshub.frontend.objectsDetectedDescription }}"
- name: HIDE_ADD_AGENT
value: "{{ .Values.kerberoshub.frontend.hideAddAgent }}"
# Navigation links
- name: NAVIGATION_LINK_TITLE_1
value: "{{ .Values.kerberoshub.frontend.navigationLinkTitle1 }}"
- name: NAVIGATION_LINK_URL_1
value: "{{ .Values.kerberoshub.frontend.navigationLinkUrl1 }}"
- name: NAVIGATION_LINK_TITLE_2
value: "{{ .Values.kerberoshub.frontend.navigationLinkTitle2 }}"
- name: NAVIGATION_LINK_URL_2
value: "{{ .Values.kerberoshub.frontend.navigationLinkUrl2 }}"
- name: NAVIGATION_LINK_TITLE_3
value: "{{ .Values.kerberoshub.frontend.navigationLinkTitle3 }}"
- name: NAVIGATION_LINK_URL_3
value: "{{ .Values.kerberoshub.frontend.navigationLinkUrl3 }}"
- name: NAVIGATION_LINK_TITLE_4
value: "{{ .Values.kerberoshub.frontend.navigationLinkTitle4 }}"
- name: NAVIGATION_LINK_URL_4
value: "{{ .Values.kerberoshub.frontend.navigationLinkUrl4 }}"
- name: NAVIGATION_LINK_TITLE_5
value: "{{ .Values.kerberoshub.frontend.navigationLinkTitle5 }}"
- name: NAVIGATION_LINK_URL_5
value: "{{ .Values.kerberoshub.frontend.navigationLinkUrl5 }}"
- name: CASE_FILTER_ASSIGNEES_DEFAULT
value: "{{ .Values.kerberoshub.frontend.caseFilterAssigneesDefault }}"
# features > general
- name: FEATURE_CASE_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.case.enabled }}"
- name: FEATURE_DARK_MODE
value: "{{ .Values.kerberoshub.frontend.features.darkModeEnabled }}"
- name: FEATURE_LANDING_PAGE
value: "{{ .Values.kerberoshub.frontend.features.landingPage }}"
# features > liveview
- name: FEATURE_DEFAULT_STREAM_MODE
value: "{{ .Values.kerberoshub.frontend.features.liveview.defaultStreamMode }}"
- name: FEATURE_LIVEVIEW_PAGINATION_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.liveview.paginationEnabled }}"
- name: FEATURE_LIVEVIEW_EMPTY_BY_DEFAULT
value: "{{ .Values.kerberoshub.frontend.features.liveview.emptyByDefault }}"
- name: FEATURE_LIVEVIEW_MAX_STREAMS
value: "{{ .Values.kerberoshub.frontend.features.liveview.maxStreams }}"
# features > devices
- name: FEATURE_DEVICES_HIDE_AGENT
value: "{{ .Values.kerberoshub.frontend.features.devices.hideAgent }}"
# features > floorplan
- name: FEATURE_FLOORPLAN_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.floorplan.enabled }}"
# features > map
- name: MAP_TILE_URL_LIGHT
value: "{{ .Values.kerberoshub.frontend.features.map.tileUrlLight }}"
- name: MAP_TILE_URL_DARK
value: "{{ .Values.kerberoshub.frontend.features.map.tileUrlDark }}"
- name: MAP_ATTRIBUTION
value: "{{ .Values.kerberoshub.frontend.features.map.attribution }}"
- name: COLOR_TRACK_BOX
value: "{{ .Values.kerberoshub.frontend.features.floorplan.colorTrackBox }}"
- name: COLOR_TRACK_BOX_HOVER
value: "{{ .Values.kerberoshub.frontend.features.floorplan.colorTrackBoxHover }}"
- name: COLOR_TRACK_BOX_DRAWING
value: "{{ .Values.kerberoshub.frontend.features.floorplan.colorTrackBoxDrawing }}"
- name: COLOR_TRACK_BOX_CONTROLS_DELETE
value: "{{ .Values.kerberoshub.frontend.features.floorplan.colorTrackBoxControlsDelete }}"
- name: COLOR_DEVICE_ACTIVE
value: "{{ .Values.kerberoshub.frontend.colorDeviceActive }}"
- name: COLOR_DEVICE_INACTIVE
value: "{{ .Values.kerberoshub.frontend.colorDeviceInactive }}"
- name: COLOR_DEVICE_IDLE
value: "{{ .Values.kerberoshub.frontend.colorDeviceIdle }}"
- name: COLOR_DEVICE_MOTION
value: "{{ .Values.kerberoshub.frontend.colorDeviceMotion }}"
- name: COLOR_LIVE_VIEW_CONTROL_ACTIVE
value: "{{ .Values.kerberoshub.frontend.colorLiveViewControlActive }}"
- name: COLOR_LIVE_VIEW_CONTROL_MOTION
value: "{{ .Values.kerberoshub.frontend.colorLiveViewControlMotion }}"
- name: COLOR_FLOOR_PLAN_LABEL_TEXT
value: "{{ .Values.kerberoshub.frontend.colorFloorPlanLabelText }}"
- name: COLOR_FLOOR_PLAN_LABEL_BACKGROUND
value: "{{ .Values.kerberoshub.frontend.colorFloorPlanLabelBackground }}"
- name: COLOR_DEVICE_MARKER_BORDER
value: "{{ .Values.kerberoshub.frontend.colorDeviceMarkerBorder }}"
# features > chart
- name: COLOR_CHART_SELECTION_FILL
value: "{{ .Values.kerberoshub.frontend.features.chart.colorChartSelectionFill }}"
- name: COLOR_CHART_SELECTION_STROKE
value: "{{ .Values.kerberoshub.frontend.features.chart.colorChartSelectionStroke }}"
- name: COLOR_CHART_GRID_STROKE
value: "{{ .Values.kerberoshub.frontend.features.chart.colorChartGridStroke }}"
# features > face redaction
- name: FEATURE_FACE_REDACTION_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.faceRedaction.enabled }}"
# features > media
- name: FEATURE_MEDIA_FILTER_DATE_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.date.enabled }}"
- name: FEATURE_MEDIA_FILTER_SITES_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.sites.enabled }}"
- name: FEATURE_MEDIA_FILTER_GROUPS_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.groups.enabled }}"
- name: FEATURE_MEDIA_FILTER_DEVICES_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.devices.enabled }}"
- name: FEATURE_MEDIA_FILTER_OBJECT_DETECTION_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.objectDetection.enabled }}"
- name: FEATURE_MEDIA_FILTER_STAR_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.star.enabled }}"
- name: FEATURE_MEDIA_FILTER_REGION_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.region.enabled }}"
- name: FEATURE_MEDIA_FILTER_SORT_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.sort.enabled }}"
- name: FEATURE_MEDIA_FILTER_CATEGORY_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.category.enabled }}"
- name: FEATURE_MEDIA_FILTER_MARKERS_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.markers.enabled }}"
- name: FEATURE_MEDIA_FILTER_DEFAULT_VIEW
value: "{{ .Values.kerberoshub.frontend.features.media.filter.defaultView }}"
- name: FEATURE_MEDIA_FILTER_EVENTS_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.events.enabled }}"
- name: FEATURE_MEDIA_FILTER_TAGS_ENABLED
value: "{{ .Values.kerberoshub.frontend.features.media.filter.tags.enabled }}"
- name: MARKERS_NAME
value: "{{ .Values.kerberoshub.frontend.markersName }}"
- name: EVENTS_NAME
value: "{{ .Values.kerberoshub.frontend.eventsName }}"
- name: FLOOR_PLAN_NAME
value: "{{ .Values.kerberoshub.frontend.floorPlanName }}"
- name: SITES_NAME
value: "{{ .Values.kerberoshub.frontend.sitesName }}"
- name: SITES_DESCRIPTION
value: "{{ .Values.kerberoshub.frontend.sitesDescription }}"
- name: GROUPS_NAME
value: "{{ .Values.kerberoshub.frontend.groupsName }}"
- name: GROUPS_DESCRIPTION
value: "{{ .Values.kerberoshub.frontend.groupsDescription }}"
- name: SITE_GROUP_NAME
value: "{{ .Values.kerberoshub.frontend.siteGroupName }}"
- name: SITE_GROUP_DESCRIPTION
value: "{{ .Values.kerberoshub.frontend.siteGroupDescription }}"
- name: DEVICE_GROUP_NAME
value: "{{ .Values.kerberoshub.frontend.deviceGroupName }}"
- name: DEVICE_GROUP_DESCRIPTION
value: "{{ .Values.kerberoshub.frontend.deviceGroupDescription }}"
{{- if .Values.kerberoshub.extraEnv }}
{{- toYaml .Values.kerberoshub.extraEnv | nindent 8 }}
{{- end }}
{{- end }}
@@ -1,11 +1,9 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "ui") -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: hub-monitor-device
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.kerberoshub.monitordevice.replicas }}
replicas: 1
selector:
matchLabels:
app: hub-monitor-device
@@ -17,42 +15,34 @@ spec:
maxSurge: 1
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap-mongodb.yaml") . | sha256sum }}
labels:
app: hub-monitor-device
spec:
{{- if .Values.kerberoshub.serviceAccount.create }}
serviceAccountName: {{ default (printf "%s-%s-sa" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-") .Values.kerberoshub.serviceAccount.name }}
{{- end }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.kerberoshub.monitordevice.volumes }}
volumes:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: hub-monitor-device
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberoshub.monitordevice.repository }}:{{ .Values.kerberoshub.monitordevice.tag }}"
image: "{{ .Values.kerberoshub.monitordevice.repository }}:{{ .Values.kerberoshub.monitordevice.tag }}"
imagePullPolicy: {{ .Values.kerberoshub.monitordevice.pullPolicy }}
{{- with .Values.kerberoshub.monitordevice.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.kerberoshub.monitordevice.volumeMounts}}
volumeMounts:
{{- toYaml . | nindent 12 }}
{{- end }}
envFrom:
- configMapRef:
name: mongodb-config
requests:
memory: 10Mi
cpu: 10m
env:
- name: LOG_LEVEL
value: "{{ .Values.kerberoshub.monitordevice.logLevel }}"
- name: READ_ONLY
value: "{{ .Values.readonly }}"
# Mongodb
- name: MONGODB_DATABASE_CLOUD
value: "Kerberos"
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
value: "{{ .Values.mongodb.username }}"
- name: MONGODB_PASSWORD
value: "{{ .Values.mongodb.password }}"
# Mail settings
- name: MAIL_PROVIDER
value: "{{ .Values.email.provider }}"
@@ -60,13 +50,11 @@ spec:
value: "{{ .Values.email.from }}"
- name: EMAIL_FROM_DISPLAYNAME
value: "{{ .Values.email.displayName }}"
# Mail templates
- name: DEVICE_TEMPLATE
value: "{{ .Values.email.templates.device }}"
- name: DEVICE_TITLE
value: "{{ .Values.email.templates.deviceTitle }}"
# - Plain SMTP
- name: SMTP_SERVER
value: "{{ .Values.email.smtp.server }}"
@@ -76,13 +64,3 @@ spec:
value: "{{ .Values.email.smtp.username }}"
- name: SMTP_PASSWORD
value: "{{ .Values.email.smtp.password }}"
# Mailgun
- name: MAILGUN_DOMAIN
value: "{{ .Values.email.mailgun.domain }}"
- name: MAILGUN_API_KEY
value: "{{ .Values.email.mailgun.apikey }}"
{{- if .Values.kerberoshub.extraEnv }}
{{- toYaml .Values.kerberoshub.extraEnv | nindent 12 }}
{{- end }}
{{- end }}
@@ -1,69 +0,0 @@
{{- if and (or (eq .Values.mode "all") (eq .Values.mode "ui")) .Values.kerberoshub.oauth2Proxy.enabled -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: oauth2-proxy
namespace: kube-system
labels:
k8s-app: oauth2-proxy
spec:
replicas: 1
selector:
matchLabels:
k8s-app: oauth2-proxy
template:
metadata:
labels:
k8s-app: oauth2-proxy
spec:
containers:
- args:
- --provider=github
- --email-domain=*
- --upstream=file:///dev/null
- --http-address=0.0.0.0:4180
- --skip-auth-preflight=true
env:
- name: OAUTH2_PROXY_CLIENT_ID
value: "{{ .Values.kerberoshub.oauth2Proxy.github.clientId }}"
- name: OAUTH2_PROXY_CLIENT_SECRET
value: "{{ .Values.kerberoshub.oauth2Proxy.github.clientSecret }}"
- name: OAUTH2_PROXY_COOKIE_SECRET
value: "{{ .Values.kerberoshub.oauth2Proxy.github.cookieSecret }}"
- name: OAUTH2_PROXY_GITHUB_ORG
value: "{{ .Values.kerberoshub.oauth2Proxy.github.organization }}"
- name: OAUTH2_PROXY_GITHUB_TEAM
value: "{{ .Values.kerberoshub.oauth2Proxy.github.team }}"
{{- if .Values.kerberoshub.extraEnv }}
{{- toYaml .Values.kerberoshub.extraEnv | nindent 12 }}
{{- end }}
image: quay.io/oauth2-proxy/oauth2-proxy:latest
imagePullPolicy: Always
name: oauth2-proxy
ports:
- containerPort: 4180
protocol: TCP
resources:
limits:
cpu: 100m
memory: 50Mi
requests:
cpu: 100m
memory: 50Mi
---
apiVersion: v1
kind: Service
metadata:
labels:
k8s-app: oauth2-proxy
name: oauth2-proxy
namespace: kube-system
spec:
ports:
- name: http
port: 4180
protocol: TCP
targetPort: 4180
selector:
k8s-app: oauth2-proxy
{{- end -}}
@@ -1,11 +1,9 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "ui") -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: hub-reactivate-subscription
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.kerberoshub.reactivate.replicas }}
replicas: 1
selector:
matchLabels:
app: hub-reactivate-subscription
@@ -17,32 +15,25 @@ spec:
maxSurge: 1
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap-mongodb.yaml") . | sha256sum }}
labels:
app: hub-reactivate-subscription
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
- name: regcred
containers:
- name: hub-reactivate-subscription
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberoshub.reactivate.repository }}:{{ .Values.kerberoshub.reactivate.tag }}"
image: "{{ .Values.kerberoshub.reactivate.repository }}:{{ .Values.kerberoshub.reactivate.tag }}"
imagePullPolicy: {{ .Values.kerberoshub.reactivate.pullPolicy }}
envFrom:
- configMapRef:
name: mongodb-config
env:
- name: LOG_LEVEL
value: "{{ .Values.kerberoshub.reactivate.logLevel }}"
- name: READ_ONLY
value: "{{ .Values.readonly }}"
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
value: "{{ .Values.mongodb.username }}"
- name: MONGODB_PASSWORD
value: "{{ .Values.mongodb.password }}"
- name: AWS_ACCESS_KEY_ID
value: "{{ .Values.kerberoshub.api.aws.accessKey }}"
- name: AWS_SECRET_ACCESS_KEY
value: "{{ .Values.kerberoshub.api.aws.secretKey }}"
{{- if .Values.kerberoshub.extraEnv }}
{{- toYaml .Values.kerberoshub.extraEnv | nindent 12 }}
{{- end }}
{{- end }}
@@ -1,13 +0,0 @@
{{- if and (or (eq .Values.mode "all") (eq .Values.mode "ui") (eq .Values.mode "pipeline")) .Values.kerberoshub.serviceAccount.create }}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ default (printf "%s-%s-sa" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-") .Values.kerberoshub.serviceAccount.name }}
namespace: {{ .Release.Namespace }}
annotations:
{{- toYaml .Values.kerberoshub.serviceAccount.annotations | nindent 4 }}
{{- with .Values.kerberoshub.serviceAccount.labels }}
labels:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- end }}
@@ -1,11 +1,9 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "pipeline") -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: pipe-analysis
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.kerberospipeline.analysis.replicas }}
replicas: 1
selector:
matchLabels:
app: pipe-analysis
@@ -17,37 +15,37 @@ spec:
maxSurge: 1
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap-mongodb.yaml") . | sha256sum }}
labels:
app: pipe-analysis
spec:
{{- if .Values.kerberoshub.serviceAccount.create }}
serviceAccountName: {{ default (printf "%s-%s-sa" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-") .Values.kerberoshub.serviceAccount.name }}
{{- end }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: pipe-analysis
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.analysis.repository }}:{{ .Values.kerberospipeline.analysis.tag }}"
image: "{{ .Values.kerberospipeline.analysis.repository }}:{{ .Values.kerberospipeline.analysis.tag }}"
imagePullPolicy: {{ .Values.kerberospipeline.analysis.pullPolicy }}
{{- with .Values.kerberospipeline.analysis.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
envFrom:
- configMapRef:
name: mongodb-config
requests:
memory: 10Mi
cpu: 10m
env:
- name: LOG_LEVEL
value: "{{ .Values.kerberospipeline.analysis.logLevel }}"
- name: CLOUD_PROVIDER
value: "{{ .Values.cloudProvider }}"
- name: QUEUE_SYSTEM
value: "{{ .Values.queueProvider }}"
# Database
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
value: "{{ .Values.mongodb.username }}"
- name: MONGODB_PASSWORD
value: "{{ .Values.mongodb.password }}"
# Kafka settings
- name: KAFKA_BROKER
value: "{{ .Values.kafka.broker }}"
@@ -60,50 +58,10 @@ spec:
- name: KAFKA_SECURITY
value: "{{ .Values.kafka.security }}"
# RabbitMQ settings
- name: RABBITMQ_HOST
value: "{{ .Values.rabbitmq.host }}"
- name: RABBITMQ_EXCHANGE
value: "{{ .Values.rabbitmq.exchange }}"
- name: RABBITMQ_USERNAME
value: "{{ .Values.rabbitmq.username }}"
- name: RABBITMQ_PASSWORD
value: "{{ .Values.rabbitmq.password }}"
# Kerberos Vault
- name: KERBEROS_STORAGE_URI
value: "{{ .Values.kerberosvault.uri }}"
- name: KERBEROS_STORAGE_ACCESS_KEY
value: "{{ .Values.kerberosvault.accesskey }}"
- name: KERBEROS_STORAGE_SECRET
value: "{{ .Values.kerberosvault.secretkey }}"
# Sprites
- name: SPRITE_ENABLED
value: "{{ .Values.kerberospipeline.sprite.enabled }}"
# Open Telemetry tracing
- name: OTEL_EXPORTED_OTLP_ENABLED
value: "{{ .Values.opentelemetry.enabled }}"
- name: OTEL_EXPORTED_OTLP_ROUTING_ENABLED
value: "{{ .Values.opentelemetry.routingEnabled }}"
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "{{ .Values.opentelemetry.collector.endpoint }}"
---
apiVersion: v1
kind: Service
metadata:
name: pipe-analysis
namespace: {{ .Release.Namespace }}
labels:
app: pipe-analysis
service: pipe
spec:
ports:
- name: hub-metrics
port: 8080
targetPort: 8080
protocol: TCP
selector:
app: pipe-analysis
{{- end }}
value: "{{ .Values.kerberosvault.secretkey }}"
@@ -1,11 +1,9 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "pipeline") -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: pipe-counting
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.kerberospipeline.counting.replicas }}
replicas: 1
selector:
matchLabels:
app: pipe-counting
@@ -20,24 +18,19 @@ spec:
labels:
app: pipe-counting
spec:
{{- if .Values.kerberoshub.serviceAccount.create }}
serviceAccountName: {{ default (printf "%s-%s-sa" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-") .Values.kerberoshub.serviceAccount.name }}
{{- end }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: pipe-counting
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.counting.repository }}:{{ .Values.kerberospipeline.counting.tag }}"
image: "{{ .Values.kerberospipeline.counting.repository }}:{{ .Values.kerberospipeline.counting.tag }}"
imagePullPolicy: {{ .Values.kerberospipeline.counting.pullPolicy }}
{{- with .Values.kerberospipeline.counting.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
requests:
memory: 10Mi
cpu: 10m
env:
- name: LOG_LEVEL
value: "{{ .Values.kerberospipeline.counting.logLevel }}"
- name: CLOUD_PROVIDER
value: "{{ .Values.cloudProvider }}"
- name: QUEUE_SYSTEM
@@ -53,40 +46,4 @@ spec:
- name: KAFKA_MECHANISM
value: "{{ .Values.kafka.mechanism }}"
- name: KAFKA_SECURITY
value: "{{ .Values.kafka.security }}"
# RabbitMQ settings
- name: RABBITMQ_HOST
value: "{{ .Values.rabbitmq.host }}"
- name: RABBITMQ_EXCHANGE
value: "{{ .Values.rabbitmq.exchange }}"
- name: RABBITMQ_USERNAME
value: "{{ .Values.rabbitmq.username }}"
- name: RABBITMQ_PASSWORD
value: "{{ .Values.rabbitmq.password }}"
# Open Telemetry tracing
- name: OTEL_EXPORTED_OTLP_ENABLED
value: "{{ .Values.opentelemetry.enabled }}"
- name: OTEL_EXPORTED_OTLP_ROUTING_ENABLED
value: "{{ .Values.opentelemetry.routingEnabled }}"
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "{{ .Values.opentelemetry.collector.endpoint }}"
---
apiVersion: v1
kind: Service
metadata:
name: pipe-counting
namespace: {{ .Release.Namespace }}
labels:
app: pipe-counting
service: pipe
spec:
ports:
- name: hub-metrics
port: 8080
targetPort: 8080
protocol: TCP
selector:
app: pipe-counting
{{- end }}
value: "{{ .Values.kafka.security }}"
@@ -1,11 +1,9 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "pipeline") -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: pipe-dominantcolor
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.kerberospipeline.dominantColor.replicas }}
replicas: 1
selector:
matchLabels:
app: pipe-dominantcolor
@@ -20,24 +18,19 @@ spec:
labels:
app: pipe-dominantcolor
spec:
{{- if .Values.kerberoshub.serviceAccount.create }}
serviceAccountName: {{ default (printf "%s-%s-sa" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-") .Values.kerberoshub.serviceAccount.name }}
{{- end }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: pipe-dominantcolor
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.dominantColor.repository }}:{{ .Values.kerberospipeline.dominantColor.tag }}"
image: "{{ .Values.kerberospipeline.dominantColor.repository }}:{{ .Values.kerberospipeline.dominantColor.tag }}"
imagePullPolicy: {{ .Values.kerberospipeline.dominantColor.pullPolicy }}
{{- with .Values.kerberospipeline.dominantColor.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
requests:
memory: 10Mi
cpu: 10m
env:
- name: LOG_LEVEL
value: "{{ .Values.kerberospipeline.dominantColor.logLevel }}"
- name: CLOUD_PROVIDER
value: "{{ .Values.cloudProvider }}"
- name: QUEUE_SYSTEM
@@ -53,40 +46,4 @@ spec:
- name: KAFKA_MECHANISM
value: "{{ .Values.kafka.mechanism }}"
- name: KAFKA_SECURITY
value: "{{ .Values.kafka.security }}"
# RabbitMQ settings
- name: RABBITMQ_HOST
value: "{{ .Values.rabbitmq.host }}"
- name: RABBITMQ_EXCHANGE
value: "{{ .Values.rabbitmq.exchange }}"
- name: RABBITMQ_USERNAME
value: "{{ .Values.rabbitmq.username }}"
- name: RABBITMQ_PASSWORD
value: "{{ .Values.rabbitmq.password }}"
# Open Telemetry tracing
- name: OTEL_EXPORTED_OTLP_ENABLED
value: "{{ .Values.opentelemetry.enabled }}"
- name: OTEL_EXPORTED_OTLP_ROUTING_ENABLED
value: "{{ .Values.opentelemetry.routingEnabled }}"
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "{{ .Values.opentelemetry.collector.endpoint }}"
---
apiVersion: v1
kind: Service
metadata:
name: pipe-dominantcolor
namespace: {{ .Release.Namespace }}
labels:
app: pipe-dominantcolor
service: pipe
spec:
ports:
- name: hub-metrics
port: 8080
targetPort: 8080
protocol: TCP
selector:
app: pipe-dominantcolor
{{- end }}
value: "{{ .Values.kafka.security }}"
@@ -1,11 +1,9 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "pipeline") -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: pipe-event
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.kerberospipeline.event.replicas }}
replicas: 1
selector:
matchLabels:
app: pipe-event
@@ -17,41 +15,37 @@ spec:
maxSurge: 1
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap-mongodb.yaml") . | sha256sum }}
labels:
app: pipe-event
spec:
{{- if .Values.kerberoshub.serviceAccount.create }}
serviceAccountName: {{ default (printf "%s-%s-sa" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-") .Values.kerberoshub.serviceAccount.name }}
{{- end }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: pipe-event
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.event.repository }}:{{ .Values.kerberospipeline.event.tag }}"
image: "{{ .Values.kerberospipeline.event.repository }}:{{ .Values.kerberospipeline.event.tag }}"
imagePullPolicy: {{ .Values.kerberospipeline.event.pullPolicy }}
{{- with .Values.kerberospipeline.event.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
ports:
- containerPort: 8080
envFrom:
- configMapRef:
name: mongodb-config
requests:
memory: 10Mi
cpu: 10m
env:
- name: LOG_LEVEL
value: "{{ .Values.kerberospipeline.event.logLevel }}"
- name: READ_ONLY
value: "{{ .Values.readonly }}"
- name: CLOUD_PROVIDER
value: "{{ .Values.cloudProvider }}"
- name: QUEUE_SYSTEM
value: "{{ .Values.queueProvider }}"
# Database
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
value: "{{ .Values.mongodb.username }}"
- name: MONGODB_PASSWORD
value: "{{ .Values.mongodb.password }}"
# Kafka settings
- name: KAFKA_BROKER
value: "{{ .Values.kafka.broker }}"
@@ -62,40 +56,4 @@ spec:
- name: KAFKA_MECHANISM
value: "{{ .Values.kafka.mechanism }}"
- name: KAFKA_SECURITY
value: "{{ .Values.kafka.security }}"
# RabbitMQ settings
- name: RABBITMQ_HOST
value: "{{ .Values.rabbitmq.host }}"
- name: RABBITMQ_EXCHANGE
value: "{{ .Values.rabbitmq.exchange }}"
- name: RABBITMQ_USERNAME
value: "{{ .Values.rabbitmq.username }}"
- name: RABBITMQ_PASSWORD
value: "{{ .Values.rabbitmq.password }}"
# Open Telemetry tracing
- name: OTEL_EXPORTED_OTLP_ENABLED
value: "{{ .Values.opentelemetry.enabled }}"
- name: OTEL_EXPORTED_OTLP_ROUTING_ENABLED
value: "{{ .Values.opentelemetry.routingEnabled }}"
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "{{ .Values.opentelemetry.collector.endpoint }}"
---
apiVersion: v1
kind: Service
metadata:
name: pipe-event
namespace: {{ .Release.Namespace }}
labels:
app: pipe-event
service: pipe
spec:
ports:
- name: hub-metrics
port: 8080
targetPort: 8080
protocol: TCP
selector:
app: pipe-event
{{- end }}
value: "{{ .Values.kafka.security }}"
@@ -1,133 +0,0 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "pipeline") -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: pipe-export
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.kerberospipeline.export.replicas }}
selector:
matchLabels:
app: pipe-export
minReadySeconds: 10
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap-mongodb.yaml") . | sha256sum }}
labels:
app: pipe-export
spec:
{{- if .Values.kerberoshub.serviceAccount.create }}
serviceAccountName: {{ default (printf "%s-%s-sa" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-") .Values.kerberoshub.serviceAccount.name }}
{{- end }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: pipe-export
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.export.repository }}:{{ .Values.kerberospipeline.export.tag }}"
imagePullPolicy: {{ .Values.kerberospipeline.export.pullPolicy }}
{{- with .Values.kerberospipeline.export.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
envFrom:
- configMapRef:
name: mongodb-config
env:
- name: LOG_LEVEL
value: "{{ .Values.kerberospipeline.export.logLevel }}"
- name: CLOUD_PROVIDER
value: "{{ .Values.cloudProvider }}"
- name: QUEUE_SYSTEM
value: "{{ .Values.queueProvider }}"
# Kafka settings
- name: KAFKA_BROKER
value: "{{ .Values.kafka.broker }}"
- name: KAFKA_USERNAME
value: "{{ .Values.kafka.username }}"
- name: KAFKA_PASSWORD
value: "{{ .Values.kafka.password }}"
- name: KAFKA_MECHANISM
value: "{{ .Values.kafka.mechanism }}"
- name: KAFKA_SECURITY
value: "{{ .Values.kafka.security }}"
# RabbitMQ settings
- name: RABBITMQ_HOST
value: "{{ .Values.rabbitmq.host }}"
- name: RABBITMQ_EXCHANGE
value: "{{ .Values.rabbitmq.exchange }}"
- name: RABBITMQ_USERNAME
value: "{{ .Values.rabbitmq.username }}"
- name: RABBITMQ_PASSWORD
value: "{{ .Values.rabbitmq.password }}"
# Kerberos Vault (Main instance, within Kerberos Hub you can assign additional Vaults to sites).
- name: STORAGE_URI
value: "{{ .Values.kerberosvault.uri }}"
- name: STORAGE_ACCESS_KEY
value: "{{ .Values.kerberosvault.accesskey }}"
- name: STORAGE_SECRET_KEY
value: "{{ .Values.kerberosvault.secretkey }}"
# Kerberos Vault: archiving credentials. When creating a task, the underlying recording will be
# copied to this storage provider, using the specific account credentials, for deletion/retention.
- name: STORAGE_ARCHIVE_PROVIDER
value: "{{ .Values.kerberosvault.archive.provider }}"
- name: STORAGE_ARCHIVE_ACCESS_KEY
value: "{{ .Values.kerberosvault.archive.accesskey }}"
- name: STORAGE_ARCHIVE_SECRET_KEY
value: "{{ .Values.kerberosvault.archive.secretkey }}"
# Sprites
- name: SPRITE_ENABLED
value: "{{ .Values.kerberospipeline.sprite.enabled }}"
- name: VAULT_SPRITE_PROVIDER
value: "{{ .Values.kerberosvault.sprite.provider }}"
- name: VAULT_SPRITE_ACCESS_KEY
value: "{{ .Values.kerberosvault.sprite.accessKey }}"
- name: VAULT_SPRITE_SECRET_KEY
value: "{{ .Values.kerberosvault.sprite.secretKey }}"
# Thumbnails
- name: THUMBNAIL_VAULT_ENABLED
value: "{{ .Values.kerberospipeline.thumbnail.kerberosvault.enabled }}"
- name: VAULT_THUMBNAIL_PROVIDER
value: "{{ .Values.kerberosvault.thumbnail.provider }}"
- name: VAULT_THUMBNAIL_ACCESS_KEY
value: "{{ .Values.kerberosvault.thumbnail.accessKey }}"
- name: VAULT_THUMBNAIL_SECRET_KEY
value: "{{ .Values.kerberosvault.thumbnail.secretKey }}"
# Open Telemetry tracing
- name: OTEL_EXPORTED_OTLP_ENABLED
value: "{{ .Values.opentelemetry.enabled }}"
- name: OTEL_EXPORTED_OTLP_ROUTING_ENABLED
value: "{{ .Values.opentelemetry.routingEnabled }}"
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "{{ .Values.opentelemetry.collector.endpoint }}"
---
apiVersion: v1
kind: Service
metadata:
name: pipe-export
namespace: {{ .Release.Namespace }}
labels:
app: pipe-export
service: pipe
spec:
ports:
- name: hub-metrics
port: 8080
targetPort: 8080
protocol: TCP
selector:
app: pipe-export
{{- end }}
@@ -1,11 +1,9 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "pipeline") -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: pipe-monitor
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.kerberospipeline.monitor.replicas }}
replicas: 1
selector:
matchLabels:
app: pipe-monitor
@@ -17,30 +15,32 @@ spec:
maxSurge: 1
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap-mongodb.yaml") . | sha256sum }}
labels:
app: pipe-monitor
spec:
{{- if .Values.kerberoshub.serviceAccount.create }}
serviceAccountName: {{ default (printf "%s-%s-sa" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-") .Values.kerberoshub.serviceAccount.name }}
{{- end }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: pipe-monitor
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.monitor.repository }}:{{ .Values.kerberospipeline.monitor.tag }}"
image: "{{ .Values.kerberospipeline.monitor.repository }}:{{ .Values.kerberospipeline.monitor.tag }}"
imagePullPolicy: {{ .Values.kerberospipeline.monitor.pullPolicy }}
{{- with .Values.kerberospipeline.monitor.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
envFrom:
- configMapRef:
name: mongodb-config
requests:
memory: 10Mi
cpu: 10m
env:
# Database
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
value: "{{ .Values.mongodb.username }}"
- name: MONGODB_PASSWORD
value: "{{ .Values.mongodb.password }}"
# Queue
- name: QUEUE_SYSTEM
value: "{{ .Values.queueProvider }}"
@@ -57,16 +57,6 @@ spec:
- name: KAFKA_SECURITY
value: "{{ .Values.kafka.security }}"
# RabbitMQ settings
- name: RABBITMQ_HOST
value: "{{ .Values.rabbitmq.host }}"
- name: RABBITMQ_EXCHANGE
value: "{{ .Values.rabbitmq.exchange }}"
- name: RABBITMQ_USERNAME
value: "{{ .Values.rabbitmq.username }}"
- name: RABBITMQ_PASSWORD
value: "{{ .Values.rabbitmq.password }}"
# Mail settings
- name: MAIL_PROVIDER
value: "{{ .Values.email.provider }}"
@@ -90,29 +80,3 @@ spec:
value: "{{ .Values.email.smtp.username }}"
- name: SMTP_PASSWORD
value: "{{ .Values.email.smtp.password }}"
# Open Telemetry tracing
- name: OTEL_EXPORTED_OTLP_ENABLED
value: "{{ .Values.opentelemetry.enabled }}"
- name: OTEL_EXPORTED_OTLP_ROUTING_ENABLED
value: "{{ .Values.opentelemetry.routingEnabled }}"
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "{{ .Values.opentelemetry.collector.endpoint }}"
---
apiVersion: v1
kind: Service
metadata:
name: pipe-monitor
namespace: {{ .Release.Namespace }}
labels:
app: pipe-monitor
service: pipe
spec:
ports:
- name: hub-metrics
port: 8080
targetPort: 8080
protocol: TCP
selector:
app: pipe-monitor
{{- end }}
@@ -1,11 +1,9 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "pipeline") -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: pipe-notify-test
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.kerberospipeline.notifyTest.replicas }}
replicas: 1
selector:
matchLabels:
app: pipe-notify-test
@@ -17,14 +15,9 @@ spec:
maxSurge: 1
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap-mongodb.yaml") . | sha256sum }}
labels:
app: pipe-notify-test
spec:
{{- if .Values.kerberoshub.serviceAccount.create }}
serviceAccountName: {{ default (printf "%s-%s-sa" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-") .Values.kerberoshub.serviceAccount.name }}
{{- end }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
@@ -35,23 +28,30 @@ spec:
{{- end }}
containers:
- name: pipe-notify-test
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.notifyTest.repository }}:{{ .Values.kerberospipeline.notifyTest.tag }}"
image: "{{ .Values.kerberospipeline.notifyTest.repository }}:{{ .Values.kerberospipeline.notifyTest.tag }}"
imagePullPolicy: {{ .Values.kerberospipeline.notifyTest.pullPolicy }}
{{- with .Values.kerberospipeline.notifyTest.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
requests:
memory: 10Mi
cpu: 10m
{{- with .Values.kerberospipeline.notifyTest.volumeMounts}}
volumeMounts:
{{- toYaml . | nindent 12 }}
{{- end }}
envFrom:
- configMapRef:
name: mongodb-config
env:
- name: QUEUE_SYSTEM
value: "{{ .Values.queueProvider }}"
# Database
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
value: "{{ .Values.mongodb.username }}"
- name: MONGODB_PASSWORD
value: "{{ .Values.mongodb.password }}"
# Kerberos Vault
- name: STORAGE_URI
value: "{{ .Values.kerberosvault.uri }}"
@@ -72,16 +72,6 @@ spec:
- name: KAFKA_SECURITY
value: "{{ .Values.kafka.security }}"
# RabbitMQ settings
- name: RABBITMQ_HOST
value: "{{ .Values.rabbitmq.host }}"
- name: RABBITMQ_EXCHANGE
value: "{{ .Values.rabbitmq.exchange }}"
- name: RABBITMQ_USERNAME
value: "{{ .Values.rabbitmq.username }}"
- name: RABBITMQ_PASSWORD
value: "{{ .Values.rabbitmq.password }}"
# Mail settings
- name: MAIL_PROVIDER
value: "{{ .Values.email.provider }}"
@@ -103,29 +93,3 @@ spec:
value: "{{ .Values.email.smtp.username }}"
- name: SMTP_PASSWORD
value: "{{ .Values.email.smtp.password }}"
# Open Telemetry tracing
- name: OTEL_EXPORTED_OTLP_ENABLED
value: "{{ .Values.opentelemetry.enabled }}"
- name: OTEL_EXPORTED_OTLP_ROUTING_ENABLED
value: "{{ .Values.opentelemetry.routingEnabled }}"
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "{{ .Values.opentelemetry.collector.endpoint }}"
---
apiVersion: v1
kind: Service
metadata:
name: pipe-notify-test
namespace: {{ .Release.Namespace }}
labels:
app: pipe-notify-test
service: pipe
spec:
ports:
- name: hub-metrics
port: 8080
targetPort: 8080
protocol: TCP
selector:
app: pipe-notify-test
{{- end }}
@@ -1,11 +1,9 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "pipeline") -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: pipe-notify
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.kerberospipeline.notify.replicas }}
replicas: 1
selector:
matchLabels:
app: pipe-notify
@@ -17,14 +15,9 @@ spec:
maxSurge: 1
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap-mongodb.yaml") . | sha256sum }}
labels:
app: pipe-notify
spec:
{{- if .Values.kerberoshub.serviceAccount.create }}
serviceAccountName: {{ default (printf "%s-%s-sa" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-") .Values.kerberoshub.serviceAccount.name }}
{{- end }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
@@ -35,25 +28,31 @@ spec:
{{- end }}
containers:
- name: pipe-notify
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.notify.repository }}:{{ .Values.kerberospipeline.notify.tag }}"
image: "{{ .Values.kerberospipeline.notify.repository }}:{{ .Values.kerberospipeline.notify.tag }}"
imagePullPolicy: {{ .Values.kerberospipeline.notify.pullPolicy }}
{{- with .Values.kerberospipeline.notify.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
requests:
memory: 10Mi
cpu: 10m
{{- with .Values.kerberospipeline.notify.volumeMounts}}
volumeMounts:
{{- toYaml . | nindent 12 }}
{{- end }}
envFrom:
- configMapRef:
name: mongodb-config
env:
- name: LOG_LEVEL
value: "{{ .Values.kerberospipeline.notify.logLevel }}"
# Queue
- name: QUEUE_SYSTEM
value: "{{ .Values.queueProvider }}"
- name: MAIL_PROVIDER
value: "{{ .Values.email.provider }}"
# Database
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
value: "{{ .Values.mongodb.username }}"
- name: MONGODB_PASSWORD
value: "{{ .Values.mongodb.password }}"
# Kafka settings
- name: KAFKA_BROKER
@@ -67,16 +66,6 @@ spec:
- name: KAFKA_SECURITY
value: "{{ .Values.kafka.security }}"
# RabbitMQ settings
- name: RABBITMQ_HOST
value: "{{ .Values.rabbitmq.host }}"
- name: RABBITMQ_EXCHANGE
value: "{{ .Values.rabbitmq.exchange }}"
- name: RABBITMQ_USERNAME
value: "{{ .Values.rabbitmq.username }}"
- name: RABBITMQ_PASSWORD
value: "{{ .Values.rabbitmq.password }}"
# Kerberos Vault
- name: STORAGE_URI
value: "{{ .Values.kerberosvault.uri }}"
@@ -96,8 +85,6 @@ spec:
# Mail templates
- name: DETECT_TEMPLATE
value: "{{ .Values.email.templates.detection }}"
- name: ALERT_TITLE
value: "{{ .Values.email.templates.alertTitle }}"
# SMTP
- name: SMTP_SERVER
@@ -114,50 +101,3 @@ spec:
value: "{{ .Values.email.mailgun.domain }}"
- name: MAILGUN_API_KEY
value: "{{ .Values.email.mailgun.apikey }}"
# There is an option to store the thumbnails in a storage provider in Kerberos Vault.
# This will lower storage in mongodb.
- name: THUMBNAIL_VAULT_ENABLED
value: "{{ .Values.kerberospipeline.thumbnail.kerberosvault.enabled }}"
- name: VAULT_THUMBNAIL_PROVIDER
value: "{{ .Values.kerberosvault.thumbnail.provider }}"
- name: VAULT_THUMBNAIL_ACCESS_KEY
value: "{{ .Values.kerberosvault.thumbnail.accessKey }}"
- name: VAULT_THUMBNAIL_SECRET_KEY
value: "{{ .Values.kerberosvault.thumbnail.secretKey }}"
# There is an option to store the sprites in a storage provider in Kerberos Vault.
- name: VAULT_SPRITE_ENABLED
value: "{{ .Values.kerberospipeline.sprite.enabled }}"
- name: VAULT_SPRITE_PROVIDER
value: "{{ .Values.kerberosvault.sprite.provider }}"
- name: VAULT_SPRITE_ACCESS_KEY
value: "{{ .Values.kerberosvault.sprite.accessKey }}"
- name: VAULT_SPRITE_SECRET_KEY
value: "{{ .Values.kerberosvault.sprite.secretKey }}"
# Open Telemetry tracing
- name: OTEL_EXPORTED_OTLP_ENABLED
value: "{{ .Values.opentelemetry.enabled }}"
- name: OTEL_EXPORTED_OTLP_ROUTING_ENABLED
value: "{{ .Values.opentelemetry.routingEnabled }}"
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "{{ .Values.opentelemetry.collector.endpoint }}"
---
apiVersion: v1
kind: Service
metadata:
name: pipe-notify
namespace: {{ .Release.Namespace }}
labels:
app: pipe-notify
service: pipe
spec:
ports:
- name: hub-metrics
port: 8080
targetPort: 8080
protocol: TCP
selector:
app: pipe-notify
{{- end }}
@@ -1,11 +1,9 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "pipeline") -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: pipe-sequence
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.kerberospipeline.sequence.replicas }}
replicas: 1
selector:
matchLabels:
app: pipe-sequence
@@ -17,35 +15,37 @@ spec:
maxSurge: 1
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap-mongodb.yaml") . | sha256sum }}
labels:
app: pipe-sequence
spec:
{{- if .Values.kerberoshub.serviceAccount.create }}
serviceAccountName: {{ default (printf "%s-%s-sa" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-") .Values.kerberoshub.serviceAccount.name }}
{{- end }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: pipe-sequence
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.sequence.repository }}:{{ .Values.kerberospipeline.sequence.tag }}"
image: "{{ .Values.kerberospipeline.sequence.repository }}:{{ .Values.kerberospipeline.sequence.tag }}"
imagePullPolicy: {{ .Values.kerberospipeline.sequence.pullPolicy }}
{{- with .Values.kerberospipeline.sequence.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
envFrom:
- configMapRef:
name: mongodb-config
requests:
memory: 10Mi
cpu: 10m
env:
- name: CLOUD_PROVIDER
value: "{{ .Values.cloudProvider }}"
- name: QUEUE_SYSTEM
value: "{{ .Values.queueProvider }}"
# Database
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
value: "{{ .Values.mongodb.username }}"
- name: MONGODB_PASSWORD
value: "{{ .Values.mongodb.password }}"
# Kafka settings
- name: KAFKA_BROKER
value: "{{ .Values.kafka.broker }}"
@@ -56,40 +56,4 @@ spec:
- name: KAFKA_MECHANISM
value: "{{ .Values.kafka.mechanism }}"
- name: KAFKA_SECURITY
value: "{{ .Values.kafka.security }}"
# RabbitMQ settings
- name: RABBITMQ_HOST
value: "{{ .Values.rabbitmq.host }}"
- name: RABBITMQ_EXCHANGE
value: "{{ .Values.rabbitmq.exchange }}"
- name: RABBITMQ_USERNAME
value: "{{ .Values.rabbitmq.username }}"
- name: RABBITMQ_PASSWORD
value: "{{ .Values.rabbitmq.password }}"
# Open Telemetry tracing
- name: OTEL_EXPORTED_OTLP_ENABLED
value: "{{ .Values.opentelemetry.enabled }}"
- name: OTEL_EXPORTED_OTLP_ROUTING_ENABLED
value: "{{ .Values.opentelemetry.routingEnabled }}"
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "{{ .Values.opentelemetry.collector.endpoint }}"
---
apiVersion: v1
kind: Service
metadata:
name: pipe-sequence
namespace: {{ .Release.Namespace }}
labels:
app: pipe-sequence
service: pipe
spec:
ports:
- name: hub-metrics
port: 8080
targetPort: 8080
protocol: TCP
selector:
app: pipe-sequence
{{- end }}
value: "{{ .Values.kafka.security }}"
@@ -1,115 +0,0 @@
{{- if and (or (eq .Values.mode "all") (eq .Values.mode "pipeline")) (eq .Values.kerberospipeline.sprite.enabled true) }}
apiVersion: apps/v1
kind: Deployment
metadata:
name: pipe-sprite
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.kerberospipeline.sprite.replicas }}
selector:
matchLabels:
app: pipe-sprite
minReadySeconds: 10
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
template:
metadata:
labels:
app: pipe-sprite
spec:
{{- if .Values.kerberoshub.serviceAccount.create }}
serviceAccountName: {{ default (printf "%s-%s-sa" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-") .Values.kerberoshub.serviceAccount.name }}
{{- end }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: pipe-sprite
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.sprite.repository }}:{{ .Values.kerberospipeline.sprite.tag }}"
imagePullPolicy: {{ .Values.kerberospipeline.sprite.pullPolicy }}
{{- with .Values.kerberospipeline.sprite.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
env:
- name: LOG_LEVEL
value: "{{ .Values.kerberospipeline.sprite.logLevel }}"
{{ if .Values.isPrivate }}
- name: KERBEROS_PRIVATE_CLOUD
value: "true"
{{ else }}
- name: KERBEROS_PRIVATE_CLOUD
value: "false"
{{ end }}
- name: CLOUD_PROVIDER
value: "{{ .Values.cloudProvider }}"
- name: QUEUE_SYSTEM
value: "{{ .Values.queueProvider }}"
# Kafka settings
- name: KAFKA_BROKER
value: "{{ .Values.kafka.broker }}"
- name: KAFKA_USERNAME
value: "{{ .Values.kafka.username }}"
- name: KAFKA_PASSWORD
value: "{{ .Values.kafka.password }}"
- name: KAFKA_MECHANISM
value: "{{ .Values.kafka.mechanism }}"
- name: KAFKA_SECURITY
value: "{{ .Values.kafka.security }}"
# RabbitMQ settings
- name: RABBITMQ_HOST
value: "{{ .Values.rabbitmq.host }}"
- name: RABBITMQ_EXCHANGE
value: "{{ .Values.rabbitmq.exchange }}"
- name: RABBITMQ_USERNAME
value: "{{ .Values.rabbitmq.username }}"
- name: RABBITMQ_PASSWORD
value: "{{ .Values.rabbitmq.password }}"
# There is an option to store the sprites in a storage provider in Kerberos Vault.
- name: VAULT_SPRITE_ENABLED
value: "{{ .Values.kerberospipeline.sprite.enabled }}"
- name: VAULT_SPRITE_PROVIDER
value: "{{ .Values.kerberosvault.sprite.provider }}"
- name: VAULT_SPRITE_ACCESS_KEY
value: "{{ .Values.kerberosvault.sprite.accessKey }}"
- name: VAULT_SPRITE_SECRET_KEY
value: "{{ .Values.kerberosvault.sprite.secretKey }}"
- name: VAULT_SPRITE_INTERVAL
value: "{{ .Values.kerberospipeline.sprite.interval }}"
- name: VAULT_SPRITE_WIDTH
value: "{{ .Values.kerberospipeline.sprite.width }}"
- name: VAULT_SPRITE_HEIGHT
value: "{{ .Values.kerberospipeline.sprite.height }}"
# Open Telemetry tracing
- name: OTEL_EXPORTED_OTLP_ENABLED
value: "{{ .Values.opentelemetry.enabled }}"
- name: OTEL_EXPORTED_OTLP_ROUTING_ENABLED
value: "{{ .Values.opentelemetry.routingEnabled }}"
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "{{ .Values.opentelemetry.collector.endpoint }}"
---
apiVersion: v1
kind: Service
metadata:
name: pipe-sprite
namespace: {{ .Release.Namespace }}
labels:
app: pipe-sprite
service: pipe
spec:
ports:
- name: hub-metrics
port: 8080
targetPort: 8080
protocol: TCP
selector:
app: pipe-sprite
{{ end }}
@@ -1,11 +1,9 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "pipeline") -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: pipe-throttler
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.kerberospipeline.throttler.replicas }}
replicas: 1
selector:
matchLabels:
app: pipe-throttler
@@ -17,37 +15,37 @@ spec:
maxSurge: 1
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap-mongodb.yaml") . | sha256sum }}
labels:
app: pipe-throttler
spec:
{{- if .Values.kerberoshub.serviceAccount.create }}
serviceAccountName: {{ default (printf "%s-%s-sa" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-") .Values.kerberoshub.serviceAccount.name }}
{{- end }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: pipe-throttler
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.throttler.repository }}:{{ .Values.kerberospipeline.throttler.tag }}"
image: "{{ .Values.kerberospipeline.throttler.repository }}:{{ .Values.kerberospipeline.throttler.tag }}"
imagePullPolicy: {{ .Values.kerberospipeline.throttler.pullPolicy }}
{{- with .Values.kerberospipeline.throttler.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
envFrom:
- configMapRef:
name: mongodb-config
requests:
memory: 10Mi
cpu: 10m
env:
- name: LOG_LEVEL
value: "{{ .Values.kerberospipeline.throttler.logLevel }}"
- name: CLOUD_PROVIDER
value: "{{ .Values.cloudProvider }}"
- name: QUEUE_SYSTEM
value: "{{ .Values.queueProvider }}"
# Database
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
value: "{{ .Values.mongodb.username }}"
- name: MONGODB_PASSWORD
value: "{{ .Values.mongodb.password }}"
# Kafka settings
- name: KAFKA_BROKER
value: "{{ .Values.kafka.broker }}"
@@ -58,40 +56,4 @@ spec:
- name: KAFKA_MECHANISM
value: "{{ .Values.kafka.mechanism }}"
- name: KAFKA_SECURITY
value: "{{ .Values.kafka.security }}"
# RabbitMQ settings
- name: RABBITMQ_HOST
value: "{{ .Values.rabbitmq.host }}"
- name: RABBITMQ_EXCHANGE
value: "{{ .Values.rabbitmq.exchange }}"
- name: RABBITMQ_USERNAME
value: "{{ .Values.rabbitmq.username }}"
- name: RABBITMQ_PASSWORD
value: "{{ .Values.rabbitmq.password }}"
# Open Telemetry tracing
- name: OTEL_EXPORTED_OTLP_ENABLED
value: "{{ .Values.opentelemetry.enabled }}"
- name: OTEL_EXPORTED_OTLP_ROUTING_ENABLED
value: "{{ .Values.opentelemetry.routingEnabled }}"
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "{{ .Values.opentelemetry.collector.endpoint }}"
---
apiVersion: v1
kind: Service
metadata:
name: pipe-throttler
namespace: {{ .Release.Namespace }}
labels:
app: pipe-throttler
service: pipe
spec:
ports:
- name: hub-metrics
port: 8080
targetPort: 8080
protocol: TCP
selector:
app: pipe-throttler
{{- end }}
value: "{{ .Values.kafka.security }}"
@@ -1,11 +1,9 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "pipeline") -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: pipe-thumbnail
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.kerberospipeline.thumbnail.replicas }}
replicas: 1
selector:
matchLabels:
app: pipe-thumbnail
@@ -20,31 +18,19 @@ spec:
labels:
app: pipe-thumbnail
spec:
{{- if .Values.kerberoshub.serviceAccount.create }}
serviceAccountName: {{ default (printf "%s-%s-sa" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-") .Values.kerberoshub.serviceAccount.name }}
{{- end }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: pipe-thumbnail
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberospipeline.thumbnail.repository }}:{{ .Values.kerberospipeline.thumbnail.tag }}"
image: "{{ .Values.kerberospipeline.thumbnail.repository }}:{{ .Values.kerberospipeline.thumbnail.tag }}"
imagePullPolicy: {{ .Values.kerberospipeline.thumbnail.pullPolicy }}
{{- with .Values.kerberospipeline.thumbnail.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
requests:
memory: 10Mi
cpu: 10m
env:
- name: LOG_LEVEL
value: "{{ .Values.kerberospipeline.thumbnail.logLevel }}"
{{ if .Values.isPrivate }}
- name: KERBEROS_PRIVATE_CLOUD
value: "true"
{{ else }}
- name: KERBEROS_PRIVATE_CLOUD
value: "false"
{{ end }}
- name: CLOUD_PROVIDER
value: "{{ .Values.cloudProvider }}"
- name: QUEUE_SYSTEM
@@ -60,60 +46,4 @@ spec:
- name: KAFKA_MECHANISM
value: "{{ .Values.kafka.mechanism }}"
- name: KAFKA_SECURITY
value: "{{ .Values.kafka.security }}"
# RabbitMQ settings
- name: RABBITMQ_HOST
value: "{{ .Values.rabbitmq.host }}"
- name: RABBITMQ_EXCHANGE
value: "{{ .Values.rabbitmq.exchange }}"
- name: RABBITMQ_USERNAME
value: "{{ .Values.rabbitmq.username }}"
- name: RABBITMQ_PASSWORD
value: "{{ .Values.rabbitmq.password }}"
# Thumbnail generation
- name: THUMBNAIL_QUALITY
value: "{{ .Values.kerberospipeline.thumbnail.quality }}"
- name: THUMBNAIL_WIDTH
value: "{{ .Values.kerberospipeline.thumbnail.width }}"
- name: THUMBNAIL_HEIGHT
value: "{{ .Values.kerberospipeline.thumbnail.height }}"
# There is an option to store the thumbnails in a storage provider in Kerberos Vault.
# This will lower storage in mongodb.
- name: THUMBNAIL_VAULT_ENABLED
value: "{{ .Values.kerberospipeline.thumbnail.kerberosvault.enabled }}"
- name: VAULT_THUMBNAIL_PROVIDER
value: "{{ .Values.kerberosvault.thumbnail.provider }}"
- name: VAULT_THUMBNAIL_ACCESS_KEY
value: "{{ .Values.kerberosvault.thumbnail.accessKey }}"
- name: VAULT_THUMBNAIL_SECRET_KEY
value: "{{ .Values.kerberosvault.thumbnail.secretKey }}"
# Open Telemetry tracing
- name: OTEL_EXPORTED_OTLP_ENABLED
value: "{{ .Values.opentelemetry.enabled }}"
- name: OTEL_EXPORTED_OTLP_ROUTING_ENABLED
value: "{{ .Values.opentelemetry.routingEnabled }}"
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "{{ .Values.opentelemetry.collector.endpoint }}"
---
apiVersion: v1
kind: Service
metadata:
name: pipe-thumbnail
namespace: {{ .Release.Namespace }}
labels:
app: pipe-thumbnail
service: pipe
spec:
ports:
- name: hub-metrics
port: 8080
targetPort: 8080
protocol: TCP
selector:
app: pipe-thumbnail
{{- end }}
value: "{{ .Values.kafka.security }}"
@@ -1,18 +0,0 @@
{{- if or (eq .Values.mode "all") (eq .Values.mode "pipeline") -}}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: hub-metrics-servicemonitor
namespace: {{ .Release.Namespace }}
labels:
service: pipe
release: prometheus
spec:
selector:
matchLabels:
service: pipe
endpoints:
- port: hub-metrics
interval: 15s
path: /metrics
{{- end }}
@@ -1,10 +1,7 @@
# If .Values.kerberoshub.forwarder.enabled is set to true
{{- if and (eq .Values.mode "all") .Values.kerberoshub.forwarder.enabled }}
apiVersion: apps/v1
kind: Deployment
metadata:
name: vault-forwarder
namespace: {{ .Release.Namespace }}
spec:
replicas: 1
selector:
@@ -18,8 +15,6 @@ spec:
maxSurge: 1
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap-mongodb.yaml") . | sha256sum }}
labels:
app: vault-forwarder
spec:
@@ -29,24 +24,33 @@ spec:
{{- end }}
containers:
- name: vault-forwarder
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberoshub.forwarder.repository }}:{{ .Values.kerberoshub.forwarder.tag }}"
image: "{{ .Values.kerberoshub.forwarder.repository }}:{{ .Values.kerberoshub.forwarder.tag }}"
imagePullPolicy: {{ .Values.kerberoshub.forwarder.pullPolicy }}
resources:
requests:
memory: 10Mi
cpu: 10m
envFrom:
- configMapRef:
name: mongodb-config
env:
- name: ITERATION_SPEED
value: "5"
- name: BUFFER_TIME
value: "3"
- name: MQTT_URI
value: "{{ .Values.mqtt.host }}"
- name: MQTT_USERNAME
value: "{{ .Values.mqtt.username }}"
- name: MQTT_PASSWORD
value: "{{ .Values.mqtt.password }}"
{{- end }}
- name: ITERATION_SPEED
value: "5"
- name: BUFFER_TIME
value: "3"
# Mongodb
- name: MONGODB_DATABASE_CLOUD
value: "Kerberos"
- name: MONGODB_HOST
value: "{{ .Values.mongodb.host }}"
- name: MONGODB_DATABASE_CREDENTIALS
value: "{{ .Values.mongodb.adminDatabase }}"
- name: MONGODB_USERNAME
value: "{{ .Values.mongodb.username }}"
- name: MONGODB_PASSWORD
value: "{{ .Values.mongodb.password }}"
# Mqtt (VERNEMQ)
- name: MQTT_URI
value: "{{ .Values.mqtt.host }}"
- name: MQTT_USERNAME
value: "{{ .Values.mqtt.username }}"
- name: MQTT_PASSWORD
value: "{{ .Values.mqtt.password }}"
@@ -1,11 +1,9 @@
{{- if eq .Values.mode "all" -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: vault-proxy
namespace: {{ .Release.Namespace }}
spec:
replicas: {{ .Values.kerberoshub.proxy.replicas }}
replicas: 3
selector:
matchLabels:
app: vault-proxy
@@ -20,20 +18,16 @@ spec:
labels:
app: vault-proxy
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
- name: regcred
containers:
- name: vault-proxy
image: "{{ .Values.global.imageRegistry }}{{ .Values.kerberoshub.proxy.repository }}:{{ .Values.kerberoshub.proxy.tag }}"
image: "{{ .Values.kerberoshub.proxy.repository }}:{{ .Values.kerberoshub.proxy.tag }}"
imagePullPolicy: {{ .Values.kerberoshub.proxy.pullPolicy }}
ports:
- containerPort: 8080
name: http
env:
- name: LOG_LEVEL
value: "{{ .Values.kerberoshub.proxy.logLevel }}"
# Kerberos Hub API
- name: KERBEROS_API_CHECK_SUBSCRIPTION
value: "{{ .Values.kerberoshub.api.schema }}://{{ .Values.kerberoshub.api.url }}/user/has-subscription"
@@ -51,7 +45,6 @@ apiVersion: v1
kind: Service
metadata:
name: vault-proxy-svc
namespace: {{ .Release.Namespace }}
labels:
app: vault-proxy-svc
spec:
@@ -63,4 +56,3 @@ spec:
name: http
selector:
app: vault-proxy
{{- end }}
+24
View File
@@ -0,0 +1,24 @@
dashboard:
enabled: true
domain: yourdomain.com
serviceType: NodePort
rbac:
enabled: true
ssl:
enabled: true
enforced: true
permanentRedirect: true
acme:
enabled: true
challengeType: "dns-01"
email: ...
caServer: https://acme-v02.api.letsencrypt.org/directory
domains:
enabled: true
domainsList:
- main: "*.yourdomain.com"
dnsProvider:
name: cloudflare
cloudflare:
CLOUDFLARE_EMAIL: youremail
CLOUDFLARE_API_KEY: yourpassword
+150 -560
View File
@@ -1,66 +1,43 @@
# Default values for hub.
# Default values for kerberoshub.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
#######################################################
# LICENSING information: you will a license to run Hub.
# Get your license from support@kerberos.io or
# use the 8 camera license for testing.
#######################################################
license: "L/+DAwEBB2xpY2Vuc2UB/4QAAQIBB1BheWxvYWQBCgABCVNpZ25hdHVyZQEKAAAA/gMk/4QB/gEZ/8sQACxnaXRodWIuY29tL3V1Zy1haS9odWItbGljZW5zZS9tb2RlbHMuTGljZW5zZX8DAQEHTGljZW5zZQH/gAABDAECSWQB/4IAAQNLZXkBDAABB0NvbXBhbnkBDAABB0V4cFRpbWUBBAABBERheXMBBAABB0NhbWVyYXMBBAABBVNpdGVzAQQAAQZWYXVsdHMBBAABCk1lZGlhTGltaXQBBAABCVBlcnBldHVhbAECAAEGQWN0aXZlAQIAAQlJcEFkZHJlc3MBDAAAABj/gQEBAQhPYmplY3RJRAH/ggABBgEYAAAy/4AvAQwAAAAAAAAAAAAAAAACDGZyZWUtbGljZW5zZQH81iZi6gH+AtoBEAEUARQDAQAB/gIAfeXxQb6kaPfAgOWeSAE6qEiQviFD6sciNmNfMel1mEL53FeV0GQe4cYBip9wyJag35az8A1yppxSymZD5V4my2FckyN2zmEW4E2sO/v+8eKepiAGYEzrKtfNCLxdWLmrHd0zjYQ3qk+PNfoPyzCOefeulw3aFsqBlzg9wDkF8cRx6tUW0qNTzki6sFGOuLoxS49cWqsftAvZmt+CRWa8u0VArIAjOpywN0RIZCkEYzp5RYF3LSVyWYEyvVhjE19DDnevzpJyCHRsIHTRcpTQkhboeapOdlEz8cx+PaOvxktN8hBWceTAH+nw96FARG7y6Cpjw3xo+NV1xb0tvRXGaGoK77JnErKLhd/haXji98rGvMakDt18WSbQfTVS84+Fw+/gKGsW3uS3fROAaZw1kZj4PgsEPZDvbVkCVyuS0O87UoYqpxH8S4by8cTF3wDP7FwyIRZbEbYjN2wzHSmlADYOBtdsdb1VGm7wvtB85vML9n7ZSlIpJdqfci06mGks102mDyG2LRMhUEvpUW3D/weErIvj2WiAwf6r0EUj+LO8VmAsYkME9da7FXEN6Vg/5f1u485LOpYki332RaDOhDn2eMG9DVb/HnmQSFagX+XXc/QwfsWiehCgKYGk4jQpyklTqoGu8BAt6Sm8CaoH8ngZ3cHLQT5DcZElV36/N/wA"
###########################################################################
# LICENSING information: you will need both a license to run Kerberos Hub,
# and a Registry Key to pull the Kerberos Hub docker images from our private Gitlab repository.
# ----
# Get your license from support@kerberos.io
license: "---ENTER-YOUR-LICENSE-HERE---"
licenseServer:
url: ""
token: ""
###########################################################################
# # Environment: set to 'production', 'develop', 'demo', 'staging' or 'acceptance'.
# Change the environment to 'staging' or 'acceptance' will add a banner on the
# front-end, to indicate the environment.
###########################################################################
environment: "production"
isPrivate: true # Set to 'true' if this is a private deployment.
readOnly: false # Set to 'true' to halt all write operations to the database (e.g. migration, etc).
###################################################################
# Deployment mode: all | pipeline | ui
# - all: Hub services + pipeline + vault
# - pipeline: pipeline only
# - ui: Hub services only
mode: "all"
###########################################################################
# Global configuration
###########################################################################
global:
imageRegistry: ""
# Private Docker Registry: The registry secret is required if you have your Docker images behind a private registry.
# By default it will pull from Docker hub (https://hub.docker.com/r/kerberos).
#imagePullSecrets:
# - name: regcred
url: "https://license.kerberos.io/verify"
token: "214%ˆ#ddfsf@#3rfdsgl_)23sffeqasSwefDSFNBM" # do not change otherwise Kerberos Hub will not work.
# The registry secret to be able to download all the Docker images.
# Needs to be delivered after license purchase.
imagePullSecrets:
- name: regcred
# Set to 'true' if this is a private deployment.
isPrivate: true
# If you plan a migration or doing maintenance, you can enable readonly.
# This will stop any write process to mongodb or any processing done in the Kerberos Hub pipeline.
readOnly: false
# Which network ingress you are using in your Kubernetes Cluster
ingress: "nginx" # or "traefik"
# A mongodb instance is required to store all the relevant metadata (this can be standalone or in a cluster).
#########################################
# Database configuration (metadata store)
#########################################
# A mongodb instance is required to store all the relevant metadata.
mongodb:
# MongoDB URI (for example for a SaaS service like MongoDB Atlas)
# If uri is set, the below properties are not used (host, adminDatabase, username, password)
#uri: "mongodb+srv://xx:xx@kerberos-hub.xxx.mongodb.net/?retryWrites=true&w=majority&appName=xxx"
# Self-hosted mongodb, you could also use the uri property above.
host: mongodb.mongodb
host: mongodb.mongodb.svc.cluster.local
#host: "mongodb-0.mongodb-headless.mongodb:27017,mongodb-1.mongodb-headless.mongodb:27017"
adminDatabase: admin
authenticationMechanism: SCRAM-SHA-256
username: yourusername
password: "yourpassword"
retryWrites: "true"
###################################################
# MQTT configuration (bi-directional communication)
###################################################
# A MQTT broker (vernemq or other like mosquitto) is used to have a bi-directional communication between Agents and Hub.
# We recommend to use VernemQ (as part of this installation), but a stand-alone mosquitto broker is also possible.
# A MQTT broker (vernemq) is used to have a bi-directional
# communication between enterprise agents and kerberos hub.
mqtt:
host: "mqtt.yourdomain.com" # this needs to be a public accessible DNS name (it's used to communicate between Kerberos Agents and Kerberos Hub)
host: "mqtt.yourdomain.com"
port: "8443"
protocol: "wss"
username: "yourusername"
@@ -68,146 +45,80 @@ mqtt:
legacy:
host: ""
port: ""
################################################################
# AMQP configuration (asynchronous processing for microservices)
#
# Usecases:
# - Hub pipeline: each time a recording is created, a message is
# send to the pipeline to process the recording.
################################################################
# We are using a pipeline that is orchestrated through Kafka topics or RabbitMQ queues
# We are using a pipeline that is orchestrated through Kafka topics
# Events are send back and forth until the processing is done.
queueProvider: "RABBITMQ" # or "KAFKA"
queueProvider: "KAFKA"
queueName: "kcloud-event-queue" # This is the topic to which all events are send.
# RabbitMQ can be installed in the same cluster using a helm chart, or you can
# use a service on cloud provider like AWS, GCP, Azure, etc.
rabbitmq:
host: "rabbitmq.rabbitmq:5672" # can be internal dns name or external
#host: "amqps://b-xxx-xxx-xxx-xxx-xxx.mq.eu-central-1.amazonaws.com:5671"
username: "yourusername"
password: "yourpassword"
exchange: ""
# If you already have a Kafka cluster you might use this instead of RabbitMQ.
kafka:
broker: "kafka1.yourdomain.com:9094" # can be internal dns name or external
broker: "kafka1.yourdomain.com:9094,kafka2.yourdomain.com:9094"
username: "yourusername"
password: "yourpassword"
mechanism: "PLAIN"
security: "SASL_PLAINTEXT"
############################################
# TURN/STUN configuration (live streaming)
#
# Usecases:
# - WebRTC: for live streaming in full HD.
############################################
# For allowing WEBRTC a STUN and TURN server is required.
# You might want to install coturn in a seperate VM.
# -> https://help.hcltechsw.com/sametime/11.6/admin/turnserver_ubuntu.html
turn:
host: "turn:turn.yourdomain.com:8443" # this needs to be a public accessible DNS name.
host: "turn:turn.yourdomain.com:8443"
username: "username1"
password: "password1"
############################################
# OpenTelemetry is used for distributed tracing and monitoring.
# More information can be found at https://opentelemetry.io/docs/
############################################
opentelemetry:
enabled: false
routingEnabled: false
collector:
endpoint: "http://otel-collector:4317"
############################################
# OpenAI configuration (semantic search)
#
# Usecases:
# - Semantic search: search for recordings based on text.
############################################
openai:
enabled: false
apikey: "xxx"
# We have a kerberos vault component installed which contains all the
# recordings. Kerberos vault is queried to retrieve the recordings
# from the appropriate provider.
kerberosvault:
uri: "https://api.vault.yourdomain.com" # this needs to be a public accessible DNS name.
provider: "a-provider"
uri: "https://api.storage.yourdomain.com"
accesskey: "xxx"
secretkey: "xxx"
provider: "a-provider"
# Archiving is used when creating a task. The underlying recording of the task will be copied from its
# existing provider to the below archived provider. Seperate credentials are used, as it makes possible to
# specify another retention period.
archive:
provider: "an-archive-provider"
accesskey: "xxx"
secretkey: "xxx"
thumbnail:
provider: "a-thumbnail-provider"
accessKey: "xxx"
secretKey: "xxx"
sprite:
provider: "a-sprite-provider"
accessKey: "xxx"
secretKey: "xxx"
###########################################################################
# Administration panel for managing the Hub database (and more in future).
# For now it's used to create, edit users for Hub.
###########################################################################
admin:
repository: uugai/admin
pullPolicy: IfNotPresent
tag: "v1.3.0"
replicas: 2
logLevel: "info" # possible values: trace, debug, info, warn, error
resources:
requests:
memory: 100Mi
cpu: 250m
url: "admin.yourdomain.com"
tls:
- hosts:
- "admin.yourdomain.com"
secretName: admin
oauth2Proxy:
enabled: false
github:
clientId: "github-client-id"
clientSecret: "github-client-secret"
cookieSecret: "generate-a-random-cookie-secret"
organization: "github-organization"
team: "github-team"
###########################################################################
provider: "an-archive-provider"
email:
provider: "mailgun"
from: "support@yourdomain.com"
displayName: "yourdomain.com"
mailgun:
domain: "mg.yourdomain.com"
apikey: "xxxx"
smtp:
server: "smtp.yourdomain.com"
port: "465"
username: "yourusername"
password: "yourpassword"
templates:
welcome: "welcome"
welcomeTitle: "Welcome to Kerberos Hub"
activate: "activate"
activateTitle: "Wonderful! Your Kerberos Hub is now active"
forgot: "forgot"
forgotTitle: "Password reset Kerberos Hub. You forgot your password"
share: "share"
shareTitle: "[Action] You received a recording from Kerberos Hub"
detection: "detection"
disabled: "disabled"
highupload: "highupload"
device: "device"
# Following are all the different deployments needed to make
# Hub properly working.
# Kerberos hub properly working.
kerberoshub:
# Extra environment variables like proxy to set for hub pods
extraEnv: []
# extraEnv:
# - name: HTTP_PROXY
# value: "custom_value"
serviceAccount:
# serviceAccount.create Enable creation of ServiceAccount
create: false
# If create is set to false, a name is not used in helm chart
name: ""
# additional ServiceAccount annotations
annotations: {}
labels: {}
api:
repository: ghcr.io/uug-ai/hub-api
repository: registry.gitlab.com/kerberos-io/kerberos-cloud-api
pullPolicy: IfNotPresent
tag: "v1.8.25"
tag: "1.0.561814049"
replicas: 2
logLevel: "info" # possible values: trace, debug, info, warn, error
jwtSecret: "this-is-a-secret-please-change-to-random-string" # change to a random value, this is for generating JWT tokens.
schema: "https"
url: "api.yourdomain.com"
resources:
requests:
memory: 100Mi
cpu: 250m
limits:
memory: 100Mi
cpu: 250m
# E-mail templates
#volumeMounts:
# - name: custom-email-templates
@@ -217,24 +128,12 @@ kerberoshub:
# persistentVolumeClaim:
# claimName: custom-layout-claim
# Server-side TLS for hub-api itself (port 8081).
# When enabled, TLS_CERT_FILE and TLS_KEY_FILE are injected and
# the provided Kubernetes TLS secret is mounted read-only.
serverTLS:
enabled: false
secretName: ""
mountPath: "/etc/hub-api/tls"
certFile: "/etc/hub-api/tls/tls.crt"
keyFile: "/etc/hub-api/tls/tls.key"
# When migrating to another url, this might help migrating.
#legacyUrl: "api.legacy.yourdomain.com"
# MFA issuer name
mfaIssuer: "yourdomain.com"
# Admin API's are made available for automation of Kerberos Hub.
# To access those API's (e.g. creation of owner users), an API key needs to be provided.
apiKey: "a-random-admin-api-key"
## Certificates
tls:
- hosts:
- "api.yourdomain.com"
@@ -261,7 +160,7 @@ kerberoshub:
hook: "yourslackhook" # https://hooks.slack.com/services/T08Q2Q9V5/xxKT/JALxxAk26bHtuqTfZ
username: "Kerberos Hub" # The slack username
elasticsearch: # Logs of the kerberos hub will be send to an elastic search cluster.
enabled: "false"
enabled: "true"
protocol: "http"
host: "yourelasticsearchinstance.com"
port: "9200"
@@ -269,45 +168,22 @@ kerberoshub:
username: ""
password: ""
sso: # OIDC settings for allowing SSO.
- domain: "uug.ai"
redirectUrl: "https://api.cloud.kerberos.io/sso/callback/uug.ai"
forceSSO: "false"
issuer: "https://xxx.eu.auth0.com/"
claimId: "email" # claim which is used to identify the user
clientId: "xxx"
clientSecret: "xxx"
clientVerificationId: "" # This is only required for SSO chaining.
extraHeaders: # Extra headers to be added to the request
- name: "x-zitadel-login-client"
value: "xxx"
- domain: "kerberos.io"
redirectUrl: "https://api.cloud.kerberos.io/sso/callback/kerberos.io"
forceSSO: "false"
issuer: "https://accounts.google.com"
claimId: "email" # claim which is used to identify the user
clientId: "xxx"
clientSecret: "xxx"
clientVerificationId: "" # This is only required for SSO chaining.
extraHeaders: []
issuer: "" #"https://accounts.google.com"
clientId: "" # 4294xxxxsk4no3.apps.googleusercontent.com"
clientSecret: "" # UksvZ-QKGdB1W2mOu5l_Jg3R"
redirectUrl: "/sso/response"
frontend:
repository: ghcr.io/uug-ai/hub-frontend
repository: registry.gitlab.com/kerberos-io/kerberos-cloud-ng
pullPolicy: IfNotPresent
tag: "v1.8.23"
tag: "1.0.562012749"
replicas: 2
logLevel: "info" # possible values: trace, debug, info, warn, error
schema: "https"
url: "yourdomain.com"
resources:
requests:
memory: 50Mi
cpu: 50m
limits:
memory: 50Mi
cpu: 50m
# The front-end but in read-only mode
#demoUrl: "demo.yourdomain.com"
# When migrating to another url, this might help migrating.
#legacyUrl: "legacy.yourdomain.com"
tls:
- hosts:
- "yourdomain.com"
@@ -319,18 +195,31 @@ kerberoshub:
# - hosts:
# - "demo.yourdomain.com"
# secretName: kerberoshub-demo
# You can disable the Kerberos agent buttons, this make sense
# in a white-label setup, or where you are managing the Kerberos Agents for your customers.
hideAddAgent: "false"
ssoDomain: "@yourdomain.com"
mixpanel: # We can keep track logging in Mixpanel as well
apikey: "xxx"
sentry: # We can trace errors in Sentry
url: "https://xxx@sentry.io/xxx"
stripe: # We use stripe for billing, so it's possible to resell Kerberos Hub if agreed.
publicKey: ""
googlemaps: # Google maps is used inside the application to visualise cameras and sites.
apikey: "xxxx"
zendesk: # We can use different support tools, for now we use Zendesk but others can be integrated
url: "yourdomain.zendesk.com"
posthog: # Posthog is used for auditing and user interaction logging
key: "xxx"
url: "https://posthog.domain.com"
# Multi tenancy (domains)
# By default the Kerberos Hub allows multi-tenancy through the concept
# of accounts and subaccounts. However through the concept of domains, you
# take it a step further. Within a domain, user accounts are unique, and are prefixed by a (domain\).
multiTenant: false
#tenantBaseDomain: "yourdomain.com" # this would resolve in following sub domain "https://domain.kerberos.io"
#multiTenant: true
#tenantBaseDomain: "yourdomain.com" # this would resolve in following sub domain "https://domain.kerberos.io"
# Page title (browser)
title: "Kerberos Hub - Video surveillance as it should be"
# You can style Kerberos hub as you wish.
# 1. we do the styling on our side and bake it in the Docker image (change the logo attribute to your company name)
# 2. you bring your own logo (set logo to 'custom'), and mount the css file and favicons.
@@ -352,20 +241,8 @@ kerberoshub:
# persistentVolumeClaim:
# claimName: custom-favicon-claim
# Override naming conventions within the front-end.
floorPlanName: "map" # The name of the 'floor plan' feature to use in the front-end.
sitesName: "site" # The name of the 'sites' feature to use in the front-end.
sitesDescription: "" # The description of the 'sites' feature to use in the front-end.
groupsName: "group" # The name of the 'groups' feature to use in the front-end.
groupsDescription: "" # The description of the 'groups' feature to use in the front-end.
siteGroupName: "site Group" # The name of the 'site groups' feature to use in the front-end.
siteGroupDescription: "" # The description of the 'site groups' feature to use in the front-end.
deviceGroupName: "device Group" # The name of the 'device groups' feature to use in the front-end.
deviceGroupDescription: "" # The description of the 'device groups' feature to use in the front-end.
markersName: "marker" # The name of the 'markers' feature to use in the front-end.
eventsName: "event" # The name of the 'events' feature to use in the front-end.
# By specifying the below environments variables, you can tweak the
# headings and paragraphs of Kerberos Hub front-end.
# headings and paragraphs of Kerberos Hub.
# Login page
loginDescription: ""
loginCopyright: ""
@@ -375,9 +252,6 @@ kerberoshub:
# Latest events page
latestEventsTitle: ""
latestEventsSubTitle: ""
# Day title
dayTitle: ""
daySubTitle: ""
# Livestream/view page
livestreamTitle: ""
livestreamSubTitle: ""
@@ -389,367 +263,83 @@ kerberoshub:
framesPerSecondDescription: ""
mlaUtilizationDescription: ""
objectsDetectedDescription: ""
# You can add custom links to the navigation bar.
navigationLinkTitle1: ""
navigationLinkUrl1: ""
navigationLinkTitle2: ""
navigationLinkUrl2: ""
navigationLinkTitle3: ""
navigationLinkUrl3: ""
navigationLinkTitle4: ""
navigationLinkUrl4: ""
navigationLinkTitle5: ""
navigationLinkUrl5: ""
caseFilterAssigneesDefault: "false"
# Enable or disable specific features and behaviours in the front-end
# Features are grouped per section / page or functionality.
features:
# General
darkModeEnabled: "true" # Enable or disable dark mode toggle 'true' or 'false'
landingPage: "/dashboard" # Landing page after login '/dashboard', '/liveview', '/media', '/devices', '/sites', '/groups'
# Case management is a feature that allows you to create cases, and link recordings, devices, sites, groups, markers and events to those cases.
case:
enabled: "true" # Enable or disable case management feature 'true' or 'false'
# Map tile configuration
map:
tileUrlLight: "https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png" # Map tile URL for light mode
tileUrlDark: "https://{s}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}{r}.png" # Map tile URL for dark mode
attribution: "&copy; <a href='https://www.openstreetmap.org/copyright' target='_blank'>OpenStreetMap</a>" # Map attribution
# Live view page
liveview:
defaultStreamMode: "SD" # Default stream mode 'SD' or 'HD' (will be migrated to 'preview' or 'live')
paginationEnabled: "false" # Enable or disable pagination in live view 'true' or 'false'
emptyByDefault: "false" # Show empty live view when there are no active devices 'true' or 'false'
maxStreams: "-1" # Maximum number of live streams to show in live view, -1 for unlimited
# Device page
devices:
hideAgent: "false" # Hide the 'add agent' button in the front-end
# Media page
media:
filter:
date:
enabled: "true" # Enable or disable date filter in media 'true' or 'false'
sites:
enabled: "true" # Enable or disable site filter in media 'true' or 'false'
groups:
enabled: "true" # Enable or disable group filter in media 'true' or 'false'
devices:
enabled: "true" # Enable or disable device filter in media 'true' or 'false'
objectDetection:
enabled: "true" # Enable or disable object detection filter in media 'true' or 'false'
star:
enabled: "true" # Enable or disable star filter in media 'true' or 'false'
region:
enabled: "true" # Enable or disable region filter in media 'true' or 'false'
sort:
enabled: "true" # Enable or disable sort filter in media 'true' or 'false'
category:
enabled: "true" # Enable or disable category filter in media 'true' or 'false'
markers:
enabled: "true" # Enable or disable markers filter in media 'true' or 'false'
events:
enabled: "true" # Enable or disable events filter in media 'true' or 'false'
tags:
enabled: "true" # Enable or disable tags filter in media 'true' or 'false'
defaultView: "timeline" # Default view for media page 'timeline' or 'grid'
# Chart feature
chart:
colorChartSelectionFill: "rgba(132, 86, 159, 0.07)"
colorChartSelectionStroke: "rgba(132, 86, 159, 0.4)"
colorChartGridStroke: "rgba(0, 106, 255, 0.18)"
# Floor-plan feature
floorplan:
enabled: "true" # Enable or disable floorplan feature 'true' or 'false'
# Custom colors for floor-plans, update the colors of the corresponding device icons to match these
# charts/hub/custom-layout/icons.js
colorDeviceActive: "hsla(131, 31%, 52%, 1)"
colorDeviceInactive: "hsla(0, 3%, 41%, 1)"
colorDeviceIdle: "hsla(47, 86%, 47%, 1)"
colorDeviceMotion: "hsla(2, 58%, 48%, 1)"
colorLiveViewControlActive: "hsla(131, 31%, 52%, 1)" # Color for the live view control icon for an active device
colorLiveViewControlMotion: "hsla(2, 58%, 48%, 1)" # Color for the live view control icon for a device detecting motion, icon is hidden for other states
colorFloorPlanLabelText: "hsla(0, 0%, 100%, 1)"
colorFloorPlanLabelBackground: "hsla(0, 0%, 0%, 0.8)"
colorDeviceMarkerBorder: "hsla(0, 0%, 100%, 1)" # Border around the device marker circle on the map
colorTrackBox: "hsla(278, 30%, 48%, 1)" # Boxes shown on the video
colorTrackBoxHover: "hsla(47, 86%, 47%, 1)" # Boxes while hovering over the associated track
colorTrackBoxDrawing: "hsla(204, 100%, 50%, 1)" # New box while drawing
colorTrackBoxControlsDelete: "hsla(219, 100%, 94%, 1)" # Delete icon top right of the box while editing
# Face redaction feature
faceRedaction:
enabled: "false" # Enable or disable face redaction 'true' or 'false'
# Optional integrations
mixpanel: # We can keep track logging in Mixpanel as well
apikey: "xxx"
sentry: # We can trace errors in Sentry
url: "https://xxx@sentry.io/xxx"
stripe: # We use stripe for billing, so it's possible to resell Kerberos Hub if agreed.
publicKey: ""
googlemaps: # Google maps is used inside the application to visualise cameras and sites.
apikey: "xxxx"
zendesk: # We can use different support tools, for now we use Zendesk but others can be integrated
url: "yourdomain.zendesk.com"
posthog: # Posthog is used for auditing and user interaction logging
key: "xxx"
url: "https://posthog.domain.com"
support:
enabled: false
oauth2Proxy:
enabled: false
github:
clientId: "github-client-id"
clientSecret: "github-client-secret"
cookieSecret: "generate-a-random-cookie-secret"
organization: "github-organization"
team: "github-team"
cleanup:
repository: ghcr.io/uug-ai/hub-cleanup
repository: registry.gitlab.com/kerberos-io/kerberos-cloud-cleanup
pullPolicy: IfNotPresent
tag: "v1.4.8"
replicas: 1 # Number of pods for the service.
mode: "serve" # The mode the cleanup service operates in.
logLevel: "info" # possible values: trace, debug, info, warn, error
maxDays: "365" # The maximum number of days to keep orphaned recordings.
resources:
requests:
memory: 10Mi
cpu: 10m
monitordevice:
repository: ghcr.io/uug-ai/hub-monitor-device
pullPolicy: IfNotPresent
tag: "v1.4.0"
replicas: 1 # Number of pods for the service.
logLevel: "info" # possible values: trace, debug, info, warn, error
resources:
requests:
memory: 10Mi
cpu: 10m
# E-mail templates
#volumeMounts:
# - name: custom-email-templates
# mountPath: /mail
#volumes:
# - name: custom-email-templates
# persistentVolumeClaim:
# claimName: custom-layout-claim
reactivate:
repository: uugai/hub-reactivatesubscriptions
pullPolicy: IfNotPresent
tag: "v1.0.2"
replicas: 1 # Number of pods for the service.
logLevel: "info" # possible values: trace, debug, info, warn, error
resources:
requests:
memory: 10Mi
cpu: 10m
tag: "1.0.2547054620"
forwarder:
enabled: false
#repository: kerberos/vault-forwarder
#pullPolicy: IfNotPresent
#tag: "1.0.2732389692"
#resources:
# requests:
# memory: 10Mi
# cpu: 10m
repository: registry.gitlab.com/kerberos-io/vault-forwarder
pullPolicy: IfNotPresent
tag: "1.0.1613962421"
monitordevice:
repository: registry.gitlab.com/kerberos-io/kerberos-monitor-device
pullPolicy: IfNotPresent
tag: "1.0.1919848645"
reactivate:
repository: registry.gitlab.com/kerberos-io/kerberos-reactivate
pullPolicy: IfNotPresent
tag: "1.0.2041756405"
# This proxy is legacy for the old agent, will be migrated in the new Hub API.
proxy:
repository: uugai/hub-proxy
repository: registry.gitlab.com/kerberos-io/kerberos-cloud-proxy
pullPolicy: IfNotPresent
tag: "v1.0.0"
replicas: 1 # Number of pods for the service.
logLevel: "info" # possible values: trace, debug, info, warn, error
resources:
requests:
memory: 10Mi
cpu: 10m
# The Kerberos Hub pipeline is a series of microservices that process the recordings.
# Each microservice is responsible for a specific task, like counting objects, generating thumbnails, etc.
# The pipeline is orchestrated through Kafka topics or RabbitMQ queues.
# The pipeline is a critical component of Kerberos Hub, and should be monitored closely.
tag: "1.0.2041838648"
kerberospipeline:
event:
repository: ghcr.io/uug-ai/hub-pipeline-event
repository: registry.gitlab.com/kerberos-io/kcloud-event-queue
pullPolicy: IfNotPresent
tag: "v1.3.0"
replicas: 1 # Number of pods for the service.
logLevel: "info" # possible values: trace, debug, info, warn, error
resources:
requests:
memory: 10Mi
cpu: 10m
tag: "1.0.766190255"
monitor:
repository: ghcr.io/uug-ai/hub-pipeline-monitor
repository: registry.gitlab.com/kerberos-io/kcloud-monitor-queue
pullPolicy: IfNotPresent
tag: "v1.3.9"
replicas: 1 # Number of pods for the service.
resources:
requests:
memory: 10Mi
cpu: 10m
tag: "1.0.2040627860"
sequence:
repository: ghcr.io/uug-ai/hub-pipeline-sequence
repository: registry.gitlab.com/kerberos-io/kcloud-sequence-queue
pullPolicy: IfNotPresent
tag: "v1.6.14"
replicas: 1 # Number of pods for the service.
resources:
requests:
memory: 10Mi
cpu: 10m
tag: "1.0.2314347527"
throttler:
repository: uugai/hub-pipeline-throttler
repository: registry.gitlab.com/kerberos-io/kcloud-throttler-queue
pullPolicy: IfNotPresent
tag: "v1.2.0"
replicas: 1 # Number of pods for the service.
logLevel: "info" # possible values: trace, debug, info, warn, error
resources:
requests:
memory: 10Mi
cpu: 10m
tag: "1.0.1613950978"
notify:
repository: ghcr.io/uug-ai/hub-pipeline-notification
repository: registry.gitlab.com/kerberos-io/kcloud-notify-queue
pullPolicy: IfNotPresent
tag: "v1.3.6"
replicas: 1 # Number of pods for the service.
logLevel: "info" # possible values: trace, debug, info, warn, error
resources:
requests:
memory: 10Mi
cpu: 10m
# E-mail templates
#volumeMounts:
# - name: custom-email-templates
# mountPath: /mail
#volumes:
# - name: custom-email-templates
# persistentVolumeClaim:
# claimName: custom-layout-claim
tag: "1.0.2577548836"
# E-mail templates
#volumeMounts:
# - name: custom-email-templates
# mountPath: /mail
#volumes:
# - name: custom-email-templates
# persistentVolumeClaim:
# claimName: custom-layout-claim
notifyTest:
repository: uugai/hub-pipeline-notification-test
repository: registry.gitlab.com/kerberos-io/kcloud-notify-test-queue
pullPolicy: IfNotPresent
tag: "v1.2.1"
replicas: 1 # Number of pods for the service.
resources:
requests:
memory: 10Mi
cpu: 10m
# E-mail templates
#volumeMounts:
# - name: custom-email-templates
# mountPath: /mail
#volumes:
# - name: custom-email-templates
# persistentVolumeClaim:
# claimName: custom-layout-claim
tag: "1.0.2552881172"
# E-mail templates
#volumeMounts:
# - name: custom-email-templates
# mountPath: /mail
#volumes:
# - name: custom-email-templates
# persistentVolumeClaim:
# claimName: custom-layout-claim
analysis:
repository: ghcr.io/uug-ai/hub-pipeline-analysis
repository: registry.gitlab.com/kerberos-io/kcloud-analysis-queue
pullPolicy: IfNotPresent
tag: "v1.7.8"
replicas: 1 # Number of pods for the service.
logLevel: "info" # possible values: trace, debug, info, warn, error
resources:
requests:
memory: 10Mi
cpu: 10m
tag: "1.0.2487163772"
dominantColor:
repository: ghcr.io/uug-ai/hub-pipeline-dominantcolors
repository: registry.gitlab.com/kerberos-io/kcloud-dominantcolor-queue
pullPolicy: IfNotPresent
tag: "v2.0.2"
replicas: 3 # Number of pods for the service.
logLevel: "info" # possible values: trace, debug, info, warn,
resources:
requests:
memory: 512Mi
cpu: 500m
limits:
memory: 2Gi
cpu: 1000m
tag: "1.0.906298340"
thumbnail:
repository: ghcr.io/uug-ai/hub-pipeline-thumbnail
repository: registry.gitlab.com/kerberos-io/kcloud-thumbnail-queue
pullPolicy: IfNotPresent
tag: "v1.3.4"
replicas: 2 # Number of pods for the service.
logLevel: "info" # possible values: trace, debug, info, warn, error
quality: "1" # 1 (best) - 31 (worst)
width: "600"
height: "-1"
kerberosvault:
enabled: true # If you want to use Kerberos Vault to store the thumbnails
resources:
requests:
memory: 512Mi
cpu: 500m
limits:
memory: 2Gi
cpu: 1000m
tag: "1.0.1294067330"
counting:
repository: uugai/hub-pipeline-counting
repository: kerberos/hub-pipe-counting
pullPolicy: IfNotPresent
tag: "v1.6.3"
replicas: 1 # Number of pods for the service.
logLevel: "info" # possible values: trace, debug, info, warn,
resources:
requests:
memory: 10Mi
cpu: 10m
sprite:
enabled: false # Enable or disable the sprite generation 'true' or 'false
repository: ghcr.io/uug-ai/hub-pipeline-sprite
pullPolicy: IfNotPresent
tag: "v1.1.12"
replicas: 5 # Number of pods for the service.
logLevel: "info" # possible values: trace, debug, info, warn,
interval: "1" # Number of secondes between each thumbnail in the sprite
width: "240" # Should not be changed for the moment (hard coded in UI)
height: "135" # Should not be changed for the moment (hard coded in UI)
resources:
requests:
memory: 512Mi
cpu: 500m
limits:
memory: 2Gi
cpu: 1000m
export:
repository: ghcr.io/uug-ai/hub-pipeline-export
pullPolicy: IfNotPresent
tag: "v1.2.1"
replicas: 2 # Number of pods for the service.
logLevel: "info" # possible values: trace, debug, info, warn, error
resources:
requests:
memory: 10Mi
cpu: 10m
###########################################################################
# Email configuration
#
# Preferred email provider, we support mailgun and smtp.
# Email templates are used to send out emails to users.
###########################################################################
email:
provider: "mailgun"
from: "support@yourdomain.com"
displayName: "yourdomain.com"
mailgun:
domain: "mg.yourdomain.com"
apikey: "xxxx"
smtp:
server: "smtp.yourdomain.com"
port: "465"
username: "yourusername"
password: "yourpassword"
templates:
welcome: "welcome"
welcomeTitle: "Welcome to Kerberos Hub"
activate: "activate"
activateTitle: "Wonderful! Your Kerberos Hub is now active"
forgot: "forgot"
forgotTitle: "Password reset Kerberos Hub. You forgot your password"
share: "share"
shareTitle: "[Action] You received a recording from Kerberos Hub"
assignTask: "assign_task"
assignTaskTitle: "[Action] You've been assigned to a task"
detection: "detection"
disabled: "disabled"
highupload: "highupload"
device: "device"
alertTitle: "[Alert] Kerberos Hub detected something an event"
deviceTitle: "[Device] A Kerberos Agent's status has been changed"
tag: "1.0.2488400759"
+243
View File
@@ -0,0 +1,243 @@
# Default values for vernemq.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
replicaCount: 1
image:
repository: vernemq/vernemq
tag: 1.12.3-alpine
pullPolicy: IfNotPresent
nameOverride: ""
fullnameOverride: ""
serviceMonitor:
create: false
labels: {}
service:
# Can be disabled if more advanced use cases require more complex setups, e.g., combining LoadBalancer and ClusterIP for internal and external access. See also issue #274.
enabled: true
# NodePort - Listen to a port on nodes and forward to the service.
# ClusterIP - Listen on the service internal to the cluster only.
# LoadBalancer - Create a LoadBalancer in the cloud provider and forward to the service.
type: LoadBalancer
# clusterIP: 10.1.2.4
# externalIPs: []
# loadBalancerIP: 10.1.2.4
# loadBalancerSourceRanges: []
# externalTrafficPolicy: Local
# sessionAffinity: None
# sessionAffinityConfig: {}
mqtt:
enabled: true
port: 1883
# This is the port used by nodes to expose the service
nodePort: 1883
mqtts:
enabled: true
port: 8883
# This is the port used by nodes to expose the service
nodePort: 8883
ws:
enabled: true
port: 8080
# This is the port used by nodes to expose the service
nodePort: 8080
wss:
enabled: true
port: 8443
# This is the port used by nodes to expose the service
nodePort: 8443
annotations: {}
labels: {}
## Ingress can optionally be applied when enabling the MQTT websocket service
## This allows for an ingress controller to route web ports and arbitrary hostnames
## and paths to the websocket service as well as allow the controller to handle TLS
## termination for the websocket traffic. Ingress is only possible for traffic exchanged
## over HTTP, so ONLY the websocket service take advantage of ingress.
ingress:
className: ""
enabled: false
labels: {}
annotations: {}
## Hosts must be provided if ingress is enabled.
##
hosts: []
# - vernemq.domain.com
## Paths to use for ingress rules.
##
paths:
- path: /
pathType: ImplementationSpecific
## TLS configuration for ingress
## Secret must be manually created in the namespace
##
tls: []
# - secretName: vernemq-tls
# hosts:
# - vernemq.domain.com
## VerneMQ resources requests and limits
## Ref: http://kubernetes.io/docs/user-guide/compute-resources
resources: {}
## We usually recommend not to specify default resources and to leave this as a conscious
## choice for the user. This also increases chances charts run on environments with little
## resources, such as Minikube. If you do want to specify resources, uncomment the following
## lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 1
# memory: 256Mi
# requests:
# cpu: 1
# memory: 256Mi
## Node labels for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
nodeSelector: {}
## Node tolerations for pod assignment
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#taints-and-tolerations-beta-feature
tolerations: []
## Pod affinity
## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
podAntiAffinity: soft
securityContext:
runAsUser: 10000
runAsGroup: 10000
fsGroup: 10000
## If RBAC is enabled on the cluster,VerneMQ needs a service account
## with permissisions sufficient to list pods
rbac:
create: true
serviceAccount:
create: true
## Service account name to be used.
## If not set and serviceAccount.create is true a name is generated using the fullname template.
# name:
persistentVolume:
## If true, VerneMQ will create/use a Persistent Volume Claim
## If false, use local directory
enabled: false
## VerneMQ data Persistent Volume access modes
## Must match those of existing PV or dynamic provisioner
## Ref: http://kubernetes.io/docs/user-guide/persistent-volumes/
accessModes:
- ReadWriteOnce
## VerneMQ data Persistent Volume size
size: 5Gi
## VerneMQ data Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## If set to "-", storageClassName: "", which disables dynamic provisioning
## If undefined (the default) or set to null, no storageClassName spec is
## set, choosing the default provisioner. (gp2 on AWS, standard on
## GKE, AWS & OpenStack)
# storageClass: ""
## Annotations for Persistent Volume Claim
annotations: {}
extraVolumeMounts: []
## Additional volumeMounts to the pod.
# - name: additional-volume-mount
# mountPath: /var/additional-volume-path
extraVolumes: []
## Additional volumes to the pod.
# - name: additional-volume
# emptyDir: {}
# A list of secrets and their paths to mount inside the pod
# This is useful for mounting certificates for security (tls)
secretMounts:
- name: vernemq-certificates
secretName: vernemq-certificates-secret
path: /etc/ssl/vernemq
statefulset:
## Start and stop pods in Parallel or OrderedReady (one-by-one.) Note - Can not change after first release.
## Ref: https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#pod-management-policy
podManagementPolicy: OrderedReady
## Statefulsets rolling update update strategy
## Ref: https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#rolling-update
updateStrategy: RollingUpdate
## Configure how much time VerneMQ takes to move offline queues to other nodes
## Ref: https://vernemq.com/docs/clustering/#detailed-cluster-leave-case-a-make-a-live-node-leave
terminationGracePeriodSeconds: 60
## Liveness and Readiness probe values
## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes
livenessProbe:
initialDelaySeconds: 90
periodSeconds: 10
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 3
readinessProbe:
initialDelaySeconds: 90
periodSeconds: 10
timeoutSeconds: 5
successThreshold: 1
failureThreshold: 3
podAnnotations: {}
# prometheus.io/scrape: "true"
# prometheus.io/port: "8888"
annotations: {}
labels: {}
lifecycle: {}
pdb:
enabled: false
minAvailable: 1
# maxUnavailable: 1
## VerneMQ settings
additionalEnv:
- name: DOCKER_VERNEMQ_ALLOW_REGISTER_DURING_NETSPLIT
value: "on"
- name: DOCKER_VERNEMQ_ALLOW_PUBLISH_DURING_NETSPLIT
value: "on"
- name: DOCKER_VERNEMQ_ALLOW_SUBSCRIBE_DURING_NETSPLIT
value: "on"
- name: DOCKER_VERNEMQ_ALLOW_UNSUBSCRIBE_DURING_NETSPLIT
value: "on"
- name: DOCKER_VERNEMQ_ACCEPT_EULA
value: "yes"
- name: DOCKER_VERNEMQ_ALLOW_ANONYMOUS
value: "off"
- name: DOCKER_VERNEMQ_USER_YOURUSERNAME
value: "yourpassword"
- name: DOCKER_VERNEMQ_LISTENER__SSL__CAFILE
value: "/etc/ssl/vernemq/tls.crt"
- name: DOCKER_VERNEMQ_LISTENER__SSL__CERTFILE
value: "/etc/ssl/vernemq/tls.crt"
- name: DOCKER_VERNEMQ_LISTENER__SSL__KEYFILE
value: "/etc/ssl/vernemq/tls.key"
- name: DOCKER_VERNEMQ_LISTENER__WSS__CAFILE
value: "/etc/ssl/vernemq/tls.crt"
- name: DOCKER_VERNEMQ_LISTENER__WSS__CERTFILE
value: "/etc/ssl/vernemq/tls.crt"
- name: DOCKER_VERNEMQ_LISTENER__WSS__KEYFILE
value: "/etc/ssl/vernemq/tls.key"
envFrom: []
# add additional environment variables e.g. from a configmap or secret
# can be usefull if you wanna use authentication via files
# - secretRef:
# name: vernemq-users
@@ -0,0 +1,11 @@
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: vernemq-certificates
spec:
dnsNames:
- "mqtt.yourdomain.com"
issuerRef:
kind: ClusterIssuer
name: vernemq-letsencrypt-iss
secretName: vernemq-certificates-secret
+18
View File
@@ -0,0 +1,18 @@
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: vernemq-letsencrypt-iss
spec:
acme:
email: xxx@xxx.io
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: vernemq-letsencrypt-iss-key
solvers:
- selector: {}
dns01:
cloudflare:
email: xxx@xxx.io
apiKeySecretRef:
name: cloudflare-api-key-secret
key: api-key
+7
View File
@@ -0,0 +1,7 @@
apiVersion: v1
kind: Secret
metadata:
name: cloudflare-api-key-secret
type: Opaque
stringData:
api-key: xxxx
+1511
View File
File diff suppressed because it is too large Load Diff