feat(frontend): add Helm chart browser, monitoring, chart-references and values templates pages

Add new frontend pages for the multi-tenant OCDP platform:

- Charts page (/charts): Browse Harbor OCI registries to list Helm chart repositories
  and versions, with deploy modal to launch charts on selected clusters
- Monitoring page (/monitoring): Display cluster metrics (CPU/Memory/GPU usage)
  and per-node details with resource utilization bars
- Chart References page (/chart-references): CRUD for chart metadata references
- Values Templates page (/templates): CRUD for Helm values templates with version
  history and rollback support
- Sidebar: Add Charts navigation, update Storage and Templates links
- api.ts: Add all API client functions (clusterApi, registryApi, instanceApi,
  monitoringApi, storageApi, chartReferenceApi, valuesTemplateApi,
  workspaceApi, userApi) with full TypeScript types

Note: deploy flow and values template rollback not yet end-to-end tested.
This commit is contained in:
Ivan087
2026-04-15 16:59:31 +08:00
parent c5e51ed069
commit 29d0310f03
283 changed files with 24658 additions and 36038 deletions

View File

@ -1,30 +1,20 @@
-----BEGIN CERTIFICATE-----
MIIFHzCCAwegAwIBAgIUecglKF+gywytDCR7GHMXY+MTJQowDQYJKoZIhvcNAQEL
BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTI1MTExMjA1MzgzMVoXDTM1MTEx
MDA1MzgzMVowFDESMBAGA1UEAwwJbG9jYWxob3N0MIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEAsMMffb7mKqcPncOE5k3GL8AukwgZWSoARdESpQ8ykw51
ZCDj6u5GmMVTZ77/G7IDjB4tardeG0LIQYIDhM6OfI9mgN7lRjmIHyHybq/5gFO9
yNdbCdS03vbSHgPCLhayQcxw9vEzIMBbYUkMX9V3ntw/dx8/x4LAtBTYitdQz7yF
h6nOL8oJdGkwtCJy+xd7s5qLNXrALVIYFDzl7X2k3w3/T437TrxRcM5Z2CR/mx2m
02LEKl9UuAX74lLtdzeGmNGzLIQC5UDqXi7uSCKRaRNe/4b/ZTKqQqkJj7NU44qV
oK76r8prUya+O87pXswoudXJu6u+nsaF/TTNBJTTDUDnSX7XKNBSXLL63jg1sYIh
iQCVsoRwTrhqbgJwU4F1O5TwNPI0uHzEHHj7zTozqeJRVhns8gxmJKw1+V4gonZ5
2UnpDbHRZ25Etkiun2vIsPzmXBKC/UCsXs0eXmBvERoK5XYdmPVU2AFhfGNrF8B6
q3S5cGM3x7arQrPklbR8m2DTFcYf1NVLesiaKmSQPsC2uBT/CvuWGGed4dxz15nE
tHSjin0KR2ljkRprfnLD2KCldgb9wvr6bPt2ko+pFoHvsFdtTlcjLdCuwAjjaoN2
XNtz+5PND5y7+/drWln+c6IX3lS8OmR4Wc3iOzmt4QWK/BhImfExdMiNdEyuuTcC
AwEAAaNpMGcwHQYDVR0OBBYEFDXDQL/kiLo+cQyP5Fn4xja4r7XwMB8GA1UdIwQY
MBaAFDXDQL/kiLo+cQyP5Fn4xja4r7XwMA8GA1UdEwEB/wQFMAMBAf8wFAYDVR0R
BA0wC4IJbG9jYWxob3N0MA0GCSqGSIb3DQEBCwUAA4ICAQCG5lDdyGRPgcbASXmH
9SPdsugoWiWMGl1cy/a0AcWO40WAwv4xKrYG5epHh8+k4Tc10XT5rT+IWKaNg9oX
svY875mLc0Aiiz2//JbBUpFGpint/ITn/ofClm0YFGPOnhqt4WiDrEgRKx53VyUw
ta3KBvaEtZSQ45Wxc+hLjFUjoG/XfzUOFFPO1FWYXAWki9dTwO0CICtMI7u1Gj1e
c0jIIwBWhuqN002i4bRftN0mcFeMRrqDJYsMY52m6ZmUppDpe0vGRcq3+1QYIsL+
4n1enpIImmhP+lyjue390sqEna99VeWlV2ZGLNuLCAXZiQ88Vv6q9+N79PpkaZ1Q
W9EwdLEf9HmPbaVQkp1BEABGreDsmNcmIrwvFSmoT8dbbniiTTGC4bWO6gZYBoh+
wdvf+wLPls27v9Dw2PPk4wSMIf0Xs/XofMqkviGvmGQ0rXlXk39F0PJ2Mnu09fi4
SqCSuSL/rJEiZPJsUt5XQl3WaEceQ1kDgyD2QJT+aXoMCjQx2N9NesJlcNvCf+72
z2Hqra13Tg6YMdT2kRzNGPgdJb3/lNYlRj650uEtokNDGGDW73OknTuIJm9E6ppH
0a06/malTch4Sc/huOhu8eVf8zP7s/NYQ3M5NJQWn3BfIKRBxzVuXyAQ7bRknNVJ
YPqB4ZcduChu+NyS7rrSbbPvTw==
MIIDVzCCAj+gAwIBAgIUf7NOIDC1qx/Oi9u9uaoq2Onf7NkwDQYJKoZIhvcNAQEL
BQAwOzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5
MQ0wCwYDVQQKDARPQ0RQMB4XDTI2MDQxMDAyNTAxOFoXDTI3MDQxMDAyNTAxOFow
OzELMAkGA1UEBhMCVVMxDjAMBgNVBAgMBVN0YXRlMQ0wCwYDVQQHDARDaXR5MQ0w
CwYDVQQKDARPQ0RQMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxaqe
NoYfwkEyECzVaEtjNGsFcVrXyAg21skcksOBKwcKmgcSh4alOGQV+686fc43G4KB
6nOsMHltkq2Y0b+9DfP0KHNPmw7ifzk9QAG++TXf4b1tsTlWaS/7+y8Vr6CFq98X
EMNnHLXBEVinPgtRLVSOqvVIlHCmuBaqtyGZovvBkS8SxMqIwdhyz94g9BtF6sZu
JTzzGPlMxNuO7yjLNAvaauQr1CXnbTj1ec3f8+hSLwClmAVIvPgbDQLWZVC/uj9N
uGl0wK6zo1JAdFOl7xqItf5CgesG5UCRQwYR2/70YqOkRP33NLDmiBKjAWSp+l0l
dgqhKHLHg9sZPiATHQIDAQABo1MwUTAdBgNVHQ4EFgQUOcJ11GcTNn7nx+4Q55c6
Od+GqEIwHwYDVR0jBBgwFoAUOcJ11GcTNn7nx+4Q55c6Od+GqEIwDwYDVR0TAQH/
BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAVoowP6r2CfiducXyNzOzgTJYcXqZ
sGyV9W+0Y2Hb4xjAbxN7siZGptj06GzE71D8gE3671z/VgPuDci6Vr2c2c5pRKaK
f53Zpsyg1R6utL+G/x5NB0aPg6Uzjnb7MCjtm2cBdVYlCnvLGWgr8oXYCGcV5hHS
xI3C5Y6UTsFr6E9x8kMUqZj1v8JVDpFB/2czH2oxcEr2orOyx5wnqd0y/Au/KpmR
/pZzffPqfSX1ef54c0yknMPtPQ5yHnI4lgjWLAr70OQhGdlLbADvRh35IGVBRxXW
CZ69GVmkP73veiVZDR3TigVoxyify1fwywQ/0x7wVyqC+U+XrRAA4pZAgg==
-----END CERTIFICATE-----

View File

@ -1,52 +1,28 @@
-----BEGIN PRIVATE KEY-----
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
hIFo/yf8yxkOintdBia9CX83xxb16g==
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDFqp42hh/CQTIQ
LNVoS2M0awVxWtfICDbWyRySw4ErBwqaBxKHhqU4ZBX7rzp9zjcbgoHqc6wweW2S
rZjRv70N8/Qoc0+bDuJ/OT1AAb75Nd/hvW2xOVZpL/v7LxWvoIWr3xcQw2cctcER
WKc+C1EtVI6q9UiUcKa4Fqq3IZmi+8GRLxLEyojB2HLP3iD0G0Xqxm4lPPMY+UzE
247vKMs0C9pq5CvUJedtOPV5zd/z6FIvAKWYBUi8+BsNAtZlUL+6P024aXTArrOj
UkB0U6XvGoi1/kKB6wblQJFDBhHb/vRio6RE/fc0sOaIEqMBZKn6XSV2CqEocseD
2xk+IBMdAgMBAAECggEAYB2gVBvw+njQOqxKUy4BPb5ihaWqMlLIM7XUJotZVk5U
ueQBfxQaZ+rHA7zHoN/yzPYvbQ01J9cL0FyIaEmnSM8cpMS5a0kYGsv+/A49ShoH
1NFTMu+SFJDoItJY5a8VAKd4pEaX745zpJcqr5E6NmQdAYVG9yM19mLTPTxh5C1T
EWOktzKbvSKQKQwjCx4gOUSBCNV2Hq+Lp0I4LhtcjI1L3IKaH9DX9ed/zXYLcjXM
S5h1Sj+gQth/WIoDwcDaqWHbPudYz0tzopgN+tT43G/bVZpB+sTctMRkdGCg3oJu
INztrF++BjnTC1uZRsMtq7nHFuAS1pKMDZ7fQ/oiYwKBgQDqvHqSqL9TLiLwdAAE
pSAYiDnpdu3w763nV1Anffy3KF17qmB7HIM7YJKTRHQhDQBkCgILBOokqTp5jaXX
VnsGHtNqV++C/gfKGzLyouSM9hrkx62rF+ZZ2MDct4oKSP6TBreCLeQCSLyYVb+/
sj9e7OXZXKFk055oFfCUu5JbuwKBgQDXkn5EXAKS9CRTYSOaAce3rKZf+3O7nbQE
yQpYn0I4gmHB8bwI1r+fKX1bKNcJiG/WQipRVnWm0I52RjUtVNb/vVd8l9tevQv0
hl6X6/4JLhOd7Sc8Tf7ZGSJmsT17Cgo8a3ZYXEvsp92X30dd/YEFgmkfwikWnjfn
ZR7Jde8jBwKBgGQQHmwgVRa/RxObT1qrjUgH4i/8i6e2dDp2xOtg0Ha/VUJfOauh
Vuvb2f+/IYXpRe5fOcm6uZkRLqUcVcK60cylHVhqzeXYJjfoakp2V9kjHAnEeOrD
UGWieWxdLRH/Vc4VAesTZuv2V7bUbt3nvQ3ZDI4g54fUkeUq3Rh58QT7AoGAW5P3
IhE4YrdmqyksF6PD9UpaD5Jh0wUm0ZWaWJWnaxwwbVTFPbgFBZd5kn1iBMG6SPoo
wg8Jwgj9TE99Dbnp8BC+lsZoQfHrn0Bp9P4jGEFDwiZaMasspYug6qFG7fsQ6CP6
zYTAGFQjtf37cnlcEzwYbo5sKBikxR9XGdyI74cCgYA6l7HRIjjc9sv+PZGywxD0
D9oG9A2aXKqzSXZy9/098vwWOBg0MFBAELAGo+W7zSuMSxTc70xUxPBNtvQKfake
TgN0R6DtHn891+SuZK0aBhly9D+q0WdaxiiSe7Jv8ymB1gnsNN3p4JvusGcJAxMZ
xGFhGo9V9ti8xQGJyGH7vg==
-----END PRIVATE KEY-----