Compare commits
891
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ccf2d67da9 | ||
|
|
d0e868b315 | ||
|
|
9e2f81035b | ||
|
|
99da6a94da | ||
|
|
5b8167d568 | ||
|
|
b0263911f9 | ||
|
|
909de955c6 | ||
|
|
6f5f2c997e | ||
|
|
422c275b62 | ||
|
|
2700c47e1f | ||
|
|
60572f9f52 | ||
|
|
4dad44b146 | ||
|
|
03f60acceb | ||
|
|
34ad0c754a | ||
|
|
463e0c78c0 | ||
|
|
21fa72e26a | ||
|
|
e92bfb1086 | ||
|
|
ed5ddbe532 | ||
|
|
2bcc221584 | ||
|
|
febc2ebace | ||
|
|
089b89dbbe | ||
|
|
d3e473e81d | ||
|
|
8d2665f312 | ||
|
|
5d07bf59b3 | ||
|
|
2ec6e58065 | ||
|
|
4703cbcbf4 | ||
|
|
bfc5513a40 | ||
|
|
ad7e75c017 | ||
|
|
c9a7a8a7d1 | ||
|
|
038cc4ae6f | ||
|
|
cef891d4c1 | ||
|
|
721d9c5198
|
||
|
|
867370aaac
|
||
|
|
85838093eb
|
||
|
|
b29a34008f
|
||
|
|
0fcd9d60b6
|
||
|
|
3435e8dfc0
|
||
|
|
20aeaf3f44
|
||
|
|
bb7ebb00d6
|
||
|
|
9bf10d8fdd | ||
|
|
6e944e191e | ||
|
|
b4fd2eeec6 | ||
|
|
8a3b4712ce | ||
|
|
5f275f32c1 | ||
|
|
8c318060ec | ||
|
|
200c30d541 | ||
|
|
8a86ec9a2f | ||
|
|
f24b8d684c | ||
|
|
faf1132442 | ||
|
|
b1da07a495 | ||
|
|
e9b7347723 | ||
|
|
e34d6702fd | ||
|
|
d539479903 | ||
|
|
8f8bf4af7b | ||
|
|
4e6aad08e3 | ||
|
|
b27c55fde8 | ||
|
|
8106e9367c | ||
|
|
69e4b28067 | ||
|
|
6d4958aa03 | ||
|
|
0079e3e1e9 | ||
|
|
c08c1c9c9c | ||
|
|
033973f557 | ||
|
|
5e58d342b9 | ||
|
|
e678af8f63 | ||
|
|
b809f2f6df | ||
|
|
be3a28f9e4 | ||
|
|
1d20b25b0b | ||
|
|
6231e7d072 | ||
|
|
e19e425d15 | ||
|
|
090683de93 | ||
|
|
ef914c8b10 | ||
|
|
c0e64ca31b | ||
|
|
90b52eccc1 | ||
|
|
9a32778951 | ||
|
|
4e9d22ece2 | ||
|
|
a4b3a9a77b | ||
|
|
c4855c3f30 | ||
|
|
55b0408a9e | ||
|
|
8f12f678c1 | ||
|
|
7c42534cb6 | ||
|
|
cf00b32e1b | ||
|
|
2487f07d66 | ||
|
|
3bd4cbd5c2 | ||
|
|
c592fc69f0 | ||
|
|
b9940c1a83 | ||
|
|
7168bb6bd0 | ||
|
|
fae3ef506e | ||
|
|
c33fbd1370
|
||
|
|
8472829ffa | ||
|
|
a68f27b631 | ||
|
|
e47aa0d024 | ||
|
|
4ef76abbb2 | ||
|
|
7d231dec88
|
||
|
|
81431971c2 | ||
|
|
1c7c4e9fd8 | ||
|
|
2b88f9e765
|
||
|
|
d48e21ada7
|
||
|
|
ebddfbf1fb | ||
|
|
92d66145f3 | ||
|
|
fd46f3f0b3 | ||
|
|
3ddb6c24ea | ||
|
|
a5cab6c570 | ||
|
|
803f086a54 | ||
|
|
272537bb63 | ||
|
|
25b28d046d | ||
|
|
a4598c6caa | ||
|
|
343f0785b3 | ||
|
|
c9836ffa1f | ||
|
|
b917739a13 | ||
|
|
a8c1f39a03 | ||
|
|
b52c5a8eba | ||
|
|
0521df9e92 | ||
|
|
6e8275454e | ||
|
|
493984abe4
|
||
|
|
5e9efc3a3b | ||
|
|
c3b3db2651 | ||
|
|
519b8eebb9 | ||
|
|
3bef85f5a6 | ||
|
|
a1baddb427 | ||
|
|
e3d2b0f65f | ||
|
|
8a5598d4a9
|
||
|
|
3368d4ba29
|
||
|
|
8255a8a3ae | ||
|
|
51a544b103 | ||
|
|
18917ae78d
|
||
|
|
2cf9b56629
|
||
|
|
1854511adf | ||
|
|
4b26152245 | ||
|
|
3f8efe67c3
|
||
|
|
bc5fe3912d | ||
|
|
ea317c1c61 | ||
|
|
f046201dab | ||
|
|
160160b56d | ||
|
|
059e89bedb | ||
|
|
032684eec6 | ||
|
|
f8013da2aa | ||
|
|
28c4eb526c | ||
|
|
edbd951776 | ||
|
|
2cdf6d3cbb | ||
|
|
4285fa6352 | ||
|
|
9ab9aaa506 | ||
|
|
cfa129da43 | ||
|
|
9d95fc12ba | ||
|
|
befc4591a6 | ||
|
|
65b782dce7 | ||
|
|
4f6d2b3073 | ||
|
|
af8d3910b7 | ||
|
|
0b61a47008 | ||
|
|
629c5505a7 | ||
|
|
b237c95dde | ||
|
|
c9059d8302 | ||
|
|
e89f848734 | ||
|
|
7cca04fbad | ||
|
|
494042f2b8 | ||
|
|
8b95212625 | ||
|
|
4ef75f78c9 | ||
|
|
bd1c92efa2 | ||
|
|
fd18e4ed24 | ||
|
|
d08bcd6203 | ||
|
|
f803f5426c | ||
|
|
0077eb909a | ||
|
|
184bd4b256 | ||
|
|
2862f9e3eb | ||
|
|
12d1903e8e | ||
|
|
6a5bffd57f | ||
|
|
d6b504ed4b | ||
|
|
5485e5e210 | ||
|
|
077be387b1
|
||
|
|
372dede85c | ||
|
|
2bbe37f85b | ||
|
|
7a44b84ffb | ||
|
|
0ed927c6dd | ||
|
|
42fdc8b490 | ||
|
|
2a7f5df0f5 | ||
|
|
1a9e02db02 | ||
|
|
9e26c4a018 | ||
|
|
de74f642b8 | ||
|
|
1ac805a8c9 | ||
|
|
1f54e0c3a4 | ||
|
|
783b6a3cdc | ||
|
|
d8e855148c | ||
|
|
c6446d9e78 | ||
|
|
2ed56146cc | ||
|
|
35d28c6d39 | ||
|
|
c9901ee6d1 | ||
|
|
e7cfadd76b | ||
|
|
8895debbea | ||
|
|
3a35247283 | ||
|
|
8c017e1645 | ||
|
|
c0eb5b6d83 | ||
|
|
2b81239dd8 | ||
|
|
080d6d3b18 | ||
|
|
d99d4d974b | ||
|
|
f6d4d811cc | ||
|
|
7a72ca6aa8 | ||
|
|
b8d80143d6 | ||
|
|
81c3b562ab | ||
|
|
e0b8bd0bd8 | ||
|
|
cbde1c9b7f | ||
|
|
2d55b7560f | ||
|
|
44407c10a3 | ||
|
|
d2f651cafe | ||
|
|
e0bcb235c2 | ||
|
|
c533ec0ea5 | ||
|
|
39a5e5d85b | ||
|
|
6cbf99a3dd | ||
|
|
9975be6023 | ||
|
|
2ba6ed2468 | ||
|
|
0ed5ce52ad | ||
|
|
df88cde4f6 | ||
|
|
142fe29f54 | ||
|
|
79e4a92af7 | ||
|
|
09957b422b | ||
|
|
75fb5bf5ff | ||
|
|
cd97713b34 | ||
|
|
ec95e34e9e | ||
|
|
2eb5c2c390 | ||
|
|
4f10f63579 | ||
|
|
416600ea6e | ||
|
|
07968925b3 | ||
|
|
27aaeefd95 | ||
|
|
11cbca1b6f | ||
|
|
c232daf504 | ||
|
|
d3b93c07f4 | ||
|
|
003ec6b24f | ||
|
|
c756f5804a | ||
|
|
e856c3d995 | ||
|
|
e48fa28c3f | ||
|
|
25fbb7d23f | ||
|
|
29449e2c9f | ||
|
|
7fec16ecab
|
||
|
|
b8655242fa
|
||
|
|
2ac88a7bc3
|
||
|
|
044d601bc8
|
||
|
|
b3f2362db7 | ||
|
|
8bf4174863 | ||
|
|
c8fd05f0df | ||
|
|
0930e7cd59 | ||
|
|
cc5dd02912 | ||
|
|
6cba8a6d88 | ||
|
|
b629bfae2e | ||
|
|
8956c5140c | ||
|
|
703c72afb0 | ||
|
|
f026a1321b | ||
|
|
257368d485 | ||
|
|
a481b45654 | ||
|
|
963b62afa5 | ||
|
|
5e083f61b6 | ||
|
|
ad77d79a61 | ||
|
|
5d170b78c8 | ||
|
|
696615b5f0 | ||
|
|
7f5f724688 | ||
|
|
0550d487ac | ||
|
|
acf8a706b3 | ||
|
|
6e5226b74f | ||
|
|
7aa5e5e4de | ||
|
|
201edea180 | ||
|
|
7da3bed7f5 | ||
|
|
cf1491fc4a
|
||
|
|
1486556981
|
||
|
|
f3297d4166
|
||
|
|
6e96d7d5da
|
||
|
|
58f0cfa9a2 | ||
|
|
64b4064ee1 | ||
|
|
e2de0acebf | ||
|
|
a05da745ee | ||
|
|
5fa41babaf | ||
|
|
9ef7dd183c | ||
|
|
c855a9d477 | ||
|
|
86271931e9 | ||
|
|
c672a03227 | ||
|
|
e0c95eee2f | ||
|
|
a7ed0f9353 | ||
|
|
12bdddf153 | ||
|
|
3ede731c28 | ||
|
|
45663e2e41 | ||
|
|
4f4e5a8285 | ||
|
|
9465d62c27 | ||
|
|
6be9349de4 | ||
|
|
f3e929d8af | ||
|
|
ffd8a9594e | ||
|
|
7e4ff44720 | ||
|
|
9501ac8bb1 | ||
|
|
bf74d7efab | ||
|
|
cbcfb488a7
|
||
|
|
922a496d18
|
||
|
|
96b5e8cf24
|
||
|
|
10fe20e939 | ||
|
|
b21c4b8413 | ||
|
|
c507a43352
|
||
|
|
593b9812d9 | ||
|
|
60d42c872c | ||
|
|
4b9d02607e | ||
|
|
de755bd511 | ||
|
|
5a3a7195ad
|
||
|
|
ebdfff210b
|
||
|
|
26ba76b463
|
||
|
|
8440f9e1cb
|
||
|
|
92f1a74b93
|
||
|
|
29ee4f0398 | ||
|
|
b9effc4cb1 | ||
|
|
e8e8f196bd | ||
|
|
c588a8fee0 | ||
|
|
dff439ce06 | ||
|
|
50c88dda7f | ||
|
|
8c56aba369 | ||
|
|
a5e693a101 | ||
|
|
ed1f4506d4 | ||
|
|
eae3c563a2 | ||
|
|
ef147d7226 | ||
|
|
f189f8cca2 | ||
|
|
3d27f1180f | ||
|
|
dba15f56ea | ||
|
|
c470901b1a | ||
|
|
6c23bba17f | ||
|
|
4fdded9f56 | ||
|
|
50da8e6f3a | ||
|
|
b443028b74
|
||
|
|
09c80dda70
|
||
|
|
9e591315c1 | ||
|
|
cfc50fcbf4 | ||
|
|
3c18b88393
|
||
|
|
813ec159a9
|
||
|
|
38e6083fec
|
||
|
|
5ec45e625e
|
||
|
|
014573284f | ||
|
|
cb9c4aca50 | ||
|
|
76f21ba0a6 | ||
|
|
daf6a46e54 | ||
|
|
4c49adc39d | ||
|
|
23bc9538d7 | ||
|
|
be073df80e | ||
|
|
bfbcaefb3e | ||
|
|
6e1e234666 | ||
|
|
512f970bca | ||
|
|
10a98260cf | ||
|
|
c70f9fc458 | ||
|
|
d129ddb9bc | ||
|
|
903669b69e | ||
|
|
f7b9c1a4e8 | ||
|
|
e01ce9d8f8 | ||
|
|
e087a4c70f | ||
|
|
bf300f829a | ||
|
|
e7d696f04c | ||
|
|
b5d4bda35c | ||
|
|
54f0173e5a | ||
|
|
7b0d7a4c4f | ||
|
|
8509d0335f | ||
|
|
3fc13ce126 | ||
|
|
4b93c630f4 | ||
|
|
e4cf167942 | ||
|
|
cfa9cfe468 | ||
|
|
7f0ec8ef2f | ||
|
|
a83da6edb9 | ||
|
|
dae2ad04dc | ||
|
|
2a34d6d4dc | ||
|
|
75d1d522a3 | ||
|
|
04de7d9573 | ||
|
|
96331a3569 | ||
|
|
c30ff337ee | ||
|
|
96633d19d6 | ||
|
|
206adbb7f2 | ||
|
|
1d29241e3c | ||
|
|
6c42c98bd1 | ||
|
|
dd489762e1 | ||
|
|
0a0fc2dc6b | ||
|
|
438db7a471 | ||
|
|
bb950e67e7 | ||
|
|
e13342b7a5 | ||
|
|
733a63ae27
|
||
|
|
7f21c584a4 | ||
|
|
6c1d4fb5b8 | ||
|
|
e5cb2f35e3 | ||
|
|
e66c5d2147 | ||
|
|
a4fc0f1b3f
|
||
|
|
a496c0cd8e
|
||
|
|
db27aa023b | ||
|
|
86f2336eeb | ||
|
|
c207c43567 | ||
|
|
2c6bee2e66 | ||
|
|
4823517675 | ||
|
|
a679a48644 | ||
|
|
7ec4cd1482 | ||
|
|
debcbd8df5 | ||
|
|
839d4f065d | ||
|
|
1123f0e6fa | ||
|
|
ead9ed20e8
|
||
|
|
2732a24201
|
||
|
|
ce6b933f10
|
||
|
|
2cde93b2df
|
||
|
|
d08c78b37b
|
||
|
|
81d1399b76 | ||
|
|
6a9f40991a | ||
|
|
7d994aa814 | ||
|
|
27c66258d7 | ||
|
|
73d50c3c13 | ||
|
|
78f4de4a72 | ||
|
|
419af24e48 | ||
|
|
efa33903f3 | ||
|
|
62ba08f06a | ||
|
|
97c353a1e3 | ||
|
|
0d5c12bcf5 | ||
|
|
e513089d8c | ||
|
|
6a8cd6953a | ||
|
|
41083dfc7a | ||
|
|
ba756c370a | ||
|
|
cce26dc206 | ||
|
|
a3ffc6d395 | ||
|
|
12e5172c3e | ||
|
|
b1cbe9770e | ||
|
|
c4a1654f75 | ||
|
|
0c6c45584f | ||
|
|
1de710badb | ||
|
|
56f4c82c59 | ||
|
|
40f624d7f6 | ||
|
|
e0d4d327e8 | ||
|
|
ea82e9a1ae | ||
|
|
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 |
@@ -0,0 +1,25 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: airtrail
|
||||||
|
namespace: argocd
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
project: cluster.fun
|
||||||
|
destination:
|
||||||
|
namespace: airtrail
|
||||||
|
name: cluster-fun (v2)
|
||||||
|
source:
|
||||||
|
path: manifests/airtrail
|
||||||
|
repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git"
|
||||||
|
targetRevision: HEAD
|
||||||
|
syncPolicy:
|
||||||
|
automated: {}
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
ignoreDifferences:
|
||||||
|
- kind: Secret
|
||||||
|
jsonPointers:
|
||||||
|
- /data
|
||||||
|
|
||||||
@@ -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
|
|
||||||
|
|||||||
@@ -22,8 +22,5 @@ spec:
|
|||||||
- kind: Secret
|
- kind: Secret
|
||||||
jsonPointers:
|
jsonPointers:
|
||||||
- /data
|
- /data
|
||||||
- group: apps
|
|
||||||
kind: Deployment
|
|
||||||
jqPathExpressions:
|
|
||||||
- .spec.template.spec.containers[]?.image
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: bsky-screenshot
|
||||||
|
namespace: argocd
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
project: cluster.fun
|
||||||
|
destination:
|
||||||
|
namespace: bsky-screenshot
|
||||||
|
name: cluster-fun (v2)
|
||||||
|
source:
|
||||||
|
path: manifests/bsky-screenshot
|
||||||
|
repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git"
|
||||||
|
targetRevision: HEAD
|
||||||
|
syncPolicy:
|
||||||
|
automated: {}
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
ignoreDifferences:
|
||||||
|
- kind: Secret
|
||||||
|
jsonPointers:
|
||||||
|
- /data
|
||||||
@@ -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,27 +1,3 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
|
||||||
kind: Application
|
|
||||||
metadata:
|
|
||||||
name: cert-manager-civo
|
|
||||||
namespace: argocd
|
|
||||||
finalizers:
|
|
||||||
- resources-finalizer.argocd.argoproj.io
|
|
||||||
spec:
|
|
||||||
project: cluster.fun
|
|
||||||
destination:
|
|
||||||
namespace: cert-manager
|
|
||||||
name: civo
|
|
||||||
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
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
@@ -59,7 +35,7 @@ spec:
|
|||||||
name: cluster-fun (v2)
|
name: cluster-fun (v2)
|
||||||
source:
|
source:
|
||||||
repoURL: 'https://charts.jetstack.io'
|
repoURL: 'https://charts.jetstack.io'
|
||||||
targetRevision: 1.11.0
|
targetRevision: v1.21.0
|
||||||
chart: cert-manager
|
chart: cert-manager
|
||||||
helm:
|
helm:
|
||||||
version: v3
|
version: v3
|
||||||
|
|||||||
@@ -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
|
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: cluster-fun-tank
|
name: cors-proxy
|
||||||
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: tank
|
namespace: cors-proxy
|
||||||
name: cluster-fun (v2)
|
name: cluster-fun (v2)
|
||||||
source:
|
source:
|
||||||
path: manifests/tank
|
path: manifests/cors-proxy
|
||||||
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: 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
|
|
||||||
|
|||||||
@@ -26,4 +26,5 @@ spec:
|
|||||||
kind: Deployment
|
kind: Deployment
|
||||||
jqPathExpressions:
|
jqPathExpressions:
|
||||||
- .spec.template.spec.containers[]?.image
|
- .spec.template.spec.containers[]?.image
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -22,8 +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
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -22,8 +22,4 @@ spec:
|
|||||||
- kind: Secret
|
- kind: Secret
|
||||||
jsonPointers:
|
jsonPointers:
|
||||||
- /data
|
- /data
|
||||||
- group: apps
|
|
||||||
kind: Deployment
|
|
||||||
jqPathExpressions:
|
|
||||||
- .spec.template.spec.containers[]?.image
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: cluster-fun-homelab-accessible-check
|
||||||
|
namespace: argocd
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
project: cluster.fun
|
||||||
|
destination:
|
||||||
|
namespace: homelab-accessible-check
|
||||||
|
name: cluster-fun (v2)
|
||||||
|
source:
|
||||||
|
path: manifests/homelab-accessible-check
|
||||||
|
repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git"
|
||||||
|
targetRevision: HEAD
|
||||||
|
syncPolicy:
|
||||||
|
automated: {}
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
ignoreDifferences:
|
||||||
|
- kind: Secret
|
||||||
|
jsonPointers:
|
||||||
|
- /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"
|
||||||
|
|||||||
@@ -22,8 +22,5 @@ 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: cluster-fun-mastodon-digest
|
|
||||||
namespace: argocd
|
|
||||||
finalizers:
|
|
||||||
- resources-finalizer.argocd.argoproj.io
|
|
||||||
spec:
|
|
||||||
project: cluster.fun
|
|
||||||
destination:
|
|
||||||
namespace: mastodon-digest
|
|
||||||
name: cluster-fun (v2)
|
|
||||||
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
|
|
||||||
---
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: mazanoke
|
||||||
|
namespace: argocd
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
project: cluster.fun
|
||||||
|
destination:
|
||||||
|
namespace: mazanoke
|
||||||
|
name: cluster-fun (v2)
|
||||||
|
source:
|
||||||
|
path: manifests/mazanoke
|
||||||
|
repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git"
|
||||||
|
targetRevision: HEAD
|
||||||
|
syncPolicy:
|
||||||
|
automated: {}
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
ignoreDifferences:
|
||||||
|
- kind: Secret
|
||||||
|
jsonPointers:
|
||||||
|
- /data
|
||||||
|
|
||||||
@@ -22,8 +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: 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
|
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: pairdrop
|
||||||
|
namespace: argocd
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
project: cluster.fun
|
||||||
|
destination:
|
||||||
|
namespace: pairdrop
|
||||||
|
name: cluster-fun (v2)
|
||||||
|
source:
|
||||||
|
path: manifests/pairdrop
|
||||||
|
repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git"
|
||||||
|
targetRevision: HEAD
|
||||||
|
syncPolicy:
|
||||||
|
automated: {}
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
ignoreDifferences:
|
||||||
|
- kind: Secret
|
||||||
|
jsonPointers:
|
||||||
|
- /data
|
||||||
|
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: monitoring-civo
|
name: planning-poker
|
||||||
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: planning-poker
|
||||||
name: civo
|
name: cluster-fun (v2)
|
||||||
source:
|
source:
|
||||||
path: manifests/monitoring-civo
|
path: manifests/planning-poker
|
||||||
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
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: cluster-fun-priority-classes
|
||||||
|
namespace: argocd
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
project: cluster.fun
|
||||||
|
destination:
|
||||||
|
namespace: kube-system
|
||||||
|
name: cluster-fun (v2)
|
||||||
|
source:
|
||||||
|
path: manifests/priority-classes
|
||||||
|
repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git"
|
||||||
|
targetRevision: HEAD
|
||||||
|
syncPolicy:
|
||||||
|
automated: {}
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
ignoreDifferences:
|
||||||
|
- kind: Secret
|
||||||
|
jsonPointers:
|
||||||
|
- /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
|
|
||||||
|
|||||||
@@ -12,30 +12,7 @@ spec:
|
|||||||
name: cluster-fun (v2)
|
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.129
|
||||||
chart: reloader
|
|
||||||
syncPolicy:
|
|
||||||
automated: {}
|
|
||||||
ignoreDifferences:
|
|
||||||
- kind: Secret
|
|
||||||
jsonPointers:
|
|
||||||
- /data
|
|
||||||
---
|
|
||||||
apiVersion: argoproj.io/v1alpha1
|
|
||||||
kind: Application
|
|
||||||
metadata:
|
|
||||||
name: cluster-fun-reloader-civo
|
|
||||||
namespace: argocd
|
|
||||||
finalizers:
|
|
||||||
- resources-finalizer.argocd.argoproj.io
|
|
||||||
spec:
|
|
||||||
project: cluster.fun
|
|
||||||
destination:
|
|
||||||
namespace: kube-system
|
|
||||||
name: civo
|
|
||||||
source:
|
|
||||||
repoURL: 'https://stakater.github.io/stakater-charts'
|
|
||||||
targetRevision: v0.0.89
|
|
||||||
chart: reloader
|
chart: reloader
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated: {}
|
automated: {}
|
||||||
|
|||||||
@@ -22,8 +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: social-to-grist
|
|
||||||
namespace: argocd
|
|
||||||
finalizers:
|
|
||||||
- resources-finalizer.argocd.argoproj.io
|
|
||||||
spec:
|
|
||||||
project: cluster.fun
|
|
||||||
destination:
|
|
||||||
namespace: social-to-grist
|
|
||||||
name: civo
|
|
||||||
source:
|
|
||||||
path: manifests/social-to-grist
|
|
||||||
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
|
|
||||||
@@ -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: cluster-fun-starling
|
|
||||||
namespace: argocd
|
|
||||||
finalizers:
|
|
||||||
- resources-finalizer.argocd.argoproj.io
|
|
||||||
spec:
|
|
||||||
project: cluster.fun
|
|
||||||
destination:
|
|
||||||
namespace: starling
|
|
||||||
name: cluster-fun (v2)
|
|
||||||
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
|
|
||||||
|
|||||||
@@ -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,17 +1,17 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: traefik-civo
|
name: trek
|
||||||
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: kube-system
|
namespace: trek
|
||||||
name: civo
|
name: cluster-fun (v2)
|
||||||
source:
|
source:
|
||||||
path: manifests/traefik
|
path: manifests/trek
|
||||||
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
|
||||||
|
|
||||||
@@ -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: cluster-fun-twitter-profile-pic
|
|
||||||
namespace: argocd
|
|
||||||
finalizers:
|
|
||||||
- resources-finalizer.argocd.argoproj.io
|
|
||||||
spec:
|
|
||||||
project: cluster.fun
|
|
||||||
destination:
|
|
||||||
namespace: twitter-profile-pic
|
|
||||||
name: cluster-fun (v2)
|
|
||||||
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,17 +1,17 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: cluster-fun-wallabag
|
name: url-to-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: wallabag
|
namespace: cloudnative-now
|
||||||
name: cluster-fun (v2)
|
name: cluster-fun (v2)
|
||||||
source:
|
source:
|
||||||
path: manifests/wallabag
|
path: manifests/url-to-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:
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: proxy-civo
|
name: vert
|
||||||
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: vert
|
||||||
name: civo
|
name: cluster-fun (v2)
|
||||||
source:
|
source:
|
||||||
path: manifests/proxy-civo
|
path: manifests/vert
|
||||||
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
|
||||||
|
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: cluster-fun-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 (v2)
|
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:
|
||||||
@@ -0,0 +1,145 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: airtrail
|
||||||
|
namespace: airtrail
|
||||||
|
labels:
|
||||||
|
app: airtrail
|
||||||
|
app.kubernetes.io/name: airtrail
|
||||||
|
annotations:
|
||||||
|
kube-1password: 2322tcm3p5v6ql7oy2efrn4jse
|
||||||
|
kube-1password/vault: Kubernetes
|
||||||
|
kube-1password/secret-text-parse: "true"
|
||||||
|
type: Opaque
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: airtrail
|
||||||
|
namespace: airtrail
|
||||||
|
labels:
|
||||||
|
app: airtrail
|
||||||
|
app.kubernetes.io/name: airtrail
|
||||||
|
annotations:
|
||||||
|
reloader.stakater.com/match: "true"
|
||||||
|
data:
|
||||||
|
ORIGIN: https://airtrail.cluster.fun
|
||||||
|
UPLOAD_LOCATION: /app/uploads
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: airtrail
|
||||||
|
namespace: airtrail
|
||||||
|
labels:
|
||||||
|
app: airtrail
|
||||||
|
app.kubernetes.io/name: airtrail
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: airtrail
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: airtrail
|
||||||
|
app.kubernetes.io/name: airtrail
|
||||||
|
spec:
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 1000
|
||||||
|
runAsGroup: 1000
|
||||||
|
fsGroup: 1000
|
||||||
|
containers:
|
||||||
|
- name: airtrail
|
||||||
|
image: johly/airtrail:v3.11.1
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: airtrail
|
||||||
|
- secretRef:
|
||||||
|
name: airtrail
|
||||||
|
ports:
|
||||||
|
- containerPort: 3000
|
||||||
|
name: web
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /app/uploads
|
||||||
|
name: uploads
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /api/ping
|
||||||
|
port: 3000
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 30
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /api/ping
|
||||||
|
port: 3000
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 10
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 150Mi
|
||||||
|
limits:
|
||||||
|
cpu: 200m
|
||||||
|
memory: 300Mi
|
||||||
|
volumes:
|
||||||
|
- name: uploads
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: airtrail-uploads
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: airtrail
|
||||||
|
namespace: airtrail
|
||||||
|
labels:
|
||||||
|
app: airtrail
|
||||||
|
app.kubernetes.io/name: airtrail
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: web
|
||||||
|
name: web
|
||||||
|
selector:
|
||||||
|
app: airtrail
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: airtrail
|
||||||
|
namespace: airtrail
|
||||||
|
labels:
|
||||||
|
app: airtrail
|
||||||
|
app.kubernetes.io/name: airtrail
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt
|
||||||
|
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-body-size: "0"
|
||||||
|
nginx.ingress.kubernetes.io/client-body-buffer-size: 25m
|
||||||
|
nginx.ingress.kubernetes.io/proxy-connect-timeout: "300"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-next-upstream: "300"
|
||||||
|
nginx.ingress.kubernetes.io/proxy-next-upstream-timeout: "300"
|
||||||
|
spec:
|
||||||
|
ingressClassName: nginx
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- airtrail.cluster.fun
|
||||||
|
secretName: airtrail-ingress
|
||||||
|
rules:
|
||||||
|
- host: airtrail.cluster.fun
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: airtrail
|
||||||
|
port:
|
||||||
|
name: web
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
kind: PersistentVolumeClaim
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: airtrail-uploads
|
||||||
|
namespace: airtrail
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 1Gi
|
||||||
|
storageClassName: sbs-default-retain
|
||||||
|
---
|
||||||
@@ -23,10 +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
|
- changedetection.cluster.fun
|
||||||
- grafana.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
|
||||||
@@ -199,3 +202,33 @@ spec:
|
|||||||
name: tailscale-proxy
|
name: tailscale-proxy
|
||||||
port:
|
port:
|
||||||
name: auth
|
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
|
||||||
|
|||||||
@@ -83,3 +83,37 @@ spec:
|
|||||||
app: internal-proxy
|
app: internal-proxy
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
---
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: hermes
|
||||||
|
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: ollama
|
||||||
|
namespace: auth-proxy
|
||||||
|
labels:
|
||||||
|
app: internal-proxy
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 80
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 8080
|
||||||
|
selector:
|
||||||
|
app: internal-proxy
|
||||||
|
type: ClusterIP
|
||||||
|
---
|
||||||
|
|||||||
@@ -6,12 +6,19 @@ 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-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:
|
spec:
|
||||||
ingressClassName: nginx
|
ingressClassName: nginx
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- hello-world.cluster.fun
|
- hello-world.cluster.fun
|
||||||
- ombi.cluster.fun
|
- ombi.cluster.fun
|
||||||
|
- bsky-feeds.cluster.fun
|
||||||
|
- ai.cluster.fun
|
||||||
|
- penpot.cluster.fun
|
||||||
secretName: non-auth-proxy-ingress
|
secretName: non-auth-proxy-ingress
|
||||||
rules:
|
rules:
|
||||||
- host: hello-world.cluster.fun
|
- host: hello-world.cluster.fun
|
||||||
@@ -34,3 +41,33 @@ spec:
|
|||||||
name: tailscale-proxy
|
name: tailscale-proxy
|
||||||
port:
|
port:
|
||||||
name: non-auth
|
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
|
||||||
|
- host: penpot.cluster.fun
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: tailscale-proxy
|
||||||
|
port:
|
||||||
|
name: non-auth
|
||||||
|
|||||||
@@ -13,7 +13,11 @@ data:
|
|||||||
"loki.auth-proxy.svc": "loki-write.cluster.local",
|
"loki.auth-proxy.svc": "loki-write.cluster.local",
|
||||||
"loki.auth-proxy.svc:80": "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": "loki-loki.cluster.local",
|
||||||
"loki-distributed.auth-proxy.svc:80": "loki-loki.cluster.local"
|
"loki-distributed.auth-proxy.svc:80": "loki-loki.cluster.local",
|
||||||
|
"hermes.auth-proxy.svc": "hermes.cluster.local",
|
||||||
|
"hermes.auth-proxy.svc:80": "hermes.cluster.local",
|
||||||
|
"ollama.auth-proxy.svc": "ollama.cluster.local",
|
||||||
|
"ollama.auth-proxy.svc:11434": "ollama.cluster.local"
|
||||||
}
|
}
|
||||||
---
|
---
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
@@ -38,6 +42,7 @@ spec:
|
|||||||
labels:
|
labels:
|
||||||
app: internal-proxy
|
app: internal-proxy
|
||||||
spec:
|
spec:
|
||||||
|
priorityClassName: critical
|
||||||
serviceAccountName: default
|
serviceAccountName: default
|
||||||
dnsPolicy: ClusterFirst
|
dnsPolicy: ClusterFirst
|
||||||
dnsConfig:
|
dnsConfig:
|
||||||
@@ -67,7 +72,7 @@ spec:
|
|||||||
mountPath: /config/
|
mountPath: /config/
|
||||||
|
|
||||||
- name: oauth-proxy
|
- name: oauth-proxy
|
||||||
image: quay.io/oauth2-proxy/oauth2-proxy:v7.7.1
|
image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.3
|
||||||
args:
|
args:
|
||||||
- --cookie-secure=false
|
- --cookie-secure=false
|
||||||
- --provider=oidc
|
- --provider=oidc
|
||||||
@@ -101,9 +106,9 @@ spec:
|
|||||||
protocol: TCP
|
protocol: TCP
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
memory: 50Mi
|
memory: 80Mi
|
||||||
requests:
|
requests:
|
||||||
memory: 50Mi
|
memory: 80Mi
|
||||||
volumes:
|
volumes:
|
||||||
- name: host-mappings
|
- name: host-mappings
|
||||||
configMap:
|
configMap:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -27,6 +27,15 @@ spec:
|
|||||||
labels:
|
labels:
|
||||||
app: blog
|
app: blog
|
||||||
spec:
|
spec:
|
||||||
|
affinity:
|
||||||
|
podAntiAffinity:
|
||||||
|
preferredDuringSchedulingIgnoredDuringExecution:
|
||||||
|
- weight: 100
|
||||||
|
podAffinityTerm:
|
||||||
|
labelSelector:
|
||||||
|
matchLabels:
|
||||||
|
app: blog
|
||||||
|
topologyKey: kubernetes.io/hostname
|
||||||
containers:
|
containers:
|
||||||
- name: web
|
- name: web
|
||||||
image: rg.fr-par.scw.cloud/averagemarcus/blog:latest
|
image: rg.fr-par.scw.cloud/averagemarcus/blog:latest
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -0,0 +1,81 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: cors-proxy
|
||||||
|
namespace: cors-proxy
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: 8000
|
||||||
|
name: web
|
||||||
|
selector:
|
||||||
|
app: cors-proxy
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: cors-proxy
|
||||||
|
namespace: cors-proxy
|
||||||
|
spec:
|
||||||
|
replicas: 2
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: cors-proxy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: cors-proxy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: web
|
||||||
|
image: rg.fr-par.scw.cloud/averagemarcus/cors-proxy:latest
|
||||||
|
imagePullPolicy: Always
|
||||||
|
ports:
|
||||||
|
- containerPort: 8000
|
||||||
|
name: web
|
||||||
|
env:
|
||||||
|
- name: ALLOWLIST
|
||||||
|
value: cdn.bsky.app,en.wikipedia.org
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 184M
|
||||||
|
limits:
|
||||||
|
memory: 184M
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: cors-proxy
|
||||||
|
namespace: cors-proxy
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt
|
||||||
|
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||||
|
spec:
|
||||||
|
ingressClassName: nginx
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- cors-proxy.cluster.fun
|
||||||
|
- cors-proxy.marcusnoble.co.uk
|
||||||
|
secretName: cors-proxy-ingress
|
||||||
|
rules:
|
||||||
|
- host: cors-proxy.cluster.fun
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: cors-proxy
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
- host: cors-proxy.marcusnoble.co.uk
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: cors-proxy
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
@@ -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.7.1
|
image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.3
|
||||||
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.22.6
|
image: gitea/gitea:1.27.0
|
||||||
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: 700Mi
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- mountPath: /data
|
- mountPath: /data
|
||||||
name: git-data
|
name: git-data
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: web
|
- name: web
|
||||||
image: x1unix/go-playground:2.4.0
|
image: x1unix/go-playground:3.0.0
|
||||||
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
|
||||||
|
|||||||
@@ -64,15 +64,18 @@ spec:
|
|||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app.kubernetes.io/name: grist
|
app.kubernetes.io/name: grist
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: grist
|
app.kubernetes.io/name: grist
|
||||||
spec:
|
spec:
|
||||||
serviceAccountName: grist
|
serviceAccountName: grist
|
||||||
|
priorityClassName: critical
|
||||||
containers:
|
containers:
|
||||||
- name: grist
|
- name: grist
|
||||||
image: gristlabs/grist-oss:1.3.0
|
image: gristlabs/grist-oss:1.7.16
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
@@ -97,14 +100,17 @@ spec:
|
|||||||
value: default
|
value: default
|
||||||
- name: GRIST_TELEMETRY_LEVEL
|
- name: GRIST_TELEMETRY_LEVEL
|
||||||
value: "off"
|
value: "off"
|
||||||
- name: ALLOWED_WEBHOOK_DOMAINS
|
|
||||||
value: "tank.tank.svc,matrix.cluster.fun"
|
|
||||||
- name: GRIST_ANON_PLAYGROUND
|
- name: GRIST_ANON_PLAYGROUND
|
||||||
value: "false"
|
value: "false"
|
||||||
- name: GRIST_FORCE_LOGIN
|
- name: GRIST_FORCE_LOGIN
|
||||||
value: "true"
|
value: "true"
|
||||||
- name: GRIST_SANDBOX_FLAVOR
|
- name: GRIST_SANDBOX_FLAVOR
|
||||||
value: gvisor
|
value: gvisor
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 300M
|
||||||
|
limits:
|
||||||
|
memory: 600M
|
||||||
securityContext:
|
securityContext:
|
||||||
capabilities:
|
capabilities:
|
||||||
add:
|
add:
|
||||||
|
|||||||
@@ -0,0 +1,53 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: docker-config
|
||||||
|
namespace: homelab-accessible-check
|
||||||
|
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: homelab-accessible-check
|
||||||
|
namespace: homelab-accessible-check
|
||||||
|
annotations:
|
||||||
|
kube-1password: bz6ujxc5neqma242lpfqdxfiay
|
||||||
|
kube-1password/vault: Kubernetes
|
||||||
|
kube-1password/secret-text-parse: "true"
|
||||||
|
type: Opaque
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: homelab-accessible-check
|
||||||
|
namespace: homelab-accessible-check
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: homelab-accessible-check
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: homelab-accessible-check
|
||||||
|
spec:
|
||||||
|
imagePullSecrets:
|
||||||
|
- name: docker-config
|
||||||
|
containers:
|
||||||
|
- name: checker
|
||||||
|
image: rg.fr-par.scw.cloud/averagemarcus-private/homelab-accessible-check:latest
|
||||||
|
imagePullPolicy: Always
|
||||||
|
envFrom:
|
||||||
|
- secretRef:
|
||||||
|
name: "homelab-accessible-check"
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 50Mi
|
||||||
|
requests:
|
||||||
|
memory: 50Mi
|
||||||
@@ -27,6 +27,21 @@ data:
|
|||||||
kcduk24: https://speaking.marcusnoble.co.uk/0qcuN9/from-fragile-to-resilient-validatingadmissionpolicies-strengthen-kubernetes
|
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
|
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
|
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
|
||||||
|
cdl-2026: https://speaking.marcusnoble.co.uk/lMcEwR/pod-deep-dive-the-interesting-bits
|
||||||
|
cdl-2026-feedback: https://yay-or-nay.cluster.fun/feedback/EMLARINI
|
||||||
|
cdl-talk-2026: https://speaking.marcusnoble.co.uk/0rRvmv/debugging-your-conference-talk-practical-tips-to-resonate-with-your-audience
|
||||||
|
cdl-talk-2026-feedback: https://yay-or-nay.cluster.fun/feedback/22TO05MQ
|
||||||
|
technical-talking-blog-post: https://marcusnoble.co.uk/2025-04-30-my-tips-on-giving-technical-talks/
|
||||||
|
kubecon-eu-26: https://speaking.marcusnoble.co.uk/zT471P/kube-oddities-the-quirks-that-keep-kubernetes-interesting
|
||||||
|
cndro26: https://speaking.marcusnoble.co.uk/1OrBAe/kube-oddities-the-quirks-that-keep-kubernetes-interesting-marcus-noble-mark-sagi-kazar
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
@@ -51,6 +66,8 @@ metadata:
|
|||||||
namespace: link
|
namespace: link
|
||||||
labels:
|
labels:
|
||||||
app: link
|
app: link
|
||||||
|
annotations:
|
||||||
|
secret.reloader.stakater.com/reload: "urls-map"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
@@ -61,6 +78,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
|
||||||
@@ -83,11 +101,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
|
||||||
|
|||||||
@@ -39,16 +39,16 @@ spec:
|
|||||||
memory: 50Mi
|
memory: 50Mi
|
||||||
requests:
|
requests:
|
||||||
memory: 50Mi
|
memory: 50Mi
|
||||||
# livenessProbe:
|
livenessProbe:
|
||||||
# httpGet:
|
httpGet:
|
||||||
# path: /healthz
|
path: /
|
||||||
# port: web
|
port: web
|
||||||
# initialDelaySeconds: 10
|
initialDelaySeconds: 10
|
||||||
# readinessProbe:
|
readinessProbe:
|
||||||
# httpGet:
|
httpGet:
|
||||||
# path: /healthz
|
path: /
|
||||||
# port: web
|
port: web
|
||||||
# initialDelaySeconds: 10
|
initialDelaySeconds: 10
|
||||||
---
|
---
|
||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
|
|||||||
@@ -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.7.1
|
|
||||||
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,554 +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"
|
|
||||||
}
|
|
||||||
client: |-
|
|
||||||
{
|
|
||||||
"m.homeserver": {
|
|
||||||
"base_url": "https://matrix.cluster.fun"
|
|
||||||
},
|
|
||||||
"org.matrix.msc3575.proxy": {
|
|
||||||
"url": "https://syncv3.matrix.cluster.fun"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
|
|
||||||
# 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.89"
|
|
||||||
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.121.1"
|
|
||||||
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.121.1"
|
|
||||||
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,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,119 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: matrix-sliding-sync
|
|
||||||
namespace: chat
|
|
||||||
annotations:
|
|
||||||
kube-1password: 7kvyfcszfaavj2d7uvl4troagm
|
|
||||||
kube-1password/vault: Kubernetes
|
|
||||||
kube-1password/secret-text-parse: "true"
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: "matrix"
|
|
||||||
component: sliding-sync
|
|
||||||
type: Opaque
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: sliding-sync
|
|
||||||
namespace: chat
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: "matrix"
|
|
||||||
component: sliding-sync
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app.kubernetes.io/name: sliding-sync
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: sliding-sync
|
|
||||||
spec:
|
|
||||||
securityContext:
|
|
||||||
runAsUser: 1000
|
|
||||||
runAsGroup: 1000
|
|
||||||
fsGroup: 1000
|
|
||||||
containers:
|
|
||||||
- name: "sliding-sync"
|
|
||||||
image: "ghcr.io/matrix-org/sliding-sync:v0.99.19"
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
containerPort: 8008
|
|
||||||
protocol: TCP
|
|
||||||
- name: metrics
|
|
||||||
containerPort: 9090
|
|
||||||
protocol: TCP
|
|
||||||
env:
|
|
||||||
- name: SYNCV3_SERVER
|
|
||||||
value: https://matrix.cluster.fun
|
|
||||||
- name: SYNCV3_BINDADDR
|
|
||||||
value: ":8008"
|
|
||||||
- name: SYNCV3_PROM
|
|
||||||
value: ":9090"
|
|
||||||
- name: SYNCV3_SECRET
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: matrix-sliding-sync
|
|
||||||
key: SYNCV3_SECRET
|
|
||||||
- name: SYNCV3_DB
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: matrix-sliding-sync
|
|
||||||
key: SYNCV3_DB
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: sliding-sync
|
|
||||||
namespace: chat
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: "matrix"
|
|
||||||
component: sliding-sync
|
|
||||||
annotations:
|
|
||||||
prometheus.io/scrape: "true"
|
|
||||||
prometheus.io/port: "9090"
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- port: 80
|
|
||||||
targetPort: http
|
|
||||||
name: web
|
|
||||||
- port: 9090
|
|
||||||
targetPort: metrics
|
|
||||||
protocol: TCP
|
|
||||||
name: metrics
|
|
||||||
selector:
|
|
||||||
app.kubernetes.io/name: sliding-sync
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: sliding-sync
|
|
||||||
namespace: chat
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: "matrix"
|
|
||||||
component: sliding-sync
|
|
||||||
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:
|
|
||||||
- syncv3.matrix.cluster.fun
|
|
||||||
secretName: sliding-sync-ingress
|
|
||||||
rules:
|
|
||||||
- host: syncv3.matrix.cluster.fun
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: ImplementationSpecific
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: sliding-sync
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
---
|
|
||||||
@@ -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.11.0"
|
|
||||||
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
|
|
||||||
---
|
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: mazanoke
|
||||||
|
namespace: mazanoke
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: web
|
||||||
|
name: web
|
||||||
|
selector:
|
||||||
|
app: mazanoke
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: mazanoke
|
||||||
|
namespace: mazanoke
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: mazanoke
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: mazanoke
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: web
|
||||||
|
image: ghcr.io/civilblur/mazanoke:v1.1.6
|
||||||
|
imagePullPolicy: Always
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
name: web
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 200Mi
|
||||||
|
requests:
|
||||||
|
memory: 200Mi
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: mazanoke
|
||||||
|
namespace: mazanoke
|
||||||
|
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:
|
||||||
|
- image.cluster.fun
|
||||||
|
secretName: mazanoke-ingress
|
||||||
|
rules:
|
||||||
|
- host: image.cluster.fun
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: mazanoke
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
|
||||||
@@ -28,9 +28,10 @@ spec:
|
|||||||
labels:
|
labels:
|
||||||
app: mealie
|
app: mealie
|
||||||
spec:
|
spec:
|
||||||
|
priorityClassName: critical
|
||||||
containers:
|
containers:
|
||||||
- name: frontend
|
- name: frontend
|
||||||
image: ghcr.io/mealie-recipes/mealie:v2.4.1
|
image: ghcr.io/mealie-recipes/mealie:v3.20.1
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
envFrom:
|
envFrom:
|
||||||
- secretRef:
|
- secretRef:
|
||||||
@@ -41,7 +42,7 @@ spec:
|
|||||||
- 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
|
||||||
@@ -68,12 +69,18 @@ spec:
|
|||||||
volumeMounts:
|
volumeMounts:
|
||||||
- mountPath: /app/data
|
- mountPath: /app/data
|
||||||
name: data
|
name: data
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 200m
|
||||||
|
memory: 375Mi
|
||||||
|
limits:
|
||||||
|
cpu: 1000m
|
||||||
|
memory: 550Mi
|
||||||
volumes:
|
volumes:
|
||||||
- name: data
|
- name: data
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: mealie
|
claimName: mealie
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
@@ -91,7 +98,6 @@ spec:
|
|||||||
app: mealie
|
app: mealie
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
|
|||||||
@@ -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.14.0"
|
|
||||||
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.11"
|
|
||||||
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.108.1"
|
|
||||||
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
|
|
||||||
---
|
|
||||||
@@ -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.60.5
|
||||||
|
name: cadvisor
|
||||||
|
ports:
|
||||||
|
- containerPort: 8080
|
||||||
|
name: http
|
||||||
|
protocol: TCP
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 800m
|
||||||
|
memory: 800Mi
|
||||||
|
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
|
||||||
@@ -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.21.3
|
||||||
|
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"
|
||||||
@@ -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.14.0"
|
image: "registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.19.1"
|
||||||
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.8.2"
|
image: "prom/node-exporter:v1.12.1"
|
||||||
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.11"
|
image: "grafana/promtail:2.9.17"
|
||||||
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.108.1"
|
image: "victoriametrics/vmagent:v1.147.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/
|
||||||
|
|||||||
@@ -56,7 +56,9 @@ data:
|
|||||||
general.config.php: |-
|
general.config.php: |-
|
||||||
<?php
|
<?php
|
||||||
$CONFIG = array (
|
$CONFIG = array (
|
||||||
'overwriteprotocol' => 'https'
|
'overwriteprotocol' => 'https',
|
||||||
|
'loglevel' => 1,
|
||||||
|
'log_rotate_size' => 100 * 1024 * 1024
|
||||||
);
|
);
|
||||||
.htaccess: |-
|
.htaccess: |-
|
||||||
# line below if for Apache 2.4
|
# line below if for Apache 2.4
|
||||||
@@ -201,9 +203,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:30.0.4-apache"
|
image: "nextcloud:34.0.1-apache"
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: SQLITE_DATABASE
|
- name: SQLITE_DATABASE
|
||||||
@@ -282,7 +285,102 @@ spec:
|
|||||||
periodSeconds: 10
|
periodSeconds: 10
|
||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
memory: 450Mi
|
cpu: 1038m
|
||||||
|
memory: 500M
|
||||||
|
limits:
|
||||||
|
cpu: 1200m
|
||||||
|
memory: 765M
|
||||||
|
volumeMounts:
|
||||||
|
- name: nextcloud-data
|
||||||
|
mountPath: /var/www/
|
||||||
|
subPath: root
|
||||||
|
- name: nextcloud-data
|
||||||
|
mountPath: /var/www/html
|
||||||
|
subPath: html
|
||||||
|
- name: nextcloud-data
|
||||||
|
mountPath: /var/www/html/data
|
||||||
|
subPath: data
|
||||||
|
- name: nextcloud-data
|
||||||
|
mountPath: /var/www/html/config
|
||||||
|
subPath: config
|
||||||
|
- name: nextcloud-data
|
||||||
|
mountPath: /var/www/html/custom_apps
|
||||||
|
subPath: custom_apps
|
||||||
|
- name: nextcloud-data
|
||||||
|
mountPath: /var/www/tmp
|
||||||
|
subPath: tmp
|
||||||
|
- name: nextcloud-data
|
||||||
|
mountPath: /var/www/html/themes
|
||||||
|
subPath: themes
|
||||||
|
- name: nextcloud-config
|
||||||
|
mountPath: /var/www/html/config/general.config.php
|
||||||
|
subPath: general.config.php
|
||||||
|
- name: nextcloud-s3
|
||||||
|
mountPath: /var/www/html/config/s3.config.php
|
||||||
|
subPath: s3.config.php
|
||||||
|
- name: nextcloud-config
|
||||||
|
mountPath: /var/www/html/config/.htaccess
|
||||||
|
subPath: .htaccess
|
||||||
|
- name: nextcloud-config
|
||||||
|
mountPath: /var/www/html/config/apache-pretty-urls.config.php
|
||||||
|
subPath: apache-pretty-urls.config.php
|
||||||
|
- name: nextcloud-config
|
||||||
|
mountPath: /var/www/html/config/apcu.config.php
|
||||||
|
subPath: apcu.config.php
|
||||||
|
- name: nextcloud-config
|
||||||
|
mountPath: /var/www/html/config/apps.config.php
|
||||||
|
subPath: apps.config.php
|
||||||
|
- name: nextcloud-config
|
||||||
|
mountPath: /var/www/html/config/autoconfig.php
|
||||||
|
subPath: autoconfig.php
|
||||||
|
- name: nextcloud-config
|
||||||
|
mountPath: /var/www/html/config/redis.config.php
|
||||||
|
subPath: redis.config.php
|
||||||
|
- name: nextcloud-config
|
||||||
|
mountPath: /var/www/html/config/smtp.config.php
|
||||||
|
subPath: smtp.config.php
|
||||||
|
- name: cron
|
||||||
|
image: "nextcloud:34.0.1-apache"
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
command:
|
||||||
|
- /cron.sh
|
||||||
|
env:
|
||||||
|
- name: SQLITE_DATABASE
|
||||||
|
value: "nextcloud"
|
||||||
|
- name: NEXTCLOUD_ADMIN_USER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: nextcloud-nextcloud
|
||||||
|
key: nextcloud-username
|
||||||
|
- name: NEXTCLOUD_ADMIN_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: nextcloud-nextcloud
|
||||||
|
key: nextcloud-password
|
||||||
|
- name: NEXTCLOUD_TRUSTED_DOMAINS
|
||||||
|
value: nextcloud.cluster.fun
|
||||||
|
- name: NEXTCLOUD_DATA_DIR
|
||||||
|
value: "/var/www/html/data"
|
||||||
|
- name: REDIS_HOST
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: nextcloud-nextcloud-redis
|
||||||
|
key: redis-host
|
||||||
|
- name: REDIS_PORT
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: nextcloud-nextcloud-redis
|
||||||
|
key: redis-port
|
||||||
|
- name: REDIS_HOST_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: nextcloud-nextcloud-redis
|
||||||
|
key: redis-password
|
||||||
|
- name: REDIS_DB_INDEX
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: nextcloud-nextcloud-redis
|
||||||
|
key: redis-db-index
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- name: nextcloud-data
|
- name: nextcloud-data
|
||||||
mountPath: /var/www/
|
mountPath: /var/www/
|
||||||
@@ -346,45 +444,6 @@ spec:
|
|||||||
securityContext:
|
securityContext:
|
||||||
fsGroup: 33
|
fsGroup: 33
|
||||||
---
|
---
|
||||||
# Source: nextcloud/templates/cronjob.yaml
|
|
||||||
apiVersion: batch/v1
|
|
||||||
kind: CronJob
|
|
||||||
metadata:
|
|
||||||
name: nextcloud-nextcloud-cron
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: nextcloud
|
|
||||||
app.kubernetes.io/instance: nextcloud-nextcloud
|
|
||||||
annotations:
|
|
||||||
{}
|
|
||||||
spec:
|
|
||||||
schedule: "*/5 * * * *"
|
|
||||||
concurrencyPolicy: Forbid
|
|
||||||
failedJobsHistoryLimit: 5
|
|
||||||
successfulJobsHistoryLimit: 2
|
|
||||||
jobTemplate:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: nextcloud
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: nextcloud
|
|
||||||
spec:
|
|
||||||
restartPolicy: Never
|
|
||||||
containers:
|
|
||||||
- name: nextcloud
|
|
||||||
image: "nextcloud:30.0.4-apache"
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
command: [ "curl" ]
|
|
||||||
args:
|
|
||||||
- "--fail"
|
|
||||||
- "-L"
|
|
||||||
- "https://nextcloud.cluster.fun/cron.php"
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
memory: 200Mi
|
|
||||||
---
|
|
||||||
# Source: nextcloud/templates/ingress.yaml
|
# Source: nextcloud/templates/ingress.yaml
|
||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
|
|||||||
@@ -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,6 +325,7 @@ 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", "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" }'
|
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" }'
|
||||||
@@ -369,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
|
||||||
---
|
---
|
||||||
@@ -405,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:
|
||||||
@@ -438,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:
|
||||||
@@ -461,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:
|
||||||
@@ -505,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.11.3@sha256:d56f135b6462cfc476447cfe564b83a45e8bb7da2774963b00d12161112270b7
|
image: registry.k8s.io/ingress-nginx/controller:v1.15.1@sha256:594ceea76b01c592858f803f9ff4d2cb40542cae2060410b2c95f75907d659e1
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
@@ -546,7 +533,7 @@ spec:
|
|||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
cpu: 100m
|
cpu: 100m
|
||||||
memory: 90Mi
|
memory: 150Mi
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: true
|
allowPrivilegeEscalation: true
|
||||||
capabilities:
|
capabilities:
|
||||||
@@ -715,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:4.0.7-18
|
image: nodered/node-red:4.1.11-18
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
command:
|
command:
|
||||||
- bash
|
- bash
|
||||||
@@ -66,16 +66,23 @@ spec:
|
|||||||
cd /data
|
cd /data
|
||||||
npm rebuild
|
npm rebuild
|
||||||
npm install tldts
|
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:4.0.7-18
|
image: nodered/node-red:4.1.11-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
|
||||||
|
|||||||
@@ -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.81.1
|
image: outlinewiki/outline:1.9.1
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
env:
|
env:
|
||||||
- name: ALLOWED_DOMAINS
|
- name: ALLOWED_DOMAINS
|
||||||
@@ -72,7 +73,9 @@ spec:
|
|||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
cpu: 8m
|
cpu: 8m
|
||||||
memory: 800Mi
|
memory: 900Mi
|
||||||
|
limits:
|
||||||
|
memory: 1489Mi
|
||||||
volumeMounts:
|
volumeMounts:
|
||||||
- mountPath: /opt/outline/.env
|
- mountPath: /opt/outline/.env
|
||||||
subPath: .env
|
subPath: .env
|
||||||
|
|||||||
@@ -0,0 +1,88 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: pairdrop
|
||||||
|
namespace: pairdrop
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: web
|
||||||
|
name: web
|
||||||
|
selector:
|
||||||
|
app: pairdrop
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: pairdrop
|
||||||
|
namespace: pairdrop
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: pairdrop
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: pairdrop
|
||||||
|
spec:
|
||||||
|
imagePullSecrets:
|
||||||
|
- name: docker-config
|
||||||
|
priorityClassName: low
|
||||||
|
containers:
|
||||||
|
- name: web
|
||||||
|
image: ghcr.io/schlagmichdoch/pairdrop:v1.11.2
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
ports:
|
||||||
|
- containerPort: 3000
|
||||||
|
name: web
|
||||||
|
env:
|
||||||
|
- name: RATE_LIMIT
|
||||||
|
value: "1"
|
||||||
|
- name: DONATION_BUTTON_ACTIVE
|
||||||
|
value: "false"
|
||||||
|
- name: TWITTER_BUTTON_ACTIVE
|
||||||
|
value: "false"
|
||||||
|
- name: MASTODON_BUTTON_ACTIVE
|
||||||
|
value: "false"
|
||||||
|
- name: BLUESKY_BUTTON_ACTIVE
|
||||||
|
value: "false"
|
||||||
|
- name: PRIVACYPOLICY_BUTTON_ACTIVE
|
||||||
|
value: "false"
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 100Mi
|
||||||
|
requests:
|
||||||
|
memory: 100Mi
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: web
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: pairdrop
|
||||||
|
namespace: pairdrop
|
||||||
|
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:
|
||||||
|
- drop.cluster.fun
|
||||||
|
secretName: pairdrop-ingress
|
||||||
|
rules:
|
||||||
|
- host: drop.cluster.fun
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: pairdrop
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
@@ -0,0 +1,111 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: planning-poker
|
||||||
|
namespace: planning-poker
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: planning-poker
|
||||||
|
---
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: planning-poker-data
|
||||||
|
namespace: planning-poker
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: planning-poker
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: "1Gi"
|
||||||
|
storageClassName: "sbs-default-retain"
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: planning-poker
|
||||||
|
namespace: planning-poker
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: planning-poker
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: web
|
||||||
|
protocol: TCP
|
||||||
|
name: http
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: planning-poker
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: planning-poker
|
||||||
|
namespace: planning-poker
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: planning-poker
|
||||||
|
annotations:
|
||||||
|
secret.reloader.stakater.com/reload: "planning-poker"
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: planning-poker
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: planning-poker
|
||||||
|
spec:
|
||||||
|
serviceAccountName: planning-poker
|
||||||
|
priorityClassName: critical
|
||||||
|
containers:
|
||||||
|
- name: planning-poker
|
||||||
|
image: ghcr.io/axeleroy/self-host-planning-poker:1.2.1
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
ports:
|
||||||
|
- name: web
|
||||||
|
containerPort: 8000
|
||||||
|
protocol: TCP
|
||||||
|
livenessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: web
|
||||||
|
readinessProbe:
|
||||||
|
tcpSocket:
|
||||||
|
port: web
|
||||||
|
volumeMounts:
|
||||||
|
- name: data
|
||||||
|
mountPath: /data
|
||||||
|
volumes:
|
||||||
|
- name: data
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: planning-poker-data
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: planning-poker
|
||||||
|
namespace: planning-poker
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: planning-poker
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt
|
||||||
|
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||||
|
spec:
|
||||||
|
ingressClassName: nginx
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- planning-poker.cluster.fun
|
||||||
|
secretName: planning-poker-ingress
|
||||||
|
rules:
|
||||||
|
- host: "planning-poker.cluster.fun"
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: planning-poker
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
apiVersion: scheduling.k8s.io/v1
|
||||||
|
kind: PriorityClass
|
||||||
|
metadata:
|
||||||
|
name: critical
|
||||||
|
value: 1000
|
||||||
|
globalDefault: false
|
||||||
|
preemptionPolicy: PreemptLowerPriority
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
apiVersion: scheduling.k8s.io/v1
|
||||||
|
kind: PriorityClass
|
||||||
|
metadata:
|
||||||
|
name: low
|
||||||
|
value: 10
|
||||||
|
globalDefault: false
|
||||||
|
preemptionPolicy: Never
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
apiVersion: scheduling.k8s.io/v1
|
||||||
|
kind: PriorityClass
|
||||||
|
metadata:
|
||||||
|
name: normal
|
||||||
|
value: 100
|
||||||
|
globalDefault: true
|
||||||
|
preemptionPolicy: PreemptLowerPriority
|
||||||
@@ -1,149 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: tailscale-auth
|
|
||||||
namespace: proxy-civo
|
|
||||||
annotations:
|
|
||||||
kube-1password: 2cqycmsgv5r7vcyvjpblcl2l4y
|
|
||||||
kube-1password/vault: Kubernetes
|
|
||||||
type: Opaque
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: host-mappings
|
|
||||||
namespace: proxy-civo
|
|
||||||
labels:
|
|
||||||
app: proxy
|
|
||||||
data:
|
|
||||||
mapping.json: |
|
|
||||||
{
|
|
||||||
"vmcluster.proxy-civo.svc": "vmcluster.cluster.local",
|
|
||||||
"loki.proxy-civo.svc": "loki-write.cluster.local",
|
|
||||||
"loki.proxy-civo.svc:80": "loki-write.cluster.local",
|
|
||||||
"loki-distributed.proxy-civo.svc": "loki-loki.cluster.local",
|
|
||||||
"loki-distributed.proxy-civo.svc:80": "loki-loki.cluster.local"
|
|
||||||
}
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: internal-proxy
|
|
||||||
namespace: proxy-civo
|
|
||||||
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: 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: proxy-civo-internal-proxy
|
|
||||||
ports:
|
|
||||||
- containerPort: 8080
|
|
||||||
protocol: TCP
|
|
||||||
volumeMounts:
|
|
||||||
- name: host-mappings
|
|
||||||
mountPath: /config/
|
|
||||||
volumes:
|
|
||||||
- name: host-mappings
|
|
||||||
configMap:
|
|
||||||
name: host-mappings
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: loki
|
|
||||||
namespace: proxy-civo
|
|
||||||
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: proxy-civo
|
|
||||||
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: proxy-civo
|
|
||||||
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: proxy-civo
|
|
||||||
labels:
|
|
||||||
app: internal-proxy
|
|
||||||
spec:
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
port: 80
|
|
||||||
protocol: TCP
|
|
||||||
targetPort: 8080
|
|
||||||
selector:
|
|
||||||
app: internal-proxy
|
|
||||||
type: ClusterIP
|
|
||||||
---
|
|
||||||
@@ -47,11 +47,10 @@ metadata:
|
|||||||
namespace: qr
|
namespace: qr
|
||||||
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:
|
||||||
- qr.cluster.fun
|
- qr.cluster.fun
|
||||||
|
|||||||
@@ -327,9 +327,10 @@ spec:
|
|||||||
weight: 1
|
weight: 1
|
||||||
nodeAffinity:
|
nodeAffinity:
|
||||||
terminationGracePeriodSeconds: 30
|
terminationGracePeriodSeconds: 30
|
||||||
|
priorityClassName: critical
|
||||||
containers:
|
containers:
|
||||||
- name: redis
|
- name: redis
|
||||||
image: docker.io/bitnami/redis:7.2.4-debian-11-r11
|
image: docker.io/bitnamilegacy/redis:7.2.4-debian-11-r11
|
||||||
imagePullPolicy: "IfNotPresent"
|
imagePullPolicy: "IfNotPresent"
|
||||||
securityContext:
|
securityContext:
|
||||||
runAsUser: 1001
|
runAsUser: 1001
|
||||||
@@ -471,7 +472,7 @@ spec:
|
|||||||
terminationGracePeriodSeconds: 30
|
terminationGracePeriodSeconds: 30
|
||||||
containers:
|
containers:
|
||||||
- name: redis
|
- name: redis
|
||||||
image: docker.io/bitnami/redis:7.2.4-debian-11-r11
|
image: docker.io/bitnamilegacy/redis:7.2.4-debian-11-r11
|
||||||
imagePullPolicy: "IfNotPresent"
|
imagePullPolicy: "IfNotPresent"
|
||||||
securityContext:
|
securityContext:
|
||||||
runAsUser: 1001
|
runAsUser: 1001
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ data:
|
|||||||
POLLING_FREQUENCY: "15"
|
POLLING_FREQUENCY: "15"
|
||||||
BASE_URL: "https://miniflux.cluster.fun/"
|
BASE_URL: "https://miniflux.cluster.fun/"
|
||||||
METRICS_COLLECTOR: "1"
|
METRICS_COLLECTOR: "1"
|
||||||
|
CLEANUP_ARCHIVE_READ_DAYS: "365"
|
||||||
|
CLEANUP_ARCHIVE_UNREAD_DAYS: "365"
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
@@ -66,7 +68,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: web
|
- name: web
|
||||||
image: ghcr.io/miniflux/miniflux:2.2.3
|
image: ghcr.io/miniflux/miniflux:2.3.2
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
|
|||||||
+26
-27
@@ -2,7 +2,7 @@ apiVersion: v1
|
|||||||
kind: Secret
|
kind: Secret
|
||||||
metadata:
|
metadata:
|
||||||
name: docker-config
|
name: docker-config
|
||||||
namespace: social-to-grist
|
namespace: social-to-rolodex
|
||||||
annotations:
|
annotations:
|
||||||
kube-1password: i6ngbk5zf4k52xgwdwnfup5bby
|
kube-1password: i6ngbk5zf4k52xgwdwnfup5bby
|
||||||
kube-1password/vault: Kubernetes
|
kube-1password/vault: Kubernetes
|
||||||
@@ -14,8 +14,8 @@ data:
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Secret
|
kind: Secret
|
||||||
metadata:
|
metadata:
|
||||||
name: social-to-grist-auth
|
name: social-to-rolodex-auth
|
||||||
namespace: social-to-grist
|
namespace: social-to-rolodex
|
||||||
annotations:
|
annotations:
|
||||||
kube-1password: mr6spkkx7n3memkbute6ojaarm
|
kube-1password: mr6spkkx7n3memkbute6ojaarm
|
||||||
kube-1password/vault: Kubernetes
|
kube-1password/vault: Kubernetes
|
||||||
@@ -24,8 +24,8 @@ type: Opaque
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Secret
|
kind: Secret
|
||||||
metadata:
|
metadata:
|
||||||
name: social-to-grist
|
name: social-to-rolodex
|
||||||
namespace: social-to-grist
|
namespace: social-to-rolodex
|
||||||
annotations:
|
annotations:
|
||||||
kube-1password: oa3ycnui3ji4lc665bifaao63q
|
kube-1password: oa3ycnui3ji4lc665bifaao63q
|
||||||
kube-1password/vault: Kubernetes
|
kube-1password/vault: Kubernetes
|
||||||
@@ -35,8 +35,8 @@ type: Opaque
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
name: social-to-grist
|
name: social-to-rolodex
|
||||||
namespace: social-to-grist
|
namespace: social-to-rolodex
|
||||||
spec:
|
spec:
|
||||||
type: ClusterIP
|
type: ClusterIP
|
||||||
ports:
|
ports:
|
||||||
@@ -44,22 +44,22 @@ spec:
|
|||||||
targetPort: auth
|
targetPort: auth
|
||||||
name: web
|
name: web
|
||||||
selector:
|
selector:
|
||||||
app: social-to-grist
|
app: social-to-rolodex
|
||||||
---
|
---
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
name: social-to-grist
|
name: social-to-rolodex
|
||||||
namespace: social-to-grist
|
namespace: social-to-rolodex
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
app: social-to-grist
|
app: social-to-rolodex
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
app: social-to-grist
|
app: social-to-rolodex
|
||||||
spec:
|
spec:
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
- name: docker-config
|
- name: docker-config
|
||||||
@@ -70,7 +70,7 @@ spec:
|
|||||||
- --provider-display-name=Auth0
|
- --provider-display-name=Auth0
|
||||||
- --upstream=http://localhost:8080
|
- --upstream=http://localhost:8080
|
||||||
- --http-address=$(HOST_IP):8000
|
- --http-address=$(HOST_IP):8000
|
||||||
- --redirect-url=https://social-to-grist.cluster.fun/oauth2/callback
|
- --redirect-url=https://social-to-rolodex.cluster.fun/oauth2/callback
|
||||||
- --email-domain=marcusnoble.co.uk
|
- --email-domain=marcusnoble.co.uk
|
||||||
- --pass-basic-auth=false
|
- --pass-basic-auth=false
|
||||||
- --pass-access-token=false
|
- --pass-access-token=false
|
||||||
@@ -86,13 +86,13 @@ spec:
|
|||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
key: username
|
key: username
|
||||||
name: social-to-grist-auth
|
name: social-to-rolodex-auth
|
||||||
- name: OAUTH2_PROXY_CLIENT_SECRET
|
- name: OAUTH2_PROXY_CLIENT_SECRET
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
key: password
|
key: password
|
||||||
name: social-to-grist-auth
|
name: social-to-rolodex-auth
|
||||||
image: quay.io/oauth2-proxy/oauth2-proxy:v7.7.1
|
image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.3
|
||||||
name: oauth-proxy
|
name: oauth-proxy
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8000
|
- containerPort: 8000
|
||||||
@@ -104,14 +104,14 @@ spec:
|
|||||||
requests:
|
requests:
|
||||||
memory: 50Mi
|
memory: 50Mi
|
||||||
- name: web
|
- name: web
|
||||||
image: rg.fr-par.scw.cloud/averagemarcus-private/social-to-grist:latest
|
image: rg.fr-par.scw.cloud/averagemarcus-private/social-to-rolodex:latest
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
env:
|
env:
|
||||||
- name: PORT
|
- name: PORT
|
||||||
value: "8080"
|
value: "8080"
|
||||||
envFrom:
|
envFrom:
|
||||||
- secretRef:
|
- secretRef:
|
||||||
name: "social-to-grist"
|
name: "social-to-rolodex"
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8080
|
- containerPort: 8080
|
||||||
name: web
|
name: web
|
||||||
@@ -125,27 +125,26 @@ spec:
|
|||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: social-to-grist
|
name: social-to-rolodex
|
||||||
namespace: social-to-grist
|
namespace: social-to-rolodex
|
||||||
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:
|
||||||
- social-to-grist.cluster.fun
|
- social-to-rolodex.cluster.fun
|
||||||
secretName: social-to-grist-ingress
|
secretName: social-to-rolodex-ingress
|
||||||
rules:
|
rules:
|
||||||
- host: social-to-grist.cluster.fun
|
- host: social-to-rolodex.cluster.fun
|
||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
- path: /
|
- path: /
|
||||||
pathType: ImplementationSpecific
|
pathType: ImplementationSpecific
|
||||||
backend:
|
backend:
|
||||||
service:
|
service:
|
||||||
name: social-to-grist
|
name: social-to-rolodex
|
||||||
port:
|
port:
|
||||||
number: 80
|
number: 80
|
||||||
@@ -1,106 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: docker-config
|
|
||||||
namespace: starling
|
|
||||||
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: starling
|
|
||||||
namespace: starling
|
|
||||||
annotations:
|
|
||||||
kube-1password: ufxpki65ffgprn2upksirweeie
|
|
||||||
kube-1password/vault: Kubernetes
|
|
||||||
kube-1password/secret-text-parse: "true"
|
|
||||||
type: Opaque
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: starling
|
|
||||||
namespace: starling
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- port: 80
|
|
||||||
targetPort: web
|
|
||||||
name: web
|
|
||||||
selector:
|
|
||||||
app: starling
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: starling
|
|
||||||
namespace: starling
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: starling
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: starling
|
|
||||||
spec:
|
|
||||||
imagePullSecrets:
|
|
||||||
- name: docker-config
|
|
||||||
containers:
|
|
||||||
- name: web
|
|
||||||
image: rg.fr-par.scw.cloud/averagemarcus-private/starling:latest
|
|
||||||
imagePullPolicy: Always
|
|
||||||
env:
|
|
||||||
- name: PORT
|
|
||||||
value: "3000"
|
|
||||||
- name: SHARED_SECRET
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: starling
|
|
||||||
key: SHARED_SECRET
|
|
||||||
- name: ACCESS_TOKEN
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: starling
|
|
||||||
key: ACCESS_TOKEN
|
|
||||||
ports:
|
|
||||||
- containerPort: 3000
|
|
||||||
name: web
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 50Mi
|
|
||||||
requests:
|
|
||||||
memory: 50Mi
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: starling
|
|
||||||
namespace: starling
|
|
||||||
annotations:
|
|
||||||
cert-manager.io/cluster-issuer: letsencrypt
|
|
||||||
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- starling.marcusnoble.co.uk
|
|
||||||
secretName: starling-ingress
|
|
||||||
rules:
|
|
||||||
- host: starling.marcusnoble.co.uk
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: ImplementationSpecific
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: starling
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
@@ -27,6 +27,7 @@ spec:
|
|||||||
labels:
|
labels:
|
||||||
app: svg-to-dxf
|
app: svg-to-dxf
|
||||||
spec:
|
spec:
|
||||||
|
priorityClassName: low
|
||||||
containers:
|
containers:
|
||||||
- name: web
|
- name: web
|
||||||
image: rg.fr-par.scw.cloud/averagemarcus/svg-to-dxf:latest
|
image: rg.fr-par.scw.cloud/averagemarcus/svg-to-dxf:latest
|
||||||
@@ -45,14 +46,11 @@ metadata:
|
|||||||
namespace: svg-to-dxf
|
namespace: svg-to-dxf
|
||||||
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"
|
||||||
traefik.ingress.kubernetes.io/buffering: |
|
nginx.ingress.kubernetes.io/proxy-body-size: "0"
|
||||||
maxrequestbodybytes: 31457280
|
|
||||||
memrequestbodybytes: 62914560
|
|
||||||
spec:
|
spec:
|
||||||
|
ingressClassName: nginx
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- svg-to-dxf.cluster.fun
|
- svg-to-dxf.cluster.fun
|
||||||
|
|||||||
@@ -1,45 +1,3 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: talks
|
|
||||||
namespace: talks
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- port: 80
|
|
||||||
targetPort: web
|
|
||||||
name: web
|
|
||||||
selector:
|
|
||||||
app: talks
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: talks
|
|
||||||
namespace: talks
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: talks
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: talks
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: web
|
|
||||||
image: rg.fr-par.scw.cloud/averagemarcus/talks:latest
|
|
||||||
imagePullPolicy: Always
|
|
||||||
ports:
|
|
||||||
- containerPort: 80
|
|
||||||
name: web
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 20Mi
|
|
||||||
requests:
|
|
||||||
memory: 20Mi
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
@@ -47,24 +5,13 @@ metadata:
|
|||||||
namespace: talks
|
namespace: talks
|
||||||
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/permanent-redirect: https://speaking.marcusnoble.co.uk
|
||||||
spec:
|
spec:
|
||||||
|
ingressClassName: nginx
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- talks.marcusnoble.co.uk
|
- talks.marcusnoble.co.uk
|
||||||
secretName: talks-ingress
|
secretName: talks-ingress
|
||||||
rules:
|
rules:
|
||||||
- host: talks.marcusnoble.co.uk
|
- host: talks.marcusnoble.co.uk
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: ImplementationSpecific
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: talks
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,57 +0,0 @@
|
|||||||
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: tank
|
|
||||||
namespace: tank
|
|
||||||
annotations:
|
|
||||||
kube-1password: g6xle67quzowvvekf6zukjbbm4
|
|
||||||
kube-1password/vault: Kubernetes
|
|
||||||
kube-1password/secret-text-parse: "true"
|
|
||||||
type: Opaque
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: tank
|
|
||||||
namespace: tank
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- port: 80
|
|
||||||
targetPort: web
|
|
||||||
selector:
|
|
||||||
app: tank
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: tank
|
|
||||||
namespace: tank
|
|
||||||
labels:
|
|
||||||
app: tank
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: tank
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: tank
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: web
|
|
||||||
image: rg.fr-par.scw.cloud/averagemarcus/tank:latest
|
|
||||||
imagePullPolicy: Always
|
|
||||||
envFrom:
|
|
||||||
- secretRef:
|
|
||||||
name: tank
|
|
||||||
ports:
|
|
||||||
- containerPort: 3000
|
|
||||||
name: web
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 10Mi
|
|
||||||
requests:
|
|
||||||
memory: 10Mi
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user