Compare commits
674
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ead0c3adc0 | ||
|
|
7a844e7b29 | ||
|
|
83bc47cd83 | ||
|
|
869907bb45
|
||
|
|
3b4e60b93c | ||
|
|
7dc5f9feb6 | ||
|
|
ec82b44029
|
||
|
|
c5f4691eb3 | ||
|
|
db84da9a0c | ||
|
|
55d47f503f | ||
|
|
ac0278290f | ||
|
|
5c66a2396f
|
||
|
|
f9c75fd16e
|
||
|
|
a9e3a4556c | ||
|
|
b91bc8f14a | ||
|
|
b33aadf4b1 | ||
|
|
84e35ae15f | ||
|
|
5e0967311f | ||
|
|
eab631b725 | ||
|
|
91a6f91bcd | ||
|
|
4f608dfe5c | ||
|
|
f793ce5c86 | ||
|
|
65e1a14757 | ||
|
|
6aad0a763a | ||
|
|
fc4a5775a8 | ||
|
|
71498e7943 | ||
|
|
ba1de46bb0 | ||
|
|
0d92c5dbe0 | ||
|
|
949cadb0a9 | ||
|
|
82973b58fc
|
||
|
|
4db319058b | ||
|
|
5fc33da2be | ||
|
|
d623f3bc16 | ||
|
|
8895a77df1 | ||
|
|
b95594ebfa | ||
|
|
3957a525fa | ||
|
|
3ecfc1eb35 | ||
|
|
ea9a89eb21 | ||
|
|
095186b375 | ||
|
|
63cffad4f7 | ||
|
|
f6ff591cf2
|
||
|
|
f5aa4ba9be | ||
|
|
c7eb0fc97a | ||
|
|
3554d9cc49 | ||
|
|
03b6d55594 | ||
|
|
653d8705cd | ||
|
|
3f31deb6f5 | ||
|
|
1f2bf92c16 | ||
|
|
204a8d9c5e | ||
|
|
7469fb42df | ||
|
|
bb79dfe79e | ||
|
|
225e963bc8 | ||
|
|
df81167c40 | ||
|
|
c5c6add039 | ||
|
|
0fe03bb187 | ||
|
|
cae79d865d | ||
|
|
b6b2fc2d90 | ||
|
|
f677994f7a | ||
|
|
37b7f15fac | ||
|
|
79a5550612 | ||
|
|
35a9984977 | ||
|
|
fde417913a | ||
|
|
39258cd055 | ||
|
|
ecdce07900 | ||
|
|
d4c54439db | ||
|
|
6cf80a3e7e | ||
|
|
eac7fefbf8
|
||
|
|
db7d00f6b4
|
||
|
|
13aafde356
|
||
|
|
cd92901416 | ||
|
|
7ee11e8ebb
|
||
|
|
943d3caa2a
|
||
|
|
c7d1ece0c4
|
||
|
|
34205db0b4 | ||
|
|
6e35bd49b5 | ||
|
|
1af391c646 | ||
|
|
a276bcf0e3 | ||
|
|
cb203a2e91 | ||
|
|
6716097535 | ||
|
|
31e942a29a | ||
|
|
2a831a5250 | ||
|
|
3e0473ebdf | ||
|
|
ac9d40a77d | ||
|
|
68255cdb10 | ||
|
|
018fb55585 | ||
|
|
27b0aa2bd5 | ||
|
|
24c07ddff3 | ||
|
|
c0e7a34ba0 | ||
|
|
f77b088d79 | ||
|
|
4f3a991e4a | ||
|
|
3e53f177d8 | ||
|
|
7665793bbd | ||
|
|
dfc5ec5b6b | ||
|
|
b586694307
|
||
|
|
ca17e40801
|
||
|
|
c0c01a641e
|
||
|
|
c628a560f8
|
||
|
|
ee66e1e51c
|
||
|
|
0a8ab347b8
|
||
|
|
419974392a | ||
|
|
02c8c52016 | ||
|
|
d53ed6b4c4 | ||
|
|
c641d00f14 | ||
|
|
e5e1035871 | ||
|
|
d197cb858b | ||
|
|
dfb7255864 | ||
|
|
05f6b59f11 | ||
|
|
5c35a85abe | ||
|
|
b4a9540cdd | ||
|
|
a1e3138588
|
||
|
|
29b5f9b6d7
|
||
|
|
dc0832ed70
|
||
|
|
3c3fb73708 | ||
|
|
966776772b | ||
|
|
d8c23afe95 | ||
|
|
b444bb6225 | ||
|
|
4aaa96c695 | ||
|
|
dcc6e371cf | ||
|
|
183dc20d35 | ||
|
|
1355d27bd9 | ||
|
|
2f68b2d875 | ||
|
|
407555362a | ||
|
|
397f2640ad | ||
|
|
782eabcbd3 | ||
|
|
2e20ea10e6 | ||
|
|
10012bd5b0 | ||
|
|
97f1a7f069 | ||
|
|
3f670fcd3c | ||
|
|
bc60301944 | ||
|
|
846f2d8c49 | ||
|
|
3b4aa26ff4 | ||
|
|
2153672357 | ||
|
|
2bd70491b7 | ||
|
|
2d00f5ffb6 | ||
|
|
12008cf556 | ||
|
|
22bb309b98 | ||
|
|
0e74b53a14 | ||
|
|
9da875de21 | ||
|
|
ccad9a8fba | ||
|
|
ac600c9e21 | ||
|
|
ec350a56d7 | ||
|
|
4e1da3cc50 | ||
|
|
4725d3b214 | ||
|
|
80b3f2c1d6 | ||
|
|
a2612e519c | ||
|
|
51590f335d | ||
|
|
9bc8999e53 | ||
|
|
1636e10163 | ||
|
|
0b44949165 | ||
|
|
7095c5e93d | ||
|
|
9fbccc8cc0 | ||
|
|
17068ffa30 | ||
|
|
97bb76165e | ||
|
|
6bb72b07cb | ||
|
|
74f888ab60 | ||
|
|
5383cf6277 | ||
|
|
66e09072fa | ||
|
|
16bff39991
|
||
|
|
0a23fd79b1
|
||
|
|
284e61a026 | ||
|
|
96873d8e59 | ||
|
|
e12d7191ec | ||
|
|
70e6b2e731 | ||
|
|
a7473e2603 | ||
|
|
e4f1fa0c4e | ||
|
|
682119e432 | ||
|
|
1b0e4a7287 | ||
|
|
5928880b4a | ||
|
|
ff4eddea2f | ||
|
|
d55db51b77 | ||
|
|
e2ed58c4de | ||
|
|
4aff9e8638 | ||
|
|
85279ebb1c | ||
|
|
e07254bc71 | ||
|
|
0a159e7e71 | ||
|
|
02394c3168 | ||
|
|
e4c885fbf2 | ||
|
|
d95e3cf86b | ||
|
|
b61e30c421 | ||
|
|
3033620e62 | ||
|
|
455173c16f | ||
|
|
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
|
No files matched your search
@@ -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.3
|
||||||
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,5 +22,9 @@ 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
|
||||||
|
|
||||||
|
# ---
|
||||||
@@ -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
|
||||||
|
|
||||||
|
---
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: cluster-fun-tank
|
name: mazanoke
|
||||||
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: mazanoke
|
||||||
name: cluster-fun (v2)
|
name: cluster-fun (v2)
|
||||||
source:
|
source:
|
||||||
path: manifests/tank
|
path: manifests/mazanoke
|
||||||
repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git"
|
repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git"
|
||||||
targetRevision: HEAD
|
targetRevision: HEAD
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
@@ -23,4 +23,3 @@ spec:
|
|||||||
jsonPointers:
|
jsonPointers:
|
||||||
- /data
|
- /data
|
||||||
|
|
||||||
---
|
|
||||||
@@ -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
|
||||||
|
|
||||||
@@ -1,17 +1,17 @@
|
|||||||
apiVersion: argoproj.io/v1alpha1
|
apiVersion: argoproj.io/v1alpha1
|
||||||
kind: Application
|
kind: Application
|
||||||
metadata:
|
metadata:
|
||||||
name: cluster-fun-mastodon-digest
|
name: cluster-fun-priority-classes
|
||||||
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: mastodon-digest
|
namespace: kube-system
|
||||||
name: cluster-fun (v2)
|
name: cluster-fun (v2)
|
||||||
source:
|
source:
|
||||||
path: manifests/mastodon-digest
|
path: manifests/priority-classes
|
||||||
repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git"
|
repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git"
|
||||||
targetRevision: HEAD
|
targetRevision: HEAD
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
@@ -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: {}
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: sre-agent
|
||||||
|
namespace: argocd
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
project: cluster.fun
|
||||||
|
destination:
|
||||||
|
namespace: default
|
||||||
|
name: cluster-fun (v2)
|
||||||
|
source:
|
||||||
|
path: manifests/sre-agent
|
||||||
|
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: 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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: url-to-grist
|
||||||
|
namespace: argocd
|
||||||
|
finalizers:
|
||||||
|
- resources-finalizer.argocd.argoproj.io
|
||||||
|
spec:
|
||||||
|
project: cluster.fun
|
||||||
|
destination:
|
||||||
|
namespace: cloudnative-now
|
||||||
|
name: cluster-fun (v2)
|
||||||
|
source:
|
||||||
|
path: manifests/url-to-grist
|
||||||
|
repoURL: "https://git.cluster.fun/AverageMarcus/cluster.fun.git"
|
||||||
|
targetRevision: HEAD
|
||||||
|
syncPolicy:
|
||||||
|
syncOptions:
|
||||||
|
- CreateNamespace=true
|
||||||
|
automated: {}
|
||||||
|
ignoreDifferences:
|
||||||
|
- kind: Secret
|
||||||
|
jsonPointers:
|
||||||
|
- /data
|
||||||
|
---
|
||||||
@@ -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
|
||||||
|
|
||||||
@@ -18,6 +18,7 @@ spec:
|
|||||||
- ombi.cluster.fun
|
- ombi.cluster.fun
|
||||||
- bsky-feeds.cluster.fun
|
- bsky-feeds.cluster.fun
|
||||||
- ai.cluster.fun
|
- ai.cluster.fun
|
||||||
|
- hermes-hooks.cluster.fun
|
||||||
secretName: non-auth-proxy-ingress
|
secretName: non-auth-proxy-ingress
|
||||||
rules:
|
rules:
|
||||||
- host: hello-world.cluster.fun
|
- host: hello-world.cluster.fun
|
||||||
@@ -60,3 +61,13 @@ spec:
|
|||||||
name: tailscale-proxy
|
name: tailscale-proxy
|
||||||
port:
|
port:
|
||||||
name: non-auth
|
name: non-auth
|
||||||
|
- host: hermes-hooks.cluster.fun
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: tailscale-proxy
|
||||||
|
port:
|
||||||
|
name: non-auth
|
||||||
@@ -38,6 +38,7 @@ spec:
|
|||||||
labels:
|
labels:
|
||||||
app: internal-proxy
|
app: internal-proxy
|
||||||
spec:
|
spec:
|
||||||
|
priorityClassName: critical
|
||||||
serviceAccountName: default
|
serviceAccountName: default
|
||||||
dnsPolicy: ClusterFirst
|
dnsPolicy: ClusterFirst
|
||||||
dnsConfig:
|
dnsConfig:
|
||||||
@@ -45,7 +46,7 @@ spec:
|
|||||||
- 100.100.100.100
|
- 100.100.100.100
|
||||||
containers:
|
containers:
|
||||||
- name: proxy
|
- name: proxy
|
||||||
image: rg.fr-par.scw.cloud/averagemarcus/proxy:latest
|
image: rg.fr-par.scw.cloud/averagemarcus/proxy:latest@sha256:2a401eec859bf665e75bbb737b3b1709cd1fa74576e4ba8c7daeb63d8b3e8d51
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
env:
|
env:
|
||||||
- name: PROXY_DESTINATION
|
- name: PROXY_DESTINATION
|
||||||
@@ -67,7 +68,7 @@ spec:
|
|||||||
mountPath: /config/
|
mountPath: /config/
|
||||||
|
|
||||||
- name: oauth-proxy
|
- name: oauth-proxy
|
||||||
image: quay.io/oauth2-proxy/oauth2-proxy:v7.12.0
|
image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.6@sha256:c3415e8660af553f5e18f5d90db050614c02493c0ac6260ac59442f6d9b12048
|
||||||
args:
|
args:
|
||||||
- --cookie-secure=false
|
- --cookie-secure=false
|
||||||
- --provider=oidc
|
- --provider=oidc
|
||||||
@@ -101,9 +102,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,9 +29,10 @@ 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@sha256:1ec2b770a5ffe986bdfbf24094ed945191bd7b9dd27a7b3212af92a3dfcea032
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: black-hole
|
- name: black-hole
|
||||||
image: averagemarcus/black-hole:latest
|
image: averagemarcus/black-hole:latest@sha256:1e9cb8396f67aeb25a9eaaf14b369a53a7b300ae465859f10d9f0f88ef3023e1
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 9090
|
- containerPort: 9090
|
||||||
|
|||||||
@@ -27,9 +27,18 @@ 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@sha256:d40aa67a51924a89ad0ac6f7387a63f2f41e9bff7b5e4c6f7675cd43354b0c28
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8000
|
- containerPort: 8000
|
||||||
|
|||||||
@@ -29,16 +29,16 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: web
|
- name: web
|
||||||
image: rg.fr-par.scw.cloud/averagemarcus/bsky-screenshot:latest
|
image: rg.fr-par.scw.cloud/averagemarcus/bsky-screenshot:latest@sha256:0fae863fc3123f73aa6268a125d5bf2c2122c8a3f2aedaf129462e668e56ab23
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
name: web
|
name: web
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
memory: 20Mi
|
memory: 105Mi
|
||||||
requests:
|
requests:
|
||||||
memory: 20Mi
|
memory: 105Mi
|
||||||
---
|
---
|
||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: web
|
- name: web
|
||||||
image: rg.fr-par.scw.cloud/averagemarcus/cel-tester:latest
|
image: rg.fr-par.scw.cloud/averagemarcus/cel-tester:latest@sha256:caf9044a19fa0e14f92232f68c1fe808249580d33619ea3706ff935bd2853559
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|||||||
@@ -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,9 +38,10 @@ 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@sha256:90585c61b82e124f9179b60fc8231247e3b37cab76fd7c0185aeb4a4276a0ab4
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8000
|
- containerPort: 8000
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -29,14 +29,19 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: web
|
- name: web
|
||||||
image: rg.fr-par.scw.cloud/averagemarcus/cors-proxy:latest
|
image: rg.fr-par.scw.cloud/averagemarcus/cors-proxy:latest@sha256:306783c26392f92af7e34d173493b0f8d6fd7623421d16a02fad26857317aeec
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8000
|
- containerPort: 8000
|
||||||
name: web
|
name: web
|
||||||
env:
|
env:
|
||||||
- name: ALLOWLIST
|
- name: ALLOWLIST
|
||||||
value: cdn.bsky.app
|
value: cdn.bsky.app,en.wikipedia.org
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 184M
|
||||||
|
limits:
|
||||||
|
memory: 184M
|
||||||
---
|
---
|
||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
|
|||||||
@@ -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.12.0
|
image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.6@sha256:c3415e8660af553f5e18f5d90db050614c02493c0ac6260ac59442f6d9b12048
|
||||||
name: oauth-proxy
|
name: oauth-proxy
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8000
|
- containerPort: 8000
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ spec:
|
|||||||
- name: docker-config
|
- name: docker-config
|
||||||
containers:
|
containers:
|
||||||
- name: web
|
- name: web
|
||||||
image: rg.fr-par.scw.cloud/averagemarcus/devstats-viewer:latest
|
image: rg.fr-par.scw.cloud/averagemarcus/devstats-viewer:latest@sha256:ecf19a3dd9ecc16f78d0a276aa977a7a8ee17635d5ee68ea86e5ee0a2e1ebe48
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 80
|
- containerPort: 80
|
||||||
|
|||||||
@@ -29,11 +29,16 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: web
|
- name: web
|
||||||
image: rg.fr-par.scw.cloud/averagemarcus/feed-fetcher:latest
|
image: rg.fr-par.scw.cloud/averagemarcus/feed-fetcher:latest@sha256:fe79408673dda5c73ed05e38cac441cbbbebd264548318f1e4701751c6a32b35
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
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
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: sync
|
- name: sync
|
||||||
image: rg.fr-par.scw.cloud/averagemarcus/git-sync:latest
|
image: rg.fr-par.scw.cloud/averagemarcus/git-sync:latest@sha256:6060f0e77e324179cf6b2136a180ceecbcc64344682154b8848434fd105323e7
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
env:
|
env:
|
||||||
- name: GITHUB_TOKEN
|
- name: GITHUB_TOKEN
|
||||||
|
|||||||
@@ -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.24.5
|
image: gitea/gitea:28.3.0@sha256:8967bf9deaf3c5c4adae13519436dc1b20c646ac83fe37ae810c933a1045227d
|
||||||
env:
|
env:
|
||||||
- name: APP_NAME
|
- name: APP_NAME
|
||||||
value: "Git"
|
value: "Git"
|
||||||
@@ -66,6 +67,8 @@ spec:
|
|||||||
value: arc-green
|
value: arc-green
|
||||||
- name: ALLOWED_HOST_LIST
|
- name: ALLOWED_HOST_LIST
|
||||||
value: "*"
|
value: "*"
|
||||||
|
- name: EGRESS_MODE
|
||||||
|
value: "lax"
|
||||||
- name: SECRET_KEY
|
- name: SECRET_KEY
|
||||||
valueFrom:
|
valueFrom:
|
||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
@@ -76,7 +79,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.5.7
|
image: x1unix/go-playground:3.0.0@sha256:4c4a9bcbc0413faaacc8eb0a425922858a55b73ab03f5359082217d5b93cc000
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8000
|
- containerPort: 8000
|
||||||
|
|||||||
@@ -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.7.3
|
image: gristlabs/grist-oss:1.7.22@sha256:40d2c0ce0c29b2aa1ec1dcf9652ec26a13a8f2b4b44116733bcede428afd27dc
|
||||||
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
|
||||||
@@ -35,6 +35,18 @@ data:
|
|||||||
cnsmunich-feedback: https://yay-or-nay.cluster.fun/feedback/20UETBI0
|
cnsmunich-feedback: https://yay-or-nay.cluster.fun/feedback/20UETBI0
|
||||||
containerdays25: https://speaking.marcusnoble.co.uk/HARSlE/the-future-of-kubernetes-admission-logic
|
containerdays25: https://speaking.marcusnoble.co.uk/HARSlE/the-future-of-kubernetes-admission-logic
|
||||||
containerdays25-feedback: https://yay-or-nay.cluster.fun/feedback/F8P351QK
|
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
|
||||||
|
cdh26: https://speaking.marcusnoble.co.uk/dvat0w/kube-oddities-the-quirks-that-keep-kubernetes-interesting-marcus-noble-mark-sagi-kazar
|
||||||
|
kcdsofia26: https://speaking.marcusnoble.co.uk/GFJgtL/kube-oddities-the-quirks-that-keep-kubernetes-interesting-marcus-noble-mark-sagi-kazar
|
||||||
|
cndpoland26: https://speaking.marcusnoble.co.uk/sZ2Ulk/kube-oddities-the-quirks-that-keep-kubernetes-interesting-marcus-noble-mark-sagi-kazar
|
||||||
|
kcduk2026: https://speaking.marcusnoble.co.uk/Xpj6t6/pod-deep-dive-the-interesting-bits
|
||||||
|
kcduk2026-feedback: https://yay-or-nay.cluster.fun/feedback/BS01AM1M
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
@@ -59,6 +71,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:
|
||||||
@@ -69,9 +83,10 @@ 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@sha256:11d3908c87c91c3e9b0ac64377a016f967eb96d92c5a478f61ac4d6e4b7128f9
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 5050
|
- containerPort: 5050
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: web
|
- name: web
|
||||||
image: rg.fr-par.scw.cloud/averagemarcus/marcusnoble:latest
|
image: rg.fr-par.scw.cloud/averagemarcus/marcusnoble:latest@sha256:258e639003301f9a41a796c74a963b624454de6dad2dd90f0a1eb745027cfc88
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8080
|
- containerPort: 8080
|
||||||
@@ -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.12.0
|
|
||||||
name: oauth-proxy
|
|
||||||
ports:
|
|
||||||
- containerPort: 8000
|
|
||||||
protocol: TCP
|
|
||||||
name: auth
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 50Mi
|
|
||||||
requests:
|
|
||||||
memory: 50Mi
|
|
||||||
|
|
||||||
- name: web
|
|
||||||
image: nginx:stable
|
|
||||||
imagePullPolicy: IfNotPresent
|
|
||||||
ports:
|
|
||||||
- containerPort: 80
|
|
||||||
name: web
|
|
||||||
volumeMounts:
|
|
||||||
- name: html
|
|
||||||
mountPath: /usr/share/nginx/html
|
|
||||||
- name: index
|
|
||||||
mountPath: /usr/share/nginx/html/index.html
|
|
||||||
subPath: index.html
|
|
||||||
|
|
||||||
- name: digest
|
|
||||||
image: rg.fr-par.scw.cloud/averagemarcus-private/mastodon-digest:latest
|
|
||||||
imagePullPolicy: Always
|
|
||||||
env:
|
|
||||||
- name: CONFIG_FILE
|
|
||||||
value: /config.json
|
|
||||||
envFrom:
|
|
||||||
- secretRef:
|
|
||||||
name: mastodon-digest
|
|
||||||
volumeMounts:
|
|
||||||
- name: config
|
|
||||||
mountPath: /config.json
|
|
||||||
subPath: config.json
|
|
||||||
- name: html
|
|
||||||
mountPath: /usr/share/nginx/html
|
|
||||||
volumes:
|
|
||||||
- name: html
|
|
||||||
emptyDir: {}
|
|
||||||
- name: config
|
|
||||||
configMap:
|
|
||||||
name: config
|
|
||||||
- name: index
|
|
||||||
configMap:
|
|
||||||
name: index
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: mastodon-digest
|
|
||||||
namespace: mastodon-digest
|
|
||||||
annotations:
|
|
||||||
cert-manager.io/cluster-issuer: letsencrypt
|
|
||||||
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
|
||||||
spec:
|
|
||||||
ingressClassName: nginx
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- mastodon-digest.cluster.fun
|
|
||||||
secretName: mastodon-digest-ingress
|
|
||||||
rules:
|
|
||||||
- host: mastodon-digest.cluster.fun
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: ImplementationSpecific
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: mastodon-digest
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
@@ -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.7@sha256:ca83cddd90cd1e4b43102884bf39025731a1c7569f3bbda9d6530de72528cbab
|
||||||
|
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:v3.1.2
|
image: ghcr.io/mealie-recipes/mealie:v3.30.0@sha256:90f83da6f3ab0a421efc827118a556168573930105f13fa3321768f42163d784
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
envFrom:
|
envFrom:
|
||||||
- secretRef:
|
- secretRef:
|
||||||
@@ -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.17.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.15"
|
|
||||||
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.125.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.6@sha256:b8e7d1093144fd088f425ff003d75a4aa405de075db78dae3bc563730b1bd07a
|
||||||
|
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@sha256:8297aa4a92787ebda42827be98da6f7a77206f4c8d140858626c97c469997b67
|
||||||
|
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.17.0"
|
image: "registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.20.0@sha256:42cfe3723a5f058171c627537fb57a3ea0f26e4380fa18555a95cb1a1b4cfc5b"
|
||||||
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.9.1"
|
image: "prom/node-exporter:v1.12.1@sha256:1b4e4438faca4dd7e001dd445d161a4a2091b0fededa84093b3a8dfeae1f1be0"
|
||||||
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.15"
|
image: "grafana/promtail:2.9.17@sha256:b28495fdab552b183428c5b5cebbf258231fc5f00be7724be2bc091ad21ac390"
|
||||||
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.125.1"
|
image: "victoriametrics/vmagent:v1.155.0@sha256:8e3c03905be15bba8312d4868e8ae6f9fc2fefee0a41d544472034249ca42bb4"
|
||||||
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:31.0.8-apache"
|
image: "nextcloud:35.0.2-apache@sha256:786c102155d2717ba0f53a62b3fdd7a1354edc48e800b94dbe32294d9a5752a2"
|
||||||
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:35.0.2-apache@sha256:786c102155d2717ba0f53a62b3fdd7a1354edc48e800b94dbe32294d9a5752a2"
|
||||||
|
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:31.0.8-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
|
||||||
|
|||||||
@@ -492,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.13.2@sha256:1f7eaeb01933e719c8a9f4acd8181e555e582330c7d50f24484fb64d2ba9b2ef
|
image: registry.k8s.io/ingress-nginx/controller:v1.15.1@sha256:594ceea76b01c592858f803f9ff4d2cb40542cae2060410b2c95f75907d659e1
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
lifecycle:
|
lifecycle:
|
||||||
preStop:
|
preStop:
|
||||||
@@ -533,7 +533,7 @@ spec:
|
|||||||
resources:
|
resources:
|
||||||
requests:
|
requests:
|
||||||
cpu: 100m
|
cpu: 100m
|
||||||
memory: 90Mi
|
memory: 150Mi
|
||||||
securityContext:
|
securityContext:
|
||||||
allowPrivilegeEscalation: true
|
allowPrivilegeEscalation: true
|
||||||
capabilities:
|
capabilities:
|
||||||
|
|||||||
@@ -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.1.0-18
|
image: nodered/node-red:4.1.17-18@sha256:161239fa8c3ebc2e6c5c831eb536960d4bdec677c7117a738d89a106cc2755a6
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
command:
|
command:
|
||||||
- bash
|
- bash
|
||||||
@@ -73,11 +73,16 @@ spec:
|
|||||||
mountPath: /data
|
mountPath: /data
|
||||||
containers:
|
containers:
|
||||||
- name: web
|
- name: web
|
||||||
image: nodered/node-red:4.1.0-18
|
image: nodered/node-red:4.1.17-18@sha256:161239fa8c3ebc2e6c5c831eb536960d4bdec677c7117a738d89a106cc2755a6
|
||||||
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
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: web
|
- name: web
|
||||||
image: rg.fr-par.scw.cloud/averagemarcus/opengraph-image-gen:latest
|
image: rg.fr-par.scw.cloud/averagemarcus/opengraph-image-gen:latest@sha256:97aea61e4db1e6d441fdfecd28f614b1e5342bfacd3a5ca6021ffca5c03db833
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 3000
|
- containerPort: 3000
|
||||||
|
|||||||
@@ -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.87.3
|
image: outlinewiki/outline:1.12.0@sha256:25d6a2ced2f1f0cf03c09abd776d87ba31941ed96d3a99992aa84b3bd0afc074
|
||||||
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@sha256:c4b30977264a76e335740089e693a52a0d0d616330dec7f93c7b96beef7b4a02
|
||||||
|
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@sha256:0253f17c07f6c484b6fbef65867863541494e063355d39757ca27963404864d4
|
||||||
|
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
|
|
||||||
---
|
|
||||||
@@ -29,7 +29,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: web
|
- name: web
|
||||||
image: rg.fr-par.scw.cloud/averagemarcus/qr:latest
|
image: rg.fr-par.scw.cloud/averagemarcus/qr:latest@sha256:e98db60ab26d5769bc5b17384fcb10d98e71b353fc23d154d5049fd88bab00eb
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8080
|
- containerPort: 8080
|
||||||
|
|||||||
@@ -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/bitnamilegacy/redis:7.2.4-debian-11-r11
|
image: docker.io/bitnamilegacy/redis:7.2.4-debian-11-r11@sha256:c81b0644726b22fa65669b427610701e86dceb0007438f5d75d271b3197a48bf
|
||||||
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/bitnamilegacy/redis:7.2.4-debian-11-r11
|
image: docker.io/bitnamilegacy/redis:7.2.4-debian-11-r11@sha256:c81b0644726b22fa65669b427610701e86dceb0007438f5d75d271b3197a48bf
|
||||||
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.12
|
image: ghcr.io/miniflux/miniflux:2.3.5@sha256:8fd6c3c434ecc3d4083306f83e03c0bb74c632e0f8378da5ead7e1773b0b89c9
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
envFrom:
|
envFrom:
|
||||||
- configMapRef:
|
- configMapRef:
|
||||||
|
|||||||
@@ -1,151 +0,0 @@
|
|||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: docker-config
|
|
||||||
namespace: social-to-grist
|
|
||||||
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: social-to-grist-auth
|
|
||||||
namespace: social-to-grist
|
|
||||||
annotations:
|
|
||||||
kube-1password: mr6spkkx7n3memkbute6ojaarm
|
|
||||||
kube-1password/vault: Kubernetes
|
|
||||||
type: Opaque
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: social-to-grist
|
|
||||||
namespace: social-to-grist
|
|
||||||
annotations:
|
|
||||||
kube-1password: oa3ycnui3ji4lc665bifaao63q
|
|
||||||
kube-1password/vault: Kubernetes
|
|
||||||
kube-1password/secret-text-parse: "true"
|
|
||||||
type: Opaque
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: social-to-grist
|
|
||||||
namespace: social-to-grist
|
|
||||||
spec:
|
|
||||||
type: ClusterIP
|
|
||||||
ports:
|
|
||||||
- port: 80
|
|
||||||
targetPort: auth
|
|
||||||
name: web
|
|
||||||
selector:
|
|
||||||
app: social-to-grist
|
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: social-to-grist
|
|
||||||
namespace: social-to-grist
|
|
||||||
spec:
|
|
||||||
replicas: 1
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
app: social-to-grist
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
labels:
|
|
||||||
app: social-to-grist
|
|
||||||
spec:
|
|
||||||
imagePullSecrets:
|
|
||||||
- name: docker-config
|
|
||||||
containers:
|
|
||||||
- args:
|
|
||||||
- --cookie-secure=false
|
|
||||||
- --provider=oidc
|
|
||||||
- --provider-display-name=Auth0
|
|
||||||
- --upstream=http://localhost:8080
|
|
||||||
- --http-address=$(HOST_IP):8000
|
|
||||||
- --redirect-url=https://social-to-grist.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: social-to-grist-auth
|
|
||||||
- name: OAUTH2_PROXY_CLIENT_SECRET
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
key: password
|
|
||||||
name: social-to-grist-auth
|
|
||||||
image: quay.io/oauth2-proxy/oauth2-proxy:v7.12.0
|
|
||||||
name: oauth-proxy
|
|
||||||
ports:
|
|
||||||
- containerPort: 8000
|
|
||||||
protocol: TCP
|
|
||||||
name: auth
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 50Mi
|
|
||||||
requests:
|
|
||||||
memory: 50Mi
|
|
||||||
- name: web
|
|
||||||
image: rg.fr-par.scw.cloud/averagemarcus-private/social-to-grist:latest
|
|
||||||
imagePullPolicy: Always
|
|
||||||
env:
|
|
||||||
- name: PORT
|
|
||||||
value: "8080"
|
|
||||||
envFrom:
|
|
||||||
- secretRef:
|
|
||||||
name: "social-to-grist"
|
|
||||||
ports:
|
|
||||||
- containerPort: 8080
|
|
||||||
name: web
|
|
||||||
resources:
|
|
||||||
limits:
|
|
||||||
memory: 50Mi
|
|
||||||
requests:
|
|
||||||
memory: 50Mi
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: social-to-grist
|
|
||||||
namespace: social-to-grist
|
|
||||||
annotations:
|
|
||||||
cert-manager.io/cluster-issuer: letsencrypt
|
|
||||||
kubernetes.io/ingress.class: traefik
|
|
||||||
traefik.ingress.kubernetes.io/router.tls: "true"
|
|
||||||
ingress.kubernetes.io/ssl-redirect: "true"
|
|
||||||
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
|
||||||
spec:
|
|
||||||
tls:
|
|
||||||
- hosts:
|
|
||||||
- social-to-grist.cluster.fun
|
|
||||||
secretName: social-to-grist-ingress
|
|
||||||
rules:
|
|
||||||
- host: social-to-grist.cluster.fun
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
- path: /
|
|
||||||
pathType: ImplementationSpecific
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: social-to-grist
|
|
||||||
port:
|
|
||||||
number: 80
|
|
||||||
@@ -92,7 +92,7 @@ spec:
|
|||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
key: password
|
key: password
|
||||||
name: social-to-rolodex-auth
|
name: social-to-rolodex-auth
|
||||||
image: quay.io/oauth2-proxy/oauth2-proxy:v7.12.0
|
image: quay.io/oauth2-proxy/oauth2-proxy:v7.15.6@sha256:c3415e8660af553f5e18f5d90db050614c02493c0ac6260ac59442f6d9b12048
|
||||||
name: oauth-proxy
|
name: oauth-proxy
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8000
|
- containerPort: 8000
|
||||||
|
|||||||
@@ -0,0 +1,131 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: sre-agent
|
||||||
|
namespace: default
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: sre-agent
|
||||||
|
namespace: default
|
||||||
|
annotations:
|
||||||
|
kubernetes.io/service-account.name: sre-agent
|
||||||
|
type: kubernetes.io/service-account-token
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
name: sre-agent
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: sre-agent
|
||||||
|
rules:
|
||||||
|
# Node-level diagnostics
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["nodes"]
|
||||||
|
verbs: ["get", "list", "watch"]
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["nodes/proxy", "nodes/metrics", "nodes/stats"]
|
||||||
|
verbs: ["get", "list"]
|
||||||
|
|
||||||
|
# Pod diagnostics
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["pods", "pods/log", "pods/status", "pods/ephemeralcontainers"]
|
||||||
|
verbs: ["get", "list", "watch"]
|
||||||
|
|
||||||
|
# Services, endpoints, networking
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["services", "endpoints", "endpointslices", "namespaces"]
|
||||||
|
verbs: ["get", "list", "watch"]
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["persistentvolumeclaims", "persistentvolumes"]
|
||||||
|
verbs: ["get", "list", "watch"]
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["events"]
|
||||||
|
verbs: ["get", "list", "watch"]
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["configmaps", "secrets"]
|
||||||
|
verbs: ["get", "list"] # readable only, no modify/delete
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["resourcequotas", "limitranges"]
|
||||||
|
verbs: ["get", "list"]
|
||||||
|
|
||||||
|
# Network policies
|
||||||
|
- apiGroups: ["networking.k8s.io"]
|
||||||
|
resources: ["*"]
|
||||||
|
verbs: ["get", "list", "watch"]
|
||||||
|
- apiGroups: ["discovery.k8s.io"]
|
||||||
|
resources: ["*"]
|
||||||
|
verbs: ["get", "list", "watch"]
|
||||||
|
|
||||||
|
# Workloads
|
||||||
|
- apiGroups: ["apps"]
|
||||||
|
resources: ["*"]
|
||||||
|
verbs: ["get", "list", "watch"]
|
||||||
|
- apiGroups: ["apps"]
|
||||||
|
resources: ["deployments/scale", "replicasets/scale"]
|
||||||
|
verbs: ["get"]
|
||||||
|
|
||||||
|
# Jobs & cronjobs
|
||||||
|
- apiGroups: ["batch"]
|
||||||
|
resources: ["*"]
|
||||||
|
verbs: ["get", "list", "watch"]
|
||||||
|
- apiGroups: ["batch"]
|
||||||
|
resources: ["jobs/log"]
|
||||||
|
verbs: ["get", "list"]
|
||||||
|
|
||||||
|
# Autoscaling
|
||||||
|
- apiGroups: ["autoscaling"]
|
||||||
|
resources: ["*"]
|
||||||
|
verbs: ["get", "list", "watch"]
|
||||||
|
|
||||||
|
# RBAC visibility (diagnose who owns what)
|
||||||
|
- apiGroups: ["rbac.authorization.k8s.io"]
|
||||||
|
resources: ["*"]
|
||||||
|
verbs: ["get", "list", "watch"]
|
||||||
|
|
||||||
|
# Custom Resource Definitions (so we can inspect custom resources)
|
||||||
|
- apiGroups: ["apiextensions.k8s.io"]
|
||||||
|
resources: ["customresourcedefinitions"]
|
||||||
|
verbs: ["get", "list", "watch"]
|
||||||
|
|
||||||
|
# Priority classes
|
||||||
|
- apiGroups: ["scheduling.k8s.io"]
|
||||||
|
resources: ["priorityclasses"]
|
||||||
|
verbs: ["get", "list"]
|
||||||
|
|
||||||
|
# Certificate rotation
|
||||||
|
- apiGroups: ["certificates.k8s.io"]
|
||||||
|
resources: ["certificatesigningrequests", "certificatesigningrequests/approval"]
|
||||||
|
verbs: ["get", "list", "watch"]
|
||||||
|
|
||||||
|
# Metrics Server (if installed)
|
||||||
|
- apiGroups: ["metrics.k8s.io"]
|
||||||
|
resources: ["*"]
|
||||||
|
verbs: ["get", "list"]
|
||||||
|
|
||||||
|
# Admission controllers / pod security (diagnostic)
|
||||||
|
- apiGroups: ["policy"]
|
||||||
|
resources: ["*"]
|
||||||
|
verbs: ["get", "list", "watch"]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: sre-agent-binding
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: sre-agent
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: sre-agent
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: sre-agent
|
||||||
|
namespace: default
|
||||||
@@ -27,9 +27,10 @@ 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@sha256:7e74cd6569ed68d46b012ffbd672be9e4c6422b28fb13eb5d83b2c1dc85e9cb9
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8080
|
- containerPort: 8080
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -5,9 +5,7 @@ metadata:
|
|||||||
namespace: talks
|
namespace: talks
|
||||||
annotations:
|
annotations:
|
||||||
cert-manager.io/cluster-issuer: letsencrypt
|
cert-manager.io/cluster-issuer: letsencrypt
|
||||||
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
|
nginx.ingress.kubernetes.io/permanent-redirect: https://speaking.marcusnoble.co.uk
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: nginx
|
ingressClassName: nginx
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -27,9 +27,10 @@ spec:
|
|||||||
labels:
|
labels:
|
||||||
app: text-to-dxf
|
app: text-to-dxf
|
||||||
spec:
|
spec:
|
||||||
|
priorityClassName: low
|
||||||
containers:
|
containers:
|
||||||
- name: web
|
- name: web
|
||||||
image: rg.fr-par.scw.cloud/averagemarcus/text-to-dxf:latest
|
image: rg.fr-par.scw.cloud/averagemarcus/text-to-dxf:latest@sha256:f1ce90feec0dae575979c7fa83b855ced939efe23d749cc2615f5d43a08cacb0
|
||||||
imagePullPolicy: Always
|
imagePullPolicy: Always
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8080
|
- containerPort: 8080
|
||||||
@@ -45,11 +46,10 @@ metadata:
|
|||||||
namespace: text-to-dxf
|
namespace: text-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"
|
||||||
spec:
|
spec:
|
||||||
|
ingressClassName: nginx
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- text-to-dxf.cluster.fun
|
- text-to-dxf.cluster.fun
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ spec:
|
|||||||
- --entrypoints.websecure.http.tls=true
|
- --entrypoints.websecure.http.tls=true
|
||||||
- --entrypoints.web.http.redirections.entrypoint.to=websecure
|
- --entrypoints.web.http.redirections.entrypoint.to=websecure
|
||||||
- --entrypoints.web.http.redirections.entrypoint.scheme=https
|
- --entrypoints.web.http.redirections.entrypoint.scheme=https
|
||||||
image: rancher/mirrored-library-traefik:2.11.29
|
image: rancher/mirrored-library-traefik:2.11.50@sha256:e4cf36c7f13f76ad750720a8b51e9d2458964961b50a0148a806d589b5cfa88b
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
failureThreshold: 3
|
failureThreshold: 3
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
kind: PersistentVolumeClaim
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: trek-data
|
||||||
|
namespace: trek
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 2Gi
|
||||||
|
storageClassName: sbs-default-retain
|
||||||
|
---
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
apiVersion: v1
|
||||||
|
metadata:
|
||||||
|
name: trek-uploads
|
||||||
|
namespace: trek
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 2Gi
|
||||||
|
storageClassName: sbs-default-retain
|
||||||
|
---
|
||||||
@@ -0,0 +1,157 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: trek
|
||||||
|
namespace: trek
|
||||||
|
labels:
|
||||||
|
app: trek
|
||||||
|
app.kubernetes.io/name: trek
|
||||||
|
annotations:
|
||||||
|
kube-1password: irpjqi7ppvbvldfni7ywgorpgi
|
||||||
|
kube-1password/vault: Kubernetes
|
||||||
|
kube-1password/secret-text-parse: "true"
|
||||||
|
type: Opaque
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: trek
|
||||||
|
namespace: trek
|
||||||
|
labels:
|
||||||
|
app: trek
|
||||||
|
app.kubernetes.io/name: trek
|
||||||
|
annotations:
|
||||||
|
reloader.stakater.com/match: "true"
|
||||||
|
data:
|
||||||
|
NODE_ENV: "production"
|
||||||
|
PORT: "3000"
|
||||||
|
TZ: "UTC"
|
||||||
|
LOG_LEVEL: "info"
|
||||||
|
DEFAULT_LANGUAGE: "en"
|
||||||
|
ALLOWED_ORIGINS: "https://trek.cluster.fun"
|
||||||
|
APP_URL: "https://trek.cluster.fun"
|
||||||
|
FORCE_HTTPS: "false"
|
||||||
|
COOKIE_SECURE: "true"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: trek
|
||||||
|
namespace: trek
|
||||||
|
labels:
|
||||||
|
app: trek
|
||||||
|
app.kubernetes.io/name: trek
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: trek
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: trek
|
||||||
|
app.kubernetes.io/name: trek
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: trek
|
||||||
|
image: mauriceboe/trek:5.1.1@sha256:7068cc86c0d4d5aa9b55aeffd03966f7458352bcb3e010721e3d7d6899ac60bd
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: trek
|
||||||
|
- secretRef:
|
||||||
|
name: trek
|
||||||
|
ports:
|
||||||
|
- containerPort: 3000
|
||||||
|
name: web
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /app/data
|
||||||
|
name: data
|
||||||
|
- mountPath: /app/uploads
|
||||||
|
name: uploads
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /api/health
|
||||||
|
port: 3000
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 30
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /api/health
|
||||||
|
port: 3000
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 10
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 300m
|
||||||
|
memory: 400Mi
|
||||||
|
limits:
|
||||||
|
cpu: 700m
|
||||||
|
memory: 800Mi
|
||||||
|
volumes:
|
||||||
|
- name: data
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: trek-data
|
||||||
|
- name: uploads
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: trek-uploads
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: trek
|
||||||
|
namespace: trek
|
||||||
|
labels:
|
||||||
|
app: trek
|
||||||
|
app.kubernetes.io/name: trek
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: web
|
||||||
|
name: web
|
||||||
|
selector:
|
||||||
|
app: trek
|
||||||
|
---
|
||||||
|
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: trek
|
||||||
|
namespace: trek
|
||||||
|
labels:
|
||||||
|
app: trek
|
||||||
|
app.kubernetes.io/name: trek
|
||||||
|
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:
|
||||||
|
- trek.cluster.fun
|
||||||
|
secretName: trek-ingress
|
||||||
|
rules:
|
||||||
|
- host: trek.cluster.fun
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: trek
|
||||||
|
port:
|
||||||
|
name: web
|
||||||
@@ -0,0 +1,117 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: url-to-grist
|
||||||
|
namespace: cloudnative-now
|
||||||
|
annotations:
|
||||||
|
kube-1password: bu4lczquzosu3yxhyrzbtepply
|
||||||
|
kube-1password/vault: Kubernetes
|
||||||
|
kube-1password/secret-text-parse: "true"
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: url-to-grist
|
||||||
|
app.kubernetes.io/part-of: cloudnative.now
|
||||||
|
type: Opaque
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: url-to-grist
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: url-to-grist
|
||||||
|
app.kubernetes.io/part-of: cloudnative.now
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: web
|
||||||
|
name: web
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: url-to-grist
|
||||||
|
app.kubernetes.io/part-of: cloudnative.now
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: url-to-grist
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: url-to-grist
|
||||||
|
app.kubernetes.io/part-of: cloudnative.now
|
||||||
|
annotations:
|
||||||
|
secret.reloader.stakater.com/reload: "url-to-grist"
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: url-to-grist
|
||||||
|
app.kubernetes.io/part-of: cloudnative.now
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: url-to-grist
|
||||||
|
app.kubernetes.io/part-of: cloudnative.now
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: url-to-grist
|
||||||
|
image: ghcr.io/namelessplanet/url-to-grist:v1.6.1@sha256:7912e3340b071244d7b807759608c6bc6f8e563f548485379247ef1106a82be5
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
env:
|
||||||
|
- name: PORT
|
||||||
|
value: "8080"
|
||||||
|
envFrom:
|
||||||
|
- secretRef:
|
||||||
|
name: "url-to-grist"
|
||||||
|
ports:
|
||||||
|
- containerPort: 8080
|
||||||
|
name: web
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
port: web
|
||||||
|
path: /healthz
|
||||||
|
initialDelaySeconds: 1
|
||||||
|
periodSeconds: 5
|
||||||
|
successThreshold: 1
|
||||||
|
failureThreshold: 3
|
||||||
|
timeoutSeconds: 3
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
port: web
|
||||||
|
path: /healthz
|
||||||
|
initialDelaySeconds: 1
|
||||||
|
periodSeconds: 5
|
||||||
|
successThreshold: 1
|
||||||
|
failureThreshold: 3
|
||||||
|
timeoutSeconds: 3
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 20Mi
|
||||||
|
requests:
|
||||||
|
memory: 20Mi
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: url-to-grist
|
||||||
|
namespace: cloudnative-now
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: url-to-grist
|
||||||
|
app.kubernetes.io/part-of: cloudnative.now
|
||||||
|
annotations:
|
||||||
|
cert-manager.io/cluster-issuer: letsencrypt
|
||||||
|
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
|
||||||
|
spec:
|
||||||
|
ingressClassName: nginx
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- "url-to-grist.cloudnative.now"
|
||||||
|
secretName: "url-to-grist-ingress"
|
||||||
|
rules:
|
||||||
|
- host: "url-to-grist.cloudnative.now"
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: "/"
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: url-to-grist
|
||||||
|
port:
|
||||||
|
name: web
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: vert
|
||||||
|
namespace: vert
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: web
|
||||||
|
name: web
|
||||||
|
selector:
|
||||||
|
app: vert
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: vert
|
||||||
|
namespace: vert
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: vert
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: vert
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: web
|
||||||
|
image: ghcr.io/vert-sh/vert:sha-438f91a@sha256:c604d357e44dce6020391b6bd8d20e4f5d35e3778ecf58bbccbd8fdc6792eaf4
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
name: web
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 200Mi
|
||||||
|
requests:
|
||||||
|
memory: 200Mi
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: vert
|
||||||
|
namespace: vert
|
||||||
|
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:
|
||||||
|
- vert.cluster.fun
|
||||||
|
secretName: vert-ingress
|
||||||
|
rules:
|
||||||
|
- host: vert.cluster.fun
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: ImplementationSpecific
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: vert
|
||||||
|
port:
|
||||||
|
number: 80
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ metadata:
|
|||||||
app: yay-or-nay
|
app: yay-or-nay
|
||||||
app.kubernetes.io/name: yay-or-nay
|
app.kubernetes.io/name: yay-or-nay
|
||||||
annotations:
|
annotations:
|
||||||
reloader.stakater.com/search: "true"
|
secret.reloader.stakater.com/reload: "yay-or-nay"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
selector:
|
selector:
|
||||||
@@ -31,7 +31,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: yay-or-nay
|
- name: yay-or-nay
|
||||||
image: ghcr.io/mocdaniel/yay-or-nay:1.1.1
|
image: ghcr.io/mocdaniel/yay-or-nay:1.2.1@sha256:3edb37642d749124e9e03a6dbaca9ae5d0a45dd9361a0dbcae1ad051faeb1743
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 3000
|
- containerPort: 3000
|
||||||
|
|||||||
+12
-2
@@ -8,7 +8,8 @@
|
|||||||
"rebaseWhen": "behind-base-branch",
|
"rebaseWhen": "behind-base-branch",
|
||||||
"extends": [
|
"extends": [
|
||||||
"replacements:k8s-registry-move",
|
"replacements:k8s-registry-move",
|
||||||
"local>averagemarcus/renovate-config//source-urls"
|
"local>averagemarcus/renovate-config//source-urls",
|
||||||
|
"docker:pinDigests"
|
||||||
],
|
],
|
||||||
"ignorePaths": [
|
"ignorePaths": [
|
||||||
"terraform"
|
"terraform"
|
||||||
@@ -21,5 +22,14 @@
|
|||||||
},
|
},
|
||||||
"kubernetes": {
|
"kubernetes": {
|
||||||
"fileMatch": ["manifests/.+\\.yaml$"]
|
"fileMatch": ["manifests/.+\\.yaml$"]
|
||||||
}
|
},
|
||||||
|
"argocd": {
|
||||||
|
"managerFilePatterns": ["/manifests/_apps/.+\\.yaml$/"]
|
||||||
|
},
|
||||||
|
"packageRules": [
|
||||||
|
{
|
||||||
|
"matchCurrentValue": "/(latest|full)/",
|
||||||
|
"pinDigests": false
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user