Compare commits
	
		
			955 Commits
		
	
	
		
			f52f5ad0f2
			...
			renovate/g
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 90ac651234 | |||
| c44545acee | |||
| 531e74e56d | |||
| 7b0e2240a3 | |||
| 497cf9c279 | |||
| 56395b7e2d | |||
| 6e5d298daf | |||
| c172fb8f06 | |||
| 5512f4b5cb | |||
| 45ef9d99af | |||
| 51f5250a51 | |||
| f3331b7c36 | |||
| 359809ec3e | |||
| 5d317815a6 | |||
| 3060651f33 | |||
| 1267aee558 | |||
| c4deb4530c | |||
| 8071aaf13c | |||
| b3507ddbb4 | |||
| bfcddd7a76 | |||
| b3aa166e16 | |||
| 2bc0b9f4df | |||
| b6b5027601 | |||
| c22d5d3428 | |||
| 6c34c4ca9e | |||
| d32d64d78e | |||
| cf3a9b9aba | |||
| 643ba071e0 | |||
| 42c7163710 | |||
| ca76486945 | |||
| a8142056c6 | |||
| 8f8bd1d7f1 | |||
| 28ce27280d | |||
| 8442208f02 | |||
| 6d9ebaf533 | |||
| b83ddcce89 | |||
| 6a5360a803 | |||
| d6ad2f1c79 | |||
| 68a06195e9 | |||
| b8e08002dd | |||
| 3fa3703b27 | |||
| 84fbd628db | |||
| 32158e4cef | |||
| 7c52a9dc34 | |||
| 8d2ab9205a | |||
| e2fafc6a7e | |||
| 375343d100 | |||
| 0eb69ef4f5 | |||
| de9197d740 | |||
| abbc4fc453 | |||
| 77d24ae009 | |||
| 193406e7df | |||
| c15da69d83 | |||
| 23a6d889f1 | |||
| 57ac458504 | |||
| e53a02014a | |||
| eefb79771f | |||
| a3f8762679 | |||
| 6e064edb7c | |||
| 0243dc08e7 | |||
| a6ce82e001 | |||
| 68d172423c | |||
| 390986ffaa | |||
| 44b8088899 | |||
| 6de863bba5 | |||
| 4ea8bf9acd | |||
| c3053250a3 | |||
| 91a3cc22b0 | |||
| d97cdc1bdc | |||
| 435cee3116 | |||
| 5950568286 | |||
| 2d6faab122 | |||
| 2eca62bf5d | |||
| aa3c98d453 | |||
| b334e52544 | |||
| 78af20ec62 | |||
| cfb3de7e76 | |||
| 627b997241 | |||
| aa1163aab9 | |||
| 3c5c5e9016 | |||
| 42328cb5f0 | |||
| f4aac5f5e6 | |||
| 87286c91d0 | |||
| 9aa1b0f522 | |||
| 2cf08255cc | |||
| 5e8e1ff294 | |||
| 556ba744f9 | |||
| 9565bee15f | |||
| 487aea3af4 | |||
| c6380f0350 | |||
| 6ce44f3132 | |||
| 63510aa4bb | |||
| f25ef5e5bb | |||
| 5ac34d3890 | |||
| 8a7ad6fa2d | |||
| 3914740922 | |||
| 56f61deeb3 | |||
| 4c406eed40 | |||
| 1ee1ba0659 | |||
| ae06bd0ab6 | |||
| 56100ba077 | |||
| bb057547a8 | |||
| 00c78fddd5 | |||
| d7be1186c7 | |||
| d4a3d5f4a7 | |||
| e59f5f6e65 | |||
| a8c0df9ee4 | |||
| 33f9840d59 | |||
| 1546086d4f | |||
| 2457da2a2a | |||
| b3ec9a50ea | |||
| ef70214fd5 | |||
| 2b635174c3 | |||
| cc6aaa1ada | |||
| 7c14d00db2 | |||
| 39b0214072 | |||
| 5d6de0a908 | |||
| 8984be1a62 | |||
| f6676c48cc | |||
| e53e6a0c9a | |||
| b395df357f | |||
| 852ae844df | |||
| 5c6bd05521 | |||
| 9a25a5263d | |||
| d600d44640 | |||
| d953074087 | |||
| 74e86f87c8 | |||
| feb0de1c9d | |||
| 83a641b34e | |||
| 5e86b0ffda | |||
| b143308932 | |||
| 810eb8ed6d | |||
| a9524e45df | |||
| 2ea10159d8 | |||
| 33085f1a54 | |||
| a7884d764b | |||
| 6903747c00 | |||
| 2217f7f101 | |||
| 40443c4be1 | |||
| 89aebf5895 | |||
| 10741683b2 | |||
| ba4ee220c1 | |||
| f55acd82a4 | |||
| 314681c10f | |||
| 9fc81a0452 | |||
| 13063eb3f8 | |||
| 96e98d7dde | |||
| 463e37635e | |||
| bc2a922951 | |||
| 05eb14776c | |||
| 9ee1014824 | |||
| ad6ec78c6a | |||
| 2947579d33 | |||
| 02f8a39dc5 | |||
| 2190a241b6 | |||
| 7093f0f211 | |||
| ac8acd2165 | |||
| b1e6442059 | |||
| 9ad5da2fe5 | |||
| 03f8bcfd35 | |||
| e426a6228b | |||
| f57d351e49 | |||
| dc69e26a94 | |||
| 0d7878cce8 | |||
| 7f85fe082d | |||
| 130d26e0ed | |||
| 39e0aa7525 | |||
| 4978dbcd80 | |||
| 6b4ffa50d2 | |||
| 0217bf4735 | |||
| b690be812c | |||
| 6ddef721ba | |||
| c17dfa5da9 | |||
| f588f2a44b | |||
| b8705dfdc9 | |||
| dcc50b0d69 | |||
| f7c15e56d5 | |||
| 1402eca48b | |||
| ebd4fbec1e | |||
| 382b517a6d | |||
| bfb8c513e3 | |||
| 38b3fe7fd7 | |||
| c107d27b29 | |||
| ea974fb72c | |||
| bf2d7d07e1 | |||
| e551a03ee1 | |||
| 9ab127c188 | |||
| 741e6076ca | |||
| c052f58667 | |||
| 2ff6f0c76d | |||
| 52dfa38d0c | |||
| 230f923c48 | |||
| a41173dc72 | |||
| a43ebd1b6c | |||
| 3aa82fa296 | |||
| 2fe02d459d | |||
| c9f96350cc | |||
| 2dfe00fd40 | |||
| 1b450acfe2 | |||
| df895b6bed | |||
| 238251b657 | |||
| 74e9162d72 | |||
| d8e7a2ce28 | |||
| 1b32d110c7 | |||
| 40bb305ff9 | |||
| 884621fd47 | |||
| fdd6416b8c | |||
| e3e0be048a | |||
| 507446aac2 | |||
| 869e8436df | |||
| 3f78cd2d2e | |||
| a2e8a14dac | |||
| 1c76f00adc | |||
| 1cd38b1ff2 | |||
| 774cae1887 | |||
| 642b90d7b5 | |||
| ae8056ff98 | |||
| 67548d0f79 | |||
| adc9441f35 | |||
| 3e765e4b0c | |||
| 1086b5334d | |||
| a4041fb853 | |||
| 9830b9d947 | |||
| 4261efc3ff | |||
| 9aae8abd53 | |||
| bb387b8bc4 | |||
| 3aadc6846b | |||
| fd5061a748 | |||
| 23e2cf7d08 | |||
| e9a5ad781c | |||
| 4894baaee3 | |||
| 7052631867 | |||
| 3fd3ae4a0d | |||
| 17fd27b383 | |||
| 85749ee068 | |||
| eb09dc0341 | |||
| e2546b9af3 | |||
| c94323fe1e | |||
| 64e9bdab0e | |||
| c57c405fc2 | |||
| cfd0236b43 | |||
| 6c63c7d3dd | |||
| 47aeb1fcc2 | |||
| abc90c925e | |||
| bc215f8efe | |||
| 00d1bf12ea | |||
| aca0ccaf31 | |||
| 3c76bd90e7 | |||
| 463e3b41f8 | |||
| e30d58c3a9 | |||
| b2e51da87a | |||
| 932a2acf31 | |||
| 412c381ffe | |||
| aff0b56fa1 | |||
| dd0e5712cd | |||
| d85e60b6e8 | |||
| ca12ae98db | |||
| d17c666e1c | |||
| c325e7f1ed | |||
| bcd6edbabb | |||
| d38f4d27ff | |||
| 98a28d7708 | |||
| 05af720e37 | |||
| 3214e5e5cb | |||
| b3187e9888 | |||
| cc9acb272e | |||
| cb56295334 | |||
| 0a7bad5eca | |||
| 7cc637784d | |||
| ea4ce92a75 | |||
| bfd5c1060d | |||
| f92d04f2e5 | |||
| d65a7b2425 | |||
| 1b3c6754c0 | |||
| 858ab70918 | |||
| ce4d7689c9 | |||
| 4f5c4f4cbe | |||
| 7d3b5903e6 | |||
| 9a87f7fd08 | |||
| b4257f8e5e | |||
| 12870a676b | |||
| afd5dd2852 | |||
| aaea56c02a | |||
| a0354f73e8 | |||
| 8260992f26 | |||
| b35963d0e2 | |||
| f38e67a27f | |||
| a78314870b | |||
| bdd63dd931 | |||
| cfb7df2284 | |||
| 99d6735566 | |||
| 1279c8021a | |||
| 2063a41276 | |||
| 46492eb102 | |||
| 4f439b2945 | |||
| 41307f592d | |||
| 840e82d2b6 | |||
| cf237c5511 | |||
| 88034e2ace | |||
| f91b4ed999 | |||
| 7a7721dcb0 | |||
| d88a3cc3a3 | |||
| 265266aeaf | |||
| 9db266845b | |||
| 071bdc5430 | |||
| 5361b55235 | |||
| eaf3ad07fb | |||
| 92860e6722 | |||
| d77f8c336a | |||
| 2a3eb40a7b | |||
| 4feceaa825 | |||
| 1158fefb62 | |||
| be39341776 | |||
| ebd19ac221 | |||
| a2418505e1 | |||
| e8c9322a1d | |||
| e9c5def271 | |||
| 859b3b0bfa | |||
| e4178332e0 | |||
| b2b292cc72 | |||
| a78cd55bed | |||
| 2c237322d9 | |||
| 1cf7308b3a | |||
| ad7d0d3da5 | |||
| 409331495b | |||
| 25233e5a94 | |||
| ea74e0ea8a | |||
| fc4ecd125e | |||
| 9c77295110 | |||
| bc8b0b33c8 | |||
| b2f3411f3e | |||
| c1054c5f56 | |||
| 08b7b65060 | |||
| be4eface3b | |||
| 0f9a96f92d | |||
| b9fb30c69a | |||
| aa244425a5 | |||
| 7dc1627e7c | |||
| 96017eb7bd | |||
| 5ecc742ed3 | |||
| f384617395 | |||
| 3a8e8743d3 | |||
| 5d6a0a72aa | |||
| 3b44d94de6 | |||
| 32158cd644 | |||
| de161c7fa7 | |||
| d2104909e0 | |||
| 9741310c8f | |||
| 41437d29a4 | |||
| 19d224e464 | |||
| 8703948897 | |||
| ae72f8eed2 | |||
| 34c8d19f5e | |||
| f5c04721a3 | |||
| a211ca5dab | |||
| 63cf839be5 | |||
| 08462c22aa | |||
| 2ad1b24606 | |||
| c5d53e005a | |||
| 983252387f | |||
| 2e7589074e | |||
| 10a0afc40d | |||
| 5cec671f7c | |||
| 3004031168 | |||
| cb138bef7c | |||
| 94ea1b0af0 | |||
| 45453891f4 | |||
| 3f06cb6d34 | |||
| 816eb8fe47 | |||
| 58fea21b12 | |||
| d081adfaa7 | |||
| 8ce7ad44a2 | |||
| 716cb13554 | |||
| fd514010de | |||
| 3e6283f3cf | |||
| 042c1893a0 | |||
| e2e7824b87 | |||
| 05befb22ce | |||
| f875d70d47 | |||
| 54ce0b2493 | |||
| 19927b7f74 | |||
| d09fdd7d9f | |||
| 8129308233 | |||
| 5867767855 | |||
| a8e9d833b2 | |||
| 485babde8f | |||
| 8353e4265b | |||
| 98d8e6d401 | |||
| 9e45679ad4 | |||
| b007129227 | |||
| 67c1eed94c | |||
| a69d9ff889 | |||
| 2f913e28e2 | |||
| 1acc9a37dd | |||
| f6470cd7e0 | |||
| d132bc1425 | |||
| bbf95dcacf | |||
| 824b6180b9 | |||
| 6b749fcfee | |||
| dd4a1b3a9b | |||
| 93655254b4 | |||
| cfd735a321 | |||
| 7f8129a018 | |||
| da8817129a | |||
| b178ac76b5 | |||
| dd153a5f5b | |||
| 19d6b591a4 | |||
| bc2ed5e722 | |||
| bed6cd8290 | |||
| a7488600fe | |||
| 8e7a436539 | |||
| 5e4743cad6 | |||
| 775fcf79d5 | |||
| 12c92f479b | |||
| 739ab2f72d | |||
| c8f60a14f7 | |||
| afaa397ae7 | |||
| 1886c5a607 | |||
| 67543bf069 | |||
| 4cced131e4 | |||
| 060c3fc7ab | |||
| 65693be5f9 | |||
| 0731f530fc | |||
| 5fdba25a68 | |||
| 3c7d2b6222 | |||
| 38b1cfcc6d | |||
| 5b1cb64952 | |||
| 4b44300c64 | |||
| f6a1d168e6 | |||
| 145834f1f2 | |||
| 60df7fc978 | |||
| 1645a58983 | |||
| 6c797b065d | |||
| 62b1f07a25 | |||
| 7ba4790ad6 | |||
| 7b802d609d | |||
| 175fc1d793 | |||
| 021af5f21a | |||
| d99fd4e14f | |||
| e91e7f2ff0 | |||
| 073f0762b6 | |||
| c9def8c898 | |||
| 9c555e71cb | |||
| e6d8a83893 | |||
| 1fe7ed11b5 | |||
| eeddd81477 | |||
| c878a4141b | |||
| 49f0751204 | |||
| 199626171e | |||
| e489a8bf46 | |||
| 53c8b7473a | |||
| dcebd98cf1 | |||
| 44df066c3f | |||
| 5a8802a5df | |||
| 45c4c40560 | |||
| da732bea82 | |||
| f5a614a908 | |||
| 63c576f618 | |||
| cb460655d4 | |||
| 4eb5ed6e52 | |||
| 80f44fd1be | |||
| 3449bc4ced | |||
| ed914c6c67 | |||
| 46f0491624 | |||
| e26f7c6bcb | |||
| f10eb64976 | |||
| 0a0f485efe | |||
| 36b88cf203 | |||
| 868d943d98 | |||
| 487f196f19 | |||
| ddeaa3ff6b | |||
| 98a328c9f9 | |||
| 986bbc8cf3 | |||
| f99805a17d | |||
| f4276e84c0 | |||
| d76359865c | |||
| 1afc3389dd | |||
| a9f315285c | |||
| 4960a154bc | |||
| 796cd47feb | |||
| d2573ea366 | |||
| 74abd9bc4c | |||
| be2f909c02 | |||
| 0e7ca10f4f | |||
| 9e4bce69a1 | |||
| a1bd2c8015 | |||
| 08c5908e19 | |||
| 88f58f532c | |||
| 90cbce39ae | |||
| b82ab5afde | |||
| c46a9408aa | |||
| 8947985b9d | |||
| 0d1cbde25a | |||
| 1e23ca1950 | |||
| 436144d0b8 | |||
| eca92c1c12 | |||
| 30606b250a | |||
| 64902c85a5 | |||
| 4bbf882ded | |||
| afc5bf89e7 | |||
| aca20a5330 | |||
| 78fe61e5aa | |||
| cf87b1aaf9 | |||
| 1544ec48b4 | |||
| 532b25db2d | |||
| c339a55ded | |||
| 58f25cfff5 | |||
| a7658b8b51 | |||
| 603e63f417 | |||
| f3de3ca716 | |||
| 3f0210ee20 | |||
| 0a324503e7 | |||
| 7677e529ce | |||
| bdc526e95f | |||
| c3f3892308 | |||
| cb3f95cb3a | |||
| 17d1067ed7 | |||
| 6be3ed860c | |||
| 001d394054 | |||
| 96af1f81b2 | |||
| ffed1d4568 | |||
| 448dffeb9f | |||
| c2b03e5ecb | |||
| f96e1141e3 | |||
| e218c7f6d7 | |||
| cb5aee8b81 | |||
| 668d577577 | |||
| 8f1735c0c6 | |||
| dfded700da | |||
| f2ac4a2689 | |||
| 720e8e4ab9 | |||
| 4b9aa183a5 | |||
| 8a4abbfe9a | |||
| 6533bd638a | |||
| 45f684e938 | |||
| 98fc622b8a | |||
| 28c2d885fe | |||
| 4378dbb2b4 | |||
| 426c264795 | |||
| 22c7ef9096 | |||
| 9d3ed10203 | |||
| 76cb270f66 | |||
| 0ef71ad036 | |||
| 7a87d8e170 | |||
| a1a6d099b5 | |||
| b485ff23e3 | |||
| fb2332dbb1 | |||
| 010b062164 | |||
| c1c87c364b | |||
| 512c3a0ed6 | |||
| cb90821a1a | |||
| 832bebf2b1 | |||
| c8269e6e02 | |||
| 4520d7aa84 | |||
| b7773cdac4 | |||
| 085649aefe | |||
| 7896a2bba0 | |||
| 7bea33cce3 | |||
| 977844d42b | |||
| 8b31c62888 | |||
| 04796de0a4 | |||
| e57a35d1e0 | |||
| bc2846c8a9 | |||
| a834d134f1 | |||
| 7b460e7a60 | |||
| 21630315f8 | |||
| 5ec8620d73 | |||
| 9f96c2218c | |||
| 3fb3f90a34 | |||
| 2b1b8d4737 | |||
| b623e6998e | |||
| 6c5b3d7780 | |||
| 6a09d7b485 | |||
| afed1748d1 | |||
| 7410373f95 | |||
| 706b36cbfb | |||
| 66dd42aea2 | |||
| 69994d9583 | |||
| 2877de22f8 | |||
| d3f877c05e | |||
| a682eaf0f2 | |||
| 80ddd8d242 | |||
| be42463829 | |||
| a62d17d749 | |||
| ec008c4d78 | |||
| fa35a3f097 | |||
| 79487a64c6 | |||
| 653513d038 | |||
| 7b74ffb29b | |||
| 328ab501f2 | |||
| a45a77689f | |||
| 75b03367ee | |||
| 322fc13487 | |||
| ba14dd468c | |||
| 2aeb87d51a | |||
| 22528590a1 | |||
| f1d7ca5d8e | |||
| dbfb103a9d | |||
| 5d575d85ab | |||
| b8454a994d | |||
| 35f0464d70 | |||
| d0821ac14b | |||
| ca45361327 | |||
| d5598b238b | |||
| 397e939d43 | |||
| fe02c5dfc1 | |||
| bc9a2de2c2 | |||
| b35719db57 | |||
| de1a002ded | |||
| a0e2c4b9fb | |||
| 487e0b2dc7 | |||
| ab77992610 | |||
| 587378d70d | |||
| 7a9ed2117f | |||
| f72cd2f2c9 | |||
| 14a547b29b | |||
| a66d7899aa | |||
| fd90cbd625 | |||
| 9e870647e2 | |||
| a556fc70fc | |||
| fad75368d2 | |||
| 68784401e3 | |||
| 972cc92010 | |||
| 342756091b | |||
| 78ad15eb42 | |||
| 77ea699aea | |||
| 3bd0a612d9 | |||
| 6636f2dc68 | |||
| 888c08993f | |||
| 44e5d225ec | |||
| c4bea33196 | |||
| f998fbf064 | |||
| bb927b37fa | |||
| 437daf558f | |||
| 8f2e23e567 | |||
| 23f2788cb2 | |||
| 088d7b723a | |||
| 64224ecaef | |||
| 855d0f912a | |||
| 3283532827 | |||
| 12d95014f3 | |||
| 3a3fe19e45 | |||
| 44ac929426 | |||
| c773da7a80 | |||
| 2c4742c223 | |||
| 3284df8454 | |||
| f139ae99f6 | |||
| c0daa2015e | |||
| e18b93fc10 | |||
| dc864c2526 | |||
| 8a56be8984 | |||
| 19f30bbd5f | |||
| 58fdf25648 | |||
| 90edafb551 | |||
| aba66b0a40 | |||
| 3db58629ef | |||
| a2f15c2bac | |||
| f9683e1077 | |||
| 4ef3ad59e2 | |||
| 43dcf03369 | |||
| dc21668757 | |||
| e3140c1ce7 | |||
| afb4bf7b30 | |||
| 43791c090f | |||
| 49973c99bd | |||
| 56f49cd019 | |||
| d7b0a7c085 | |||
| af19281361 | |||
| 3de1b7260d | |||
| 29f8f9e030 | |||
| fca1f1f229 | |||
| a9ac475735 | |||
| 6dc2df95ae | |||
| 733a1f1709 | |||
| 1e9d1ead71 | |||
| b2c4cfaf73 | |||
| b8597d2374 | |||
| aa022adccd | |||
| 0724ed7cb3 | |||
| d82ac5e79f | |||
| 1fca815018 | |||
| ae5ec8dadc | |||
| d00e26ca38 | |||
| e76c867d31 | |||
| 52a2c85777 | |||
| cb5f6a52f4 | |||
| e0dd3eaa21 | |||
| 4d5fee52d7 | |||
| a234b398a4 | |||
| 373cd57ba3 | |||
| 05e9213b72 | |||
| 9cd13d0f9a | |||
| efdcae6244 | |||
| ca3459d377 | |||
| 2058edb0f3 | |||
| 8245cbb603 | |||
| dfa21c2bbb | |||
| 7429f628a1 | |||
| a92b911876 | |||
| 23e0247462 | |||
| fa316018ff | |||
| 1f25bce7ed | |||
| f25326d01f | |||
| ebe28f65b0 | |||
| 717aecc277 | |||
| 7d884215e8 | |||
| b9c3f2b9fc | |||
| 44fee6a509 | |||
| f109068dec | |||
| 3bd30695a1 | |||
| fac22e3a6e | |||
| c38f6e790c | |||
| e3a2bb6053 | |||
| dc593c481b | |||
| e0d228a1d7 | |||
| f702cab977 | |||
| fe23a6c4bd | |||
| 07af0925fa | |||
| b34cac280a | |||
| 763cde090a | |||
| 930c9ffafd | |||
| 52c0ab0126 | |||
| ec32ba6c81 | |||
| f7b886019e | |||
| 1dd94a829b | |||
| d246081ae3 | |||
| b4018407b1 | |||
| efd39151be | |||
| c019f17718 | |||
| 3a1c248e28 | |||
| 2a3db4a5ae | |||
| d9a608d52b | |||
| 0ed440e7ed | |||
| 9e2eb09fda | |||
| 9210bc956a | |||
| 2a82b0323a | |||
| dbfde80c1d | |||
| 2fcd4a64fc | |||
| 9af6fb6cb4 | |||
| 64ff2a5bfa | |||
| ba92045476 | |||
| 4f18947f44 | |||
| 328e59a504 | |||
| d1f021aba3 | |||
| 5e2121c8ef | |||
| e07a6d1422 | |||
| e351d6c85f | |||
| 3fc20448a9 | |||
| 4ca186ac3c | |||
| ca435e865f | |||
| d9146e162e | |||
| 4bf5a5799b | |||
| b40d655c11 | |||
| 26146d4e54 | |||
| 3c0253d090 | |||
| c696cca184 | |||
| c6d32836fc | |||
| 91c08f498e | |||
| 47e927df39 | |||
| 7d3544c32a | |||
| f6f81bad8d | |||
| 2d84c99f57 | |||
| 28974b5ca9 | |||
| b7be2b43b8 | |||
| 83670f35c7 | |||
| 815b254899 | |||
| 31c00f55f4 | |||
| dad1cff430 | |||
| 99a784fd80 | |||
| c8f2f48619 | |||
| 4abb02d406 | |||
| 68e4ecba39 | |||
| 34a2e144ee | |||
| 76098e8d65 | |||
| 48d11b8830 | |||
| 2f352a2bc4 | |||
| 0900c07e0f | |||
| d15507941d | |||
| 607a161e8d | |||
| 7ff5d1d783 | |||
| 643f819e28 | |||
| 0b972fea15 | |||
| a5d862a67c | |||
| 7125cedbac | |||
| 9ae73720b4 | |||
| 4d482009a8 | |||
| 4809c00fb5 | |||
| c8855e232c | |||
| 30c02e9c47 | |||
| 949a0fb175 | |||
| c8fd002523 | |||
| cd7b186298 | |||
| ab4ae40f60 | |||
| 8338ac2ef7 | |||
| eeead87bca | |||
| 1d1cc49559 | |||
| f3e8b2c403 | |||
| 3d008944b0 | |||
| f23965bf6f | |||
| 926324cb79 | |||
| 6e9af80341 | |||
| 3701bd3b7a | |||
| b32cc2fef3 | |||
| 755459c8fe | |||
| b81ac4b2e8 | |||
| d11941b348 | |||
| 026a567827 | |||
| e34cda994e | |||
| c09309313a | |||
| 732d08036b | |||
| 8225d1f585 | |||
| b85b0133a4 | |||
| f901aa2757 | |||
| f16a9222bf | |||
| b992f1e5cd | |||
| 2c030d052c | |||
| 507ba97dd3 | |||
| d58ff64e0d | |||
| f379e384b5 | |||
| 69360cd777 | |||
| 2ae0931453 | |||
| 54d873e8df | |||
| 65ea3b37bd | |||
| 6f9bd6056c | |||
| 21f400d517 | |||
| dbdf8473ce | |||
| 65786e3f04 | |||
| 86b78861aa | |||
| 31b827b422 | |||
| 3fd2eb137c | |||
| e59cb4aea8 | |||
| ebfc61d889 | |||
| 19fa16f426 | |||
| ba38793deb | |||
| c2ad0c89fc | |||
| f86b626f25 | |||
| 0c646191f6 | |||
| 05dffbd825 | |||
| 6fb995919e | |||
| d7e7b2d5d0 | |||
| b5d6d801fb | |||
| d1bb4aba68 | |||
| 3dc3a78a1e | |||
| 954c7e22d7 | |||
| 14221c8d08 | |||
| 807054af80 | |||
| ed2b205151 | |||
| 54a40d7a8f | |||
| c21b70cb91 | |||
| ab0e152c4c | |||
| 782128860a | |||
| 850005f41c | |||
| 01a3259bb0 | |||
| 7d8953861d | |||
| 965089aa3c | |||
| e71050714b | |||
| 936943c24a | |||
| 66734265eb | |||
| 61e3be939e | |||
| e65858bcd4 | |||
| 2addee0322 | |||
| bdf95f0bf5 | |||
| 27a86fd831 | |||
| 7acfcd52ce | |||
| a1d692786a | |||
| a1cde6e991 | |||
| ed725001a1 | |||
| 250f36f34c | |||
| 7fc9e3bd46 | |||
| 5fcc85e764 | |||
| 6c8fce49f3 | |||
| 797525f108 | |||
| 49b76f20b0 | |||
| f378cb63c0 | |||
| c9a772af43 | |||
| 7797cac68e | |||
| b224a7bf6e | |||
| ae1e7f99ab | |||
| ca00356f3e | |||
| f8ede83f25 | |||
| 3c8378c27c | |||
| e753d51af3 | |||
| 7665d9df58 | |||
| 0349d2d303 | |||
| 629cb72a88 | |||
| 0e692eaf30 | |||
| 6b9e8d42b7 | |||
| b06982957a | |||
| 8b887f3f86 | |||
| f7405c92a9 | |||
| 866886975b | |||
| 07fa76c9b0 | |||
| ca6d26ae7d | |||
| c9a032c6ec | |||
| e825fe3283 | |||
| c6ffad092b | |||
| 11973aa7ed | |||
| 9cb0cb44b2 | |||
| ab75dbe6d1 | |||
| 3bc89b9671 | |||
| cf1968db69 | |||
| c96e8d5fdb | |||
| fd12332971 | |||
| 10c02f4091 | |||
| 2e076a4a6c | |||
| 93a712cb3d | |||
| 2cb4f99ea0 | |||
| e2ab609918 | |||
| 017e7cbe39 | |||
| cc3722f757 | |||
| 5e03e9c171 | |||
| e89cfb5423 | |||
| 69ebd54e92 | |||
| c5abec2a3f | |||
| fd11f04a1e | |||
| 3a64a3da4d | |||
| 9a3e3a6d54 | |||
| 6f3f18c78b | |||
| ca9a2801db | |||
| d32af71cd4 | |||
| a0c0d77614 | |||
| 2458c2e2eb | |||
| b659a624b7 | |||
| 14002a1f4e | |||
| 5779121e54 | |||
| 8aa63aa094 | |||
| 146ee4011f | |||
| 42c88127d3 | |||
| 05b1b45f00 | |||
| ff63612f5e | |||
| 5eb3bf3284 | |||
| 0480399671 | |||
| ee31dc1f3d | |||
| b3af4279c5 | |||
| 4b4a517871 | |||
| d6e3524eff | |||
| 354c5f74a0 | |||
| 74321a8507 | |||
| 0c7af2f339 | |||
| 29498edbd8 | |||
| 9dbae083e9 | |||
| 45607188c9 | |||
| 9f4319d5c4 | |||
| 5a3880d9eb | |||
| 000bfcc5f3 | |||
| 2076410442 | |||
| babea1d5db | |||
| f371943047 | |||
| 40a0267b0d | |||
| 51e539beda | |||
| 69e7b9778a | |||
| 854d36b8ba | |||
| 1348c006a2 | |||
| 4ade56fd21 | |||
| 6521c924d7 | 
| @@ -1,7 +1,7 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: auth-proxy |   name: cluster-fun-auth-proxy | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: auth-proxy |     namespace: auth-proxy | ||||||
|     name: cluster-fun (scaleway) |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/auth-proxy |     path: manifests/auth-proxy | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: base64 |     namespace: base64 | ||||||
|     name: civo |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/base64 |     path: manifests/base64 | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,7 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: blackhole |   name: cluster-fun-blackhole | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: kube-system |     namespace: kube-system | ||||||
|     name: cluster-fun (scaleway) |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/blackhole |     path: manifests/blackhole | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: blog |   name: cluster-fun-blog | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: blog |     namespace: blog | ||||||
|     name: cluster-fun (scaleway) |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/blog |     path: manifests/blog | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,8 +22,5 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
| --- | --- | ||||||
|   | |||||||
| @@ -1,17 +1,17 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: monitoring-civo |   name: bsky-screenshot | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| spec: | spec: | ||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: monitoring |     namespace: bsky-screenshot | ||||||
|     name: civo |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/monitoring-civo |     path: manifests/bsky-screenshot | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
|     targetRevision: HEAD |     targetRevision: HEAD | ||||||
|   syncPolicy: |   syncPolicy: | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: cel-tester |     namespace: cel-tester | ||||||
|     name: civo |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/cel-tester |     path: manifests/cel-tester | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: cert-manager |   name: cluster-fun-cert-manager-issuer | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: cert-manager |     namespace: cert-manager | ||||||
|     name: cluster-fun (scaleway) |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/certmanager_chart |     path: manifests/certmanager_chart | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -24,7 +24,7 @@ spec: | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: cert-manager-civo |   name: cluster-fun-cert-manager-chart | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| @@ -32,31 +32,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: cert-manager |     namespace: cert-manager | ||||||
|     name: civo |     name: cluster-fun (v2) | ||||||
|   source: |  | ||||||
|     path: manifests/certmanager-civo |  | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |  | ||||||
|     targetRevision: HEAD |  | ||||||
|   syncPolicy: |  | ||||||
|     automated: {} |  | ||||||
|   ignoreDifferences: |  | ||||||
|   - kind: Secret |  | ||||||
|     jsonPointers: |  | ||||||
|     - /data |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| apiVersion: argoproj.io/v1alpha1 |  | ||||||
| kind: Application |  | ||||||
| metadata: |  | ||||||
|   name: cert-manager-cert-manager |  | ||||||
|   namespace: argocd |  | ||||||
|   finalizers: |  | ||||||
|   - resources-finalizer.argocd.argoproj.io |  | ||||||
| spec: |  | ||||||
|   project: cluster.fun |  | ||||||
|   destination: |  | ||||||
|     namespace: cert-manager |  | ||||||
|     name: cluster-fun (scaleway) |  | ||||||
|   source: |   source: | ||||||
|     repoURL: 'https://charts.jetstack.io' |     repoURL: 'https://charts.jetstack.io' | ||||||
|     targetRevision: 1.11.0 |     targetRevision: 1.11.0 | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: civo-versions |     namespace: civo-versions | ||||||
|     name: civo |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/civo-versions |     path: manifests/civo-versions | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,7 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: cors-proxy |     namespace: cors-proxy | ||||||
|     name: cluster-fun (scaleway) |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/cors-proxy |     path: manifests/cors-proxy | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: cv |     namespace: cv | ||||||
|     name: civo |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/cv |     path: manifests/cv | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,7 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: dashboard |   name: cluster-fun-dashboard | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: dashboard |     namespace: dashboard | ||||||
|     name: cluster-fun (scaleway) |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/dashboard |     path: manifests/dashboard | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,8 +22,5 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
| --- | --- | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: devstats-viewer |   name: cluster-fun-devstats-viewer | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: devstats-viewer |     namespace: devstats-viewer | ||||||
|     name: cluster-fun (scaleway) |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/devstats-viewer |     path: manifests/devstats-viewer | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,7 +22,5 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment | --- | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: feed-fetcher |     namespace: feed-fetcher | ||||||
|     name: civo |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/feed-fetcher |     path: manifests/feed-fetcher | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,7 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: git-sync |   name: cluster-fun-git-sync | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: git-sync |     namespace: git-sync | ||||||
|     name: cluster-fun (scaleway) |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/git-sync |     path: manifests/git-sync | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,3 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|  | --- | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: gitea |   name: cluster-fun-gitea | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: gitea |     namespace: gitea | ||||||
|     name: cluster-fun (scaleway) |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/gitea |     path: manifests/gitea | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,3 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|  | --- | ||||||
|   | |||||||
							
								
								
									
										35
									
								
								manifests/_apps/goldilocks.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								manifests/_apps/goldilocks.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | |||||||
|  |  | ||||||
|  | # apiVersion: argoproj.io/v1alpha1 | ||||||
|  | # kind: Application | ||||||
|  | # metadata: | ||||||
|  | #   name: cluster-fun-goldilocks | ||||||
|  | #   namespace: argocd | ||||||
|  | #   finalizers: | ||||||
|  | #   - resources-finalizer.argocd.argoproj.io | ||||||
|  | # spec: | ||||||
|  | #   project: cluster.fun | ||||||
|  | #   destination: | ||||||
|  | #     namespace: goldilocks | ||||||
|  | #     name: cluster-fun (v2) | ||||||
|  | #   source: | ||||||
|  | #     repoURL: 'https://charts.fairwinds.com/stable' | ||||||
|  | #     targetRevision: 10.1.0 | ||||||
|  | #     chart: goldilocks | ||||||
|  | #     helm: | ||||||
|  | #       version: v3 | ||||||
|  | #       values: |- | ||||||
|  | #         vpa: | ||||||
|  | #           enabled: true | ||||||
|  | #         controller: | ||||||
|  | #           flags: | ||||||
|  | #             on-by-default: true | ||||||
|  | #         dashboard: | ||||||
|  | #           flags: | ||||||
|  | #             on-by-default: true | ||||||
|  | #           replicaCount: 1 | ||||||
|  | #   syncPolicy: | ||||||
|  | #     automated: {} | ||||||
|  | #     syncOptions: | ||||||
|  | #       - CreateNamespace=true | ||||||
|  |  | ||||||
|  | # --- | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: goplayground |     namespace: goplayground | ||||||
|     name: civo |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/goplayground |     path: manifests/goplayground | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
|   | |||||||
| @@ -1,17 +1,17 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: proxy-civo |   name: cluster-fun-grist | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| spec: | spec: | ||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: proxy-civo |     namespace: grist | ||||||
|     name: civo |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/proxy-civo |     path: manifests/grist | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
|     targetRevision: HEAD |     targetRevision: HEAD | ||||||
|   syncPolicy: |   syncPolicy: | ||||||
| @@ -22,3 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|  | --- | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: link |     namespace: link | ||||||
|     name: civo |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/link |     path: manifests/link | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: marcusnoble |   name: cluster-fun-marcusnoble | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: marcusnoble |     namespace: marcusnoble | ||||||
|     name: cluster-fun (scaleway) |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/marcusnoble |     path: manifests/marcusnoble | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,8 +22,5 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
| --- | --- | ||||||
|   | |||||||
| @@ -1,28 +0,0 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 |  | ||||||
| kind: Application |  | ||||||
| metadata: |  | ||||||
|   name: mastodon-digest |  | ||||||
|   namespace: argocd |  | ||||||
|   finalizers: |  | ||||||
|   - resources-finalizer.argocd.argoproj.io |  | ||||||
| spec: |  | ||||||
|   project: cluster.fun |  | ||||||
|   destination: |  | ||||||
|     namespace: mastodon-digest |  | ||||||
|     name: cluster-fun (scaleway) |  | ||||||
|   source: |  | ||||||
|     path: manifests/mastodon-digest |  | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |  | ||||||
|     targetRevision: HEAD |  | ||||||
|   syncPolicy: |  | ||||||
|     automated: {} |  | ||||||
|     syncOptions: |  | ||||||
|       - CreateNamespace=true |  | ||||||
|   ignoreDifferences: |  | ||||||
|   - kind: Secret |  | ||||||
|     jsonPointers: |  | ||||||
|     - /data |  | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
| @@ -1,28 +0,0 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 |  | ||||||
| kind: Application |  | ||||||
| metadata: |  | ||||||
|   name: mastodon-to-airtable |  | ||||||
|   namespace: argocd |  | ||||||
|   finalizers: |  | ||||||
|   - resources-finalizer.argocd.argoproj.io |  | ||||||
| spec: |  | ||||||
|   project: cluster.fun |  | ||||||
|   destination: |  | ||||||
|     namespace: mastodon-to-airtable |  | ||||||
|     name: civo |  | ||||||
|   source: |  | ||||||
|     path: manifests/mastodon-to-airtable |  | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |  | ||||||
|     targetRevision: HEAD |  | ||||||
|   syncPolicy: |  | ||||||
|     automated: {} |  | ||||||
|     syncOptions: |  | ||||||
|       - CreateNamespace=true |  | ||||||
|   ignoreDifferences: |  | ||||||
|   - kind: Secret |  | ||||||
|     jsonPointers: |  | ||||||
|     - /data |  | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
| @@ -1,7 +1,7 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: mealie |   name: cluster-fun-mealie | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: mealie |     namespace: mealie | ||||||
|     name: cluster-fun (scaleway) |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/mealie |     path: manifests/mealie | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,7 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|   - group: apps | --- | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: monitoring |   name: cluster-fun-monitoring | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: monitoring |     namespace: monitoring | ||||||
|     name: cluster-fun (scaleway) |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/monitoring |     path: manifests/monitoring | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: nextcloud |   name: cluster-fun-nextcloud | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: nextcloud |     namespace: nextcloud | ||||||
|     name: cluster-fun (scaleway) |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/nextcloud_chart |     path: manifests/nextcloud_chart | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,3 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|  | --- | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: nginx-lb |   name: cluster-fun-nginx-lb | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: kube-system |     namespace: kube-system | ||||||
|     name: cluster-fun (scaleway) |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/nginx-lb |     path: manifests/nginx-lb | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: nodered |   name: cluster-fun-nodered | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: node-red |     namespace: node-red | ||||||
|     name: cluster-fun (scaleway) |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/nodered |     path: manifests/nodered | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,3 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|  | --- | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: opengraph |     namespace: opengraph | ||||||
|     name: civo |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/opengraph |     path: manifests/opengraph | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,7 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: outline |   name: cluster-fun-outline | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: outline |     namespace: outline | ||||||
|     name: cluster-fun (scaleway) |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/outline |     path: manifests/outline | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,3 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|  | --- | ||||||
|   | |||||||
| @@ -1,29 +0,0 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 |  | ||||||
| kind: Application |  | ||||||
| metadata: |  | ||||||
|   name: paradoxfox |  | ||||||
|   namespace: argocd |  | ||||||
|   finalizers: |  | ||||||
|   - resources-finalizer.argocd.argoproj.io |  | ||||||
| spec: |  | ||||||
|   project: cluster.fun |  | ||||||
|   destination: |  | ||||||
|     namespace: paradoxfox |  | ||||||
|     name: cluster-fun (scaleway) |  | ||||||
|   source: |  | ||||||
|     path: manifests/paradoxfox |  | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |  | ||||||
|     targetRevision: HEAD |  | ||||||
|   syncPolicy: |  | ||||||
|     automated: {} |  | ||||||
|     syncOptions: |  | ||||||
|       - CreateNamespace=true |  | ||||||
|   ignoreDifferences: |  | ||||||
|   - kind: Secret |  | ||||||
|     jsonPointers: |  | ||||||
|     - /data |  | ||||||
|     - /stringData |  | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
| @@ -1,7 +1,7 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: traefik-civo |   name: cluster-fun-priority-classes | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| @@ -9,9 +9,9 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: kube-system |     namespace: kube-system | ||||||
|     name: civo |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/traefik |     path: manifests/priority-classes | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
|     targetRevision: HEAD |     targetRevision: HEAD | ||||||
|   syncPolicy: |   syncPolicy: | ||||||
| @@ -22,3 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|  | --- | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: qr |     namespace: qr | ||||||
|     name: civo |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/qr |     path: manifests/qr | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,7 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: redis |   name: cluster-fun-redis | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: redis |     namespace: redis | ||||||
|     name: cluster-fun (scaleway) |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/redis |     path: manifests/redis | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,3 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|  | --- | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: reloader |   name: cluster-fun-reloader | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: kube-system |     namespace: kube-system | ||||||
|     name: cluster-fun (scaleway) |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     repoURL: 'https://stakater.github.io/stakater-charts' |     repoURL: 'https://stakater.github.io/stakater-charts' | ||||||
|     targetRevision: v0.0.89 |     targetRevision: v0.0.89 | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: rss |   name: cluster-fun-rss | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: rss |     namespace: rss | ||||||
|     name: cluster-fun (scaleway) |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/rss |     path: manifests/rss | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,7 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|   - group: apps | --- | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
|   | |||||||
							
								
								
									
										25
									
								
								manifests/_apps/social-to-rolodex.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								manifests/_apps/social-to-rolodex.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | |||||||
|  | apiVersion: argoproj.io/v1alpha1 | ||||||
|  | kind: Application | ||||||
|  | metadata: | ||||||
|  |   name: social-to-rolodex | ||||||
|  |   namespace: argocd | ||||||
|  |   finalizers: | ||||||
|  |   - resources-finalizer.argocd.argoproj.io | ||||||
|  | spec: | ||||||
|  |   project: cluster.fun | ||||||
|  |   destination: | ||||||
|  |     namespace: social-to-rolodex | ||||||
|  |     name: cluster-fun (v2) | ||||||
|  |   source: | ||||||
|  |     path: manifests/social-to-rolodex | ||||||
|  |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
|  |     targetRevision: HEAD | ||||||
|  |   syncPolicy: | ||||||
|  |     automated: {} | ||||||
|  |     syncOptions: | ||||||
|  |       - CreateNamespace=true | ||||||
|  |   ignoreDifferences: | ||||||
|  |   - kind: Secret | ||||||
|  |     jsonPointers: | ||||||
|  |     - /data | ||||||
|  |  | ||||||
| @@ -1,29 +0,0 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 |  | ||||||
| kind: Application |  | ||||||
| metadata: |  | ||||||
|   name: starling |  | ||||||
|   namespace: argocd |  | ||||||
|   finalizers: |  | ||||||
|   - resources-finalizer.argocd.argoproj.io |  | ||||||
| spec: |  | ||||||
|   project: cluster.fun |  | ||||||
|   destination: |  | ||||||
|     namespace: starling |  | ||||||
|     name: cluster-fun (scaleway) |  | ||||||
|   source: |  | ||||||
|     path: manifests/starling |  | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |  | ||||||
|     targetRevision: HEAD |  | ||||||
|   syncPolicy: |  | ||||||
|     automated: {} |  | ||||||
|     syncOptions: |  | ||||||
|       - CreateNamespace=true |  | ||||||
|   ignoreDifferences: |  | ||||||
|   - kind: Secret |  | ||||||
|     jsonPointers: |  | ||||||
|     - /data |  | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
| --- |  | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: svg-to-dxf |     namespace: svg-to-dxf | ||||||
|     name: civo |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/svg-to-dxf |     path: manifests/svg-to-dxf | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,7 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: talks |     namespace: talks | ||||||
|     name: civo |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/talks |     path: manifests/talks | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,7 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
|   | |||||||
| @@ -1,29 +0,0 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 |  | ||||||
| kind: Application |  | ||||||
| metadata: |  | ||||||
|   name: tank |  | ||||||
|   namespace: argocd |  | ||||||
|   finalizers: |  | ||||||
|   - resources-finalizer.argocd.argoproj.io |  | ||||||
| spec: |  | ||||||
|   project: cluster.fun |  | ||||||
|   destination: |  | ||||||
|     namespace: tank |  | ||||||
|     name: cluster-fun (scaleway) |  | ||||||
|   source: |  | ||||||
|     path: manifests/tank |  | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |  | ||||||
|     targetRevision: HEAD |  | ||||||
|   syncPolicy: |  | ||||||
|     automated: {} |  | ||||||
|     syncOptions: |  | ||||||
|       - CreateNamespace=true |  | ||||||
|   ignoreDifferences: |  | ||||||
|   - kind: Secret |  | ||||||
|     jsonPointers: |  | ||||||
|     - /data |  | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
| --- |  | ||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: text-to-dxf |     namespace: text-to-dxf | ||||||
|     name: civo |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/text-to-dxf |     path: manifests/text-to-dxf | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,7 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ spec: | |||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: til |     namespace: til | ||||||
|     name: civo |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/til |     path: manifests/til | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
| @@ -22,7 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
|   | |||||||
| @@ -1,28 +0,0 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 |  | ||||||
| kind: Application |  | ||||||
| metadata: |  | ||||||
|   name: tweetsvg |  | ||||||
|   namespace: argocd |  | ||||||
|   finalizers: |  | ||||||
|   - resources-finalizer.argocd.argoproj.io |  | ||||||
| spec: |  | ||||||
|   project: cluster.fun |  | ||||||
|   destination: |  | ||||||
|     namespace: tweetsvg |  | ||||||
|     name: civo |  | ||||||
|   source: |  | ||||||
|     path: manifests/tweetsvg |  | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |  | ||||||
|     targetRevision: HEAD |  | ||||||
|   syncPolicy: |  | ||||||
|     automated: {} |  | ||||||
|     syncOptions: |  | ||||||
|       - CreateNamespace=true |  | ||||||
|   ignoreDifferences: |  | ||||||
|   - kind: Secret |  | ||||||
|     jsonPointers: |  | ||||||
|     - /data |  | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
| @@ -1,29 +0,0 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 |  | ||||||
| kind: Application |  | ||||||
| metadata: |  | ||||||
|   name: twitter-profile-pic |  | ||||||
|   namespace: argocd |  | ||||||
|   finalizers: |  | ||||||
|   - resources-finalizer.argocd.argoproj.io |  | ||||||
| spec: |  | ||||||
|   project: cluster.fun |  | ||||||
|   destination: |  | ||||||
|     namespace: twitter-profile-pic |  | ||||||
|     name: cluster-fun (scaleway) |  | ||||||
|   source: |  | ||||||
|     path: manifests/twitter-profile-pic |  | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |  | ||||||
|     targetRevision: HEAD |  | ||||||
|   syncPolicy: |  | ||||||
|     automated: {} |  | ||||||
|     syncOptions: |  | ||||||
|       - CreateNamespace=true |  | ||||||
|   ignoreDifferences: |  | ||||||
|   - kind: Secret |  | ||||||
|     jsonPointers: |  | ||||||
|     - /data |  | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
| --- |  | ||||||
| @@ -1,28 +0,0 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 |  | ||||||
| kind: Application |  | ||||||
| metadata: |  | ||||||
|   name: twitter-to-airtable |  | ||||||
|   namespace: argocd |  | ||||||
|   finalizers: |  | ||||||
|   - resources-finalizer.argocd.argoproj.io |  | ||||||
| spec: |  | ||||||
|   project: cluster.fun |  | ||||||
|   destination: |  | ||||||
|     namespace: twitter-to-airtable |  | ||||||
|     name: civo |  | ||||||
|   source: |  | ||||||
|     path: manifests/twitter-to-airtable |  | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |  | ||||||
|     targetRevision: HEAD |  | ||||||
|   syncPolicy: |  | ||||||
|     automated: {} |  | ||||||
|     syncOptions: |  | ||||||
|       - CreateNamespace=true |  | ||||||
|   ignoreDifferences: |  | ||||||
|   - kind: Secret |  | ||||||
|     jsonPointers: |  | ||||||
|     - /data |  | ||||||
|   - group: apps |  | ||||||
|     kind: Deployment |  | ||||||
|     jqPathExpressions: |  | ||||||
|     - .spec.template.spec.containers[]?.image |  | ||||||
| @@ -1,24 +0,0 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 |  | ||||||
| kind: Application |  | ||||||
| metadata: |  | ||||||
|   name: wallabag |  | ||||||
|   namespace: argocd |  | ||||||
|   finalizers: |  | ||||||
|   - resources-finalizer.argocd.argoproj.io |  | ||||||
| spec: |  | ||||||
|   project: cluster.fun |  | ||||||
|   destination: |  | ||||||
|     namespace: wallabag |  | ||||||
|     name: cluster-fun (scaleway) |  | ||||||
|   source: |  | ||||||
|     path: manifests/wallabag |  | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |  | ||||||
|     targetRevision: HEAD |  | ||||||
|   syncPolicy: |  | ||||||
|     syncOptions: |  | ||||||
|       - CreateNamespace=true |  | ||||||
|     automated: {} |  | ||||||
|   ignoreDifferences: |  | ||||||
|   - kind: Secret |  | ||||||
|     jsonPointers: |  | ||||||
|     - /data |  | ||||||
| @@ -1,18 +0,0 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 |  | ||||||
| kind: Application |  | ||||||
| metadata: |  | ||||||
|   name: weave-net |  | ||||||
|   namespace: argocd |  | ||||||
|   finalizers: |  | ||||||
|   - resources-finalizer.argocd.argoproj.io |  | ||||||
| spec: |  | ||||||
|   project: cluster.fun |  | ||||||
|   destination: |  | ||||||
|     namespace: kube-system |  | ||||||
|     name: cluster-fun (scaleway) |  | ||||||
|   source: |  | ||||||
|     path: manifests/weave-net |  | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |  | ||||||
|     targetRevision: HEAD |  | ||||||
|   syncPolicy: |  | ||||||
|     automated: {} |  | ||||||
| @@ -1,17 +1,17 @@ | |||||||
| apiVersion: argoproj.io/v1alpha1 | apiVersion: argoproj.io/v1alpha1 | ||||||
| kind: Application | kind: Application | ||||||
| metadata: | metadata: | ||||||
|   name: matrix |   name: yay-or-nay | ||||||
|   namespace: argocd |   namespace: argocd | ||||||
|   finalizers: |   finalizers: | ||||||
|   - resources-finalizer.argocd.argoproj.io |   - resources-finalizer.argocd.argoproj.io | ||||||
| spec: | spec: | ||||||
|   project: cluster.fun |   project: cluster.fun | ||||||
|   destination: |   destination: | ||||||
|     namespace: chat |     namespace: yay-or-nay | ||||||
|     name: cluster-fun (scaleway) |     name: cluster-fun (v2) | ||||||
|   source: |   source: | ||||||
|     path: manifests/matrix_chart |     path: manifests/yay-or-nay | ||||||
|     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" |     repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git" | ||||||
|     targetRevision: HEAD |     targetRevision: HEAD | ||||||
|   syncPolicy: |   syncPolicy: | ||||||
| @@ -22,5 +22,4 @@ spec: | |||||||
|   - kind: Secret |   - kind: Secret | ||||||
|     jsonPointers: |     jsonPointers: | ||||||
|     - /data |     - /data | ||||||
| 
 |  | ||||||
| --- | --- | ||||||
| @@ -23,8 +23,13 @@ spec: | |||||||
|     - sonarr.cluster.fun |     - sonarr.cluster.fun | ||||||
|     - lidarr.cluster.fun |     - lidarr.cluster.fun | ||||||
|     - prowlarr.cluster.fun |     - prowlarr.cluster.fun | ||||||
|  |     - mylarr.cluster.fun | ||||||
|     - transmission.cluster.fun |     - transmission.cluster.fun | ||||||
|     - tekton.cluster.fun |     - tekton.cluster.fun | ||||||
|  |     - changedetection.cluster.fun | ||||||
|  |     - grafana.cluster.fun | ||||||
|  |     - podgrab.cluster.fun | ||||||
|  |     - stablediffusion.cluster.fun | ||||||
|     secretName: auth-proxy-ingress |     secretName: auth-proxy-ingress | ||||||
|   rules: |   rules: | ||||||
|   - host: downloads.cluster.fun |   - host: downloads.cluster.fun | ||||||
| @@ -34,9 +39,9 @@ spec: | |||||||
|         pathType: ImplementationSpecific |         pathType: ImplementationSpecific | ||||||
|         backend: |         backend: | ||||||
|           service: |           service: | ||||||
|             name: auth-proxy |             name: tailscale-proxy | ||||||
|             port: |             port: | ||||||
|               name: http |               name: auth | ||||||
|   - host: argo.cluster.fun |   - host: argo.cluster.fun | ||||||
|     http: |     http: | ||||||
|       paths: |       paths: | ||||||
| @@ -44,9 +49,9 @@ spec: | |||||||
|         pathType: ImplementationSpecific |         pathType: ImplementationSpecific | ||||||
|         backend: |         backend: | ||||||
|           service: |           service: | ||||||
|             name: auth-proxy |             name: tailscale-proxy | ||||||
|             port: |             port: | ||||||
|               name: http |               name: auth | ||||||
|   - host: code.cluster.fun |   - host: code.cluster.fun | ||||||
|     http: |     http: | ||||||
|       paths: |       paths: | ||||||
| @@ -54,9 +59,9 @@ spec: | |||||||
|         pathType: ImplementationSpecific |         pathType: ImplementationSpecific | ||||||
|         backend: |         backend: | ||||||
|           service: |           service: | ||||||
|             name: auth-proxy |             name: tailscale-proxy | ||||||
|             port: |             port: | ||||||
|               name: http |               name: auth | ||||||
|   - host: jackett.cluster.fun |   - host: jackett.cluster.fun | ||||||
|     http: |     http: | ||||||
|       paths: |       paths: | ||||||
| @@ -64,9 +69,9 @@ spec: | |||||||
|         pathType: ImplementationSpecific |         pathType: ImplementationSpecific | ||||||
|         backend: |         backend: | ||||||
|           service: |           service: | ||||||
|             name: auth-proxy |             name: tailscale-proxy | ||||||
|             port: |             port: | ||||||
|               name: http |               name: auth | ||||||
|   - host: printer.cluster.fun |   - host: printer.cluster.fun | ||||||
|     http: |     http: | ||||||
|       paths: |       paths: | ||||||
| @@ -74,9 +79,9 @@ spec: | |||||||
|         pathType: ImplementationSpecific |         pathType: ImplementationSpecific | ||||||
|         backend: |         backend: | ||||||
|           service: |           service: | ||||||
|             name: auth-proxy |             name: tailscale-proxy | ||||||
|             port: |             port: | ||||||
|               name: http |               name: auth | ||||||
|   - host: ender3pro.printer.cluster.fun |   - host: ender3pro.printer.cluster.fun | ||||||
|     http: |     http: | ||||||
|       paths: |       paths: | ||||||
| @@ -84,9 +89,9 @@ spec: | |||||||
|         pathType: ImplementationSpecific |         pathType: ImplementationSpecific | ||||||
|         backend: |         backend: | ||||||
|           service: |           service: | ||||||
|             name: auth-proxy |             name: tailscale-proxy | ||||||
|             port: |             port: | ||||||
|               name: http |               name: auth | ||||||
|   - host: flsunq5.printer.cluster.fun |   - host: flsunq5.printer.cluster.fun | ||||||
|     http: |     http: | ||||||
|       paths: |       paths: | ||||||
| @@ -94,9 +99,9 @@ spec: | |||||||
|         pathType: ImplementationSpecific |         pathType: ImplementationSpecific | ||||||
|         backend: |         backend: | ||||||
|           service: |           service: | ||||||
|             name: auth-proxy |             name: tailscale-proxy | ||||||
|             port: |             port: | ||||||
|               name: http |               name: auth | ||||||
|   - host: elegoomars2.printer.cluster.fun |   - host: elegoomars2.printer.cluster.fun | ||||||
|     http: |     http: | ||||||
|       paths: |       paths: | ||||||
| @@ -104,9 +109,9 @@ spec: | |||||||
|         pathType: ImplementationSpecific |         pathType: ImplementationSpecific | ||||||
|         backend: |         backend: | ||||||
|           service: |           service: | ||||||
|             name: auth-proxy |             name: tailscale-proxy | ||||||
|             port: |             port: | ||||||
|               name: http |               name: auth | ||||||
|   - host: radarr.cluster.fun |   - host: radarr.cluster.fun | ||||||
|     http: |     http: | ||||||
|       paths: |       paths: | ||||||
| @@ -114,9 +119,9 @@ spec: | |||||||
|         pathType: ImplementationSpecific |         pathType: ImplementationSpecific | ||||||
|         backend: |         backend: | ||||||
|           service: |           service: | ||||||
|             name: auth-proxy |             name: tailscale-proxy | ||||||
|             port: |             port: | ||||||
|               name: http |               name: auth | ||||||
|   - host: readarr.cluster.fun |   - host: readarr.cluster.fun | ||||||
|     http: |     http: | ||||||
|       paths: |       paths: | ||||||
| @@ -124,9 +129,9 @@ spec: | |||||||
|         pathType: ImplementationSpecific |         pathType: ImplementationSpecific | ||||||
|         backend: |         backend: | ||||||
|           service: |           service: | ||||||
|             name: auth-proxy |             name: tailscale-proxy | ||||||
|             port: |             port: | ||||||
|               name: http |               name: auth | ||||||
|   - host: sonarr.cluster.fun |   - host: sonarr.cluster.fun | ||||||
|     http: |     http: | ||||||
|       paths: |       paths: | ||||||
| @@ -134,9 +139,9 @@ spec: | |||||||
|         pathType: ImplementationSpecific |         pathType: ImplementationSpecific | ||||||
|         backend: |         backend: | ||||||
|           service: |           service: | ||||||
|             name: auth-proxy |             name: tailscale-proxy | ||||||
|             port: |             port: | ||||||
|               name: http |               name: auth | ||||||
|   - host: lidarr.cluster.fun |   - host: lidarr.cluster.fun | ||||||
|     http: |     http: | ||||||
|       paths: |       paths: | ||||||
| @@ -144,9 +149,9 @@ spec: | |||||||
|         pathType: ImplementationSpecific |         pathType: ImplementationSpecific | ||||||
|         backend: |         backend: | ||||||
|           service: |           service: | ||||||
|             name: auth-proxy |             name: tailscale-proxy | ||||||
|             port: |             port: | ||||||
|               name: http |               name: auth | ||||||
|   - host: prowlarr.cluster.fun |   - host: prowlarr.cluster.fun | ||||||
|     http: |     http: | ||||||
|       paths: |       paths: | ||||||
| @@ -154,9 +159,9 @@ spec: | |||||||
|         pathType: ImplementationSpecific |         pathType: ImplementationSpecific | ||||||
|         backend: |         backend: | ||||||
|           service: |           service: | ||||||
|             name: auth-proxy |             name: tailscale-proxy | ||||||
|             port: |             port: | ||||||
|               name: http |               name: auth | ||||||
|   - host: transmission.cluster.fun |   - host: transmission.cluster.fun | ||||||
|     http: |     http: | ||||||
|       paths: |       paths: | ||||||
| @@ -164,9 +169,9 @@ spec: | |||||||
|         pathType: ImplementationSpecific |         pathType: ImplementationSpecific | ||||||
|         backend: |         backend: | ||||||
|           service: |           service: | ||||||
|             name: auth-proxy |             name: tailscale-proxy | ||||||
|             port: |             port: | ||||||
|               name: http |               name: auth | ||||||
|   - host: tekton.cluster.fun |   - host: tekton.cluster.fun | ||||||
|     http: |     http: | ||||||
|       paths: |       paths: | ||||||
| @@ -174,6 +179,56 @@ spec: | |||||||
|         pathType: ImplementationSpecific |         pathType: ImplementationSpecific | ||||||
|         backend: |         backend: | ||||||
|           service: |           service: | ||||||
|             name: auth-proxy |             name: tailscale-proxy | ||||||
|             port: |             port: | ||||||
|               name: http |               name: auth | ||||||
|  |   - host: changedetection.cluster.fun | ||||||
|  |     http: | ||||||
|  |       paths: | ||||||
|  |       - path: / | ||||||
|  |         pathType: ImplementationSpecific | ||||||
|  |         backend: | ||||||
|  |           service: | ||||||
|  |             name: tailscale-proxy | ||||||
|  |             port: | ||||||
|  |               name: auth | ||||||
|  |   - host: grafana.cluster.fun | ||||||
|  |     http: | ||||||
|  |       paths: | ||||||
|  |       - path: / | ||||||
|  |         pathType: ImplementationSpecific | ||||||
|  |         backend: | ||||||
|  |           service: | ||||||
|  |             name: tailscale-proxy | ||||||
|  |             port: | ||||||
|  |               name: auth | ||||||
|  |   - host: podgrab.cluster.fun | ||||||
|  |     http: | ||||||
|  |       paths: | ||||||
|  |       - path: / | ||||||
|  |         pathType: ImplementationSpecific | ||||||
|  |         backend: | ||||||
|  |           service: | ||||||
|  |             name: tailscale-proxy | ||||||
|  |             port: | ||||||
|  |               name: auth | ||||||
|  |   - host: mylarr.cluster.fun | ||||||
|  |     http: | ||||||
|  |       paths: | ||||||
|  |       - path: / | ||||||
|  |         pathType: ImplementationSpecific | ||||||
|  |         backend: | ||||||
|  |           service: | ||||||
|  |             name: tailscale-proxy | ||||||
|  |             port: | ||||||
|  |               name: auth | ||||||
|  |   - host: stablediffusion.cluster.fun | ||||||
|  |     http: | ||||||
|  |       paths: | ||||||
|  |       - path: / | ||||||
|  |         pathType: ImplementationSpecific | ||||||
|  |         backend: | ||||||
|  |           service: | ||||||
|  |             name: tailscale-proxy | ||||||
|  |             port: | ||||||
|  |               name: auth | ||||||
| @@ -1,202 +0,0 @@ | |||||||
| apiVersion: v1 |  | ||||||
| kind: Namespace |  | ||||||
| metadata: |  | ||||||
|   name: auth-proxy |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Secret |  | ||||||
| metadata: |  | ||||||
|   name: auth-proxy |  | ||||||
|   namespace: auth-proxy |  | ||||||
|   annotations: |  | ||||||
|     kube-1password: mr6spkkx7n3memkbute6ojaarm |  | ||||||
|     kube-1password/vault: Kubernetes |  | ||||||
| type: Opaque |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Secret |  | ||||||
| metadata: |  | ||||||
|   name: tailscale-auth |  | ||||||
|   namespace: auth-proxy |  | ||||||
|   annotations: |  | ||||||
|     kube-1password: 2cqycmsgv5r7vcyvjpblcl2l4y |  | ||||||
|     kube-1password/vault: Kubernetes |  | ||||||
| type: Opaque |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Secret |  | ||||||
| metadata: |  | ||||||
|   name: tailscale-auth-proxy |  | ||||||
| type: Opaque |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: ServiceAccount |  | ||||||
| metadata: |  | ||||||
|   name: tailscale-auth-proxy |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: tailscale |  | ||||||
| --- |  | ||||||
| apiVersion: rbac.authorization.k8s.io/v1 |  | ||||||
| kind: RoleBinding |  | ||||||
| metadata: |  | ||||||
|   name: tailscale-auth-proxy |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: tailscale |  | ||||||
| subjects: |  | ||||||
| - kind: ServiceAccount |  | ||||||
|   name: "tailscale-auth-proxy" |  | ||||||
| roleRef: |  | ||||||
|   kind: Role |  | ||||||
|   name: tailscale-auth-proxy |  | ||||||
|   apiGroup: rbac.authorization.k8s.io |  | ||||||
| --- |  | ||||||
| apiVersion: rbac.authorization.k8s.io/v1 |  | ||||||
| kind: Role |  | ||||||
| metadata: |  | ||||||
|   name: tailscale-auth-proxy |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: tailscale |  | ||||||
| rules: |  | ||||||
| - apiGroups: [""] |  | ||||||
|   resources: ["secrets"] |  | ||||||
|   verbs: ["create"] |  | ||||||
| - apiGroups: [""] |  | ||||||
|   resourceNames: ["tailscale-auth-proxy"] |  | ||||||
|   resources: ["secrets"] |  | ||||||
|   verbs: ["get", "update"] |  | ||||||
| --- |  | ||||||
| apiVersion: apps/v1 |  | ||||||
| kind: Deployment |  | ||||||
| metadata: |  | ||||||
|   name: auth-proxy |  | ||||||
|   namespace: auth-proxy |  | ||||||
|   labels: |  | ||||||
|     app: auth-proxy |  | ||||||
|   annotations: |  | ||||||
|     secret.reloader.stakater.com/reload: "tailscale-auth" |  | ||||||
| spec: |  | ||||||
|   replicas: 1 |  | ||||||
|   strategy: |  | ||||||
|     type: Recreate |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app: auth-proxy |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       labels: |  | ||||||
|         app: auth-proxy |  | ||||||
|     spec: |  | ||||||
|       serviceAccountName: tailscale-auth-proxy |  | ||||||
|       dnsPolicy: ClusterFirst |  | ||||||
|       dnsConfig: |  | ||||||
|         nameservers: |  | ||||||
|           - 100.100.100.100 |  | ||||||
|       initContainers: |  | ||||||
|       - name: sysctler |  | ||||||
|         image: busybox |  | ||||||
|         securityContext: |  | ||||||
|           privileged: true |  | ||||||
|         command: ["/bin/sh"] |  | ||||||
|         args: |  | ||||||
|           - -c |  | ||||||
|           - | |  | ||||||
|             sysctl -w net.ipv4.ip_forward=1 |  | ||||||
|             sysctl -w net.ipv6.conf.all.forwarding=1 |  | ||||||
|             sysctl -w net.ipv6.conf.all.disable_ipv6=0 |  | ||||||
|         resources: |  | ||||||
|           requests: |  | ||||||
|             cpu: 1m |  | ||||||
|             memory: 1Mi |  | ||||||
|       containers: |  | ||||||
|       - name: oauth-proxy |  | ||||||
|         image: quay.io/oauth2-proxy/oauth2-proxy:v7.6.0 |  | ||||||
|         args: |  | ||||||
|         - --cookie-secure=false |  | ||||||
|         - --provider=oidc |  | ||||||
|         - --provider-display-name=Auth0 |  | ||||||
|         - --upstream=http://talos.averagemarcus.github.beta.tailscale.net |  | ||||||
|         - --http-address=0.0.0.0:8080 |  | ||||||
|         - --email-domain=* |  | ||||||
|         - --pass-basic-auth=false |  | ||||||
|         - --pass-access-token=false |  | ||||||
|         - --oidc-issuer-url=https://marcusnoble.eu.auth0.com/ |  | ||||||
|         - --cookie-secret=KDGD6rrK6cBmryyZ4wcJ9xAUNW9AQNFT |  | ||||||
|         - --cookie-expire=336h0m0s |  | ||||||
|         env: |  | ||||||
|         - name: HOST_IP |  | ||||||
|           valueFrom: |  | ||||||
|             fieldRef: |  | ||||||
|               apiVersion: v1 |  | ||||||
|               fieldPath: status.podIP |  | ||||||
|         - name: OAUTH2_PROXY_CLIENT_ID |  | ||||||
|           valueFrom: |  | ||||||
|             secretKeyRef: |  | ||||||
|               key: username |  | ||||||
|               name: auth-proxy |  | ||||||
|         - name: OAUTH2_PROXY_CLIENT_SECRET |  | ||||||
|           valueFrom: |  | ||||||
|             secretKeyRef: |  | ||||||
|               key: password |  | ||||||
|               name: auth-proxy |  | ||||||
|         ports: |  | ||||||
|         - containerPort: 8080 |  | ||||||
|           protocol: TCP |  | ||||||
|         resources: |  | ||||||
|           limits: |  | ||||||
|             memory: 50Mi |  | ||||||
|           requests: |  | ||||||
|             memory: 50Mi |  | ||||||
|       - name: tailscale |  | ||||||
|         image: ghcr.io/tailscale/tailscale:v1.61 |  | ||||||
|         imagePullPolicy: Always |  | ||||||
|         env: |  | ||||||
|         - name: TS_AUTH_KEY |  | ||||||
|           valueFrom: |  | ||||||
|             secretKeyRef: |  | ||||||
|               name: tailscale-auth |  | ||||||
|               key: password |  | ||||||
|         - name: TS_KUBE_SECRET |  | ||||||
|           value: tailscale-auth-proxy |  | ||||||
|         - name: TS_ACCEPT_DNS |  | ||||||
|           value: "true" |  | ||||||
|         - name: TS_EXTRA_ARGS |  | ||||||
|           value: "--hostname=auth-proxy-oauth2" |  | ||||||
|         securityContext: |  | ||||||
|           capabilities: |  | ||||||
|             add: |  | ||||||
|             - NET_ADMIN |  | ||||||
|         command: |  | ||||||
|         - sh |  | ||||||
|         - -c |  | ||||||
|         - | |  | ||||||
|           export PATH=$PATH:/tailscale/bin |  | ||||||
|           if [[ ! -d /dev/net ]]; then mkdir -p /dev/net; fi |  | ||||||
|           if [[ ! -c /dev/net/tun ]]; then mknod /dev/net/tun c 10 200; fi |  | ||||||
|           echo "Starting tailscaled" |  | ||||||
|           tailscaled --state=kube:${TS_KUBE_SECRET} --socket=/tmp/tailscaled.sock & |  | ||||||
|           PID=$! |  | ||||||
|           echo "Running tailscale up" |  | ||||||
|           tailscale --socket=/tmp/tailscaled.sock up \ |  | ||||||
|             --accept-dns=${TS_ACCEPT_DNS} \ |  | ||||||
|             --authkey=${TS_AUTH_KEY} \ |  | ||||||
|             ${TS_EXTRA_ARGS} |  | ||||||
|           echo "Re-enabling incoming traffic from the cluster" |  | ||||||
|           wait ${PID} |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: auth-proxy |  | ||||||
|   namespace: auth-proxy |  | ||||||
|   labels: |  | ||||||
|     app: auth-proxy |  | ||||||
| spec: |  | ||||||
|   ports: |  | ||||||
|   - name: http |  | ||||||
|     port: 80 |  | ||||||
|     protocol: TCP |  | ||||||
|     targetPort: 8080 |  | ||||||
|   selector: |  | ||||||
|     app: auth-proxy |  | ||||||
|   type: ClusterIP |  | ||||||
| @@ -1,230 +0,0 @@ | |||||||
| apiVersion: v1 |  | ||||||
| kind: ConfigMap |  | ||||||
| metadata: |  | ||||||
|   name: host-mappings |  | ||||||
|   namespace: auth-proxy |  | ||||||
|   labels: |  | ||||||
|     app: proxy |  | ||||||
| data: |  | ||||||
|   mapping.json: | |  | ||||||
|     { |  | ||||||
|       "tekton-el.auth-proxy.svc": "tekton-el.cluster.local", |  | ||||||
|       "vmcluster.auth-proxy.svc": "vmcluster.cluster.local", |  | ||||||
|       "loki.auth-proxy.svc": "loki-write.cluster.local", |  | ||||||
|       "loki.auth-proxy.svc:80": "loki-write.cluster.local", |  | ||||||
|       "loki-distributed.auth-proxy.svc": "loki-loki.cluster.local", |  | ||||||
|       "loki-distributed.auth-proxy.svc:80": "loki-loki.cluster.local" |  | ||||||
|     } |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Secret |  | ||||||
| metadata: |  | ||||||
|   name: tailscale-internal-proxy |  | ||||||
|   namespace: auth-proxy |  | ||||||
| type: Opaque |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: ServiceAccount |  | ||||||
| metadata: |  | ||||||
|   name: tailscale-internal-proxy |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: tailscale |  | ||||||
| --- |  | ||||||
| apiVersion: rbac.authorization.k8s.io/v1 |  | ||||||
| kind: RoleBinding |  | ||||||
| metadata: |  | ||||||
|   name: tailscale-internal-proxy |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: tailscale |  | ||||||
| subjects: |  | ||||||
| - kind: ServiceAccount |  | ||||||
|   name: "tailscale-internal-proxy" |  | ||||||
| roleRef: |  | ||||||
|   kind: Role |  | ||||||
|   name: tailscale-internal-proxy |  | ||||||
|   apiGroup: rbac.authorization.k8s.io |  | ||||||
| --- |  | ||||||
| apiVersion: rbac.authorization.k8s.io/v1 |  | ||||||
| kind: Role |  | ||||||
| metadata: |  | ||||||
|   name: tailscale-internal-proxy |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: tailscale |  | ||||||
| rules: |  | ||||||
| - apiGroups: [""] |  | ||||||
|   resources: ["secrets"] |  | ||||||
|   verbs: ["create"] |  | ||||||
| - apiGroups: [""] |  | ||||||
|   resourceNames: ["tailscale-internal-proxy"] |  | ||||||
|   resources: ["secrets"] |  | ||||||
|   verbs: ["get", "update"] |  | ||||||
| --- |  | ||||||
| apiVersion: apps/v1 |  | ||||||
| kind: Deployment |  | ||||||
| metadata: |  | ||||||
|   name: internal-proxy |  | ||||||
|   namespace: auth-proxy |  | ||||||
|   labels: |  | ||||||
|     app: internal-proxy |  | ||||||
|   annotations: |  | ||||||
|     configmap.reloader.stakater.com/reload: "host-mappings" |  | ||||||
|     secret.reloader.stakater.com/reload: "tailscale-auth" |  | ||||||
| spec: |  | ||||||
|   replicas: 1 |  | ||||||
|   strategy: |  | ||||||
|     type: Recreate |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app: internal-proxy |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       labels: |  | ||||||
|         app: internal-proxy |  | ||||||
|     spec: |  | ||||||
|       serviceAccountName: tailscale-internal-proxy |  | ||||||
|       dnsPolicy: ClusterFirst |  | ||||||
|       dnsConfig: |  | ||||||
|         nameservers: |  | ||||||
|           - 100.100.100.100 |  | ||||||
|       containers: |  | ||||||
|       - name: proxy |  | ||||||
|         image: rg.fr-par.scw.cloud/averagemarcus/proxy:latest |  | ||||||
|         imagePullPolicy: Always |  | ||||||
|         env: |  | ||||||
|         - name: PROXY_DESTINATION |  | ||||||
|           value: talos.averagemarcus.github.beta.tailscale.net |  | ||||||
|         - name: PORT |  | ||||||
|           value: "8080" |  | ||||||
|         ports: |  | ||||||
|         - containerPort: 8080 |  | ||||||
|           protocol: TCP |  | ||||||
|         volumeMounts: |  | ||||||
|         - name: host-mappings |  | ||||||
|           mountPath: /config/ |  | ||||||
|       - name: tailscale |  | ||||||
|         image: ghcr.io/tailscale/tailscale:v1.61 |  | ||||||
|         imagePullPolicy: Always |  | ||||||
|         tty: true |  | ||||||
|         env: |  | ||||||
|         - name: TS_AUTH_KEY |  | ||||||
|           valueFrom: |  | ||||||
|             secretKeyRef: |  | ||||||
|               name: tailscale-auth |  | ||||||
|               key: password |  | ||||||
|         - name: TS_KUBE_SECRET |  | ||||||
|           value: tailscale-internal-proxy |  | ||||||
|         - name: TS_ACCEPT_DNS |  | ||||||
|           value: "true" |  | ||||||
|         - name: TS_EXTRA_ARGS |  | ||||||
|           value: "--hostname=auth-proxy-internal-proxy" |  | ||||||
|         securityContext: |  | ||||||
|           capabilities: |  | ||||||
|             add: |  | ||||||
|             - NET_ADMIN |  | ||||||
|         command: |  | ||||||
|         - sh |  | ||||||
|         - -c |  | ||||||
|         - | |  | ||||||
|           export PATH=$PATH:/tailscale/bin |  | ||||||
|           if [[ ! -d /dev/net ]]; then mkdir -p /dev/net; fi |  | ||||||
|           if [[ ! -c /dev/net/tun ]]; then mknod /dev/net/tun c 10 200; fi |  | ||||||
|           echo "Starting tailscaled" |  | ||||||
|           tailscaled --state=kube:${TS_KUBE_SECRET} --socket=/tmp/tailscaled.sock & |  | ||||||
|           PID=$! |  | ||||||
|           echo "Running tailscale up" |  | ||||||
|           tailscale --socket=/tmp/tailscaled.sock up \ |  | ||||||
|             --accept-dns=${TS_ACCEPT_DNS} \ |  | ||||||
|             --authkey=${TS_AUTH_KEY} \ |  | ||||||
|             ${TS_EXTRA_ARGS} |  | ||||||
|           echo "Re-enabling incoming traffic from the cluster" |  | ||||||
|           wait ${PID} |  | ||||||
|       volumes: |  | ||||||
|       - name: host-mappings |  | ||||||
|         configMap: |  | ||||||
|           name: host-mappings |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: tekton-el |  | ||||||
|   namespace: auth-proxy |  | ||||||
|   labels: |  | ||||||
|     app: internal-proxy |  | ||||||
| spec: |  | ||||||
|   ports: |  | ||||||
|   - name: http |  | ||||||
|     port: 80 |  | ||||||
|     protocol: TCP |  | ||||||
|     targetPort: 8080 |  | ||||||
|   selector: |  | ||||||
|     app: internal-proxy |  | ||||||
|   type: ClusterIP |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: loki |  | ||||||
|   namespace: auth-proxy |  | ||||||
|   labels: |  | ||||||
|     app: internal-proxy |  | ||||||
| spec: |  | ||||||
|   ports: |  | ||||||
|   - name: http |  | ||||||
|     port: 80 |  | ||||||
|     protocol: TCP |  | ||||||
|     targetPort: 8080 |  | ||||||
|   selector: |  | ||||||
|     app: internal-proxy |  | ||||||
|   type: ClusterIP |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: loki-distributed |  | ||||||
|   namespace: auth-proxy |  | ||||||
|   labels: |  | ||||||
|     app: internal-proxy |  | ||||||
| spec: |  | ||||||
|   ports: |  | ||||||
|   - name: http |  | ||||||
|     port: 80 |  | ||||||
|     protocol: TCP |  | ||||||
|     targetPort: 8080 |  | ||||||
|   selector: |  | ||||||
|     app: internal-proxy |  | ||||||
|   type: ClusterIP |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: prometheus |  | ||||||
|   namespace: auth-proxy |  | ||||||
|   labels: |  | ||||||
|     app: internal-proxy |  | ||||||
| spec: |  | ||||||
|   ports: |  | ||||||
|   - name: http |  | ||||||
|     port: 80 |  | ||||||
|     protocol: TCP |  | ||||||
|     targetPort: 8080 |  | ||||||
|   selector: |  | ||||||
|     app: internal-proxy |  | ||||||
|   type: ClusterIP |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: vmcluster |  | ||||||
|   namespace: auth-proxy |  | ||||||
|   labels: |  | ||||||
|     app: internal-proxy |  | ||||||
| spec: |  | ||||||
|   ports: |  | ||||||
|   - name: http |  | ||||||
|     port: 80 |  | ||||||
|     protocol: TCP |  | ||||||
|     targetPort: 8080 |  | ||||||
|   selector: |  | ||||||
|     app: internal-proxy |  | ||||||
|   type: ClusterIP |  | ||||||
| --- |  | ||||||
							
								
								
									
										85
									
								
								manifests/auth-proxy/internal-services.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										85
									
								
								manifests/auth-proxy/internal-services.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,85 @@ | |||||||
|  | apiVersion: v1 | ||||||
|  | kind: Service | ||||||
|  | metadata: | ||||||
|  |   name: tekton-el | ||||||
|  |   namespace: auth-proxy | ||||||
|  |   labels: | ||||||
|  |     app: internal-proxy | ||||||
|  | spec: | ||||||
|  |   ports: | ||||||
|  |   - name: http | ||||||
|  |     port: 80 | ||||||
|  |     protocol: TCP | ||||||
|  |     targetPort: 8080 | ||||||
|  |   selector: | ||||||
|  |     app: internal-proxy | ||||||
|  |   type: ClusterIP | ||||||
|  | --- | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: Service | ||||||
|  | metadata: | ||||||
|  |   name: loki | ||||||
|  |   namespace: auth-proxy | ||||||
|  |   labels: | ||||||
|  |     app: internal-proxy | ||||||
|  | spec: | ||||||
|  |   ports: | ||||||
|  |   - name: http | ||||||
|  |     port: 80 | ||||||
|  |     protocol: TCP | ||||||
|  |     targetPort: 8080 | ||||||
|  |   selector: | ||||||
|  |     app: internal-proxy | ||||||
|  |   type: ClusterIP | ||||||
|  | --- | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: Service | ||||||
|  | metadata: | ||||||
|  |   name: loki-distributed | ||||||
|  |   namespace: auth-proxy | ||||||
|  |   labels: | ||||||
|  |     app: internal-proxy | ||||||
|  | spec: | ||||||
|  |   ports: | ||||||
|  |   - name: http | ||||||
|  |     port: 80 | ||||||
|  |     protocol: TCP | ||||||
|  |     targetPort: 8080 | ||||||
|  |   selector: | ||||||
|  |     app: internal-proxy | ||||||
|  |   type: ClusterIP | ||||||
|  | --- | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: Service | ||||||
|  | metadata: | ||||||
|  |   name: prometheus | ||||||
|  |   namespace: auth-proxy | ||||||
|  |   labels: | ||||||
|  |     app: internal-proxy | ||||||
|  | spec: | ||||||
|  |   ports: | ||||||
|  |   - name: http | ||||||
|  |     port: 80 | ||||||
|  |     protocol: TCP | ||||||
|  |     targetPort: 8080 | ||||||
|  |   selector: | ||||||
|  |     app: internal-proxy | ||||||
|  |   type: ClusterIP | ||||||
|  | --- | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: Service | ||||||
|  | metadata: | ||||||
|  |   name: vmcluster | ||||||
|  |   namespace: auth-proxy | ||||||
|  |   labels: | ||||||
|  |     app: internal-proxy | ||||||
|  | spec: | ||||||
|  |   ports: | ||||||
|  |   - name: http | ||||||
|  |     port: 80 | ||||||
|  |     protocol: TCP | ||||||
|  |     targetPort: 8080 | ||||||
|  |   selector: | ||||||
|  |     app: internal-proxy | ||||||
|  |   type: ClusterIP | ||||||
|  | --- | ||||||
							
								
								
									
										5
									
								
								manifests/auth-proxy/namespace.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								manifests/auth-proxy/namespace.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | |||||||
|  | apiVersion: v1 | ||||||
|  | kind: Namespace | ||||||
|  | metadata: | ||||||
|  |   name: auth-proxy | ||||||
|  | --- | ||||||
							
								
								
									
										62
									
								
								manifests/auth-proxy/non-auth-ingress.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								manifests/auth-proxy/non-auth-ingress.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,62 @@ | |||||||
|  | apiVersion: networking.k8s.io/v1 | ||||||
|  | kind: Ingress | ||||||
|  | metadata: | ||||||
|  |   name: non-auth-proxy | ||||||
|  |   namespace: auth-proxy | ||||||
|  |   annotations: | ||||||
|  |     cert-manager.io/cluster-issuer: letsencrypt | ||||||
|  |     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" | ||||||
|  |     nginx.ingress.kubernetes.io/proxy-read-timeout: "3600" | ||||||
|  |     nginx.ingress.kubernetes.io/proxy-send-timeout: "3600" | ||||||
|  |     nginx.ingress.kubernetes.io/proxy-body-size: 25m | ||||||
|  |     nginx.ingress.kubernetes.io/client-body-buffer-size: 25m | ||||||
|  | spec: | ||||||
|  |   ingressClassName: nginx | ||||||
|  |   tls: | ||||||
|  |   - hosts: | ||||||
|  |     - hello-world.cluster.fun | ||||||
|  |     - ombi.cluster.fun | ||||||
|  |     - bsky-feeds.cluster.fun | ||||||
|  |     - ai.cluster.fun | ||||||
|  |     secretName: non-auth-proxy-ingress | ||||||
|  |   rules: | ||||||
|  |   - host: hello-world.cluster.fun | ||||||
|  |     http: | ||||||
|  |       paths: | ||||||
|  |       - path: / | ||||||
|  |         pathType: ImplementationSpecific | ||||||
|  |         backend: | ||||||
|  |           service: | ||||||
|  |             name: tailscale-proxy | ||||||
|  |             port: | ||||||
|  |               name: non-auth | ||||||
|  |   - host: ombi.cluster.fun | ||||||
|  |     http: | ||||||
|  |       paths: | ||||||
|  |       - path: / | ||||||
|  |         pathType: ImplementationSpecific | ||||||
|  |         backend: | ||||||
|  |           service: | ||||||
|  |             name: tailscale-proxy | ||||||
|  |             port: | ||||||
|  |               name: non-auth | ||||||
|  |   - host: bsky-feeds.cluster.fun | ||||||
|  |     http: | ||||||
|  |       paths: | ||||||
|  |       - path: / | ||||||
|  |         pathType: ImplementationSpecific | ||||||
|  |         backend: | ||||||
|  |           service: | ||||||
|  |             name: tailscale-proxy | ||||||
|  |             port: | ||||||
|  |               name: non-auth | ||||||
|  |   - host: ai.cluster.fun | ||||||
|  |     http: | ||||||
|  |       paths: | ||||||
|  |       - path: / | ||||||
|  |         pathType: ImplementationSpecific | ||||||
|  |         backend: | ||||||
|  |           service: | ||||||
|  |             name: tailscale-proxy | ||||||
|  |             port: | ||||||
|  |               name: non-auth | ||||||
| @@ -1,213 +0,0 @@ | |||||||
|  |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Secret |  | ||||||
| metadata: |  | ||||||
|   name: tailscale-non-auth-proxy |  | ||||||
|   namespace: auth-proxy |  | ||||||
| type: Opaque |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: ServiceAccount |  | ||||||
| metadata: |  | ||||||
|   name: tailscale-non-auth-proxy |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: tailscale |  | ||||||
| --- |  | ||||||
| apiVersion: rbac.authorization.k8s.io/v1 |  | ||||||
| kind: RoleBinding |  | ||||||
| metadata: |  | ||||||
|   name: tailscale-non-auth-proxy |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: tailscale |  | ||||||
| subjects: |  | ||||||
| - kind: ServiceAccount |  | ||||||
|   name: "tailscale-non-auth-proxy" |  | ||||||
| roleRef: |  | ||||||
|   kind: Role |  | ||||||
|   name: tailscale-non-auth-proxy |  | ||||||
|   apiGroup: rbac.authorization.k8s.io |  | ||||||
| --- |  | ||||||
| apiVersion: rbac.authorization.k8s.io/v1 |  | ||||||
| kind: Role |  | ||||||
| metadata: |  | ||||||
|   name: tailscale-non-auth-proxy |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: tailscale |  | ||||||
| rules: |  | ||||||
| - apiGroups: [""] |  | ||||||
|   resources: ["secrets"] |  | ||||||
|   verbs: ["create"] |  | ||||||
| - apiGroups: [""] |  | ||||||
|   resourceNames: ["tailscale-non-auth-proxy"] |  | ||||||
|   resources: ["secrets"] |  | ||||||
|   verbs: ["get", "update"] |  | ||||||
| --- |  | ||||||
| apiVersion: apps/v1 |  | ||||||
| kind: Deployment |  | ||||||
| metadata: |  | ||||||
|   name: non-auth-proxy |  | ||||||
|   namespace: auth-proxy |  | ||||||
|   labels: |  | ||||||
|     app: non-auth-proxy |  | ||||||
|   annotations: |  | ||||||
|     secret.reloader.stakater.com/reload: "tailscale-auth" |  | ||||||
| spec: |  | ||||||
|   replicas: 1 |  | ||||||
|   strategy: |  | ||||||
|     type: Recreate |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app: non-auth-proxy |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       labels: |  | ||||||
|         app: non-auth-proxy |  | ||||||
|     spec: |  | ||||||
|       serviceAccountName: tailscale-non-auth-proxy |  | ||||||
|       dnsPolicy: ClusterFirst |  | ||||||
|       dnsConfig: |  | ||||||
|         nameservers: |  | ||||||
|           - 100.100.100.100 |  | ||||||
|       containers: |  | ||||||
|       - name: oauth-proxy |  | ||||||
|         image: quay.io/oauth2-proxy/oauth2-proxy:v7.6.0 |  | ||||||
|         args: |  | ||||||
|         - --cookie-secure=false |  | ||||||
|         - --provider=oidc |  | ||||||
|         - --provider-display-name=Auth0 |  | ||||||
|         - --upstream=http://talos.averagemarcus.github.beta.tailscale.net |  | ||||||
|         - --http-address=0.0.0.0:8080 |  | ||||||
|         - --email-domain=* |  | ||||||
|         - --pass-basic-auth=false |  | ||||||
|         - --pass-access-token=false |  | ||||||
|         - --oidc-issuer-url=https://marcusnoble.eu.auth0.com/ |  | ||||||
|         - --cookie-secret=KDGD6rrK6cBmryyZ4wcJ9xAUNW9AQNFT |  | ||||||
|         - --cookie-expire=336h0m0s |  | ||||||
|         - --trusted-ip=0.0.0.0/0 |  | ||||||
|         env: |  | ||||||
|         - name: HOST_IP |  | ||||||
|           valueFrom: |  | ||||||
|             fieldRef: |  | ||||||
|               apiVersion: v1 |  | ||||||
|               fieldPath: status.podIP |  | ||||||
|         - name: OAUTH2_PROXY_CLIENT_ID |  | ||||||
|           valueFrom: |  | ||||||
|             secretKeyRef: |  | ||||||
|               key: username |  | ||||||
|               name: auth-proxy |  | ||||||
|         - name: OAUTH2_PROXY_CLIENT_SECRET |  | ||||||
|           valueFrom: |  | ||||||
|             secretKeyRef: |  | ||||||
|               key: password |  | ||||||
|               name: auth-proxy |  | ||||||
|         ports: |  | ||||||
|         - containerPort: 8080 |  | ||||||
|           protocol: TCP |  | ||||||
|         resources: |  | ||||||
|           limits: |  | ||||||
|             memory: 50Mi |  | ||||||
|           requests: |  | ||||||
|             memory: 50Mi |  | ||||||
|       - name: tailscale |  | ||||||
|         image: ghcr.io/tailscale/tailscale:v1.61 |  | ||||||
|         imagePullPolicy: Always |  | ||||||
|         tty: true |  | ||||||
|         env: |  | ||||||
|         - name: TS_AUTH_KEY |  | ||||||
|           valueFrom: |  | ||||||
|             secretKeyRef: |  | ||||||
|               name: tailscale-auth |  | ||||||
|               key: password |  | ||||||
|         - name: TS_KUBE_SECRET |  | ||||||
|           value: tailscale-non-auth-proxy |  | ||||||
|         - name: TS_ACCEPT_DNS |  | ||||||
|           value: "true" |  | ||||||
|         - name: TS_EXTRA_ARGS |  | ||||||
|           value: "--hostname=non-auth-proxy" |  | ||||||
|         securityContext: |  | ||||||
|           capabilities: |  | ||||||
|             add: |  | ||||||
|             - NET_ADMIN |  | ||||||
|         command: |  | ||||||
|         - sh |  | ||||||
|         - -c |  | ||||||
|         - | |  | ||||||
|           export PATH=$PATH:/tailscale/bin |  | ||||||
|           if [[ ! -d /dev/net ]]; then mkdir -p /dev/net; fi |  | ||||||
|           if [[ ! -c /dev/net/tun ]]; then mknod /dev/net/tun c 10 200; fi |  | ||||||
|           echo "Starting tailscaled" |  | ||||||
|           tailscaled --state=kube:${TS_KUBE_SECRET} --socket=/tmp/tailscaled.sock & |  | ||||||
|           PID=$! |  | ||||||
|           echo "Running tailscale up" |  | ||||||
|           tailscale --socket=/tmp/tailscaled.sock up \ |  | ||||||
|             --accept-dns=${TS_ACCEPT_DNS} \ |  | ||||||
|             --authkey=${TS_AUTH_KEY} \ |  | ||||||
|             ${TS_EXTRA_ARGS} |  | ||||||
|           echo "Re-enabling incoming traffic from the cluster" |  | ||||||
|           wait ${PID} |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: non-auth-proxy |  | ||||||
|   namespace: auth-proxy |  | ||||||
|   labels: |  | ||||||
|     app: non-auth-proxy |  | ||||||
| spec: |  | ||||||
|   ports: |  | ||||||
|   - name: http |  | ||||||
|     port: 80 |  | ||||||
|     protocol: TCP |  | ||||||
|     targetPort: 8080 |  | ||||||
|   selector: |  | ||||||
|     app: non-auth-proxy |  | ||||||
|   type: ClusterIP |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| apiVersion: networking.k8s.io/v1 |  | ||||||
| kind: Ingress |  | ||||||
| metadata: |  | ||||||
|   name: non-auth-proxy |  | ||||||
|   namespace: auth-proxy |  | ||||||
|   annotations: |  | ||||||
|     cert-manager.io/cluster-issuer: letsencrypt |  | ||||||
|     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" |  | ||||||
| spec: |  | ||||||
|   ingressClassName: nginx |  | ||||||
|   tls: |  | ||||||
|   - hosts: |  | ||||||
|     # - home.cluster.fun |  | ||||||
|     - tasks.cluster.fun |  | ||||||
|     - api.tasks.cluster.fun |  | ||||||
|     secretName: non-auth-proxy-ingress |  | ||||||
|   rules: |  | ||||||
|   # - host: home.cluster.fun |  | ||||||
|   #   http: |  | ||||||
|   #     paths: |  | ||||||
|   #     - path: / |  | ||||||
|   #       pathType: ImplementationSpecific |  | ||||||
|   #       backend: |  | ||||||
|   #         service: |  | ||||||
|   #           name: non-auth-proxy |  | ||||||
|   #           port: |  | ||||||
|   #             name: http |  | ||||||
|   - host: tasks.cluster.fun |  | ||||||
|     http: |  | ||||||
|       paths: |  | ||||||
|       - path: / |  | ||||||
|         pathType: ImplementationSpecific |  | ||||||
|         backend: |  | ||||||
|           service: |  | ||||||
|             name: non-auth-proxy |  | ||||||
|             port: |  | ||||||
|               name: http |  | ||||||
|   - host: api.tasks.cluster.fun |  | ||||||
|     http: |  | ||||||
|       paths: |  | ||||||
|       - path: / |  | ||||||
|         pathType: ImplementationSpecific |  | ||||||
|         backend: |  | ||||||
|           service: |  | ||||||
|             name: non-auth-proxy |  | ||||||
|             port: |  | ||||||
|               name: http |  | ||||||
							
								
								
									
										133
									
								
								manifests/auth-proxy/proxy.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										133
									
								
								manifests/auth-proxy/proxy.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,133 @@ | |||||||
|  | apiVersion: v1 | ||||||
|  | kind: ConfigMap | ||||||
|  | metadata: | ||||||
|  |   name: host-mappings | ||||||
|  |   namespace: auth-proxy | ||||||
|  |   labels: | ||||||
|  |     app: proxy | ||||||
|  | data: | ||||||
|  |   mapping.json: | | ||||||
|  |     { | ||||||
|  |       "tekton-el.auth-proxy.svc": "tekton-el.cluster.local", | ||||||
|  |       "vmcluster.auth-proxy.svc": "vmcluster.cluster.local", | ||||||
|  |       "loki.auth-proxy.svc": "loki-write.cluster.local", | ||||||
|  |       "loki.auth-proxy.svc:80": "loki-write.cluster.local", | ||||||
|  |       "loki-distributed.auth-proxy.svc": "loki-loki.cluster.local", | ||||||
|  |       "loki-distributed.auth-proxy.svc:80": "loki-loki.cluster.local" | ||||||
|  |     } | ||||||
|  | --- | ||||||
|  | apiVersion: apps/v1 | ||||||
|  | kind: Deployment | ||||||
|  | metadata: | ||||||
|  |   name: internal-proxy | ||||||
|  |   namespace: auth-proxy | ||||||
|  |   labels: | ||||||
|  |     app: internal-proxy | ||||||
|  |   annotations: | ||||||
|  |     configmap.reloader.stakater.com/reload: "host-mappings" | ||||||
|  |     secret.reloader.stakater.com/reload: "tailscale-auth" | ||||||
|  | spec: | ||||||
|  |   replicas: 1 | ||||||
|  |   strategy: | ||||||
|  |     type: Recreate | ||||||
|  |   selector: | ||||||
|  |     matchLabels: | ||||||
|  |       app: internal-proxy | ||||||
|  |   template: | ||||||
|  |     metadata: | ||||||
|  |       labels: | ||||||
|  |         app: internal-proxy | ||||||
|  |     spec: | ||||||
|  |       priorityClassName: critical | ||||||
|  |       serviceAccountName: default | ||||||
|  |       dnsPolicy: ClusterFirst | ||||||
|  |       dnsConfig: | ||||||
|  |         nameservers: | ||||||
|  |           - 100.100.100.100 | ||||||
|  |       containers: | ||||||
|  |       - name: proxy | ||||||
|  |         image: rg.fr-par.scw.cloud/averagemarcus/proxy:latest | ||||||
|  |         imagePullPolicy: Always | ||||||
|  |         env: | ||||||
|  |         - name: PROXY_DESTINATION | ||||||
|  |           value: talos.tail4dfb.ts.net | ||||||
|  |         - name: PORT | ||||||
|  |           value: "8080" | ||||||
|  |         - name: TS_AUTH_KEY | ||||||
|  |           valueFrom: | ||||||
|  |             secretKeyRef: | ||||||
|  |               name: tailscale-auth | ||||||
|  |               key: password | ||||||
|  |         - name: TS_HOSTNAME | ||||||
|  |           value: auth-proxy-internal-proxy | ||||||
|  |         ports: | ||||||
|  |         - containerPort: 8080 | ||||||
|  |           protocol: TCP | ||||||
|  |         volumeMounts: | ||||||
|  |         - name: host-mappings | ||||||
|  |           mountPath: /config/ | ||||||
|  |  | ||||||
|  |       - name: oauth-proxy | ||||||
|  |         image: quay.io/oauth2-proxy/oauth2-proxy:v7.12.0 | ||||||
|  |         args: | ||||||
|  |         - --cookie-secure=false | ||||||
|  |         - --provider=oidc | ||||||
|  |         - --provider-display-name=Auth0 | ||||||
|  |         - --upstream=http://localhost:8080 | ||||||
|  |         - --http-address=0.0.0.0:8181 | ||||||
|  |         - --email-domain=* | ||||||
|  |         - --pass-basic-auth=false | ||||||
|  |         - --pass-access-token=false | ||||||
|  |         - --oidc-issuer-url=https://marcusnoble.eu.auth0.com/ | ||||||
|  |         - --cookie-secret=KDGD6rrK6cBmryyZ4wcJ9xAUNW9AQNFT | ||||||
|  |         - --cookie-expire=336h0m0s | ||||||
|  |         env: | ||||||
|  |         - name: HOST_IP | ||||||
|  |           valueFrom: | ||||||
|  |             fieldRef: | ||||||
|  |               apiVersion: v1 | ||||||
|  |               fieldPath: status.podIP | ||||||
|  |         - name: OAUTH2_PROXY_CLIENT_ID | ||||||
|  |           valueFrom: | ||||||
|  |             secretKeyRef: | ||||||
|  |               key: username | ||||||
|  |               name: auth-proxy | ||||||
|  |         - name: OAUTH2_PROXY_CLIENT_SECRET | ||||||
|  |           valueFrom: | ||||||
|  |             secretKeyRef: | ||||||
|  |               key: password | ||||||
|  |               name: auth-proxy | ||||||
|  |         ports: | ||||||
|  |         - containerPort: 8181 | ||||||
|  |           protocol: TCP | ||||||
|  |         resources: | ||||||
|  |           limits: | ||||||
|  |             memory: 80Mi | ||||||
|  |           requests: | ||||||
|  |             memory: 80Mi | ||||||
|  |       volumes: | ||||||
|  |       - name: host-mappings | ||||||
|  |         configMap: | ||||||
|  |           name: host-mappings | ||||||
|  | --- | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: Service | ||||||
|  | metadata: | ||||||
|  |   name: tailscale-proxy | ||||||
|  |   namespace: auth-proxy | ||||||
|  |   labels: | ||||||
|  |     app: internal-proxy | ||||||
|  | spec: | ||||||
|  |   ports: | ||||||
|  |   - name: non-auth | ||||||
|  |     port: 80 | ||||||
|  |     protocol: TCP | ||||||
|  |     targetPort: 8080 | ||||||
|  |   - name: auth | ||||||
|  |     port: 81 | ||||||
|  |     protocol: TCP | ||||||
|  |     targetPort: 8181 | ||||||
|  |   selector: | ||||||
|  |     app: internal-proxy | ||||||
|  |   type: ClusterIP | ||||||
|  | --- | ||||||
							
								
								
									
										20
									
								
								manifests/auth-proxy/secrets.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								manifests/auth-proxy/secrets.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | apiVersion: v1 | ||||||
|  | kind: Secret | ||||||
|  | metadata: | ||||||
|  |   name: auth-proxy | ||||||
|  |   namespace: auth-proxy | ||||||
|  |   annotations: | ||||||
|  |     kube-1password: mr6spkkx7n3memkbute6ojaarm | ||||||
|  |     kube-1password/vault: Kubernetes | ||||||
|  | type: Opaque | ||||||
|  | --- | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: Secret | ||||||
|  | metadata: | ||||||
|  |   name: tailscale-auth | ||||||
|  |   namespace: auth-proxy | ||||||
|  |   annotations: | ||||||
|  |     kube-1password: 2cqycmsgv5r7vcyvjpblcl2l4y | ||||||
|  |     kube-1password/vault: Kubernetes | ||||||
|  | type: Opaque | ||||||
|  | --- | ||||||
| @@ -29,6 +29,7 @@ spec: | |||||||
|     spec: |     spec: | ||||||
|       imagePullSecrets: |       imagePullSecrets: | ||||||
|         - name: docker-config |         - name: docker-config | ||||||
|  |       priorityClassName: low | ||||||
|       containers: |       containers: | ||||||
|       - name: web |       - name: web | ||||||
|         image: rg.fr-par.scw.cloud/averagemarcus/base64:latest |         image: rg.fr-par.scw.cloud/averagemarcus/base64:latest | ||||||
| @@ -49,11 +50,10 @@ metadata: | |||||||
|   namespace: base64 |   namespace: base64 | ||||||
|   annotations: |   annotations: | ||||||
|     cert-manager.io/cluster-issuer: letsencrypt |     cert-manager.io/cluster-issuer: letsencrypt | ||||||
|     kubernetes.io/ingress.class: traefik |  | ||||||
|     traefik.ingress.kubernetes.io/router.tls: "true" |  | ||||||
|     ingress.kubernetes.io/ssl-redirect: "true" |     ingress.kubernetes.io/ssl-redirect: "true" | ||||||
|     traefik.ingress.kubernetes.io/router.entrypoints: websecure |     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" | ||||||
| spec: | spec: | ||||||
|  |   ingressClassName: nginx | ||||||
|   tls: |   tls: | ||||||
|   - hosts: |   - hosts: | ||||||
|     - base64.cluster.fun |     - base64.cluster.fun | ||||||
|   | |||||||
							
								
								
									
										69
									
								
								manifests/bsky-screenshot/bsky-screenshot.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								manifests/bsky-screenshot/bsky-screenshot.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,69 @@ | |||||||
|  | apiVersion: v1 | ||||||
|  | kind: Service | ||||||
|  | metadata: | ||||||
|  |   name: bsky-screenshot | ||||||
|  |   namespace: bsky-screenshot | ||||||
|  | spec: | ||||||
|  |   type: ClusterIP | ||||||
|  |   ports: | ||||||
|  |   - port: 80 | ||||||
|  |     targetPort: web | ||||||
|  |     name: web | ||||||
|  |   selector: | ||||||
|  |     app: bsky-screenshot | ||||||
|  | --- | ||||||
|  | apiVersion: apps/v1 | ||||||
|  | kind: Deployment | ||||||
|  | metadata: | ||||||
|  |   name: bsky-screenshot | ||||||
|  |   namespace: bsky-screenshot | ||||||
|  | spec: | ||||||
|  |   replicas: 1 | ||||||
|  |   selector: | ||||||
|  |     matchLabels: | ||||||
|  |       app: bsky-screenshot | ||||||
|  |   template: | ||||||
|  |     metadata: | ||||||
|  |       labels: | ||||||
|  |         app: bsky-screenshot | ||||||
|  |     spec: | ||||||
|  |       containers: | ||||||
|  |       - name: web | ||||||
|  |         image: rg.fr-par.scw.cloud/averagemarcus/bsky-screenshot:latest | ||||||
|  |         imagePullPolicy: Always | ||||||
|  |         ports: | ||||||
|  |         - containerPort: 80 | ||||||
|  |           name: web | ||||||
|  |         resources: | ||||||
|  |           limits: | ||||||
|  |             memory: 105Mi | ||||||
|  |           requests: | ||||||
|  |             memory: 105Mi | ||||||
|  | --- | ||||||
|  | apiVersion: networking.k8s.io/v1 | ||||||
|  | kind: Ingress | ||||||
|  | metadata: | ||||||
|  |   name: bsky-screenshot | ||||||
|  |   namespace: bsky-screenshot | ||||||
|  |   annotations: | ||||||
|  |     cert-manager.io/cluster-issuer: letsencrypt | ||||||
|  |     ingress.kubernetes.io/ssl-redirect: "true" | ||||||
|  |     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" | ||||||
|  | spec: | ||||||
|  |   ingressClassName: nginx | ||||||
|  |   tls: | ||||||
|  |   - hosts: | ||||||
|  |     - bsky-screenshot.cluster.fun | ||||||
|  |     secretName: bsky-screenshot-ingress | ||||||
|  |   rules: | ||||||
|  |   - host: bsky-screenshot.cluster.fun | ||||||
|  |     http: | ||||||
|  |       paths: | ||||||
|  |       - path: / | ||||||
|  |         pathType: ImplementationSpecific | ||||||
|  |         backend: | ||||||
|  |           service: | ||||||
|  |             name: bsky-screenshot | ||||||
|  |             port: | ||||||
|  |               number: 80 | ||||||
|  |  | ||||||
| @@ -47,11 +47,10 @@ metadata: | |||||||
|   namespace: cel-tester |   namespace: cel-tester | ||||||
|   annotations: |   annotations: | ||||||
|     cert-manager.io/cluster-issuer: letsencrypt |     cert-manager.io/cluster-issuer: letsencrypt | ||||||
|     kubernetes.io/ingress.class: traefik |  | ||||||
|     traefik.ingress.kubernetes.io/router.tls: "true" |  | ||||||
|     ingress.kubernetes.io/ssl-redirect: "true" |     ingress.kubernetes.io/ssl-redirect: "true" | ||||||
|     traefik.ingress.kubernetes.io/router.entrypoints: websecure |     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" | ||||||
| spec: | spec: | ||||||
|  |   ingressClassName: nginx | ||||||
|   tls: |   tls: | ||||||
|   - hosts: |   - hosts: | ||||||
|     - cel-tester.cluster.fun |     - cel-tester.cluster.fun | ||||||
|   | |||||||
| @@ -1,23 +0,0 @@ | |||||||
| apiVersion: v1 |  | ||||||
| kind: Namespace |  | ||||||
| metadata: |  | ||||||
|   name: cert-manager |  | ||||||
|   labels: |  | ||||||
|     certmanager.k8s.io/disable-validation: "true" |  | ||||||
|  |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| apiVersion: cert-manager.io/v1 |  | ||||||
| kind: ClusterIssuer |  | ||||||
| metadata: |  | ||||||
|   name: letsencrypt |  | ||||||
| spec: |  | ||||||
|   acme: |  | ||||||
|     server: https://acme-v02.api.letsencrypt.org/directory |  | ||||||
|     email: letsencrypt@marcusnoble.co.uk |  | ||||||
|     privateKeySecretRef: |  | ||||||
|       name: letsencrypt |  | ||||||
|     solvers: |  | ||||||
|     - http01: |  | ||||||
|         ingress: |  | ||||||
|           class: traefik |  | ||||||
| @@ -38,6 +38,7 @@ spec: | |||||||
|       labels: |       labels: | ||||||
|         app: civo-versions |         app: civo-versions | ||||||
|     spec: |     spec: | ||||||
|  |       priorityClassName: low | ||||||
|       containers: |       containers: | ||||||
|       - name: web |       - name: web | ||||||
|         image: rg.fr-par.scw.cloud/averagemarcus/civo-versions:latest |         image: rg.fr-par.scw.cloud/averagemarcus/civo-versions:latest | ||||||
| @@ -66,11 +67,10 @@ metadata: | |||||||
|   namespace: civo-versions |   namespace: civo-versions | ||||||
|   annotations: |   annotations: | ||||||
|     cert-manager.io/cluster-issuer: letsencrypt |     cert-manager.io/cluster-issuer: letsencrypt | ||||||
|     kubernetes.io/ingress.class: traefik |  | ||||||
|     traefik.ingress.kubernetes.io/router.tls: "true" |  | ||||||
|     ingress.kubernetes.io/ssl-redirect: "true" |     ingress.kubernetes.io/ssl-redirect: "true" | ||||||
|     traefik.ingress.kubernetes.io/router.entrypoints: websecure |     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" | ||||||
| spec: | spec: | ||||||
|  |   ingressClassName: nginx | ||||||
|   tls: |   tls: | ||||||
|   - hosts: |   - hosts: | ||||||
|     - civo-versions.cluster.fun |     - civo-versions.cluster.fun | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ metadata: | |||||||
|   name: cors-proxy |   name: cors-proxy | ||||||
|   namespace: cors-proxy |   namespace: cors-proxy | ||||||
| spec: | spec: | ||||||
|   replicas: 1 |   replicas: 2 | ||||||
|   selector: |   selector: | ||||||
|     matchLabels: |     matchLabels: | ||||||
|       app: cors-proxy |       app: cors-proxy | ||||||
| @@ -34,6 +34,14 @@ spec: | |||||||
|         ports: |         ports: | ||||||
|         - containerPort: 8000 |         - containerPort: 8000 | ||||||
|           name: web |           name: web | ||||||
|  |         env: | ||||||
|  |         - name: ALLOWLIST | ||||||
|  |           value: cdn.bsky.app | ||||||
|  |         resources: | ||||||
|  |           requests: | ||||||
|  |             memory: 184M | ||||||
|  |           limits: | ||||||
|  |             memory: 184M | ||||||
| --- | --- | ||||||
| apiVersion: networking.k8s.io/v1 | apiVersion: networking.k8s.io/v1 | ||||||
| kind: Ingress | kind: Ingress | ||||||
|   | |||||||
| @@ -62,11 +62,10 @@ metadata: | |||||||
|   namespace: cv |   namespace: cv | ||||||
|   annotations: |   annotations: | ||||||
|     cert-manager.io/cluster-issuer: letsencrypt |     cert-manager.io/cluster-issuer: letsencrypt | ||||||
|     kubernetes.io/ingress.class: traefik |  | ||||||
|     traefik.ingress.kubernetes.io/router.tls: "true" |  | ||||||
|     ingress.kubernetes.io/ssl-redirect: "true" |     ingress.kubernetes.io/ssl-redirect: "true" | ||||||
|     traefik.ingress.kubernetes.io/router.entrypoints: websecure |     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" | ||||||
| spec: | spec: | ||||||
|  |   ingressClassName: nginx | ||||||
|   tls: |   tls: | ||||||
|   - hosts: |   - hosts: | ||||||
|     - cv.marcusnoble.co.uk |     - cv.marcusnoble.co.uk | ||||||
|   | |||||||
| @@ -81,7 +81,7 @@ spec: | |||||||
|             secretKeyRef: |             secretKeyRef: | ||||||
|               key: password |               key: password | ||||||
|               name: dashboard-auth |               name: dashboard-auth | ||||||
|         image: quay.io/oauth2-proxy/oauth2-proxy:v7.6.0 |         image: quay.io/oauth2-proxy/oauth2-proxy:v7.12.0 | ||||||
|         name: oauth-proxy |         name: oauth-proxy | ||||||
|         ports: |         ports: | ||||||
|         - containerPort: 8000 |         - containerPort: 8000 | ||||||
|   | |||||||
| @@ -34,6 +34,11 @@ spec: | |||||||
|         ports: |         ports: | ||||||
|         - containerPort: 8080 |         - containerPort: 8080 | ||||||
|           name: web |           name: web | ||||||
|  |         resources: | ||||||
|  |           requests: | ||||||
|  |             memory: 80M | ||||||
|  |           limits: | ||||||
|  |             memory: 80M | ||||||
| --- | --- | ||||||
| apiVersion: networking.k8s.io/v1 | apiVersion: networking.k8s.io/v1 | ||||||
| kind: Ingress | kind: Ingress | ||||||
| @@ -42,11 +47,10 @@ metadata: | |||||||
|   namespace: feed-fetcher |   namespace: feed-fetcher | ||||||
|   annotations: |   annotations: | ||||||
|     cert-manager.io/cluster-issuer: letsencrypt |     cert-manager.io/cluster-issuer: letsencrypt | ||||||
|     kubernetes.io/ingress.class: traefik |  | ||||||
|     traefik.ingress.kubernetes.io/router.tls: "true" |  | ||||||
|     ingress.kubernetes.io/ssl-redirect: "true" |     ingress.kubernetes.io/ssl-redirect: "true" | ||||||
|     traefik.ingress.kubernetes.io/router.entrypoints: websecure |     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" | ||||||
| spec: | spec: | ||||||
|  |   ingressClassName: nginx | ||||||
|   tls: |   tls: | ||||||
|   - hosts: |   - hosts: | ||||||
|     - feed-fetcher.cluster.fun |     - feed-fetcher.cluster.fun | ||||||
|   | |||||||
| @@ -40,9 +40,10 @@ spec: | |||||||
|       labels: |       labels: | ||||||
|         app: git |         app: git | ||||||
|     spec: |     spec: | ||||||
|  |       priorityClassName: critical | ||||||
|       containers: |       containers: | ||||||
|       - name: git |       - name: git | ||||||
|         image: gitea/gitea:1.21.7 |         image: gitea/gitea:1.24.7 | ||||||
|         env: |         env: | ||||||
|         - name: APP_NAME |         - name: APP_NAME | ||||||
|           value: "Git" |           value: "Git" | ||||||
| @@ -76,7 +77,7 @@ spec: | |||||||
|           name: web |           name: web | ||||||
|         resources: |         resources: | ||||||
|           requests: |           requests: | ||||||
|             memory: 400Mi |             memory: 800Mi | ||||||
|         volumeMounts: |         volumeMounts: | ||||||
|         - mountPath: /data |         - mountPath: /data | ||||||
|           name: git-data |           name: git-data | ||||||
|   | |||||||
| @@ -1,37 +1,6 @@ | |||||||
| apiVersion: v1 | apiVersion: v1 | ||||||
| kind: PersistentVolume |  | ||||||
| metadata: |  | ||||||
|   annotations: |  | ||||||
|     pv.kubernetes.io/provisioned-by: csi.scaleway.com |  | ||||||
|   creationTimestamp: "2020-05-02T15:38:54Z" |  | ||||||
|   finalizers: |  | ||||||
|   - kubernetes.io/pv-protection |  | ||||||
|   - external-attacher/csi-scaleway-com |  | ||||||
|   name: pvc-02bd903f-e5ac-4c9f-a976-9fe995a352b2 |  | ||||||
| spec: |  | ||||||
|   accessModes: |  | ||||||
|   - ReadWriteOnce |  | ||||||
|   capacity: |  | ||||||
|     storage: 20Gi |  | ||||||
|   csi: |  | ||||||
|     driver: csi.scaleway.com |  | ||||||
|     fsType: ext4 |  | ||||||
|     volumeAttributes: |  | ||||||
|       storage.kubernetes.io/csiProvisionerIdentity: 1588413765965-1847-csi.scaleway.com |  | ||||||
|     volumeHandle: fr-par-1/2ef4f017-2d41-4662-bfa4-df0dcf2085a1 |  | ||||||
|   persistentVolumeReclaimPolicy: Retain |  | ||||||
|   storageClassName: scw-bssd-retain |  | ||||||
|   volumeMode: Filesystem |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: PersistentVolumeClaim | kind: PersistentVolumeClaim | ||||||
| metadata: | metadata: | ||||||
|   annotations: |  | ||||||
|     pv.kubernetes.io/bind-completed: "yes" |  | ||||||
|     pv.kubernetes.io/bound-by-controller: "yes" |  | ||||||
|     volume.beta.kubernetes.io/storage-provisioner: csi.scaleway.com |  | ||||||
|   finalizers: |  | ||||||
|   - kubernetes.io/pvc-protection |  | ||||||
|   labels: |   labels: | ||||||
|     app: git |     app: git | ||||||
|   name: git-data-git-0 |   name: git-data-git-0 | ||||||
| @@ -42,6 +11,4 @@ spec: | |||||||
|   resources: |   resources: | ||||||
|     requests: |     requests: | ||||||
|       storage: 20Gi |       storage: 20Gi | ||||||
|   storageClassName: scw-bssd-retain |   storageClassName: sbs-default-retain | ||||||
|   volumeMode: Filesystem |  | ||||||
|   volumeName: pvc-02bd903f-e5ac-4c9f-a976-9fe995a352b2 |  | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ spec: | |||||||
|     spec: |     spec: | ||||||
|       containers: |       containers: | ||||||
|       - name: web |       - name: web | ||||||
|         image: x1unix/go-playground:1.15.1 |         image: x1unix/go-playground:2.5.7 | ||||||
|         imagePullPolicy: IfNotPresent |         imagePullPolicy: IfNotPresent | ||||||
|         ports: |         ports: | ||||||
|         - containerPort: 8000 |         - containerPort: 8000 | ||||||
| @@ -47,11 +47,10 @@ metadata: | |||||||
|   namespace: goplayground |   namespace: goplayground | ||||||
|   annotations: |   annotations: | ||||||
|     cert-manager.io/cluster-issuer: letsencrypt |     cert-manager.io/cluster-issuer: letsencrypt | ||||||
|     kubernetes.io/ingress.class: traefik |  | ||||||
|     traefik.ingress.kubernetes.io/router.tls: "true" |  | ||||||
|     ingress.kubernetes.io/ssl-redirect: "true" |     ingress.kubernetes.io/ssl-redirect: "true" | ||||||
|     traefik.ingress.kubernetes.io/router.entrypoints: websecure |     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" | ||||||
| spec: | spec: | ||||||
|  |   ingressClassName: nginx | ||||||
|   tls: |   tls: | ||||||
|   - hosts: |   - hosts: | ||||||
|     - go.cluster.fun |     - go.cluster.fun | ||||||
|   | |||||||
							
								
								
									
										177
									
								
								manifests/grist/grist.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										177
									
								
								manifests/grist/grist.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,177 @@ | |||||||
|  | apiVersion: v1 | ||||||
|  | kind: Secret | ||||||
|  | metadata: | ||||||
|  |   name: grist | ||||||
|  |   namespace: grist | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: grist | ||||||
|  |   annotations: | ||||||
|  |     kube-1password: bpagsbvdrwomghyeowdgauytqq | ||||||
|  |     kube-1password/vault: Kubernetes | ||||||
|  |     kube-1password/secret-text-parse: "true" | ||||||
|  | type: Opaque | ||||||
|  | --- | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: ServiceAccount | ||||||
|  | metadata: | ||||||
|  |   name: grist | ||||||
|  |   namespace: grist | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: grist | ||||||
|  | --- | ||||||
|  | kind: PersistentVolumeClaim | ||||||
|  | apiVersion: v1 | ||||||
|  | metadata: | ||||||
|  |   name: grist-data | ||||||
|  |   namespace: grist | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: grist | ||||||
|  | spec: | ||||||
|  |   accessModes: | ||||||
|  |     - ReadWriteOnce | ||||||
|  |   resources: | ||||||
|  |     requests: | ||||||
|  |       storage: "1Gi" | ||||||
|  |   storageClassName: "sbs-default-retain" | ||||||
|  | --- | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: Service | ||||||
|  | metadata: | ||||||
|  |   name: grist | ||||||
|  |   namespace: grist | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: grist | ||||||
|  | spec: | ||||||
|  |   type: ClusterIP | ||||||
|  |   ports: | ||||||
|  |     - port: 80 | ||||||
|  |       targetPort: 8484 | ||||||
|  |       protocol: TCP | ||||||
|  |       name: http | ||||||
|  |   selector: | ||||||
|  |     app.kubernetes.io/name: grist | ||||||
|  | --- | ||||||
|  | apiVersion: apps/v1 | ||||||
|  | kind: Deployment | ||||||
|  | metadata: | ||||||
|  |   name: grist | ||||||
|  |   namespace: grist | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: grist | ||||||
|  |   annotations: | ||||||
|  |     secret.reloader.stakater.com/reload: "grist" | ||||||
|  | spec: | ||||||
|  |   selector: | ||||||
|  |     matchLabels: | ||||||
|  |       app.kubernetes.io/name: grist | ||||||
|  |   strategy: | ||||||
|  |     type: Recreate | ||||||
|  |   template: | ||||||
|  |     metadata: | ||||||
|  |       labels: | ||||||
|  |         app.kubernetes.io/name: grist | ||||||
|  |     spec: | ||||||
|  |       serviceAccountName: grist | ||||||
|  |       priorityClassName: critical | ||||||
|  |       containers: | ||||||
|  |         - name: grist | ||||||
|  |           image: gristlabs/grist-oss:1.7.4 | ||||||
|  |           imagePullPolicy: IfNotPresent | ||||||
|  |           ports: | ||||||
|  |             - name: http | ||||||
|  |               containerPort: 8484 | ||||||
|  |               protocol: TCP | ||||||
|  |           livenessProbe: | ||||||
|  |             tcpSocket: | ||||||
|  |               port: http | ||||||
|  |           readinessProbe: | ||||||
|  |             tcpSocket: | ||||||
|  |               port: http | ||||||
|  |           env: | ||||||
|  |             - name: APP_HOME_URL | ||||||
|  |               value: https://grist.cluster.fun | ||||||
|  |             - name:  APP_DOC_URL | ||||||
|  |               value: https://grist.cluster.fun | ||||||
|  |             - name: APP_HOME_INTERNAL_URL | ||||||
|  |               value: http://grist.grist.svc | ||||||
|  |             - name:  APP_DOC_INTERNAL_URL | ||||||
|  |               value: http://grist.grist.svc | ||||||
|  |             - name: GRIST_SINGLE_ORG | ||||||
|  |               value: default | ||||||
|  |             - name: GRIST_TELEMETRY_LEVEL | ||||||
|  |               value: "off" | ||||||
|  |             - name: GRIST_ANON_PLAYGROUND | ||||||
|  |               value: "false" | ||||||
|  |             - name: GRIST_FORCE_LOGIN | ||||||
|  |               value: "true" | ||||||
|  |             - name: GRIST_SANDBOX_FLAVOR | ||||||
|  |               value: gvisor | ||||||
|  |           resources: | ||||||
|  |             requests: | ||||||
|  |               memory: 300M | ||||||
|  |             limits: | ||||||
|  |               memory: 300M | ||||||
|  |           securityContext: | ||||||
|  |             capabilities: | ||||||
|  |               add: | ||||||
|  |               - SYS_PTRACE | ||||||
|  |           envFrom: | ||||||
|  |           - secretRef: | ||||||
|  |               name: grist | ||||||
|  |           volumeMounts: | ||||||
|  |             - name: data | ||||||
|  |               mountPath: /persist | ||||||
|  |       volumes: | ||||||
|  |         - name: data | ||||||
|  |           persistentVolumeClaim: | ||||||
|  |             claimName: grist-data | ||||||
|  | --- | ||||||
|  | apiVersion: autoscaling/v2 | ||||||
|  | kind: HorizontalPodAutoscaler | ||||||
|  | metadata: | ||||||
|  |   name: grist | ||||||
|  |   namespace: grist | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: grist | ||||||
|  | spec: | ||||||
|  |   scaleTargetRef: | ||||||
|  |     apiVersion: apps/v1 | ||||||
|  |     kind: Deployment | ||||||
|  |     name: grist | ||||||
|  |   minReplicas: 1 | ||||||
|  |   maxReplicas: 3 | ||||||
|  |   metrics: | ||||||
|  |     - type: Resource | ||||||
|  |       resource: | ||||||
|  |         name: cpu | ||||||
|  |         target: | ||||||
|  |           type: Utilization | ||||||
|  |           averageUtilization: 80 | ||||||
|  | --- | ||||||
|  | apiVersion: networking.k8s.io/v1 | ||||||
|  | kind: Ingress | ||||||
|  | metadata: | ||||||
|  |   name: grist | ||||||
|  |   namespace: grist | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: grist | ||||||
|  |   annotations: | ||||||
|  |     cert-manager.io/cluster-issuer: letsencrypt | ||||||
|  |     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" | ||||||
|  | spec: | ||||||
|  |   ingressClassName: nginx | ||||||
|  |   tls: | ||||||
|  |   - hosts: | ||||||
|  |     - grist.cluster.fun | ||||||
|  |     secretName: grist-ingress | ||||||
|  |   rules: | ||||||
|  |     - host: "grist.cluster.fun" | ||||||
|  |       http: | ||||||
|  |         paths: | ||||||
|  |           - path: / | ||||||
|  |             pathType: ImplementationSpecific | ||||||
|  |             backend: | ||||||
|  |               service: | ||||||
|  |                 name: grist | ||||||
|  |                 port: | ||||||
|  |                   number: 80 | ||||||
| @@ -23,6 +23,18 @@ data: | |||||||
|     kcduk23: https://noti.st/averagemarcus/4YvpTx/webhooks-whats-the-worst-that-could-happen |     kcduk23: https://noti.st/averagemarcus/4YvpTx/webhooks-whats-the-worst-that-could-happen | ||||||
|     rejekts23: https://noti.st/averagemarcus/Bi7qLP/webhooks-whats-the-worst-that-could-happen |     rejekts23: https://noti.st/averagemarcus/Bi7qLP/webhooks-whats-the-worst-that-could-happen | ||||||
|     rejekts24: https://speaking.marcusnoble.co.uk/pg46DB/from-fragile-to-resilient-validatingadmissionpolicies-strengthen-kubernetes |     rejekts24: https://speaking.marcusnoble.co.uk/pg46DB/from-fragile-to-resilient-validatingadmissionpolicies-strengthen-kubernetes | ||||||
|  |     lopug24: https://speaking.marcusnoble.co.uk/I6dyx4/webhooks-whats-the-worst-that-could-happen | ||||||
|  |     kcduk24: https://speaking.marcusnoble.co.uk/0qcuN9/from-fragile-to-resilient-validatingadmissionpolicies-strengthen-kubernetes | ||||||
|  |     rejektsna24: https://speaking.marcusnoble.co.uk/dALiFY/from-fragile-to-resilient-validatingadmissionpolicies-strengthen-kubernetes | ||||||
|  |     kcddk24: https://speaking.marcusnoble.co.uk/FU4W7x/from-fragile-to-resilient-validatingadmissionpolicies-strengthen-kubernetes | ||||||
|  |     cndoslo: https://speaking.marcusnoble.co.uk/j5M53P/from-fragile-to-resilient-validatingadmissionpolicies-strengthen-kubernetes | ||||||
|  |     rejekts25: https://speaking.marcusnoble.co.uk/AXARFf/pod-deep-dive-everything-you-didnt-know-you-needed-to-know | ||||||
|  |     kcdbudapest: https://speaking.marcusnoble.co.uk/43QLpx/the-future-of-kubernetes-admission-logic | ||||||
|  |     kcdczechslovak: https://speaking.marcusnoble.co.uk/Np2xUv/pod-deep-dive-the-interesting-bits | ||||||
|  |     cnsmunich: https://speaking.marcusnoble.co.uk/HqYcp2/pod-deep-dive-the-interesting-bits | ||||||
|  |     cnsmunich-feedback: https://yay-or-nay.cluster.fun/feedback/20UETBI0 | ||||||
|  |     containerdays25: https://speaking.marcusnoble.co.uk/HARSlE/the-future-of-kubernetes-admission-logic | ||||||
|  |     containerdays25-feedback: https://yay-or-nay.cluster.fun/feedback/F8P351QK | ||||||
| --- | --- | ||||||
| apiVersion: v1 | apiVersion: v1 | ||||||
| kind: Service | kind: Service | ||||||
| @@ -57,6 +69,7 @@ spec: | |||||||
|       labels: |       labels: | ||||||
|         app: link |         app: link | ||||||
|     spec: |     spec: | ||||||
|  |       priorityClassName: critical | ||||||
|       containers: |       containers: | ||||||
|       - name: web |       - name: web | ||||||
|         image: rg.fr-par.scw.cloud/averagemarcus/link:latest |         image: rg.fr-par.scw.cloud/averagemarcus/link:latest | ||||||
| @@ -79,11 +92,10 @@ metadata: | |||||||
|   namespace: link |   namespace: link | ||||||
|   annotations: |   annotations: | ||||||
|     cert-manager.io/cluster-issuer: letsencrypt |     cert-manager.io/cluster-issuer: letsencrypt | ||||||
|     kubernetes.io/ingress.class: traefik |  | ||||||
|     traefik.ingress.kubernetes.io/router.tls: "true" |  | ||||||
|     ingress.kubernetes.io/ssl-redirect: "true" |     ingress.kubernetes.io/ssl-redirect: "true" | ||||||
|     traefik.ingress.kubernetes.io/router.entrypoints: websecure |     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" | ||||||
| spec: | spec: | ||||||
|  |   ingressClassName: nginx | ||||||
|   tls: |   tls: | ||||||
|   - hosts: |   - hosts: | ||||||
|     - go-get.link |     - go-get.link | ||||||
|   | |||||||
| @@ -1,229 +0,0 @@ | |||||||
| apiVersion: v1 |  | ||||||
| kind: Secret |  | ||||||
| metadata: |  | ||||||
|   name: docker-config |  | ||||||
|   namespace: mastodon-digest |  | ||||||
|   annotations: |  | ||||||
|     kube-1password: i6ngbk5zf4k52xgwdwnfup5bby |  | ||||||
|     kube-1password/vault: Kubernetes |  | ||||||
|     kube-1password/secret-text-key: .dockerconfigjson |  | ||||||
| type: kubernetes.io/dockerconfigjson |  | ||||||
| data: |  | ||||||
|   .dockerconfigjson: e30= |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Secret |  | ||||||
| metadata: |  | ||||||
|   name: mastodon-digest-auth |  | ||||||
|   namespace: mastodon-digest |  | ||||||
|   annotations: |  | ||||||
|     kube-1password: mr6spkkx7n3memkbute6ojaarm |  | ||||||
|     kube-1password/vault: Kubernetes |  | ||||||
| type: Opaque |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Secret |  | ||||||
| metadata: |  | ||||||
|   name: mastodon-digest |  | ||||||
|   namespace: mastodon-digest |  | ||||||
|   annotations: |  | ||||||
|     kube-1password: bfklz3yi3dn4e7xtsbttcvhata |  | ||||||
|     kube-1password/vault: Kubernetes |  | ||||||
|     kube-1password/secret-text-parse: "true" |  | ||||||
| type: Opaque |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: ConfigMap |  | ||||||
| metadata: |  | ||||||
|   name: config |  | ||||||
|   namespace: mastodon-digest |  | ||||||
|   labels: |  | ||||||
|     app: mastodon-digest |  | ||||||
| data: |  | ||||||
|   config.json: | |  | ||||||
|     [ |  | ||||||
|       { |  | ||||||
|         "timeline": "home", |  | ||||||
|         "hours": 12, |  | ||||||
|         "scorer": "ExtendedSimpleWeighted", |  | ||||||
|         "threshold": "lax", |  | ||||||
|         "output": "/usr/share/nginx/html/home/" |  | ||||||
|       }, |  | ||||||
|       { |  | ||||||
|         "timeline": "federated", |  | ||||||
|         "hours": 12, |  | ||||||
|         "scorer": "ExtendedSimpleWeighted", |  | ||||||
|         "threshold": "lax", |  | ||||||
|         "output": "/usr/share/nginx/html/federated/" |  | ||||||
|       } |  | ||||||
|     ] |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: ConfigMap |  | ||||||
| metadata: |  | ||||||
|   name: index |  | ||||||
|   namespace: mastodon-digest |  | ||||||
|   labels: |  | ||||||
|     app: mastodon-digest |  | ||||||
| data: |  | ||||||
|   index.html: | |  | ||||||
|     <!DOCTYPE html> |  | ||||||
|     <html lang="en"> |  | ||||||
|     <head> |  | ||||||
|         <meta chartset="utf-8" /> |  | ||||||
|         <meta name="viewport" content="width=device-width, initial-scale=1" /> |  | ||||||
|         <title>Mastodon Digest</title> |  | ||||||
|         <style> |  | ||||||
|         body { background-color: #292c36; font-family: "Arial", sans-serif; } |  | ||||||
|         div#container { margin: auto; max-width: 640px; padding: 10px; text-align: center; margin: 0 auto; } |  | ||||||
|         .links { align: center; } |  | ||||||
|         h1 { color: white; } |  | ||||||
|         a.button { background: #595aff; color: #fff; line-height: 1.2; min-height: 38px; min-width: 88px; padding: 0 30px; border: 0; border-radius: 6px;; display: inline-flex; justify-content: center; align-items: center; } |  | ||||||
|     </style> |  | ||||||
|     </head> |  | ||||||
|     <body> |  | ||||||
|         <div id="container"> |  | ||||||
|             <h1>Mastodon Digest</h1> |  | ||||||
|             <section class="links"> |  | ||||||
|                 <a href="home/" class="button">Home</a> |  | ||||||
|                 <a href="federated/" class="button">Federated</a> |  | ||||||
|             </section> |  | ||||||
|         </div> |  | ||||||
|     </body> |  | ||||||
|     </html> |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: mastodon-digest |  | ||||||
|   namespace: mastodon-digest |  | ||||||
| spec: |  | ||||||
|   type: ClusterIP |  | ||||||
|   ports: |  | ||||||
|   - port: 80 |  | ||||||
|     targetPort: auth |  | ||||||
|     name: web |  | ||||||
|   selector: |  | ||||||
|     app: mastodon-digest |  | ||||||
| --- |  | ||||||
| apiVersion: apps/v1 |  | ||||||
| kind: Deployment |  | ||||||
| metadata: |  | ||||||
|   name: mastodon-digest |  | ||||||
|   namespace: mastodon-digest |  | ||||||
| spec: |  | ||||||
|   replicas: 1 |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app: mastodon-digest |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       labels: |  | ||||||
|         app: mastodon-digest |  | ||||||
|     spec: |  | ||||||
|       imagePullSecrets: |  | ||||||
|         - name: docker-config |  | ||||||
|       containers: |  | ||||||
|       - args: |  | ||||||
|         - --cookie-secure=false |  | ||||||
|         - --provider=oidc |  | ||||||
|         - --provider-display-name=Auth0 |  | ||||||
|         - --upstream=http://localhost:80 |  | ||||||
|         - --http-address=$(HOST_IP):8000 |  | ||||||
|         - --redirect-url=https://mastodon-digest.cluster.fun/oauth2/callback |  | ||||||
|         - --email-domain=marcusnoble.co.uk |  | ||||||
|         - --pass-basic-auth=false |  | ||||||
|         - --pass-access-token=false |  | ||||||
|         - --oidc-issuer-url=https://marcusnoble.eu.auth0.com/ |  | ||||||
|         - --cookie-secret=KDGD6rrK6cBmryyZ4wcJ9xAUNW9AQNFT |  | ||||||
|         env: |  | ||||||
|         - name: HOST_IP |  | ||||||
|           valueFrom: |  | ||||||
|             fieldRef: |  | ||||||
|               apiVersion: v1 |  | ||||||
|               fieldPath: status.podIP |  | ||||||
|         - name: OAUTH2_PROXY_CLIENT_ID |  | ||||||
|           valueFrom: |  | ||||||
|             secretKeyRef: |  | ||||||
|               key: username |  | ||||||
|               name: mastodon-digest-auth |  | ||||||
|         - name: OAUTH2_PROXY_CLIENT_SECRET |  | ||||||
|           valueFrom: |  | ||||||
|             secretKeyRef: |  | ||||||
|               key: password |  | ||||||
|               name: mastodon-digest-auth |  | ||||||
|         image: quay.io/oauth2-proxy/oauth2-proxy:v7.6.0 |  | ||||||
|         name: oauth-proxy |  | ||||||
|         ports: |  | ||||||
|         - containerPort: 8000 |  | ||||||
|           protocol: TCP |  | ||||||
|           name: auth |  | ||||||
|         resources: |  | ||||||
|           limits: |  | ||||||
|             memory: 50Mi |  | ||||||
|           requests: |  | ||||||
|             memory: 50Mi |  | ||||||
|  |  | ||||||
|       - name: web |  | ||||||
|         image: nginx:stable |  | ||||||
|         imagePullPolicy: IfNotPresent |  | ||||||
|         ports: |  | ||||||
|         - containerPort: 80 |  | ||||||
|           name: web |  | ||||||
|         volumeMounts: |  | ||||||
|         - name: html |  | ||||||
|           mountPath: /usr/share/nginx/html |  | ||||||
|         - name: index |  | ||||||
|           mountPath: /usr/share/nginx/html/index.html |  | ||||||
|           subPath: index.html |  | ||||||
|  |  | ||||||
|       - name: digest |  | ||||||
|         image: rg.fr-par.scw.cloud/averagemarcus-private/mastodon-digest:latest |  | ||||||
|         imagePullPolicy: Always |  | ||||||
|         env: |  | ||||||
|         - name: CONFIG_FILE |  | ||||||
|           value: /config.json |  | ||||||
|         envFrom: |  | ||||||
|         - secretRef: |  | ||||||
|             name: mastodon-digest |  | ||||||
|         volumeMounts: |  | ||||||
|         - name: config |  | ||||||
|           mountPath: /config.json |  | ||||||
|           subPath: config.json |  | ||||||
|         - name: html |  | ||||||
|           mountPath: /usr/share/nginx/html |  | ||||||
|       volumes: |  | ||||||
|       - name: html |  | ||||||
|         emptyDir: {} |  | ||||||
|       - name: config |  | ||||||
|         configMap: |  | ||||||
|           name: config |  | ||||||
|       - name: index |  | ||||||
|         configMap: |  | ||||||
|           name: index |  | ||||||
| --- |  | ||||||
| apiVersion: networking.k8s.io/v1 |  | ||||||
| kind: Ingress |  | ||||||
| metadata: |  | ||||||
|   name: mastodon-digest |  | ||||||
|   namespace: mastodon-digest |  | ||||||
|   annotations: |  | ||||||
|     cert-manager.io/cluster-issuer: letsencrypt |  | ||||||
|     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" |  | ||||||
| spec: |  | ||||||
|   ingressClassName: nginx |  | ||||||
|   tls: |  | ||||||
|   - hosts: |  | ||||||
|     - mastodon-digest.cluster.fun |  | ||||||
|     secretName: mastodon-digest-ingress |  | ||||||
|   rules: |  | ||||||
|   - host: mastodon-digest.cluster.fun |  | ||||||
|     http: |  | ||||||
|       paths: |  | ||||||
|       - path: / |  | ||||||
|         pathType: ImplementationSpecific |  | ||||||
|         backend: |  | ||||||
|           service: |  | ||||||
|             name: mastodon-digest |  | ||||||
|             port: |  | ||||||
|               number: 80 |  | ||||||
| @@ -1,151 +0,0 @@ | |||||||
| apiVersion: v1 |  | ||||||
| kind: Secret |  | ||||||
| metadata: |  | ||||||
|   name: docker-config |  | ||||||
|   namespace: mastodon-to-airtable |  | ||||||
|   annotations: |  | ||||||
|     kube-1password: i6ngbk5zf4k52xgwdwnfup5bby |  | ||||||
|     kube-1password/vault: Kubernetes |  | ||||||
|     kube-1password/secret-text-key: .dockerconfigjson |  | ||||||
| type: kubernetes.io/dockerconfigjson |  | ||||||
| data: |  | ||||||
|   .dockerconfigjson: e30= |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Secret |  | ||||||
| metadata: |  | ||||||
|   name: mastodon-to-airtable-auth |  | ||||||
|   namespace: mastodon-to-airtable |  | ||||||
|   annotations: |  | ||||||
|     kube-1password: mr6spkkx7n3memkbute6ojaarm |  | ||||||
|     kube-1password/vault: Kubernetes |  | ||||||
| type: Opaque |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Secret |  | ||||||
| metadata: |  | ||||||
|   name: mastodon-to-airtable |  | ||||||
|   namespace: mastodon-to-airtable |  | ||||||
|   annotations: |  | ||||||
|     kube-1password: kizmkmbndgu3ryrox3csev4mim |  | ||||||
|     kube-1password/vault: Kubernetes |  | ||||||
|     kube-1password/secret-text-parse: "true" |  | ||||||
| type: Opaque |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: mastodon-to-airtable |  | ||||||
|   namespace: mastodon-to-airtable |  | ||||||
| spec: |  | ||||||
|   type: ClusterIP |  | ||||||
|   ports: |  | ||||||
|   - port: 80 |  | ||||||
|     targetPort: auth |  | ||||||
|     name: web |  | ||||||
|   selector: |  | ||||||
|     app: mastodon-to-airtable |  | ||||||
| --- |  | ||||||
| apiVersion: apps/v1 |  | ||||||
| kind: Deployment |  | ||||||
| metadata: |  | ||||||
|   name: mastodon-to-airtable |  | ||||||
|   namespace: mastodon-to-airtable |  | ||||||
| spec: |  | ||||||
|   replicas: 1 |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app: mastodon-to-airtable |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       labels: |  | ||||||
|         app: mastodon-to-airtable |  | ||||||
|     spec: |  | ||||||
|       imagePullSecrets: |  | ||||||
|         - name: docker-config |  | ||||||
|       containers: |  | ||||||
|       - args: |  | ||||||
|         - --cookie-secure=false |  | ||||||
|         - --provider=oidc |  | ||||||
|         - --provider-display-name=Auth0 |  | ||||||
|         - --upstream=http://localhost:8080 |  | ||||||
|         - --http-address=$(HOST_IP):8000 |  | ||||||
|         - --redirect-url=https://mastodon-to-airtable.cluster.fun/oauth2/callback |  | ||||||
|         - --email-domain=marcusnoble.co.uk |  | ||||||
|         - --pass-basic-auth=false |  | ||||||
|         - --pass-access-token=false |  | ||||||
|         - --oidc-issuer-url=https://marcusnoble.eu.auth0.com/ |  | ||||||
|         - --cookie-secret=KDGD6rrK6cBmryyZ4wcJ9xAUNW9AQNFT |  | ||||||
|         env: |  | ||||||
|         - name: HOST_IP |  | ||||||
|           valueFrom: |  | ||||||
|             fieldRef: |  | ||||||
|               apiVersion: v1 |  | ||||||
|               fieldPath: status.podIP |  | ||||||
|         - name: OAUTH2_PROXY_CLIENT_ID |  | ||||||
|           valueFrom: |  | ||||||
|             secretKeyRef: |  | ||||||
|               key: username |  | ||||||
|               name: mastodon-to-airtable-auth |  | ||||||
|         - name: OAUTH2_PROXY_CLIENT_SECRET |  | ||||||
|           valueFrom: |  | ||||||
|             secretKeyRef: |  | ||||||
|               key: password |  | ||||||
|               name: mastodon-to-airtable-auth |  | ||||||
|         image: quay.io/oauth2-proxy/oauth2-proxy:v7.6.0 |  | ||||||
|         name: oauth-proxy |  | ||||||
|         ports: |  | ||||||
|         - containerPort: 8000 |  | ||||||
|           protocol: TCP |  | ||||||
|           name: auth |  | ||||||
|         resources: |  | ||||||
|           limits: |  | ||||||
|             memory: 50Mi |  | ||||||
|           requests: |  | ||||||
|             memory: 50Mi |  | ||||||
|       - name: web |  | ||||||
|         image: rg.fr-par.scw.cloud/averagemarcus-private/mastodon-to-airtable:latest |  | ||||||
|         imagePullPolicy: Always |  | ||||||
|         env: |  | ||||||
|         - name: PORT |  | ||||||
|           value: "8080" |  | ||||||
|         envFrom: |  | ||||||
|         - secretRef: |  | ||||||
|             name: "mastodon-to-airtable" |  | ||||||
|         ports: |  | ||||||
|         - containerPort: 8080 |  | ||||||
|           name: web |  | ||||||
|         resources: |  | ||||||
|           limits: |  | ||||||
|             memory: 50Mi |  | ||||||
|           requests: |  | ||||||
|             memory: 50Mi |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| apiVersion: networking.k8s.io/v1 |  | ||||||
| kind: Ingress |  | ||||||
| metadata: |  | ||||||
|   name: mastodon-to-airtable |  | ||||||
|   namespace: mastodon-to-airtable |  | ||||||
|   annotations: |  | ||||||
|     cert-manager.io/cluster-issuer: letsencrypt |  | ||||||
|     kubernetes.io/ingress.class: traefik |  | ||||||
|     traefik.ingress.kubernetes.io/router.tls: "true" |  | ||||||
|     ingress.kubernetes.io/ssl-redirect: "true" |  | ||||||
|     traefik.ingress.kubernetes.io/router.entrypoints: websecure |  | ||||||
| spec: |  | ||||||
|   tls: |  | ||||||
|   - hosts: |  | ||||||
|     - mastodon-to-airtable.cluster.fun |  | ||||||
|     secretName: mastodon-to-airtable-ingress |  | ||||||
|   rules: |  | ||||||
|   - host: mastodon-to-airtable.cluster.fun |  | ||||||
|     http: |  | ||||||
|       paths: |  | ||||||
|       - path: / |  | ||||||
|         pathType: ImplementationSpecific |  | ||||||
|         backend: |  | ||||||
|           service: |  | ||||||
|             name: mastodon-to-airtable |  | ||||||
|             port: |  | ||||||
|               number: 80 |  | ||||||
| @@ -1,545 +0,0 @@ | |||||||
| apiVersion: networking.k8s.io/v1 |  | ||||||
| kind: Ingress |  | ||||||
| metadata: |  | ||||||
|   name: matrix |  | ||||||
|   namespace: chat |  | ||||||
|   annotations: |  | ||||||
|     cert-manager.io/cluster-issuer: letsencrypt |  | ||||||
|     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" |  | ||||||
|     nginx.ingress.kubernetes.io/proxy-body-size: "0" |  | ||||||
| spec: |  | ||||||
|   ingressClassName: nginx |  | ||||||
|   tls: |  | ||||||
|   - hosts: |  | ||||||
|     - matrix.cluster.fun |  | ||||||
|     secretName: matrix-ingress |  | ||||||
|   rules: |  | ||||||
|   - host: matrix.cluster.fun |  | ||||||
|     http: |  | ||||||
|       paths: |  | ||||||
|       - path: /.well-known/matrix |  | ||||||
|         pathType: ImplementationSpecific |  | ||||||
|         backend: |  | ||||||
|           service: |  | ||||||
|             name: well-known |  | ||||||
|             port: |  | ||||||
|               number: 80 |  | ||||||
|       - path: / |  | ||||||
|         pathType: ImplementationSpecific |  | ||||||
|         backend: |  | ||||||
|           service: |  | ||||||
|             name: matrix-synapse |  | ||||||
|             port: |  | ||||||
|               number: 80 |  | ||||||
|  |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| apiVersion: networking.k8s.io/v1 |  | ||||||
| kind: Ingress |  | ||||||
| metadata: |  | ||||||
|   name: riot |  | ||||||
|   namespace: chat |  | ||||||
|   annotations: |  | ||||||
|     cert-manager.io/cluster-issuer: letsencrypt |  | ||||||
|     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" |  | ||||||
|     nginx.ingress.kubernetes.io/proxy-body-size: "0" |  | ||||||
| spec: |  | ||||||
|   ingressClassName: nginx |  | ||||||
|   tls: |  | ||||||
|   - hosts: |  | ||||||
|     - chat.cluster.fun |  | ||||||
|     secretName: riot-ingress |  | ||||||
|   rules: |  | ||||||
|   - host: chat.cluster.fun |  | ||||||
|     http: |  | ||||||
|       paths: |  | ||||||
|       - path: / |  | ||||||
|         pathType: ImplementationSpecific |  | ||||||
|         backend: |  | ||||||
|           service: |  | ||||||
|             name: matrix-riot |  | ||||||
|             port: |  | ||||||
|               number: 80 |  | ||||||
|  |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| apiVersion: apps/v1 |  | ||||||
| kind: Deployment |  | ||||||
| metadata: |  | ||||||
|   name: well-known |  | ||||||
|   namespace: chat |  | ||||||
|   annotations: |  | ||||||
|     configmap.reloader.stakater.com/reload: "well-known" |  | ||||||
| spec: |  | ||||||
|   replicas: 1 |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app: well-known |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       labels: |  | ||||||
|         app: well-known |  | ||||||
|     spec: |  | ||||||
|       containers: |  | ||||||
|       - name: web |  | ||||||
|         image: nginx |  | ||||||
|         imagePullPolicy: IfNotPresent |  | ||||||
|         ports: |  | ||||||
|         - containerPort: 80 |  | ||||||
|           name: web |  | ||||||
|         volumeMounts: |  | ||||||
|         - name: well-known |  | ||||||
|           mountPath: /usr/share/nginx/html/.well-known/matrix |  | ||||||
|         resources: |  | ||||||
|           limits: |  | ||||||
|             memory: 15Mi |  | ||||||
|           requests: |  | ||||||
|             memory: 15Mi |  | ||||||
|       volumes: |  | ||||||
|       - name: well-known |  | ||||||
|         configMap: |  | ||||||
|           name: well-known |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: well-known |  | ||||||
|   namespace: chat |  | ||||||
| spec: |  | ||||||
|   type: ClusterIP |  | ||||||
|   ports: |  | ||||||
|   - port: 80 |  | ||||||
|     targetPort: 80 |  | ||||||
|     name: web |  | ||||||
|   selector: |  | ||||||
|     app: well-known |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: ConfigMap |  | ||||||
| metadata: |  | ||||||
|   name: well-known |  | ||||||
|   namespace: chat |  | ||||||
| data: |  | ||||||
|   server: |- |  | ||||||
|     { |  | ||||||
|       "m.server": "matrix.cluster.fun:443" |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|  |  | ||||||
| --- |  | ||||||
|  |  | ||||||
|  |  | ||||||
| # Source: matrix/templates/riot/configmap.yaml |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: ConfigMap |  | ||||||
| metadata: |  | ||||||
|   name: matrix-riot-config |  | ||||||
|   namespace: chat |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: "matrix" |  | ||||||
|     component: element |  | ||||||
| data: |  | ||||||
|   config.json: | |  | ||||||
|     { |  | ||||||
|       "default_server_config": { |  | ||||||
|         "m.homeserver": { |  | ||||||
|           "base_url": "https://matrix.cluster.fun" |  | ||||||
|         } |  | ||||||
|       }, |  | ||||||
|       "brand": "Element", |  | ||||||
|       "branding": {}, |  | ||||||
|       "integrations_ui_url": "https://scalar.vector.im/", |  | ||||||
|       "integrations_rest_url": "https://scalar.vector.im/api", |  | ||||||
|       "integrations_widgets_urls": [ |  | ||||||
|         "https://scalar.vector.im/_matrix/integrations/v1", |  | ||||||
|         "https://scalar.vector.im/api", |  | ||||||
|         "https://scalar-staging.vector.im/_matrix/integrations/v1", |  | ||||||
|         "https://scalar-staging.vector.im/api", |  | ||||||
|         "https://scalar-staging.riot.im/scalar/api" |  | ||||||
|       ], |  | ||||||
|       "showLabsSettings": true, |  | ||||||
|       "features": { |  | ||||||
|         "feature_pinning": true, |  | ||||||
|         "feature_custom_status": "labs", |  | ||||||
|         "feature_state_counters": "labs", |  | ||||||
|         "feature_many_integration_managers": "labs", |  | ||||||
|         "feature_mjolnir": "labs", |  | ||||||
|         "feature_dm_verification": "labs", |  | ||||||
|         "feature_bridge_state": "labs", |  | ||||||
|         "feature_presence_in_room_list": true, |  | ||||||
|         "feature_custom_themes": "labs", |  | ||||||
|         "feature_new_spinner": "labs", |  | ||||||
|         "feature_jump_to_date": "labs", |  | ||||||
|         "feature_location_share_pin_drop": "labs", |  | ||||||
|         "feature_location_share_live": "labs", |  | ||||||
|         "feature_thread": true, |  | ||||||
|         "feature_video_rooms": true, |  | ||||||
|         "feature_favourite_messages": "labs" |  | ||||||
|       }, |  | ||||||
|       "roomDirectory": { |  | ||||||
|         "servers": [] |  | ||||||
|       }, |  | ||||||
|       "permalinkPrefix": "https://chat.cluster.fun", |  | ||||||
|       "enable_presence_by_hs_url": { |  | ||||||
|         "https://matrix.org": false, |  | ||||||
|         "https://matrix-client.matrix.org": false |  | ||||||
|       }, |  | ||||||
|       "map_style_url": "https://api.maptiler.com/maps/streets/style.json?key=2IerXP2a5g1e7hxxBbzs" |  | ||||||
|     } |  | ||||||
|   nginx.conf: | |  | ||||||
|     worker_processes  auto; |  | ||||||
|  |  | ||||||
|     error_log  /var/log/nginx/error.log warn; |  | ||||||
|     pid        /var/run/pid/nginx.pid; |  | ||||||
|  |  | ||||||
|     events { |  | ||||||
|       worker_connections  1024; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     http { |  | ||||||
|       include       /etc/nginx/mime.types; |  | ||||||
|       default_type  application/octet-stream; |  | ||||||
|  |  | ||||||
|       log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ' |  | ||||||
|       '$status $body_bytes_sent "$http_referer" ' |  | ||||||
|       '"$http_user_agent" "$http_x_forwarded_for"'; |  | ||||||
|  |  | ||||||
|       access_log  /var/log/nginx/access.log  main; |  | ||||||
|  |  | ||||||
|       sendfile        on; |  | ||||||
|  |  | ||||||
|       keepalive_timeout  65; |  | ||||||
|  |  | ||||||
|       include /etc/nginx/conf.d/*.conf; |  | ||||||
|     } |  | ||||||
|   default.conf: | |  | ||||||
|     server { |  | ||||||
|       listen       8080; |  | ||||||
|       server_name  localhost; |  | ||||||
|  |  | ||||||
|       location / { |  | ||||||
|           root   /usr/share/nginx/html; |  | ||||||
|           index  index.html index.htm; |  | ||||||
|       } |  | ||||||
|  |  | ||||||
|       # redirect server error pages to the static page /50x.html |  | ||||||
|       # |  | ||||||
|       error_page   500 502 503 504  /50x.html; |  | ||||||
|       location = /50x.html { |  | ||||||
|           root   /usr/share/nginx/html; |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Secret |  | ||||||
| metadata: |  | ||||||
|   name: matrix-synapse-config |  | ||||||
|   namespace: chat |  | ||||||
|   annotations: |  | ||||||
|     kube-1password: wbj4oozwyx6m2zz5m42pgcmymy |  | ||||||
|     kube-1password/vault: Kubernetes |  | ||||||
|     kube-1password/secret-text-key: homeserver.yaml |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: "matrix" |  | ||||||
|     component: synapse |  | ||||||
| type: Opaque |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: ConfigMap |  | ||||||
| metadata: |  | ||||||
|   name: matrix-synapse-config |  | ||||||
|   namespace: chat |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: "matrix" |  | ||||||
|     component: element |  | ||||||
| data: |  | ||||||
|   matrix.cluster.fun.log.config: | |  | ||||||
|     version: 1 |  | ||||||
|  |  | ||||||
|     formatters: |  | ||||||
|       precise: |  | ||||||
|         format: '%(asctime)s - %(name)s - %(lineno)d - %(levelname)s - %(request)s - %(message)s' |  | ||||||
|  |  | ||||||
|     filters: |  | ||||||
|       context: |  | ||||||
|         (): synapse.util.logcontext.LoggingContextFilter |  | ||||||
|         request: "" |  | ||||||
|  |  | ||||||
|     handlers: |  | ||||||
|       console: |  | ||||||
|         class: logging.StreamHandler |  | ||||||
|         formatter: precise |  | ||||||
|         filters: [context] |  | ||||||
|  |  | ||||||
|     loggers: |  | ||||||
|       synapse: |  | ||||||
|         level: WARNING |  | ||||||
|       synapse.storage.SQL: |  | ||||||
|         # beware: increasing this to DEBUG will make synapse log sensitive |  | ||||||
|         # information such as access tokens. |  | ||||||
|         level: WARNING |  | ||||||
|  |  | ||||||
|     root: |  | ||||||
|       level: WARNING |  | ||||||
|       handlers: [console] |  | ||||||
| --- |  | ||||||
| # Source: matrix/templates/riot/service.yaml |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: matrix-riot |  | ||||||
|   namespace: chat |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: "matrix" |  | ||||||
|     component: element |  | ||||||
| spec: |  | ||||||
|   type: ClusterIP |  | ||||||
|   ports: |  | ||||||
|     - port: 80 |  | ||||||
|       targetPort: http |  | ||||||
|       protocol: TCP |  | ||||||
|       name: http |  | ||||||
|   selector: |  | ||||||
|     app.kubernetes.io/name: matrix-riot |  | ||||||
| --- |  | ||||||
| # Source: matrix/templates/synapse/service.yaml |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: matrix-synapse |  | ||||||
|   namespace: chat |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: "matrix" |  | ||||||
|     component: synapse |  | ||||||
|   annotations: |  | ||||||
|     prometheus.io/scrape: "true" |  | ||||||
|     prometheus.io/path: "/_synapse/metrics" |  | ||||||
|     prometheus.io/port: "9000" |  | ||||||
| spec: |  | ||||||
|   type: ClusterIP |  | ||||||
|   ports: |  | ||||||
|     - port: 80 |  | ||||||
|       targetPort: http |  | ||||||
|       protocol: TCP |  | ||||||
|       name: http |  | ||||||
|     - port: 9000 |  | ||||||
|       targetPort: metrics |  | ||||||
|       protocol: TCP |  | ||||||
|       name: metrics |  | ||||||
|   selector: |  | ||||||
|     app.kubernetes.io/name: matrix-synapse |  | ||||||
| --- |  | ||||||
| # Source: matrix/templates/riot/deployment.yaml |  | ||||||
| apiVersion: apps/v1 |  | ||||||
| kind: Deployment |  | ||||||
| metadata: |  | ||||||
|   name: matrix-riot |  | ||||||
|   namespace: chat |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: "matrix" |  | ||||||
|     component: element |  | ||||||
| spec: |  | ||||||
|   replicas: 2 |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app.kubernetes.io/name: matrix-riot |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       labels: |  | ||||||
|         app.kubernetes.io/name: matrix-riot |  | ||||||
|     spec: |  | ||||||
|       securityContext: |  | ||||||
|         runAsUser: 1000 |  | ||||||
|         runAsGroup: 1000 |  | ||||||
|         fsGroup: 1000 |  | ||||||
|       containers: |  | ||||||
|         - name: "riot" |  | ||||||
|           image: "vectorim/element-web:v1.11.58" |  | ||||||
|           imagePullPolicy: IfNotPresent |  | ||||||
|           ports: |  | ||||||
|             - name: http |  | ||||||
|               containerPort: 8080 |  | ||||||
|               protocol: TCP |  | ||||||
|           volumeMounts: |  | ||||||
|             - mountPath: /app/config.json |  | ||||||
|               name: riot-config |  | ||||||
|               subPath: config.json |  | ||||||
|               readOnly: true |  | ||||||
|             - mountPath: /etc/nginx/nginx.conf |  | ||||||
|               name: riot-config |  | ||||||
|               subPath: nginx.conf |  | ||||||
|               readOnly: true |  | ||||||
|             - mountPath: /etc/nginx/conf.d/default.conf |  | ||||||
|               name: riot-config |  | ||||||
|               subPath: default.conf |  | ||||||
|               readOnly: true |  | ||||||
|             - mountPath: /var/cache/nginx |  | ||||||
|               name: ephemeral |  | ||||||
|               subPath: cache |  | ||||||
|             - mountPath: /var/run/pid |  | ||||||
|               name: ephemeral |  | ||||||
|               subPath: pid |  | ||||||
|           readinessProbe: |  | ||||||
|             httpGet: |  | ||||||
|               path: / |  | ||||||
|               port: http |  | ||||||
|           startupProbe: |  | ||||||
|             httpGet: |  | ||||||
|               path: / |  | ||||||
|               port: http |  | ||||||
|           livenessProbe: |  | ||||||
|             httpGet: |  | ||||||
|               path: / |  | ||||||
|               port: http |  | ||||||
|           securityContext: |  | ||||||
|             capabilities: |  | ||||||
|               drop: |  | ||||||
|                 - ALL |  | ||||||
|             readOnlyRootFilesystem: true |  | ||||||
|             allowPrivilegeEscalation: false |  | ||||||
|       volumes: |  | ||||||
|         - name: riot-config |  | ||||||
|           configMap: |  | ||||||
|             name: matrix-riot-config |  | ||||||
|         - name: ephemeral |  | ||||||
|           emptyDir: {} |  | ||||||
| --- |  | ||||||
| # Source: matrix/templates/synapse/deployment.yaml |  | ||||||
| apiVersion: apps/v1 |  | ||||||
| kind: Deployment |  | ||||||
| metadata: |  | ||||||
|   name: matrix-synapse |  | ||||||
|   namespace: chat |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: "matrix" |  | ||||||
|     component: synapse |  | ||||||
| spec: |  | ||||||
|   replicas: 1 |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app.kubernetes.io/name: matrix-synapse |  | ||||||
|   strategy: |  | ||||||
|     type: Recreate |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       labels: |  | ||||||
|         app.kubernetes.io/name: matrix-synapse |  | ||||||
|     spec: |  | ||||||
|       securityContext: |  | ||||||
|         runAsUser: 1000 |  | ||||||
|         runAsGroup: 1000 |  | ||||||
|         fsGroup: 1000 |  | ||||||
|       initContainers: |  | ||||||
|         - name: generate-signing-key |  | ||||||
|           image: "ghcr.io/element-hq/synapse:v1.101.0" |  | ||||||
|           imagePullPolicy: IfNotPresent |  | ||||||
|           env: |  | ||||||
|             - name: SYNAPSE_SERVER_NAME |  | ||||||
|               value: matrix.cluster.fun |  | ||||||
|             - name: SYNAPSE_REPORT_STATS |  | ||||||
|               value: "no" |  | ||||||
|           command: ["python"] |  | ||||||
|           args: |  | ||||||
|             - "-m" |  | ||||||
|             - "synapse.app.homeserver" |  | ||||||
|             - "--config-path" |  | ||||||
|             - "/data/homeserver.yaml" |  | ||||||
|             - "--keys-directory" |  | ||||||
|             - "/data/keys" |  | ||||||
|             - "--generate-keys" |  | ||||||
|           volumeMounts: |  | ||||||
|             - name: synapse-config-homeserver |  | ||||||
|               mountPath: /data/homeserver.yaml |  | ||||||
|               subPath: homeserver.yaml |  | ||||||
|             - name: synapse-config-logging |  | ||||||
|               mountPath: /data/matrix.cluster.fun.log.config |  | ||||||
|               subPath: matrix.cluster.fun.log.config |  | ||||||
|             - name: signing-key |  | ||||||
|               mountPath: /data/keys |  | ||||||
|       containers: |  | ||||||
|         - name: "synapse" |  | ||||||
|           image: "ghcr.io/element-hq/synapse:v1.101.0" |  | ||||||
|           imagePullPolicy: IfNotPresent |  | ||||||
|           ports: |  | ||||||
|             - name: http |  | ||||||
|               containerPort: 8008 |  | ||||||
|               protocol: TCP |  | ||||||
|             - name: metrics |  | ||||||
|               containerPort: 9000 |  | ||||||
|               protocol: TCP |  | ||||||
|           volumeMounts: |  | ||||||
|             - name: synapse-config-homeserver |  | ||||||
|               mountPath: /data/homeserver.yaml |  | ||||||
|               subPath: homeserver.yaml |  | ||||||
|             - name: mautrix-whatsapp-registration |  | ||||||
|               mountPath: /data/mautrix-whatsapp-registration.yaml |  | ||||||
|               subPath: registration.yaml |  | ||||||
|             # - name: mautrix-signal-registration |  | ||||||
|             #   mountPath: /data/mautrix-signal-registration.yaml |  | ||||||
|             #   subPath: registration.yaml |  | ||||||
|             # - name: mautrix-telegram-registration |  | ||||||
|             #   mountPath: /data/mautrix-telegram-registration.yaml |  | ||||||
|             #   subPath: registration.yaml |  | ||||||
|             - name: synapse-config-logging |  | ||||||
|               mountPath: /data/matrix.cluster.fun.log.config |  | ||||||
|               subPath: matrix.cluster.fun.log.config |  | ||||||
|             - name: signing-key |  | ||||||
|               mountPath: /data/keys |  | ||||||
|             - name: user-media |  | ||||||
|               mountPath: /data/media_store |  | ||||||
|             - name: uploads |  | ||||||
|               mountPath: /data/uploads |  | ||||||
|             - name: tmp |  | ||||||
|               mountPath: /tmp |  | ||||||
|           readinessProbe: |  | ||||||
|             httpGet: |  | ||||||
|               path: /_matrix/static/ |  | ||||||
|               port: http |  | ||||||
|             periodSeconds: 10 |  | ||||||
|             timeoutSeconds: 5 |  | ||||||
|           startupProbe: |  | ||||||
|             httpGet: |  | ||||||
|               path: /_matrix/static/ |  | ||||||
|               port: http |  | ||||||
|             failureThreshold: 6 |  | ||||||
|             periodSeconds: 5 |  | ||||||
|             timeoutSeconds: 5 |  | ||||||
|           livenessProbe: |  | ||||||
|             httpGet: |  | ||||||
|               path: /_matrix/static/ |  | ||||||
|               port: http |  | ||||||
|             periodSeconds: 10 |  | ||||||
|             timeoutSeconds: 5 |  | ||||||
|           securityContext: |  | ||||||
|             capabilities: |  | ||||||
|               drop: |  | ||||||
|                 - ALL |  | ||||||
|             readOnlyRootFilesystem: true |  | ||||||
|             allowPrivilegeEscalation: false |  | ||||||
|       volumes: |  | ||||||
|         - name: synapse-config-logging |  | ||||||
|           configMap: |  | ||||||
|             name: matrix-synapse-config |  | ||||||
|         - name: synapse-config-homeserver |  | ||||||
|           secret: |  | ||||||
|             secretName: matrix-synapse-config |  | ||||||
|         - name: mautrix-whatsapp-registration |  | ||||||
|           secret: |  | ||||||
|             secretName: mautrix-whatsapp-registration |  | ||||||
|         # - name: mautrix-signal-registration |  | ||||||
|         #   secret: |  | ||||||
|         #     secretName: mautrix-signal-registration |  | ||||||
|         # - name: mautrix-telegram-registration |  | ||||||
|         #   secret: |  | ||||||
|         #     secretName: mautrix-telegram-registration |  | ||||||
|         - name: signing-key |  | ||||||
|           persistentVolumeClaim: |  | ||||||
|             claimName: chat-matrix-signing-key |  | ||||||
|         - name: user-media |  | ||||||
|           persistentVolumeClaim: |  | ||||||
|             claimName: chat-matrix-user-media |  | ||||||
|         - name: uploads |  | ||||||
|           emptyDir: {} |  | ||||||
|         - name: tmp |  | ||||||
|           emptyDir: {} |  | ||||||
| --- |  | ||||||
| @@ -1,80 +0,0 @@ | |||||||
| apiVersion: v1 |  | ||||||
| kind: PersistentVolume |  | ||||||
| metadata: |  | ||||||
|   annotations: |  | ||||||
|     pv.kubernetes.io/provisioned-by: csi.scaleway.com |  | ||||||
|   finalizers: |  | ||||||
|   - kubernetes.io/pv-protection |  | ||||||
|   - external-attacher/csi-scaleway-com |  | ||||||
|   name: pvc-470f5860-49e0-414c-bb36-329970afc44b |  | ||||||
| spec: |  | ||||||
|   accessModes: |  | ||||||
|   - ReadWriteOnce |  | ||||||
|   capacity: |  | ||||||
|     storage: 12Gi |  | ||||||
|   csi: |  | ||||||
|     driver: csi.scaleway.com |  | ||||||
|     fsType: ext4 |  | ||||||
|     volumeAttributes: |  | ||||||
|       storage.kubernetes.io/csiProvisionerIdentity: 1676472026170-8081-csi.scaleway.com |  | ||||||
|     volumeHandle: fr-par-1/5e73e304-11e8-42cb-90fe-361889089d2d |  | ||||||
|   persistentVolumeReclaimPolicy: Retain |  | ||||||
|   storageClassName: scw-bssd |  | ||||||
|   volumeMode: Filesystem |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: PersistentVolumeClaim |  | ||||||
| metadata: |  | ||||||
|   name: chat-matrix-user-media |  | ||||||
|   namespace: chat |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: "matrix" |  | ||||||
|     component: synapse |  | ||||||
| spec: |  | ||||||
|   accessModes: |  | ||||||
|     - ReadWriteOnce |  | ||||||
|   resources: |  | ||||||
|     requests: |  | ||||||
|       storage: 12Gi |  | ||||||
|   volumeName: pvc-470f5860-49e0-414c-bb36-329970afc44b |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: PersistentVolume |  | ||||||
| metadata: |  | ||||||
|   annotations: |  | ||||||
|     pv.kubernetes.io/provisioned-by: csi.scaleway.com |  | ||||||
|   finalizers: |  | ||||||
|   - kubernetes.io/pv-protection |  | ||||||
|   - external-attacher/csi-scaleway-com |  | ||||||
|   name: pvc-00a8cf81-9453-4014-aa09-9fdbcc42abf2 |  | ||||||
| spec: |  | ||||||
|   accessModes: |  | ||||||
|   - ReadWriteOnce |  | ||||||
|   capacity: |  | ||||||
|     storage: 1Gi |  | ||||||
|   csi: |  | ||||||
|     driver: csi.scaleway.com |  | ||||||
|     fsType: ext4 |  | ||||||
|     volumeAttributes: |  | ||||||
|       storage.kubernetes.io/csiProvisionerIdentity: 1588413765965-1847-csi.scaleway.com |  | ||||||
|     volumeHandle: fr-par-1/e7437eda-59e8-43f5-af49-540618f1bd95 |  | ||||||
|   persistentVolumeReclaimPolicy: Retain |  | ||||||
|   storageClassName: scw-bssd |  | ||||||
|   volumeMode: Filesystem |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: PersistentVolumeClaim |  | ||||||
| metadata: |  | ||||||
|   name: chat-matrix-signing-key |  | ||||||
|   namespace: chat |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: "matrix" |  | ||||||
|     component: synapse |  | ||||||
| spec: |  | ||||||
|   accessModes: |  | ||||||
|     - ReadWriteOnce |  | ||||||
|   resources: |  | ||||||
|     requests: |  | ||||||
|       storage: 1Gi |  | ||||||
|   volumeName: pvc-00a8cf81-9453-4014-aa09-9fdbcc42abf2 |  | ||||||
| --- |  | ||||||
| @@ -1,153 +0,0 @@ | |||||||
| # apiVersion: v1 |  | ||||||
| # kind: Secret |  | ||||||
| # metadata: |  | ||||||
| #   name: mautrix-signal-registration |  | ||||||
| #   namespace: chat |  | ||||||
| #   annotations: |  | ||||||
| #     kube-1password: z6tylu2br724gttcpfyi5egaui |  | ||||||
| #     kube-1password/vault: Kubernetes |  | ||||||
| #     kube-1password/secret-text-key: registration.yaml |  | ||||||
| #   labels: |  | ||||||
| #     app.kubernetes.io/name: "mautrix-signal" |  | ||||||
| #     component: registration |  | ||||||
| # type: Opaque |  | ||||||
|  |  | ||||||
| # --- |  | ||||||
|  |  | ||||||
| # apiVersion: v1 |  | ||||||
| # kind: Secret |  | ||||||
| # metadata: |  | ||||||
| #   name: mautrix-signal-config |  | ||||||
| #   namespace: chat |  | ||||||
| #   annotations: |  | ||||||
| #     kube-1password: 5vfaorcudozlq4clkzgmzzszqe |  | ||||||
| #     kube-1password/vault: Kubernetes |  | ||||||
| #     kube-1password/secret-text-key: config.yaml |  | ||||||
| #   labels: |  | ||||||
| #     app.kubernetes.io/name: "mautrix-signal" |  | ||||||
| #     component: config |  | ||||||
| # type: Opaque |  | ||||||
|  |  | ||||||
| # --- |  | ||||||
|  |  | ||||||
| # apiVersion: v1 |  | ||||||
| # kind: Service |  | ||||||
| # metadata: |  | ||||||
| #   name: mautrix-signal |  | ||||||
| #   namespace: chat |  | ||||||
| #   labels: |  | ||||||
| #     app.kubernetes.io/name: mautrix-signal |  | ||||||
| #   annotations: |  | ||||||
| #     prometheus.io/scrape: "true" |  | ||||||
| #     prometheus.io/path: "/metrics" |  | ||||||
| #     prometheus.io/port: "9000" |  | ||||||
| # spec: |  | ||||||
| #   type: ClusterIP |  | ||||||
| #   ports: |  | ||||||
| #   - port: 29328 |  | ||||||
| #     targetPort: http |  | ||||||
| #     protocol: TCP |  | ||||||
| #     name: http |  | ||||||
| #   selector: |  | ||||||
| #     app.kubernetes.io/name: mautrix-signal |  | ||||||
|  |  | ||||||
| # --- |  | ||||||
|  |  | ||||||
| # apiVersion: apps/v1 |  | ||||||
| # kind: Deployment |  | ||||||
| # metadata: |  | ||||||
| #   name: mautrix-signal |  | ||||||
| #   labels: |  | ||||||
| #     app.kubernetes.io/name: mautrix-signal |  | ||||||
| # spec: |  | ||||||
| #   revisionHistoryLimit: 3 |  | ||||||
| #   replicas: 1 |  | ||||||
| #   strategy: |  | ||||||
| #     type: Recreate |  | ||||||
| #   selector: |  | ||||||
| #     matchLabels: |  | ||||||
| #       app.kubernetes.io/name: mautrix-signal |  | ||||||
| #   template: |  | ||||||
| #     metadata: |  | ||||||
| #       labels: |  | ||||||
| #         app.kubernetes.io/name: mautrix-signal |  | ||||||
| #     spec: |  | ||||||
| #       serviceAccountName: default |  | ||||||
| #       automountServiceAccountToken: true |  | ||||||
| #       dnsPolicy: ClusterFirst |  | ||||||
| #       enableServiceLinks: true |  | ||||||
| #       initContainers: |  | ||||||
| #       - name: config-copy |  | ||||||
| #         image: bash:latest |  | ||||||
| #         imagePullPolicy: IfNotPresent |  | ||||||
| #         args: |  | ||||||
| #           - -c |  | ||||||
| #           - | |  | ||||||
| #             cp /secrets/* /data/ |  | ||||||
| #         volumeMounts: |  | ||||||
| #           - name: mautrix-signal-config |  | ||||||
| #             mountPath: /secrets/config.yaml |  | ||||||
| #             subPath: config.yaml |  | ||||||
| #           - name: mautrix-signal-registration |  | ||||||
| #             mountPath: /secrets/registration.yaml |  | ||||||
| #             subPath: registration.yaml |  | ||||||
| #           - name: data |  | ||||||
| #             mountPath: /data |  | ||||||
| #       containers: |  | ||||||
| #         - name: signald |  | ||||||
| #           image: docker.io/signald/signald:stable |  | ||||||
| #           imagePullPolicy: Always |  | ||||||
| #           volumeMounts: |  | ||||||
| #           - name: signald |  | ||||||
| #             mountPath: /signald |  | ||||||
| #         - name: mautrix-signal |  | ||||||
| #           image: "dock.mau.dev/mautrix/signal:v0.4.3" |  | ||||||
| #           imagePullPolicy: IfNotPresent |  | ||||||
| #           env: |  | ||||||
| #             - name: "TZ" |  | ||||||
| #               value: "UTC" |  | ||||||
| #           ports: |  | ||||||
| #             - name: http |  | ||||||
| #               containerPort: 29328 |  | ||||||
| #               protocol: TCP |  | ||||||
| #             - name: metrics |  | ||||||
| #               containerPort: 9000 |  | ||||||
| #               protocol: TCP |  | ||||||
| #           volumeMounts: |  | ||||||
| #           - name: signald |  | ||||||
| #             mountPath: /signald |  | ||||||
| #           - name: data |  | ||||||
| #             mountPath: /data |  | ||||||
| #           livenessProbe: |  | ||||||
| #             tcpSocket: |  | ||||||
| #               port: 29318 |  | ||||||
| #             initialDelaySeconds: 0 |  | ||||||
| #             failureThreshold: 3 |  | ||||||
| #             timeoutSeconds: 1 |  | ||||||
| #             periodSeconds: 10 |  | ||||||
| #           readinessProbe: |  | ||||||
| #             tcpSocket: |  | ||||||
| #               port: 29318 |  | ||||||
| #             initialDelaySeconds: 0 |  | ||||||
| #             failureThreshold: 3 |  | ||||||
| #             timeoutSeconds: 1 |  | ||||||
| #             periodSeconds: 10 |  | ||||||
| #           startupProbe: |  | ||||||
| #             tcpSocket: |  | ||||||
| #               port: 29318 |  | ||||||
| #             initialDelaySeconds: 0 |  | ||||||
| #             failureThreshold: 30 |  | ||||||
| #             timeoutSeconds: 1 |  | ||||||
| #             periodSeconds: 5 |  | ||||||
| #       volumes: |  | ||||||
| #         - name: data |  | ||||||
| #           emptyDir: {} |  | ||||||
| #         - name: signald |  | ||||||
| #           emptyDir: {} |  | ||||||
| #         - name: mautrix-signal-config |  | ||||||
| #           secret: |  | ||||||
| #             secretName: mautrix-signal-config |  | ||||||
| #         - name: mautrix-signal-registration |  | ||||||
| #           secret: |  | ||||||
| #             secretName: mautrix-signal-registration |  | ||||||
| # --- |  | ||||||
| @@ -1,143 +0,0 @@ | |||||||
| # apiVersion: v1 |  | ||||||
| # kind: Secret |  | ||||||
| # metadata: |  | ||||||
| #   name: mautrix-telegram-registration |  | ||||||
| #   namespace: chat |  | ||||||
| #   annotations: |  | ||||||
| #     kube-1password: dancy7ogc4gjlxhfntqejgudwi |  | ||||||
| #     kube-1password/vault: Kubernetes |  | ||||||
| #     kube-1password/secret-text-key: registration.yaml |  | ||||||
| #   labels: |  | ||||||
| #     app.kubernetes.io/name: "mautrix-telegram" |  | ||||||
| #     component: registration |  | ||||||
| # type: Opaque |  | ||||||
|  |  | ||||||
| # --- |  | ||||||
|  |  | ||||||
| # apiVersion: v1 |  | ||||||
| # kind: Secret |  | ||||||
| # metadata: |  | ||||||
| #   name: mautrix-telegram-config |  | ||||||
| #   namespace: chat |  | ||||||
| #   annotations: |  | ||||||
| #     kube-1password: nilzdpfum35hhwijnwvasbzmcq |  | ||||||
| #     kube-1password/vault: Kubernetes |  | ||||||
| #     kube-1password/secret-text-key: config.yaml |  | ||||||
| #   labels: |  | ||||||
| #     app.kubernetes.io/name: "mautrix-telegram" |  | ||||||
| #     component: config |  | ||||||
| # type: Opaque |  | ||||||
|  |  | ||||||
| # --- |  | ||||||
|  |  | ||||||
| # apiVersion: v1 |  | ||||||
| # kind: Service |  | ||||||
| # metadata: |  | ||||||
| #   name: mautrix-telegram |  | ||||||
| #   namespace: chat |  | ||||||
| #   labels: |  | ||||||
| #     app.kubernetes.io/name: mautrix-telegram |  | ||||||
| #   annotations: |  | ||||||
| #     prometheus.io/scrape: "true" |  | ||||||
| #     prometheus.io/path: "/metrics" |  | ||||||
| #     prometheus.io/port: "9000" |  | ||||||
| # spec: |  | ||||||
| #   type: ClusterIP |  | ||||||
| #   ports: |  | ||||||
| #   - port: 29318 |  | ||||||
| #     targetPort: http |  | ||||||
| #     protocol: TCP |  | ||||||
| #     name: http |  | ||||||
| #   selector: |  | ||||||
| #     app.kubernetes.io/name: mautrix-telegram |  | ||||||
|  |  | ||||||
| # --- |  | ||||||
|  |  | ||||||
| # apiVersion: apps/v1 |  | ||||||
| # kind: Deployment |  | ||||||
| # metadata: |  | ||||||
| #   name: mautrix-telegram |  | ||||||
| #   labels: |  | ||||||
| #     app.kubernetes.io/name: mautrix-telegram |  | ||||||
| # spec: |  | ||||||
| #   revisionHistoryLimit: 3 |  | ||||||
| #   replicas: 1 |  | ||||||
| #   strategy: |  | ||||||
| #     type: Recreate |  | ||||||
| #   selector: |  | ||||||
| #     matchLabels: |  | ||||||
| #       app.kubernetes.io/name: mautrix-telegram |  | ||||||
| #   template: |  | ||||||
| #     metadata: |  | ||||||
| #       labels: |  | ||||||
| #         app.kubernetes.io/name: mautrix-telegram |  | ||||||
| #     spec: |  | ||||||
| #       serviceAccountName: default |  | ||||||
| #       automountServiceAccountToken: true |  | ||||||
| #       dnsPolicy: ClusterFirst |  | ||||||
| #       enableServiceLinks: true |  | ||||||
| #       initContainers: |  | ||||||
| #       - name: config-copy |  | ||||||
| #         image: bash:latest |  | ||||||
| #         imagePullPolicy: IfNotPresent |  | ||||||
| #         args: |  | ||||||
| #           - -c |  | ||||||
| #           - | |  | ||||||
| #             cp /secrets/* /data/ |  | ||||||
| #         volumeMounts: |  | ||||||
| #           - name: mautrix-telegram-config |  | ||||||
| #             mountPath: /secrets/config.yaml |  | ||||||
| #             subPath: config.yaml |  | ||||||
| #           - name: mautrix-telegram-registration |  | ||||||
| #             mountPath: /secrets/registration.yaml |  | ||||||
| #             subPath: registration.yaml |  | ||||||
| #           - name: data |  | ||||||
| #             mountPath: /data |  | ||||||
| #       containers: |  | ||||||
| #         - name: mautrix-telegram |  | ||||||
| #           image: "dock.mau.dev/mautrix/telegram:v0.12.1" |  | ||||||
| #           imagePullPolicy: IfNotPresent |  | ||||||
| #           env: |  | ||||||
| #             - name: "TZ" |  | ||||||
| #               value: "UTC" |  | ||||||
| #           ports: |  | ||||||
| #             - name: http |  | ||||||
| #               containerPort: 29318 |  | ||||||
| #               protocol: TCP |  | ||||||
| #             - name: metrics |  | ||||||
| #               containerPort: 9000 |  | ||||||
| #               protocol: TCP |  | ||||||
| #           volumeMounts: |  | ||||||
| #           - name: data |  | ||||||
| #             mountPath: /data |  | ||||||
| #           livenessProbe: |  | ||||||
| #             tcpSocket: |  | ||||||
| #               port: 29318 |  | ||||||
| #             initialDelaySeconds: 0 |  | ||||||
| #             failureThreshold: 3 |  | ||||||
| #             timeoutSeconds: 1 |  | ||||||
| #             periodSeconds: 10 |  | ||||||
| #           readinessProbe: |  | ||||||
| #             tcpSocket: |  | ||||||
| #               port: 29318 |  | ||||||
| #             initialDelaySeconds: 0 |  | ||||||
| #             failureThreshold: 3 |  | ||||||
| #             timeoutSeconds: 1 |  | ||||||
| #             periodSeconds: 10 |  | ||||||
| #           startupProbe: |  | ||||||
| #             tcpSocket: |  | ||||||
| #               port: 29318 |  | ||||||
| #             initialDelaySeconds: 0 |  | ||||||
| #             failureThreshold: 30 |  | ||||||
| #             timeoutSeconds: 1 |  | ||||||
| #             periodSeconds: 5 |  | ||||||
| #       volumes: |  | ||||||
| #         - name: data |  | ||||||
| #           emptyDir: {} |  | ||||||
| #         - name: mautrix-telegram-config |  | ||||||
| #           secret: |  | ||||||
| #             secretName: mautrix-telegram-config |  | ||||||
| #         - name: mautrix-telegram-registration |  | ||||||
| #           secret: |  | ||||||
| #             secretName: mautrix-telegram-registration |  | ||||||
| # --- |  | ||||||
| @@ -1,143 +0,0 @@ | |||||||
| apiVersion: v1 |  | ||||||
| kind: Secret |  | ||||||
| metadata: |  | ||||||
|   name: mautrix-whatsapp-registration |  | ||||||
|   namespace: chat |  | ||||||
|   annotations: |  | ||||||
|     kube-1password: x6lzkpyov4dem5jtk2kimyrnvy |  | ||||||
|     kube-1password/vault: Kubernetes |  | ||||||
|     kube-1password/secret-text-key: registration.yaml |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: "mautrix-whatsapp" |  | ||||||
|     component: registration |  | ||||||
| type: Opaque |  | ||||||
|  |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Secret |  | ||||||
| metadata: |  | ||||||
|   name: mautrix-whatsapp-config |  | ||||||
|   namespace: chat |  | ||||||
|   annotations: |  | ||||||
|     kube-1password: ji3e2el66bu56bml3kq3ghyojq |  | ||||||
|     kube-1password/vault: Kubernetes |  | ||||||
|     kube-1password/secret-text-key: config.yaml |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: "mautrix-whatsapp" |  | ||||||
|     component: config |  | ||||||
| type: Opaque |  | ||||||
|  |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: mautrix-whatsapp |  | ||||||
|   namespace: chat |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: mautrix-whatsapp |  | ||||||
|   annotations: |  | ||||||
|     prometheus.io/scrape: "true" |  | ||||||
|     prometheus.io/path: "/metrics" |  | ||||||
|     prometheus.io/port: "9000" |  | ||||||
| spec: |  | ||||||
|   type: ClusterIP |  | ||||||
|   ports: |  | ||||||
|   - port: 29318 |  | ||||||
|     targetPort: http |  | ||||||
|     protocol: TCP |  | ||||||
|     name: http |  | ||||||
|   selector: |  | ||||||
|     app.kubernetes.io/name: mautrix-whatsapp |  | ||||||
|  |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| apiVersion: apps/v1 |  | ||||||
| kind: Deployment |  | ||||||
| metadata: |  | ||||||
|   name: mautrix-whatsapp |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: mautrix-whatsapp |  | ||||||
| spec: |  | ||||||
|   revisionHistoryLimit: 3 |  | ||||||
|   replicas: 1 |  | ||||||
|   strategy: |  | ||||||
|     type: Recreate |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app.kubernetes.io/name: mautrix-whatsapp |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       labels: |  | ||||||
|         app.kubernetes.io/name: mautrix-whatsapp |  | ||||||
|     spec: |  | ||||||
|       serviceAccountName: default |  | ||||||
|       automountServiceAccountToken: true |  | ||||||
|       dnsPolicy: ClusterFirst |  | ||||||
|       enableServiceLinks: true |  | ||||||
|       initContainers: |  | ||||||
|       - name: config-copy |  | ||||||
|         image: bash:latest |  | ||||||
|         imagePullPolicy: IfNotPresent |  | ||||||
|         args: |  | ||||||
|           - -c |  | ||||||
|           - | |  | ||||||
|             cp /secrets/* /data/ |  | ||||||
|         volumeMounts: |  | ||||||
|           - name: mautrix-whatsapp-config |  | ||||||
|             mountPath: /secrets/config.yaml |  | ||||||
|             subPath: config.yaml |  | ||||||
|           - name: mautrix-whatsapp-registration |  | ||||||
|             mountPath: /secrets/registration.yaml |  | ||||||
|             subPath: registration.yaml |  | ||||||
|           - name: data |  | ||||||
|             mountPath: /data |  | ||||||
|       containers: |  | ||||||
|         - name: mautrix-whatsapp |  | ||||||
|           image: "dock.mau.dev/mautrix/whatsapp:v0.10.5" |  | ||||||
|           imagePullPolicy: IfNotPresent |  | ||||||
|           env: |  | ||||||
|             - name: "TZ" |  | ||||||
|               value: "UTC" |  | ||||||
|           ports: |  | ||||||
|             - name: http |  | ||||||
|               containerPort: 29318 |  | ||||||
|               protocol: TCP |  | ||||||
|             - name: metrics |  | ||||||
|               containerPort: 9000 |  | ||||||
|               protocol: TCP |  | ||||||
|           volumeMounts: |  | ||||||
|           - name: data |  | ||||||
|             mountPath: /data |  | ||||||
|           livenessProbe: |  | ||||||
|             tcpSocket: |  | ||||||
|               port: 29318 |  | ||||||
|             initialDelaySeconds: 0 |  | ||||||
|             failureThreshold: 3 |  | ||||||
|             timeoutSeconds: 1 |  | ||||||
|             periodSeconds: 10 |  | ||||||
|           readinessProbe: |  | ||||||
|             tcpSocket: |  | ||||||
|               port: 29318 |  | ||||||
|             initialDelaySeconds: 0 |  | ||||||
|             failureThreshold: 3 |  | ||||||
|             timeoutSeconds: 1 |  | ||||||
|             periodSeconds: 10 |  | ||||||
|           startupProbe: |  | ||||||
|             tcpSocket: |  | ||||||
|               port: 29318 |  | ||||||
|             initialDelaySeconds: 0 |  | ||||||
|             failureThreshold: 30 |  | ||||||
|             timeoutSeconds: 1 |  | ||||||
|             periodSeconds: 5 |  | ||||||
|       volumes: |  | ||||||
|         - name: data |  | ||||||
|           emptyDir: {} |  | ||||||
|         - name: mautrix-whatsapp-config |  | ||||||
|           secret: |  | ||||||
|             secretName: mautrix-whatsapp-config |  | ||||||
|         - name: mautrix-whatsapp-registration |  | ||||||
|           secret: |  | ||||||
|             secretName: mautrix-whatsapp-registration |  | ||||||
| --- |  | ||||||
| @@ -18,6 +18,8 @@ metadata: | |||||||
|   namespace: mealie |   namespace: mealie | ||||||
| spec: | spec: | ||||||
|   replicas: 1 |   replicas: 1 | ||||||
|  |   strategy: | ||||||
|  |     type: Recreate | ||||||
|   selector: |   selector: | ||||||
|     matchLabels: |     matchLabels: | ||||||
|       app: mealie |       app: mealie | ||||||
| @@ -26,22 +28,21 @@ spec: | |||||||
|       labels: |       labels: | ||||||
|         app: mealie |         app: mealie | ||||||
|     spec: |     spec: | ||||||
|  |       priorityClassName: critical | ||||||
|       containers: |       containers: | ||||||
|       - name: frontend |       - name: frontend | ||||||
|         image: hkotel/mealie:frontend-nightly |         image: ghcr.io/mealie-recipes/mealie:v3.3.2 | ||||||
|         imagePullPolicy: Always |         imagePullPolicy: Always | ||||||
|         envFrom: |         envFrom: | ||||||
|         - secretRef: |         - secretRef: | ||||||
|             name: mealie |             name: mealie | ||||||
|         env: |         env: | ||||||
|         - name: API_URL |  | ||||||
|           value: "http://localhost:9000" |  | ||||||
|         - name: PUID |         - name: PUID | ||||||
|           value: "1000" |           value: "1000" | ||||||
|         - name: PGID |         - name: PGID | ||||||
|           value: "1000" |           value: "1000" | ||||||
|         - name: TOKEN_TIME |         - name: TOKEN_TIME | ||||||
|           value: "168" |           value: "720" | ||||||
|         - name: DB_ENGINE |         - name: DB_ENGINE | ||||||
|           value: postgres |           value: postgres | ||||||
|         - name: POSTGRES_DB |         - name: POSTGRES_DB | ||||||
| @@ -58,45 +59,28 @@ spec: | |||||||
|           value: "false" |           value: "false" | ||||||
|         - name: RECIPE_DISABLE_AMOUNT |         - name: RECIPE_DISABLE_AMOUNT | ||||||
|           value: "false" |           value: "false" | ||||||
|         ports: |         - name: ALLOW_SIGNUP | ||||||
|         - containerPort: 3000 |           value: "false" | ||||||
|           name: web |  | ||||||
|         volumeMounts: |  | ||||||
|           - mountPath: /app/data |  | ||||||
|             name: data |  | ||||||
|       - name: api |  | ||||||
|         image: hkotel/mealie:api-nightly |  | ||||||
|         imagePullPolicy: Always |  | ||||||
|         envFrom: |  | ||||||
|         - secretRef: |  | ||||||
|             name: mealie |  | ||||||
|         env: |  | ||||||
|         - name: PUID |  | ||||||
|           value: "1000" |  | ||||||
|         - name: PGID |  | ||||||
|           value: "1000" |  | ||||||
|         - name: DB_ENGINE |  | ||||||
|           value: postgres |  | ||||||
|         - name: POSTGRES_DB |  | ||||||
|           value: mealie |  | ||||||
|         - name: DEFAULT_EMAIL |  | ||||||
|           value: "mealie@marcusnoble.co.uk" |  | ||||||
|         - name: TOKEN_TIME |  | ||||||
|           value: "168" |  | ||||||
|         - name: BASE_URL |         - name: BASE_URL | ||||||
|           value: "https://mealie.cluster.fun" |           value: "https://mealie.cluster.fun" | ||||||
|         ports: |         ports: | ||||||
|         - containerPort: 9000 |         - containerPort: 9000 | ||||||
|           name: api |           name: web | ||||||
|         volumeMounts: |         volumeMounts: | ||||||
|           - mountPath: /app/data |           - mountPath: /app/data | ||||||
|             name: data |             name: data | ||||||
|  |         resources: | ||||||
|  |           requests: | ||||||
|  |             cpu: 200m | ||||||
|  |             memory: 550M | ||||||
|  |           limits: | ||||||
|  |             cpu: 1000m | ||||||
|  |             memory: 550M | ||||||
|       volumes: |       volumes: | ||||||
|       - name: data |       - name: data | ||||||
|         persistentVolumeClaim: |         persistentVolumeClaim: | ||||||
|           claimName: mealie |           claimName: mealie | ||||||
|  |  | ||||||
|  |  | ||||||
| --- | --- | ||||||
|  |  | ||||||
| apiVersion: v1 | apiVersion: v1 | ||||||
| @@ -114,22 +98,6 @@ spec: | |||||||
|     app: mealie |     app: mealie | ||||||
| --- | --- | ||||||
|  |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: mealie-api |  | ||||||
|   namespace: mealie |  | ||||||
| spec: |  | ||||||
|   type: ClusterIP |  | ||||||
|   ports: |  | ||||||
|   - port: 80 |  | ||||||
|     targetPort: api |  | ||||||
|     name: api |  | ||||||
|   selector: |  | ||||||
|     app: mealie |  | ||||||
|  |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| apiVersion: networking.k8s.io/v1 | apiVersion: networking.k8s.io/v1 | ||||||
| kind: Ingress | kind: Ingress | ||||||
| metadata: | metadata: | ||||||
| @@ -138,6 +106,7 @@ metadata: | |||||||
|   annotations: |   annotations: | ||||||
|     cert-manager.io/cluster-issuer: letsencrypt |     cert-manager.io/cluster-issuer: letsencrypt | ||||||
|     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" |     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" | ||||||
|  |     nginx.ingress.kubernetes.io/proxy-body-size: "0" | ||||||
| spec: | spec: | ||||||
|   ingressClassName: nginx |   ingressClassName: nginx | ||||||
|   tls: |   tls: | ||||||
| @@ -155,13 +124,3 @@ spec: | |||||||
|             name: mealie |             name: mealie | ||||||
|             port: |             port: | ||||||
|               name: web |               name: web | ||||||
|   - host: mealie.cluster.fun |  | ||||||
|     http: |  | ||||||
|       paths: |  | ||||||
|       - path: /api |  | ||||||
|         pathType: ImplementationSpecific |  | ||||||
|         backend: |  | ||||||
|           service: |  | ||||||
|             name: mealie-api |  | ||||||
|             port: |  | ||||||
|               name: api |  | ||||||
|   | |||||||
| @@ -1,29 +1,3 @@ | |||||||
| apiVersion: v1 |  | ||||||
| kind: PersistentVolume |  | ||||||
| metadata: |  | ||||||
|   annotations: |  | ||||||
|     pv.kubernetes.io/provisioned-by: csi.scaleway.com |  | ||||||
|   finalizers: |  | ||||||
|   - kubernetes.io/pv-protection |  | ||||||
|   - external-attacher/csi-scaleway-com |  | ||||||
|   name: pvc-afe7fbb6-1f5a-4169-bad1-c9d43752ee7a |  | ||||||
| spec: |  | ||||||
|   accessModes: |  | ||||||
|   - ReadWriteOnce |  | ||||||
|   capacity: |  | ||||||
|     storage: 2Gi |  | ||||||
|   csi: |  | ||||||
|     driver: csi.scaleway.com |  | ||||||
|     fsType: ext4 |  | ||||||
|     volumeAttributes: |  | ||||||
|       encrypted: "false" |  | ||||||
|       storage.kubernetes.io/csiProvisionerIdentity: 1646426415842-8081-csi.scaleway.com |  | ||||||
|     volumeHandle: fr-par-1/efbe7dc1-4660-4db8-a3b4-42114075a318 |  | ||||||
|   persistentVolumeReclaimPolicy: Retain |  | ||||||
|   storageClassName: scw-bssd |  | ||||||
|   volumeMode: Filesystem |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| kind: PersistentVolumeClaim | kind: PersistentVolumeClaim | ||||||
| apiVersion: v1 | apiVersion: v1 | ||||||
| metadata: | metadata: | ||||||
| @@ -35,5 +9,5 @@ spec: | |||||||
|   resources: |   resources: | ||||||
|     requests: |     requests: | ||||||
|       storage: 2Gi |       storage: 2Gi | ||||||
|   volumeName: pvc-afe7fbb6-1f5a-4169-bad1-c9d43752ee7a |   storageClassName: sbs-default-retain | ||||||
| --- | --- | ||||||
|   | |||||||
| @@ -1,255 +0,0 @@ | |||||||
|  |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: ServiceAccount |  | ||||||
| metadata: |  | ||||||
|   name: kube-state-metrics |  | ||||||
|   namespace: monitoring |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: kube-state-metrics |  | ||||||
| --- |  | ||||||
| apiVersion: rbac.authorization.k8s.io/v1 |  | ||||||
| kind: ClusterRole |  | ||||||
| metadata: |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: kube-state-metrics |  | ||||||
|   name: kube-state-metrics |  | ||||||
| rules: |  | ||||||
|   - apiGroups: ["certificates.k8s.io"] |  | ||||||
|     resources: |  | ||||||
|     - certificatesigningrequests |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: [""] |  | ||||||
|     resources: |  | ||||||
|     - configmaps |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: ["batch"] |  | ||||||
|     resources: |  | ||||||
|     - cronjobs |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: ["extensions", "apps"] |  | ||||||
|     resources: |  | ||||||
|     - daemonsets |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: ["extensions", "apps"] |  | ||||||
|     resources: |  | ||||||
|     - deployments |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: [""] |  | ||||||
|     resources: |  | ||||||
|     - endpoints |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: ["autoscaling"] |  | ||||||
|     resources: |  | ||||||
|     - horizontalpodautoscalers |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: ["extensions", "networking.k8s.io"] |  | ||||||
|     resources: |  | ||||||
|     - ingresses |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: ["batch"] |  | ||||||
|     resources: |  | ||||||
|     - jobs |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: [""] |  | ||||||
|     resources: |  | ||||||
|     - limitranges |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: ["admissionregistration.k8s.io"] |  | ||||||
|     resources: |  | ||||||
|       - mutatingwebhookconfigurations |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: [""] |  | ||||||
|     resources: |  | ||||||
|     - namespaces |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: ["networking.k8s.io"] |  | ||||||
|     resources: |  | ||||||
|     - networkpolicies |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: [""] |  | ||||||
|     resources: |  | ||||||
|     - nodes |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: [""] |  | ||||||
|     resources: |  | ||||||
|     - persistentvolumeclaims |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: [""] |  | ||||||
|     resources: |  | ||||||
|     - persistentvolumes |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: ["policy"] |  | ||||||
|     resources: |  | ||||||
|       - poddisruptionbudgets |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: [""] |  | ||||||
|     resources: |  | ||||||
|     - pods |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: ["extensions", "apps"] |  | ||||||
|     resources: |  | ||||||
|     - replicasets |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: [""] |  | ||||||
|     resources: |  | ||||||
|     - replicationcontrollers |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: [""] |  | ||||||
|     resources: |  | ||||||
|     - resourcequotas |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: [""] |  | ||||||
|     resources: |  | ||||||
|     - secrets |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: [""] |  | ||||||
|     resources: |  | ||||||
|     - services |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: ["apps"] |  | ||||||
|     resources: |  | ||||||
|     - statefulsets |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: ["storage.k8s.io"] |  | ||||||
|     resources: |  | ||||||
|       - storageclasses |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: ["admissionregistration.k8s.io"] |  | ||||||
|     resources: |  | ||||||
|       - validatingwebhookconfigurations |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
|  |  | ||||||
|   - apiGroups: ["storage.k8s.io"] |  | ||||||
|     resources: |  | ||||||
|       - volumeattachments |  | ||||||
|     verbs: ["list", "watch"] |  | ||||||
| --- |  | ||||||
| apiVersion: rbac.authorization.k8s.io/v1 |  | ||||||
| kind: ClusterRoleBinding |  | ||||||
| metadata: |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: kube-state-metrics |  | ||||||
|   name: kube-state-metrics |  | ||||||
| roleRef: |  | ||||||
|   apiGroup: rbac.authorization.k8s.io |  | ||||||
|   kind: ClusterRole |  | ||||||
|   name: kube-state-metrics |  | ||||||
| subjects: |  | ||||||
| - kind: ServiceAccount |  | ||||||
|   name: kube-state-metrics |  | ||||||
|   namespace: monitoring |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: kube-state-metrics |  | ||||||
|   namespace: monitoring |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: kube-state-metrics |  | ||||||
|   annotations: |  | ||||||
|     prometheus.io/scrape: 'true' |  | ||||||
| spec: |  | ||||||
|   type: "ClusterIP" |  | ||||||
|   ports: |  | ||||||
|   - name: "http" |  | ||||||
|     protocol: TCP |  | ||||||
|     port: 8080 |  | ||||||
|     targetPort: 8080 |  | ||||||
|   selector: |  | ||||||
|     app.kubernetes.io/name: kube-state-metrics |  | ||||||
| --- |  | ||||||
| apiVersion: apps/v1 |  | ||||||
| kind: Deployment |  | ||||||
| metadata: |  | ||||||
|   name: kube-state-metrics |  | ||||||
|   namespace: monitoring |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: kube-state-metrics |  | ||||||
| spec: |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app.kubernetes.io/name: kube-state-metrics |  | ||||||
|   replicas: 1 |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       labels: |  | ||||||
|         app.kubernetes.io/name: kube-state-metrics |  | ||||||
|     spec: |  | ||||||
|       serviceAccountName: kube-state-metrics |  | ||||||
|       securityContext: |  | ||||||
|         fsGroup: 65534 |  | ||||||
|         runAsGroup: 65534 |  | ||||||
|         runAsUser: 65534 |  | ||||||
|       containers: |  | ||||||
|       - name: kube-state-metrics |  | ||||||
|         args: |  | ||||||
|         #- --resources=certificatesigningrequests |  | ||||||
|         - --resources=configmaps |  | ||||||
|         - --resources=cronjobs |  | ||||||
|         - --resources=daemonsets |  | ||||||
|         - --resources=deployments |  | ||||||
|         #- --resources=endpoints |  | ||||||
|         #- --resources=horizontalpodautoscalers |  | ||||||
|         - --resources=ingresses |  | ||||||
|         - --resources=jobs |  | ||||||
|         #- --resources=limitranges |  | ||||||
|         - --resources=mutatingwebhookconfigurations |  | ||||||
|         - --resources=namespaces |  | ||||||
|         #- --resources=networkpolicies |  | ||||||
|         - --resources=nodes |  | ||||||
|         - --resources=persistentvolumeclaims |  | ||||||
|         - --resources=persistentvolumes |  | ||||||
|         - --resources=poddisruptionbudgets |  | ||||||
|         - --resources=pods |  | ||||||
|         - --resources=replicasets |  | ||||||
|         #- --resources=replicationcontrollers |  | ||||||
|         #- --resources=resourcequotas |  | ||||||
|         - --resources=secrets |  | ||||||
|         - --resources=services |  | ||||||
|         - --resources=statefulsets |  | ||||||
|         - --resources=storageclasses |  | ||||||
|         - --resources=validatingwebhookconfigurations |  | ||||||
|         #- --resources=volumeattachments |  | ||||||
|         imagePullPolicy: IfNotPresent |  | ||||||
|         image: "registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.10.1" |  | ||||||
|         ports: |  | ||||||
|         - containerPort: 8080 |  | ||||||
|         livenessProbe: |  | ||||||
|           httpGet: |  | ||||||
|             path: /healthz |  | ||||||
|             port: 8080 |  | ||||||
|           initialDelaySeconds: 5 |  | ||||||
|           timeoutSeconds: 5 |  | ||||||
|         readinessProbe: |  | ||||||
|           httpGet: |  | ||||||
|             path: / |  | ||||||
|             port: 8080 |  | ||||||
|           initialDelaySeconds: 5 |  | ||||||
|           timeoutSeconds: 5 |  | ||||||
| --- |  | ||||||
| @@ -1,64 +0,0 @@ | |||||||
| apiVersion: v1 |  | ||||||
| kind: ServiceAccount |  | ||||||
| metadata: |  | ||||||
|   name: prometheus-server |  | ||||||
|   namespace: monitoring |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: prometheus |  | ||||||
|     app.kubernetes.io/component: server |  | ||||||
| --- |  | ||||||
| apiVersion: rbac.authorization.k8s.io/v1 |  | ||||||
| kind: ClusterRole |  | ||||||
| metadata: |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: prometheus |  | ||||||
|     app.kubernetes.io/component: server |  | ||||||
|   name: prometheus-server |  | ||||||
| rules: |  | ||||||
|   - apiGroups: |  | ||||||
|       - "" |  | ||||||
|     resources: |  | ||||||
|       - nodes |  | ||||||
|       - nodes/proxy |  | ||||||
|       - nodes/metrics |  | ||||||
|       - services |  | ||||||
|       - endpoints |  | ||||||
|       - pods |  | ||||||
|       - ingresses |  | ||||||
|       - configmaps |  | ||||||
|     verbs: |  | ||||||
|       - get |  | ||||||
|       - list |  | ||||||
|       - watch |  | ||||||
|   - apiGroups: |  | ||||||
|       - "extensions" |  | ||||||
|       - "networking.k8s.io" |  | ||||||
|     resources: |  | ||||||
|       - ingresses/status |  | ||||||
|       - ingresses |  | ||||||
|     verbs: |  | ||||||
|       - get |  | ||||||
|       - list |  | ||||||
|       - watch |  | ||||||
|   - nonResourceURLs: |  | ||||||
|       - "/metrics" |  | ||||||
|     verbs: |  | ||||||
|       - get |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| apiVersion: rbac.authorization.k8s.io/v1 |  | ||||||
| kind: ClusterRoleBinding |  | ||||||
| metadata: |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: prometheus |  | ||||||
|     app.kubernetes.io/component: server |  | ||||||
|   name: prometheus-server |  | ||||||
| subjects: |  | ||||||
|   - kind: ServiceAccount |  | ||||||
|     name: prometheus-server |  | ||||||
|     namespace: monitoring |  | ||||||
| roleRef: |  | ||||||
|   apiGroup: rbac.authorization.k8s.io |  | ||||||
|   kind: ClusterRole |  | ||||||
|   name: prometheus-server |  | ||||||
| --- |  | ||||||
| @@ -1,292 +0,0 @@ | |||||||
| apiVersion: v1 |  | ||||||
| kind: ServiceAccount |  | ||||||
| metadata: |  | ||||||
|   name: promtail |  | ||||||
|   namespace: monitoring |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: promtail |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: ConfigMap |  | ||||||
| metadata: |  | ||||||
|   name: promtail |  | ||||||
|   namespace: monitoring |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: promtail |  | ||||||
| data: |  | ||||||
|   promtail.yaml: | |  | ||||||
|     client: |  | ||||||
|       backoff_config: |  | ||||||
|         max_period: 5m |  | ||||||
|         max_retries: 10 |  | ||||||
|         min_period: 500ms |  | ||||||
|       batchsize: 1048576 |  | ||||||
|       batchwait: 1s |  | ||||||
|       external_labels: {} |  | ||||||
|       timeout: 10s |  | ||||||
|     positions: |  | ||||||
|       filename: /run/promtail/positions.yaml |  | ||||||
|     server: |  | ||||||
|       http_listen_port: 3101 |  | ||||||
|     clients: |  | ||||||
|     - url: http://loki-distributed.proxy-civo.svc:80/loki/api/v1/push |  | ||||||
|       external_labels: |  | ||||||
|         kubernetes_cluster: civo |  | ||||||
|     target_config: |  | ||||||
|       sync_period: 10s |  | ||||||
|     scrape_configs: |  | ||||||
|     - job_name: kubernetes-pods |  | ||||||
|       pipeline_stages: |  | ||||||
|         - docker: {} |  | ||||||
|         - cri: {} |  | ||||||
|         - match: |  | ||||||
|             selector: '{app="weave-net"}' |  | ||||||
|             action: drop |  | ||||||
|         - match: |  | ||||||
|             selector: '{filename=~".*konnectivity.*"}' |  | ||||||
|             action: drop |  | ||||||
|         - match: |  | ||||||
|             selector: '{name=~".*"} |~ ".*/healthz.*"' |  | ||||||
|             action: drop |  | ||||||
|         - match: |  | ||||||
|             selector: '{name=~".*"} |~ ".*/api/health.*"' |  | ||||||
|             action: drop |  | ||||||
|         - match: |  | ||||||
|             selector: '{name=~".*"} |~ ".*kube-probe/.*"' |  | ||||||
|             action: drop |  | ||||||
|         - match: |  | ||||||
|             selector: '{app="internal-proxy"}' |  | ||||||
|             action: drop |  | ||||||
|         - match: |  | ||||||
|             selector: '{app="non-auth-proxy"}' |  | ||||||
|             action: drop |  | ||||||
|         - match: |  | ||||||
|             selector: '{app="vpa"}' |  | ||||||
|             action: drop |  | ||||||
|         - match: |  | ||||||
|             selector: '{app="promtail"}' |  | ||||||
|             action: drop |  | ||||||
|         - match: |  | ||||||
|             selector: '{app="csi-node"}' |  | ||||||
|             action: drop |  | ||||||
|         - match: |  | ||||||
|             selector: '{app="victoria-metrics"}' |  | ||||||
|             action: drop |  | ||||||
|         - match: |  | ||||||
|             selector: '{app="git-sync"}' |  | ||||||
|             action: drop |  | ||||||
|         - match: |  | ||||||
|             selector: '{app="ingress-nginx"}' |  | ||||||
|             stages: |  | ||||||
|             - json: |  | ||||||
|                 expressions: |  | ||||||
|                   request_host: host |  | ||||||
|                   request_path: path |  | ||||||
|                   request_method: method |  | ||||||
|                   response_status: status |  | ||||||
|             - drop: |  | ||||||
|                 source: "request_path" |  | ||||||
|                 value:  "/healthz" |  | ||||||
|             - drop: |  | ||||||
|                 source: "request_path" |  | ||||||
|                 value:  "/health" |  | ||||||
|             - labels: |  | ||||||
|                 request_host: |  | ||||||
|                 request_method: |  | ||||||
|                 response_status: |  | ||||||
|         - match: |  | ||||||
|             selector: '{app="traefik"}' |  | ||||||
|             stages: |  | ||||||
|             - json: |  | ||||||
|                 expressions: |  | ||||||
|                   request_host: RequestHost |  | ||||||
|                   request_path: RequestPath |  | ||||||
|                   request_method: RequestMethod |  | ||||||
|                   response_status: OriginStatus |  | ||||||
|             - drop: |  | ||||||
|                 source: "request_path" |  | ||||||
|                 value:  "/healthz" |  | ||||||
|             - drop: |  | ||||||
|                 source: "request_path" |  | ||||||
|                 value:  "/health" |  | ||||||
|             - drop: |  | ||||||
|                 source: "request_path" |  | ||||||
|                 value:  "/ping" |  | ||||||
|             - labels: |  | ||||||
|                 request_host: |  | ||||||
|                 request_method: |  | ||||||
|                 response_status: |  | ||||||
|       kubernetes_sd_configs: |  | ||||||
|         - role: pod |  | ||||||
|       relabel_configs: |  | ||||||
|         - source_labels: |  | ||||||
|             - __meta_kubernetes_pod_controller_name |  | ||||||
|           regex: ([0-9a-z-.]+?)(-[0-9a-f]{8,10})? |  | ||||||
|           action: replace |  | ||||||
|           target_label: __tmp_controller_name |  | ||||||
|         - source_labels: |  | ||||||
|             - __meta_kubernetes_pod_label_app_kubernetes_io_name |  | ||||||
|             - __meta_kubernetes_pod_label_app |  | ||||||
|             - __tmp_controller_name |  | ||||||
|             - __meta_kubernetes_pod_name |  | ||||||
|           regex: ^;*([^;]+)(;.*)?$ |  | ||||||
|           action: replace |  | ||||||
|           target_label: app |  | ||||||
|         - source_labels: |  | ||||||
|             - __meta_kubernetes_pod_label_app_kubernetes_io_component |  | ||||||
|             - __meta_kubernetes_pod_label_component |  | ||||||
|           regex: ^;*([^;]+)(;.*)?$ |  | ||||||
|           action: replace |  | ||||||
|           target_label: component |  | ||||||
|         - action: replace |  | ||||||
|           source_labels: |  | ||||||
|             - __meta_kubernetes_pod_node_name |  | ||||||
|           target_label: node_name |  | ||||||
|         - action: replace |  | ||||||
|           source_labels: |  | ||||||
|             - __meta_kubernetes_namespace |  | ||||||
|           target_label: namespace |  | ||||||
|         - action: replace |  | ||||||
|           replacement: $1 |  | ||||||
|           separator: / |  | ||||||
|           source_labels: |  | ||||||
|             - namespace |  | ||||||
|             - app |  | ||||||
|           target_label: job |  | ||||||
|         - action: replace |  | ||||||
|           source_labels: |  | ||||||
|             - __meta_kubernetes_pod_name |  | ||||||
|           target_label: pod |  | ||||||
|         - action: replace |  | ||||||
|           source_labels: |  | ||||||
|             - __meta_kubernetes_pod_container_name |  | ||||||
|           target_label: container |  | ||||||
|         - action: replace |  | ||||||
|           replacement: /var/log/pods/*$1/*.log |  | ||||||
|           separator: / |  | ||||||
|           source_labels: |  | ||||||
|             - __meta_kubernetes_pod_uid |  | ||||||
|             - __meta_kubernetes_pod_container_name |  | ||||||
|           target_label: __path__ |  | ||||||
|         - action: replace |  | ||||||
|           replacement: /var/log/pods/*$1/*.log |  | ||||||
|           regex: true/(.*) |  | ||||||
|           separator: / |  | ||||||
|           source_labels: |  | ||||||
|             - __meta_kubernetes_pod_annotationpresent_kubernetes_io_config_hash |  | ||||||
|             - __meta_kubernetes_pod_annotation_kubernetes_io_config_hash |  | ||||||
|             - __meta_kubernetes_pod_container_name |  | ||||||
|           target_label: __path__ |  | ||||||
|         - action: labelmap |  | ||||||
|           regex: __meta_kubernetes_pod_label_(.+) |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| kind: ClusterRole |  | ||||||
| apiVersion: rbac.authorization.k8s.io/v1 |  | ||||||
| metadata: |  | ||||||
|   name: promtail-clusterrole |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: promtail |  | ||||||
| rules: |  | ||||||
| - apiGroups: [""] # "" indicates the core API group |  | ||||||
|   resources: |  | ||||||
|   - nodes |  | ||||||
|   - nodes/proxy |  | ||||||
|   - services |  | ||||||
|   - endpoints |  | ||||||
|   - pods |  | ||||||
|   verbs: ["get", "watch", "list"] |  | ||||||
| --- |  | ||||||
| kind: ClusterRoleBinding |  | ||||||
| apiVersion: rbac.authorization.k8s.io/v1 |  | ||||||
| metadata: |  | ||||||
|   name: promtail-clusterrolebinding |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: promtail |  | ||||||
| subjects: |  | ||||||
|   - kind: ServiceAccount |  | ||||||
|     name: promtail |  | ||||||
|     namespace: monitoring |  | ||||||
| roleRef: |  | ||||||
|   kind: ClusterRole |  | ||||||
|   name: promtail-clusterrole |  | ||||||
|   apiGroup: rbac.authorization.k8s.io |  | ||||||
| --- |  | ||||||
| apiVersion: apps/v1 |  | ||||||
| kind: DaemonSet |  | ||||||
| metadata: |  | ||||||
|   name: promtail |  | ||||||
|   namespace: monitoring |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: promtail |  | ||||||
|   annotations: |  | ||||||
|     configmap.reloader.stakater.com/reload: "promtail" |  | ||||||
| spec: |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app.kubernetes.io/name: promtail |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       labels: |  | ||||||
|         app.kubernetes.io/name: promtail |  | ||||||
|       annotations: |  | ||||||
|         prometheus.io/port: http-metrics |  | ||||||
|         prometheus.io/scrape: "true" |  | ||||||
|     spec: |  | ||||||
|       serviceAccountName: promtail |  | ||||||
|       containers: |  | ||||||
|         - name: promtail |  | ||||||
|           image: "grafana/promtail:2.9.4" |  | ||||||
|           imagePullPolicy: IfNotPresent |  | ||||||
|           args: |  | ||||||
|             - "-config.file=/etc/promtail/promtail.yaml" |  | ||||||
|           volumeMounts: |  | ||||||
|             - name: config |  | ||||||
|               mountPath: /etc/promtail |  | ||||||
|             - name: run |  | ||||||
|               mountPath: /run/promtail |  | ||||||
|             - mountPath: /var/lib/docker/containers |  | ||||||
|               name: docker |  | ||||||
|               readOnly: true |  | ||||||
|             - mountPath: /var/log/pods |  | ||||||
|               name: pods |  | ||||||
|               readOnly: true |  | ||||||
|           env: |  | ||||||
|             - name: HOSTNAME |  | ||||||
|               valueFrom: |  | ||||||
|                 fieldRef: |  | ||||||
|                   fieldPath: spec.nodeName |  | ||||||
|           ports: |  | ||||||
|             - containerPort: 3101 |  | ||||||
|               name: http-metrics |  | ||||||
|           securityContext: |  | ||||||
|             readOnlyRootFilesystem: true |  | ||||||
|             runAsGroup: 0 |  | ||||||
|             runAsUser: 0 |  | ||||||
|           readinessProbe: |  | ||||||
|             failureThreshold: 5 |  | ||||||
|             httpGet: |  | ||||||
|               path: /ready |  | ||||||
|               port: http-metrics |  | ||||||
|             initialDelaySeconds: 10 |  | ||||||
|             periodSeconds: 10 |  | ||||||
|             successThreshold: 1 |  | ||||||
|             timeoutSeconds: 1 |  | ||||||
|       tolerations: |  | ||||||
|         - effect: NoSchedule |  | ||||||
|           key: node-role.kubernetes.io/master |  | ||||||
|           operator: Exists |  | ||||||
|       volumes: |  | ||||||
|         - name: config |  | ||||||
|           configMap: |  | ||||||
|             name: promtail |  | ||||||
|         - name: run |  | ||||||
|           hostPath: |  | ||||||
|             path: /run/promtail |  | ||||||
|         - hostPath: |  | ||||||
|             path: /var/lib/docker/containers |  | ||||||
|           name: docker |  | ||||||
|         - hostPath: |  | ||||||
|             path: /var/log/pods |  | ||||||
|           name: pods |  | ||||||
| --- |  | ||||||
| @@ -1,163 +0,0 @@ | |||||||
| apiVersion: v1 |  | ||||||
| kind: ConfigMap |  | ||||||
| metadata: |  | ||||||
|   name: vmagent |  | ||||||
|   namespace: monitoring |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: victoria-metrics |  | ||||||
|     app.kubernetes.io/component: agent |  | ||||||
| data: |  | ||||||
|   prometheus.yml: | |  | ||||||
|     global: |  | ||||||
|       scrape_interval: 1m |  | ||||||
|       external_labels: |  | ||||||
|         source: civo |  | ||||||
|         agent: vmagent |  | ||||||
|     scrape_configs: |  | ||||||
|     - job_name: 'vmagent' |  | ||||||
|       static_configs: |  | ||||||
|         - targets: ['localhost:8429'] |  | ||||||
|     - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token |  | ||||||
|       job_name: kubernetes-nodes |  | ||||||
|       kubernetes_sd_configs: |  | ||||||
|       - role: node |  | ||||||
|       relabel_configs: |  | ||||||
|       - action: labelmap |  | ||||||
|         regex: __meta_kubernetes_node_label_(.+) |  | ||||||
|       - replacement: kubernetes.default.svc:443 |  | ||||||
|         target_label: __address__ |  | ||||||
|       - regex: (.+) |  | ||||||
|         replacement: /api/v1/nodes/$1/proxy/metrics |  | ||||||
|         source_labels: |  | ||||||
|         - __meta_kubernetes_node_name |  | ||||||
|         target_label: __metrics_path__ |  | ||||||
|       scheme: https |  | ||||||
|       tls_config: |  | ||||||
|         ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt |  | ||||||
|         insecure_skip_verify: true |  | ||||||
|     - job_name: kubernetes-service-endpoints |  | ||||||
|       kubernetes_sd_configs: |  | ||||||
|       - role: endpoints |  | ||||||
|       relabel_configs: |  | ||||||
|       - action: keep |  | ||||||
|         regex: true |  | ||||||
|         source_labels: |  | ||||||
|         - __meta_kubernetes_service_annotation_prometheus_io_scrape |  | ||||||
|       - action: replace |  | ||||||
|         regex: (https?) |  | ||||||
|         source_labels: |  | ||||||
|         - __meta_kubernetes_service_annotation_prometheus_io_scheme |  | ||||||
|         target_label: __scheme__ |  | ||||||
|       - action: replace |  | ||||||
|         regex: (.+) |  | ||||||
|         source_labels: |  | ||||||
|         - __meta_kubernetes_service_annotation_prometheus_io_path |  | ||||||
|         target_label: __metrics_path__ |  | ||||||
|       - action: replace |  | ||||||
|         regex: ([^:]+)(?::\d+)?;(\d+) |  | ||||||
|         replacement: $1:$2 |  | ||||||
|         source_labels: |  | ||||||
|         - __address__ |  | ||||||
|         - __meta_kubernetes_service_annotation_prometheus_io_port |  | ||||||
|         target_label: __address__ |  | ||||||
|       - action: labelmap |  | ||||||
|         regex: __meta_kubernetes_service_label_(.+) |  | ||||||
|       - action: replace |  | ||||||
|         source_labels: |  | ||||||
|         - __meta_kubernetes_namespace |  | ||||||
|         target_label: kubernetes_namespace |  | ||||||
|       - action: replace |  | ||||||
|         source_labels: |  | ||||||
|         - __meta_kubernetes_service_name |  | ||||||
|         target_label: kubernetes_name |  | ||||||
|       - action: replace |  | ||||||
|         source_labels: |  | ||||||
|         - __meta_kubernetes_endpoint_port_name |  | ||||||
|         target_label: kubernetes_endpoint_port_name |  | ||||||
|       - action: replace |  | ||||||
|         source_labels: |  | ||||||
|         - __meta_kubernetes_pod_node_name |  | ||||||
|         target_label: kubernetes_node |  | ||||||
|     - job_name: kubernetes-pods |  | ||||||
|       kubernetes_sd_configs: |  | ||||||
|       - role: pod |  | ||||||
|       relabel_configs: |  | ||||||
|       - action: keep |  | ||||||
|         regex: true |  | ||||||
|         source_labels: |  | ||||||
|         - __meta_kubernetes_pod_annotation_prometheus_io_scrape |  | ||||||
|       - action: replace |  | ||||||
|         regex: (.+) |  | ||||||
|         source_labels: |  | ||||||
|         - __meta_kubernetes_pod_annotation_prometheus_io_path |  | ||||||
|         target_label: __metrics_path__ |  | ||||||
|       - action: replace |  | ||||||
|         regex: ([^:]+)(?::\d+)?;(\d+) |  | ||||||
|         replacement: $1:$2 |  | ||||||
|         source_labels: |  | ||||||
|         - __address__ |  | ||||||
|         - __meta_kubernetes_pod_annotation_prometheus_io_port |  | ||||||
|         target_label: __address__ |  | ||||||
|       - action: labelmap |  | ||||||
|         regex: __meta_kubernetes_pod_label_(.+) |  | ||||||
|       - action: replace |  | ||||||
|         source_labels: |  | ||||||
|         - __meta_kubernetes_namespace |  | ||||||
|         target_label: kubernetes_namespace |  | ||||||
|       - action: replace |  | ||||||
|         source_labels: |  | ||||||
|         - __meta_kubernetes_pod_name |  | ||||||
|         target_label: kubernetes_pod_name |  | ||||||
|       - action: replace |  | ||||||
|         source_labels: |  | ||||||
|         - __meta_kubernetes_pod_container_port_name |  | ||||||
|         target_label: kubernetes_port_name |  | ||||||
|       - action: drop |  | ||||||
|         regex: Pending|Succeeded|Failed |  | ||||||
|         source_labels: |  | ||||||
|         - __meta_kubernetes_pod_phase |  | ||||||
|  |  | ||||||
|  |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| apiVersion: apps/v1 |  | ||||||
| kind: Deployment |  | ||||||
| metadata: |  | ||||||
|   name: vmagent |  | ||||||
|   namespace: monitoring |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: victoria-metrics |  | ||||||
|     app.kubernetes.io/component: agent |  | ||||||
|   annotations: |  | ||||||
|     configmap.reloader.stakater.com/reload: "vmagent" |  | ||||||
| spec: |  | ||||||
|   strategy: |  | ||||||
|     type: Recreate |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app.kubernetes.io/name: victoria-metrics |  | ||||||
|       app.kubernetes.io/component: agent |  | ||||||
|   replicas: 1 |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       labels: |  | ||||||
|         app.kubernetes.io/name: victoria-metrics |  | ||||||
|         app.kubernetes.io/component: agent |  | ||||||
|     spec: |  | ||||||
|       serviceAccountName: prometheus-server |  | ||||||
|       containers: |  | ||||||
|         - name: vmagent |  | ||||||
|           image: "victoriametrics/vmagent:v1.98.0" |  | ||||||
|           imagePullPolicy: "IfNotPresent" |  | ||||||
|           args: |  | ||||||
|             - -remoteWrite.url=http://vmcluster.proxy-civo.svc/insert/0/prometheus/ |  | ||||||
|             - -remoteWrite.showURL |  | ||||||
|             - -promscrape.config=/config/prometheus.yml |  | ||||||
|           volumeMounts: |  | ||||||
|             - name: config-volume |  | ||||||
|               mountPath: /config |  | ||||||
|       volumes: |  | ||||||
|         - name: config-volume |  | ||||||
|           configMap: |  | ||||||
|             name: vmagent |  | ||||||
| --- |  | ||||||
							
								
								
									
										87
									
								
								manifests/monitoring/cadvisor.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								manifests/monitoring/cadvisor.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,87 @@ | |||||||
|  | apiVersion: v1 | ||||||
|  | kind: ServiceAccount | ||||||
|  | metadata: | ||||||
|  |   labels: | ||||||
|  |     app: cadvisor | ||||||
|  |     app.kubernetes.io/name: cadvisor | ||||||
|  |   name: cadvisor | ||||||
|  |   namespace: monitoring | ||||||
|  | --- | ||||||
|  | apiVersion: apps/v1 | ||||||
|  | kind: DaemonSet | ||||||
|  | metadata: | ||||||
|  |   annotations: | ||||||
|  |     seccomp.security.alpha.kubernetes.io/pod: docker/default | ||||||
|  |   labels: | ||||||
|  |     app: cadvisor | ||||||
|  |     app.kubernetes.io/name: cadvisor | ||||||
|  |   name: cadvisor | ||||||
|  |   namespace: monitoring | ||||||
|  | spec: | ||||||
|  |   selector: | ||||||
|  |     matchLabels: | ||||||
|  |       app: cadvisor | ||||||
|  |       app.kubernetes.io/name: cadvisor | ||||||
|  |       name: cadvisor | ||||||
|  |   template: | ||||||
|  |     metadata: | ||||||
|  |       labels: | ||||||
|  |         app: cadvisor | ||||||
|  |         app.kubernetes.io/name: cadvisor | ||||||
|  |         name: cadvisor | ||||||
|  |       annotations: | ||||||
|  |         scheduler.alpha.kubernetes.io/critical-pod: '' | ||||||
|  |     spec: | ||||||
|  |       priorityClassName: system-node-critical | ||||||
|  |       tolerations: | ||||||
|  |         - key: "CriticalAddonsOnly" | ||||||
|  |           operator: "Exists" | ||||||
|  |       automountServiceAccountToken: false | ||||||
|  |       containers: | ||||||
|  |       - image: ghcr.io/google/cadvisor:v0.53.0 | ||||||
|  |         name: cadvisor | ||||||
|  |         ports: | ||||||
|  |         - containerPort: 8080 | ||||||
|  |           name: http | ||||||
|  |           protocol: TCP | ||||||
|  |         resources: | ||||||
|  |           limits: | ||||||
|  |             cpu: 800m | ||||||
|  |             memory: 2000Mi | ||||||
|  |           requests: | ||||||
|  |             cpu: 400m | ||||||
|  |             memory: 400Mi | ||||||
|  |         volumeMounts: | ||||||
|  |         - mountPath: /rootfs | ||||||
|  |           name: rootfs | ||||||
|  |           readOnly: true | ||||||
|  |         - mountPath: /var/run | ||||||
|  |           name: var-run | ||||||
|  |           readOnly: true | ||||||
|  |         - mountPath: /sys | ||||||
|  |           name: sys | ||||||
|  |           readOnly: true | ||||||
|  |         - mountPath: /var/lib/docker | ||||||
|  |           name: docker | ||||||
|  |           readOnly: true | ||||||
|  |         - mountPath: /dev/disk | ||||||
|  |           name: disk | ||||||
|  |           readOnly: true | ||||||
|  |       serviceAccountName: cadvisor | ||||||
|  |       terminationGracePeriodSeconds: 30 | ||||||
|  |       volumes: | ||||||
|  |       - hostPath: | ||||||
|  |           path: / | ||||||
|  |         name: rootfs | ||||||
|  |       - hostPath: | ||||||
|  |           path: /var/run | ||||||
|  |         name: var-run | ||||||
|  |       - hostPath: | ||||||
|  |           path: /sys | ||||||
|  |         name: sys | ||||||
|  |       - hostPath: | ||||||
|  |           path: /var/lib/docker | ||||||
|  |         name: docker | ||||||
|  |       - hostPath: | ||||||
|  |           path: /dev/disk | ||||||
|  |         name: disk | ||||||
							
								
								
									
										142
									
								
								manifests/monitoring/ephemeral-storage-exporter.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								manifests/monitoring/ephemeral-storage-exporter.yaml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,142 @@ | |||||||
|  | --- | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: ServiceAccount | ||||||
|  | metadata: | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: k8s-ephemeral-storage-metrics | ||||||
|  |   name: k8s-ephemeral-storage-metrics | ||||||
|  |   namespace: monitoring | ||||||
|  | --- | ||||||
|  | kind: ClusterRole | ||||||
|  | apiVersion: rbac.authorization.k8s.io/v1 | ||||||
|  | metadata: | ||||||
|  |   name: k8s-ephemeral-storage-metrics | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: k8s-ephemeral-storage-metrics | ||||||
|  | rules: | ||||||
|  |   - apiGroups: [""] | ||||||
|  |     resources: ["nodes","nodes/proxy", "nodes/stats", "pods"] | ||||||
|  |     verbs: ["get","list", "watch"] | ||||||
|  | --- | ||||||
|  | kind: ClusterRoleBinding | ||||||
|  | apiVersion: rbac.authorization.k8s.io/v1 | ||||||
|  | metadata: | ||||||
|  |   name: k8s-ephemeral-storage-metrics | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: k8s-ephemeral-storage-metrics | ||||||
|  | subjects: | ||||||
|  |   - kind: ServiceAccount | ||||||
|  |     name: k8s-ephemeral-storage-metrics | ||||||
|  |     namespace: monitoring | ||||||
|  | roleRef: | ||||||
|  |   kind: ClusterRole | ||||||
|  |   name: k8s-ephemeral-storage-metrics | ||||||
|  |   apiGroup: rbac.authorization.k8s.io | ||||||
|  | --- | ||||||
|  | apiVersion: v1 | ||||||
|  | kind: Service | ||||||
|  | metadata: | ||||||
|  |   name: k8s-ephemeral-storage-metrics | ||||||
|  |   namespace: monitoring | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: k8s-ephemeral-storage-metrics | ||||||
|  |   annotations: | ||||||
|  |     prometheus.io/scrape: "true" | ||||||
|  |     prometheus.io/port: "9100" | ||||||
|  | spec: | ||||||
|  |   type: ClusterIP | ||||||
|  |   selector: | ||||||
|  |     app.kubernetes.io/name: k8s-ephemeral-storage-metrics | ||||||
|  |   ports: | ||||||
|  |     - name: metrics | ||||||
|  |       port: 9100 | ||||||
|  |       protocol: TCP | ||||||
|  |       targetPort: metrics | ||||||
|  | --- | ||||||
|  | apiVersion: apps/v1 | ||||||
|  | kind: Deployment | ||||||
|  | metadata: | ||||||
|  |   name: k8s-ephemeral-storage-metrics | ||||||
|  |   namespace: monitoring | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/name: k8s-ephemeral-storage-metrics | ||||||
|  | spec: | ||||||
|  |   replicas: 1 | ||||||
|  |   revisionHistoryLimit: 3 | ||||||
|  |   selector: | ||||||
|  |     matchLabels: | ||||||
|  |       app.kubernetes.io/name: k8s-ephemeral-storage-metrics | ||||||
|  |   template: | ||||||
|  |     metadata: | ||||||
|  |       labels: | ||||||
|  |         app.kubernetes.io/name: k8s-ephemeral-storage-metrics | ||||||
|  |     spec: | ||||||
|  |       serviceAccountName: k8s-ephemeral-storage-metrics | ||||||
|  |       securityContext: | ||||||
|  |         runAsNonRoot: true | ||||||
|  |         seccompProfile: | ||||||
|  |           type: RuntimeDefault | ||||||
|  |       containers: | ||||||
|  |         - name: metrics | ||||||
|  |           image: ghcr.io/jmcgrath207/k8s-ephemeral-storage-metrics:1.18.2 | ||||||
|  |           imagePullPolicy: IfNotPresent | ||||||
|  |           ports: | ||||||
|  |             - name: metrics | ||||||
|  |               containerPort: 9100 | ||||||
|  |               protocol: TCP | ||||||
|  |           livenessProbe: | ||||||
|  |             failureThreshold: 10 | ||||||
|  |             httpGet: | ||||||
|  |               path: /metrics | ||||||
|  |               port: 9100 | ||||||
|  |               scheme: HTTP | ||||||
|  |             initialDelaySeconds: 10 | ||||||
|  |             periodSeconds: 10 | ||||||
|  |             successThreshold: 1 | ||||||
|  |             timeoutSeconds: 30 | ||||||
|  |           readinessProbe: | ||||||
|  |             failureThreshold: 10 | ||||||
|  |             httpGet: | ||||||
|  |               path: /metrics | ||||||
|  |               port: 9100 | ||||||
|  |               scheme: HTTP | ||||||
|  |             periodSeconds: 10 | ||||||
|  |             successThreshold: 1 | ||||||
|  |             timeoutSeconds: 1 | ||||||
|  |           securityContext: | ||||||
|  |             allowPrivilegeEscalation: false | ||||||
|  |             capabilities: | ||||||
|  |               drop: | ||||||
|  |               - ALL | ||||||
|  |             privileged: false | ||||||
|  |             readOnlyRootFilesystem: false | ||||||
|  |             runAsNonRoot: true | ||||||
|  |           env: | ||||||
|  |             - name: DEPLOY_TYPE | ||||||
|  |               value: "Deployment" | ||||||
|  |             - name: SCRAPE_INTERVAL | ||||||
|  |               value: "15" | ||||||
|  |             - name: MAX_NODE_CONCURRENCY | ||||||
|  |               value: "10" | ||||||
|  |             - name: CLIENT_GO_QPS | ||||||
|  |               value: "5" | ||||||
|  |             - name: CLIENT_GO_BURST | ||||||
|  |               value: "10" | ||||||
|  |             - name: LOG_LEVEL | ||||||
|  |               value: "info" | ||||||
|  |             - name: EPHEMERAL_STORAGE_POD_USAGE | ||||||
|  |               value: "true" | ||||||
|  |             - name: EPHEMERAL_STORAGE_NODE_AVAILABLE | ||||||
|  |               value: "true" | ||||||
|  |             - name: EPHEMERAL_STORAGE_NODE_CAPACITY | ||||||
|  |               value: "true" | ||||||
|  |             - name: EPHEMERAL_STORAGE_NODE_PERCENTAGE | ||||||
|  |               value: "true" | ||||||
|  |             - name: EPHEMERAL_STORAGE_CONTAINER_LIMIT_PERCENTAGE | ||||||
|  |               value: "true" | ||||||
|  |             - name: EPHEMERAL_STORAGE_CONTAINER_VOLUME_USAGE | ||||||
|  |               value: "true" | ||||||
|  |             - name: EPHEMERAL_STORAGE_CONTAINER_VOLUME_LIMITS_PERCENTAGE | ||||||
|  |               value: "true" | ||||||
|  |             - name: EPHEMERAL_STORAGE_INODES | ||||||
|  |               value: "true" | ||||||
| @@ -1,69 +0,0 @@ | |||||||
| apiVersion: networking.k8s.io/v1 |  | ||||||
| kind: Ingress |  | ||||||
| metadata: |  | ||||||
|   name: grafana |  | ||||||
|   namespace: auth-proxy |  | ||||||
|   labels: |  | ||||||
|     app: grafana |  | ||||||
|   annotations: |  | ||||||
|     cert-manager.io/cluster-issuer: letsencrypt |  | ||||||
|     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" |  | ||||||
| spec: |  | ||||||
|   ingressClassName: nginx |  | ||||||
|   tls: |  | ||||||
|   - hosts: |  | ||||||
|     - grafana.cluster.fun |  | ||||||
|     secretName: grafana-ingress |  | ||||||
|   rules: |  | ||||||
|   - host: grafana.cluster.fun |  | ||||||
|     http: |  | ||||||
|       paths: |  | ||||||
|       - path: / |  | ||||||
|         pathType: ImplementationSpecific |  | ||||||
|         backend: |  | ||||||
|           service: |  | ||||||
|             name: auth-proxy |  | ||||||
|             port: |  | ||||||
|               number: 80 |  | ||||||
| --- |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Secret |  | ||||||
| metadata: |  | ||||||
|   name: prometheus-credentials |  | ||||||
|   namespace: monitoring |  | ||||||
|   annotations: |  | ||||||
|     kube-1password: m7c2n5gqybiyxj6ylydju2nljm |  | ||||||
|     kube-1password/vault: Kubernetes |  | ||||||
|     kube-1password/password-key: auth |  | ||||||
| type: Opaque |  | ||||||
| --- |  | ||||||
| apiVersion: networking.k8s.io/v1 |  | ||||||
| kind: Ingress |  | ||||||
| metadata: |  | ||||||
|   name: prometheus-cloud |  | ||||||
|   namespace: monitoring |  | ||||||
|   labels: |  | ||||||
|     app: prometheus-cloud |  | ||||||
|   annotations: |  | ||||||
|     cert-manager.io/cluster-issuer: letsencrypt |  | ||||||
|     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" |  | ||||||
|     nginx.ingress.kubernetes.io/auth-type: basic |  | ||||||
|     nginx.ingress.kubernetes.io/auth-secret: prometheus-credentials |  | ||||||
|     nginx.ingress.kubernetes.io/auth-secret-type: auth-file |  | ||||||
| spec: |  | ||||||
|   ingressClassName: nginx |  | ||||||
|   tls: |  | ||||||
|   - hosts: |  | ||||||
|     - prometheus-cloud.cluster.fun |  | ||||||
|     secretName: prometheus-cloud-ingress |  | ||||||
|   rules: |  | ||||||
|   - host: prometheus-cloud.cluster.fun |  | ||||||
|     http: |  | ||||||
|       paths: |  | ||||||
|       - path: / |  | ||||||
|         pathType: ImplementationSpecific |  | ||||||
|         backend: |  | ||||||
|           service: |  | ||||||
|             name: prometheus-server |  | ||||||
|             port: |  | ||||||
|               number: 80 |  | ||||||
| @@ -201,6 +201,7 @@ spec: | |||||||
|       labels: |       labels: | ||||||
|         app.kubernetes.io/name: kube-state-metrics |         app.kubernetes.io/name: kube-state-metrics | ||||||
|     spec: |     spec: | ||||||
|  |       priorityClassName: system-cluster-critical | ||||||
|       serviceAccountName: kube-state-metrics |       serviceAccountName: kube-state-metrics | ||||||
|       securityContext: |       securityContext: | ||||||
|         fsGroup: 65534 |         fsGroup: 65534 | ||||||
| @@ -237,7 +238,7 @@ spec: | |||||||
|         - --resources=validatingwebhookconfigurations |         - --resources=validatingwebhookconfigurations | ||||||
|         #- --resources=volumeattachments |         #- --resources=volumeattachments | ||||||
|         imagePullPolicy: IfNotPresent |         imagePullPolicy: IfNotPresent | ||||||
|         image: "registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.10.1" |         image: "registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.17.0" | ||||||
|         ports: |         ports: | ||||||
|         - containerPort: 8080 |         - containerPort: 8080 | ||||||
|         livenessProbe: |         livenessProbe: | ||||||
|   | |||||||
| @@ -51,10 +51,11 @@ spec: | |||||||
|         app.kubernetes.io/name: prometheus |         app.kubernetes.io/name: prometheus | ||||||
|         app.kubernetes.io/component: node-exporter |         app.kubernetes.io/component: node-exporter | ||||||
|     spec: |     spec: | ||||||
|  |       priorityClassName: system-node-critical | ||||||
|       serviceAccountName: prometheus-node-exporter |       serviceAccountName: prometheus-node-exporter | ||||||
|       containers: |       containers: | ||||||
|         - name: prometheus-node-exporter |         - name: prometheus-node-exporter | ||||||
|           image: "prom/node-exporter:v1.7.0" |           image: "prom/node-exporter:v1.10.2" | ||||||
|           imagePullPolicy: "IfNotPresent" |           imagePullPolicy: "IfNotPresent" | ||||||
|           args: |           args: | ||||||
|             - --path.procfs=/host/proc |             - --path.procfs=/host/proc | ||||||
|   | |||||||
| @@ -212,10 +212,11 @@ spec: | |||||||
|         prometheus.io/port: http-metrics |         prometheus.io/port: http-metrics | ||||||
|         prometheus.io/scrape: "true" |         prometheus.io/scrape: "true" | ||||||
|     spec: |     spec: | ||||||
|  |       priorityClassName: system-node-critical | ||||||
|       serviceAccountName: promtail |       serviceAccountName: promtail | ||||||
|       containers: |       containers: | ||||||
|         - name: promtail |         - name: promtail | ||||||
|           image: "grafana/promtail:2.9.4" |           image: "grafana/promtail:3.5.7" | ||||||
|           imagePullPolicy: IfNotPresent |           imagePullPolicy: IfNotPresent | ||||||
|           args: |           args: | ||||||
|             - "-config.file=/etc/promtail/promtail.yaml" |             - "-config.file=/etc/promtail/promtail.yaml" | ||||||
|   | |||||||
| @@ -17,6 +17,11 @@ data: | |||||||
|     - job_name: 'vmagent' |     - job_name: 'vmagent' | ||||||
|       static_configs: |       static_configs: | ||||||
|         - targets: ['localhost:8429'] |         - targets: ['localhost:8429'] | ||||||
|  |       relabel_configs: | ||||||
|  |       - action: drop | ||||||
|  |         source_labels: [__name__] | ||||||
|  |         regex: "flag" | ||||||
|  |  | ||||||
|     - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token |     - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token | ||||||
|       job_name: kubernetes-nodes |       job_name: kubernetes-nodes | ||||||
|       kubernetes_sd_configs: |       kubernetes_sd_configs: | ||||||
| @@ -36,6 +41,38 @@ data: | |||||||
|         ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt |         ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt | ||||||
|         insecure_skip_verify: true |         insecure_skip_verify: true | ||||||
|  |  | ||||||
|  |     - job_name: cadvisor | ||||||
|  |       bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token | ||||||
|  |       scheme: https | ||||||
|  |       tls_config: | ||||||
|  |         ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt | ||||||
|  |         insecure_skip_verify: true | ||||||
|  |       kubernetes_sd_configs: | ||||||
|  |       - role: node | ||||||
|  |       relabel_configs: | ||||||
|  |       - action: labelmap | ||||||
|  |         regex: __meta_kubernetes_node_label_(.+) | ||||||
|  |       - replacement: kubernetes.default.svc:443 | ||||||
|  |         target_label: __address__ | ||||||
|  |       - source_labels: [__meta_kubernetes_node_name] | ||||||
|  |         regex: (.+) | ||||||
|  |         target_label: __metrics_path__ | ||||||
|  |         replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor | ||||||
|  |       # Drop high cardinality labels | ||||||
|  |       - action: labeldrop | ||||||
|  |         regex: id | ||||||
|  |       # Drop unneeded labels | ||||||
|  |       - action: labeldrop | ||||||
|  |         regex: beta_kubernetes_io_os | ||||||
|  |       - action: labeldrop | ||||||
|  |         regex: beta_kubernetes_io_arch | ||||||
|  |       - action: labeldrop | ||||||
|  |         regex: kubernetes_io_arch | ||||||
|  |       - action: labeldrop | ||||||
|  |         regex: kubernetes_io_os | ||||||
|  |       - action: labeldrop | ||||||
|  |         regex: topology_jiva_openebs_io_nodeName | ||||||
|  |  | ||||||
|     - job_name: kubernetes-service-endpoints |     - job_name: kubernetes-service-endpoints | ||||||
|       kubernetes_sd_configs: |       kubernetes_sd_configs: | ||||||
|       - role: endpoints |       - role: endpoints | ||||||
| @@ -78,6 +115,21 @@ data: | |||||||
|         source_labels: |         source_labels: | ||||||
|         - __meta_kubernetes_pod_node_name |         - __meta_kubernetes_pod_node_name | ||||||
|         target_label: kubernetes_node |         target_label: kubernetes_node | ||||||
|  |       # We don't care about the flag metrics from VM | ||||||
|  |       - action: drop | ||||||
|  |         source_labels: [__name__] | ||||||
|  |         regex: "flag" | ||||||
|  |       # Drop unneeded labels | ||||||
|  |       - action: labeldrop | ||||||
|  |         regex: beta_kubernetes_io_os | ||||||
|  |       - action: labeldrop | ||||||
|  |         regex: beta_kubernetes_io_arch | ||||||
|  |       - action: labeldrop | ||||||
|  |         regex: kubernetes_io_arch | ||||||
|  |       - action: labeldrop | ||||||
|  |         regex: kubernetes_io_os | ||||||
|  |       - action: labeldrop | ||||||
|  |         regex: topology_jiva_openebs_io_nodeName | ||||||
|  |  | ||||||
|     - job_name: kubernetes-pods |     - job_name: kubernetes-pods | ||||||
|       kubernetes_sd_configs: |       kubernetes_sd_configs: | ||||||
| @@ -116,6 +168,17 @@ data: | |||||||
|         regex: Pending|Succeeded|Failed |         regex: Pending|Succeeded|Failed | ||||||
|         source_labels: |         source_labels: | ||||||
|         - __meta_kubernetes_pod_phase |         - __meta_kubernetes_pod_phase | ||||||
|  |       # Drop unneeded labels | ||||||
|  |       - action: labeldrop | ||||||
|  |         regex: beta_kubernetes_io_os | ||||||
|  |       - action: labeldrop | ||||||
|  |         regex: beta_kubernetes_io_arch | ||||||
|  |       - action: labeldrop | ||||||
|  |         regex: kubernetes_io_arch | ||||||
|  |       - action: labeldrop | ||||||
|  |         regex: kubernetes_io_os | ||||||
|  |       - action: labeldrop | ||||||
|  |         regex: topology_jiva_openebs_io_nodeName | ||||||
|  |  | ||||||
|     - job_name: 'node-exporter' |     - job_name: 'node-exporter' | ||||||
|       kubernetes_sd_configs: |       kubernetes_sd_configs: | ||||||
| @@ -150,10 +213,11 @@ spec: | |||||||
|         app.kubernetes.io/name: victoria-metrics |         app.kubernetes.io/name: victoria-metrics | ||||||
|         app.kubernetes.io/component: agent |         app.kubernetes.io/component: agent | ||||||
|     spec: |     spec: | ||||||
|  |       priorityClassName: system-cluster-critical | ||||||
|       serviceAccountName: prometheus-server |       serviceAccountName: prometheus-server | ||||||
|       containers: |       containers: | ||||||
|         - name: vmagent |         - name: vmagent | ||||||
|           image: "victoriametrics/vmagent:v1.98.0" |           image: "victoriametrics/vmagent:v1.128.0" | ||||||
|           imagePullPolicy: "IfNotPresent" |           imagePullPolicy: "IfNotPresent" | ||||||
|           args: |           args: | ||||||
|             - -remoteWrite.url=http://vmcluster.auth-proxy.svc/insert/0/prometheus/ |             - -remoteWrite.url=http://vmcluster.auth-proxy.svc/insert/0/prometheus/ | ||||||
|   | |||||||
| @@ -201,9 +201,10 @@ spec: | |||||||
|         app.kubernetes.io/component: app |         app.kubernetes.io/component: app | ||||||
|         nextcloud-nextcloud-redis-client: "true" |         nextcloud-nextcloud-redis-client: "true" | ||||||
|     spec: |     spec: | ||||||
|  |       priorityClassName: critical | ||||||
|       containers: |       containers: | ||||||
|       - name: nextcloud |       - name: nextcloud | ||||||
|         image: "nextcloud:28.0.2-apache" |         image: "nextcloud:32.0.1-apache" | ||||||
|         imagePullPolicy: IfNotPresent |         imagePullPolicy: IfNotPresent | ||||||
|         env: |         env: | ||||||
|         - name: SQLITE_DATABASE |         - name: SQLITE_DATABASE | ||||||
| @@ -282,7 +283,11 @@ spec: | |||||||
|           periodSeconds: 10 |           periodSeconds: 10 | ||||||
|         resources: |         resources: | ||||||
|           requests: |           requests: | ||||||
|             memory: 450Mi |             cpu: 1038m | ||||||
|  |             memory: 765M | ||||||
|  |           limits: | ||||||
|  |             cpu: 1200m | ||||||
|  |             memory: 765M | ||||||
|         volumeMounts: |         volumeMounts: | ||||||
|         - name: nextcloud-data |         - name: nextcloud-data | ||||||
|           mountPath: /var/www/ |           mountPath: /var/www/ | ||||||
| @@ -374,7 +379,7 @@ spec: | |||||||
|           restartPolicy: Never |           restartPolicy: Never | ||||||
|           containers: |           containers: | ||||||
|             - name: nextcloud |             - name: nextcloud | ||||||
|               image: "nextcloud:28.0.2-apache" |               image: "nextcloud:32.0.1-apache" | ||||||
|               imagePullPolicy: IfNotPresent |               imagePullPolicy: IfNotPresent | ||||||
|               command: [ "curl" ] |               command: [ "curl" ] | ||||||
|               args: |               args: | ||||||
|   | |||||||
| @@ -1,27 +1,3 @@ | |||||||
| apiVersion: v1 |  | ||||||
| kind: PersistentVolume |  | ||||||
| metadata: |  | ||||||
|   annotations: |  | ||||||
|     pv.kubernetes.io/provisioned-by: csi.scaleway.com |  | ||||||
|   finalizers: |  | ||||||
|   - kubernetes.io/pv-protection |  | ||||||
|   - external-attacher/csi-scaleway-com |  | ||||||
|   name: pvc-db95ada8-d8e4-400a-acea-7d594ecffa36 |  | ||||||
| spec: |  | ||||||
|   accessModes: |  | ||||||
|   - ReadWriteOnce |  | ||||||
|   capacity: |  | ||||||
|     storage: 5Gi |  | ||||||
|   csi: |  | ||||||
|     driver: csi.scaleway.com |  | ||||||
|     fsType: ext4 |  | ||||||
|     volumeAttributes: |  | ||||||
|       storage.kubernetes.io/csiProvisionerIdentity: 1588413765965-1847-csi.scaleway.com |  | ||||||
|     volumeHandle: fr-par-1/5c16182d-f742-4ae5-a70c-386aa356f906 |  | ||||||
|   persistentVolumeReclaimPolicy: Retain |  | ||||||
|   storageClassName: scw-bssd-retain |  | ||||||
|   volumeMode: Filesystem |  | ||||||
| --- |  | ||||||
| kind: PersistentVolumeClaim | kind: PersistentVolumeClaim | ||||||
| apiVersion: v1 | apiVersion: v1 | ||||||
| metadata: | metadata: | ||||||
| @@ -38,6 +14,5 @@ spec: | |||||||
|   resources: |   resources: | ||||||
|     requests: |     requests: | ||||||
|       storage: "5Gi" |       storage: "5Gi" | ||||||
|   storageClassName: "scw-bssd-retain" |   storageClassName: sbs-default-retain | ||||||
|   volumeName: pvc-db95ada8-d8e4-400a-acea-7d594ecffa36 |  | ||||||
| --- | --- | ||||||
|   | |||||||
| @@ -15,7 +15,6 @@ metadata: | |||||||
|     app.kubernetes.io/instance: ingress-nginx |     app.kubernetes.io/instance: ingress-nginx | ||||||
|     app.kubernetes.io/name: ingress-nginx |     app.kubernetes.io/name: ingress-nginx | ||||||
|     app.kubernetes.io/part-of: ingress-nginx |     app.kubernetes.io/part-of: ingress-nginx | ||||||
|     app.kubernetes.io/version: 1.5.1 |  | ||||||
|   name: ingress-nginx |   name: ingress-nginx | ||||||
|   namespace: ingress-nginx |   namespace: ingress-nginx | ||||||
| --- | --- | ||||||
| @@ -27,7 +26,6 @@ metadata: | |||||||
|     app.kubernetes.io/instance: ingress-nginx |     app.kubernetes.io/instance: ingress-nginx | ||||||
|     app.kubernetes.io/name: ingress-nginx |     app.kubernetes.io/name: ingress-nginx | ||||||
|     app.kubernetes.io/part-of: ingress-nginx |     app.kubernetes.io/part-of: ingress-nginx | ||||||
|     app.kubernetes.io/version: 1.5.1 |  | ||||||
|   name: ingress-nginx-admission |   name: ingress-nginx-admission | ||||||
|   namespace: ingress-nginx |   namespace: ingress-nginx | ||||||
| --- | --- | ||||||
| @@ -39,7 +37,6 @@ metadata: | |||||||
|     app.kubernetes.io/instance: ingress-nginx |     app.kubernetes.io/instance: ingress-nginx | ||||||
|     app.kubernetes.io/name: ingress-nginx |     app.kubernetes.io/name: ingress-nginx | ||||||
|     app.kubernetes.io/part-of: ingress-nginx |     app.kubernetes.io/part-of: ingress-nginx | ||||||
|     app.kubernetes.io/version: 1.5.1 |  | ||||||
|   name: ingress-nginx |   name: ingress-nginx | ||||||
|   namespace: ingress-nginx |   namespace: ingress-nginx | ||||||
| rules: | rules: | ||||||
| @@ -144,7 +141,6 @@ metadata: | |||||||
|     app.kubernetes.io/instance: ingress-nginx |     app.kubernetes.io/instance: ingress-nginx | ||||||
|     app.kubernetes.io/name: ingress-nginx |     app.kubernetes.io/name: ingress-nginx | ||||||
|     app.kubernetes.io/part-of: ingress-nginx |     app.kubernetes.io/part-of: ingress-nginx | ||||||
|     app.kubernetes.io/version: 1.5.1 |  | ||||||
|   name: ingress-nginx-admission |   name: ingress-nginx-admission | ||||||
|   namespace: ingress-nginx |   namespace: ingress-nginx | ||||||
| rules: | rules: | ||||||
| @@ -163,7 +159,6 @@ metadata: | |||||||
|     app.kubernetes.io/instance: ingress-nginx |     app.kubernetes.io/instance: ingress-nginx | ||||||
|     app.kubernetes.io/name: ingress-nginx |     app.kubernetes.io/name: ingress-nginx | ||||||
|     app.kubernetes.io/part-of: ingress-nginx |     app.kubernetes.io/part-of: ingress-nginx | ||||||
|     app.kubernetes.io/version: 1.5.1 |  | ||||||
|   name: ingress-nginx |   name: ingress-nginx | ||||||
| rules: | rules: | ||||||
| - apiGroups: | - apiGroups: | ||||||
| @@ -245,7 +240,6 @@ metadata: | |||||||
|     app.kubernetes.io/instance: ingress-nginx |     app.kubernetes.io/instance: ingress-nginx | ||||||
|     app.kubernetes.io/name: ingress-nginx |     app.kubernetes.io/name: ingress-nginx | ||||||
|     app.kubernetes.io/part-of: ingress-nginx |     app.kubernetes.io/part-of: ingress-nginx | ||||||
|     app.kubernetes.io/version: 1.5.1 |  | ||||||
|   name: ingress-nginx-admission |   name: ingress-nginx-admission | ||||||
| rules: | rules: | ||||||
| - apiGroups: | - apiGroups: | ||||||
| @@ -264,7 +258,6 @@ metadata: | |||||||
|     app.kubernetes.io/instance: ingress-nginx |     app.kubernetes.io/instance: ingress-nginx | ||||||
|     app.kubernetes.io/name: ingress-nginx |     app.kubernetes.io/name: ingress-nginx | ||||||
|     app.kubernetes.io/part-of: ingress-nginx |     app.kubernetes.io/part-of: ingress-nginx | ||||||
|     app.kubernetes.io/version: 1.5.1 |  | ||||||
|   name: ingress-nginx |   name: ingress-nginx | ||||||
|   namespace: ingress-nginx |   namespace: ingress-nginx | ||||||
| roleRef: | roleRef: | ||||||
| @@ -284,7 +277,6 @@ metadata: | |||||||
|     app.kubernetes.io/instance: ingress-nginx |     app.kubernetes.io/instance: ingress-nginx | ||||||
|     app.kubernetes.io/name: ingress-nginx |     app.kubernetes.io/name: ingress-nginx | ||||||
|     app.kubernetes.io/part-of: ingress-nginx |     app.kubernetes.io/part-of: ingress-nginx | ||||||
|     app.kubernetes.io/version: 1.5.1 |  | ||||||
|   name: ingress-nginx-admission |   name: ingress-nginx-admission | ||||||
|   namespace: ingress-nginx |   namespace: ingress-nginx | ||||||
| roleRef: | roleRef: | ||||||
| @@ -303,7 +295,6 @@ metadata: | |||||||
|     app.kubernetes.io/instance: ingress-nginx |     app.kubernetes.io/instance: ingress-nginx | ||||||
|     app.kubernetes.io/name: ingress-nginx |     app.kubernetes.io/name: ingress-nginx | ||||||
|     app.kubernetes.io/part-of: ingress-nginx |     app.kubernetes.io/part-of: ingress-nginx | ||||||
|     app.kubernetes.io/version: 1.5.1 |  | ||||||
|   name: ingress-nginx |   name: ingress-nginx | ||||||
| roleRef: | roleRef: | ||||||
|   apiGroup: rbac.authorization.k8s.io |   apiGroup: rbac.authorization.k8s.io | ||||||
| @@ -322,7 +313,6 @@ metadata: | |||||||
|     app.kubernetes.io/instance: ingress-nginx |     app.kubernetes.io/instance: ingress-nginx | ||||||
|     app.kubernetes.io/name: ingress-nginx |     app.kubernetes.io/name: ingress-nginx | ||||||
|     app.kubernetes.io/part-of: ingress-nginx |     app.kubernetes.io/part-of: ingress-nginx | ||||||
|     app.kubernetes.io/version: 1.5.1 |  | ||||||
|   name: ingress-nginx-admission |   name: ingress-nginx-admission | ||||||
| roleRef: | roleRef: | ||||||
|   apiGroup: rbac.authorization.k8s.io |   apiGroup: rbac.authorization.k8s.io | ||||||
| @@ -335,12 +325,34 @@ subjects: | |||||||
| --- | --- | ||||||
| apiVersion: v1 | apiVersion: v1 | ||||||
| data: | data: | ||||||
|  |   annotations-risk-level: Critical | ||||||
|   allow-snippet-annotations: "true" |   allow-snippet-annotations: "true" | ||||||
|   use-proxy-protocol: "true" |   use-proxy-protocol: "true" | ||||||
|   log-format-upstream: '{"time": "$time_iso8601", "request_id": "$req_id", "remote_user": "$remote_user", "bytes_sent": $bytes_sent, "request_time": $request_time, "status": $status, "host": "$host", "request_proto": "$server_protocol", "path": "$uri", "request_query": "$args", "request_length": $request_length, "duration": $request_time,"method": "$request_method", "http_referrer": "$http_referer", "http_user_agent": "$http_user_agent", "redirect_location": "$redirect_location" }' |   log-format-upstream: '{"time": "$time_iso8601", "request_id": "$req_id", "remote_user": "$remote_user", "remote_addr_masked": "$remote_addr_masked", "bytes_sent": $bytes_sent, "request_time": $request_time, "status": $status, "host": "$host", "request_proto": "$server_protocol", "path": "$uri", "request_query": "$args", "request_length": $request_length, "duration": $request_time,"method": "$request_method", "http_referrer": "$http_referer", "http_user_agent": "$http_user_agent", "redirect_location": "$redirect_location" }' | ||||||
|   plugins: "redirect_location" |   plugins: "redirect_location" | ||||||
|   location-snippet: | |   location-snippet: | | ||||||
|     set $redirect_location ''; |     set $redirect_location ''; | ||||||
|  |   server-snippet: | | ||||||
|  |     set_by_lua_block $remote_addr_masked { | ||||||
|  |       local bit = require("bit") | ||||||
|  |  | ||||||
|  |       local hval = 2166136261 | ||||||
|  |       local rem_addr = ngx.var.remote_addr | ||||||
|  |  | ||||||
|  |       for w in rem_addr:gmatch(".") do | ||||||
|  |         hval = bit.bxor(hval,string.byte(w)) | ||||||
|  |         hval = hval + bit.lshift(hval,1) + bit.lshift(hval,4) + bit.lshift(hval,7) + bit.lshift(hval,8) + bit.lshift(hval,24) | ||||||
|  |       end | ||||||
|  |       if hval < 0 then | ||||||
|  |         hval = bit.bnot(hval) | ||||||
|  |       end | ||||||
|  |       local octet1 = bit.band(bit.rshift(hval,24), 255) | ||||||
|  |       local octet2 = bit.band(bit.rshift(hval,16), 255) | ||||||
|  |       local octet3 = bit.band(bit.rshift(hval,8), 255) | ||||||
|  |       local octet4 = bit.band(hval, 255) | ||||||
|  |       local op = octet1 .. "." .. octet2 .. "." .. octet3 .. "." .. octet4 | ||||||
|  |       return op | ||||||
|  |     } | ||||||
| kind: ConfigMap | kind: ConfigMap | ||||||
| metadata: | metadata: | ||||||
|   labels: |   labels: | ||||||
| @@ -348,7 +360,6 @@ metadata: | |||||||
|     app.kubernetes.io/instance: ingress-nginx |     app.kubernetes.io/instance: ingress-nginx | ||||||
|     app.kubernetes.io/name: ingress-nginx |     app.kubernetes.io/name: ingress-nginx | ||||||
|     app.kubernetes.io/part-of: ingress-nginx |     app.kubernetes.io/part-of: ingress-nginx | ||||||
|     app.kubernetes.io/version: 1.5.1 |  | ||||||
|   name: ingress-nginx-controller |   name: ingress-nginx-controller | ||||||
|   namespace: ingress-nginx |   namespace: ingress-nginx | ||||||
| --- | --- | ||||||
| @@ -384,7 +395,6 @@ metadata: | |||||||
|     app.kubernetes.io/instance: ingress-nginx |     app.kubernetes.io/instance: ingress-nginx | ||||||
|     app.kubernetes.io/name: ingress-nginx |     app.kubernetes.io/name: ingress-nginx | ||||||
|     app.kubernetes.io/part-of: ingress-nginx |     app.kubernetes.io/part-of: ingress-nginx | ||||||
|     app.kubernetes.io/version: 1.5.1 |  | ||||||
|   name: ingress-nginx-controller |   name: ingress-nginx-controller | ||||||
|   namespace: ingress-nginx |   namespace: ingress-nginx | ||||||
| spec: | spec: | ||||||
| @@ -417,7 +427,6 @@ metadata: | |||||||
|     app.kubernetes.io/instance: ingress-nginx |     app.kubernetes.io/instance: ingress-nginx | ||||||
|     app.kubernetes.io/name: ingress-nginx |     app.kubernetes.io/name: ingress-nginx | ||||||
|     app.kubernetes.io/part-of: ingress-nginx |     app.kubernetes.io/part-of: ingress-nginx | ||||||
|     app.kubernetes.io/version: 1.5.1 |  | ||||||
|   name: ingress-nginx-controller-admission |   name: ingress-nginx-controller-admission | ||||||
|   namespace: ingress-nginx |   namespace: ingress-nginx | ||||||
| spec: | spec: | ||||||
| @@ -440,7 +449,6 @@ metadata: | |||||||
|     app.kubernetes.io/instance: ingress-nginx |     app.kubernetes.io/instance: ingress-nginx | ||||||
|     app.kubernetes.io/name: ingress-nginx |     app.kubernetes.io/name: ingress-nginx | ||||||
|     app.kubernetes.io/part-of: ingress-nginx |     app.kubernetes.io/part-of: ingress-nginx | ||||||
|     app.kubernetes.io/version: 1.5.1 |  | ||||||
|   name: ingress-nginx-controller |   name: ingress-nginx-controller | ||||||
|   namespace: ingress-nginx |   namespace: ingress-nginx | ||||||
| spec: | spec: | ||||||
| @@ -484,7 +492,7 @@ spec: | |||||||
|               fieldPath: metadata.namespace |               fieldPath: metadata.namespace | ||||||
|         - name: LD_PRELOAD |         - name: LD_PRELOAD | ||||||
|           value: /usr/local/lib/libmimalloc.so |           value: /usr/local/lib/libmimalloc.so | ||||||
|         image: registry.k8s.io/ingress-nginx/controller:v1.9.6@sha256:1405cc613bd95b2c6edd8b2a152510ae91c7e62aea4698500d23b2145960ab9c |         image: registry.k8s.io/ingress-nginx/controller:v1.13.3@sha256:1b044f6dcac3afbb59e05d98463f1dec6f3d3fb99940bc12ca5d80270358e3bd | ||||||
|         imagePullPolicy: IfNotPresent |         imagePullPolicy: IfNotPresent | ||||||
|         lifecycle: |         lifecycle: | ||||||
|           preStop: |           preStop: | ||||||
| @@ -525,7 +533,7 @@ spec: | |||||||
|         resources: |         resources: | ||||||
|           requests: |           requests: | ||||||
|             cpu: 100m |             cpu: 100m | ||||||
|             memory: 90Mi |             memory: 150Mi | ||||||
|         securityContext: |         securityContext: | ||||||
|           allowPrivilegeEscalation: true |           allowPrivilegeEscalation: true | ||||||
|           capabilities: |           capabilities: | ||||||
| @@ -694,3 +702,20 @@ webhooks: | |||||||
|     resources: |     resources: | ||||||
|     - ingresses |     - ingresses | ||||||
|   sideEffects: None |   sideEffects: None | ||||||
|  | --- | ||||||
|  | apiVersion: policy/v1 | ||||||
|  | kind: PodDisruptionBudget | ||||||
|  | metadata: | ||||||
|  |   labels: | ||||||
|  |     app.kubernetes.io/component: controller | ||||||
|  |     app.kubernetes.io/instance: ingress-nginx | ||||||
|  |     app.kubernetes.io/name: ingress-nginx | ||||||
|  |     app.kubernetes.io/part-of: ingress-nginx | ||||||
|  |   name: ingress-nginx | ||||||
|  | spec: | ||||||
|  |   selector: | ||||||
|  |     matchLabels: | ||||||
|  |       app.kubernetes.io/component: controller | ||||||
|  |       app.kubernetes.io/instance: ingress-nginx | ||||||
|  |       app.kubernetes.io/name: ingress-nginx | ||||||
|  |   minAvailable: 1 | ||||||
|   | |||||||
| @@ -57,7 +57,7 @@ spec: | |||||||
|           - name: data |           - name: data | ||||||
|             mountPath: /data |             mountPath: /data | ||||||
|       - name: update-native-modules |       - name: update-native-modules | ||||||
|         image: nodered/node-red:3.1.5-18 |         image: nodered/node-red:4.1.1-18 | ||||||
|         imagePullPolicy: IfNotPresent |         imagePullPolicy: IfNotPresent | ||||||
|         command: |         command: | ||||||
|           - bash |           - bash | ||||||
| @@ -65,16 +65,24 @@ spec: | |||||||
|           - | |           - | | ||||||
|             cd /data |             cd /data | ||||||
|             npm rebuild |             npm rebuild | ||||||
|  |             npm install tldts | ||||||
|  |             npm install @atproto/api | ||||||
|  |             npm install node-fetch | ||||||
|         volumeMounts: |         volumeMounts: | ||||||
|           - name: data |           - name: data | ||||||
|             mountPath: /data |             mountPath: /data | ||||||
|       containers: |       containers: | ||||||
|       - name: web |       - name: web | ||||||
|         image: nodered/node-red:3.1.5-18 |         image: nodered/node-red:4.1.1-18 | ||||||
|         imagePullPolicy: Always |         imagePullPolicy: Always | ||||||
|         ports: |         ports: | ||||||
|         - containerPort: 1880 |         - containerPort: 1880 | ||||||
|           name: web |           name: web | ||||||
|  |         resources: | ||||||
|  |           requests: | ||||||
|  |             memory: 200M | ||||||
|  |           limits: | ||||||
|  |             memory: 200M | ||||||
|         volumeMounts: |         volumeMounts: | ||||||
|           - name: data |           - name: data | ||||||
|             mountPath: /data |             mountPath: /data | ||||||
|   | |||||||
| @@ -1,27 +1,3 @@ | |||||||
| apiVersion: v1 |  | ||||||
| kind: PersistentVolume |  | ||||||
| metadata: |  | ||||||
|   annotations: |  | ||||||
|     pv.kubernetes.io/provisioned-by: csi.scaleway.com |  | ||||||
|   finalizers: |  | ||||||
|   - kubernetes.io/pv-protection |  | ||||||
|   - external-attacher/csi-scaleway-com |  | ||||||
|   name: pvc-2fee8e5b-4e91-4d9a-8721-58e62c7a0a53 |  | ||||||
| spec: |  | ||||||
|   accessModes: |  | ||||||
|   - ReadWriteOnce |  | ||||||
|   capacity: |  | ||||||
|     storage: 5Gi |  | ||||||
|   csi: |  | ||||||
|     driver: csi.scaleway.com |  | ||||||
|     fsType: ext4 |  | ||||||
|     volumeAttributes: |  | ||||||
|       storage.kubernetes.io/csiProvisionerIdentity: 1591355612436-1847-csi.scaleway.com |  | ||||||
|     volumeHandle: fr-par-1/85ad772e-b2f2-4ba5-8706-b2381223cf4d |  | ||||||
|   persistentVolumeReclaimPolicy: Retain |  | ||||||
|   storageClassName: scw-bssd |  | ||||||
|   volumeMode: Filesystem |  | ||||||
| --- |  | ||||||
| kind: PersistentVolumeClaim | kind: PersistentVolumeClaim | ||||||
| apiVersion: v1 | apiVersion: v1 | ||||||
| metadata: | metadata: | ||||||
| @@ -33,5 +9,4 @@ spec: | |||||||
|   resources: |   resources: | ||||||
|     requests: |     requests: | ||||||
|       storage: 5Gi |       storage: 5Gi | ||||||
|   volumeName: pvc-2fee8e5b-4e91-4d9a-8721-58e62c7a0a53 |  | ||||||
| --- | --- | ||||||
|   | |||||||
| @@ -47,11 +47,10 @@ metadata: | |||||||
|   namespace: opengraph |   namespace: opengraph | ||||||
|   annotations: |   annotations: | ||||||
|     cert-manager.io/cluster-issuer: letsencrypt |     cert-manager.io/cluster-issuer: letsencrypt | ||||||
|     kubernetes.io/ingress.class: traefik |  | ||||||
|     traefik.ingress.kubernetes.io/router.tls: "true" |  | ||||||
|     ingress.kubernetes.io/ssl-redirect: "true" |     ingress.kubernetes.io/ssl-redirect: "true" | ||||||
|     traefik.ingress.kubernetes.io/router.entrypoints: websecure |     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" | ||||||
| spec: | spec: | ||||||
|  |   ingressClassName: nginx | ||||||
|   tls: |   tls: | ||||||
|   - hosts: |   - hosts: | ||||||
|     - opengraph.cluster.fun |     - opengraph.cluster.fun | ||||||
|   | |||||||
| @@ -43,9 +43,10 @@ spec: | |||||||
|       labels: |       labels: | ||||||
|         app.kubernetes.io/name: outline |         app.kubernetes.io/name: outline | ||||||
|     spec: |     spec: | ||||||
|  |       priorityClassName: critical | ||||||
|       containers: |       containers: | ||||||
|       - name: outline |       - name: outline | ||||||
|         image: outlinewiki/outline:0.75.2 |         image: outlinewiki/outline:1.0.0 | ||||||
|         imagePullPolicy: IfNotPresent |         imagePullPolicy: IfNotPresent | ||||||
|         env: |         env: | ||||||
|         - name: ALLOWED_DOMAINS |         - name: ALLOWED_DOMAINS | ||||||
| @@ -69,6 +70,12 @@ spec: | |||||||
|           failureThreshold: 30 |           failureThreshold: 30 | ||||||
|           timeoutSeconds: 1 |           timeoutSeconds: 1 | ||||||
|           periodSeconds: 5 |           periodSeconds: 5 | ||||||
|  |         resources: | ||||||
|  |           requests: | ||||||
|  |             cpu: 8m | ||||||
|  |             memory: 1389M | ||||||
|  |           limits: | ||||||
|  |             memory: 1489M | ||||||
|         volumeMounts: |         volumeMounts: | ||||||
|           - mountPath: /opt/outline/.env |           - mountPath: /opt/outline/.env | ||||||
|             subPath: .env |             subPath: .env | ||||||
|   | |||||||
| @@ -1,89 +0,0 @@ | |||||||
| apiVersion: apps/v1 |  | ||||||
| kind: Deployment |  | ||||||
| metadata: |  | ||||||
|   name: paradoxfox-admin |  | ||||||
|   namespace: paradoxfox |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: paradoxfox |  | ||||||
|     app.kubernetes.io/component: admin |  | ||||||
| spec: |  | ||||||
|   replicas: 0 |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app.kubernetes.io/name: paradoxfox |  | ||||||
|       app.kubernetes.io/component: admin |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       labels: |  | ||||||
|         app.kubernetes.io/name: paradoxfox |  | ||||||
|         app.kubernetes.io/component: admin |  | ||||||
|     spec: |  | ||||||
|       imagePullSecrets: |  | ||||||
|         - name: docker-config |  | ||||||
|       containers: |  | ||||||
|       - name: paradoxfox-admin |  | ||||||
|         image: rg.fr-par.scw.cloud/averagemarcus-private/paradoxfox-admin:latest |  | ||||||
|         imagePullPolicy: Always |  | ||||||
|         ports: |  | ||||||
|         - containerPort: 9000 |  | ||||||
|           name: web |  | ||||||
|         env: |  | ||||||
|         - name: NODE_ENV |  | ||||||
|           value: "production" |  | ||||||
|         - name: PORT |  | ||||||
|           value: "9000" |  | ||||||
|         - name: GATSBY_MEDUSA_BACKEND_URL |  | ||||||
|           value: "https://api.paradoxfox.shop" |  | ||||||
|  |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: paradoxfox-admin |  | ||||||
|   namespace: paradoxfox |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: paradoxfox |  | ||||||
|     app.kubernetes.io/component: admin |  | ||||||
| spec: |  | ||||||
|   type: ClusterIP |  | ||||||
|   ports: |  | ||||||
|   - port: 80 |  | ||||||
|     targetPort: web |  | ||||||
|     name: web |  | ||||||
|   selector: |  | ||||||
|     app.kubernetes.io/name: paradoxfox |  | ||||||
|     app.kubernetes.io/component: admin |  | ||||||
|  |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| apiVersion: networking.k8s.io/v1 |  | ||||||
| kind: Ingress |  | ||||||
| metadata: |  | ||||||
|   name: paradoxfox-admin |  | ||||||
|   namespace: paradoxfox |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: paradoxfox |  | ||||||
|     app.kubernetes.io/component: admin |  | ||||||
|   annotations: |  | ||||||
|     cert-manager.io/cluster-issuer: letsencrypt |  | ||||||
|     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" |  | ||||||
| spec: |  | ||||||
|   ingressClassName: nginx |  | ||||||
|   tls: |  | ||||||
|   - hosts: |  | ||||||
|     - admin.paradoxfox.shop |  | ||||||
|     secretName: paradoxfox-admin-ingress |  | ||||||
|   rules: |  | ||||||
|   - host: admin.paradoxfox.shop |  | ||||||
|     http: |  | ||||||
|       paths: |  | ||||||
|       - path: / |  | ||||||
|         pathType: ImplementationSpecific |  | ||||||
|         backend: |  | ||||||
|           service: |  | ||||||
|             name: paradoxfox-admin |  | ||||||
|             port: |  | ||||||
|               number: 80 |  | ||||||
|  |  | ||||||
| --- |  | ||||||
| @@ -1,112 +0,0 @@ | |||||||
| apiVersion: v1 |  | ||||||
| kind: Secret |  | ||||||
| metadata: |  | ||||||
|   name: paradoxfox-api |  | ||||||
|   namespace: paradoxfox |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: paradoxfox |  | ||||||
|     app.kubernetes.io/component: api |  | ||||||
|   annotations: |  | ||||||
|     kube-1password: hypviaps3z54ujuj37d6vyaile |  | ||||||
|     kube-1password/vault: Kubernetes |  | ||||||
|     kube-1password/secret-text-parse: "true" |  | ||||||
| type: Opaque |  | ||||||
|  |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| apiVersion: apps/v1 |  | ||||||
| kind: Deployment |  | ||||||
| metadata: |  | ||||||
|   name: paradoxfox-api |  | ||||||
|   namespace: paradoxfox |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: paradoxfox |  | ||||||
|     app.kubernetes.io/component: api |  | ||||||
| spec: |  | ||||||
|   replicas: 0 |  | ||||||
|   selector: |  | ||||||
|     matchLabels: |  | ||||||
|       app.kubernetes.io/name: paradoxfox |  | ||||||
|       app.kubernetes.io/component: api |  | ||||||
|   template: |  | ||||||
|     metadata: |  | ||||||
|       labels: |  | ||||||
|         app.kubernetes.io/name: paradoxfox |  | ||||||
|         app.kubernetes.io/component: api |  | ||||||
|     spec: |  | ||||||
|       imagePullSecrets: |  | ||||||
|         - name: docker-config |  | ||||||
|       containers: |  | ||||||
|       - name: paradoxfox-api |  | ||||||
|         image: rg.fr-par.scw.cloud/averagemarcus-private/paradoxfox-api:latest |  | ||||||
|         imagePullPolicy: Always |  | ||||||
|         ports: |  | ||||||
|         - containerPort: 9000 |  | ||||||
|           name: web |  | ||||||
|         env: |  | ||||||
|         - name: PORT |  | ||||||
|           value: "9000" |  | ||||||
|         - name: NODE_ENV |  | ||||||
|           value: "production" |  | ||||||
|         - name: ADMIN_CORS |  | ||||||
|           # value: "https://admin.paradoxfox.shop,http://localhost:7000,http://localhost:7001" |  | ||||||
|           value: "https://admin.paradoxfox.shop" |  | ||||||
|         - name: STORE_CORS |  | ||||||
|           # value: "https://paradoxfox.shop,http://localhost:8000" |  | ||||||
|           value: "https://paradoxfox.shop" |  | ||||||
|         envFrom: |  | ||||||
|         - secretRef: |  | ||||||
|             name: paradoxfox-api |  | ||||||
|  |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| apiVersion: v1 |  | ||||||
| kind: Service |  | ||||||
| metadata: |  | ||||||
|   name: paradoxfox-api |  | ||||||
|   namespace: paradoxfox |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: paradoxfox |  | ||||||
|     app.kubernetes.io/component: api |  | ||||||
| spec: |  | ||||||
|   type: ClusterIP |  | ||||||
|   ports: |  | ||||||
|   - port: 80 |  | ||||||
|     targetPort: web |  | ||||||
|     name: web |  | ||||||
|   selector: |  | ||||||
|     app.kubernetes.io/name: paradoxfox |  | ||||||
|     app.kubernetes.io/component: api |  | ||||||
|  |  | ||||||
| --- |  | ||||||
|  |  | ||||||
| apiVersion: networking.k8s.io/v1 |  | ||||||
| kind: Ingress |  | ||||||
| metadata: |  | ||||||
|   name: paradoxfox-api |  | ||||||
|   namespace: paradoxfox |  | ||||||
|   labels: |  | ||||||
|     app.kubernetes.io/name: paradoxfox |  | ||||||
|     app.kubernetes.io/component: api |  | ||||||
|   annotations: |  | ||||||
|     cert-manager.io/cluster-issuer: letsencrypt |  | ||||||
|     nginx.ingress.kubernetes.io/force-ssl-redirect: "true" |  | ||||||
| spec: |  | ||||||
|   ingressClassName: nginx |  | ||||||
|   tls: |  | ||||||
|   - hosts: |  | ||||||
|     - api.paradoxfox.shop |  | ||||||
|     secretName: paradoxfox-api-ingress |  | ||||||
|   rules: |  | ||||||
|   - host: api.paradoxfox.shop |  | ||||||
|     http: |  | ||||||
|       paths: |  | ||||||
|       - path: / |  | ||||||
|         pathType: ImplementationSpecific |  | ||||||
|         backend: |  | ||||||
|           service: |  | ||||||
|             name: paradoxfox-api |  | ||||||
|             port: |  | ||||||
|               number: 80 |  | ||||||
|  |  | ||||||
| --- |  | ||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user