From 18e089892c0b38ed5c025d860f9f4fd51e5ddeaf Mon Sep 17 00:00:00 2001 From: bjwswang Date: Mon, 27 Nov 2023 08:49:11 +0000 Subject: [PATCH] deploy: b6beb0a1cd539d6a90538ff3160bbf1cb821347c --- 404.html | 10 +++--- ...onfig-7f1c558b786223ef7a1623ac2c16df13.png | Bin 0 -> 31621 bytes ...onfig-80ca88efcf4978d0abc4e35dee45650a.png | Bin 82684 -> 0 bytes ...stall-48c4f43369628ecd72f0b7552b56aa9a.png | Bin 0 -> 44627 bytes ...arket-a5736dc9d12730f13b18f808c90694fd.png | Bin 0 -> 84744 bytes .../menu-cd788e2c64e300e4b712cb8ae3a40e9b.png | Bin 0 -> 26261 bytes ...7815c.387a4023.js => 07c7815c.daa93abd.js} | 2 +- assets/js/085a15b4.0dabe575.js | 1 - ...479c4.1bae7804.js => 0b2479c4.a5e81e27.js} | 2 +- assets/js/0bd7f289.53efd746.js | 1 + assets/js/0e384e19.8025756b.js | 1 + assets/js/0e384e19.9db8c814.js | 1 - assets/js/0f745343.e6786af0.js | 1 + assets/js/11551e33.678cfcb6.js | 1 + ...d10f2.af300e1b.js => 124d10f2.6a17be4b.js} | 2 +- assets/js/181fac9d.e6b816e7.js | 1 + assets/js/1b16f8d8.ca1c6517.js | 1 - assets/js/1b16f8d8.fb5c4fae.js | 1 + assets/js/1bba06cb.a75eee7e.js | 1 - assets/js/1d408bef.70cf2055.js | 1 - assets/js/22167790.e613f018.js | 1 - assets/js/22646bfb.ef309b5e.js | 1 - assets/js/2661f043.8fddb686.js | 1 + ...451b9.0358b163.js => 2be451b9.1f514c48.js} | 2 +- assets/js/35308eea.7962b2aa.js | 1 + assets/js/35bdf1fa.e549639f.js | 1 + assets/js/3724ddc1.992a3138.js | 1 - assets/js/3c7910a2.96cd3189.js | 1 - assets/js/41ebaef0.fa98793f.js | 1 - assets/js/45240dc4.e9ca2d80.js | 1 + assets/js/473a5afa.215ee1a5.js | 1 + ...857ee.644a72e0.js => 476857ee.b3d10f7d.js} | 2 +- assets/js/552535a5.62c3c6be.js | 1 - assets/js/59db27b9.19d4c7b9.js | 1 - assets/js/5d9ef359.464c1236.js | 1 - assets/js/62fa1b0b.b5b41b52.js | 1 - assets/js/647f233e.a270a649.js | 1 - assets/js/67b8aae2.f83ec188.js | 1 + assets/js/67d2fccd.711bcf9a.js | 1 + assets/js/6b8ed726.2b22f6bc.js | 1 + assets/js/6b8ed726.7d1ab0b3.js | 1 - assets/js/74f3aee8.7d3b8243.js | 1 + assets/js/791926a5.fe0ced91.js | 1 - assets/js/7b0c2381.a8765fe9.js | 1 + assets/js/7c27091d.de30cb04.js | 1 + assets/js/7d3a95df.9ba6ebc5.js | 1 + assets/js/7dec8a7a.421cc3d2.js | 1 + assets/js/81fe2174.d89689e4.js | 1 - assets/js/836d4174.2a8ee05a.js | 1 + assets/js/86efa878.692c127c.js | 1 + assets/js/88599150.c801135f.js | 1 - assets/js/8aa54216.d67cfeb5.js | 1 - assets/js/8b32ec56.4946f215.js | 1 + assets/js/8d745e6e.ca19f709.js | 1 - assets/js/8ec7214f.35ab15bb.js | 1 + assets/js/9048d586.fc2d062f.js | 1 + assets/js/9115b1fc.3ccb976d.js | 1 - assets/js/935f2afb.c8b37816.js | 1 + assets/js/935f2afb.dbfd6440.js | 1 - assets/js/94743b49.040fb976.js | 1 + assets/js/9546be45.7e49d2d5.js | 1 - assets/js/956d2487.e4c1a3b1.js | 1 + ...a66a7.fe316c62.js => a35a66a7.63d4afb8.js} | 2 +- assets/js/a76bfff0.4cce2d19.js | 1 - assets/js/a95e9274.c0534094.js | 1 - assets/js/a9a78b31.8f25754e.js | 1 - assets/js/ab5e4632.48026ef8.js | 1 + assets/js/abe5e8bf.04573a0a.js | 1 + assets/js/acf368fd.4804172f.js | 1 - assets/js/ad895e75.03c0dfb3.js | 1 - assets/js/ad895e75.057c6fff.js | 1 + assets/js/b09d49d3.b64dab44.js | 1 + assets/js/b0d91792.76e5a73a.js | 1 + assets/js/b0dde2ea.81aa7886.js | 1 - assets/js/b42f4d8b.15dce42f.js | 1 - assets/js/b46b210f.08354fdf.js | 1 - assets/js/b4e8507e.26631dc4.js | 1 + assets/js/b72c5fb1.5506aedd.js | 1 - ...9b4b3.89c59f08.js => c2c9b4b3.3b7c4a87.js} | 2 +- assets/js/c4afd168.24f026b9.js | 1 - ...5d8e4.a6367de7.js => c4f5d8e4.ba3c1e12.js} | 2 +- ...e4644.78a6930d.js => c64e4644.40eecd43.js} | 2 +- assets/js/c650a001.389e1bbe.js | 1 - assets/js/cc6abd7b.fff0d3ef.js | 1 + assets/js/cd7e3398.f04af052.js | 1 - assets/js/cd9d77a0.da677c4c.js | 1 + ...d1d36.06b988da.js => d54d1d36.92d550d6.js} | 2 +- assets/js/d5dd9a2d.ac01215d.js | 1 + assets/js/db569f15.a147d68c.js | 1 + assets/js/e3b83f16.03f6f1d9.js | 1 - assets/js/e61d63f6.fa42fc68.js | 1 + assets/js/e6809710.f4db3540.js | 1 - assets/js/e83fc973.a5d42404.js | 1 - assets/js/e90a2c2a.5bd29202.js | 1 - assets/js/ead696ea.424695b2.js | 1 - assets/js/f03e9ca9.ba07b6ac.js | 1 - assets/js/f1f0d3d7.297b928b.js | 1 - assets/js/f345e2d0.7d7c7b04.js | 1 - assets/js/f3fd7201.9986def3.js | 1 + assets/js/f665e660.0cff09bd.js | 1 - assets/js/feed9613.b3382d26.js | 1 + assets/js/main.04bb8b9c.js | 2 ++ ...CENSE.txt => main.04bb8b9c.js.LICENSE.txt} | 0 assets/js/main.94df3d0f.js | 2 -- assets/js/runtime~main.184b9f82.js | 1 - assets/js/runtime~main.71421e27.js | 1 + blog/archive/index.html | 10 +++--- blog/first-blog-post/index.html | 10 +++--- blog/index.html | 10 +++--- blog/long-blog-post/index.html | 10 +++--- blog/mdx-blog-post/index.html | 10 +++--- blog/tags/docusaurus/index.html | 10 +++--- blog/tags/facebook/index.html | 10 +++--- blog/tags/hello/index.html | 10 +++--- blog/tags/hola/index.html | 10 +++--- blog/tags/index.html | 10 +++--- blog/welcome/index.html | 10 +++--- docs/FAQ/index.html | 10 +++--- docs/building-base/add-cluster/index.html | 17 --------- .../3rd-party-account/index.html | 20 ----------- .../configuration/customize-menu/index.html | 18 ---------- .../configuration/customize-portal/index.html | 17 --------- .../issue-oidc-proxy-certs/index.html | 34 ------------------ .../configuration/oidc-integration/index.html | 17 --------- docs/building-base/intro/index.html | 18 ---------- .../\344\275\216\347\240\201-kit/index.html" | 10 +++--- .../\345\206\205\346\240\270kit/index.html" | 10 +++--- .../\345\272\225\345\272\247kit/index.html" | 10 +++--- .../index.html" | 10 +++--- .../\346\246\202\345\277\265/index.html" | 10 +++--- .../index.html" | 17 --------- .../index.html" | 10 +++--- .../index.html" | 10 +++--- .../index.html" | 17 +++++++++ .../index.html" | 10 +++--- docs/component-market/blockchain/index.html | 17 --------- .../component-market/kubedashboard/index.html | 17 --------- docs/component-market/logging/index.html | 24 ------------- docs/contribute/index.html | 12 +++---- .../buildingbase_resources/index.html | 17 --------- docs/core/concepts/component/index.html | 17 --------- docs/core/concepts/repository/index.html | 23 ------------ docs/core/concepts/subscription/index.html | 25 ------------- docs/core/intro/index.html | 18 ---------- docs/core/rating/index.html | 17 --------- docs/core/roadmap/index.html | 17 --------- docs/core/userguide/component-dev/index.html | 17 --------- docs/core/userguide/enablerating/index.html | 17 --------- docs/core/userguide/helmtofuture/index.html | 17 --------- docs/core/userguide/imageoverride/index.html | 17 --------- .../building-base/add-cluster/index.html | 17 +++++++++ .../3rd-party-account/index.html | 20 +++++++++++ .../configuration/audit-config/index.html | 16 ++++----- .../configuration/customize-menu/index.html | 18 ++++++++++ .../configuration/customize-portal/index.html | 17 +++++++++ .../issue-oidc-proxy-certs/index.html | 34 ++++++++++++++++++ .../configuration/oidc-integration/index.html | 17 +++++++++ .../building-base/intro/index.html | 18 ++++++++++ .../component-market/blockchain/index.html | 17 +++++++++ .../component-market/kubedashboard/index.html | 17 +++++++++ .../component-market/kubelogin/index.html | 16 ++++----- .../component-market/logging/index.html | 24 +++++++++++++ .../component-market/monitoring/index.html | 16 ++++----- .../buildingbase_resources/index.html | 17 +++++++++ .../core/concepts/component/index.html | 17 +++++++++ .../core/concepts/componentplan/index.html | 16 ++++----- .../core/concepts/imageoverride/index.html | 17 +++++++++ .../core/concepts/rating/index.html | 16 ++++----- .../core/concepts/repository/index.html | 23 ++++++++++++ .../core/concepts/subscription/index.html | 25 +++++++++++++ docs/develop-guid/core/intro/index.html | 18 ++++++++++ .../core/rating/enablerating/index.html | 17 +++++++++ docs/develop-guid/core/rating/index.html | 17 +++++++++ docs/develop-guid/intro/index.html | 18 ++++++++++ .../development/bff-apis/index.html | 17 +++++++++ .../develop-hello-world/index.html | 17 +++++++++ .../development/frontend-low-code/index.html | 16 ++++----- .../development/frontend/index.html | 17 +++++++++ .../development_pattern/index.html | 18 ++++++++++ .../lowcode-development/intro/index.html | 17 +++++++++ .../privatecluster/index.html | 16 ++++----- docs/intro/index.html | 14 ++++---- .../development/bff-apis/index.html | 17 --------- .../develop-hello-world/index.html | 17 --------- .../development/frontend/index.html | 17 --------- .../development_pattern/index.html | 18 ---------- docs/lowcode-development/intro/index.html | 17 --------- .../buildingbase_quickstart/index.html | 17 --------- docs/quick-start/core_quickstart/index.html | 17 --------- docs/quick-start/prerequisite/index.html | 17 --------- docs/quick-start/quick-experience/index.html | 17 +++++++++ docs/quick-start/quick-install/index.html | 17 +++++++++ docs/quick-start/try_customization/index.html | 18 ---------- docs/user-guid/component_anagement/index.html | 10 +++--- docs/user-guid/component_market/index.html | 10 +++--- docs/user-guid/component_rating/index.html | 10 +++--- docs/user-guid/intro/index.html | 18 ---------- .../user-guid/repository_anagement/index.html | 12 +++---- docs/user-guid/version/index.html | 17 --------- docs/version/index.html | 17 +++++++++ en/404.html | 10 +++--- ...onfig-7f1c558b786223ef7a1623ac2c16df13.png | Bin 0 -> 31621 bytes ...onfig-80ca88efcf4978d0abc4e35dee45650a.png | Bin 82684 -> 0 bytes ...stall-48c4f43369628ecd72f0b7552b56aa9a.png | Bin 0 -> 44627 bytes ...arket-a5736dc9d12730f13b18f808c90694fd.png | Bin 0 -> 84744 bytes .../menu-cd788e2c64e300e4b712cb8ae3a40e9b.png | Bin 0 -> 26261 bytes en/assets/js/085a15b4.9d13ed3e.js | 1 - en/assets/js/0bd7f289.3f8d81fa.js | 1 + en/assets/js/0e384e19.62cb142f.js | 1 + en/assets/js/0e384e19.95131242.js | 1 - en/assets/js/0f745343.6c7d2ca9.js | 1 + en/assets/js/11551e33.2e8690af.js | 1 + ...d10f2.8774d5f8.js => 124d10f2.812aca00.js} | 2 +- en/assets/js/181fac9d.42b4adb0.js | 1 + en/assets/js/1b16f8d8.03b98c4e.js | 1 - en/assets/js/1b16f8d8.dae51fbd.js | 1 + en/assets/js/1bba06cb.e732ffc1.js | 1 - en/assets/js/1d408bef.107a45a6.js | 1 - en/assets/js/22167790.9d78aa76.js | 1 - en/assets/js/22646bfb.cfa2627b.js | 1 - ...2b8aa.466022d6.js => 2372b8aa.84fc86f5.js} | 2 +- en/assets/js/2661f043.8e6f16d5.js | 1 + ...2546e.1e485dfc.js => 27a2546e.5acbc63e.js} | 2 +- en/assets/js/35308eea.ac145d1e.js | 1 + en/assets/js/35bdf1fa.faa9a319.js | 1 + en/assets/js/3724ddc1.b9ba6373.js | 1 - en/assets/js/3c7910a2.7a5c2910.js | 1 - ...6d8f8.6347763c.js => 3d36d8f8.0c133cbf.js} | 2 +- en/assets/js/41ebaef0.b5383c64.js | 1 - en/assets/js/45240dc4.b7d54f32.js | 1 + en/assets/js/473a5afa.c2393e1f.js | 1 + ...47d7c.322f0451.js => 4c747d7c.51b7977b.js} | 2 +- en/assets/js/552535a5.aa34f3f9.js | 1 - ...97f69.d75b3d5a.js => 58c97f69.9cc2f6ab.js} | 2 +- en/assets/js/59db27b9.0d352cf7.js | 1 - en/assets/js/5c4c6e60.9190594d.js | 1 - en/assets/js/5d9ef359.ad02cc8b.js | 1 - en/assets/js/62fa1b0b.868a5eef.js | 1 - en/assets/js/647f233e.468a3349.js | 1 - en/assets/js/67b8aae2.66aff40f.js | 1 + en/assets/js/67d2fccd.ffddf1e4.js | 1 + en/assets/js/6a6193f6.2f460b08.js | 1 + en/assets/js/6b8ed726.07ffee1a.js | 1 + en/assets/js/6b8ed726.d4d459f4.js | 1 - ...07dca.d416e888.js => 6dc07dca.c2eb2b1e.js} | 2 +- en/assets/js/74f3aee8.8af30892.js | 1 + en/assets/js/791926a5.967dafe3.js | 1 - en/assets/js/7b0c2381.381582f4.js | 1 + en/assets/js/7c27091d.f65e81c8.js | 1 + en/assets/js/7d3a95df.338ff436.js | 1 + en/assets/js/7dec8a7a.6526253e.js | 1 + ...ee581.e1a0e29e.js => 809ee581.9422af1f.js} | 2 +- en/assets/js/81fe2174.6bbee95d.js | 1 - en/assets/js/836d4174.2ea56205.js | 1 + en/assets/js/86efa878.c0db4919.js | 1 + en/assets/js/88599150.5b2176d8.js | 1 - en/assets/js/8aa54216.508a4d69.js | 1 - en/assets/js/8d745e6e.8eda03d8.js | 1 - en/assets/js/8ec7214f.cdf3c4c2.js | 1 + en/assets/js/9048d586.92d8128c.js | 1 + en/assets/js/9115b1fc.42ec6c7b.js | 1 - en/assets/js/935f2afb.11cfb57d.js | 1 - en/assets/js/935f2afb.149a62c0.js | 1 + en/assets/js/94743b49.62323cf4.js | 1 + en/assets/js/9546be45.af293d46.js | 1 - en/assets/js/956d2487.69803413.js | 1 + en/assets/js/a76bfff0.074b1e0b.js | 1 - en/assets/js/a95e9274.2bbc7b5a.js | 1 - en/assets/js/a9a78b31.a4df916c.js | 1 - en/assets/js/ab5e4632.47c7fd93.js | 1 + en/assets/js/abe5e8bf.a18cafb8.js | 1 + en/assets/js/acf368fd.c271512a.js | 1 - en/assets/js/ad895e75.3b12c186.js | 1 - en/assets/js/ad895e75.73a1759d.js | 1 + en/assets/js/b09d49d3.7dd8feb3.js | 1 + en/assets/js/b0d91792.174df512.js | 1 + en/assets/js/b0dde2ea.767fbd9f.js | 1 - en/assets/js/b46b210f.546285df.js | 1 - en/assets/js/b4e8507e.583fba32.js | 1 + en/assets/js/b72c5fb1.87c1d5e6.js | 1 - en/assets/js/c4afd168.b50ca13a.js | 1 - ...5d8e4.a6367de7.js => c4f5d8e4.ba3c1e12.js} | 2 +- en/assets/js/c650a001.eb7d6597.js | 1 - en/assets/js/cc6abd7b.d0d62524.js | 1 + en/assets/js/cd7e3398.9ee2921e.js | 1 - en/assets/js/cd9d77a0.3b11b701.js | 1 + en/assets/js/d5dd9a2d.49945cd3.js | 1 + en/assets/js/db569f15.7bcede9b.js | 1 + ...3ca4f.122704cc.js => e0f3ca4f.c533bd61.js} | 2 +- en/assets/js/e3b83f16.c6630c2e.js | 1 - en/assets/js/e61d63f6.e0b0bf85.js | 1 + en/assets/js/e6809710.3bd3b7c3.js | 1 - en/assets/js/e83fc973.522054a4.js | 1 - en/assets/js/e90a2c2a.c67a8e85.js | 1 - en/assets/js/ead696ea.4ba7f266.js | 1 - ...edb73.b2e20e23.js => ef6edb73.c99c25b2.js} | 2 +- en/assets/js/f03e9ca9.408ce2b2.js | 1 - en/assets/js/f1f0d3d7.8c2b97ef.js | 1 - en/assets/js/f345e2d0.dc981ed5.js | 1 - en/assets/js/f3fd7201.3c0d3d92.js | 1 + en/assets/js/f665e660.8451657c.js | 1 - en/assets/js/feed9613.68a686ec.js | 1 + en/assets/js/main.ac350e9b.js | 2 -- en/assets/js/main.fcd32e51.js | 2 ++ ...CENSE.txt => main.fcd32e51.js.LICENSE.txt} | 0 en/assets/js/runtime~main.1e3da670.js | 1 - en/assets/js/runtime~main.4a1e76e2.js | 1 + en/blog/archive/index.html | 10 +++--- en/blog/first-blog-post/index.html | 10 +++--- en/blog/index.html | 10 +++--- en/blog/long-blog-post/index.html | 10 +++--- en/blog/mdx-blog-post/index.html | 10 +++--- en/blog/tags/docusaurus/index.html | 10 +++--- en/blog/tags/facebook/index.html | 10 +++--- en/blog/tags/hello/index.html | 10 +++--- en/blog/tags/hola/index.html | 10 +++--- en/blog/tags/index.html | 10 +++--- en/blog/welcome/index.html | 10 +++--- en/docs/FAQ/index.html | 10 +++--- en/docs/building-base/add-cluster/index.html | 17 --------- .../3rd-party-account/index.html | 20 ----------- .../configuration/customize-menu/index.html | 18 ---------- .../configuration/customize-portal/index.html | 17 --------- .../issue-oidc-proxy-certs/index.html | 34 ------------------ .../configuration/oidc-integration/index.html | 17 --------- en/docs/building-base/intro/index.html | 18 ---------- .../\344\275\216\347\240\201-kit/index.html" | 10 +++--- .../\345\206\205\346\240\270kit/index.html" | 10 +++--- .../\345\272\225\345\272\247kit/index.html" | 10 +++--- .../index.html" | 10 +++--- .../\346\246\202\345\277\265/index.html" | 10 +++--- .../index.html" | 17 --------- .../index.html" | 10 +++--- .../index.html" | 10 +++--- .../index.html" | 17 +++++++++ .../index.html" | 10 +++--- .../component-market/blockchain/index.html | 17 --------- .../component-market/kubedashboard/index.html | 17 --------- en/docs/component-market/logging/index.html | 24 ------------- en/docs/contribute/index.html | 12 +++---- .../buildingbase_resources/index.html | 17 --------- en/docs/core/concepts/component/index.html | 17 --------- en/docs/core/concepts/repository/index.html | 23 ------------ en/docs/core/concepts/subscription/index.html | 25 ------------- en/docs/core/intro/index.html | 18 ---------- en/docs/core/rating/index.html | 17 --------- en/docs/core/roadmap/index.html | 17 --------- .../core/userguide/component-dev/index.html | 17 --------- .../core/userguide/enablerating/index.html | 17 --------- .../core/userguide/helmtofuture/index.html | 17 --------- .../core/userguide/imageoverride/index.html | 17 --------- .../building-base/add-cluster/index.html | 17 +++++++++ .../3rd-party-account/index.html | 20 +++++++++++ .../configuration/audit-config/index.html | 16 ++++----- .../configuration/customize-menu/index.html | 18 ++++++++++ .../configuration/customize-portal/index.html | 17 +++++++++ .../issue-oidc-proxy-certs/index.html | 34 ++++++++++++++++++ .../configuration/oidc-integration/index.html | 17 +++++++++ .../building-base/intro/index.html | 18 ++++++++++ .../component-market/blockchain/index.html | 17 +++++++++ .../component-market/kubedashboard/index.html | 17 +++++++++ .../component-market/kubelogin/index.html | 16 ++++----- .../component-market/logging/index.html | 24 +++++++++++++ .../component-market/monitoring/index.html | 16 ++++----- .../buildingbase_resources/index.html | 17 +++++++++ .../core/concepts/component/index.html | 17 +++++++++ .../core/concepts/componentplan/index.html | 16 ++++----- .../core/concepts/imageoverride/index.html | 17 +++++++++ .../core/concepts/rating/index.html | 16 ++++----- .../core/concepts/repository/index.html | 23 ++++++++++++ .../core/concepts/subscription/index.html | 25 +++++++++++++ en/docs/develop-guid/core/intro/index.html | 18 ++++++++++ .../core/rating/enablerating/index.html | 17 +++++++++ en/docs/develop-guid/core/rating/index.html | 17 +++++++++ en/docs/develop-guid/intro/index.html | 18 ++++++++++ .../development/bff-apis/index.html | 17 +++++++++ .../develop-hello-world/index.html | 17 +++++++++ .../development/frontend-low-code/index.html | 16 ++++----- .../development/frontend/index.html | 17 +++++++++ .../development_pattern/index.html | 18 ++++++++++ .../lowcode-development/intro/index.html | 17 +++++++++ .../privatecluster/index.html | 16 ++++----- en/docs/intro/index.html | 14 ++++---- .../development/bff-apis/index.html | 17 --------- .../develop-hello-world/index.html | 17 --------- .../development/frontend/index.html | 17 --------- .../development_pattern/index.html | 18 ---------- en/docs/lowcode-development/intro/index.html | 17 --------- .../buildingbase_quickstart/index.html | 17 --------- .../quick-start/core_quickstart/index.html | 17 --------- en/docs/quick-start/prerequisite/index.html | 17 --------- .../quick-start/quick-experience/index.html | 17 +++++++++ en/docs/quick-start/quick-install/index.html | 17 +++++++++ .../quick-start/try_customization/index.html | 18 ---------- .../user-guid/component_anagement/index.html | 10 +++--- en/docs/user-guid/component_market/index.html | 10 +++--- en/docs/user-guid/component_rating/index.html | 10 +++--- en/docs/user-guid/intro/index.html | 18 ---------- .../user-guid/repository_anagement/index.html | 12 +++---- en/docs/user-guid/version/index.html | 17 --------- en/docs/version/index.html | 17 +++++++++ en/index.html | 10 +++--- en/markdown-page/index.html | 10 +++--- en/market/index.html | 10 +++--- en/sitemap.xml | 2 +- index.html | 10 +++--- markdown-page/index.html | 10 +++--- market/index.html | 10 +++--- sitemap.xml | 2 +- 409 files changed, 1573 insertions(+), 1755 deletions(-) create mode 100644 assets/images/advanced-config-7f1c558b786223ef7a1623ac2c16df13.png delete mode 100644 assets/images/advanced-config-80ca88efcf4978d0abc4e35dee45650a.png create mode 100644 assets/images/componetinstall-48c4f43369628ecd72f0b7552b56aa9a.png create mode 100644 assets/images/componetmarket-a5736dc9d12730f13b18f808c90694fd.png create mode 100644 assets/images/menu-cd788e2c64e300e4b712cb8ae3a40e9b.png rename assets/js/{07c7815c.387a4023.js => 07c7815c.daa93abd.js} (57%) delete mode 100644 assets/js/085a15b4.0dabe575.js rename assets/js/{0b2479c4.1bae7804.js => 0b2479c4.a5e81e27.js} (72%) create mode 100644 assets/js/0bd7f289.53efd746.js create mode 100644 assets/js/0e384e19.8025756b.js delete mode 100644 assets/js/0e384e19.9db8c814.js create mode 100644 assets/js/0f745343.e6786af0.js create mode 100644 assets/js/11551e33.678cfcb6.js rename assets/js/{124d10f2.af300e1b.js => 124d10f2.6a17be4b.js} (53%) create mode 100644 assets/js/181fac9d.e6b816e7.js delete mode 100644 assets/js/1b16f8d8.ca1c6517.js create mode 100644 assets/js/1b16f8d8.fb5c4fae.js delete mode 100644 assets/js/1bba06cb.a75eee7e.js delete mode 100644 assets/js/1d408bef.70cf2055.js delete mode 100644 assets/js/22167790.e613f018.js delete mode 100644 assets/js/22646bfb.ef309b5e.js create mode 100644 assets/js/2661f043.8fddb686.js rename assets/js/{2be451b9.0358b163.js => 2be451b9.1f514c48.js} (66%) create mode 100644 assets/js/35308eea.7962b2aa.js create mode 100644 assets/js/35bdf1fa.e549639f.js delete mode 100644 assets/js/3724ddc1.992a3138.js delete mode 100644 assets/js/3c7910a2.96cd3189.js delete mode 100644 assets/js/41ebaef0.fa98793f.js create mode 100644 assets/js/45240dc4.e9ca2d80.js create mode 100644 assets/js/473a5afa.215ee1a5.js rename assets/js/{476857ee.644a72e0.js => 476857ee.b3d10f7d.js} (66%) delete mode 100644 assets/js/552535a5.62c3c6be.js delete mode 100644 assets/js/59db27b9.19d4c7b9.js delete mode 100644 assets/js/5d9ef359.464c1236.js delete mode 100644 assets/js/62fa1b0b.b5b41b52.js delete mode 100644 assets/js/647f233e.a270a649.js create mode 100644 assets/js/67b8aae2.f83ec188.js create mode 100644 assets/js/67d2fccd.711bcf9a.js create mode 100644 assets/js/6b8ed726.2b22f6bc.js delete mode 100644 assets/js/6b8ed726.7d1ab0b3.js create mode 100644 assets/js/74f3aee8.7d3b8243.js delete mode 100644 assets/js/791926a5.fe0ced91.js create mode 100644 assets/js/7b0c2381.a8765fe9.js create mode 100644 assets/js/7c27091d.de30cb04.js create mode 100644 assets/js/7d3a95df.9ba6ebc5.js create mode 100644 assets/js/7dec8a7a.421cc3d2.js delete mode 100644 assets/js/81fe2174.d89689e4.js create mode 100644 assets/js/836d4174.2a8ee05a.js create mode 100644 assets/js/86efa878.692c127c.js delete mode 100644 assets/js/88599150.c801135f.js delete mode 100644 assets/js/8aa54216.d67cfeb5.js create mode 100644 assets/js/8b32ec56.4946f215.js delete mode 100644 assets/js/8d745e6e.ca19f709.js create mode 100644 assets/js/8ec7214f.35ab15bb.js create mode 100644 assets/js/9048d586.fc2d062f.js delete mode 100644 assets/js/9115b1fc.3ccb976d.js create mode 100644 assets/js/935f2afb.c8b37816.js delete mode 100644 assets/js/935f2afb.dbfd6440.js create mode 100644 assets/js/94743b49.040fb976.js delete mode 100644 assets/js/9546be45.7e49d2d5.js create mode 100644 assets/js/956d2487.e4c1a3b1.js rename assets/js/{a35a66a7.fe316c62.js => a35a66a7.63d4afb8.js} (70%) delete mode 100644 assets/js/a76bfff0.4cce2d19.js delete mode 100644 assets/js/a95e9274.c0534094.js delete mode 100644 assets/js/a9a78b31.8f25754e.js create mode 100644 assets/js/ab5e4632.48026ef8.js create mode 100644 assets/js/abe5e8bf.04573a0a.js delete mode 100644 assets/js/acf368fd.4804172f.js delete mode 100644 assets/js/ad895e75.03c0dfb3.js create mode 100644 assets/js/ad895e75.057c6fff.js create mode 100644 assets/js/b09d49d3.b64dab44.js create mode 100644 assets/js/b0d91792.76e5a73a.js delete mode 100644 assets/js/b0dde2ea.81aa7886.js delete mode 100644 assets/js/b42f4d8b.15dce42f.js delete mode 100644 assets/js/b46b210f.08354fdf.js create mode 100644 assets/js/b4e8507e.26631dc4.js delete mode 100644 assets/js/b72c5fb1.5506aedd.js rename assets/js/{c2c9b4b3.89c59f08.js => c2c9b4b3.3b7c4a87.js} (69%) delete mode 100644 assets/js/c4afd168.24f026b9.js rename assets/js/{c4f5d8e4.a6367de7.js => c4f5d8e4.ba3c1e12.js} (97%) rename assets/js/{c64e4644.78a6930d.js => c64e4644.40eecd43.js} (62%) delete mode 100644 assets/js/c650a001.389e1bbe.js create mode 100644 assets/js/cc6abd7b.fff0d3ef.js delete mode 100644 assets/js/cd7e3398.f04af052.js create mode 100644 assets/js/cd9d77a0.da677c4c.js rename assets/js/{d54d1d36.06b988da.js => d54d1d36.92d550d6.js} (67%) create mode 100644 assets/js/d5dd9a2d.ac01215d.js create mode 100644 assets/js/db569f15.a147d68c.js delete mode 100644 assets/js/e3b83f16.03f6f1d9.js create mode 100644 assets/js/e61d63f6.fa42fc68.js delete mode 100644 assets/js/e6809710.f4db3540.js delete mode 100644 assets/js/e83fc973.a5d42404.js delete mode 100644 assets/js/e90a2c2a.5bd29202.js delete mode 100644 assets/js/ead696ea.424695b2.js delete mode 100644 assets/js/f03e9ca9.ba07b6ac.js delete mode 100644 assets/js/f1f0d3d7.297b928b.js delete mode 100644 assets/js/f345e2d0.7d7c7b04.js create mode 100644 assets/js/f3fd7201.9986def3.js delete mode 100644 assets/js/f665e660.0cff09bd.js create mode 100644 assets/js/feed9613.b3382d26.js create mode 100644 assets/js/main.04bb8b9c.js rename assets/js/{main.94df3d0f.js.LICENSE.txt => main.04bb8b9c.js.LICENSE.txt} (100%) delete mode 100644 assets/js/main.94df3d0f.js delete mode 100644 assets/js/runtime~main.184b9f82.js create mode 100644 assets/js/runtime~main.71421e27.js delete mode 100644 docs/building-base/add-cluster/index.html delete mode 100644 docs/building-base/configuration/3rd-party-account/index.html delete mode 100644 docs/building-base/configuration/customize-menu/index.html delete mode 100644 docs/building-base/configuration/customize-portal/index.html delete mode 100644 docs/building-base/configuration/issue-oidc-proxy-certs/index.html delete mode 100644 docs/building-base/configuration/oidc-integration/index.html delete mode 100644 docs/building-base/intro/index.html delete mode 100644 "docs/category/\347\224\250\346\210\267\346\214\207\345\215\227/index.html" create mode 100644 "docs/category/\347\273\204\344\273\266\350\257\204\346\265\213/index.html" delete mode 100644 docs/component-market/blockchain/index.html delete mode 100644 docs/component-market/kubedashboard/index.html delete mode 100644 docs/component-market/logging/index.html delete mode 100644 docs/core/concepts/buildingbase_resources/index.html delete mode 100644 docs/core/concepts/component/index.html delete mode 100644 docs/core/concepts/repository/index.html delete mode 100644 docs/core/concepts/subscription/index.html delete mode 100644 docs/core/intro/index.html delete mode 100644 docs/core/rating/index.html delete mode 100644 docs/core/roadmap/index.html delete mode 100644 docs/core/userguide/component-dev/index.html delete mode 100644 docs/core/userguide/enablerating/index.html delete mode 100644 docs/core/userguide/helmtofuture/index.html delete mode 100644 docs/core/userguide/imageoverride/index.html create mode 100644 docs/develop-guid/building-base/add-cluster/index.html create mode 100644 docs/develop-guid/building-base/configuration/3rd-party-account/index.html rename docs/{ => develop-guid}/building-base/configuration/audit-config/index.html (62%) create mode 100644 docs/develop-guid/building-base/configuration/customize-menu/index.html create mode 100644 docs/develop-guid/building-base/configuration/customize-portal/index.html create mode 100644 docs/develop-guid/building-base/configuration/issue-oidc-proxy-certs/index.html create mode 100644 docs/develop-guid/building-base/configuration/oidc-integration/index.html create mode 100644 docs/develop-guid/building-base/intro/index.html create mode 100644 docs/develop-guid/component-market/blockchain/index.html create mode 100644 docs/develop-guid/component-market/kubedashboard/index.html rename docs/{ => develop-guid}/component-market/kubelogin/index.html (58%) create mode 100644 docs/develop-guid/component-market/logging/index.html rename docs/{ => develop-guid}/component-market/monitoring/index.html (61%) create mode 100644 docs/develop-guid/core/concepts/buildingbase_resources/index.html create mode 100644 docs/develop-guid/core/concepts/component/index.html rename docs/{ => develop-guid}/core/concepts/componentplan/index.html (73%) create mode 100644 docs/develop-guid/core/concepts/imageoverride/index.html rename docs/{ => develop-guid}/core/concepts/rating/index.html (58%) create mode 100644 docs/develop-guid/core/concepts/repository/index.html create mode 100644 docs/develop-guid/core/concepts/subscription/index.html create mode 100644 docs/develop-guid/core/intro/index.html create mode 100644 docs/develop-guid/core/rating/enablerating/index.html create mode 100644 docs/develop-guid/core/rating/index.html create mode 100644 docs/develop-guid/intro/index.html create mode 100644 docs/develop-guid/lowcode-development/development/bff-apis/index.html create mode 100644 docs/develop-guid/lowcode-development/development/develop-hello-world/index.html rename docs/{ => develop-guid}/lowcode-development/development/frontend-low-code/index.html (58%) create mode 100644 docs/develop-guid/lowcode-development/development/frontend/index.html create mode 100644 docs/develop-guid/lowcode-development/development_pattern/index.html create mode 100644 docs/develop-guid/lowcode-development/intro/index.html rename docs/{core/userguide => develop-guid}/privatecluster/index.html (73%) delete mode 100644 docs/lowcode-development/development/bff-apis/index.html delete mode 100644 docs/lowcode-development/development/develop-hello-world/index.html delete mode 100644 docs/lowcode-development/development/frontend/index.html delete mode 100644 docs/lowcode-development/development_pattern/index.html delete mode 100644 docs/lowcode-development/intro/index.html delete mode 100644 docs/quick-start/buildingbase_quickstart/index.html delete mode 100644 docs/quick-start/core_quickstart/index.html delete mode 100644 docs/quick-start/prerequisite/index.html create mode 100644 docs/quick-start/quick-experience/index.html create mode 100644 docs/quick-start/quick-install/index.html delete mode 100644 docs/quick-start/try_customization/index.html delete mode 100644 docs/user-guid/intro/index.html delete mode 100644 docs/user-guid/version/index.html create mode 100644 docs/version/index.html create mode 100644 en/assets/images/advanced-config-7f1c558b786223ef7a1623ac2c16df13.png delete mode 100644 en/assets/images/advanced-config-80ca88efcf4978d0abc4e35dee45650a.png create mode 100644 en/assets/images/componetinstall-48c4f43369628ecd72f0b7552b56aa9a.png create mode 100644 en/assets/images/componetmarket-a5736dc9d12730f13b18f808c90694fd.png create mode 100644 en/assets/images/menu-cd788e2c64e300e4b712cb8ae3a40e9b.png delete mode 100644 en/assets/js/085a15b4.9d13ed3e.js create mode 100644 en/assets/js/0bd7f289.3f8d81fa.js create mode 100644 en/assets/js/0e384e19.62cb142f.js delete mode 100644 en/assets/js/0e384e19.95131242.js create mode 100644 en/assets/js/0f745343.6c7d2ca9.js create mode 100644 en/assets/js/11551e33.2e8690af.js rename en/assets/js/{124d10f2.8774d5f8.js => 124d10f2.812aca00.js} (53%) create mode 100644 en/assets/js/181fac9d.42b4adb0.js delete mode 100644 en/assets/js/1b16f8d8.03b98c4e.js create mode 100644 en/assets/js/1b16f8d8.dae51fbd.js delete mode 100644 en/assets/js/1bba06cb.e732ffc1.js delete mode 100644 en/assets/js/1d408bef.107a45a6.js delete mode 100644 en/assets/js/22167790.9d78aa76.js delete mode 100644 en/assets/js/22646bfb.cfa2627b.js rename en/assets/js/{2372b8aa.466022d6.js => 2372b8aa.84fc86f5.js} (65%) create mode 100644 en/assets/js/2661f043.8e6f16d5.js rename en/assets/js/{27a2546e.1e485dfc.js => 27a2546e.5acbc63e.js} (66%) create mode 100644 en/assets/js/35308eea.ac145d1e.js create mode 100644 en/assets/js/35bdf1fa.faa9a319.js delete mode 100644 en/assets/js/3724ddc1.b9ba6373.js delete mode 100644 en/assets/js/3c7910a2.7a5c2910.js rename en/assets/js/{3d36d8f8.6347763c.js => 3d36d8f8.0c133cbf.js} (68%) delete mode 100644 en/assets/js/41ebaef0.b5383c64.js create mode 100644 en/assets/js/45240dc4.b7d54f32.js create mode 100644 en/assets/js/473a5afa.c2393e1f.js rename en/assets/js/{4c747d7c.322f0451.js => 4c747d7c.51b7977b.js} (61%) delete mode 100644 en/assets/js/552535a5.aa34f3f9.js rename en/assets/js/{58c97f69.d75b3d5a.js => 58c97f69.9cc2f6ab.js} (56%) delete mode 100644 en/assets/js/59db27b9.0d352cf7.js delete mode 100644 en/assets/js/5c4c6e60.9190594d.js delete mode 100644 en/assets/js/5d9ef359.ad02cc8b.js delete mode 100644 en/assets/js/62fa1b0b.868a5eef.js delete mode 100644 en/assets/js/647f233e.468a3349.js create mode 100644 en/assets/js/67b8aae2.66aff40f.js create mode 100644 en/assets/js/67d2fccd.ffddf1e4.js create mode 100644 en/assets/js/6a6193f6.2f460b08.js create mode 100644 en/assets/js/6b8ed726.07ffee1a.js delete mode 100644 en/assets/js/6b8ed726.d4d459f4.js rename en/assets/js/{6dc07dca.d416e888.js => 6dc07dca.c2eb2b1e.js} (65%) create mode 100644 en/assets/js/74f3aee8.8af30892.js delete mode 100644 en/assets/js/791926a5.967dafe3.js create mode 100644 en/assets/js/7b0c2381.381582f4.js create mode 100644 en/assets/js/7c27091d.f65e81c8.js create mode 100644 en/assets/js/7d3a95df.338ff436.js create mode 100644 en/assets/js/7dec8a7a.6526253e.js rename en/assets/js/{809ee581.e1a0e29e.js => 809ee581.9422af1f.js} (71%) delete mode 100644 en/assets/js/81fe2174.6bbee95d.js create mode 100644 en/assets/js/836d4174.2ea56205.js create mode 100644 en/assets/js/86efa878.c0db4919.js delete mode 100644 en/assets/js/88599150.5b2176d8.js delete mode 100644 en/assets/js/8aa54216.508a4d69.js delete mode 100644 en/assets/js/8d745e6e.8eda03d8.js create mode 100644 en/assets/js/8ec7214f.cdf3c4c2.js create mode 100644 en/assets/js/9048d586.92d8128c.js delete mode 100644 en/assets/js/9115b1fc.42ec6c7b.js delete mode 100644 en/assets/js/935f2afb.11cfb57d.js create mode 100644 en/assets/js/935f2afb.149a62c0.js create mode 100644 en/assets/js/94743b49.62323cf4.js delete mode 100644 en/assets/js/9546be45.af293d46.js create mode 100644 en/assets/js/956d2487.69803413.js delete mode 100644 en/assets/js/a76bfff0.074b1e0b.js delete mode 100644 en/assets/js/a95e9274.2bbc7b5a.js delete mode 100644 en/assets/js/a9a78b31.a4df916c.js create mode 100644 en/assets/js/ab5e4632.47c7fd93.js create mode 100644 en/assets/js/abe5e8bf.a18cafb8.js delete mode 100644 en/assets/js/acf368fd.c271512a.js delete mode 100644 en/assets/js/ad895e75.3b12c186.js create mode 100644 en/assets/js/ad895e75.73a1759d.js create mode 100644 en/assets/js/b09d49d3.7dd8feb3.js create mode 100644 en/assets/js/b0d91792.174df512.js delete mode 100644 en/assets/js/b0dde2ea.767fbd9f.js delete mode 100644 en/assets/js/b46b210f.546285df.js create mode 100644 en/assets/js/b4e8507e.583fba32.js delete mode 100644 en/assets/js/b72c5fb1.87c1d5e6.js delete mode 100644 en/assets/js/c4afd168.b50ca13a.js rename en/assets/js/{c4f5d8e4.a6367de7.js => c4f5d8e4.ba3c1e12.js} (97%) delete mode 100644 en/assets/js/c650a001.eb7d6597.js create mode 100644 en/assets/js/cc6abd7b.d0d62524.js delete mode 100644 en/assets/js/cd7e3398.9ee2921e.js create mode 100644 en/assets/js/cd9d77a0.3b11b701.js create mode 100644 en/assets/js/d5dd9a2d.49945cd3.js create mode 100644 en/assets/js/db569f15.7bcede9b.js rename en/assets/js/{e0f3ca4f.122704cc.js => e0f3ca4f.c533bd61.js} (69%) delete mode 100644 en/assets/js/e3b83f16.c6630c2e.js create mode 100644 en/assets/js/e61d63f6.e0b0bf85.js delete mode 100644 en/assets/js/e6809710.3bd3b7c3.js delete mode 100644 en/assets/js/e83fc973.522054a4.js delete mode 100644 en/assets/js/e90a2c2a.c67a8e85.js delete mode 100644 en/assets/js/ead696ea.4ba7f266.js rename en/assets/js/{ef6edb73.b2e20e23.js => ef6edb73.c99c25b2.js} (73%) delete mode 100644 en/assets/js/f03e9ca9.408ce2b2.js delete mode 100644 en/assets/js/f1f0d3d7.8c2b97ef.js delete mode 100644 en/assets/js/f345e2d0.dc981ed5.js create mode 100644 en/assets/js/f3fd7201.3c0d3d92.js delete mode 100644 en/assets/js/f665e660.8451657c.js create mode 100644 en/assets/js/feed9613.68a686ec.js delete mode 100644 en/assets/js/main.ac350e9b.js create mode 100644 en/assets/js/main.fcd32e51.js rename en/assets/js/{main.ac350e9b.js.LICENSE.txt => main.fcd32e51.js.LICENSE.txt} (100%) delete mode 100644 en/assets/js/runtime~main.1e3da670.js create mode 100644 en/assets/js/runtime~main.4a1e76e2.js delete mode 100644 en/docs/building-base/add-cluster/index.html delete mode 100644 en/docs/building-base/configuration/3rd-party-account/index.html delete mode 100644 en/docs/building-base/configuration/customize-menu/index.html delete mode 100644 en/docs/building-base/configuration/customize-portal/index.html delete mode 100644 en/docs/building-base/configuration/issue-oidc-proxy-certs/index.html delete mode 100644 en/docs/building-base/configuration/oidc-integration/index.html delete mode 100644 en/docs/building-base/intro/index.html delete mode 100644 "en/docs/category/\347\224\250\346\210\267\346\214\207\345\215\227/index.html" create mode 100644 "en/docs/category/\347\273\204\344\273\266\350\257\204\346\265\213/index.html" delete mode 100644 en/docs/component-market/blockchain/index.html delete mode 100644 en/docs/component-market/kubedashboard/index.html delete mode 100644 en/docs/component-market/logging/index.html delete mode 100644 en/docs/core/concepts/buildingbase_resources/index.html delete mode 100644 en/docs/core/concepts/component/index.html delete mode 100644 en/docs/core/concepts/repository/index.html delete mode 100644 en/docs/core/concepts/subscription/index.html delete mode 100644 en/docs/core/intro/index.html delete mode 100644 en/docs/core/rating/index.html delete mode 100644 en/docs/core/roadmap/index.html delete mode 100644 en/docs/core/userguide/component-dev/index.html delete mode 100644 en/docs/core/userguide/enablerating/index.html delete mode 100644 en/docs/core/userguide/helmtofuture/index.html delete mode 100644 en/docs/core/userguide/imageoverride/index.html create mode 100644 en/docs/develop-guid/building-base/add-cluster/index.html create mode 100644 en/docs/develop-guid/building-base/configuration/3rd-party-account/index.html rename en/docs/{ => develop-guid}/building-base/configuration/audit-config/index.html (61%) create mode 100644 en/docs/develop-guid/building-base/configuration/customize-menu/index.html create mode 100644 en/docs/develop-guid/building-base/configuration/customize-portal/index.html create mode 100644 en/docs/develop-guid/building-base/configuration/issue-oidc-proxy-certs/index.html create mode 100644 en/docs/develop-guid/building-base/configuration/oidc-integration/index.html create mode 100644 en/docs/develop-guid/building-base/intro/index.html create mode 100644 en/docs/develop-guid/component-market/blockchain/index.html create mode 100644 en/docs/develop-guid/component-market/kubedashboard/index.html rename en/docs/{ => develop-guid}/component-market/kubelogin/index.html (58%) create mode 100644 en/docs/develop-guid/component-market/logging/index.html rename en/docs/{ => develop-guid}/component-market/monitoring/index.html (60%) create mode 100644 en/docs/develop-guid/core/concepts/buildingbase_resources/index.html create mode 100644 en/docs/develop-guid/core/concepts/component/index.html rename en/docs/{ => develop-guid}/core/concepts/componentplan/index.html (74%) create mode 100644 en/docs/develop-guid/core/concepts/imageoverride/index.html rename en/docs/{ => develop-guid}/core/concepts/rating/index.html (58%) create mode 100644 en/docs/develop-guid/core/concepts/repository/index.html create mode 100644 en/docs/develop-guid/core/concepts/subscription/index.html create mode 100644 en/docs/develop-guid/core/intro/index.html create mode 100644 en/docs/develop-guid/core/rating/enablerating/index.html create mode 100644 en/docs/develop-guid/core/rating/index.html create mode 100644 en/docs/develop-guid/intro/index.html create mode 100644 en/docs/develop-guid/lowcode-development/development/bff-apis/index.html create mode 100644 en/docs/develop-guid/lowcode-development/development/develop-hello-world/index.html rename en/docs/{ => develop-guid}/lowcode-development/development/frontend-low-code/index.html (57%) create mode 100644 en/docs/develop-guid/lowcode-development/development/frontend/index.html create mode 100644 en/docs/develop-guid/lowcode-development/development_pattern/index.html create mode 100644 en/docs/develop-guid/lowcode-development/intro/index.html rename en/docs/{core/userguide => develop-guid}/privatecluster/index.html (73%) delete mode 100644 en/docs/lowcode-development/development/bff-apis/index.html delete mode 100644 en/docs/lowcode-development/development/develop-hello-world/index.html delete mode 100644 en/docs/lowcode-development/development/frontend/index.html delete mode 100644 en/docs/lowcode-development/development_pattern/index.html delete mode 100644 en/docs/lowcode-development/intro/index.html delete mode 100644 en/docs/quick-start/buildingbase_quickstart/index.html delete mode 100644 en/docs/quick-start/core_quickstart/index.html delete mode 100644 en/docs/quick-start/prerequisite/index.html create mode 100644 en/docs/quick-start/quick-experience/index.html create mode 100644 en/docs/quick-start/quick-install/index.html delete mode 100644 en/docs/quick-start/try_customization/index.html delete mode 100644 en/docs/user-guid/intro/index.html delete mode 100644 en/docs/user-guid/version/index.html create mode 100644 en/docs/version/index.html diff --git a/404.html b/404.html index b1979d111..fcdd1ca7c 100644 --- a/404.html +++ b/404.html @@ -5,13 +5,13 @@ 找不到页面 | Framework as a Building Block for Kubernetes - - + +
-
跳到主要内容

找不到页面

我们找不到您要找的页面。

请联系原始链接来源网站的所有者,并告知他们链接已损坏。

- - +
跳到主要内容

找不到页面

我们找不到您要找的页面。

请联系原始链接来源网站的所有者,并告知他们链接已损坏。

+ + \ No newline at end of file diff --git a/assets/images/advanced-config-7f1c558b786223ef7a1623ac2c16df13.png b/assets/images/advanced-config-7f1c558b786223ef7a1623ac2c16df13.png new file mode 100644 index 0000000000000000000000000000000000000000..895e218d8a9b5f761d43b212078c966861efac5c GIT binary patch literal 31621 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%0A&>1rbCMPA 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 ~|AVWBC&fUI#cLMv{Tn3CG zFQ$V~#0b9f%HubC=>W434Ip=-B!9Rxlc<8Jaf(^Z*!bNkU8!!gle>dDqN>6eoM>t| z&5e9k+T#7ns=%kSSAZK^2pXznd$*nDef9;(uuy|kkQ-BQm}s>d9*B=B+VPY&BsR=q z(eAgW5U;0CttGpUnW5i(q<~44NA$-r23Dtn)8l@goSBoITGW!9mYVpcredj2S;F~n6|QUC(a-J1_+0#~&Psb`$9ytH z2M%e}-X}Q2u5#$k-lQDH3h)u`7=F5vKmM@_F(z1t+SBv)`iwpcu9m+W`bs$a6L&{gN?;-UrIY{cT zv^9od;QnmWVL9h_0}FBSE^uERF9&y5)849AMe%xxB{$m#uk2gF$dggg+M+8W==7}f zq4~@muTCPwHke$}@ zIe!#L+n|xY+*VeKK7H5%uvrjBoTbms#wh|?dC2`q%L~2~454d^mw8^lY31zxPtx}kC7ZuVfQ{upTp3CcQV|<0842Qb+0VS2F1M2 zTN)H2j+kd^#n*P61W#kgwdY^*NZWU_PXd*LNX^Kq?mnYdbLeUlAj;~opn_(75cJ`E zg1en5s=!M7B+=%{0@>%p`yUdXW+)dXJk_00dDgGZo{q2mIHX-Inv&|1)jaN8#A*@K zdd?^S{b68e9PxThfR;!m%7>RgA&c4EG(93L+GU!%*55l&%ZBU@g0GNklfh{jK?D=m~*D zVqtfHu3^ig-dj4HhmCDNuF6zbnzk!T?Y|isy6Jp#3mAPaWoN@R;Fc<>-TsmHEOP1O zL92PEsdmjar~&b9QRyA zydEozkx@0Mzr!SMfBIMt|tp_gb4e)asZx&67m7ecMtGA^hie ztId$dbG-JtZl>PgY1B3EXVPb)Dfv190Ghl5r0S4;(O5pSTClmZ)2mbmrg4Z8*IyO! z!`8*^Vd2_{yHt;h@TTM87^VxLXJnq_ z?n#g}13g>iBcum`ks5q7>_98{%fsd=sKI;+g%pv!Ua#}d5~l6~D-mG&P{JKDjveEm zGoP}b{c8Y)f4C4|Uz_w^t;H}jy*qjTt+v5pN14{z#QyT6RmL;PA0RGf*cu3#>Lb;7 z>n3s`i@tc_6@hwQ#Qhbh}4KUC8$F3j}RxmKz|udtYjNAT&ZkNY!` zCMR_D_`V~GQu)3XL5n?3&1m~e6p1uI?R%v_-`Dwa!(>!U%l9lSSG6qUDwj!`s znXwe+L)e=^CYjk{D>^G{i|uc#ha=@|DZc6l|$UEK6mURAd0Vm1g| z_9{LxxoTFgLc9@DK_Pxl@nO<=7Tn0Dj?}MkMX%}?vU8I+2XDb*Fj-_l`bU(;T2OjH zwisS7BGy?&?K0EaAsn_?B+C%4l@N>t&9c!Hw3<9K%B2$PWjYdEOlBVpWcO6$O&5Dc za_4=MLl-gu$^OGHYxn0;xR8(_qL!bLVz8XRtk=ryb#aTKntlXm*!l1XQNR;S5xM(p zW1$xkrU>-&Hww6SKiNV!O>wIK10EOeAJY4O#EHP=8#Pu5uAc6^2P{;hA@WjsN0lp! z%tO!JA!uXvZ;4+ktjb=8laEon03--z?M+AnN1AKr+cwM3^YxCLv+-WOKk-eSKhAxo z`b&dw#Pu?#b|b>HufzQY$wS<}sTm9iRo*fy`Wg@H(~M+71KIA`H~M!Pe1}!8<*{E|@tzld zgT1r^{AV(K#ri3M^-#^n#Nf35!7c8gc)kNQY0g`C)HwXc;tir}&-LsCWRxD(!$8YS z<8n$|$1%gz!*wLe=K>@G=kCxiHy-2t>p?OtOl1&0HA8J7Dn5+s^t#PQHsBR){NySs zwj9St&P_!7q-?w|B1HKG#{`F3QTQ;eQPdANY6A${nMXslYTb@_U@z{n{Ge>hztz;v zH1EWtWPN<_>rGb5zk%}n0}|aP(y!ti$?{5Sp|Dg9T#U&$u5d84pyG7VGPjRk_ zfIt8KiNmVIdPZ+g({+V5%4Zo7J-9s4%TwT89OOlqBzGH^D&Bt%QgBOzKfk64{^=)q z8*I+-a-1zaREUkfw2x}Dybx@Rv<7BWtPcp2zQNT_8CFc`RSIN5Gn41pH`zo;1Ye35 z{Tsaw`Wun|DANhkVHdsY8n-SrWvDx{x-tX(=w0+6*o9)nxEcOaFxlMEz7#b7qoXa4~HLSm^s5%8R;z8`Gj&q zfpO?-(d*~y%P0(-bAd9me}>W&ObYfFUnfEs#!`k7v|JNFBiLs5rhURhDf1|I%2}A zkAf2o6uPD1=$gvUQh(zK#{X1)nesNm!{Ctr7nJENe!F(X^k@HzLnac#n`~3oT_4Yr z!&Y7(Mj`^ga}jj~tJvI61?7_b#@o!ER-Q3X8XWw4E9sICZQ__uuA;@ zaA=5m_RB$wrogP_&U_2$!@#)w%%UWAX+oE{e0j2#U-L(sS)1a+ZcBenS)LVrTkWrD zhy9uI{lrmXzCY8Z|1)J~HQAScOZ1O4BY1C+{E_ItJ9O;(}*@ag|+=&+UlEKT_@S^s||>&G?! zS55Tv_%Ap5KR5jU9-Mq*_N5kLc6r0akD2k=JqVJ@Moj^!AD{$TS?64%(#{rZy=yQF z_F;iog|e4V%tEc zw{J8x=ZyU9`5ucc__GPgJI4`BF+3?VZ2RONX0dQt0x|XgSI1OO;O7iC*z`l)qVyGt zd2Uxe%b1zX)ZLW`uxUHMB^hbV?be=(Fu?XInCkbuqEzbimTWhYJ`6gK*;Lu#uQYqb z<>3EV#3p6UYI$&_Mh)mOONEoB#ZHTtQ(&@Vz^%FthU1jh-Lh((d*amoMp+qp(#$^t z)gF%ZzqUBi2j9?{JxgzRgVT3#AY1TKs#|;!+2NW3i4|<*F^fxpLmpDe8NEmzg1E1V zo3Kxo&p!A537F7h4XG*XW{&oP)l*8a%qdZSHU{wkid>~XzV*XG8a{kfoIX>GZE@*r z_w3eloA|rVhN-m07agwfWetMr3?2jP&Bze}bR~j4e}0@tVu)?xqZ%SLi&1zb>6N)4vo$ zdZ3>fuCtNX-nTnxf=bfsVzjF|Itr9K`We_7AJ=%xDU~mHaAHVYdF?14&%>vDR`ci7 z*0~$owgq4mD|PH9TCn3)Jz@=Z4TC4qR$WT+vSR}UX`d^wmLkMTCJeK^3bmYurUMbc zTNFQ+DnBsF(C)Y_9oD_cXAeXRQ$9kScE)@v6_y7@*{Y_5Ae~$Z8cVWL!BHX>9db74|EE8DQoJZsOghx z#Nt$iLM}QRr3Bm;)CQ#C3I4){xTi+oL!H;Cagz=vfK9B%y)cJVo-8#wGfWu|dr?v9 zy8k@>LUsu$14|flAB58$aX*m+|r&+-L zk9o_i*+P0J+sCW?j$Lij<4^PlBGD_ZbYS2!92hjY;W8B07gY)ye9jY>kH?_$s^H|; z#0$9}4I`_XYTb?jRL9xB-p_tyZ0GB%P}R@3agKsXbiY5SK6_A&BdGe;H!ro-6}%pj zC`mUy9bu;ct|m}Qdl!mbq_X$ob^4Th1B`q$P2w9VBBMXy*)8eVEj95JC1#RSZs!hV z@tCT>poH71GBM5{(EtYrUHTXSe;t@c2MS=~`AdUF>1ng1vDfD9RpdI~P+)3Fz?U`-thXj8e<=!%EaR38VCi(t5WJ1sE0i<_ghkA2UvlOlbdks=dV(j4I7qgpI%dT zJwI16^5{SiI*C)u5RY3U7Oymf;kkjmq-lj*v2J9+Os*DL=k2Q6snmVZ7S>|z*IbtC zbyC(fjm0hNh>`xelG7q*(VM*YfnED^AHIFV)P@pRa8-z?amA!}NY}P0sEoieZ$>Ij zKXako^g|WUU%Yr_#zReUjkZ-g}diX(QTY0DZ$W&tv`7G=>ZTm;zZlo?g^Rr;I z#iko7dz)nEDyy%>auVM4t$d+5O9Ab3N2sna>($if5Q8ZgguXMTuG4ek8Ey{J(KnNH zK<;VyI)eS3wXu$aTk_8t=L|7`pVvDvW}xLzk^&+<5KjAK;TC(OH_*!I4}+V);wmC{ zAN3pWYdi=aEHjh-YkTQe#JzWZzK7QoN7PB8Gp^jDqGBFv$2{A1Dv7jd8nCpJ*kkcE zGD>9UcY;Z?(yKkk7}+$rg&O+{X03B2=QMQCayZFYQ&O5oNQ&^$yDcOcQ&?ax@39?e z(Hf#4v~h!L`Vg}VyQAq4C|PTWEw#wRcZ$_j@0!wC1W%)*-9?hBo&^&x4m()xr?U#u zvlh;J=O2kMvY2wqZ$@CR3nlT+36@XeMr@Evu6QdVxL_i&#mGN4>t!%B2R)J38mBhEx^qYthJhxkCty_o=<9apG+?TbU z*E>P@DsELC?@z4uS_*o&&XTd!JBCfr@qC-ev)!D&=xeL;xBbwFG!lb1z{06B-)(u$ zvSn?{4y%e_;Ja$?2fgNE989}?@5rwZM>@00(r6>i$^|oCliyIm5uXHl4gLG#3E#!Ba#9YUuC-#|k zBo7_(*u;gptSNr#U2>r4?w~6Nmg|5RkA+Ytqdm!LRF4p5Z zG+Lp~7T*%<(#Vqo&~!ABn58HLDb{S)*yQb4H}3T0XY91{*Ng0ibQ%uD7@th_e4ln+ z3N_6S!p1kP;-&svuEO)Z?V%SRlMH@X6e zjDU;Bp|u{(V#QU?7vDqaUAnUMB6h`$nh>4JHK4DKEZ3!T%NOQd-4xEvW`;j5?e#Ha z!so&k0IY^4TY8sS1D~{o3?<7$h8BiT%Kc2VyoK)^fMJS0f=>?xRM}tnb*I;xMq|xf&c&6s&+cuAAN4+8 z6fB{~2*PK>{>E!8@Ux#Ooqb}71#*5$s&UTM|!<{iNf!S-PCC0l!#DpI$%cwmH4-6!(ynQj&?Xyc`nLn@hql-iO=`yYF+NabPkH zp=l)CIPJMxasu&H+Q}Vl)$YfNKyTTi;2++EFL>G4{d{lPWDn5uM;z}x$V$*FGv=?V zc`(xXbhh1G=S6-|${HWdv>sfGP{W!!tPcf@@9Z^^m`;N;$PcHPU)0$8>aY-rL_7M> z^Vy58scwt5#@bfRG@xBY4pF`qUybU#k&n(`1?-q+`t;`pV$;Sy(6=^9ULMx&k+e;U zWn(2bn9nQo(Z3QFtv~Ern+*PX=1xO9-uh~?j#S%IU6i<4&Ht%&iO5CGkp3(RBbgH% zXAz+|{NcD8;jtUUWrLE)Se1#Zpj-I?oN$MT)s1DiMH+Xb)&M68b$T}-v=;Ni?$$TZ zR*uXbnfq*>0n1Y~!x~rX>XCk`R#q^rpRtcHSm>9Pw=_w%DqDC#erZnI6w}omeodfc-YeD&iMhQDhFY#_*g;?qBJ#<{>7+6aeU{>)yn+Q z3$giZ1JNA5xgM#XK`U>n4-MzGRoWD*wv zLI4WpoJs+i$G&PJxxv{@JzA5iuC*XS1UAc;PtKh)3fLaG?&hw`rE-Po-7o)*w;g zQtfWdNr~HiUo9*01WvdDD2;+r6GFUru!8uBHN|$@cH&u4U)R3BUuc2%KwrW7Dyd9LVZ2rW!wSY3|i&)D? zO6|@H-ds}WQ={n&Nga=kcfRH`wcDTX4gSVsXi;@x>lpeNJa@NrPLecikzmXuGPbzh zQFTMaq-!zL?(|j*PcxB@iy712{nhE6PN0WL#Gv```jwuJ?iKm0< zFYM|Go}0N0crHm0X@50&>ejU|XEI$;e=oz%l{6TD0XW(>4z+4V&Yn1QH@juNv|cf%SNpyH%C6u;36T0d*A zZebre^l&2|`Ek8DdjAY-*OClVb*5KMYVcNmHr(^EFJV6?I+|Xe zy!f`VIq_adx;A=cF!~Y4XDbv>wOwW65S_B{bilcAB~7R5%*ojPE25aY3=^@Uo2|&0 zv5*yh?Y3o)x)}I0(#dmPYTwT}V5M!s8$GQ}r^3`ZYvgs^Jx_Uk@Vv|{Ea{;1avCGl=V z|2rZ5pM(7W^M8ssPNo@~u6bnTXCQp-KnIsgq|C)gSWXT$$^@HtDIr$dvW1GsHt;Ck zeh7rqW-5ZAf|o$hVHGZ2QSh~=P6_xx(M32sNG-FQ(|}xviO{*sd47op>x#Q zh1?F+iwIbrlwkOVkPYBg*sv$^hZnT3+=b-7be`Z#LJ&d>uBI#-E4 zX**eQ&aQI5lnUPQo#0W@iQ^XQx zg2R4Ks=mp9XY1i_JgUrF!3f8*cW=kO&Z2*R)Ggxib-ECyl(o%w?WtcXtl4a!2 zB0JRCBP_orj-I`kyBsb(u(FeCRMd8yKgDhKj?e+Y^)3K#`q7WWo=;byee z=Uei_R>8?eqX5!Pg2oOiI%_!;_AhOnKjP8V0>DW??b@0T5$`!1BcooYbs(7EM>R@3 zpu1vWkC< z*X0>ID)?F;@+-{ge)Vs>UU`3)a+Th5{EOPBQ0ZzOP|Q0 zg!omnRZw@h9s*uY#Ajxn|7jo`dBwXe5Nw*v=b^shiSD#i4d@Bb9H3peI6oAbEBv~h0P_YGY& zv-F9#B4TB+SydMNO{ zy1eRMO?i~i*1E&Z-n%`$9~1K2oH{*Wl1Ds!HQV&HftD5c_ts7!7&yw#dW;V7N_TajLR25X`I9&5UVjs1GSYsPriSw6h?GT=p&;o_<-> zuX#x>Gaz=UQ6d85PA=qR!m+I@Y9`w_Y%N%r2mZjIjQzXIMb^^WVbM$*q!UrZVQNQp zSt@UgKW^OB&Y7})5}hYiEgC$0m1)x>`)kaoCxs2w<1!C3*H~VZQAKBZ##x#UkQ)@W zzP|y!v(uL93q!JUwjp`z`uDa&;Z{nXCOff!ZVEg)v(*)|&~w;x)v|@`j69W{6-X-6 zEAF@TY1O!}SL<`@a>ugrLLTVeDeGS;!V*)!iHdZcYzq@Y7~ zY=xM+_}YA`ioCURQh6%^69;TyzaFOfsOhJ?Nh-7IvBOu}nM=R_|wZAOhOUG9T zvWG$TaCMzwrE)63G2E`2INOGSY^NbbE=ndhHUuoshaV6is6mge+1<3X9Ur0wnEKbe z7V_b&Wje}1%{*=+CxVU3vaP|AqVJ4#~pItK`s@>C+ay*&lF^Xadl%VxYPXSaL z($ilck~oZ&ShvthjROujgzQygvv!N5l|0;>d~fN)YrG@8zVt?xTrA4S?X>Y851GEu z&6Isf(Z*3x`Dm~5+wYDz7y3AgnJA6Uwp zFGyL{_)3dl$EPxCRUO)%2n*3$m*#J9ALC!w82O2rdeBr)QTzK$tHU$79HP3N9+Lpe zoi98C9d%ysDLHR>l1ScVpRqY5nXF0a-u^%^AmlgdX)o=weIx`doON^M2CE(nicpB_ z-S!2DtkLq=p_=NfDt5?sUVVG>{La^N!}0>E@dF);2|Gb4U11nX)wWNeytLv|$~3lr z$KxpfdXvmGTnb=Pr^$(`nY*Zbgi<%SMkpTQDzP+HReeb@P$>H2eS}RxR?M zPFg?9;fCQd!%{KZ+Yf2A30TTg?dUd!s|_E=z!nq{WtCeezw&b{O6bvA;PW)geS5BE z1MyxUYoW!gg(Qng@hAJ)7|#T-ZHn+ki<8&c21mj{uh1eEPRvD3w4NQ|Ar zWq672fV-MefjQy6Ek2s<0d+=k;j&0OxYpI})zZ{#ASrlbpM$lWYT6}sMm!AT)6siL zDzgCjjW_lLLA9XZbv6)m-QcZgT5h|h-=S9od@)-ex`QyQHO4?3D2vb#s3u0V^^t*m zl@p`8vjM$bTlw3H%p31~UcC=M%m~(ZaF25v*C#ZhGR%~IH zh33O^o-e=gW||ApOE=g@B|F0y9*XdjjBw8(C?HNurQF~(%ba;9Q3xN}VExw;lKEid zafxEz1Z{%S(;jfkcEbYa?QAAuvZi#7Fg_yxf(y+cDdSGctFK}#w)6C~v}Kp~u14xx zr^|MQgFc-&ZHfN6q*+?}*<8QglrA3x$RiWX7jBbxzrpH<8O_J zG?Nr4aBe48zAmsN{yrjm!p1s`+TD^K?x{xaGSFd!+8EDL5_vcEFoB%kUVrOM*GvgzmaBo@vF{UKRnMm zM5hTI(8cZeE7bkyUIUK7oY6Auf47y zXq0t+U9fxo*;UmjYraXbPgVPRuLnx1GmA954GzoPrTHmY5WaLj9xZG3jlAnUY^T=} zHP=4j-M%hw{zpnugzCs|Jl5ZMt^cor=&lzUZ*SG zUQOzMn0~GOJh?UbqaCW6c8w(AdIQHKpI0YFgah_O?L*BbdJW-72RG+RpIVI>2hTc? zl*j$Sx*a8SqFQhtAzL-Ter|MQhT@8txD;obx}~C8uPFDdP%oyp^h5>PFrW%-JO)Y&H=2$$}aN1Py+o9HEzd=4M z&R+Ds{%p62AcOs!EWP{?pWxXJAgneL|Eu;vulZq$zE8rYXK!aW*LM?-?s`V@Dn0V2 z-zFIEDcJL4d?#_b(SA8~`WxG%k^qS&+<|YoY+Polnv_P0rB+g6qf>&F!im9`L7D1{ z5u@qFu`{1vg z7yEL$HD$&?DE8j=^olvN2VB!!`n+V`6D0~#a<-Za?d#f&*wF_FHWP9?N?5?0OG+CQ zaH&!LcZ13SQ!9O)6JJi*+s*E1ee7(-`QAN!)Ut43$~tcQBWx0nP%cJqz%TEJhBjnX z>`@5idXHM=OE<_BtJ|E_t zibF&%YRvNXe~nvA>6PJw^9jQZlzT)hBw8s18Sg#|tIh$&5qR(szlmHBJZc(HcaRhr zFNL64^T{dcG#6048uJ5oE@5RS>!eOSI8XKx+{OVp-;LpMTvOtHA-&c~ci!`;P{l;Z zFT{z0@kq7Uut!%MIjyGEb}Vzfu%^}Y&S>uFGkV15Uj-;6`F36JOp0nHe$&wqvYxN5 zX?kYn7(GJZCGqH`EfN$VZnkt;QD)(7I@nvUcMV|2+I-eDni8y2O36N}QZ=YYJeh#+GYdyDXTJ*Xh2qbe&`KUFe zu@8f)>-qR(fvQL^XVQ*55*<@F5)f$oJ}Sh^vnd1bYl8;2TT6j&A|cwIx_!{K z{CJNBv2F&Q>RE+a&UiIFb-kF+{1%v4dBpqS?z9kD#D_$8#Lc)WJR6`E1zL5~ zmKa0^%jSMd220dDLC*r7e7x`bFV_i<2plc@U0L%8SoqvySqro zz3)Jq|HQ+xwbo;2uBR+MVa}I(4h6ta0j4B;T2^L<79?LeiUXdZg{B9|6$@K{wpmD> zX7Rl-yE=t?Ic9dh2&4)wmcsWb#NPdiI%7${F2$9(&3G!jpL%uZ)#BwJcrIUfd7*TA zdi5#S%jp<`*bi&8{#fsRIrbYbv zJ!~&MVJFoQwX_eaE8Whwio-yMqv@O3O*_F^51hFL2O5L)ZfKF~aXhm; zU$9%2bUb9N@u-+tA+G%{c3rd8?LpE~-<0f7;H zL5x+JO_z_@Js0A}imDXxY;jsS=6f57EZn-%p37eSjeOVjE*7ng!fmF2WRtAk&xNB6X?9UzL1A$(jrJ0v;9&{K zvO(df0d7=|M8kY67k7Sth(mY*5!1Wc$79}oFNa0_4*bH-L#`uzW|uJgvS!UIhHoWM zH#;6wZKN9AL~}qzjf4L?${yEwi^&_&sDkeGq?*6W)kiXsOi{JOf(&qC zEHxJ$;%N<{>`yPqo$b3M+xyq5-HP@wHLgMwy(IwdUG?(lXwPSc=MA7~5cTI{xY)To z+W8>r3xvn#$e0j(k22t1kaJEiWWhR`d+*|2B&5@XY-gTOe3=?WKco|)cbX5<#i7c@ z#_YA1zL^~8sD0Z#Nl7f<;9$S>JWkAhwU=XT)FttzrmgAQ_x#sqj#z<=&=S`f>;=$D zUXRS`QltmFAf!;z>>{+dA#@wm<+_gjA_umaXm`tGamYfAS!R%P0s&u@T_TSHYk-o!4KMr#ytYb!=RFfslyV45;xR*e&JiT&HnAV|vlpdw}4KP)ZQm_~p3+3&R8{mdq3_lYlrS5|ET z3P$K>fEs(BM`q67opwI6{SdEukvi7 zk%5CTEfHu%+#X5qTY6T%Qs*jIS@8M z4-7X(RWIiH<{bGW-hJ`%Ert^1@m8Tg8&+>*zy>G0%>J45xUK zanelLyI1dS9%&n@l<#5@n7ti!hMFj?H#9x{Gh&uWI3hz?fwUFSa^ZHZZA<8lw0W0m z0kuq`?K{FNq2B9v9z(#0qkM(P6NKgK*Vh@kR*&^Kl0!J3D;rplORaJz;V z=TB4A3)lS2z|!3~=r5uA>3sOugvY7LGps9Rc*0B7pGC2H3{1Xhe!Njssl^W2>pDGn z*vzL&C}*o2X4A!nJRqRuH}&(32BCcx1 zoz=~i!0xQWNYoc(O*Jf#^g6h`Huepd_ffZLQ_k7OM}ED@5I?=I4NLRXzwt`cbv_UG zbeCsZbBk+@m#v#Wi;GQ2@eY0pORAIZNT;kvg2TdtQP_2pM`=y2U5KBl+p7si# z`?M7@Z2PWe{A@MVCcD~;{FdUxX4HCHa*lkNXHm7$=l;vmQ=KKc>Gkc4c;B*vSo@=6 ze`TH1IzWd(3*7a`;{%vpaIH7@`d22Bf(1=KH`7$)w%mS6n|S5G)G?Fh;!NcOt0U0B z=!@2B6Oy4dWa@`t)i@8S!=V6^%CdWZW+LNj-olpIr^hcxc+&kwO*FB>|K5-2 zEI;x}@l8J<; zUl=zgt$JMT66Sh)_))ixH9PP!k!t?i&#WppN_H-9YgRsI^|W(74ZDwj2^s%vX?Hu| zHy+^U*q2@ZCmjNhniBnnrRpAOLpwJ)(J$_aN=LZXYyzKC&DW0c0Y{$K4lq6nRAlO;Q*>n zFZceaZy~FF%STsrDTg5P0+zLf5TjH!iE%0}XN{%kRJMMrzL=!UyX^zfWZ93_juK>Z zx0G@l6o2ED!tW>lu@Iuag!*tLl9-tur15e>Jyc79OyvH{&+3-F;=`~nMNDeZX+0t? z?^mgZ-J)MB3AvY8i1#?av#hDtv#fmhse4>bR>k&AAAMo=y8O$a{u2fF9|On#Y}6)c z6KNHPho3O)EC+61_=vW@&VjE$lCy``eW` z$0tI`mIzJxgS7>N6`qp|>lt`VZdrzlz~&6|1 zh7UjBkC&nU<}bRr0qZ{NwZF|6O(e;|Rn4_`Lu1A5lig zDU44LN?i3MJ%GbtNO1;tJ1P#nBj$2H<9@Lzx}Q7mzL8sBOteMX%d$T*`{OrE5n59kTM(sqk4wS~F^}|L0qc)B5!{r>_A z3|K9(fKq7HLg|XPSie=zDk~{>we(YqJeW?%LMm#2oPyE{1-Dq;Bi-Udr60Mja%TUt z$v*s6r=qUZwahS!NYmrk}V=5@*c2+XIIZ!*(J)pIMFkOAI>0UydpWUKMMB?#r*{sKYGi zx?iy-ZnN0o;=;UgAL6%3z zkVH8iYC)(%GPBB;9nP29>>7T_4T6ZQ2zC>{;k?iCtL!2I$!eniv|@SDycAtyy}r#Z z-s^s;=w_1JuKSfMIcA0^Z8*3@=$d>!W1Vg8m!er1>+JWPXFw=B@{OY2-2{GM8}OEx zJV&%O+uHeyUUIQox1NCDgbYTpH5g?^@)iSaIw^obEAK*i!t-=n7U zVVA^BDZU(mENiN-t0}JbqaQSX6pYNX1Wu|3tA6`a(DXk%NhUVUUk!A&{*^6Y{l14l zz+FddqnPIr1Fo@Wi|33$+#hczI}tp}&Rtgmt$Yrmg?L}yjCBZih4 zdrme9W*DHVwIPo*e!+KTuX`7;T-=lwHBOjA+WSMm`1+-c8?WEyUi0C;=j~V$5R^*e z!R6dGXbB4lYPeO zG!h+iM0aM(SCfCuqif+Rg#^6fo@}n8`>D?Y=7mni4lD@I8GWjwC&pD|KMw2KK=spi zTY}8F(YM)ME;Gc;aGixldD0`KLXLxPraUVBUekFk$LLifvvTRu-5DEY zVfVrSIsknt%-an67`UoCArY!}VqpbTD%`t`=}vFyCvHr0pcgqJ>ywFb;G(8wM?yI@ zJz2|AuV`$01w&lB&gsL zvHMub+QqOkUjv6D_qR=-(yfI(YPbd7hU|~Pq75cJSV;Vhke+Msx2I#v>LV>y=I4k? z$LeG%T_|zbfI3>e4w~wI1WbajQnM!~!~AwH!O(pR%HU~F3@(-5vIKvOs|XBO3?7dY`oNxCn*dYnQ-QC??li<*JL*w4KOXCp1 zf=lD>1Z&(ixVtu%V8J0Fp$S29nDehMzi;MzSEoj5W=>UK?CPtxo@ej%?sv;tmZGcT zTH8KYQ*?Znf$HNuKXUCrd09m*&MS=uMYy{C@}BEF{Fd6&Of}B5?Xto_rL-xSBu*>k;7b7FmKPG0NF)-|9IS7XC>&UW@I6Dr zdNtM1Bs$+axvkF;vi}rg=v})hwVee?hC`Xxl)zQAz$jyQe1wYN6G;=_1r{_2B|ehu zu=T5w*h>iNHwo*p2~$u zl?=MvxOl56Zy%WVYlnnIZ$_oaB{y8Z)w${}xI?<^Y>vNTNbiv6XBC@`UUxqeyw!4C zz=P@groZ2l@D(^qs*SCv^)@7!`ISmLjuK|%P|NvwF8}A`y|z=<-c9IcwoF^8+A>d! zjKOW8GJ=%u?O#w8zl zQxONlXSl}S%m-Tu7b4wDi4OF~mz+BUj6uznOFa6|#d>zuC|GE1N`rIat+C8qR{)WL$UBP*&x7IzI^UXkP*XP~q(cLTV!aeVc)Q%=v(j7)Yr7J2I{D?d7?RBZiLuCM!E=OxfOx3L?|?~fIj zd--6Baf2c#?A*9jM`8GB>#FnnlNuy(&3c27?QulyIVLr$scQ|DV{$6BYO_OPYNc1{ z=~4@!q;CM-^=7(?YB>8{HO^FBzeHlCgbL56`>s&bTW6=ILZ|4<8%#%4D_pqr6rCXq zdIDpuFVSw$u14FZi&synpPLC85|MEFqPM@UDgdVd({z{oI-RcS-7gmw*uNcE>14i! zdMnk;sb9r7*6WQ|Ul^A|89a16&A8cD{RDovS7W`X`gJ$)%@ZXN*nt%r_}qt{-6hyr z7W_VaZn;v0Cv(nFXjw&eFPfRVtNXw7N z#v0NahDG|~l5Iq^eN^n1(JY3iyAGBDI#{mPf+h>md#y;AI_jLFTZ*V~?H|g+j_I4$v z{kJ7!mQR5?GS%Q)+v9RWp|wpDR!WiJC{W#L26yz-CXWCEaKFaud9)mMFSkRjQ^pGt z^3}1>;;&!Zk<%Wy);lgkIBrqrm_|+q-_|@}0z6JqsEi;BWM3cxpCq&V`Www>C$8h# z1g!C%>Q3NhKGZm4q&d`3`iZ*FB{y=v2HjQm)}fSKud6YP*UMPP<*;qaacMgcZu9Z$ zkt)?<)d4wKxj8SUNNk`jEVpCME(XHE9*Vo)%wAMG+GpeA)^;UMj;=Cc{ z_DtYq$=Fy+Q&>NCo^1apyK#d|wuGr`P?*lF)$SJ?v*m}3nmjeTyX1}*xI%l|$%>m% zWeAUF+t2;YIOC|YN**>Oi=1`zl=3o8Tii&ELhKj6v?i)Fek}7V@&%fL8-Fpso0lQ) zzD-!%TAT`-7Pn;ULAf^a!k138I|u5KU!#zPN0>J3=#_&eS2@V>=0HS#_cjIHkT_8Z zo!KV0M5c-&PgY8OYVcBnA>Q$1IL~_&QCa>;F$OvB!%SV>o)Ebyj zqIIftoNKFi?uwlda2(qRdeQ#~O&J<0EseGjn$4?_k}p-CXxFdjNn_#DX-kmy^igf( za)yv=3rNRUZwus$_uHw8vnrLn@k}DmyXOQxu=qYqwM6mB$4U?5y4Mn|9uZ62!^bf5 z<1yN4b+ePKc9Cql)a~+Rx9(ZT>9kJ|a&i<+AKG6(zU$ZDX3d9XFaRLvox5LgoXh)~ zYuD6K>~nbLCCn^0nyhA~t9q9XwgxxnG?HlQ++*>xC2XtuB?o;wJkNoch8xQc zj6Hg`Y1zt$*FIQXep5BG3W}$eXy3gO%W{_ZwNQh@vaY1jorL{P#6$=UOT3CxBWrDt zz6H&cF|YB8CBraq$X+qsGXRB&M7Vf9tZj*`^5KjQk+}OnwH5IB0l+Jer z_Kl3U1H-w-7D+8UM8Z>#4KySe)T_s*$}WTb)@>>qiP9rXJ2yCDc*d4XI!>5Av*^MO ziaPli3m2Xqy+5sjQ`3I+ro4T+ZvD)&u2=hYhxG7l2%2Tt%jk=(l*Ct=J$VI4)30AB z=Jd9FjGu9FjUBqCSQkZca~dn<1Z3W>AePATyXj)sQrGpON+nB!4XgN++SayXHSj)VjzLvD>|K-u>=f1Ods;Sb4GkGo&NmaF?!^y}98 zN%r?8Qmz&UmyZfcJP@$@nyQ)zn0Z>!iJFl{`%^Yt-UTBSw?iQMT9X4L+lMYXr4j440EV0&Z1c~Hy_i$J3UBNfnB$qO!+~4dC zl??8A!M;ovGuPT{iuSAHgoXqCb~);?Q!|;iiM38Bn4=RqU^soIfK8u309ZBP`8%4C z3&uC^85gkQ99j=W-h)2n;wghPe@~7AP?-K}R6%)2j*LrUES;KYw$3=4K`jU)3mcy7 zvR*ENKhtUl#dSY7 zD{S)141_1-|4K3R)-{x~+wsPM*yVX8vEpaxAG@gjvVC!*BQw4(mFkMV*8s!AAE#g1 zu1s@~x3r=b7YHBsI8mwbEF06`XJ2def{C9_uqlz-ev2Y+fZz94V7y{VqkjzuWP$+z z1S$X&WrEjC?_RxXpM83%^77qN1nVpy`B(+ubl>Y@!nwfBNHMow6LNW$Y3U7G!^PQt zfj`mB;n4Peaemg;&+I*44PDt;uy(R3gNR9q`+n+YNzm&U9g41+ZV0_CEXlD`=p>MR zT`0Slme23*Q7Amz#B->>L5=dOjA$Z|I!tCIRp3QjpEXbiVfX=IP)I#5ij<}_L-N>^ZaQsB4VeKiz&Q3?@-SSUgg>Dt1NJkS1_w)PZx!8^q zm*v@su`v}IaTJoloB`})<}Hy- z6)u6R7|N1Yh1~==KcTOg-xCzCLVoG%z8u+1`n=Lxrz?3EqQ9J}@)-2<5=SgeMg(e* zIRy4r&Ch+<@{FTGShNZu3uvh0t!+=eP}T78ctsV<7)yD3zrVIYdGa1Sj0mZ~a_Xnl@wfA48kRKG=NCZBRaD0eYe-NY^|q4%pMBRc#ub`3 zEoG^Q&*s$B8#VAD8XMgo-B*@V5q8VeC%uuM4#C_PXq#pjEiM6imf3y~*VTya<7^pu zt`}y^y%nW(;zUQSips^-gc6?aboS1MWsPP07;xQo+)P(N=Z9`Z#;(1>l1|;9rusw+ z>Ye_{Lcm!vNCL*glB;)MIILfN8E>etY{QA;`Os_juD&FMK;ztJG1YdzX`7nKyU3_1}~<^Q(cIZoBWFwP^TUt2F?Hi{vQ=L0lbUzp?WhQyE}j^W{IJhxJN2SZ#6 zszao$UgR&nQE}Be_k84Qlm6TG*+33B^fevQsfsSHR;NL+5S&XgM5%NMec4k8DmL)$ zjt?37Y*7LW2raH2eri;F4PIIpYr?Ia6^E20*(ZS@o$f{QAO?P%QJ$`SvqiL+d1iqm=QItQv}X_ezI+7J4Gn zWZ`%di}B{yHv;nZhoWD?UU~E`njH&Y-v(dR;lghzLyto8+sy_pkn_nGMpvr=e*i9r ze%m0`5ok-bcgoV-3V z(*G{li*#vXPzkea;d9Cvi;GXws@AKE_xe8W=gsLnkwf?gplP1w60l{ya(d)-Fw4s> z7Tff{tAz~x@Et?NSdDr%jk0vk>JiDaC1K>S5$mvp4>cW8lh@@WtwJGC-=xbh1Is)wxfP*OOw&WD7vZPVwF$?7JepWX3@eNj3?K6%!)d! zaN-$IDZ6YqVAuERcLnoTT1KY<5uQSkK+{>Dy*a2fQNNWxLuwm-GuF=|pUW^g0yfK%YCg3+4!g5`Z`GH)f481* zOdR0}cwtQQ^a-u?W=U1UkI7=rI_xT*JgdQ~2vNzWNPE6oUXex}J+68QPi@w7wI&Ab z1BJy9D~t2n103nkE7-oO(vLeV(DBh^)aP z>-C&SQaR>y2wYAwQ)0o(e zP7CCc6)+ZAZn1rAFRjsu9RNIWNLM~xgmy9dU1^oDqVq(#nC;nLEqb1d{j||5P7reIDq>LIe{N7ItM+~mnMSX?A!>;Eap^! zvo*zWe^Nwla)v=^u7(U;-u=j$v0&4@?8tdLU!_C6zpcOKi_3zksvmMH?aj{`wJ{|& z=7{<-&wJ~{sV8fVxOMfFNL`fU)OM{&*^4Xf;JO88YHUK**N6GRPjgX#g=S^R-JsQ?zqp>XIm?3+rj&J*tUGE?`!NfVI#xyI@7}F7{lLy|T{3mtRs9JF+fyd6Q7?GVz>dK-6q6u>?i8)b`UCV&R6DKTq0L5tKCVm_o=E z*P2$mnK56~6Us!L1LIO%?D#0YYi^L-;ujcqe3Tb7a+q5yI~rdHQD;S{@}%j;haAo&sndOpJbcLKf?0!D!n|0EiZ89MMY#>l0t~9sX@5Q6 zaY8l~jfIU`8}zMaD9o(tdBSGPEA?F0Z6yJC`LffSD!0KLWEa0-V8zxJ%LlE~$Hi;? z2d!$QgDQTrPj6ly4<#UEb8lzGXHkWKza9i)1bw<>M9NFavRk{(uzuOX1{G*4n#_=tQi0sWcU2}I>Bsmb z&T8y-j03Ycv^$kN=G@4o5?qg6{9iP;W!`=KzU8%uf&FLSAWO;CWlYMh(FkwqHmND-;*FK#8^~(cH`984R9v zm$SSvDJcSqClFS$5f#y4HMM;~o;iW)JYa*NgcALf2cFCedAzrf!%uYg@qYkKX#bOm z>Z9h|-xgtfCIeS-1}F)}Gdoxjf2QCu!-Wsz(AK3Xjm>ErUrl6WDV+w^%GbntCYJFK ztG2(IPk7}X_XnWO!M5MY>sE~nr@}Xx7CU8@dp_>ialRQ^mOYs*Hch#m?yTF+D(KUc zwJUaLebdi;3h>M96iY#7oMHcHKQy5_R)kjK;-r&gMO^TEudIo>j&J%1{)YQHHRp#- z&QRq@ahjGWA7iJMfBd3lMq%Y(s7efD7&N+rdl)n_1lo$_gz0`zmnD{8WREPwF(Lav z{~ea`fxSM5tc>Sz5=CrUF!q3agewm73vZTfx^;NusnladGid+zrb6fU;8o9rPtPFUx(t@aSpMEvzLuk5S--pv0@^Va_T zJ*W2ri^IcI1!mVj!>5K{8bc;c38($pv!9ZRvAjVY$5=d3Uoa-SugLX@hq3oemWPy% z3`Xolu~K+T*08#G)dQL3twTnEXUW{WR!)Y>4g59d_Q3vJJ3@(TJG#yGWSEb=UIX8x zbq?ic97F12tgD9G=qKH8f7G69C(?eNwL;s9PJ8AYVO-TvVag8LjHH7ZfW1{O0%l1C zos7@RWu7Rzyev9Fe8iW;uLhfuP;bVejU!l?cfeKqDOPY=TkxWnUcg%;UVcQnb~GaX z{LYwM7zoN*Nu}Jyc4=&KI_v0j%<@tWtE*WoaaOvIhnqdBhRULiSjMWo*;vrKNlEp| zVtNBRb9S2l2A+)Jq&#qtG*w>!1RK_@&liFLhp24j2H4cNHwlaO&GF=jC6t^cu%tH) zB8qD;jl)GGg~^`!i1Td4$;h!TcBrg*rCe0?IY%zZZzGHzqflt^DxI=v&bVpk=rFKf zEXXipBJE@1xMrdtEU81wKkoFzjw^p$SVEKNBrG(|#wp4&>SS?X*@sEes(kn&!)VuU z6?w@qmV1|aZDGWrbDCS7&GNWhC{f8%6b`O8YmxY%WD8Ig6b_k(ejREbKlN=lF4v%PR7%UrR(2t&ZbFtq~7$>J!r^qTt{`3L`KXIo#Fy#L8*B#cW^UyVh}he zURx2GUu1ijE23emW`W}ql&vo+oh()*;k>Wsg>-c5+)sgSI}aCy{pc1*KK>yx-t2@; z{1gmiZiJF>;K6fwE_i$npBWT=dh#3UYN51|?KE1eHsU-UlNfL>(+h-|G&uJMzkr-| zB$ziO5YFBL>`{jE%k67U>#pVi7Go`E_^~#4TO!MWSXZv?L`ZSCh)oqe0(U`b%3l69O7Av6oG)Pb;5!DzMgk(sQAhGW1c+&x-FD6(0jK9JHg z?2Uu+FUN?sTyPgx5D_H&OKSZF&6o0Rwu5FbWv(nS#5W2-pEmQt4TE#iyLZz4XV~6# ze3m^A>LJ7_?Ai>4JH+qHzDG->0qUK-*}@a{fqC8Dclk#J~3 z01U@ZLU{L?_g^9xhXm#K_AB*nfQCKu?c3CL_E+;3wJ}k73RI=aD@oL-thG*5E3EZt?(VL0*MA)+Z6F-LYHe?^yhiKed&`p|m(kiF z!<9@Znbpw(T>~Hg&~dFys$ryVQjdbr&)GdOd#5rkFs!|kTX(iB__RgTUU#g`HOp75 z0)50ONgR0Hfj`Nmx+`|wD2@|0FxfF!LaVzGF5W#8W^}OSH)E4{7L=XXovY#d1rPVL z1@$3zoRjHDO}A3dM1zlJ6mF4=i2a*SPv9u%&tNK0*O7Wg3r0P_lK`Vz(9Xwd01AVm zYi~u%=k3gkeT~5kMV|Iyb|mb_Z&m&Mbtdz*qVtTJ%?_rKJ0Mp_MNy{5cZm<|9y8*f zlEZ*#|FMx9)8&Tre)Tr>!Ty^O#T}2%qduaGZNAV+*KV#Ew|}b|NatlNbd;>*t~4O+2sb1yFgEC& zd;^)`h=iJwU7!62AD}zMBRhb}dQS~<&2wJ-rH(8%;4iH8qUenqfz|z9`b`oQhM{sx zeXWxtsmjgr_DmWCXM;0x;@FXpIFlVx(S6T;`OQf|S0>f=Ba-Q<-tVQ(y` zm0iv?n%uJ(C#E^+dsF^c7&nz8^)J(y)%L;V~kOj#%@NE?E$X zVY{-OHo=sDbBo`5-C-TDAklGi(3F|W9^;0j#R00!cm@F;<=z%TRCv0w`ozHET{u^2 z5eWeHrlE9tOcK)Y=D@YQ)*l|g+-~TPZeGN$mXqyC5`J7Mp~X$KQmQ>i3M`&&dfhj& zykj_^Q06IQD+hUDD95!weq8Ro`7+>fq2A!=_JD)q?4;Bym8!!KoRE`oL+bt{Ec4$h znV21KOKIM0Q$7^w8gZDDeKZ^yA#d2kj(wO+Ss`B_TAexTtACvI8yR>^vl1c{HvdTq z@wo{#7N_~Qb*`7uYJ23_G~8a`2OWlwrn_WD&Rh*V$h~VfS=!6 zqN|zSuQgzsV^F=8!vs^%q7=S;fa}AlQsX$zj%evFT=VqqnMd|+BOzOU zW=)Hv^K~H~wJX z9Fi&*9_PcrI6n?r+scltBM4vXh-s`OcFR_+ZM=v)njnUJ_~9rmR+gK!wT=qv_F7L$ zrqWqqzB*;OuJ_<%uk-u3m>a6GfTJE`>jth=Tx9f}O8Z{VQVY{NvNy^O*zD^f>9o%y zY-y>gJeLORZ$}rHCbYI0?0kN#+!x;G1!9JYEt8m@bTiU54}SgfxfA6N0J0pY5pG@~ zoYgZ-ua~UhtL=E`wM;2*#)YJa4Gulgdfs-zvorl-!l2asQqZk&H1~9ZDuL?G$8&Xa z2-jctvya z2byQUnwA2yEl*U?qcX_+)xGLwSA03{VosG@I)#HvMHEtNqZn!jt&BXI3)(E#d=SLm z(%Ha{&2`ofF82dveHDr(ADj2hX3WQLD+?A4H6kRNGKFngvI}3W+#*xPQaf&VTF+gLlr2!A!Rdpv|8CfGitXdT0-ijPQdDlSg__wr=}ns8;8Kz?O=6HPU=!S zPD4%%BdVQtRGlOQYCJ!r+u{PD;P)nNgSul=bVm|DbDYSW$0$sqOQ6Npg~DghE}Fg= zpWxuxFogYnyZc}o zL!2s(gc+2ySsCURoVD3spxZp79fX;Kj}Cm=N0hXEbp&d6371sWC~@%(do5z1Q>EFw zT5qFJnZZ6&BbHf1!*b(8gT<{xkeQe6Uo<+)eT31CqRHEY5lG6R#1?&L z!qi}nkq&f2&Kk%bIr)IFidlnFPl9+r+wq-nrvidk%(6&Gie#3!npAR%d-@$Nup2P%>F?qyasB+;RJ-Em`3 z(L_717gHQfXN#tVwgcO`fdj{VoLaeql&W{sltc}F6)`9;HQK${cgiyd+1@B5G?cVI zMTB!T?p8`zsefIFb2OLiL<63K&tKx=Vyy~37`5=hfNZ8w0H&m0t2|HU ze#VdPqirQDcdjmfs;#rF<_Cy$BEY(4#d4;Sw>m{K3?nO6`>H(&dWXVgJl*ud6n@Fq zXQ%R|(5XD3MM3dBknTJNGr~kdsnRPukfha{ z)P)rn+g5m(1BHM)JNsEcnd4cgvVV}8SaL?4M7&`0=ID4)GKoT}p6SLOC9A+tLXDJ% zNZtY<;j+OcS~_GIONQlB%3}`<@R}Wi^Z2zQ^x4z8C%O?B-KivnJwq6nuJtkWUY)d) zKHDFTnSHKK->FG$Rj>*YnoCLbe^=u?QY6y^WB#<$1ZE@P*Dr((WOY|9zRP1zs#k(hG*aG?){GK|SD)#k&8>hY zm1GQ=6Ku8Qcx|5%Y`(MFiZN{cIs8cI_+KnBQU9LEp!3D*3Wmy67kbUB2R?5fXB`== zr2C2x+3pyexl^eQiK@)3|0a&31IZJ7&x)4xZ%tYCI^zys`F26;rGb?MjvsIeLHjg4 z&;5n+5jMIIcG4YhVz4Y;+d*uQ|AE-BV3Ia)T2Ql!G=E;P7Y_k?SX^-&LOsWS`D$C6 zcwUsNfj9vD~QBDl_lkW@*WpdZ#CS@9LL4TCucWy7!q;oc6r=*t?^I@+Xlm z&VBuSn(O5JuO-}QfMq~s!YEEb=Se(#0t8%;EYZdL5P2p#BpdQYco^YwFu{GCjlZ&Wy})i>>ibo5 zORbobjcecPkCj)QU)XkzuBvC+W#>3Vis`VN>w#mcn>nPWV^Wq+j6UjCtA8LkGpvtk z?MSNb%o|d;8)LS~s@WbIBaI9kpMn^A6NEdM$1o~QZ;Z1uowGQP=}}CK2@1+OuL9Px zMr}83`%4myU8j$I7XwRA>p*#mun0^RTkkeTqQB5E^y#cP!6*rrgUp}mY%M-fhLhUCO$n`a3=JjeT%s5j zTxS~ARkcIkP_{KSmn1B@4!tKapnN9POt&@WA=y?{l`LM`w=#-+rGM&8_A)yr(Ca#i z+y>+HJ>Nnp%b4D@`_%$-lBZg0lArF9J_&}Gx(lVYC6#ILD|Cpzng))iET^goBa1G0 zP}Y8eK67iY3;|v?6+D2uf7h!qC1%F4X-^kNSm1p&TB~{TgBgq{c(Gu#)uDaL=8<^+ z{uCz>0FW-t$mVP!peR5=QN@NEq%yvov9&Rgh;;pgbix_2!K_s~BAnp3TaHXsc@Bwc zMuyYVih|x$#_myBi|>>cN6sryKDHvEGW-Mn5<3%DgpO?qgG?nJTItdfVC1s=Ic{7n z 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 Ifo}_c1N@n^XaE2J diff --git a/assets/images/componetinstall-48c4f43369628ecd72f0b7552b56aa9a.png b/assets/images/componetinstall-48c4f43369628ecd72f0b7552b56aa9a.png new file mode 100644 index 0000000000000000000000000000000000000000..3d647adbed9684eebc9017cadd14edc329d55c21 GIT binary patch literal 44627 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 U7AcH)bp`q=QcYKttYRJh4~(3wn*aa+ literal 0 HcmV?d00001 diff --git a/assets/images/componetmarket-a5736dc9d12730f13b18f808c90694fd.png b/assets/images/componetmarket-a5736dc9d12730f13b18f808c90694fd.png new file mode 100644 index 0000000000000000000000000000000000000000..89c9d9c2780d91b6d54312594aa23274079ca675 GIT binary patch literal 84744 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 z zSLxVrR|pN*!2K#l5~>KhfEr4heJLv6RE5v_KVu~*Gwz54>O66Xo4+mK9CEZAB!@2C z>80L!&@ExTJORZLo*;`3ANAI+ToCYlu=3bzJtx_+Gc+SrY~=csQ#L1z+{bal29?oC zIPX@+`m9Qs!Tz)dGmCG#g@}vL9dDZ_E{JQ0l$52Jo(b5k+tH-8n7V5{*n+PwMXq!1 zc=&ds{2CDJzRnOs@#e0LX-U(#o8}jjlYjSfyZJhD-WiHcL|~pr z!$a50NQuMXF_8Y$PIF@x4~yW5fL1Lf@B~SCYhX(&ECa3M5x&MCtuA66O3l;r!=ChV za*~s=m0NNm3f~7`E(2;(TZ8F@ozE zQ$ZA}n5O#po%FaDUW@60g>%YGiZE$f|4J({R6~>lTByU_y#Obc4*onp0mj~`OQ(p= zp4M7Yn;(>gDj21-cu%q6H1i4aAl5c@*84NQca$NS3Bf;ErRzPAJ;ZOWgUQP-q-(T_ zt&08qre18!TFl4wDjA4`7^#Ws2pV=mDhDYwp31p9js+Lw1-W&4;(OUuRfI$kSJg=e z@up$!j97;tePQZR0pIqL@$jkD=G3g}9J^eUmQ4Fjuqu`1dN+oJXOI#0i<{pb1mk{O zH^G;>@UilPzY8_!qJt9ac1yyEXf8Dvhsv3!TiL0NH@fDwh!iT>@}?em48L1!=Tgrm zW`|(d=jq=FD$V*~Lfd4wv0y+Yn56>&rc&a#X{B?nqI`%j+h_}sO&pJU&$myC;Y%l7 zR+y+Vrn|4CGskHZH(&}_t$G0&f#LZV}2#Z*T%VIpZCW~P) z-zrH*<^%|2UcZA}bF|-~eaylHzI;2$fGPLQn11G)~i&Rn41d()ZRAw zqu#33nnZ0|1EkhIK#U;bt$6r)<4*e2qvg%?hL=__pM4o*%tGw%n%pLiB%RG_=Ecez$wbHCY z)5#CCRS686C|mZByg-o+K|Fy>{L>tq-@)OZc0O(qWVQ&?K41%`u&U&4H24lS*bS(A z10Z)zLNMT}USf%vYdM!#URsbj)d-z`57<(OWnFhD)18vw{ac@z}V4Mx2owrPz@va;T%n?aY zq=Y&ThI(Fa=_B3r5F}~8f^_11_TD>=8SR(x^ zxwzi=YFT2N!}mU9gB2M%KvA)}kuHousGP)|hNE!vIq`&7KqpA*fZHdm*xYv|r-|f~ zk1(ikX-hnAVh8U~&`sl&O1=m2Rks#lN3=-Tq;2&!D%cvWIN5-MYg{klNXf9yMebc} zhcBv%%z!~}*|D`mAd|e*Q7NI>3Y`<`pm3bDtGfJ7j%h#_OLnY?s%2oEaAbM4;37oQ z>~m6&LM8hI4{8v9EK<%}dQCI)i%iA&V5|gM1r`s!{Rv(#Y63uujIFYkfHWrx-H#nS zjzdUv(+um<`YDx<&dGqLh%sapdv~vTR-A*2?08@5Nu7AWJ^YxoM*5dT0!XNT`i^yA zel90U=*z9#hwm+qEe-7jmLMV5Y^B^;WC27#K(Gr?hC2fm&Fct(XU=rDW3I;;ohMwQ z;Y1&R&H?gl7r2v9mV!o7+jt(iH zUJ&MX+(^B_!k>YmrKNS-iQ(y;V%3Dy{&Zwb9!w!3|EtR%MP5fI0(h0DKA@cD3<=|) z@R~B-p7j4|y~f{ix1GW~rQ>;LSX&n!-9#%aN_&(b_BqpA4L0JvIy!wtHP;qGO3R?p zog2hQ7+*jz^!Z}`=f#5-G^`$9rA)f`m7IpbV9cO4-B3MFmQ^`O(%j;k7~QjL?+4YC z3|92DRc5q@IIsK3fk4^c<%TB^;G24MS@ca&tauxhz}W*@VE1bplLt;bT)gb@-L;Pp z=)njkrR^`d@2ehvW%pNC8T!^l#X>a;1|_KOiBA!i_=wNyc4CLf-R52s5Z%wv;oz+X zbexlP59_~3MwrhMyZ$70BTXuCd9$G5l+tOOV=xUIz~j6!ei8!SZ}&$6-}|9WTQ=S_ zw79BM-k1IF||WQfIH z5+{a@7Q5~>`vm!I*PImk4Pq~0zM1bMuYpkhr%A=aV2h#y_)7cb~i zw#MYHh?1=XxOC`BkUr^)Wmk#ayCo3%E_ce{@Z_DSmT}~_dB>u)iaZk$$i;Ly)@G?U zd36TA8@s+!HVI#@ap?L&?!-E|JoJmd!q{V+eb--f;U-}1HMlezL9`C5d(1!(_1Nd@ z2^#_x*}a^B1Rp0k94CZVbx^1w&UVp};%3=dIOzg?~AAD=UJXKeP;K|O(ASJX+_~VyDK|fy9(5T2| zpFX`Cz}%ntXEEx@KH<-cWkf9Ry<2Uni2#z-$Uz0mS;9q}4KjRGKi%6w7$OreN+?M@ zV>A`C?P8aWsvZ?Ai|OLo548rzGBbR!q{M`C;-fV%W)GYs-W6T32E*3bmuQmHof|eF z(Dlh$MwR3B)s-F~Evi;+fCSP7#3pH&nEC*%&2T_QlX~wQ5PJIF2l-(z*9L6t&SyQZ z&mg2PYTyio)!Y0Ot1hSZ2Q5Hk4MAF3nudYl*Ps6bWE#7^RsruiCFus_7j1#9Tn~_A zbOz)gH!kk}?Cg}w;eh@^R)deMqDD@HlH#%npK7`#YljG>W9385)Y800#N@0^?Y#P4qr9_%sg;s*_a#o*WYHLWLuPo z7K}GORO()k^X8%4Z*R6Rh1rJiDmA%fmWLADD_abhfhL$;eG+XQ5n{O9HYBNsC{ZDg zGZu=2PD$jwgrvxRL!Tzo?TJrWY4OADAnK`e%7gQC`m%;soTd9`Zg0Q9tEi>qA{@X2 zUMl*PvV}iQeAj!#+xi(plhs3*b#HqgrT1N^9TBj3(aqV0!nAbPoGqM^l;$^n&palx zhQ9}sXg-WOMDO-B#LcCStj#slZmq;t6+)2Unv@?pBPJ4U34t=Difp1Q+mi@KNQMgM zgo|pNnc6F`#1R{_KAeP-J{S8B&|?tZ{HeIabq~Bz?m_whrJ&8{FM^IWN;_(NBX5EX zZAggF`pRm(rpKhJ)|^~q5)KYFC>!vIv)ed=5DtTtYNs@6hDi)#zL%vrjFKBHe zNNosWW5P)Eyt@)KDuv~S!0Rv#m$&rI;}NnI@VM5#XV)d0ET}Xir1_N5XjH;NB~0ED z@u3gb$#9xWu3I@~FHvPc=u)e2C8~e8w?nB?|H_B$vjb{y8eo9~7-AjEyvptRA{FV| z^N0GyQU!zpGm~DbGBYgsMKht#M@yBpjpL}9!&@SOBR+9oNibnUdl{!=CH~OU-mjpR z@812Ipy(x4`C7YcCtP?eqo=7x>sK~SnJK~0Sn?>|Dh;1Uisb5zj(9kn^jTF*WvjUmk%T7Sw`hbD`HJDPN<9!m4u_T!^I2> z7s1uFFJ6!L8|Co4*-iG5N>+T|8qkg$xh9c>)O?M)$2h(%0BkLQ-P=Lgf8>eoe4dAT z2*B#D@mM3E(#pk6&=*m@{VI}!rP>{KvO4KXhP2`7SMRxrJ|6C1$~yFCPs(gHk!o!7 zC_KqwuEWUHEk>V`bTn)>!7OR5sFf?JMb%6RcVd#wsLP|ZW0s-D&dgv_?07rpO^pD& z=WtXm@}C}sqtfSZE+!Oy_Y%GT3Lnr;F*%5YA&=r%i<&kIgTd>KM##Pn2-^HW3I^WM zvz`@5LNI=?*H^9FTj6oidZR!9xlU+*q*STU4qIt<(g*xaGE0x(BePXlZ?SZ*RlWFZ z4pZFYyne(+#`9jr?|6w-0K4dG81V)Ip^k&AuZQzhg~i2P12NQZg_eqoi^-7|NxWW! z?+S=EH)&orX^Y7|7DM?zKYM=f)=TAaLI;y(f6FgIVCt34jLh2}Rd1 zXMKZRhemRX1Fc?`wZx2@7njfSvgYRIrtWa!EnF0n^B?|*+j@sjXnB2QCFar55vR-f zI}$+Jqg1Vmf+gRwn%OGOLgQ*})%D>0W4FMgutY^G@HX_^q*`Q3P$_IMZi#9|@04sr zzyxkhw=~BJEa=p=)%kpY`V0VNIxW~SzKnmnl)vh&a~n5ZmVIjvU{du^qki|1=7>Hy zAgor;+yV=5@vMv9D+ZdeaZca-$0{0tpx3l^?|w?(ygrHY9Z!pc5v!Ki1d}Z}Zh-92 zge_9H1xrwxBa#n&==*1BHyR>reU2= z044Fn&?VyxkNCW3rpP}bD-fUEKAm_)021&U*3aA4Z)&A|>Qw}_QtEz*n9u~m#Say5 zsiR8Z3{a*AtNb!r5|e!51PV;H7?$W*L#T=@P*@a?bKIYA8PJyV3oM?UL3;>VOv?@R zKk9uZ?aBSJ?!DU-qR3XZ5U_3y$Nxo7k47N?#5Im~0WJcdCJ|ZsGNY=~lb4{4oG|47 zTF3p>w`Ss-Wqa8!!~6St5D19T$^NK&gE|1{4S>~BYqcMO>B~E;y&g2Wy{i=!kv0ng@a*#J5yq#HF>yTJa#Us+k1FD6P-J$k2zNYow1(kh<%kv?{uS_6g<)xlyIkJXarBj=l0)Gw^8 zXzzQq3sd0IL{`Q7vl{=aVfI{*meJ`2)iuB-cr>4)2CApvqC5qUQ*LCWEJsX@=2!&X zY(LzmP9eq95kn~;t+P1)!`E0i^o6sUEB)dJoSvNft1YRe5-~Y;lm2jc9*&!tjE2<> zEz~LHN)l)w?8+5w_jG_Z84g&BSY)-;&1rF=Lxi<UiE%}4B-o_AYO zUO@cyOHr0Du4)btlYO_pzyHVDzXGSN+ii~aq$)@1Xa zkpTt4!ahkN>e<+i_>6OXO~sJ^5h)dQDs^0S|2?x5LNL^7lsTD?!qdqhcXU}vdwWLb zKZF;8H~=YbHkqIx;`t^8KBCvTlNfdfgu=uCr7RFCorW^fJaiCkoIClup@yS_13=J^ zkfOa=laZC3{ZHrq90gf{0f|kUEo(wuGk-Ms9`2N)J+64$^``WvCZ3n&=V}WCtWq}Q zZTWAX@`&uJGYjt%KjZy60#=HQj7*o~|I7;&HLrw5?@Uttk7b7`X%jQEu26h%rCvAu z^z`(bcnTRMIH=-&z4$H0Ns((-*c5m&U$-GA_E!%Pko;=i1E>ZcB&9~gx&a7FNF z_YV)R&;xCcm$`-;T+IUNB%ZVKw)~4gqGN82*5Bj_KwRY?q6!i{a`DJ`t`YC7(a4T=OTd|n|UZd^KkJq)*u|kAQx+ydrk_(h^V;u5= zDy^Xk#cBdx+3ipReXY_3uq;EAe{%sRZ1eyElS$AY0`VWqebC+)e(;eMSGzO#JmCnD zWB1}cPUj%k8)uatXV+dI1#tY zyuBrsq{P-DV~CRi809VZi^k4RvOA}vZabLV6A@tJ?p@OA8XJcmeLHUewvXg+L@gf} z`xi%vek932YEh}iG|qG=fe9czwk2oX2))h$#OZYbeZGJ%b!RNrF>y*p1OJd-3DAik z@h0Da$6~Bil08X6U*x~rjF|@{^j!%h4Rm{gac@VR+Pc^OA#xf1RD!8Ld-({^*0l3| z>mo;r?^%oU-9|1we za3cE+n|Yg3!yIob3e^3-x44Nta+5O+06?qN)rv&_UR;SSty0WP{#oHeeP96N&`+y%b;9J8hMl%(wPe)BHZtq^?74h0Y$+zLmw-NQcw_t7VzjqX2y;K8eSy*4G z46pkyZ|eqnv1dpLd1Xv!Xdp{eU?RwxHiI)U*?(i9rVoh#%{@S2q%Ai}zi{Z?K>l$(@pNBY^c_BWAhXf%n-N~&BwW`j!)+?pih=6XzxO7S^*>clZ<1*Ihcb_W z0*^7ORkgZ()3e?>WlsUGXLt3Chy3dtHKoMG7VDEF{|Zl?J4<}e#YSWky3YFNx6dp? z>3hH0H;=kY&wobEHS=7a(75P|4=%k~kU0!573XVhkZjdr#fj}G<2ETFxnQ5k-0#72 zm!^tax5&P05cs|XfYbH)0EPaL~%yh0u(=a~13G}3~ zEaHDdG*)fQea6Jm8t%o!6(A~pBDNd&!*4ji6KHQ0H+pT1idSI#3boN-DgV&}Mec#A z;qH@b=Y=z5n&1hYjH)Arp~JZfo-D@0c;-P~K)N+N#CGj(qeH_5j1E!Itn&-Jjd)#W zY`sjqRJHteSu{S^bl|oA`|+)%K8KC2>k6&8j;sa$q;2@E7Ox1AOj*I_abaVvJ#0k%yF$(38a+cco^4hSI;BzAQ9f zG|&t^y+A4s()AQODNl)TheV_+;W(!|t7}CEYNfXvSlH^>kBrT(Mh=x`i)s~{Pp|IJ=j{1Z^c-Nt5Ir8ejUapvEXLsYK>*ySR!t(QR-(ASA!_iw_ z4@o)$*&+=#TfZAb!i%ZT&32r_XyyB}E%DU~gUxkijmfjv1j(ds=?@PT6}lh$z?6xX zP8cxC;FQl-Wtblk$-n>Kk3Lyn4RR4&HaM4Un{xK73QpU7a0437C<3zeNT;O@#74Qb zcg9`U@Gc~=nkkHvY^>GvHV#STm8h!~Cp*fGfxN_y;y3g1+D>bedOCE8=e*|(xrYY@7V6dfhZ1$Zl%WHWaO zDU$s(FYF@(^~z6}J53Nfb5GcAo2k5%Yulz|B<1M;Gcdpqi9E%us|0~HGxs8&{42IW z75PPuJp;<5Q}5hJ=5Utp+tAGfl+Q)Vk2oh@%4z8r7VJqCpV_}Jv^@lj>@@#iKR?g0 zksf+L-7Avc^casarw-M9cFNI37{?yt9VoBKb2OkheyY$M66vlHh!7>N=;4hvX89Hk z|3-L+nQlf*h1~%vG;8HESqQ$LG30_N|NOF}`|FR+-d?VNy#^WuHv*}>`KX0IjbeY& zxnsqiqG~Fy7hu?*pI{3Iy2Is4(!Jwcz6R=Mm9N&*eN)b_aKn@hS))=}t`Af_y-XdP zgRtqnb$OcF<)7BQ)_k*p-hy3D6wYj1XTI#eq{eE@d11D@1p1A|I|p-$y2r0C*`M^W zud}B0hBfWuHU6>NPkmDVCk-s)H?S8n8#bJkY7DC&l{rUN=@Kk56;){sMH`Kk>qQcK z?z7jwlj}{BRcJG>&_>PGof_&kYlIQW3E~5;8)^SD;M9Jw^&e9^&5$kqkoJAk6uzXY zQPVeEaY$F+aTZK{Y4*WL8FRwch@O~`UFWpmUt2)|^O7ICysz@Gc~2PgEgCgcZM`^% zau5Fvo@4?IA-+BNwf0)Lrry_~8RACven(}#ok5EWVlB`%`i6C9-TUR8GQ@AzWCysi zm^>-uB~uFv;P_X9n$ab}b8bi2cu_O_FL#~0@DSxU8p=D%}VPJz0s_4`npIF z?Ub)f1g-}y{bKxu4&&QUkUkgN7(L4&#flK#R-uDr1%txsUu!*6&DFuC%0DOWOlZQ6 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 wHr?ED?$2-EJfBSE2B>(^b literal 0 HcmV?d00001 diff --git a/assets/images/menu-cd788e2c64e300e4b712cb8ae3a40e9b.png b/assets/images/menu-cd788e2c64e300e4b712cb8ae3a40e9b.png new file mode 100644 index 0000000000000000000000000000000000000000..03ad455594d51db6a3edfa916e9b8e70518da802 GIT binary patch literal 26261 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 PsMvHg@82!aaD4F}5NRZZ literal 0 HcmV?d00001 diff --git a/assets/js/07c7815c.387a4023.js b/assets/js/07c7815c.daa93abd.js similarity index 57% rename from assets/js/07c7815c.387a4023.js rename to assets/js/07c7815c.daa93abd.js index caac676f1..7ea317e0d 100644 --- a/assets/js/07c7815c.387a4023.js +++ b/assets/js/07c7815c.daa93abd.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5822],{8040:e=>{e.exports=JSON.parse('{"title":"\u7ec4\u4ef6\u5e02\u573a","description":"\u68c0\u7d22\u53ef\u7528\u7684\u670d\u52a1\u7ec4\u4ef6\uff0c\u52a0\u5165\u81ea\u5df1\u7684\u670d\u52a1\u95e8\u6237","slug":"/category/\u7ec4\u4ef6\u5e02\u573a","permalink":"/website/docs/category/\u7ec4\u4ef6\u5e02\u573a","navigation":{"previous":{"title":"\u53d1\u5e03\u7ec4\u4ef6","permalink":"/website/docs/lowcode-development/development/develop-hello-world"},"next":{"title":"kubedashboard \u7ba1\u7406\u5de5\u5177","permalink":"/website/docs/component-market/kubedashboard"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5822],{8040:e=>{e.exports=JSON.parse('{"title":"\u7ec4\u4ef6\u5e02\u573a","description":"\u68c0\u7d22\u53ef\u7528\u7684\u670d\u52a1\u7ec4\u4ef6\uff0c\u52a0\u5165\u81ea\u5df1\u7684\u670d\u52a1\u95e8\u6237","slug":"/category/\u7ec4\u4ef6\u5e02\u573a","permalink":"/website/docs/category/\u7ec4\u4ef6\u5e02\u573a","navigation":{"previous":{"title":"\u79c1\u6709\u96c6\u7fa4\u90e8\u7f72\u65b9\u6848","permalink":"/website/docs/develop-guid/privatecluster"},"next":{"title":"kubedashboard \u7ba1\u7406\u5de5\u5177","permalink":"/website/docs/develop-guid/component-market/kubedashboard"}}}')}}]); \ No newline at end of file diff --git a/assets/js/085a15b4.0dabe575.js b/assets/js/085a15b4.0dabe575.js deleted file mode 100644 index 8ccee2c80..000000000 --- a/assets/js/085a15b4.0dabe575.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7745],{3905:(e,t,a)=>{a.d(t,{Zo:()=>k,kt:()=>N});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function p(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var o=n.createContext({}),m=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):p(p({},t),e)),a},k=function(e){var t=m(e.components);return n.createElement(o.Provider,{value:t},e.children)},c="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,o=e.parentName,k=l(e,["components","mdxType","originalType","parentName"]),c=m(a),d=i,N=c["".concat(o,".").concat(d)]||c[d]||s[d]||r;return a?n.createElement(N,p(p({ref:t},k),{},{components:a})):n.createElement(N,p({ref:t},k))}));function N(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,p=new Array(r);p[0]=d;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[c]="string"==typeof e?e:i,p[1]=l;for(var m=2;m{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>p,default:()=>s,frontMatter:()=>r,metadata:()=>l,toc:()=>m});var n=a(7462),i=(a(7294),a(3905));const r={sidebar_position:1},p="\u7ec4\u4ef6\u4ed3\u5e93",l={unversionedId:"core/concepts/repository",id:"core/concepts/repository",title:"\u7ec4\u4ef6\u4ed3\u5e93",description:"\u4ed3\u5e93\u662f\u5c06 chart repository \u6620\u5c04\u4e3a\u96c6\u7fa4\u8d44\u6e90\u7684\u4e00\u4e2a\u6982\u5ff5\u3002\u4ed3\u5e93\u5b9a\u4e49\u4e86 chart repository \u7684 URL\uff0c\u8ba4\u8bc1\u4fe1\u606f\u7b49\u76f8\u5173\u4fe1\u606f\u3002\u4ed3\u5e93\u662f\u7ec4\u4ef6\u90e8\u7f72\uff0c\u5347\u7ea7\u7684\u57fa\u7840\u3002",source:"@site/docs/core/concepts/repository.md",sourceDirName:"core/concepts",slug:"/core/concepts/repository",permalink:"/website/docs/core/concepts/repository",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"\u6982\u5ff5",permalink:"/website/docs/category/\u6982\u5ff5"},next:{title:"\u7ec4\u4ef6",permalink:"/website/docs/core/concepts/component"}},o={},m=[{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49",level:2},{value:"\u4f7f\u7528",id:"\u4f7f\u7528",level:2},{value:"OCI \u4ed3\u5e93\u7684\u989d\u5916\u8bf4\u660e",id:"oci-\u4ed3\u5e93\u7684\u989d\u5916\u8bf4\u660e",level:3},{value:"\u652f\u6301\u5730\u5740",id:"\u652f\u6301\u5730\u5740",level:4},{value:"\u9650\u5236",id:"\u9650\u5236",level:4},{value:"\u5de5\u4f5c\u539f\u7406",id:"\u5de5\u4f5c\u539f\u7406",level:2}],k={toc:m},c="wrapper";function s(e){let{components:t,...r}=e;return(0,i.kt)(c,(0,n.Z)({},k,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"\u7ec4\u4ef6\u4ed3\u5e93"},"\u7ec4\u4ef6\u4ed3\u5e93"),(0,i.kt)("p",null,"\u4ed3\u5e93\u662f\u5c06 ",(0,i.kt)("inlineCode",{parentName:"p"},"chart repository")," \u6620\u5c04\u4e3a\u96c6\u7fa4\u8d44\u6e90\u7684\u4e00\u4e2a\u6982\u5ff5\u3002\u4ed3\u5e93\u5b9a\u4e49\u4e86 ",(0,i.kt)("inlineCode",{parentName:"p"},"chart repository")," \u7684 URL\uff0c\u8ba4\u8bc1\u4fe1\u606f\u7b49\u76f8\u5173\u4fe1\u606f\u3002\u4ed3\u5e93\u662f\u7ec4\u4ef6\u90e8\u7f72\uff0c\u5347\u7ea7\u7684\u57fa\u7840\u3002"),(0,i.kt)("p",null,"\u7ec4\u4ef6\u4ed3\u5e93\u7684\u5de5\u4f5c\u6d41\u7a0b\u5982\u4e0b:"),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://raw.githubusercontent.com/kubebb/core/main/assets/repository_flow.drawio.png",alt:"repository_flow"})),(0,i.kt)("h2",{id:"\u5b9a\u4e49"},"\u5b9a\u4e49"),(0,i.kt)("p",null,"CRD \u7684\u4ee3\u7801\u5b9a\u4e49\u4f4d\u4e8e ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/kubebb/core/blob/main/api/v1alpha1/repository_types.go"},"RepositoryTypes"),"\u3002\u63a5\u4e0b\u6765\u4f1a\u8be6\u7ec6\u4ecb\u7ecd\u6bcf\u4e2a\u5b57\u6bb5\u7684\u542b\u4e49\u53ca\u5176\u4f5c\u7528\u3002"),(0,i.kt)("admonition",{type:"tip"},(0,i.kt)("p",{parentName:"admonition"},"\u8bf4\u660e \u5bf9\u4e8e\u4e0b\u9762\u7684 yaml\uff0c\u6211\u4eec\u60f3\u8981\u8bbf\u95ee bar \u5b57\u6bb5\uff0c\u4e66\u5199\u683c\u5f0f\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"spec.foo.bar")),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},"spec:\n foo:\n bar: xx\n"))),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.url")),(0,i.kt)("p",{parentName:"li"},"\u8be5\u5b57\u6bb5\u7528\u6765\u4fdd\u5b58 ",(0,i.kt)("inlineCode",{parentName:"p"},"chart repository")," \u7684\u5730\u5740")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.authSecret")),(0,i.kt)("p",{parentName:"li"},"\u5bf9\u4e8e\u9700\u8981\u8ba4\u8bc1\uff0c\u6216\u8005\u6709\u81ea\u5b9a\u4e49\u8bc1\u4e66\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"chart repository"),"\uff0c\u9700\u8981\u5c06\u8ba4\u8bc1\u4fe1\u606f\uff0c\u8bc1\u4e66\u4fe1\u606f\u5b58\u653e\u5230\u4ee5\u8be5\u5b57\u6bb5\u4e3a\u540d\u5b57\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"secret")," \u4e2d\u3002secret \u4e2d\u7684\u4e3b\u8981\u5b57\u6bb5\u4fe1\u606f\u5982\u4e0b"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"username")," \u5b9a\u4e49\u8ba4\u8bc1\u9700\u8981\u7684\u7528\u6237\u540d"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"password")," \u5b9a\u4e49\u8ba4\u8bc1\u9700\u8981\u7684\u5bc6\u7801"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"cadata")," \u5b9a\u4e49\u7b7e\u53d1\u8bc1\u4e66\u7684 RootCA"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"certdata")," \u5b9a\u4e49\u5ba2\u6237\u7aef\u901a\u8fc7 RootCA \u7b7e\u53d1\u7684\u8bc1\u4e66"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"keydata")," \u5b9a\u4e49\u5ba2\u6237\u7aef\u79c1\u94a5")),(0,i.kt)("p",{parentName:"li"},"\u5982\u679c\u670d\u52a1\u7aef\u8981\u6c42 TLS \u53cc\u5411\u8ba4\u8bc1\uff0c\u90a3\u4e48\u9700\u8981\u63d0\u4f9b ",(0,i.kt)("inlineCode",{parentName:"p"},"certdata")," \u548c ",(0,i.kt)("inlineCode",{parentName:"p"},"keydata"),"\u3002")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.insecure")),(0,i.kt)("p",{parentName:"li"},"\u662f\u5426\u8df3\u8fc7 https \u9a8c\u8bc1")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.repositoryType")),(0,i.kt)("p",{parentName:"li"},"\u4ed3\u5e93\u7c7b\u578b\uff0c\u662f\u5b57\u7b26\u4e32\uff0c\u7406\u89e3\u4e3a\u6807\u8bb0\u5373\u53ef\u3002")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.PullStrategy.intervalSeconds")),(0,i.kt)("p",{parentName:"li"},"\u5b9a\u4e49\u83b7\u53d6\u6570\u636e\u7684\u5468\u671f\uff0c\u53ef\u4ee5\u4e0d\u586b\u5199\uff0c\u9ed8\u8ba4\u662f 120 \u79d2\u3002")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.PullStrategy.timeoutSeconds")),(0,i.kt)("p",{parentName:"li"},"\u5b9a\u4e49\u4e00\u6b21 http \u8bf7\u6c42\u7684\u8d85\u65f6\u65f6\u95f4\u3002")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.PullStrategy.retry")),(0,i.kt)("p",{parentName:"li"},"\u5b9a\u4e49\u8bf7\u6c42\u5931\u8d25\u7684\u91cd\u8bd5\u6b21\u6570\u3002\u9ed8\u8ba4\u4e0d\u586b\u5199\uff0c\u53ea\u4f1a\u505a\u4e00\u6b21\u8bf7\u6c42")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.filter")),(0,i.kt)("p",{parentName:"li"},"\u8be5\u5b57\u6bb5\u662f\u6570\u7ec4\uff0c\u5b9a\u4e49\u4e86\u4e00\u7cfb\u5217\u7684\u5bf9 ",(0,i.kt)("inlineCode",{parentName:"p"},"chart package")," \u548c \u7248\u672c\u7684\u8fc7\u6ee4\u6761\u4ef6\u3002\u56e0\u4e3a\u662f\u6570\u7ec4\uff0c\u6240\u4ee5\u53ef\u4ee5\u51fa\u73b0\u5bf9\u540c\u4e00\u4e2a ",(0,i.kt)("inlineCode",{parentName:"p"},"chart package")," \u7684\u591a\u4e2a\u8fc7\u6ee4\u6761\u4ef6\uff0c\u53ea\u4f1a\u4f7f\u7528\u6700\u540e\u4e00\u6761\u3002"),(0,i.kt)("p",{parentName:"li"},"\u6570\u7ec4\u7684\u6bcf\u4e00\u9879\u7684\u4ecb\u7ecd"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.filter[index].name")," \u5b9a\u4e49\u4e86\u8981\u53c2\u4e0e\u8fc7\u6ee4\u7684 ",(0,i.kt)("inlineCode",{parentName:"li"},"chart package")," \u7684\u540d\u79f0\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.filter[index].operation")," \u6709\u4e24\u4e2a\u53ef\u9009\u503c ",(0,i.kt)("inlineCode",{parentName:"li"},"keep"),", ",(0,i.kt)("inlineCode",{parentName:"li"},"ignore"),"\u3002",(0,i.kt)("inlineCode",{parentName:"li"},"ignore")," \u5b9a\u4e49 ",(0,i.kt)("inlineCode",{parentName:"li"},"chart package")," \u8981\u5ffd\u7565\u7684\u7248\u672c, ",(0,i.kt)("inlineCode",{parentName:"li"},"keep")," \u5b9a\u4e49 ",(0,i.kt)("inlineCode",{parentName:"li"},"chart package")," \u8981\u4fdd\u7559\u7684\u7248\u672c\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.filter[index].keepDeprecated")," ",(0,i.kt)("inlineCode",{parentName:"li"},"false")," \u8868\u793a\u4e0d\u4fdd\u7559 ",(0,i.kt)("inlineCode",{parentName:"li"},"chart package")," \u5df2\u7ecf\u5e9f\u5f03\u7684\u7248\u672c\uff0c",(0,i.kt)("inlineCode",{parentName:"li"},"true")," \u8868\u793a\u4fdd\u7559\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.filter[index].versionedFilterCond.versions")," \u662f\u4e00\u4e2a\u7248\u672c\u7684\u6570\u7ec4\uff0c\u53ea\u8981 ",(0,i.kt)("inlineCode",{parentName:"li"},"chart package")," \u7684\u7248\u672c\u4e0e\u8be5\u6570\u7ec4\u4e2d\u4efb\u610f\u4e00\u4e2a\u7cbe\u786e\u5339\u914d\u4e0a\uff0c\u5373\u7b26\u5408\u89c4\u5219\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.fitler[index].versionedFilterCond.versionRegexp")," \u7248\u672c\u8fc7\u6ee4\u7684\u6b63\u5219\u8868\u8fbe\u5f0f\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.filter[index].versionedFilterCond.versionConstraint")," \u7248\u672c\u9a8c\u8bc1\u6761\u4ef6\uff0c\u8868\u8fbe\u5f0f\u683c\u5f0f\u8bf7\u53c2\u8003 ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/Masterminds/semver#semver"},"semver"))),(0,i.kt)("p",{parentName:"li"},"\u5f53 ",(0,i.kt)("inlineCode",{parentName:"p"},"operation=keep")," \u7684\u65f6\u5019\uff0c ",(0,i.kt)("inlineCode",{parentName:"p"},"versions, versionRegexp, VersionConstraint")," \u6ee1\u8db3\u4efb\u4e00\u6761\u4ef6\u5c31\u4f1a\u4fdd\u7559\u7248\u672c\u3002\n\u5f53 ",(0,i.kt)("inlineCode",{parentName:"p"},"operation=ignore")," \u7684\u65f6\u5019\uff0c ",(0,i.kt)("inlineCode",{parentName:"p"},"versions, versionRegexp, VersionConstraint")," \u6ee1\u8db3\u4efb\u4e00\u6761\u4ef6\u5c31\u4f1a\u5ffd\u7565\u7248\u672c\u3002"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"keepDeprecated")," \u5728\u5bf9\u6700\u7ec8\u7559\u4e0b\u6765\u7684\u7248\u672c\u8fdb\u884c\u8fc7\u6ee4\uff0c\u662f\u5426\u4fdd\u7559\u5e9f\u5f03\u7248\u672c\u3002")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.imageOverride")," \u975e\u5fc5\u9700\n\u8be5\u5b57\u6bb5\u662f\u6570\u7ec4\uff0c\u5b9a\u4e49\u4e86\u4e00\u7cfb\u5217\u4ed3\u5e93\u7ea7\u522b\u7684\u955c\u50cf\u8986\u76d6\u7b56\u7565\u3002"),(0,i.kt)("p",{parentName:"li"},"\u6bcf\u4e00\u9879\u5185\u5bb9\u5305\u62ec\uff1a"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.imageOverride[].registry")," \u8be5\u955c\u50cf\u4ed3\u5e93\u57df\u540d\u5730\u5740\uff0c\u53ef\u4ee5\u5305\u542b\u7aef\u53e3\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"docker.io"),"\uff0c",(0,i.kt)("inlineCode",{parentName:"li"},"192.168.1.1:5000")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.imageOverride[].newRegistry")," \u8981\u5c06 ",(0,i.kt)("inlineCode",{parentName:"li"},"registry")," \u66ff\u6362\u540e\u7684\u955c\u50cf\u4ed3\u5e93\u57df\u540d\u5730\u5740\uff0c\u53ef\u4ee5\u5305\u542b\u7aef\u53e3\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.imageOverride[].pathOverride")," \u975e\u5fc5\u9700\uff0c\u6570\u7ec4\u3002",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.imageOverride[].pathOverride.path")," \u65e7\u7684\u955c\u50cf\u4ed3\u5e93\u8def\u5f84\uff0c\u6bd4\u5982\u955c\u50cf\u5730\u5740 ",(0,i.kt)("inlineCode",{parentName:"li"},"docker.io/library/nginx:latest")," \u4e2d\u7684 path \u4e3a ",(0,i.kt)("inlineCode",{parentName:"li"},"library")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.imageOverride[].pathOverride.newPath")," \u8981\u5c06 ",(0,i.kt)("inlineCode",{parentName:"li"},"path")," \u66ff\u6362\u540e\u7684\u955c\u50cf\u4ed3\u5e93\u65b0\u8def\u5f84\uff0c\u53ef\u4ee5\u4e3a\u7a7a\u3002"))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.keywordLenLimit")," \u975e\u5fc5\u8981\n\u6bcf\u4e2a chart \u5305\u90fd\u53ef\u4ee5\u5b9a\u4e49\u4e00\u4e2a\u5173\u952e\u8bcd\u5217\u8868\uff0c\u4f9b helm \u641c\u7d22\u4f7f\u7528\u3002\u8be5\u5b57\u6bb5\u662f\u7528\u6765\u9650\u5236\u8fd9\u4e2a\u5173\u952e\u8bcd\u5217\u8868\u7684\u957f\u5ea6\uff0c\u907f\u514d\u5173\u952e\u8bcd\u8fc7\u591a\u5bfc\u81f4\u5728\u4ea7\u54c1\u754c\u9762\u4e0d\u597d\u5c55\u793a\u3002\u5982\u679c\u4e0d\u914d\u7f6e\uff0c\u4e0d\u4f1a\u505a\u4efb\u4f55\u9650\u5236\u3002"))),(0,i.kt)("h2",{id:"\u4f7f\u7528"},"\u4f7f\u7528"),(0,i.kt)("p",null,"\u4e0b\u9762\u662f\u4e00\u4e2a\u4ed3\u5e93\u793a\u4f8b\uff1a"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},"apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: Repository\nmetadata:\n name: repository-bitnami-special-version\n namespace: kubebb-system\nspec:\n url: https://charts.bitnami.com/bitnami\n pullStategy:\n intervalSeconds: 120\n retry: 5\n filter:\n - name: wordpress\n operation: keep\n versionedFilterCond:\n versions:\n - 16.1.14\n - 16.1.13\n imageOverride:\n - registry: docker.io\n newRegistry: 192.168.1.1\n pathOverride:\n path: library\n newPath: system-container\n")),(0,i.kt)("p",null,"\u4e0a\u8ff0\u4ed3\u5e93\u5b9a\u4e49\u4e86\u6570\u636e\u6765\u6e90\u662f ",(0,i.kt)("inlineCode",{parentName:"p"},"https://charts.bitnami.com/bitnami")," \uff0c\u6570\u636e\u83b7\u53d6\u7b56\u7565\u662f\uff0c\u6bcf\u9694 120s \u83b7\u53d6\u4e00\u6b21\uff0c\u5982\u679c\u53d1\u751f\u9519\u8bef\u6700\u591a\u5c1d\u8bd5 5 \u6b21\u3002\n\u5bf9 ",(0,i.kt)("inlineCode",{parentName:"p"},"wordpress")," \u7684\u7248\u672c\u5b9a\u4e49\u4e86\u591a\u8651\u6761\u4ef6\uff0c\u7cbe\u786e\u5339\u914d ",(0,i.kt)("inlineCode",{parentName:"p"},"16.1.14"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"16.1.13")," \u4e24\u4e2a\u7248\u672c\u3002\n\u5bf9\u4ed3\u5e93\u4e2d\u6240\u6709\u6765\u81ea ",(0,i.kt)("inlineCode",{parentName:"p"},"docker.io")," \u7684\u955c\u50cf\uff0c\u66ff\u6362\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"192.168.1.1")," \uff0c\u5e76\u5c06\u955c\u50cf\u8def\u5f84\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"library")," \u7684\u955c\u50cf\u66ff\u6362\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"system-container")," \uff0c\u6bd4\u5982\u4ed3\u5e93\u4e2d\u6709\u955c\u50cf ",(0,i.kt)("inlineCode",{parentName:"p"},"docker.io/library/nginx:v1.2.3")," \u4f1a\u66ff\u6362\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"192.168.1.1/system-container/nginx:v1.2.3")," \u3002"),(0,i.kt)("h3",{id:"oci-\u4ed3\u5e93\u7684\u989d\u5916\u8bf4\u660e"},"OCI \u4ed3\u5e93\u7684\u989d\u5916\u8bf4\u660e"),(0,i.kt)("h4",{id:"\u652f\u6301\u5730\u5740"},"\u652f\u6301\u5730\u5740"),(0,i.kt)("p",null,"\u4ed3\u5e93\u652f\u6301\u4f7f\u7528 OCI \u955c\u50cf\u4ed3\u5e93\u7684\u5730\u5740\uff0c\u76ee\u524d\u652f\u6301\u5982\u4e0b\u51e0\u79cd\u65b9\u5f0f\uff1a"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"\u539f\u751f ",(0,i.kt)("a",{parentName:"li",href:"https://goharbor.io/"},"harbor")," 2.x \u4ee5\u4e0a\u7248\u672c:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"\u9879\u76ee\u7eac\u5ea6\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8fd9\u4e2a\u9879\u76ee\u4e0b\u6240\u6709\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://demo.goharbor.io/helm-test")," (",(0,i.kt)("inlineCode",{parentName:"li"},"demo.goharbor.io")," \u662f harbor \u7684\u5728\u7ebf\u6d4b\u8bd5\u670d\u52a1\u5668\uff0c\u8be5\u670d\u52a1\u5668\u6570\u636e\u6bcf 2 \u5929\u6e05\u7a7a\u4e00\u6b21\uff0c\u8be6\u60c5\u89c1 ",(0,i.kt)("a",{parentName:"li",href:"https://goharbor.io/docs/1.10/install-config/demo-server/"},"docker \u6587\u6863\u7684\u76f8\u5173\u8bf4\u660e"),")"),(0,i.kt)("li",{parentName:"ul"},"\u955c\u50cf\u7ef4\u5ea6\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8fd9\u4e2a\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://demo.goharbor.io/helm-test/nginx")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://hub.docker.com/"},"dockerhub"),":",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"\u9879\u76ee\u7eac\u5ea6\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8fd9\u4e2a\u9879\u76ee\u4e0b\u6240\u6709\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://registry-1.docker.io/bitnamicharts")),(0,i.kt)("li",{parentName:"ul"},"\u955c\u50cf\u7ef4\u5ea6\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8fd9\u4e2a\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://registry-1.docker.io/bitnamicharts/wordpress")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/features/packages"},"github package"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/features/packages"},"github package")," \u7ec4\u7ec7\u7ef4\u5ea6:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"\u6574\u4e2a\u7ec4\u7ec7\u7684\u5730\u5740\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8be5\u7ec4\u7ec7\u4e0b\u6240\u6709\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://ghcr.io/oci-helm-example")),(0,i.kt)("li",{parentName:"ul"},"\u7ec4\u7ec7\u4e2d\u5355\u72ec\u4e0a\u4f20\u7684\u955c\u50cf\u5730\u5740\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8be5\u7ec4\u7ec7\u4e0b\u6240\u6709\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://ghcr.io/oci-helm-example/redis")),(0,i.kt)("li",{parentName:"ul"},"\u7ec4\u7ec7\u4e2d\u7684\u4ed3\u5e93\u5730\u5740\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8be5\u4ed3\u5e93\u4e0b\u6240\u6709\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://ghcr.io/oci-helm-example/helm-oci-example")),(0,i.kt)("li",{parentName:"ul"},"\u7ec4\u7ec7\u4e2d\u67d0\u4e2a\u4ed3\u5e93\u7684\u955c\u50cf\u5730\u5740\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8be5\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://ghcr.io/oci-helm-example/helm-oci-example/nginx")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/features/packages"},"github package")," \u4e2a\u4eba\u7ef4\u5ea6:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"\u8be5\u7528\u6237\u7684\u5730\u5740\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8be5\u7528\u6237\u540d\u4e0b\u6240\u6709\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://ghcr.io/abirdcfly")),(0,i.kt)("li",{parentName:"ul"},"\u7528\u6237\u5355\u72ec\u4e0a\u4f20\u7684\u955c\u50cf\u5730\u5740\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8be5\u7528\u6237\u540d\u4e0b\u6240\u6709\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://ghcr.io/abirdcfly/redis")),(0,i.kt)("li",{parentName:"ul"},"\u7528\u6237\u7684\u4ed3\u5e93\u5730\u5740\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8be5\u4ed3\u5e93\u4e0b\u6240\u6709\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://ghcr.io/abirdcfly/helm-oci-example")),(0,i.kt)("li",{parentName:"ul"},"\u7528\u6237\u67d0\u4e2a\u4ed3\u5e93\u7684\u955c\u50cf\u5730\u5740\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8be5\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://ghcr.io/abirdcfly/helm-oci-example/nginx"))))))),(0,i.kt)("h4",{id:"\u9650\u5236"},"\u9650\u5236"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"\u9650\u4e8e ",(0,i.kt)("a",{parentName:"li",href:"https://docs.github.com/zh/rest/packages/packages?apiVersion=2022-11-28#%E5%85%B3%E4%BA%8E-github-packages"},"github package API \u7684\u9650\u5236"))),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"\u82e5\u8981\u4f7f\u7528 REST API \u7ba1\u7406 GitHub Packages\uff0c\u5fc5\u987b\u4f7f\u7528 personal access token (classic) \u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1\u3002\n\u8981\u8bbf\u95ee\u5305\u5143\u6570\u636e\uff0c\u4ee4\u724c\u5fc5\u987b\u5305\u542b read:packages \u8303\u56f4\u3002")),(0,i.kt)("p",null,"\u5728\u4f7f\u7528 github package \u4f5c\u4e3a OCI \u7684\u5b58\u50a8\u5730\u5740\u65f6\uff0c\u9700\u8981\u63d0\u4f9b\u4e00\u4e2a personal access token (classic) \uff0c\u7528\u6237\u53ef\u4ee5\u4f7f\u7528\u73af\u5883\u53d8\u91cf ",(0,i.kt)("inlineCode",{parentName:"p"},"GITHUB_PAT_TOKEN")," \u6765\u8986\u76d6\u7cfb\u7edf\u9ed8\u8ba4\u63d0\u4f9b\u7684 token\u3002"),(0,i.kt)("ol",{start:2},(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"\u9650\u4e8e \u539f\u751f ",(0,i.kt)("a",{parentName:"p",href:"https://goharbor.io/"},"harbor")," \u548c ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/features/packages"},"github package")," \u5e76\u6ca1\u6709\u5728 API \u8fd4\u56de\u8be6\u60c5\u4e2d\u5199\u660e\u955c\u50cf\u7684\u7c7b\u578b\uff0c\u6240\u4ee5\u4ece API \u8fd4\u56de\u7ed3\u679c\u4e2d\u65e0\u6cd5\u533a\u5206\u8be5 OCI \u955c\u50cf\u662f\u5426\u5b58\u50a8\u7684\u662f Helm \u5305\u8fd8\u662f\u666e\u901a docker \u955c\u50cf\u3002\u56e0\u6b64\u5c06\u4f1a\u4e00\u5e76\u5c1d\u8bd5\uff0c\u53ef\u80fd\u4f1a\u5728\u65e5\u5fd7\u6216\u8d44\u6e90\u72b6\u6001\u4e2d\u770b\u5230\u9519\u8bef\u3002\u6211\u4eec\u5efa\u8bae\u7528\u6237\u5355\u72ec\u5c06\u67d0\u4e2a OCI \u4ed3\u5e93\u7528\u4f5c Helm \u5305\u5b58\u50a8\u3002")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"\u76ee\u524d\u8fd8\u4e0d\u652f\u6301\u79c1\u6709\u4ed3\u5e93\u3002\u5c06\u5728\u540e\u7eed\u7248\u672c\u652f\u6301\u3002")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"\u56e0\u4e3a\u5de5\u4f5c\u539f\u7406\u4e0d\u540c\uff0cchartmuseum \u7c7b\u578b\u7684\u4ed3\u5e93\u4f1a\u63d0\u4f9b\u7d22\u5f15\u6587\u4ef6\uff0c\u800c OCI \u4ed3\u5e93\u53ea\u80fd\u901a\u8fc7\u62c9\u53d6\u5177\u4f53\u538b\u7f29\u5305\u5e76\u89e3\u6790\u5185\u5bb9\uff0cOCI \u4ed3\u5e93\u7684\u83b7\u53d6\u8981\u6162\u4e8e chartmuseum \u4ed3\u5e93\uff0c\u5e76\u4e14\u5404\u4e2a\u5b58\u50a8\u5730\u5740\u90fd\u6709\u81ea\u5df1\u7684 API \u8bf7\u6c42\u901f\u7387\u9650\u5236\u3002\u9ed8\u8ba4\u5c06 OCI \u4ed3\u5e93\u7684\u89e3\u6790\u7684\u5e76\u53d1\u6570\u8bbe\u7f6e\u4e3a 5\uff0c\u53ef\u4ee5\u901a\u8fc7\u73af\u5883\u53d8\u91cf ",(0,i.kt)("inlineCode",{parentName:"p"},"OCI_PULL_WORKER")," \u8986\u76d6\u8be5\u8bbe\u7f6e\uff0c\u6570\u5b57\u8d8a\u5927\uff0c\u89e3\u6790\u5e76\u53d1\u6570\u8d8a\u591a\uff0c\u4e5f\u8d8a\u53ef\u80fd\u9047\u5230 ",(0,i.kt)("inlineCode",{parentName:"p"},"429 Too Many Requests")," \u9519\u8bef\u3002"))),(0,i.kt)("h2",{id:"\u5de5\u4f5c\u539f\u7406"},"\u5de5\u4f5c\u539f\u7406"),(0,i.kt)("p",null,"\u4ed3\u5e93\u4ee5 Kubernetes Operator \u65b9\u5f0f\u5b9e\u73b0\u3002\u5468\u671f\u6027\u7684\u83b7\u53d6 ",(0,i.kt)("inlineCode",{parentName:"p"},"chart repository")," \u7684\u6570\u636e\uff0c\u5bf9\u96c6\u7fa4\u4e2d\u7ec4\u4ef6\u66f4\u65b0\u6216\u8005\u521b\u5efa\uff0c",(0,i.kt)("strong",{parentName:"p"},"\u4e00\u822c\u4e0d\u4f1a\u5220\u9664\u7ec4\u4ef6\uff0c\u800c\u662f\u5c06\u5728 ",(0,i.kt)("inlineCode",{parentName:"strong"},"chart repository")," \u4e2d\u4e0d\u5b58\u5728\u7684\u7ec4\u4ef6\u6807\u8bb0\u4e3a\u5e9f\u5f03"),"\u3002"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"\u5f53 ",(0,i.kt)("inlineCode",{parentName:"li"},"Repository")," \u521b\u5efa\uff0c\u66f4\u65b0\u65f6")),(0,i.kt)("p",null,"\u521b\u5efa\u6216\u8005\u66f4\u65b0 ",(0,i.kt)("inlineCode",{parentName:"p"},"Repository")," \u65f6\uff0c\u4f1a\u68c0\u67e5\u8be5\u8d44\u6e90\u662f\u5426\u6dfb\u52a0 finalizers, \u4ee5\u53ca URL \u53d8\u66f4\u5386\u53f2\u662f\u5426\u6b63\u786e\u66f4\u65b0\u3002"),(0,i.kt)("p",null,"\u5f53\u6240\u6709\u7684\u66f4\u65b0\u90fd\u5904\u7406\u5b8c\u6210\u540e\uff0c\u5c06\u4f1a\u542f\u52a8 ",(0,i.kt)("inlineCode",{parentName:"p"},"chartmuseum watcher"),"\uff0c\u5728\u6bcf\u6b21\u83b7\u53d6\u5230\u82e5\u5e72\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"chart package")," \u540e\uff0c\u4e0e\u96c6\u7fa4\u4e2d\u5df2\u7ecf\u5b58\u5728\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"Component")," \u5bf9\u6bd4\uff0c\u5c06\u4f1a\u6267\u884c ",(0,i.kt)("inlineCode",{parentName:"p"},"\u65b0\u589e component"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"\u66f4\u65b0 component"),"\u3002"),(0,i.kt)("p",null,"\u6211\u4eec\u4e0d\u4f1a\u5220\u9664\u5df2\u7ecf\u521b\u5efa\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"Component"),", \u800c\u662f\u5728\u53d1\u73b0\u96c6\u7fa4\u4e2d\u5b58\u5728 ",(0,i.kt)("inlineCode",{parentName:"p"},"Component")," \u4e14\u5e76\u4e0d\u5b58\u5728\u4e8e\u5f53\u524d\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"chart repository")," \u4e2d\uff0c\u90a3\u4e48\u4f1a\u5c06\u5176\u6807\u8bb0\u4e3a\u5e9f\u5f03\u3002"),(0,i.kt)("ol",{start:2},(0,i.kt)("li",{parentName:"ol"},"\u5f53 ",(0,i.kt)("inlineCode",{parentName:"li"},"Repoistory")," \u5220\u9664\u65f6")),(0,i.kt)("p",null,"\u7531 ",(0,i.kt)("inlineCode",{parentName:"p"},"Repository")," \u521b\u5efa\u51fa\u6765\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"Component")," \u90fd\u4f1a\u6dfb\u52a0 ",(0,i.kt)("inlineCode",{parentName:"p"},"OwnerReferences"),"\uff0c\u5220\u9664 ",(0,i.kt)("inlineCode",{parentName:"p"},"Repository")," \u7684\u65f6\u5019\u4f1a\u81ea\u52a8\u5220\u9664\u5173\u8054\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"Component"),"\u3002"),(0,i.kt)("ol",{start:3},(0,i.kt)("li",{parentName:"ol"},"\u955c\u50cf\u8986\u76d6\u7b56\u7565")),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"image-changed",src:a(2250).Z,width:"1180",height:"834"})))}s.isMDXComponent=!0},2250:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/image-changed-6cc1cd7373beaa44065302ebf7479fc7.png"}}]); \ No newline at end of file diff --git a/assets/js/0b2479c4.1bae7804.js b/assets/js/0b2479c4.a5e81e27.js similarity index 72% rename from assets/js/0b2479c4.1bae7804.js rename to assets/js/0b2479c4.a5e81e27.js index 7e5922a4b..6b9a00066 100644 --- a/assets/js/0b2479c4.1bae7804.js +++ b/assets/js/0b2479c4.a5e81e27.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6900],{2758:e=>{e.exports=JSON.parse('{"title":"\u81ea\u5b9a\u4e49\u914d\u7f6e","description":"\u5feb\u901f\u4f53\u9a8c\u5185\u7f6e\u7684\u914d\u7f6e\u80fd\u529b\uff0c\u6309\u9700\u6c42\u8fdb\u884c\u670d\u52a1\u95e8\u6237\u7684\u6269\u5c55","slug":"/category/\u81ea\u5b9a\u4e49\u914d\u7f6e","permalink":"/website/docs/category/\u81ea\u5b9a\u4e49\u914d\u7f6e","navigation":{"previous":{"title":"\u6dfb\u52a0\u96c6\u7fa4","permalink":"/website/docs/building-base/add-cluster"},"next":{"title":"\u81ea\u5b9a\u4e49\u95e8\u6237","permalink":"/website/docs/building-base/configuration/customize-portal"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6900],{2758:e=>{e.exports=JSON.parse('{"title":"\u81ea\u5b9a\u4e49\u914d\u7f6e","description":"\u5feb\u901f\u4f53\u9a8c\u5185\u7f6e\u7684\u914d\u7f6e\u80fd\u529b\uff0c\u6309\u9700\u6c42\u8fdb\u884c\u670d\u52a1\u95e8\u6237\u7684\u6269\u5c55","slug":"/category/\u81ea\u5b9a\u4e49\u914d\u7f6e","permalink":"/website/docs/category/\u81ea\u5b9a\u4e49\u914d\u7f6e","navigation":{"previous":{"title":"\u6dfb\u52a0\u96c6\u7fa4","permalink":"/website/docs/develop-guid/building-base/add-cluster"},"next":{"title":"\u81ea\u5b9a\u4e49\u95e8\u6237","permalink":"/website/docs/develop-guid/building-base/configuration/customize-portal"}}}')}}]); \ No newline at end of file diff --git a/assets/js/0bd7f289.53efd746.js b/assets/js/0bd7f289.53efd746.js new file mode 100644 index 000000000..43455b044 --- /dev/null +++ b/assets/js/0bd7f289.53efd746.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3891],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>d});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),u=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(i.Provider,{value:t},e.children)},m="mdxType",k={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),m=u(r),c=a,d=m["".concat(i,".").concat(c)]||m[c]||k[c]||l;return r?n.createElement(d,o(o({ref:t},s),{},{components:r})):n.createElement(d,o({ref:t},s))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=c;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[m]="string"==typeof e?e:a,o[1]=p;for(var u=2;u{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>k,frontMatter:()=>l,metadata:()=>p,toc:()=>u});var n=r(7462),a=(r(7294),r(3905));const l={sidebar_position:1},o="\u4ecb\u7ecd",p={unversionedId:"develop-guid/core/intro",id:"develop-guid/core/intro",title:"\u4ecb\u7ecd",description:"\u5185\u6838\u57fa\u4e8ekubernetes operator\u6a21\u5f0f\u8fdb\u884c\u5f00\u53d1\uff0c\u63d0\u4f9b\u5b8c\u6574\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u3001\u7ec4\u4ef6\u8ba2\u9605\u548c\u81ea\u52a8\u5316\u90e8\u7f72\u80fd\u529b\uff0c\u5e76\u901a\u8fc7tekton\u6269\u5c55\u5b9e\u73b0\u7ec4\u4ef6\u81ea\u52a8\u5316\u8bc4\u6d4b\u548c\u5b89\u88c5\u524d\u6821\u9a8c\u7b49\u80fd\u529b\u3002",source:"@site/docs/develop-guid/core/intro.md",sourceDirName:"develop-guid/core",slug:"/develop-guid/core/intro",permalink:"/website/docs/develop-guid/core/intro",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"\u5185\u6838Kit",permalink:"/website/docs/category/\u5185\u6838kit"},next:{title:"\u6982\u5ff5",permalink:"/website/docs/category/\u6982\u5ff5"}},i={},u=[{value:"\u6574\u4f53\u67b6\u6784",id:"\u6574\u4f53\u67b6\u6784",level:2},{value:"\u6838\u5fc3\u4f18\u52bf",id:"\u6838\u5fc3\u4f18\u52bf",level:2},{value:"\u58f0\u660e\u5f0f\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406",id:"\u58f0\u660e\u5f0f\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406",level:3},{value:"\u7ec4\u4ef6\u751f\u547d\u5468\u671f",id:"\u7ec4\u4ef6\u751f\u547d\u5468\u671f",level:4},{value:"1. \u7814\u53d1\u9636\u6bb5",id:"1-\u7814\u53d1\u9636\u6bb5",level:5},{value:"2. \u90e8\u7f72\u9636\u6bb5",id:"2-\u90e8\u7f72\u9636\u6bb5",level:5},{value:"3. \u4f7f\u7528\u9636\u6bb5",id:"3-\u4f7f\u7528\u9636\u6bb5",level:5},{value:"\u58f0\u660e\u5f0f\u7684\u4f18\u52bf",id:"\u58f0\u660e\u5f0f\u7684\u4f18\u52bf",level:4},{value:"\u591a\u7ef4\u5ea6\u7ec4\u4ef6\u8bc4\u6d4b",id:"\u591a\u7ef4\u5ea6\u7ec4\u4ef6\u8bc4\u6d4b",level:3},{value:"\u5168\u9762\u9002\u914dHelm\u751f\u6001",id:"\u5168\u9762\u9002\u914dhelm\u751f\u6001",level:3},{value:"\u6269\u5c55\u9002\u914d\u5e95\u5ea7\u670d\u52a1",id:"\u6269\u5c55\u9002\u914d\u5e95\u5ea7\u670d\u52a1",level:3}],s={toc:u},m="wrapper";function k(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u4ecb\u7ecd"},"\u4ecb\u7ecd"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://github.com/kubebb/core"},"\u5185\u6838"),"\u57fa\u4e8e",(0,a.kt)("a",{parentName:"p",href:"https://kubernetes.io/docs/concepts/extend-kubernetes/operator/"},"kubernetes operator"),"\u6a21\u5f0f\u8fdb\u884c\u5f00\u53d1\uff0c\u63d0\u4f9b\u5b8c\u6574\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u3001\u7ec4\u4ef6\u8ba2\u9605\u548c\u81ea\u52a8\u5316\u90e8\u7f72\u80fd\u529b\uff0c\u5e76\u901a\u8fc7",(0,a.kt)("a",{parentName:"p",href:"https://tekton.dev/"},"tekton"),"\u6269\u5c55\u5b9e\u73b0\u7ec4\u4ef6\u81ea\u52a8\u5316\u8bc4\u6d4b\u548c\u5b89\u88c5\u524d\u6821\u9a8c\u7b49\u80fd\u529b\u3002"),(0,a.kt)("h2",{id:"\u6574\u4f53\u67b6\u6784"},"\u6574\u4f53\u67b6\u6784"),(0,a.kt)("p",null,(0,a.kt)("img",{parentName:"p",src:"https://raw.githubusercontent.com/kubebb/core/main/assets/arch.png",alt:"KubeBB Core\u67b6\u6784\u56fe"})),(0,a.kt)("h2",{id:"\u6838\u5fc3\u4f18\u52bf"},"\u6838\u5fc3\u4f18\u52bf"),(0,a.kt)("h3",{id:"\u58f0\u660e\u5f0f\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406"},"\u58f0\u660e\u5f0f\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406"),(0,a.kt)("h4",{id:"\u7ec4\u4ef6\u751f\u547d\u5468\u671f"},"\u7ec4\u4ef6\u751f\u547d\u5468\u671f"),(0,a.kt)("p",null,"\u7ec4\u4ef6\u7684\u751f\u547d\u5468\u671f\u4e3b\u8981\u53ef\u4ee5\u5212\u5206\u4e3a\u4e09\u4e2a\u9636\u6bb5:"),(0,a.kt)("p",null,(0,a.kt)("img",{parentName:"p",src:"https://raw.githubusercontent.com/kubebb/core/main/assets/component-lifecycle.drawio.png",alt:"component_lifecycle"})),(0,a.kt)("h5",{id:"1-\u7814\u53d1\u9636\u6bb5"},"1. \u7814\u53d1\u9636\u6bb5"),(0,a.kt)("p",null,"\u5f00\u53d1\u8005\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"\u4f4e\u7801\u5e73\u53f0(optional)"),"\u5b8c\u6210\u7ec4\u4ef6\u7684\u5f00\u53d1\u5de5\u4f5c,\u6839\u636e\u4e0d\u540c\u7684\u7ec4\u4ef6\u7c7b\u578b\uff0c\u9009\u62e9\u4e0d\u540c\u7684\u65b9\u5f0f\u5b8c\u6210\u7ec4\u4ef6\u7684\u6253\u5305\uff0c\u5e76\u5c06\u6253\u5305\u540e\u7684\u8d44\u6e90\u53d1\u5e03\u5230",(0,a.kt)("strong",{parentName:"p"},"\u4ed3\u5e93\u670d\u52a1"),"\u4e2d\u3002"),(0,a.kt)("p",null,"\u7ec4\u4ef6\u8d44\u6e90\u4e00\u822c\u5305\u542b\u4e24\u7c7b:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u955c\u50cf\u8d44\u6e90: \u7ec4\u4ef6\u5f00\u53d1\u5b8c\u6210\u4e00\u822c\u9700\u8981\u6784\u5efa\u6210\u4e00\u4e2a\u955c\u50cf\uff0c\u5e76\u63a8\u9001\u5230\u955c\u50cf\u4ed3\u5e93"),(0,a.kt)("li",{parentName:"ul"},"\u5b89\u88c5\u5305\uff1a\u7ec4\u4ef6\u5b89\u88c5\u90e8\u7f72\u65f6\u7684\u5404\u79cd\u8d44\u6e90\u914d\u7f6e\u4fe1\u606f\uff08\u901a\u5e38\u4e3a",(0,a.kt)("strong",{parentName:"li"},"Helm charts\uff09,"),"\u5e76\u63a8\u9001\u5230Charts\u5305\u4ed3\u5e93")),(0,a.kt)("p",null,"\u955c\u50cf\u8d44\u6e90\u4e00\u822c\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"\u516c\u5171\u955c\u50cf\u4ed3\u5e93(Dockerhub)\u6216\u79c1\u6709\u955c\u50cf\u4ed3\u5e93"),"\u7ba1\u7406\uff0c\u6211\u4eec\u4e0d\u505a\u7279\u6b8a\u5904\u7406\u3002\u7ec4\u4ef6\u4ed3\u5e93\u670d\u52a1\u4e3b\u8981\u7528\u4e8e\u5b58\u50a8",(0,a.kt)("strong",{parentName:"p"},"\u5b89\u88c5\u5305(Charts)\u3002")),(0,a.kt)("h5",{id:"2-\u90e8\u7f72\u9636\u6bb5"},"2. \u90e8\u7f72\u9636\u6bb5"),(0,a.kt)("p",null,"\u7cfb\u7edf\u7ba1\u7406\u5458\u4ece",(0,a.kt)("strong",{parentName:"p"},"\u7ec4\u4ef6\u4ed3\u5e93\u670d\u52a1"),"\u4e2d\u624b\u52a8\u67e5\u627e\u5b58\u50a8\u7684\u7ec4\u4ef6\u5217\u8868\uff0c\u83b7\u53d6\u53ef\u7528\u7684\u7ec4\u4ef6\u4fe1\u606f",(0,a.kt)("strong",{parentName:"p"},"(\u53d1\u5e03\u8005\u3001\u7248\u672c\u3001\u5b89\u88c5\u914d\u7f6e\u7b49)\uff0c"),"\u5e76\u6839\u636e\u5b9e\u9645\u60c5\u51b5\uff0c\u5b8c\u6210\u7ec4\u4ef6\u914d\u7f6e\u5e76\u5b89\u88c5\u5230\u7cfb\u7edf\u4e2d\u3002\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u9700\u8981\u624b\u52a8\u53bb\u68c0\u67e5\u7ec4\u4ef6\u7248\u672c\u66f4\u65b0\uff0c\u5e76\u8c28\u614e\u7684\u5b8c\u6574\u7ec4\u4ef6\u7684\u5347\u7ea7\u3002"),(0,a.kt)("h5",{id:"3-\u4f7f\u7528\u9636\u6bb5"},"3. \u4f7f\u7528\u9636\u6bb5"),(0,a.kt)("p",null,"\u666e\u901a\u7528\u6237\u5728\u7ec4\u4ef6\u5b89\u88c5\u5230\u7cfb\u7edf\u540e\uff0c\u901a\u8fc7\u5e95\u5ea7Kit\u63d0\u4f9b\u7684\u7edf\u4e00\u8bbf\u95ee\u5165\u53e3\u548c\u7edf\u4e00\u7528\u6237\u8ba4\u8bc1\u6765\u8bbf\u95ee\u5177\u4f53\u7684\u7ec4\u4ef6\u670d\u52a1\u3002"),(0,a.kt)("h4",{id:"\u58f0\u660e\u5f0f\u7684\u4f18\u52bf"},"\u58f0\u660e\u5f0f\u7684\u4f18\u52bf"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"\u58f0\u660e\u5f0f"),"\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u6709\u4ee5\u4e0b\u4f18\u52bf:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u53ef\u8bfb\u6027\uff1a")," \u66f4\u6613\u4e8e\u7406\u89e3\u548c\u9605\u8bfb\u7ec4\u4ef6\u5b9a\u4e49\u672c\u8eab\uff0c\u56e0\u4e3a\u5b83\u4eec\u8868\u8fbe\u4e86\u60f3\u8981\u7684\u7ed3\u679c\uff0c\u800c\u4e0d\u662f\u5b9e\u73b0\u7684\u6b65\u9aa4\u3002"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u53ef\u7ef4\u62a4\u6027\uff1a"),"\u66f4\u6613\u4e8e\u7ef4\u62a4\u7ec4\u4ef6\uff0c\u56e0\u4e3a\u5b83\u4eec\u66f4\u5bb9\u6613\u7406\u89e3\uff0c\u66f4\u5bb9\u6613\u4fee\u6539\uff0c\u800c\u4e14\u66f4\u5c11\u6709\u9519\u8bef\u3002"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u53ef\u91cd\u7528\u6027\uff1a"),"\u66f4\u5bb9\u6613\u91cd\u7528\u7ec4\u4ef6\uff0c\u56e0\u4e3a\u5b83\u4eec\u901a\u5e38\u662f\u72ec\u7acb\u4e8e\u4e0a\u4e0b\u6587\u7684\uff0c\u53ef\u4ee5\u5728\u4e0d\u540c\u7684\u73af\u5883\u4e2d\u4f7f\u7528\u3002"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u53ef\u6269\u5c55\u6027\uff1a"),"\u66f4\u6613\u4e8e\u6269\u5c55\u7ec4\u4ef6\uff0c\u56e0\u4e3a\u5b83\u4eec\u901a\u5e38\u662f\u57fa\u4e8e\u7ec4\u4ef6\u548c\u6a21\u5757\u7684\uff0c\u53ef\u4ee5\u7b80\u5355\u5730\u7ec4\u5408\u8d77\u6765\u521b\u5efa\u66f4\u590d\u6742\u7684\u7cfb\u7edf\u3002"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u53ef\u9760\u6027\uff1a"),"\u66f4\u53ef\u9760\uff0c\u56e0\u4e3a\u5b83\u4eec\u901a\u5e38\u662f\u57fa\u4e8e\u9759\u6001\u914d\u7f6e\u7684\uff0c\u800c\u4e0d\u662f\u57fa\u4e8e\u8fd0\u884c\u65f6\u72b6\u6001\u7684\u3002\u8fd9\u610f\u5473\u7740\u5b83\u4eec\u66f4\u5c11\u51fa\u73b0\u8fd0\u884c\u65f6\u9519\u8bef\u548c\u610f\u5916\u884c\u4e3a\u3002")),(0,a.kt)("h3",{id:"\u591a\u7ef4\u5ea6\u7ec4\u4ef6\u8bc4\u6d4b"},"\u591a\u7ef4\u5ea6\u7ec4\u4ef6\u8bc4\u6d4b"),(0,a.kt)("p",null,"\u901a\u8fc7\u96c6\u6210",(0,a.kt)("a",{parentName:"p",href:"https://github.com/kubebb/components/tree/main/examples/tekton-operator"},"Tekton"),"\u6d41\u6c34\u7ebf\u7ec4\u4ef6\uff0c\u5b9e\u73b0\u81ea\u52a8\u5316\u7684\u7ec4\u4ef6\u8bc4\u6d4b\uff0c\u5e76\u901a\u8fc7",(0,a.kt)("inlineCode",{parentName:"p"},"CRD Rating"),"\u5b8c\u6210\u8bc4\u6d4b\u6570\u636e\u603b\u7ed3\u548c\u5206\u6790\u3002"),(0,a.kt)("p",null,"\u76ee\u524d\u7ec4\u4ef6\u8bc4\u6d4b\u56f4\u7ed5\u4e09\u4e2a\u7ef4\u5ea6\u5c55\u5f00:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./rating#%E5%AE%89%E5%85%A8%E6%80%A7%E4%BB%BB%E5%8A%A1"},(0,a.kt)("strong",{parentName:"a"},"\u5b89\u5168\u6027:"))," \u8bc4\u4f30\u7ec4\u4ef6\u7684\u5b89\u5168\u6027\u548c\u8f6f\u4ef6\u4f9b\u5e94\u94fe\u7684\u5b89\u5168\u6027\u3002"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./rating#%E5%8F%AF%E9%9D%A0%E6%80%A7%E4%BB%BB%E5%8A%A1"},(0,a.kt)("strong",{parentName:"a"},"\u53ef\u9760\u6027:"))," \u8bc4\u4f30\u7ec4\u4ef6\u672c\u8eab\u662f\u5426\u5df2\u7ecf\u8fc7\u826f\u597d\u7684\u529f\u80fd\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./rating#%E5%8F%AF%E7%94%A8%E6%80%A7%E4%BB%BB%E5%8A%A1"},(0,a.kt)("strong",{parentName:"a"},"\u53ef\u7528\u6027:"))," \u8bc4\u4f30\u7ec4\u4ef6\u662f\u5426\u6709\u5145\u8db3\u7684\u6587\u6863\u3001\u793a\u4f8b\u6765\u6307\u5bfc\u7528\u6237\u4f7f\u7528")),(0,a.kt)("h3",{id:"\u5168\u9762\u9002\u914dhelm\u751f\u6001"},"\u5168\u9762\u9002\u914dHelm\u751f\u6001"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://helm.sh/"},"Helm"),"\u662f\u4e00\u79cd\u6210\u719f\u7684\u5305\u7ba1\u7406\u5de5\u5177\uff0c\u63d0\u4f9b\u4e00\u79cd\u7b80\u5355\u7684\u65b9\u5f0f\u6765\u7ba1\u7406Kubernetes\u5e94\u7528\u7a0b\u5e8f\u7684\u90e8\u7f72\u548c\u5347\u7ea7\u3002\u5b83\u62e5\u6709\u5e9e\u5927\u7684\u793e\u533a\u548c\u4f17\u591a\u4f18\u79c0\u7684\u9879\u76ee\u3002\n\u56e0\u6b64\uff0c\u5185\u6838\u4ece\u8bbe\u8ba1\u4e4b\u521d\u5c31\u786e\u5b9a\u4e86\u5fc5\u987b\u5168\u9762\u517c\u5bb9",(0,a.kt)("strong",{parentName:"p"},"Helm\u751f\u6001"),"\u3002"),(0,a.kt)("p",null,"\u8fd9\u4e00\u7279\u70b9\u4f53\u73b0\u5728",(0,a.kt)("strong",{parentName:"p"},"\u5185\u6838\u8bbe\u8ba1"),"\u7684\u5404\u4e2a\u65b9\u9762\uff0c\u6211\u4eec\u652f\u6301:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://helm.sh/docs/chart_template_guide/getting_started/"},"Charts"),"\u4f5c\u4e3a\u7ec4\u4ef6"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/website/docs/develop-guid/core/concepts/repository"},"\u7ec4\u4ef6\u4ed3\u5e93"),"\u5b8c\u5168\u9002\u914d",(0,a.kt)("strong",{parentName:"li"},"Helm\u7c7b\u578b"),"\u4ed3\u5e93"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/website/docs/develop-guid/core/concepts/componentplan"},"\u7ec4\u4ef6\u90e8\u7f72"),"\u57fa\u672c\u5168\u9762\u8986\u76d6",(0,a.kt)("a",{parentName:"li",href:"https://helm.sh/docs/helm/helm/"},"Helm CLI"),"\u80fd\u529b")),(0,a.kt)("h3",{id:"\u6269\u5c55\u9002\u914d\u5e95\u5ea7\u670d\u52a1"},"\u6269\u5c55\u9002\u914d\u5e95\u5ea7\u670d\u52a1"),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("ol",{parentName:"admonition"},(0,a.kt)("li",{parentName:"ol"},"\u4f4e\u4ee3\u7801\u5f00\u53d1\u5e73\u53f0\u5b9a\u4e49",(0,a.kt)("strong",{parentName:"li"},"Menus"),"\u3001",(0,a.kt)("strong",{parentName:"li"},"Route"),"\u7b49\u5e95\u5ea7\u76f8\u5173\u8d44\u6e90\uff0c\u5e76\u6253\u5305\u5230\u7ec4\u4ef6\u6a21\u7248\u4e2d"),(0,a.kt)("li",{parentName:"ol"},"\u5185\u6838\u83b7\u53d6",(0,a.kt)("strong",{parentName:"li"},"\u5e95\u5ea7\u81ea\u5b9a\u4e49\u8d44\u6e90"),"\u540e,\u81ea\u52a8\u89e3\u6790\u3001\u914d\u7f6e\u3001\u521b\u5efa\u5bf9\u5e94\u8d44\u6e90"))),(0,a.kt)("p",null,"\u5e95\u5ea7\u670d\u52a1\u652f\u6301\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"\u81ea\u5b9a\u4e49\u83dc\u5355"),"\u548c",(0,a.kt)("strong",{parentName:"p"},"\u8def\u7531"),"\u6269\u5c55\u5e73\u53f0\u670d\u52a1\uff0c\u4e3a\u652f\u6491\u9002\u914d\u8fd9\u4e00\u80fd\u529b\uff0c\u6211\u4eec\u505a\u4e86\u4ee5\u4e0b\u52aa\u529b\uff1a"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u79fb\u690d",(0,a.kt)("strong",{parentName:"li"},"Menu"),"\u8d44\u6e90\u7c7b\u578b"),(0,a.kt)("li",{parentName:"ul"},"\u79fb\u690d",(0,a.kt)("strong",{parentName:"li"},"Route"),"\u914d\u7f6e")),(0,a.kt)("p",null,"\u4ece\u800c\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"\u5185\u6838"),"\u4e32\u8054",(0,a.kt)("strong",{parentName:"p"},"\u4e91\u68af\u4f4e\u4ee3\u7801\u5f00\u53d1\u5e73\u53f0"),"\u4e0e",(0,a.kt)("strong",{parentName:"p"},"\u5e95\u5ea7\u670d\u52a1"),"\u3002"))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0e384e19.8025756b.js b/assets/js/0e384e19.8025756b.js new file mode 100644 index 000000000..109a86a71 --- /dev/null +++ b/assets/js/0e384e19.8025756b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9671],{3905:(t,e,n)=>{n.d(e,{Zo:()=>s,kt:()=>b});var r=n(7294);function l(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function u(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function o(t){for(var e=1;e=0||(l[n]=t[n]);return l}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(l[n]=t[n])}return l}var i=r.createContext({}),c=function(t){var e=r.useContext(i),n=e;return t&&(n="function"==typeof t?t(e):o(o({},e),t)),n},s=function(t){var e=c(t.components);return r.createElement(i.Provider,{value:e},t.children)},d="mdxType",k={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},p=r.forwardRef((function(t,e){var n=t.components,l=t.mdxType,u=t.originalType,i=t.parentName,s=a(t,["components","mdxType","originalType","parentName"]),d=c(n),p=l,b=d["".concat(i,".").concat(p)]||d[p]||k[p]||u;return n?r.createElement(b,o(o({ref:e},s),{},{components:n})):r.createElement(b,o({ref:e},s))}));function b(t,e){var n=arguments,l=e&&e.mdxType;if("string"==typeof t||l){var u=n.length,o=new Array(u);o[0]=p;var a={};for(var i in e)hasOwnProperty.call(e,i)&&(a[i]=e[i]);a.originalType=t,a[d]="string"==typeof t?t:l,o[1]=a;for(var c=2;c{n.r(e),n.d(e,{assets:()=>i,contentTitle:()=>o,default:()=>k,frontMatter:()=>u,metadata:()=>a,toc:()=>c});var r=n(7462),l=(n(7294),n(3905));const u={sidebar_position:1,title:"\u4ea7\u54c1\u4ecb\u7ecd",sidebar_label:"\u4ea7\u54c1\u4ecb\u7ecd"},o="\u4ea7\u54c1\u4ecb\u7ecd",a={unversionedId:"intro",id:"intro",title:"\u4ea7\u54c1\u4ecb\u7ecd",description:"Kubebb(Kubernetes Building Blocks) \u662f\u4e00\u79cd\u7531\u5185\u6838\u9a71\u52a8\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u5e73\u53f0\uff0c\u96c6\u6210\u4e86\u5f00\u7bb1\u5373\u7528\u7684\u4e91\u539f\u751f\u5e95\u5ea7\u548c\u4f4e\u7801\u7ec4\u4ef6\u5f00\u53d1\u80fd\u529b\u3002",source:"@site/docs/intro.md",sourceDirName:".",slug:"/intro",permalink:"/website/docs/intro",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"\u4ea7\u54c1\u4ecb\u7ecd",sidebar_label:"\u4ea7\u54c1\u4ecb\u7ecd"},sidebar:"tutorialSidebar",next:{title:"\u6700\u65b0\u52a8\u6001",permalink:"/website/docs/version"}},i={},c=[{value:"\u529f\u80fd\u8bf4\u660e",id:"\u529f\u80fd\u8bf4\u660e",level:2},{value:"\u5e94\u7528\u573a\u666f",id:"\u5e94\u7528\u573a\u666f",level:2},{value:"\u5feb\u901f\u642d\u5efa\u60a8\u7684\u4e91\u539f\u751f\u5e73\u53f0",id:"\u5feb\u901f\u642d\u5efa\u60a8\u7684\u4e91\u539f\u751f\u5e73\u53f0",level:3}],s={toc:c},d="wrapper";function k(t){let{components:e,...u}=t;return(0,l.kt)(d,(0,r.Z)({},s,u,{components:e,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"\u4ea7\u54c1\u4ecb\u7ecd"},"\u4ea7\u54c1\u4ecb\u7ecd"),(0,l.kt)("p",null,"Kubebb(Kubernetes Building Blocks) \u662f\u4e00\u79cd\u7531\u5185\u6838\u9a71\u52a8\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u5e73\u53f0\uff0c\u96c6\u6210\u4e86\u5f00\u7bb1\u5373\u7528\u7684\u4e91\u539f\u751f\u5e95\u5ea7\u548c\u4f4e\u7801\u7ec4\u4ef6\u5f00\u53d1\u80fd\u529b\u3002"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"\u63d0\u4f9b\u5e95\u5ea7\u670d\u52a1\uff0c\u5feb\u901f\u5f00\u542f\u642d\u5efa"),"\uff1a\u63d0\u4f9b\u8d26\u53f7\u3001\u8ba4\u8bc1(OIDC)\u3001\u6743\u9650(RBAC)\u3001\u5ba1\u8ba1(Audit)\u7684\u57fa\u7840\u529f\u80fd\uff0c\u91c7\u7528\u66f4\u52a0\u6807\u51c6\u7684\u6280\u672f\u65b9\u5f0f\u63d0\u4f9b\u6784\u5efa\u7684\u5e95\u5ea7\u670d\u52a1"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"\u5185\u6838\u9a71\u52a8\u7684\u58f0\u660e\u5f0f\u7ec4\u4ef6\u7ba1\u7406"),"\uff1a\u63d0\u4f9b\u58f0\u660e\u5f0f\u7684\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406\u3001\u7ec4\u4ef6\u540c\u6b65\u3001\u7ec4\u4ef6\u8ba2\u9605\u3001\u90e8\u7f72\u4ee5\u53ca\u591a\u7ef4\u5ea6\u7684\u7ec4\u4ef6\u8bc4\u7ea7\uff0c\u5b8c\u6574\u9002\u914d Helm \u751f\u6001\uff0c\u96c6\u6210\u5fae\u524d\u7aef\u6846\u67b6"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"\u7075\u6d3b\u7684\u7ec4\u4ef6\u5f00\u53d1\u6a21\u5f0f"),"\uff1a\u57fa\u4e8e\u5fae\u524d\u7aef\u6846\u67b6\u548c\u4f4e\u4ee3\u7801\u5f00\u53d1\uff0c\u5b9a\u4e49\u4e86\u6807\u51c6\u7684\u7ec4\u4ef6\u5c01\u88c5\u53ca\u53d1\u5e03\u6a21\u5f0f\uff0c\u8ba9\u5f00\u53d1\u8005\u53ef\u4ee5\u5728\u5e95\u5ea7\u4e4b\u4e0a\u6309\u7167\u5f00\u53d1\u89c4\u8303\u8fdb\u884c\u7ec4\u4ef6\u7684\u5feb\u901f\u5f00\u53d1\u548c\u53d1\u5e03\uff0c\u5e76\u5728\u7edf\u4e00\u7684\u670d\u52a1\u95e8\u6237\u4e0a\u5bf9\u5916\u63d0\u4f9b\u670d\u52a1"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"\u5185\u7f6e\u4e30\u5bcc\u7ec4\u4ef6"),"\uff1a\u5305\u62ec\u5b98\u65b9\u63d0\u4f9b\u7684\u5fae\u670d\u52a1\u6cbb\u7406\u3001\u670d\u52a1\u7f51\u683c\u3001API\u7f51\u5173\u3001\u5e94\u7528\u6027\u80fd\u76d1\u63a7\u7684\u5f00\u6e90\u7248\u672c\uff0c\u8be6\u7ec6\u4ecb\u7ecd\u53c2\u89c1",(0,l.kt)("a",{parentName:"li",href:"https://docs.tenxcloud.com/"},(0,l.kt)("strong",{parentName:"a"},"\u5f00\u6e90\u6587\u6863")),"\u3002\u8fd8\u6709\u5176\u4ed6\u5e38\u89c1\u7684\u6570\u636e\u5e93\u3001\u5b58\u50a8\u3001\u6d88\u606f\u961f\u5217\u7b49\u5f00\u6e90\u7ec4\u4ef6\u4f9b\u60a8\u9009\u62e9\u4f7f\u7528\u3002")),(0,l.kt)("h2",{id:"\u529f\u80fd\u8bf4\u660e"},"\u529f\u80fd\u8bf4\u660e"),(0,l.kt)("p",null,"Kubebb \u90e8\u7f72\u540e\u4e3b\u8981\u6709\u7ba1\u7406\u5de5\u4f5c\u53f0\u3001\u7ec4\u4ef6\u5e02\u573a\u4e24\u90e8\u5206\u80fd\u529b\u3002\u7ba1\u7406\u5de5\u4f5c\u53f0\u7528\u6237\u6307\u5357\u8be6\u89c1",(0,l.kt)("a",{parentName:"p",href:"https://docs.tenxcloud.com/docs/%E7%AE%A1%E7%90%86%E5%B7%A5%E4%BD%9C%E5%8F%B0/intro"},"\u7ba1\u7406\u5de5\u4f5c\u53f0")),(0,l.kt)("table",null,(0,l.kt)("tr",null,(0,l.kt)("th",null,"\u6a21\u5757"),(0,l.kt)("th",{colspan:"2"},"\u8bf4\u660e")),(0,l.kt)("tr",null,(0,l.kt)("td",{rowspan:"4",width:"15%"},"\u7ec4\u4ef6\u5e02\u573a"),(0,l.kt)("td",{width:"20%"},"\u7ec4\u4ef6\u5e02\u573a"),(0,l.kt)("td",null,"\u7ec4\u4ef6\u7684\u5546\u5e97\uff0c\u652f\u6301\u6d4f\u89c8\u3001\u8ba2\u9605\u3001\u4e0b\u8f7d\u3001\u5b89\u88c5\u7ec4\u4ef6")),(0,l.kt)("tr",null,(0,l.kt)("td",null,"\u7ec4\u4ef6\u7ba1\u7406"),(0,l.kt)("td",null,"1. \u6211\u53d1\u5e03\u7684\uff1a\u652f\u6301\u624b\u52a8\u53d1\u5e03\u7ec4\u4ef6\u5230\u4ed3\u5e93\uff1b\u652f\u6301\u53d1\u5e03\u591a\u7248\u672c",(0,l.kt)("br",null)," 2. \u6211\u5b89\u88c5\u7684\uff1a\u652f\u6301\u5b89\u88c5\u3001\u66f4\u65b0\u3001\u5378\u8f7d\u7ec4\u4ef6\uff1b\u652f\u6301\u5386\u53f2\u7248\u672c\u7ba1\u7406\u548c\u7248\u672c\u56de\u6eda ",(0,l.kt)("br",null)," 3. \u6211\u8ba2\u9605\u7684\uff1a\u652f\u6301\u8ba2\u9605\u3001\u53d6\u6d88\u8ba2\u9605\u7ec4\u4ef6\uff1b\u652f\u6301\u7248\u672c\u66f4\u65b0\u63a8\u9001 ")),(0,l.kt)("tr",null,(0,l.kt)("td",null,"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406"),(0,l.kt)("td",null,"1. \u652f\u6301\u6dfb\u52a0\u3001\u7f16\u8f91\u3001\u5220\u9664\u7ec4\u4ef6\u4ed3\u5e93",(0,l.kt)("br",null)," 2. \u652f\u6301\u914d\u7f6e\u4ed3\u5e93\u5b89\u5168\u8ba4\u8bc1\u3001\u4ed3\u5e93\u540c\u6b65\u8bbe\u7f6e\u3001\u4ed3\u5e93\u7ec4\u4ef6\u8fc7\u6ee4\u89c4\u5219\u3001\u955c\u50cf\u4ed3\u5e93\u66ff\u6362\u89c4\u5219\u3001\u5f00\u542f\u7ec4\u4ef6\u8bc4\u6d4b\u7b49")),(0,l.kt)("tr",null,(0,l.kt)("td",null,"\u7ec4\u4ef6\u8bc4\u6d4b"),(0,l.kt)("td",null,"\u4f7f\u7528\u667a\u80fd AI \u5bf9\u7ec4\u4ef6\u4ece\u5b89\u5168\u6027\u3001\u53ef\u9760\u6027\u3001\u53ef\u7528\u6027\u4e09\u65b9\u9762\u8fdb\u884c\u7efc\u5408\u8bc4\u6d4b\uff0c\u4e3a\u60a8\u7684\u9009\u62e9\u63d0\u4f9b\u53c2\u8003\u6570\u636e")),(0,l.kt)("tr",null,(0,l.kt)("td",{rowspan:"6",width:"15%"},"\u7ba1\u7406\u5de5\u4f5c\u53f0"),(0,l.kt)("td",{width:"20%"},"\u96c6\u7fa4\u7ba1\u7406"),(0,l.kt)("td",null,"1. \u591a\u96c6\u7fa4\u7edf\u4e00\u89c6\u56fe\u7ba1\u7406",(0,l.kt)("br",null)," 2. \u8d44\u6e90\u7ba1\u7406\uff1a\u5206\u5185\u7f6e\u548c\u81ea\u5b9a\u4e49\u8d44\u6e90\uff0c\u5404\u8d44\u6e90\u652f\u6301yaml\u65b9\u5f0f\u67e5\u770b\u7f16\u8f91",(0,l.kt)("br",null)," 3. \u96c6\u7fa4\u89d2\u8272\u548c\u89d2\u8272\u6a21\u677f\u7ba1\u7406\uff1a\u96c6\u7fa4\u89d2\u8272\u652f\u6301\u7ed1\u5b9a\u89d2\u8272\u4e3b\u4f53\u6709\u6210\u5458\u3001\u7ec4\u548c\u670d\u52a1\u8d26\u53f7\uff0c\u5747\u652f\u6301yaml\u65b9\u5f0f\u67e5\u770b\u548c\u7f16\u8f91")),(0,l.kt)("tr",null,(0,l.kt)("td",null,"\u79df\u6237\u548c\u9879\u76ee\u7ba1\u7406"),(0,l.kt)("td",null,"1. \u591a\u79df\u6237\u3001\u591a\u9879\u76ee\u7edf\u4e00\u89c6\u56fe\u7ba1\u7406\uff1a\u67e5\u770b\u79df\u6237\u6216\u9879\u76ee\u6807\u7b7e\u3001\u6388\u6743\u96c6\u7fa4\u7b49",(0,l.kt)("br",null),"2. \u79df\u6237\u6388\u6743\u96c6\u7fa4\uff0c\u8bbe\u7f6e\u79df\u6237\u7ba1\u7406\u5458",(0,l.kt)("br",null),"3. \u9879\u76ee\u6388\u6743\u96c6\u7fa4\uff0c\u8bbe\u7f6e\u9879\u76ee\u7ba1\u7406\u5458",(0,l.kt)("br",null),"4. \u9879\u76ee\u5185\u89d2\u8272\u548c\u6210\u5458\u7ba1\u7406\u3001\u9879\u76ee\u5185\u670d\u52a1\u8d26\u53f7\u7ba1\u7406",(0,l.kt)("br",null),"5. \u5bf9\u5e94\u8d44\u6e90\u5747\u652f\u6301yaml\u65b9\u5f0f\u7f16\u8f91")),(0,l.kt)("tr",null,(0,l.kt)("td",null,"\u4e3b\u4f53\u7ba1\u7406"),(0,l.kt)("td",null,"\u7ba1\u7406\u6210\u5458\u548c\u7ec4\uff1a\u521b\u5efa\u3001\u67e5\u770b\u3001\u5220\u9664\u6210\u5458\uff1b\u4fee\u6539\u6210\u5458\u5bc6\u7801\uff1b\u521b\u5efa\u3001\u67e5\u770b\u3001\u5220\u9664\u7ec4\uff0c\u7ec4\u5185\u52a0\u5165\u6216\u79fb\u51fa\u6210\u5458")),(0,l.kt)("tr",null,(0,l.kt)("td",null,"\u83dc\u5355\u7ba1\u7406"),(0,l.kt)("td",null,"1. \u591a\u7ea7\u83dc\u5355\u7ba1\u7406\uff0c\u652f\u6301\u7ba1\u7406\u83dc\u5355\u540d\u79f0\u3001\u56fe\u6807\u3001\u884c\u5217\u6392\u5e8f\u3001\u8def\u5f84\u7b49",(0,l.kt)("br",null),"2. \u652f\u6301\u9ed8\u8ba4\u3001iframe\u5d4c\u5165\u3001\u94fe\u63a5\u8df3\u8f6c\u4e09\u79cd\u7c7b\u578b\u7684\u83dc\u5355\u6837\u5f0f",(0,l.kt)("br",null),"3. \u652f\u6301\u8bbe\u7f6e\u662f\u5426\u53ef\u89c1\uff1b\u8bbe\u7f6e\u83dc\u5355\u7684\u89d2\u8272\u6743\u9650\u7b49",(0,l.kt)("br",null),"4. \u652f\u6301\u4f7f\u7528JSON\u683c\u5f0f\u7684\u83dc\u5355\u6570\u636e\u5b9e\u73b0\u66f4\u591a\u81ea\u5b9a\u4e49\u83dc\u5355\u914d\u7f6e")),(0,l.kt)("tr",null,(0,l.kt)("td",null,"\u8bbe\u7f6e\u7ba1\u7406"),(0,l.kt)("td",null,"1. \u8d26\u6237\u4e2d\u5fc3\uff0c\u652f\u6301\u67e5\u770b\u7f16\u8f91\u624b\u673a\u3001\u90ae\u7bb1\uff1b\u4fee\u6539\u5bc6\u7801\u7b49\uff1b\u652f\u6301\u67e5\u770b\u6240\u5c5e\u79df\u6237\u9879\u76ee ",(0,l.kt)("br",null)," 2. \u5e73\u53f0\u4fe1\u606f\uff1a\u67e5\u770b\u6b63\u7248\u6388\u6743\u4fe1\u606f\u3001\u66f4\u65b0\u8bb8\u53ef\u8bc1\u7b49",(0,l.kt)("br",null)," 3. API \u51ed\u8bc1\uff0c\u652f\u6301\u67e5\u770b\u3001\u4e0b\u8f7dKubeconfig")),(0,l.kt)("tr",null,(0,l.kt)("td",null,"\u64cd\u4f5c\u5ba1\u8ba1"),(0,l.kt)("td",null,"\u7edf\u4e00\u67e5\u770b\u5bf9\u8d44\u6e90\u7684\u64cd\u4f5c\u8bb0\u5f55\uff0c\u652f\u6301\u79df\u6237\u3001\u9879\u76ee\u3001\u96c6\u7fa4\u3001\u64cd\u4f5c\u7c7b\u578b\u3001\u72b6\u6001\u3001\u53d1\u8d77\u8005\u7b49\u8fc7\u6ee4\u67e5\u8be2"))),(0,l.kt)("h2",{id:"\u5e94\u7528\u573a\u666f"},"\u5e94\u7528\u573a\u666f"),(0,l.kt)("h3",{id:"\u5feb\u901f\u642d\u5efa\u60a8\u7684\u4e91\u539f\u751f\u5e73\u53f0"},"\u5feb\u901f\u642d\u5efa\u60a8\u7684\u4e91\u539f\u751f\u5e73\u53f0"),(0,l.kt)("p",null,"Kubebb \u63d0\u4f9b\u4e86\u591a\u96c6\u7fa4\u591a\u79df\u6237\u7ba1\u7406\u3001\u83dc\u5355\u7ba1\u7406\u3001\u89d2\u8272\u548c\u6210\u5458\u7ba1\u7406\u3001OIDC \u8ba4\u8bc1\u7b49\u5b8c\u5584\u7684\u5e73\u53f0\u57fa\u7840\u80fd\u529b\u3002\u5185\u7f6e\u5b98\u65b9\u7ec4\u4ef6\uff0c\u901a\u8fc7\u4e91\u68af\u4f4e\u4ee3\u7801\u7ec4\u4ef6\u53ef\u5feb\u901f\u53d1\u5e03\u60a8\u7684\u5e94\u7528\uff1b\u901a\u8fc7\u5fae\u670d\u52a1\u6846\u67b6\u6216\u670d\u52a1\u7f51\u683c\u7edf\u4e00\u7ba1\u7406\u548c\u6cbb\u7406\u60a8\u7684\u5e94\u7528\uff1b\u901a\u8fc7\u5e94\u7528\u6027\u80fd\u76d1\u63a7\u7edf\u4e00\u89c2\u6d4b\u670d\u52a1\u8c03\u7528\uff0c\u8bbe\u7f6e\u94fe\u8def\u544a\u8b66\u3002\u540c\u65f6\u60a8\u53ef\u53d1\u5e03\u81ea\u5b9a\u4e49\u7ec4\u4ef6\uff0c\u4f8b\u5982\u5bb9\u5668\u670d\u52a1\u7ec4\u4ef6\uff0c\u5f62\u6210\u5e94\u7528\u7684\u5168\u751f\u547d\u5468\u671f\u7684\u7ba1\u7406\u548c\u6cbb\u7406\u3002\n",(0,l.kt)("img",{alt:"overview",src:n(8118).Z,width:"1134",height:"612"})))}k.isMDXComponent=!0},8118:(t,e,n)=>{n.d(e,{Z:()=>r});const r=n.p+"assets/images/struc-ff133d93cc9801277490171d61291487.png"}}]); \ No newline at end of file diff --git a/assets/js/0e384e19.9db8c814.js b/assets/js/0e384e19.9db8c814.js deleted file mode 100644 index ae4120c76..000000000 --- a/assets/js/0e384e19.9db8c814.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9671],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>d});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),k=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},s=function(e){var t=k(e.components);return r.createElement(i.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),m=k(n),c=a,d=m["".concat(i,".").concat(c)]||m[c]||u[c]||l;return n?r.createElement(d,o(o({ref:t},s),{},{components:n})):r.createElement(d,o({ref:t},s))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=c;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[m]="string"==typeof e?e:a,o[1]=p;for(var k=2;k{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>u,frontMatter:()=>l,metadata:()=>p,toc:()=>k});var r=n(7462),a=(n(7294),n(3905));const l={sidebar_position:1},o="\u603b\u89c8",p={unversionedId:"intro",id:"intro",title:"\u603b\u89c8",description:"KubeBB(Kubernetes Building Blocks)\u662f\u4e00\u79cd\u7531\u5185\u6838\u9a71\u52a8\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u5e73\u53f0\uff0c\u96c6\u6210\u5f00\u7bb1\u5373\u7528\u7684\u4e91\u539f\u751f\u5e95\u5ea7\u548c\u4f4e\u7801\u7ec4\u4ef6\u5f00\u53d1\u80fd\u529b,\u6574\u5408\u5b9e\u73b0\u4e91\u539f\u751f\u4e09\u5c42\u7ec4\u4ef6\u6a21\u5f0f\u3002",source:"@site/docs/intro.md",sourceDirName:".",slug:"/intro",permalink:"/website/docs/intro",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",next:{title:"\u5feb\u901f\u5f00\u59cb",permalink:"/website/docs/category/\u5feb\u901f\u5f00\u59cb"}},i={},k=[{value:"\u5185\u6838Kit",id:"\u5185\u6838kit",level:2},{value:"1. \u58f0\u660e\u5f0f\u7684\u7ec4\u4ef6\u5168\u751f\u547d\u5468\u671f\u7ba1\u7406",id:"1-\u58f0\u660e\u5f0f\u7684\u7ec4\u4ef6\u5168\u751f\u547d\u5468\u671f\u7ba1\u7406",level:3},{value:"\u63d0\u4f9b\u56db\u4e2a\u6838\u5fc3\u7684CRD\u5b9e\u73b0:",id:"\u63d0\u4f9b\u56db\u4e2a\u6838\u5fc3\u7684crd\u5b9e\u73b0",level:4},{value:"\u4e00\u4e2a\u6269\u5c55CRD\u5b9e\u73b0,\u96c6\u6210Tekton Pipeline:",id:"\u4e00\u4e2a\u6269\u5c55crd\u5b9e\u73b0\u96c6\u6210tekton-pipeline",level:4},{value:"2. \u5f00\u653e\u7ec4\u4ef6\u5e02\u573a",id:"2-\u5f00\u653e\u7ec4\u4ef6\u5e02\u573a",level:3},{value:"\u5e95\u5ea7Kit",id:"\u5e95\u5ea7kit",level:2},{value:"\u4f4e\u7801 Kit",id:"\u4f4e\u7801-kit",level:2},{value:"\u6280\u672f\u67b6\u6784",id:"\u6280\u672f\u67b6\u6784",level:2},{value:"\u83b7\u53d6\u66f4\u591a\u7ec4\u4ef6",id:"\u83b7\u53d6\u66f4\u591a\u7ec4\u4ef6",level:2}],s={toc:k},m="wrapper";function u(e){let{components:t,...l}=e;return(0,a.kt)(m,(0,r.Z)({},s,l,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u603b\u89c8"},"\u603b\u89c8"),(0,a.kt)("p",null,"KubeBB(Kubernetes Building Blocks)\u662f\u4e00\u79cd\u7531",(0,a.kt)("a",{parentName:"p",href:"./core/intro"},(0,a.kt)("strong",{parentName:"a"},"\u5185\u6838")),"\u9a71\u52a8\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u5e73\u53f0\uff0c\u96c6\u6210\u5f00\u7bb1\u5373\u7528\u7684",(0,a.kt)("a",{parentName:"p",href:"./building-base/intro"},(0,a.kt)("strong",{parentName:"a"},"\u4e91\u539f\u751f\u5e95\u5ea7")),"\u548c",(0,a.kt)("a",{parentName:"p",href:"./lowcode-development/intro"},(0,a.kt)("strong",{parentName:"a"},"\u4f4e\u7801\u7ec4\u4ef6\u5f00\u53d1")),"\u80fd\u529b,\u6574\u5408\u5b9e\u73b0",(0,a.kt)("a",{parentName:"p",href:"./lowcode-development/development_pattern"},(0,a.kt)("strong",{parentName:"a"},"\u4e91\u539f\u751f\u4e09\u5c42\u7ec4\u4ef6\u6a21\u5f0f")),"\u3002"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"overview",src:n(2204).Z,width:"943",height:"639"})),(0,a.kt)("p",null,"Kubebb\u63d0\u4f9b\u4e09\u4e2a",(0,a.kt)("strong",{parentName:"p"},"\u5957\u4ef6"),"\uff1a"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./core/intro"},(0,a.kt)("strong",{parentName:"a"},"\u5185\u6838 Kit")))),(0,a.kt)("p",null,"\u63d0\u4f9b",(0,a.kt)("strong",{parentName:"p"},"\u58f0\u660e\u5f0f\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u548c\u7ec4\u4ef6\u5e02\u573a"),",\u5e76\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"Tekton\u6d41\u6c34\u7ebf"),"\u5f3a\u5316\u4f4e\u4ee3\u7801\u5e73\u53f0\u7ec4\u4ef6\u4e0e\u5e95\u5ea7\u670d\u52a1\u7684\u96c6\u6210\u3002"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./building-base/intro"},(0,a.kt)("strong",{parentName:"a"},"\u5e95\u5ea7 Kit")))),(0,a.kt)("p",null,"\u63d0\u4f9b\u5f00\u7bb1\u5373\u7528\u7684\u4e91\u539f\u751f\u670d\u52a1\u95e8\u6237\uff0c\u5305\u62ec",(0,a.kt)("strong",{parentName:"p"},"\u7528\u6237\u3001OIDC\u8ba4\u8bc1\u3001\u6743\u9650\u3001\u5ba1\u8ba1\u3001\u79df\u6237\u7ba1\u7406\u3001\u95e8\u6237\u670d\u52a1\u7b49\u57fa\u7840\u7ec4\u4ef6\u4ee5\u53ca\u8bc1\u4e66\u7ba1\u7406\u3001Nignx Ingress"),"\u7b49\u96c6\u7fa4\u7ec4\u4ef6\u3002"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./lowcode-development/intro"},(0,a.kt)("strong",{parentName:"a"},"\u4f4e\u7801 Kit")))),(0,a.kt)("p",null,"\u4f4e\u7801 Kit \u5373\u4e91\u68af\u4f4e\u4ee3\u7801\u5e73\u53f0\uff0c\u4f9d\u6258 ",(0,a.kt)("a",{parentName:"p",href:"https://lowcode-engine.cn/index"},(0,a.kt)("strong",{parentName:"a"},"Low-Code Engine"))," \u548c\u5177\u6709 Git \u7279\u6027\u7684\u5173\u7cfb\u6570\u636e\u5e93 ",(0,a.kt)("a",{parentName:"p",href:"https://www.dolthub.com/"},(0,a.kt)("strong",{parentName:"a"},"Dolt"))," \u6253\u9020\uff0c\u5e76\u501f\u52a9\u5e95\u5ea7\u95e8\u6237\u7684",(0,a.kt)("strong",{parentName:"p"},"\u83dc\u5355\u548c\u8def\u7531\u8d44\u6e90"),"\u4ee5\u53ca\u5185\u6838\u5957\u4ef6\u7684",(0,a.kt)("strong",{parentName:"p"},"\u7ec4\u4ef6\u7ba1\u7406"),"\u80fd\u529b\uff0c\u5b9e\u73b0\u7ec4\u4ef6\u5f00\u53d1\u3001\u6d4b\u8bd5\u5230\u4e0a\u7ebf\u7684\u5168\u94fe\u8def\u80fd\u529b\u3002"),(0,a.kt)("p",null,"\u4e09\u4e2a\u6838\u5fc3\u5957\u4ef6\u4e4b\u95f4\u7684\u5173\u7cfb\u53ef\u4ee5\u7c7b\u6bd4\u4e00\u4e0b",(0,a.kt)("strong",{parentName:"p"},"\u64cd\u4f5c\u7cfb\u7edf"),":"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Kubernetes")," ~ ",(0,a.kt)("strong",{parentName:"li"},"\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Core")," ~ ",(0,a.kt)("strong",{parentName:"li"},"\u8f6f\u4ef6\u5b89\u88c5\u5668")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u5e95\u5ea7Kit")," ~ ",(0,a.kt)("strong",{parentName:"li"},"\u64cd\u4f5c\u7cfb\u7edf\u7684\u7cfb\u7edf\u8f6f\u4ef6\uff0c\u5982GUI\u3001\u7528\u6237\u7cfb\u7edf\u3001\u7f51\u7edc\u7b49")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u4f4e\u7801\u7ec4\u4ef6\u5f00\u53d1Kit")," ~ ",(0,a.kt)("strong",{parentName:"li"},"\u64cd\u4f5c\u7cfb\u7edf\u8f6f\u4ef6\u5f00\u53d1\u5de5\u5177"))),(0,a.kt)("h2",{id:"\u5185\u6838kit"},"\u5185\u6838Kit"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"\u5185\u6838Kit"),"\u7684\u662f\u73b0\u9636\u6bb5\u6211\u4eec\u91cd\u70b9\u5173\u6ce8\u5e76\u7814\u53d1\u7684",(0,a.kt)("a",{parentName:"p",href:"https://github.com/kubebb/core"},(0,a.kt)("strong",{parentName:"a"},"\u9879\u76ee")),",\u5b8c\u5168\u9075\u5faa\u5f00\u6e90\u9879\u76ee\u7ba1\u7406\u89c4\u8303\u3002\u73b0\u9636\u6bb5\u6211\u4eec\u7684\u76ee\u6807:"),(0,a.kt)("h3",{id:"1-\u58f0\u660e\u5f0f\u7684\u7ec4\u4ef6\u5168\u751f\u547d\u5468\u671f\u7ba1\u7406"},"1. \u58f0\u660e\u5f0f\u7684\u7ec4\u4ef6\u5168\u751f\u547d\u5468\u671f\u7ba1\u7406"),(0,a.kt)("p",null,"\u57fa\u4e8e",(0,a.kt)("a",{parentName:"p",href:"https://kubernetes.io/docs/concepts/extend-kubernetes/operator/"},(0,a.kt)("strong",{parentName:"a"},"Operator Pattern")),"\u5f00\u53d1,\u5b9e\u73b0\u58f0\u660e\u5f0f\u7684\u7ec4\u4ef6\u5168\u751f\u547d\u5468\u671f\u7ba1\u7406\u3002"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"component-lifecycle",src:n(3992).Z,width:"752",height:"522"})),(0,a.kt)("h4",{id:"\u63d0\u4f9b\u56db\u4e2a\u6838\u5fc3\u7684crd\u5b9e\u73b0"},"\u63d0\u4f9b\u56db\u4e2a\u6838\u5fc3\u7684CRD\u5b9e\u73b0:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./core/concepts/repository"},(0,a.kt)("strong",{parentName:"a"},"Repository\u7ec4\u4ef6\u4ed3\u5e93")))),(0,a.kt)("p",null,"\u5b9a\u4e49\u4e86\u7ec4\u4ef6\u4ed3\u5e93\u7684\u8bbf\u95ee\u4fe1\u606f\u3001\u8f6e\u8be2\u7b56\u7565\u548c\u8fc7\u6ee4\u9009\u9879\uff0c\u4ece\u800c\u5b9e\u73b0\u5468\u671f\u6027\u5730\u5411\u4ed3\u5e93\u670d\u52a1\u83b7\u53d6\u6700\u65b0\u7684\u7ec4\u4ef6\u5217\u8868\u4fe1\u606f\u3002"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./core/concepts/component"},(0,a.kt)("strong",{parentName:"a"},"Component\u7ec4\u4ef6")))),(0,a.kt)("p",null,"\u8bb0\u5f55\u7ec4\u4ef6\u7684\u57fa\u7840\u63cf\u8ff0\u3001\u7248\u672c\u5217\u8868\u3001\u662f\u5426\u5e9f\u5f03\u7b49\u4fe1\u606f"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./core/concepts/componentplan"},(0,a.kt)("strong",{parentName:"a"},"ComponentPlan\u7ec4\u4ef6\u90e8\u7f72")))),(0,a.kt)("p",null,"\u5b9a\u4e49\u7ec4\u4ef6\u5b89\u88c5\u90e8\u7f72\u7684\u624b\u52a8\u6279\u51c6\u3001\u7ec4\u4ef6\u5f15\u7528\u3001\u7248\u672c\u8bbe\u7f6e\u3001\u7c7bhelm\u7684\u914d\u7f6e\u8986\u76d6\u7b56\u7565\uff0c\u4ece\u800c\u5b9e\u73b0\u7ec4\u4ef6\u7684\u53ef\u8ffd\u8e2a\u90e8\u7f72\u3001\u5347\u7ea7\u548c\u56de\u6eda\u3002"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./core/concepts/subscription"},(0,a.kt)("strong",{parentName:"a"},"Subscription\u7ec4\u4ef6\u8ba2\u9605")))),(0,a.kt)("p",null,"\u5b9a\u4e49\u4e86\u7528\u6237\u8ba2\u9605\u7ec4\u4ef6\u7248\u672c\u66f4\u65b0"),(0,a.kt)("h4",{id:"\u4e00\u4e2a\u6269\u5c55crd\u5b9e\u73b0\u96c6\u6210tekton-pipeline"},"\u4e00\u4e2a\u6269\u5c55CRD\u5b9e\u73b0,\u96c6\u6210",(0,a.kt)("a",{parentName:"h4",href:"https://tekton.dev/"},(0,a.kt)("strong",{parentName:"a"},"Tekton Pipeline")),":"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./core/rating"},(0,a.kt)("strong",{parentName:"a"},"Rating\u7ec4\u4ef6\u8bc4\u7ea7")))),(0,a.kt)("h3",{id:"2-\u5f00\u653e\u7ec4\u4ef6\u5e02\u573a"},"2. \u5f00\u653e\u7ec4\u4ef6\u5e02\u573a"),(0,a.kt)("p",null,"\u7ec4\u4ef6\u5e02\u573a\u662f\u5185\u6838\u80fd\u529b\u7684",(0,a.kt)("strong",{parentName:"p"},"\u4ea7\u54c1\u5316"),"\uff0c\u4f5c\u4e3a\u4e00\u4e2a\u9002\u914d",(0,a.kt)("strong",{parentName:"p"},"\u5e95\u5ea7\u670d\u52a1\u7684\u7ec4\u4ef6"),"\u53d1\u5e03\u5230\u5b98\u65b9\u7ec4\u4ef6\u4ed3\u5e93\u4e2d\u4f7f\u7528\uff0c\u6269\u5c55KubeBB\u751f\u6001\u3002"),(0,a.kt)("h2",{id:"\u5e95\u5ea7kit"},"\u5e95\u5ea7Kit"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"\u5e95\u5ea7Kit"),"\u901a\u8fc7\u96c6\u6210\u4ee5\u4e0b\u7ec4\u4ef6\u4ece\u800c\u63d0\u4f9b\u7edf\u4e00\u7684\u8ba4\u8bc1\u4e2d\u5fc3\u548c\u95e8\u6237\u5165\u53e3:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"u4a-component")," \u63d0\u4f9b\u8d26\u53f7\u3001\u8ba4\u8bc1\u3001\u6743\u9650\u53ca\u5ba1\u8ba1\u7ba1\u7406\u529f\u80fd\uff0c\u5305\u542b\u4ee5\u4e0b\u4e3b\u8981\u8d44\u6599",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.nginx.com/nginx-ingress-controller/"},"nginx ingress")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://cert-manager.io/"},"cert-manager")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/dexidp/dex"},"\u57fa\u4e8e dex \u6784\u5efa")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/clastix/capsule"},"\u591a\u79df\u6237\u57fa\u4e8e capsule \u6784\u5efa")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/jetstack/kube-oidc-proxy"},"oidc-proxy \u57fa\u4e8e kube-oidc-proxy \u6784\u5efa"))))),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"portal",src:n(1230).Z,width:"1918",height:"848"})),(0,a.kt)("h2",{id:"\u4f4e\u7801-kit"},"\u4f4e\u7801 Kit"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"\u4f4e\u7801 Kit"),"\u63d0\u4f9b",(0,a.kt)("a",{parentName:"p",href:"./lowcode-development/development_pattern"},(0,a.kt)("strong",{parentName:"a"},"\u4e09\u5c42\u7ec4\u4ef6\u5f00\u53d1\u6a21\u5f0f")),"\u4e2d\u7684",(0,a.kt)("a",{parentName:"p",href:"./lowcode-development/development/frontend"},(0,a.kt)("strong",{parentName:"a"},"\u524d\u7aef\u6a21\u5757\u7814\u53d1")),"\u3001\u51fa\u7801\u80fd\u529b\uff0c\u5e76\u501f\u52a9",(0,a.kt)("strong",{parentName:"p"},"\u5185\u6838 Kit"),"\u5b8c\u6210\u6807\u51c6\u5316\u6253\u5305\u3001\u6d4b\u8bd5\u3001\u53d1\u5e03\uff0c\u540e\u7eed BFF \u5c42\u4e5f\u4f1a\u63a2\u7d22\u4f4e\u7801\u7684\u5f00\u53d1\u6a21\u5f0f\u3002"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"lowcode_development",src:n(5873).Z,width:"1644",height:"1118"})),(0,a.kt)("h2",{id:"\u6280\u672f\u67b6\u6784"},"\u6280\u672f\u67b6\u6784"),(0,a.kt)("p",null,"\u5e73\u53f0\u5f00\u53d1\u91c7\u53d6\u524d\u540e\u7aef\u5206\u79bb\uff0c\u4ee5 K8S \u4e3a\u6838\u5fc3\u7684\u5f00\u53d1\u6846\u67b6\uff0c\u9075\u5faa K8S \u7684\u6269\u5c55\u673a\u5236\u53ca API \u89c4\u8303\uff0c\u6574\u4f53\u5f00\u53d1\u67b6\u6784\u7684\u57fa\u672c\u903b\u8f91\u5982\u4e0b\u56fe\u6240\u793a\uff1a\n",(0,a.kt)("img",{alt:"\u56fe 2",src:n(1261).Z,width:"1089",height:"724"})),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u6240\u6709\u7ec4\u4ef6\u7684\u5f00\u53d1\u3001\u6269\u5c55\u7684\u8ba4\u8bc1\u90fd\u901a\u8fc7\u7edf\u4e00\u8ba4\u8bc1\u4e2d\u5fc3\u8fdb\u884c\u8ba4\u8bc1"),(0,a.kt)("li",{parentName:"ol"},"\u8ba4\u8bc1\u7531\u5fae\u524d\u7aef\u7684\u4e3b\u6846\u67b6 DockApp \u7edf\u4e00\u8fdb\u884c\uff0c\u5176\u4ed6\u5fae\u524d\u7aef\u7684\u6269\u5c55\u4e0d\u9700\u8981\u5355\u72ec\u652f\u6301\u540c\u8ba4\u8bc1\u4e2d\u5fc3\u7684\u5904\u7406"),(0,a.kt)("li",{parentName:"ol"},"\u5f00\u53d1\u67b6\u6784\u4e0a\u6574\u4f53\u53ef\u4ee5\u6309\u7167\u4e09\u5c42\u6765\u770b")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u7b2c\u4e00\u5c42\uff0c\u524d\u7aef\u91c7\u7528\u5fae\u524d\u7aef\u67b6\u6784\uff0c\u5c3d\u91cf\u91c7\u7528\u4f4e\u4ee3\u7801\u65b9\u5f0f\u8fdb\u884c\u5f00\u53d1\uff0c\u63d0\u9ad8\u4ee3\u7801\u81ea\u52a8\u5316\u751f\u6210\u6bd4\u4f8b"),(0,a.kt)("li",{parentName:"ul"},"\u7b2c\u4e8c\u5c42\uff0c\u6839\u636e\u4e1a\u52a1\u9700\u6c42\u589e\u52a0 OpenAPI\uff0c\u5f62\u6210\u7edf\u4e00\u7684 BFF \u5c42\uff0c\u5bf9 API \u8fdb\u884c\u805a\u5408\uff0c\u63d0\u4f9b\u524d\u7aef\u6240\u9700\u8981\u7684\u4e1a\u52a1\u573a\u666f\u6570\u636e"),(0,a.kt)("li",{parentName:"ul"},"\u540e\u7aef\u91c7\u7528 CRD + controller \u7684 Operator \u6a21\u5f0f\u8fdb\u884c\u5f00\u53d1\uff0c\u5f62\u6210\u6570\u636e\u9a71\u52a8\u7684\u6d41\u7a0b\u5f00\u53d1\u6a21\u5f0f")),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u5bf9\u5916 API \u4e3b\u8981\u5305\u62ec\u4e24\u90e8\u5206\uff1a")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u4ece BFF \u5c42\u63d0\u4f9b\u7684 OpenAPI"),(0,a.kt)("li",{parentName:"ul"},"\u4ece K8S \u5c42\u63d0\u4f9b\u7684\u8d44\u6e90 API")),(0,a.kt)("h2",{id:"\u83b7\u53d6\u66f4\u591a\u7ec4\u4ef6"},"\u83b7\u53d6\u66f4\u591a\u7ec4\u4ef6"),(0,a.kt)("p",null,"\u6d4f\u89c8 ",(0,a.kt)("a",{parentName:"p",href:"/docs/category/%E7%BB%84%E4%BB%B6%E5%B8%82%E5%9C%BA"},"\u7ec4\u4ef6\u5e02\u573a"),"\uff0c\u5b89\u88c5\u66f4\u591a\u9700\u8981\u7684\u670d\u52a1\u7ec4\u4ef6\u5230\u95e8\u6237\u4e2d\uff0c\u6bd4\u5982\uff1a"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/docs/component-market/kubedashboard"},"kubedashboard")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/docs/component-market/kubelogin"},"kubelogin"))))}u.isMDXComponent=!0},1261:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/6b8d0cb645caee89c8df55940f5c5b3379940f8714667f8fb2dc780f3442b8f0-8fbc2a4fd6aeaaa23274c226eb811799.png"},3992:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/component-lifecycle.drawio-64de9e9f4e72adad8cdc532e11e9cab8.png"},2204:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/kubebb_overview.drawio-28cfaba13e7b70d148500fd399d0dde3.png"},1230:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/kubebb_portal-874bc2358e619fc78d9a674231e468b9.png"},5873:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/lowcode-development-a62899bc77702b09922121532be59d41.png"}}]); \ No newline at end of file diff --git a/assets/js/0f745343.e6786af0.js b/assets/js/0f745343.e6786af0.js new file mode 100644 index 000000000..0003f830e --- /dev/null +++ b/assets/js/0f745343.e6786af0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1399],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,s=a(e,["components","mdxType","originalType","parentName"]),p=u(r),b=o,f=p["".concat(c,".").concat(b)]||p[b]||d[b]||i;return r?n.createElement(f,l(l({ref:t},s),{},{components:r})):n.createElement(f,l({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,l=new Array(i);l[0]=b;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a[p]="string"==typeof e?e:o,l[1]=a;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>u});var n=r(7462),o=(r(7294),r(3905));const i={sidebar_position:1,title:"\u6700\u65b0\u52a8\u6001",sidebar_label:"\u6700\u65b0\u52a8\u6001"},l="\u529f\u80fd\u53d1\u5e03\u8bb0\u5f55",a={unversionedId:"version",id:"version",title:"\u6700\u65b0\u52a8\u6001",description:"\u672c\u6587\u4ecb\u7ecd\u4e86 Kubebb \u5404\u7248\u672c\u7684\u529f\u80fd\u53d1\u5e03\u548c\u5bf9\u5e94\u7684\u6587\u6863\u52a8\u6001\uff0c\u6b22\u8fce\u4f53\u9a8c\u3002",source:"@site/docs/version.md",sourceDirName:".",slug:"/version",permalink:"/website/docs/version",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"\u6700\u65b0\u52a8\u6001",sidebar_label:"\u6700\u65b0\u52a8\u6001"},sidebar:"tutorialSidebar",previous:{title:"\u4ea7\u54c1\u4ecb\u7ecd",permalink:"/website/docs/intro"},next:{title:"\u5feb\u901f\u5f00\u59cb",permalink:"/website/docs/category/\u5feb\u901f\u5f00\u59cb"}},c={},u=[{value:"2023\u5e7410\u6708",id:"2023\u5e7410\u6708",level:2}],s={toc:u},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"\u529f\u80fd\u53d1\u5e03\u8bb0\u5f55"},"\u529f\u80fd\u53d1\u5e03\u8bb0\u5f55"),(0,o.kt)("p",null,"\u672c\u6587\u4ecb\u7ecd\u4e86 Kubebb \u5404\u7248\u672c\u7684\u529f\u80fd\u53d1\u5e03\u548c\u5bf9\u5e94\u7684\u6587\u6863\u52a8\u6001\uff0c\u6b22\u8fce\u4f53\u9a8c\u3002"),(0,o.kt)("h2",{id:"2023\u5e7410\u6708"},"2023\u5e7410\u6708"),(0,o.kt)("p",null,"Kubebb v0.2.0\uff1a\u53ef\u89c6\u5316\u7ba1\u7406\u7ec4\u4ef6\u4ed3\u5e93\u3001\u7ec4\u4ef6\u5e02\u573a\u3001\u53d1\u5e03\u7ec4\u4ef6\u3001\u5b89\u88c5\u7ec4\u4ef6\u3001\u8ba2\u9605\u7ec4\u4ef6"),(0,o.kt)("table",null,(0,o.kt)("tr",null,(0,o.kt)("th",null,"\u529f\u80fd\u540d\u79f0"),(0,o.kt)("th",null,"\u529f\u80fd\u63cf\u8ff0"),(0,o.kt)("th",null,"\u53d1\u5e03\u7c7b\u578b")),(0,o.kt)("tr",null,(0,o.kt)("td",{width:"15%"},"\u7ec4\u4ef6\u5e02\u573a"),(0,o.kt)("td",null,"\u4e00\u4e2a\u5f00\u653e\u3001\u5171\u4eab\u7684\u7ec4\u4ef6\u5546\u5e97\uff0c\u652f\u6301\u6d4f\u89c8\u3001\u8ba2\u9605\u3001\u4e0b\u8f7d\u3001\u5b89\u88c5\u7ec4\u4ef6"),(0,o.kt)("td",{width:"15%"},"\u65b0\u589e")),(0,o.kt)("tr",null,(0,o.kt)("td",{width:"15%"},"\u7ec4\u4ef6\u7ba1\u7406"),(0,o.kt)("td",null,"\u53d1\u5e03\u7ec4\u4ef6\u3001\u8ba2\u9605\u7ec4\u4ef6\u3001\u5b89\u88c5\u7ec4\u4ef6"),(0,o.kt)("td",{width:"15%"},"\u65b0\u589e")),(0,o.kt)("tr",null,(0,o.kt)("td",{width:"15%"},"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406"),(0,o.kt)("td",null,"\u6dfb\u52a0\u3001\u7f16\u8f91\u3001\u5220\u9664\u4ed3\u5e93\uff0c\u4ed3\u5e93\u5c5e\u6027\u914d\u7f6e\u7b49"),(0,o.kt)("td",{width:"15%"},"\u65b0\u589e"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/11551e33.678cfcb6.js b/assets/js/11551e33.678cfcb6.js new file mode 100644 index 000000000..51e3ce45a --- /dev/null +++ b/assets/js/11551e33.678cfcb6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[550],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>b});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.createContext({}),l=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},s=function(e){var t=l(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=l(n),d=o,b=u["".concat(p,".").concat(d)]||u[d]||m[d]||i;return n?r.createElement(b,a(a({ref:t},s),{},{components:n})):r.createElement(b,a({ref:t},s))}));function b(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=d;var c={};for(var p in t)hasOwnProperty.call(t,p)&&(c[p]=t[p]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>m,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var r=n(7462),o=(n(7294),n(3905));const i={sidebar_position:4},a="\u533a\u5757\u94fe - \u8054\u76df\u94fe",c={unversionedId:"develop-guid/component-market/blockchain",id:"develop-guid/component-market/blockchain",title:"\u533a\u5757\u94fe - \u8054\u76df\u94fe",description:"\u533a\u5757\u94fe\u7ec4\u4ef6\u76ee\u524d\u8fd8\u6ca1\u6709\u5b8c\u6210\u7ec4\u4ef6\u5316\uff0c\u4f46\u662f\u4f9d\u7136\u53ef\u4ee5\u57fa\u4e8e\u5e95\u5ea7Kit\u8fdb\u884c\u90e8\u7f72\uff0c\u8be6\u7ec6\u53c2\u8003 bestchains \u5e73\u53f0\u5b89\u88c5\u3002",source:"@site/docs/develop-guid/component-market/blockchain.md",sourceDirName:"develop-guid/component-market",slug:"/develop-guid/component-market/blockchain",permalink:"/website/docs/develop-guid/component-market/blockchain",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"\u76d1\u63a7\u7ec4\u4ef6",permalink:"/website/docs/develop-guid/component-market/monitoring"},next:{title:"\u4f7f\u7528 kubelogin \u5de5\u5177",permalink:"/website/docs/develop-guid/component-market/kubelogin"}},p={},l=[],s={toc:l},u="wrapper";function m(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"\u533a\u5757\u94fe---\u8054\u76df\u94fe"},"\u533a\u5757\u94fe - \u8054\u76df\u94fe"),(0,o.kt)("p",null,"\u533a\u5757\u94fe\u7ec4\u4ef6\u76ee\u524d\u8fd8\u6ca1\u6709\u5b8c\u6210\u7ec4\u4ef6\u5316\uff0c\u4f46\u662f\u4f9d\u7136\u53ef\u4ee5\u57fa\u4e8e\u5e95\u5ea7Kit\u8fdb\u884c\u90e8\u7f72\uff0c\u8be6\u7ec6\u53c2\u8003 ",(0,o.kt)("a",{parentName:"p",href:"https://bestchains.github.io/website/docs/QuickStart/installation#2-%E5%AE%89%E8%A3%85-baas-component"},"bestchains \u5e73\u53f0\u5b89\u88c5"),"\u3002"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"\u6ce8\u610f\u4fee\u6539 scripts/e2e.sh \u4e2d\u56fd\u5462 ingressNode\uff0ckubeProxyNode \u7684\u914d\u7f6e"),(0,o.kt)("li",{parentName:"ul"},"\u90e8\u7f72\u540e\u5373\u53ef\u5728\u7ba1\u7406\u5e73\u53f0\u770b\u5230\u533a\u5757\u94fe\u76f8\u5173\u83dc\u5355\u53ca\u529f\u80fd")),(0,o.kt)("p",null,"bestchains \u7684\u8be6\u7ec6\u4f7f\u7528\uff0c\u8bf7\u53c2\u8003",(0,o.kt)("a",{parentName:"p",href:"https://bestchains.github.io/website/"},"\u5e2e\u52a9\u6587\u6863")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/124d10f2.af300e1b.js b/assets/js/124d10f2.6a17be4b.js similarity index 53% rename from assets/js/124d10f2.af300e1b.js rename to assets/js/124d10f2.6a17be4b.js index 2dea77b58..f742026d8 100644 --- a/assets/js/124d10f2.af300e1b.js +++ b/assets/js/124d10f2.6a17be4b.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1916],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),s=u(r),d=a,f=s["".concat(p,".").concat(d)]||s[d]||m[d]||i;return r?n.createElement(f,o(o({ref:t},c),{},{components:r})):n.createElement(f,o({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[s]="string"==typeof e?e:a,o[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=r(7462),a=(r(7294),r(3905));const i={sidebar_position:5,title:"\u7ec4\u4ef6\u8bc4\u6d4b",sidebar_label:"\u7ec4\u4ef6\u8bc4\u6d4b"},o=void 0,l={unversionedId:"user-guid/component_rating",id:"user-guid/component_rating",title:"\u7ec4\u4ef6\u8bc4\u6d4b",description:"\u4f7f\u7528\u667a\u80fd AI \u5bf9\u7ec4\u4ef6\u4ece\u5b89\u5168\u6027\u3001\u53ef\u9760\u6027\u3001\u53ef\u7528\u6027\u4e09\u65b9\u9762\u8fdb\u884c\u7efc\u5408\u8bc4\u6d4b\uff0c\u4e3a\u60a8\u7684\u9009\u62e9\u63d0\u4f9b\u53c2\u8003\u6570\u636e\u3002",source:"@site/docs/user-guid/component_rating.md",sourceDirName:"user-guid",slug:"/user-guid/component_rating",permalink:"/website/docs/user-guid/component_rating",draft:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5,title:"\u7ec4\u4ef6\u8bc4\u6d4b",sidebar_label:"\u7ec4\u4ef6\u8bc4\u6d4b"},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6\u5e02\u573a",permalink:"/website/docs/user-guid/component_market"},next:{title:"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406",permalink:"/website/docs/user-guid/repository_anagement"}},p={},u=[{value:"\u8bc4\u6d4b\u89c4\u5219\u8bf4\u660e",id:"\u8bc4\u6d4b\u89c4\u5219\u8bf4\u660e",level:2},{value:"\u53d1\u8d77\u8bc4\u6d4b",id:"\u53d1\u8d77\u8bc4\u6d4b",level:2}],c={toc:u},s="wrapper";function m(e){let{components:t,...i}=e;return(0,a.kt)(s,(0,n.Z)({},c,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"\u4f7f\u7528\u667a\u80fd AI \u5bf9\u7ec4\u4ef6\u4ece\u5b89\u5168\u6027\u3001\u53ef\u9760\u6027\u3001\u53ef\u7528\u6027\u4e09\u65b9\u9762\u8fdb\u884c\u7efc\u5408\u8bc4\u6d4b\uff0c\u4e3a\u60a8\u7684\u9009\u62e9\u63d0\u4f9b\u53c2\u8003\u6570\u636e\u3002"),(0,a.kt)("h2",{id:"\u8bc4\u6d4b\u89c4\u5219\u8bf4\u660e"},"\u8bc4\u6d4b\u89c4\u5219\u8bf4\u660e"),(0,a.kt)("p",null,"\u5185\u7f6e\u5b89\u5168\u6027\u3001\u53ef\u9760\u6027\u3001\u53ef\u7528\u6027\u4e09\u7c7b\u8bc4\u6d4b\u4efb\u52a1\uff0c\u5c06\u4efb\u52a1\u6267\u884c\u7ed3\u679c\u53d1\u7ed9 AI \u8fdb\u884c\u8bc4\u4f30\u3002AI \u5206\u4e09\u4e2a\u7c7b\u522b\u8fd4\u56de\u8bc4\u5206\u548c\u8bc4\u4f30\u7ed3\u679c\uff0c\u6700\u7ec8\u7ec4\u4ef6\u8bc4\u5206\u53d6\u5e73\u5747\u503c\u3002\u5177\u4f53\u8bc4\u6d4b\u4efb\u52a1\u4ecb\u7ecd\u548c\u8bc4\u4f30\u89c4\u5219\u6280\u672f\u8bf4\u660e\uff0c\u8be6\u89c1",(0,a.kt)("a",{parentName:"p",href:"../core/rating"},(0,a.kt)("strong",{parentName:"a"},"\u5185\u6838Kit/\u7ec4\u4ef6\u8bc4\u6d4b"))),(0,a.kt)("h2",{id:"\u53d1\u8d77\u8bc4\u6d4b"},"\u53d1\u8d77\u8bc4\u6d4b"),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u524d\u63d0\u6761\u4ef6"),(0,a.kt)("ul",{parentName:"admonition"},(0,a.kt)("li",{parentName:"ul"},"\u5df2\u90e8\u7f72 Tekton \u548c Arcadia \uff0c\u90e8\u7f72\u8bf4\u660e\u8be6\u89c1",(0,a.kt)("a",{parentName:"li",href:"../core/userguide/enablerating"},(0,a.kt)("strong",{parentName:"a"},"\u542f\u7528Rating"))),(0,a.kt)("li",{parentName:"ul"},"\u7ec4\u4ef6\u6240\u5c5e\u7ec4\u4ef6\u4ed3\u5e93\u9700\u5f00\u542f",(0,a.kt)("inlineCode",{parentName:"li"},"\u7ec4\u4ef6\u8bc4\u6d4b")),(0,a.kt)("li",{parentName:"ul"},"\u7528\u6237\u9700\u8981\u88ab\u7ba1\u7406\u5458\u6388\u4e88\u8bc4\u6d4b\u6743\u9650"))),(0,a.kt)("p",null,"\u64cd\u4f5c\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165","[\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u5e02\u573a]","\u9875\u9762\uff0c\u627e\u5230\u76ee\u6807\u7ec4\u4ef6\uff0c\u70b9\u51fb\u7ec4\u4ef6\u5361\u7247\u533a\u57df\uff0c\u8fdb\u5165\u5176\u8be6\u60c5\u9875\u9762"),(0,a.kt)("li",{parentName:"ol"},"\u5207\u6362\u5230\u201c\u7ec4\u4ef6\u8bc4\u6d4b\u201d\u9875\u7b7e\uff0c\u9009\u62e9\u7ec4\u4ef6\u7248\u672c\u540e\uff0c\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u53d1\u8d77\u8bc4\u6d4b"),"\uff0c\u4e8c\u6b21\u5f39\u6846\u63d0\u793a\u786e\u5b9a\u540e\uff0c\u5f00\u59cb\u8bc4\u6d4b"),(0,a.kt)("li",{parentName:"ol"},"\u67d0\u7ec4\u4ef6\u7248\u672c\u201c\u8bc4\u6d4b\u4e2d\u201d\u72b6\u6001\uff0c\u4e0d\u5141\u8bb8\u518d\u53d1\u8d77\u8bc4\u6d4b\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u8bc4\u6d4b\u5b8c\u6210\u540e\uff0c\u5c55\u793a\u8bc4\u6d4b\u7ed3\u679c")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u8bc4\u6d4b\u5f97\u5206\uff1a0-10\uff0c\u4e94\u9897\u661f\u5c55\u793a"),(0,a.kt)("li",{parentName:"ul"},"\u6700\u8fd1\u4e00\u6b21\u8bc4\u6d4b\u65f6\u95f4"),(0,a.kt)("li",{parentName:"ul"},"\u7ec4\u4ef6\u8bc4\u6d4b\u62a5\u544a\uff1a\u5206\u4e09\u4e2a\u7c7b\u578b\u5c55\u793a\u8be6\u7ec6\u7ed3\u679c\uff0c\u5305\u62ec\u5f97\u5206\u3001\u95ee\u9898\u548c\u5efa\u8bae")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"overview",src:r(1786).Z,width:"1582",height:"817"})),(0,a.kt)("ol",{start:4},(0,a.kt)("li",{parentName:"ol"},"\u7ec4\u4ef6\u67d0\u4e00\u7248\u672c\u53ef\u53d1\u8d77\u591a\u6b21\u8bc4\u6d4b\uff0c\u540e\u7eed\u6211\u4eec\u4f1a\u6301\u7eed\u4f18\u5316\u3001\u66f4\u65b0\u8bc4\u6d4b\u4efb\u52a1\uff0cAI \u4e5f\u4f1a\u4e0d\u65ad\u8bad\u7ec3\u4f18\u5316\u8bc4\u6d4b\u89c4\u5219\u3002")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("ul",{parentName:"admonition"},(0,a.kt)("li",{parentName:"ul"},"\u82e5\u8fd8\u672a\u90e8\u7f72Tekton\u548cArcadia\uff0c\u9875\u9762\u63d0\u793a\u201c\u8bc4\u6d4b\u7cfb\u7edf\u7ec4\u4ef6\u672a\u5b8c\u5168\u90e8\u7f72\uff0c\u8bf7\u68c0\u67e5\u201d"),(0,a.kt)("li",{parentName:"ul"},"\u82e5\u7ec4\u4ef6\u6240\u5c5e\u4ed3\u5e93\u672a\u5f00\u542f",(0,a.kt)("inlineCode",{parentName:"li"},"\u7ec4\u4ef6\u8bc4\u6d4b"),"\uff0c\u9875\u9762\u63d0\u793a\u201c\u8bf7\u8054\u7cfb\u7ba1\u7406\u5458\u5148\u4e3a\u7ec4\u4ef6\u6240\u5c5e\u4ed3\u5e93\u5f00\u542f\u8bc4\u6d4b\u80fd\u529b\u201d"),(0,a.kt)("li",{parentName:"ul"},"\u6570\u636e\u6e05\u7406\u8bf4\u660e\uff1a\u624b\u52a8\u53d1\u5e03\u7684\u7ec4\u4ef6\uff0c\u5728\u201c\u6211\u53d1\u5e03\u7684\u201d\u9875\u9762\u5220\u9664\u7ec4\u4ef6\u540e\uff0c\u4f1a\u5220\u9664\u5176\u6240\u6709\u7248\u672c\u7684\u8bc4\u6d4b\u62a5\u544a\uff1b\u5bf9\u4e8e\u4ed3\u5e93\u5185\u5df2\u6709\u7ec4\u4ef6\uff08\u975e\u624b\u52a8\u53d1\u5e03\uff09\uff0c\u4ed3\u5e93\u4e2d\u5220\u9664\u7ec4\u4ef6\u540e\uff0c\u4e5f\u4f1a\u5220\u9664\u5176\u8bc4\u6d4b\u62a5\u544a"))))}m.isMDXComponent=!0},1786:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/rating-816e52d3f220f6318a35c7854c99ecaf.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1916],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,p=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),s=u(r),d=a,f=s["".concat(p,".").concat(d)]||s[d]||m[d]||i;return r?n.createElement(f,o(o({ref:t},c),{},{components:r})):n.createElement(f,o({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,o=new Array(i);o[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[s]="string"==typeof e?e:a,o[1]=l;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var n=r(7462),a=(r(7294),r(3905));const i={sidebar_position:5,title:"\u7ec4\u4ef6\u8bc4\u6d4b",sidebar_label:"\u7ec4\u4ef6\u8bc4\u6d4b"},o=void 0,l={unversionedId:"user-guid/component_rating",id:"user-guid/component_rating",title:"\u7ec4\u4ef6\u8bc4\u6d4b",description:"\u4f7f\u7528\u667a\u80fd AI \u5bf9\u7ec4\u4ef6\u4ece\u5b89\u5168\u6027\u3001\u53ef\u9760\u6027\u3001\u53ef\u7528\u6027\u4e09\u65b9\u9762\u8fdb\u884c\u7efc\u5408\u8bc4\u6d4b\uff0c\u4e3a\u60a8\u7684\u9009\u62e9\u63d0\u4f9b\u53c2\u8003\u6570\u636e\u3002",source:"@site/docs/user-guid/component_rating.md",sourceDirName:"user-guid",slug:"/user-guid/component_rating",permalink:"/website/docs/user-guid/component_rating",draft:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5,title:"\u7ec4\u4ef6\u8bc4\u6d4b",sidebar_label:"\u7ec4\u4ef6\u8bc4\u6d4b"},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6\u5e02\u573a",permalink:"/website/docs/user-guid/component_market"},next:{title:"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406",permalink:"/website/docs/user-guid/repository_anagement"}},p={},u=[{value:"\u8bc4\u6d4b\u89c4\u5219\u8bf4\u660e",id:"\u8bc4\u6d4b\u89c4\u5219\u8bf4\u660e",level:2},{value:"\u53d1\u8d77\u8bc4\u6d4b",id:"\u53d1\u8d77\u8bc4\u6d4b",level:2}],c={toc:u},s="wrapper";function m(e){let{components:t,...i}=e;return(0,a.kt)(s,(0,n.Z)({},c,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"\u4f7f\u7528\u667a\u80fd AI \u5bf9\u7ec4\u4ef6\u4ece\u5b89\u5168\u6027\u3001\u53ef\u9760\u6027\u3001\u53ef\u7528\u6027\u4e09\u65b9\u9762\u8fdb\u884c\u7efc\u5408\u8bc4\u6d4b\uff0c\u4e3a\u60a8\u7684\u9009\u62e9\u63d0\u4f9b\u53c2\u8003\u6570\u636e\u3002"),(0,a.kt)("h2",{id:"\u8bc4\u6d4b\u89c4\u5219\u8bf4\u660e"},"\u8bc4\u6d4b\u89c4\u5219\u8bf4\u660e"),(0,a.kt)("p",null,"\u5185\u7f6e\u5b89\u5168\u6027\u3001\u53ef\u9760\u6027\u3001\u53ef\u7528\u6027\u4e09\u7c7b\u8bc4\u6d4b\u4efb\u52a1\uff0c\u5c06\u4efb\u52a1\u6267\u884c\u7ed3\u679c\u53d1\u7ed9 AI \u8fdb\u884c\u8bc4\u4f30\u3002AI \u5206\u4e09\u4e2a\u7c7b\u522b\u8fd4\u56de\u8bc4\u5206\u548c\u8bc4\u4f30\u7ed3\u679c\uff0c\u6700\u7ec8\u7ec4\u4ef6\u8bc4\u5206\u53d6\u5e73\u5747\u503c\u3002\u5177\u4f53\u8bc4\u6d4b\u4efb\u52a1\u4ecb\u7ecd\u548c\u8bc4\u4f30\u89c4\u5219\u6280\u672f\u8bf4\u660e\uff0c\u8be6\u89c1",(0,a.kt)("a",{parentName:"p",href:"/website/docs/develop-guid/core/rating/"},(0,a.kt)("strong",{parentName:"a"},"\u5185\u6838Kit/\u7ec4\u4ef6\u8bc4\u6d4b"))),(0,a.kt)("h2",{id:"\u53d1\u8d77\u8bc4\u6d4b"},"\u53d1\u8d77\u8bc4\u6d4b"),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u524d\u63d0\u6761\u4ef6"),(0,a.kt)("ul",{parentName:"admonition"},(0,a.kt)("li",{parentName:"ul"},"\u5df2\u90e8\u7f72 Tekton \u548c Arcadia \uff0c\u90e8\u7f72\u8bf4\u660e\u8be6\u89c1",(0,a.kt)("a",{parentName:"li",href:"/website/docs/develop-guid/core/rating/enablerating"},(0,a.kt)("strong",{parentName:"a"},"\u5feb\u901f\u90e8\u7f72"))),(0,a.kt)("li",{parentName:"ul"},"\u7ec4\u4ef6\u6240\u5c5e\u7ec4\u4ef6\u4ed3\u5e93\u9700\u5f00\u542f",(0,a.kt)("inlineCode",{parentName:"li"},"\u7ec4\u4ef6\u8bc4\u6d4b")),(0,a.kt)("li",{parentName:"ul"},"\u7528\u6237\u9700\u8981\u88ab\u7ba1\u7406\u5458\u6388\u4e88\u8bc4\u6d4b\u6743\u9650"))),(0,a.kt)("p",null,"\u64cd\u4f5c\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165","[\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u5e02\u573a]","\u9875\u9762\uff0c\u627e\u5230\u76ee\u6807\u7ec4\u4ef6\uff0c\u70b9\u51fb\u7ec4\u4ef6\u5361\u7247\u533a\u57df\uff0c\u8fdb\u5165\u5176\u8be6\u60c5\u9875\u9762"),(0,a.kt)("li",{parentName:"ol"},"\u5207\u6362\u5230\u201c\u7ec4\u4ef6\u8bc4\u6d4b\u201d\u9875\u7b7e\uff0c\u9009\u62e9\u7ec4\u4ef6\u7248\u672c\u540e\uff0c\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u53d1\u8d77\u8bc4\u6d4b"),"\uff0c\u4e8c\u6b21\u5f39\u6846\u63d0\u793a\u786e\u5b9a\u540e\uff0c\u5f00\u59cb\u8bc4\u6d4b"),(0,a.kt)("li",{parentName:"ol"},"\u67d0\u7ec4\u4ef6\u7248\u672c\u201c\u8bc4\u6d4b\u4e2d\u201d\u72b6\u6001\uff0c\u4e0d\u5141\u8bb8\u518d\u53d1\u8d77\u8bc4\u6d4b\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u8bc4\u6d4b\u5b8c\u6210\u540e\uff0c\u5c55\u793a\u8bc4\u6d4b\u7ed3\u679c")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u8bc4\u6d4b\u5f97\u5206\uff1a0-10\uff0c\u4e94\u9897\u661f\u5c55\u793a"),(0,a.kt)("li",{parentName:"ul"},"\u6700\u8fd1\u4e00\u6b21\u8bc4\u6d4b\u65f6\u95f4"),(0,a.kt)("li",{parentName:"ul"},"\u7ec4\u4ef6\u8bc4\u6d4b\u62a5\u544a\uff1a\u5206\u4e09\u4e2a\u7c7b\u578b\u5c55\u793a\u8be6\u7ec6\u7ed3\u679c\uff0c\u5305\u62ec\u5f97\u5206\u3001\u95ee\u9898\u548c\u5efa\u8bae")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"overview",src:r(1786).Z,width:"1582",height:"817"})),(0,a.kt)("ol",{start:4},(0,a.kt)("li",{parentName:"ol"},"\u7ec4\u4ef6\u67d0\u4e00\u7248\u672c\u53ef\u53d1\u8d77\u591a\u6b21\u8bc4\u6d4b\uff0c\u540e\u7eed\u6211\u4eec\u4f1a\u6301\u7eed\u4f18\u5316\u3001\u66f4\u65b0\u8bc4\u6d4b\u4efb\u52a1\uff0cAI \u4e5f\u4f1a\u4e0d\u65ad\u8bad\u7ec3\u4f18\u5316\u8bc4\u6d4b\u89c4\u5219\u3002")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("ul",{parentName:"admonition"},(0,a.kt)("li",{parentName:"ul"},"\u82e5\u8fd8\u672a\u90e8\u7f72Tekton\u548cArcadia\uff0c\u9875\u9762\u63d0\u793a\u201c\u8bc4\u6d4b\u7cfb\u7edf\u7ec4\u4ef6\u672a\u5b8c\u5168\u90e8\u7f72\uff0c\u8bf7\u68c0\u67e5\u201d"),(0,a.kt)("li",{parentName:"ul"},"\u82e5\u7ec4\u4ef6\u6240\u5c5e\u4ed3\u5e93\u672a\u5f00\u542f",(0,a.kt)("inlineCode",{parentName:"li"},"\u7ec4\u4ef6\u8bc4\u6d4b"),"\uff0c\u9875\u9762\u63d0\u793a\u201c\u8bf7\u8054\u7cfb\u7ba1\u7406\u5458\u5148\u4e3a\u7ec4\u4ef6\u6240\u5c5e\u4ed3\u5e93\u5f00\u542f\u8bc4\u6d4b\u80fd\u529b\u201d"),(0,a.kt)("li",{parentName:"ul"},"\u6570\u636e\u6e05\u7406\u8bf4\u660e\uff1a\u624b\u52a8\u53d1\u5e03\u7684\u7ec4\u4ef6\uff0c\u5728\u201c\u6211\u53d1\u5e03\u7684\u201d\u9875\u9762\u5220\u9664\u7ec4\u4ef6\u540e\uff0c\u4f1a\u5220\u9664\u5176\u6240\u6709\u7248\u672c\u7684\u8bc4\u6d4b\u62a5\u544a\uff1b\u5bf9\u4e8e\u4ed3\u5e93\u5185\u5df2\u6709\u7ec4\u4ef6\uff08\u975e\u624b\u52a8\u53d1\u5e03\uff09\uff0c\u4ed3\u5e93\u4e2d\u5220\u9664\u7ec4\u4ef6\u540e\uff0c\u4e5f\u4f1a\u5220\u9664\u5176\u8bc4\u6d4b\u62a5\u544a"))))}m.isMDXComponent=!0},1786:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/rating-816e52d3f220f6318a35c7854c99ecaf.png"}}]); \ No newline at end of file diff --git a/assets/js/181fac9d.e6b816e7.js b/assets/js/181fac9d.e6b816e7.js new file mode 100644 index 000000000..6f5724b95 --- /dev/null +++ b/assets/js/181fac9d.e6b816e7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[297],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),d=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=d(e.components);return r.createElement(i.Provider,{value:t},e.children)},c="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=d(n),b=a,k=c["".concat(i,".").concat(b)]||c[b]||p[b]||o;return n?r.createElement(k,s(s({ref:t},u),{},{components:n})):r.createElement(k,s({ref:t},u))}));function k(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=b;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[c]="string"==typeof e?e:a,s[1]=l;for(var d=2;d{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var r=n(7462),a=(n(7294),n(3905));const o={sidebar_position:1},s="kubedashboard \u7ba1\u7406\u5de5\u5177",l={unversionedId:"develop-guid/component-market/kubedashboard",id:"develop-guid/component-market/kubedashboard",title:"kubedashboard \u7ba1\u7406\u5de5\u5177",description:"\u8fd9\u91cc\u4ecb\u7ecd\u4e00\u4e0b\u5982\u4f55\u57fa\u4e8e kubebb \u7684\u5e95\u5ea7\u6765\u90e8\u7f72 Kubernetes Dashboard\uff0c\u5e76\u4f7f\u7528\u7edf\u4e00\u7684 OIDC \u8ba4\u8bc1\u3001\u5355\u70b9\u767b\u5f55\u53ca\u539f\u751f Kubernetes RBAC \u8ba4\u8bc1\u3002",source:"@site/docs/develop-guid/component-market/kubedashboard.md",sourceDirName:"develop-guid/component-market",slug:"/develop-guid/component-market/kubedashboard",permalink:"/website/docs/develop-guid/component-market/kubedashboard",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6\u5e02\u573a",permalink:"/website/docs/category/\u7ec4\u4ef6\u5e02\u573a"},next:{title:"\u65e5\u5fd7\u7ec4\u4ef6",permalink:"/website/docs/develop-guid/component-market/logging"}},i={},d=[{value:"\u5b89\u88c5 Kubernetes dashboard",id:"\u5b89\u88c5-kubernetes-dashboard",level:3},{value:"Uninstall",id:"uninstall",level:3}],u={toc:d},c="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"kubedashboard-\u7ba1\u7406\u5de5\u5177"},"kubedashboard \u7ba1\u7406\u5de5\u5177"),(0,a.kt)("p",null,"\u8fd9\u91cc\u4ecb\u7ecd\u4e00\u4e0b\u5982\u4f55\u57fa\u4e8e kubebb \u7684\u5e95\u5ea7\u6765\u90e8\u7f72 Kubernetes Dashboard\uff0c\u5e76\u4f7f\u7528\u7edf\u4e00\u7684 OIDC \u8ba4\u8bc1\u3001\u5355\u70b9\u767b\u5f55\u53ca\u539f\u751f Kubernetes RBAC \u8ba4\u8bc1\u3002"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u5de5\u5177\u4ee3\u7801\u5730\u5740\uff1a",(0,a.kt)("a",{parentName:"p",href:"https://github.com/kubernetes/dashboard"},"kubernetes dashboard "))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Prerequisite"),(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u90e8\u7f72 kubebb \u7684\u5e95\u5ea7\u7ec4\u4ef6 u4a-component\uff0c\u63d0\u4f9b\u57fa\u4e8e K8S \u6784\u5efa\u7684\u57fa\u672c\u7684\u8d26\u53f7\u3001\u8ba4\u8bc1\u3001\u6743\u9650\u548c\u5ba1\u8ba1\u529f\u80fd\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u83b7\u53d6\u90e8\u7f72\u7ec4\u4ef6")),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"$ git clone https://github.com/kubebb/addon-components.git\n# \u8fdb\u5165\u5bf9\u5e94\u76ee\u5f55\n$ cd kube-dashboard\n")))),(0,a.kt)("h3",{id:"\u5b89\u88c5-kubernetes-dashboard"},"\u5b89\u88c5 Kubernetes dashboard"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u7f16\u8f91 values.yaml\uff0c\u6309\u9700\u8981\u66ff\u6362\u955c\u50cf\u5730\u5740\uff0c\u66ff\u6362 ",(0,a.kt)("inlineCode",{parentName:"li"},".nip.io\n\n# You must check and update the value of each variable below\nkubeOidcProxy:\n issuerUrl: # https://portal.172.22.96.209.nip.io/oidc\n clientId: \n clientSecret: \n usernameClaim: preferred_username\n groupClaim: groups\n hostConfig:\n enabled: true\n hostAliases:\n - hostnames:\n # MUST update this value\n - portal..nip.io\n ip: \n")),(0,a.kt)("ol",{start:2},(0,a.kt)("li",{parentName:"ol"},"\u8fd0\u884c helm \u5b89\u88c5\u63d2\u4ef6")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"# \u5982\u679c\u9700\u8981\uff0c\u521b\u5efa\u5355\u72ec\u7684 namespace \u6765\u90e8\u7f72\u6b64\u63d2\u4ef6\uff0c\u6bd4\u5982 addon-system\nkubectl create ns addon-system\n# \u90e8\u7f72 kube-dashboard \u63d2\u4ef6\nhelm install kube-dashboard -n addon-system .\n")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Note: \u6b64\u65f6\uff0cdashboard \u7684 pod \u4f1a\u5904\u4e8e ContainerCreating \u7684\u72b6\u6001\uff0c\u8fd9\u662f\u56e0\u4e3a\u7f3a\u5c11\u6240\u4f9d\u8d56\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u63a5\u4e0b\u6765\u6211\u4eec\u9700\u8981\u51c6\u5907\u6b64\u914d\u7f6e\u6587\u4ef6\u3002")),(0,a.kt)("ol",{start:3},(0,a.kt)("li",{parentName:"ol"},"\u521b\u5efa kube-dashboard \u6240\u9700\u8981\u7684 kubeconfig \u6587\u4ef6, \u4ee5\u4fbf kube-dashboard \u53ef\u4ee5\u4f7f\u7528\u7edf\u4e00\u7684 kube-oidc-proxy \u8fdb\u884c\u8ba4\u8bc1\uff0c\u540c\u65f6\uff0c\u4e5f\u9700\u8981\u5728\u914d\u7f6e\u4e2d\u4f7f\u7528\u6b63\u786e\u7684\u8bc1\u4e66\u548c\u8fde\u63a5 token \u4fe1\u606f")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"# copy the kubeconfig template\n$ cp sample-kubeconfig kubeconfig\n# edit kubeconfig file to use the correct cluster.certificate-authority-data, cluster.server, user.token\n\n# Step 1\n$ export CLUSTER_CA=$(kubectl get secret -n u4a-system oidc-server-root-secret -o jsonpath='{.data.ca\\.crt}')\n$ use the value from $CLUSTER_CA to replace cluster.certificate-authority-data() in kubeconfig file\n\n# Step 2\n$ export USER_TOKEN_NAME=$(kubectl -n addon-system get serviceaccount kubernetes-dashboard -o=jsonpath='{.secrets[0].name}')\n$ export USER_TOKEN_VALUE=$(kubectl -n addon-system get secret/${USER_TOKEN_NAME} -o=go-template='{{.data.token}}' | base64 --decode)\n# use the value from $USER_TOKEN_VALUE to replace user.token() in kubeconfig file\n\n# Step 3 replace cluster.server() with the address of kube-oidc-proxy\n\n# Step 4 create the configmap\n$ kubectl create cm dashboard-kubeconfig --from-file=kubeconfig -n addon-system\n")),(0,a.kt)("ol",{start:4},(0,a.kt)("li",{parentName:"ol"},"\u91cd\u542f kube-dashboard")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"$ kubectl delete pod -n addon-system $(kubectl get pod -n addon-system | grep kubernetes-dashboard | awk '{print $1}')\n")),(0,a.kt)("ol",{start:5},(0,a.kt)("li",{parentName:"ol"},"\u5728 OIDC \u670d\u52a1\u4e2d\u6dfb\u52a0 kube-dashboard \u7684 callback \u5730\u5740.")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"$ kubectl edit cm oidc-server -n u4a-system\n# find redirectURIs and add a new redirect url 'https:///oauth/callback'\n")),(0,a.kt)("ol",{start:6},(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"\u4f7f\u7528 ",(0,a.kt)("inlineCode",{parentName:"p"},"kubedashboard..nip.io")," \u5730\u5740\u8bbf\u95ee kube-dashboard. \u5982\u679c\u5904\u4e8e\u672a\u767b\u5f55\u72b6\u6001\uff0c\u4f1a\u88ab\u91cd\u5b9a\u5411\u5230\u7edf\u4e00\u7684\u8ba4\u8bc1\u670d\u52a1\u8fdb\u884c\u767b\u5f55\uff0c\u6210\u529f\u767b\u5f55\u540e\u5373\u523b\u643a\u5e26\u6388\u6743\u7684 token \u56de\u5230 kube-dashboard \u8fdb\u884c\u6b63\u5e38\u4f7f\u7528\u4e86\u3002")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"\u53ef\u4ee5\u901a\u8fc7\u7ed9\u767b\u5f55\u7684\u7528\u6237\u6388\u6743\u4e0d\u540c\u7684 RBAC \u7b56\u7565\uff0c\u6765\u9a8c\u8bc1\u662f\u5426\u53ea\u6709\u6388\u6743\u7684\u8d44\u6e90\u624d\u80fd\u88ab\u8be5\u7528\u6237\u8bbf\u95ee\u3002"))),(0,a.kt)("h3",{id:"uninstall"},"Uninstall"),(0,a.kt)("p",null,"\u901a\u8fc7 helm uninstall \u6765\u5378\u8f7d\u8be5\u63d2\u4ef6"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"helm uninstall kube-dashboard -n addon-system\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1b16f8d8.ca1c6517.js b/assets/js/1b16f8d8.ca1c6517.js deleted file mode 100644 index a71f4548e..000000000 --- a/assets/js/1b16f8d8.ca1c6517.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5658],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=u(r),d=a,f=c["".concat(p,".").concat(d)]||c[d]||m[d]||l;return r?n.createElement(f,i(i({ref:t},s),{},{components:r})):n.createElement(f,i({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,i=new Array(l);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[c]="string"==typeof e?e:a,i[1]=o;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>u});var n=r(7462),a=(r(7294),r(3905));const l={sidebar_position:6,title:"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406",sidebar_label:"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406"},i=void 0,o={unversionedId:"user-guid/repository_anagement",id:"user-guid/repository_anagement",title:"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406",description:"\u7ec4\u4ef6\u4ed3\u5e93\u4e3b\u8981\u7528\u6765\u5b58\u653e\u7ba1\u7406\u5404\u79cd\u7ec4\u4ef6\u3002",source:"@site/docs/user-guid/repository_anagement.md",sourceDirName:"user-guid",slug:"/user-guid/repository_anagement",permalink:"/website/docs/user-guid/repository_anagement",draft:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6,title:"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406",sidebar_label:"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406"},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6\u8bc4\u6d4b",permalink:"/website/docs/user-guid/component_rating"},next:{title:"\u5e38\u89c1\u95ee\u9898",permalink:"/website/docs/FAQ"}},p={},u=[{value:"\u6dfb\u52a0\u7ec4\u4ef6\u4ed3\u5e93",id:"\u6dfb\u52a0\u7ec4\u4ef6\u4ed3\u5e93",level:2},{value:"\u7f16\u8f91\u7ec4\u4ef6\u4ed3\u5e93",id:"\u7f16\u8f91\u7ec4\u4ef6\u4ed3\u5e93",level:2},{value:"\u5220\u9664\u7ec4\u4ef6\u4ed3\u5e93",id:"\u5220\u9664\u7ec4\u4ef6\u4ed3\u5e93",level:2}],s={toc:u},c="wrapper";function m(e){let{components:t,...l}=e;return(0,a.kt)(c,(0,n.Z)({},s,l,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"\u7ec4\u4ef6\u4ed3\u5e93\u4e3b\u8981\u7528\u6765\u5b58\u653e\u7ba1\u7406\u5404\u79cd\u7ec4\u4ef6\u3002"),(0,a.kt)("h2",{id:"\u6dfb\u52a0\u7ec4\u4ef6\u4ed3\u5e93"},"\u6dfb\u52a0\u7ec4\u4ef6\u4ed3\u5e93"),(0,a.kt)("p",null,"\u64cd\u4f5c\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165","[\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406]","\u9875\u9762\uff0c\u9009\u62e9\u76ee\u6807\u96c6\u7fa4\uff0c\u70b9\u51fb\u201c+\u7ec4\u4ef6\u4ed3\u5e93\u201d\uff0c\u8fdb\u5165\u6dfb\u52a0\u9875\u9762"),(0,a.kt)("li",{parentName:"ol"},"\u586b\u5199\u4ed3\u5e93\u540d\u79f0\u3001\u4ed3\u5e93\u5730\u5740\u3001\u5b89\u5168\u4fe1\u606f\u53ca\u9ad8\u7ea7\u914d\u7f6e")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u4ed3\u5e93\u540d\u79f0\uff1a\u75313~253\u4e2a\u5c0f\u5199\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e2d\u5212\u7ebf\u201c-\u201d\u6216\u70b9\u201c.\u201d\u7ec4\u6210\uff0c\u5e76\u4ee5\u5b57\u6bcd\u3001\u6570\u5b57\u5f00\u5934\u6216\u7ed3\u5c3e\uff0c\u4e0d\u53ef\u91cd\u590d"),(0,a.kt)("li",{parentName:"ul"},"\u4ed3\u5e93\u5730\u5740\uff1a\u4f8bhttp://ip(host):port\uff0c\u53d1\u5e03\u5230\u4ed3\u5e93\u7684\u7ec4\u4ef6\u5982\u9700\u5728\u201c\u7ec4\u4ef6\u5e02\u573a\u201d\u652f\u6301\u4e0b\u8f7d\uff0c\u6b64\u5904\u586b\u5199\u5730\u5740\u9700\u652f\u6301\u5916\u7f51\u8bbf\u95ee\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u5b89\u5168\u4fe1\u606f\uff1a\u53ef\u52fe\u9009\u8bbe\u7f6ehttps\u9a8c\u8bc1\u3001\u5b89\u5168\u8ba4\u8bc1\uff0c\u9ed8\u8ba4\u90fd\u4e0d\u52fe\u9009",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"https\u9a8c\u8bc1\uff1a \u4e0a\u4f20\u6839\u8bc1\u4e66\uff08\u5fc5\u586b\uff09\u3001\u5ba2\u6237\u7aef\u8bc1\u4e66\u3001\u5ba2\u6237\u7aef\u79c1\u94a5\u3002\u5982\u9700\u8981\u53cc\u5411\u8ba4\u8bc1\uff0c\u5ba2\u6237\u7aef\u8bc1\u4e66\u548c\u79c1\u94a5\u4e5f\u9700\u8981\u4e0a\u4f20\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u5b89\u5168\u8ba4\u8bc1\uff1a\u652f\u6301basic auth\u8ba4\u8bc1\u65b9\u5f0f\uff0c\u586b\u5199\u8ba4\u8bc1\u7528\u6237\u540d\u3001\u5bc6\u7801"))),(0,a.kt)("li",{parentName:"ul"},"\u9ad8\u7ea7\u914d\u7f6e\uff0c\u53ef\u9009\u914d\u7f6e",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u4ed3\u5e93\u540c\u6b65\u8bbe\u7f6e\uff1a\u5bf9\u4ed3\u5e93\u4e2d\u7684\u7ec4\u4ef6\u8fdb\u884c\u5b9a\u65f6\u6570\u636e\u66f4\u65b0\u3002\u65f6\u95f4\u95f4\u9694\uff0c\u9ed8\u8ba4120s\uff1b\u8d85\u65f6\u65f6\u95f4\uff0c\u9ed8\u8ba460s\uff1b\u91cd\u8bd5\u6b21\u6570\uff0c\u9ed8\u8ba41\u6b21"),(0,a.kt)("li",{parentName:"ul"},"\u4ed3\u5e93\u7ec4\u4ef6\u8fc7\u6ee4\uff1a",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u9ed8\u8ba4\u5bf9\u4ed3\u5e93\u4e2d\u672a\u6dfb\u52a0\u8fc7\u6ee4\u89c4\u5219\u7684\u7ec4\u4ef6\u5c06\u4fdd\u7559\u5176\u5168\u90e8\u7248\u672c\u3002\u5982\u9700\u8fc7\u6ee4\u67d0\u4e9b\u7ec4\u4ef6\u7684\u7248\u672c\uff0c\u53ef\u586b\u5199\u8fc7\u6ee4\u89c4\u5219\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u8fc7\u6ee4\u89c4\u5219\uff1a\u586b\u5199\u5b8c\u6574\u7684\u7ec4\u4ef6\u540d\u79f0\uff1b\u5e9f\u5f03\u7248\u672c\u652f\u6301\u9009\u62e9\u4fdd\u7559\u3001\u8fc7\u6ee4\uff1b\u6b63\u5e38\u7248\u672c\u652f\u6301\u4e09\u79cd\u8fc7\u6ee4\u65b9\u5f0f\uff1a\u5168\u90e8\u8fc7\u6ee4\u3001\u7cbe\u786e\u8fc7\u6ee4\uff08\u9700\u5b8c\u6574\u586b\u5199\u3001\u7cbe\u786e\u4fdd\u7559\uff0c\u586b\u5199\u5b8c\u6574\u7248\u672c"),(0,a.kt)("li",{parentName:"ul"},"\u5bf9\u540c\u4e00\u7ec4\u4ef6\u4ec5\u80fd\u8bbe\u7f6e\u4e00\u6761\u8fc7\u6ee4\u89c4\u5219"))),(0,a.kt)("li",{parentName:"ul"},"\u955c\u50cf\u4ed3\u5e93\u66ff\u6362\uff1a\u66ff\u6362\u89c4\u5219\u662f \u539f\u57df\u540d/\u539f\u4ed3\u5e93\u7ec4 \u66ff\u6362\u4e3a \u65b0\u57df\u540d/\u65b0\u4ed3\u5e93\u7ec4\u3002\u53ef\u6dfb\u52a0\u591a\u6761\u66ff\u6362\u89c4\u5219\u3002\n",(0,a.kt)("img",{alt:"overview",src:r(4529).Z,width:"1167",height:"414"}))))),(0,a.kt)("ol",{start:3},(0,a.kt)("li",{parentName:"ol"},"\u4ed3\u5e93\u6dfb\u52a0\u5b8c\u6210\u540e\uff0c\u5217\u8868\u5c55\u793a\u6dfb\u52a0\u7684\u4ed3\u5e93\u6570\u636e\uff0c\u5305\u62ec\u7ec4\u4ef6\u4ed3\u5e93\u540d\u79f0\u3001URL\u3001\u5f53\u524d\u72b6\u6001\u3001\u6700\u65b0\u540c\u6b65\u65f6\u95f4\u3001\u521b\u5efa\u65f6\u95f4",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u4ed3\u5e93\u72b6\u6001\uff1a\u540c\u6b65\u4e2d\u3001\u5065\u5eb7\u3001\u5f02\u5e38\u3002\u5f02\u5e38\u4e00\u822c\u662f\u4ed3\u5e93\u81ea\u8eab\u6570\u636e\u83b7\u53d6\u66f4\u65b0\u5931\u8d25\u5bfc\u81f4\u3002\u5f02\u5e38\u540e\uff0c\u53ef\u67e5\u770b\u8be6\u7ec6\u62a5\u9519\u4fe1\u606f\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u6700\u65b0\u540c\u6b65\u65f6\u95f4\uff1a\u6307\u4ed3\u5e93\u81ea\u8eab\u8f6e\u8be2\u6570\u636e\u7684\u66f4\u65b0\u65f6\u95f4")))),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"\u76ee\u524d\u4ec5\u652f\u6301\u7cfb\u7edf\u7ba1\u7406\u5458admin\u7ba1\u7406\u4ed3\u5e93")),(0,a.kt)("h2",{id:"\u7f16\u8f91\u7ec4\u4ef6\u4ed3\u5e93"},"\u7f16\u8f91\u7ec4\u4ef6\u4ed3\u5e93"),(0,a.kt)("p",null,"\u64cd\u4f5c\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165","[\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406]","\u9875\u9762\uff0c\u9009\u62e9\u76ee\u6807\u96c6\u7fa4\uff0c\u4ed3\u5e93\u5217\u8868\u4e2d\u627e\u5230\u76ee\u6807\u4ed3\u5e93\uff0c\u70b9\u51fb\u201c\u7f16\u8f91\u201d"),(0,a.kt)("li",{parentName:"ol"},"\u9664\u540d\u79f0\u3001URL\u4e4b\u5916\uff0c\u5176\u4ed6\u9009\u9879\u5747\u53ef\u7f16\u8f91\u3002")),(0,a.kt)("h2",{id:"\u5220\u9664\u7ec4\u4ef6\u4ed3\u5e93"},"\u5220\u9664\u7ec4\u4ef6\u4ed3\u5e93"),(0,a.kt)("p",null,"\u64cd\u4f5c\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165","[\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406]","\u9875\u9762\uff0c\u9009\u62e9\u76ee\u6807\u96c6\u7fa4\uff0c\u4ed3\u5e93\u5217\u8868\u4e2d\u627e\u5230\u76ee\u6807\u4ed3\u5e93\uff0c\u70b9\u51fb\u201c\u5220\u9664\u201d"),(0,a.kt)("li",{parentName:"ol"},"\u4e8c\u6b21\u5f39\u6846\u63d0\u793a\uff1a\u5220\u9664\u7ec4\u4ef6\u4ed3\u5e93\uff0c\u5176\u4e2d\u7ec4\u4ef6\u5c06\u540c\u6b65\u5220\u9664\uff0c\u8bf7\u786e\u8ba4\uff01")))}m.isMDXComponent=!0},4529:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/advanced-config-80ca88efcf4978d0abc4e35dee45650a.png"}}]); \ No newline at end of file diff --git a/assets/js/1b16f8d8.fb5c4fae.js b/assets/js/1b16f8d8.fb5c4fae.js new file mode 100644 index 000000000..22d242c2b --- /dev/null +++ b/assets/js/1b16f8d8.fb5c4fae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5658],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=u(r),d=a,f=c["".concat(p,".").concat(d)]||c[d]||m[d]||i;return r?n.createElement(f,l(l({ref:t},s),{},{components:r})):n.createElement(f,l({ref:t},s))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,l=new Array(i);l[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[c]="string"==typeof e?e:a,l[1]=o;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>u});var n=r(7462),a=(r(7294),r(3905));const i={sidebar_position:6,title:"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406",sidebar_label:"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406"},l=void 0,o={unversionedId:"user-guid/repository_anagement",id:"user-guid/repository_anagement",title:"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406",description:"\u7ec4\u4ef6\u4ed3\u5e93\u4e3b\u8981\u7528\u6765\u5b58\u653e\u7ba1\u7406\u5404\u79cd\u7ec4\u4ef6\u3002",source:"@site/docs/user-guid/repository_anagement.md",sourceDirName:"user-guid",slug:"/user-guid/repository_anagement",permalink:"/website/docs/user-guid/repository_anagement",draft:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6,title:"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406",sidebar_label:"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406"},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6\u8bc4\u6d4b",permalink:"/website/docs/user-guid/component_rating"},next:{title:"\u603b\u89c8",permalink:"/website/docs/develop-guid/intro"}},p={},u=[{value:"\u6dfb\u52a0\u7ec4\u4ef6\u4ed3\u5e93",id:"\u6dfb\u52a0\u7ec4\u4ef6\u4ed3\u5e93",level:2},{value:"\u7f16\u8f91\u7ec4\u4ef6\u4ed3\u5e93",id:"\u7f16\u8f91\u7ec4\u4ef6\u4ed3\u5e93",level:2},{value:"\u5220\u9664\u7ec4\u4ef6\u4ed3\u5e93",id:"\u5220\u9664\u7ec4\u4ef6\u4ed3\u5e93",level:2}],s={toc:u},c="wrapper";function m(e){let{components:t,...i}=e;return(0,a.kt)(c,(0,n.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"\u7ec4\u4ef6\u4ed3\u5e93\u4e3b\u8981\u7528\u6765\u5b58\u653e\u7ba1\u7406\u5404\u79cd\u7ec4\u4ef6\u3002"),(0,a.kt)("h2",{id:"\u6dfb\u52a0\u7ec4\u4ef6\u4ed3\u5e93"},"\u6dfb\u52a0\u7ec4\u4ef6\u4ed3\u5e93"),(0,a.kt)("p",null,"\u64cd\u4f5c\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165","[\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406]","\u9875\u9762\uff0c\u9009\u62e9\u76ee\u6807\u96c6\u7fa4\uff0c\u70b9\u51fb\u201c+\u7ec4\u4ef6\u4ed3\u5e93\u201d\uff0c\u8fdb\u5165\u6dfb\u52a0\u9875\u9762"),(0,a.kt)("li",{parentName:"ol"},"\u586b\u5199\u4ed3\u5e93\u540d\u79f0\u3001\u4ed3\u5e93\u5730\u5740\u3001\u5b89\u5168\u4fe1\u606f\u53ca\u9ad8\u7ea7\u914d\u7f6e")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u4ed3\u5e93\u540d\u79f0\uff1a\u75313~253\u4e2a\u5c0f\u5199\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e2d\u5212\u7ebf\u201c-\u201d\u6216\u70b9\u201c.\u201d\u7ec4\u6210\uff0c\u5e76\u4ee5\u5b57\u6bcd\u3001\u6570\u5b57\u5f00\u5934\u6216\u7ed3\u5c3e\uff0c\u4e0d\u53ef\u91cd\u590d"),(0,a.kt)("li",{parentName:"ul"},"\u4ed3\u5e93\u5730\u5740\uff1a\u4f8bhttp://ip(host):port\uff0c\u53d1\u5e03\u5230\u4ed3\u5e93\u7684\u7ec4\u4ef6\u5982\u9700\u5728\u201c\u7ec4\u4ef6\u5e02\u573a\u201d\u652f\u6301\u4e0b\u8f7d\uff0c\u6b64\u5904\u586b\u5199\u5730\u5740\u9700\u652f\u6301\u5916\u7f51\u8bbf\u95ee\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u5b89\u5168\u4fe1\u606f\uff1a\u53ef\u52fe\u9009\u8bbe\u7f6ehttps\u9a8c\u8bc1\u3001\u5b89\u5168\u8ba4\u8bc1\uff0c\u9ed8\u8ba4\u90fd\u4e0d\u52fe\u9009",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"https\u9a8c\u8bc1\uff1a \u4e0a\u4f20\u6839\u8bc1\u4e66\uff08\u5fc5\u586b\uff09\u3001\u5ba2\u6237\u7aef\u8bc1\u4e66\u3001\u5ba2\u6237\u7aef\u79c1\u94a5\u3002\u5982\u9700\u8981\u53cc\u5411\u8ba4\u8bc1\uff0c\u5ba2\u6237\u7aef\u8bc1\u4e66\u548c\u79c1\u94a5\u4e5f\u9700\u8981\u4e0a\u4f20\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u5b89\u5168\u8ba4\u8bc1\uff1a\u652f\u6301basic auth\u8ba4\u8bc1\u65b9\u5f0f\uff0c\u586b\u5199\u8ba4\u8bc1\u7528\u6237\u540d\u3001\u5bc6\u7801"))),(0,a.kt)("li",{parentName:"ul"},"\u9ad8\u7ea7\u914d\u7f6e\uff0c\u53ef\u9009\u914d\u7f6e",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u4ed3\u5e93\u540c\u6b65\u8bbe\u7f6e\uff1a\u5bf9\u4ed3\u5e93\u4e2d\u7684\u7ec4\u4ef6\u8fdb\u884c\u5b9a\u65f6\u6570\u636e\u66f4\u65b0\u3002\u65f6\u95f4\u95f4\u9694\uff0c\u9ed8\u8ba4120s\uff1b\u8d85\u65f6\u65f6\u95f4\uff0c\u9ed8\u8ba460s\uff1b\u91cd\u8bd5\u6b21\u6570\uff0c\u9ed8\u8ba41\u6b21"),(0,a.kt)("li",{parentName:"ul"},"\u4ed3\u5e93\u7ec4\u4ef6\u8fc7\u6ee4\uff1a",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u9ed8\u8ba4\u5bf9\u4ed3\u5e93\u4e2d\u672a\u6dfb\u52a0\u8fc7\u6ee4\u89c4\u5219\u7684\u7ec4\u4ef6\u5c06\u4fdd\u7559\u5176\u5168\u90e8\u7248\u672c\u3002\u5982\u9700\u8fc7\u6ee4\u67d0\u4e9b\u7ec4\u4ef6\u7684\u7248\u672c\uff0c\u53ef\u586b\u5199\u8fc7\u6ee4\u89c4\u5219\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u8fc7\u6ee4\u89c4\u5219\uff1a\u586b\u5199\u5b8c\u6574\u7684\u7ec4\u4ef6\u540d\u79f0\uff1b\u5e9f\u5f03\u7248\u672c\u652f\u6301\u9009\u62e9\u4fdd\u7559\u3001\u8fc7\u6ee4\uff1b\u6b63\u5e38\u7248\u672c\u652f\u6301\u4e09\u79cd\u8fc7\u6ee4\u65b9\u5f0f\uff1a\u5168\u90e8\u8fc7\u6ee4\u3001\u7cbe\u786e\u8fc7\u6ee4\uff08\u9700\u5b8c\u6574\u586b\u5199\u3001\u7cbe\u786e\u4fdd\u7559\uff0c\u586b\u5199\u5b8c\u6574\u7248\u672c"),(0,a.kt)("li",{parentName:"ul"},"\u5bf9\u540c\u4e00\u7ec4\u4ef6\u4ec5\u80fd\u8bbe\u7f6e\u4e00\u6761\u8fc7\u6ee4\u89c4\u5219"))),(0,a.kt)("li",{parentName:"ul"},"\u955c\u50cf\u4ed3\u5e93\u66ff\u6362\uff1a\u66ff\u6362\u89c4\u5219\u662f \u539f\u57df\u540d/\u539f\u4ed3\u5e93\u7ec4 \u66ff\u6362\u4e3a \u65b0\u57df\u540d/\u65b0\u4ed3\u5e93\u7ec4\u3002\u53ef\u6dfb\u52a0\u591a\u6761\u66ff\u6362\u89c4\u5219\u3002\n",(0,a.kt)("img",{alt:"overview",src:r(4529).Z,width:"1162",height:"361"}))))),(0,a.kt)("ol",{start:3},(0,a.kt)("li",{parentName:"ol"},"\u4ed3\u5e93\u6dfb\u52a0\u5b8c\u6210\u540e\uff0c\u5217\u8868\u5c55\u793a\u6dfb\u52a0\u7684\u4ed3\u5e93\u6570\u636e\uff0c\u5305\u62ec\u7ec4\u4ef6\u4ed3\u5e93\u540d\u79f0\u3001URL\u3001\u5f53\u524d\u72b6\u6001\u3001\u6700\u65b0\u540c\u6b65\u65f6\u95f4\u3001\u521b\u5efa\u65f6\u95f4",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u4ed3\u5e93\u72b6\u6001\uff1a\u540c\u6b65\u4e2d\u3001\u5065\u5eb7\u3001\u5f02\u5e38\u3002\u5f02\u5e38\u4e00\u822c\u662f\u4ed3\u5e93\u81ea\u8eab\u6570\u636e\u83b7\u53d6\u66f4\u65b0\u5931\u8d25\u5bfc\u81f4\u3002\u5f02\u5e38\u540e\uff0c\u53ef\u67e5\u770b\u8be6\u7ec6\u62a5\u9519\u4fe1\u606f\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u6700\u65b0\u540c\u6b65\u65f6\u95f4\uff1a\u6307\u4ed3\u5e93\u81ea\u8eab\u8f6e\u8be2\u6570\u636e\u7684\u66f4\u65b0\u65f6\u95f4")))),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"\u76ee\u524d\u4ec5\u652f\u6301\u7cfb\u7edf\u7ba1\u7406\u5458admin\u7ba1\u7406\u4ed3\u5e93")),(0,a.kt)("h2",{id:"\u7f16\u8f91\u7ec4\u4ef6\u4ed3\u5e93"},"\u7f16\u8f91\u7ec4\u4ef6\u4ed3\u5e93"),(0,a.kt)("p",null,"\u64cd\u4f5c\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165","[\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406]","\u9875\u9762\uff0c\u9009\u62e9\u76ee\u6807\u96c6\u7fa4\uff0c\u4ed3\u5e93\u5217\u8868\u4e2d\u627e\u5230\u76ee\u6807\u4ed3\u5e93\uff0c\u70b9\u51fb\u201c\u7f16\u8f91\u201d"),(0,a.kt)("li",{parentName:"ol"},"\u9664\u540d\u79f0\u3001URL\u4e4b\u5916\uff0c\u5176\u4ed6\u9009\u9879\u5747\u53ef\u7f16\u8f91\u3002")),(0,a.kt)("h2",{id:"\u5220\u9664\u7ec4\u4ef6\u4ed3\u5e93"},"\u5220\u9664\u7ec4\u4ef6\u4ed3\u5e93"),(0,a.kt)("p",null,"\u64cd\u4f5c\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165","[\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406]","\u9875\u9762\uff0c\u9009\u62e9\u76ee\u6807\u96c6\u7fa4\uff0c\u4ed3\u5e93\u5217\u8868\u4e2d\u627e\u5230\u76ee\u6807\u4ed3\u5e93\uff0c\u70b9\u51fb\u201c\u5220\u9664\u201d"),(0,a.kt)("li",{parentName:"ol"},"\u4e8c\u6b21\u5f39\u6846\u63d0\u793a\uff1a\u5220\u9664\u7ec4\u4ef6\u4ed3\u5e93\uff0c\u5176\u4e2d\u7ec4\u4ef6\u5c06\u540c\u6b65\u5220\u9664\uff0c\u8bf7\u786e\u8ba4\uff01")))}m.isMDXComponent=!0},4529:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/advanced-config-7f1c558b786223ef7a1623ac2c16df13.png"}}]); \ No newline at end of file diff --git a/assets/js/1bba06cb.a75eee7e.js b/assets/js/1bba06cb.a75eee7e.js deleted file mode 100644 index 00f60b5b3..000000000 --- a/assets/js/1bba06cb.a75eee7e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6513],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>g});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),s=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,p=e.originalType,i=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),m=s(n),u=a,g=m["".concat(i,".").concat(u)]||m[u]||d[u]||p;return n?r.createElement(g,l(l({ref:t},c),{},{components:n})):r.createElement(g,l({ref:t},c))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var p=n.length,l=new Array(p);l[0]=u;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o[m]="string"==typeof e?e:a,l[1]=o;for(var s=2;s{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>d,frontMatter:()=>p,metadata:()=>o,toc:()=>s});var r=n(7462),a=(n(7294),n(3905));const p={sidebar_position:3},l="BFF \u5c42 API \u5f00\u53d1",o={unversionedId:"lowcode-development/development/bff-apis",id:"lowcode-development/development/bff-apis",title:"BFF \u5c42 API \u5f00\u53d1",description:"\u672c\u7ae0\u8282\u5bf9 Kubebb \u7684 BFF \u5c42\u8fdb\u884c\u8be6\u7ec6\u4ecb\u7ecd\uff0c\u5305\u62ec\u5982\u4f55\u4f7f\u7528 GraphQL \u5feb\u901f\u5f00\u53d1 BFF \u5c42\u7684 API",source:"@site/docs/lowcode-development/development/bff-apis.md",sourceDirName:"lowcode-development/development",slug:"/lowcode-development/development/bff-apis",permalink:"/website/docs/lowcode-development/development/bff-apis",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"\u524d\u7aef\u5c42\u57fa\u4e8e\u4f4e\u7801 Kit \u7684\u5f00\u53d1",permalink:"/website/docs/lowcode-development/development/frontend-low-code"},next:{title:"\u53d1\u5e03\u7ec4\u4ef6",permalink:"/website/docs/lowcode-development/development/develop-hello-world"}},i={},s=[{value:"\u67b6\u6784\u6982\u8ff0",id:"\u67b6\u6784\u6982\u8ff0",level:3},{value:"\u5982\u4f55\u5de5\u4f5c\u7684",id:"\u5982\u4f55\u5de5\u4f5c\u7684",level:3},{value:"\u5feb\u901f\u5f00\u59cb",id:"\u5feb\u901f\u5f00\u59cb",level:3},{value:"\u63a8\u8350\u5de5\u5177",id:"\u63a8\u8350\u5de5\u5177",level:3}],c={toc:s},m="wrapper";function d(e){let{components:t,...p}=e;return(0,a.kt)(m,(0,r.Z)({},c,p,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"bff-\u5c42-api-\u5f00\u53d1"},"BFF \u5c42 API \u5f00\u53d1"),(0,a.kt)("p",null,"\u672c\u7ae0\u8282\u5bf9 Kubebb \u7684 BFF \u5c42\u8fdb\u884c\u8be6\u7ec6\u4ecb\u7ecd\uff0c\u5305\u62ec\u5982\u4f55\u4f7f\u7528 GraphQL \u5feb\u901f\u5f00\u53d1 BFF \u5c42\u7684 API"),(0,a.kt)("h3",{id:"\u67b6\u6784\u6982\u8ff0"},"\u67b6\u6784\u6982\u8ff0"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"BFF\u67b6\u6784\u56fe",src:n(3289).Z,width:"601",height:"531"})),(0,a.kt)("p",null,"BFF \u5c42\u662f\u91c7\u7528 ",(0,a.kt)("a",{parentName:"p",href:"https://docs.nestjs.com/"},"NestJS")," \u548c ",(0,a.kt)("a",{parentName:"p",href:"https://graphql.cn/"},"GraphQL"),"\u6784\u5efa\u7684\u4e00\u4e2a\u72ec\u7acb\u7684",(0,a.kt)("a",{parentName:"p",href:"https://nodejs.org/en/about"},"NodeJs"),"\u670d\u52a1\uff0c\u4e3b\u8981\u529f\u80fd\u4e3a\u805a\u5408K8S API\u540e\uff0c\u5bf9\u5916\u63d0\u4f9b\u4e00\u7cfb\u5217OpenAPI\uff0c\u6ee1\u8db3\u524d\u7aef\u9700\u8981\u7684\u3001\u65e0\u5197\u4f59\u3001\u53ef\u9884\u6d4b\u7684\u6570\u636e\u3002"),(0,a.kt)("h3",{id:"\u5982\u4f55\u5de5\u4f5c\u7684"},"\u5982\u4f55\u5de5\u4f5c\u7684"),(0,a.kt)("p",null,"\u5176\u901a\u8fc7 NestJS \u642d\u5efa\u4e86\u4e00\u4e2aNodeJs\u670d\u52a1\uff0c\u4ee5\u63d2\u4ef6\u7684\u5f62\u5f0f\u63a5\u5165 ",(0,a.kt)("a",{parentName:"p",href:"https://www.apollographql.com/docs/apollo-server/"},"Apollo Server")," \u4f5c\u4e3a GraphQL server\uff0c\u63d0\u4f9b\u5ba2\u6237\u7aef\u4f7f\u7528\u7684 GraphQL API\u3002BFF\u4f5c\u4e3a\u627f\u63a5\u524d\u540e\u7aef\u7684\u6865\u6881\uff0c\u901a\u8fc7\u7edf\u4e00\u767b\u5f55\u9875\u9762\uff0c\u4ece\u540e\u7aef\u83b7\u53d6id-token\uff0c\u7528\u6b64token\u8fde\u63a5 ",(0,a.kt)("a",{parentName:"p",href:"https://kubernetes.io/"},"K8s")," APIServer\uff0c\u4ece\u800c\u64cd\u4f5cK8s\u8d44\u6e90\uff08CRUD\uff09\uff1b\u53e6\u5916\u4e5f\u53ef\u6269\u5c55\u63a5\u5165\u5176\u4ed6\u670d\u52a1\uff08\u5982",(0,a.kt)("a",{parentName:"p",href:"https://minio.org.cn/"},"MinIO"),"\u3001",(0,a.kt)("a",{parentName:"p",href:"https://chartmuseum.com/"},"ChartMuseum"),"\u7b49\uff09\u3002"),(0,a.kt)("h3",{id:"\u5feb\u901f\u5f00\u59cb"},"\u5feb\u901f\u5f00\u59cb"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"\u65b0\u5efa NestJS \u9879\u76ee\uff08TypeScript & GraphQL\uff09"),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"npm i -g @nestjs/cli\n\nnest new hello-world --strict\n\npnpm add @nestjs/graphql @nestjs/apollo @apollo/server graphql\n"))),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"\u63a5\u5165 GraphQL"),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre"},"\x3c!-- src/app.module.ts --\x3e\n...\n@Module({\n imports: [\n GraphQLModule.forRoot({\n path: '/bff',\n introspection: true,\n driver: ApolloDriver,\n autoSchemaFile: join(process.cwd(), 'src/schema.gql'),\n sortSchema: true,\n playground: {\n settings: {\n 'request.credentials': 'same-origin',\n 'tracing.hideTracingResponse': true,\n 'queryPlan.hideQueryPlanResponse': true,\n 'schema.polling.interval': 1000 * 60,\n },\n },\n subscriptions: {\n 'graphql-ws': {\n path: '/bff',\n },\n },\n }),\n ExampleModule,\n ],\n controllers: [AppController],\n providers: [AppService],\n})\n...\n"))),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"\u5f00\u53d1\u4e00\u4e2a\u65b0\u7684GraphQL (code first)\u529f\u80fd\u6a21\u5757"),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"nest g res example\n")),(0,a.kt)("p",{parentName:"li"},"\u7565\u5fae\u4fee\u6539\u540e\u8fd0\u884c\u670d\u52a1\uff1ahttp://localhost:3000/bff"),(0,a.kt)("p",{parentName:"li"},(0,a.kt)("img",{alt:"\u8fd0\u884c\u540e\u53ef\u67e5\u770b\u8c03\u8bd5",src:n(5596).Z,width:"3018",height:"1730"})))),(0,a.kt)("ol",{start:4},(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"\u751f\u6210SDK"),(0,a.kt)("blockquote",{parentName:"li"},(0,a.kt)("p",{parentName:"blockquote"},"\u4f7f\u7528 ",(0,a.kt)("a",{parentName:"p",href:"https://the-guild.dev/blog/graphql-codegen-plugin-typescript-swr"},"graphql-codegen-plugin-typescript-swr")," \u751f\u6210\u53ef\u4f9bReact Hook\u76f4\u63a5\u8c03\u7528API\u7684SDK\u3002\u6b64\u5de5\u5177\u6574\u5408\u4e86",(0,a.kt)("a",{parentName:"p",href:"https://the-guild.dev/graphql/codegen"},"GraphQL Code Generator")," (\u5c06 GraphQL schema \u81ea\u52a8\u751f\u6210 GraphQL operations\uff08Typed Queries, Mutations and, Subscriptions\uff09)\u548c ",(0,a.kt)("a",{parentName:"p",href:"https://swr.vercel.app/"},"SWR"),"\u3002")),(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u5b89\u88c5\u4f9d\u8d56"),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"pnpm add -D @graphql-codegen/cli @graphql-codegen/typescript @graphql-codegen/typescript-operations @graphql-codegen/typescript-graphql-request graphql-codegen-plugin-typescript-swr\n"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u7f16\u5199\u914d\u7f6e\u6587\u4ef6",(0,a.kt)("inlineCode",{parentName:"p"},"codegen.yml")),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre"},"\x3c!-- codegen.yml --\x3e\noverwrite: true\ngenerates:\n static/client-sdk/sdk.ts:\n schema: 'http://localhost:3000/bff'\n documents: 'src/**/*.gql'\n plugins:\n - typescript\n - typescript-operations\n - typescript-graphql-request\n - plugin-typescript-swr\nconfig:\n autogenSWRKey: true\n"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u7f16\u5199",(0,a.kt)("inlineCode",{parentName:"p"},".gql"),"\uff0c\u5b9a\u4e49\u524d\u7aef\u53ef\u76f4\u63a5\u8c03\u7528"),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre"},"// src/example/example.gql\n# \u83b7\u53d6\u6837\u4f8b\u8be6\u60c5\nquery getExample($id:Int!) {\n example(id: $id) {\n id\n }\n}\n"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u6267\u884c"),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"npx graphql-codegen\n")))))),(0,a.kt)("h3",{id:"\u63a8\u8350\u5de5\u5177"},"\u63a8\u8350\u5de5\u5177"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("a",{parentName:"p",href:"https://github.com/dayuy/ast-auto-generate"},"generate-nest-module")),(0,a.kt)("blockquote",{parentName:"li"},(0,a.kt)("p",{parentName:"blockquote"},"\u53ef\u5feb\u901f\u751f\u6210\u4e00\u4e2aK8s \u8d44\u6e90\u7684 CRUD \u6a21\u5757\u4ee3\u7801\u3002\u5df2\u88ab\u5e94\u7528\u5728",(0,a.kt)("a",{parentName:"p",href:"https://github.com/kubebb/component-store/tree/main/packages/bff-server/src/subscription"},"component-store"),"\u7684\u5f00\u53d1\u4e2d\u3002")),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"# \u5b89\u88c5\nnpm install -g generate-nest-module\n\n# \u4f7f\u7528\ngennest g res subscription\n")))))}d.isMDXComponent=!0},3289:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/bff_lowcode-77e024bcaba385acbdd2199cdde51a3d.png"},5596:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/playground_graphql-8d597629c7d99fd04d027528b00d343a.jpg"}}]); \ No newline at end of file diff --git a/assets/js/1d408bef.70cf2055.js b/assets/js/1d408bef.70cf2055.js deleted file mode 100644 index 66465cdf0..000000000 --- a/assets/js/1d408bef.70cf2055.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6306],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function c(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=a.createContext({}),s=function(e){var t=a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},d=function(e){var t=s(e.components);return a.createElement(o.Provider,{value:t},e.children)},b="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),b=s(n),u=r,f=b["".concat(o,".").concat(u)]||b[u]||p[u]||i;return n?a.createElement(f,c(c({ref:t},d),{},{components:n})):a.createElement(f,c({ref:t},d))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,c=new Array(i);c[0]=u;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[b]="string"==typeof e?e:r,c[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>c,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var a=n(7462),r=(n(7294),n(3905));const i={sidebar_position:3},c="\u4f7f\u7528\u7b2c\u4e09\u65b9\u7cfb\u7edf\u767b\u5f55",l={unversionedId:"building-base/configuration/3rd-party-account",id:"building-base/configuration/3rd-party-account",title:"\u4f7f\u7528\u7b2c\u4e09\u65b9\u7cfb\u7edf\u767b\u5f55",description:"\u76ee\u524d\u57fa\u4e8e dex \u652f\u6301\u5916\u90e8\u8ba4\u8bc1\u7cfb\u7edf\u7684\u96c6\u6210\uff0c\u5b9e\u73b0\u670d\u52a1\u95e8\u6237\u4e0e\u7b2c\u4e09\u65b9\u8ba4\u8bc1\u7cfb\u7edf\u7684\u7edf\u4e00\u8d26\u53f7\u53ca\u5355\u70b9\u767b\u5f55\u3002",source:"@site/docs/building-base/configuration/3rd-party-account.md",sourceDirName:"building-base/configuration",slug:"/building-base/configuration/3rd-party-account",permalink:"/website/docs/building-base/configuration/3rd-party-account",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"\u81ea\u5b9a\u4e49\u83dc\u5355",permalink:"/website/docs/building-base/configuration/customize-menu"},next:{title:"\u914d\u7f6e\u5ba1\u8ba1\u80fd\u529b",permalink:"/website/docs/building-base/configuration/audit-config"}},o={},s=[{value:"1. Gitlab \u96c6\u6210",id:"1-gitlab-\u96c6\u6210",level:2},{value:"1.1 \u5728 Gitlab \u4e2d\u914d\u7f6e\u5e94\u7528\u8d26\u53f7",id:"11-\u5728-gitlab-\u4e2d\u914d\u7f6e\u5e94\u7528\u8d26\u53f7",level:3}],d={toc:s},b="wrapper";function p(e){let{components:t,...i}=e;return(0,r.kt)(b,(0,a.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u4f7f\u7528\u7b2c\u4e09\u65b9\u7cfb\u7edf\u767b\u5f55"},"\u4f7f\u7528\u7b2c\u4e09\u65b9\u7cfb\u7edf\u767b\u5f55"),(0,r.kt)("p",null,"\u76ee\u524d\u57fa\u4e8e dex \u652f\u6301\u5916\u90e8\u8ba4\u8bc1\u7cfb\u7edf\u7684\u96c6\u6210\uff0c\u5b9e\u73b0\u670d\u52a1\u95e8\u6237\u4e0e\u7b2c\u4e09\u65b9\u8ba4\u8bc1\u7cfb\u7edf\u7684\u7edf\u4e00\u8d26\u53f7\u53ca\u5355\u70b9\u767b\u5f55\u3002"),(0,r.kt)("h2",{id:"1-gitlab-\u96c6\u6210"},"1. Gitlab \u96c6\u6210"),(0,r.kt)("p",null,"\u53c2\u8003\u4ee5\u4e0b\u6b65\u9aa4\u8fdb\u884c Gilab \u767b\u5f55\u7684\u96c6\u6210"),(0,r.kt)("h3",{id:"11-\u5728-gitlab-\u4e2d\u914d\u7f6e\u5e94\u7528\u8d26\u53f7"},"1.1 \u5728 Gitlab \u4e2d\u914d\u7f6e\u5e94\u7528\u8d26\u53f7"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"\u4f7f\u7528root\u7528\u6237\u767b\u5f55\u540e\uff0c\u70b9\u51fb\u53f3\u4e0a\u89d2\u7528\u6237\u7684\u5934\u50cf\uff0c\u7136\u540e\u70b9\u51fb\u504f\u597d\u8bbe\u7f6e\n",(0,r.kt)("img",{alt:"\u56fe 1",src:n(6883).Z,width:"1013",height:"272"})," ")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"\u5728\u5de6\u4fa7\u83dc\u5355\u5bfc\u822a\u5904\u9009\u62e9\u201c\u5e94\u7528\u201d\uff0c\u7136\u540e\u5728\u65b0\u5efa\u5e94\u7528\u4e2d\uff0c\u586b\u5199\u5fc5\u8981\u4fe1\u606f\uff1a"))),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u540d\u79f0\uff1a\u6839\u636e\u9700\u8981\u586b\u5199"),(0,r.kt)("li",{parentName:"ul"},"\u56de\u8c03\u5730\u5740\uff1a/oidc/callback"),(0,r.kt)("li",{parentName:"ul"},"\u8303\u56f4\uff1a\u52fe\u9009 read_user \u548c openid\n",(0,r.kt)("img",{alt:"\u56fe 2",src:n(7248).Z,width:"1158",height:"756"})," ")),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},"\u4fdd\u5b58\u5e94\u7528\uff0c\u70b9\u51fb\u9875\u9762\u4e0b\u521a\u521a\u4fdd\u5b58\u7684\u5e94\u7528\uff0c\u5f97\u5230\u4e0b\u56fe\u3002\n",(0,r.kt)("img",{alt:"\u56fe 3",src:n(7953).Z,width:"660",height:"377"})," ")),(0,r.kt)("p",null,"\u8bb0\u5f55 \u5e94\u7528\u7a0b\u5e8fID\uff08clientid\uff09\u3001\u5bc6\u7801\uff08clientsecret\uff09 \u4ee5\u53ca \u56de\u8c03 URL\uff08redirecturl\uff09\uff0c\u9700\u8981\u5728oidc-server \u7aef\u8fdb\u884c\u76f8\u5e94\u914d\u7f6e\u3002"),(0,r.kt)("ol",{start:4},(0,r.kt)("li",{parentName:"ol"},"\u7f16\u8f91 oidc-server \u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u589e\u52a0\u4e00\u79cd\u65b0\u7684 connector \u914d\u7f6e\uff0c",(0,r.kt)("inlineCode",{parentName:"li"},"kubectl edit cm oidc-server -n u4a-system"),"\uff0c\u6309\u4ee5\u4e0b\u793a\u4f8b\u8fdb\u884c\u914d\u7f6e\uff1a")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"connectors:\n- type: k8scrd\n ...\n- type: gitlab ## \u56fa\u5b9a\u503c gitlab\n name: gitlab ## \u540d\u79f0\n id: gitlab ## \u56fa\u5b9a\u503c gitlab\n config:\n baseURL: http://gitlab.172.22.50.155.nip.io ## gitlab\u5bf9\u5916\u8bbf\u95ee\u7684\u5730\u5740\n clientID: ef2b579e5b4c1cf9ae5b0b2acb166271ebff5892e84aa113689d4646ffcb29e7 ## gitlab\u914d\u7f6e\u7684\u5e94\u7528\u7684clientID\uff0c \u53ef\u5728\u4e0a\u4e00\u6b65\u9aa4\u201d\u914d\u7f6egitlab\u201c\u4e2d\u83b7\u53d6\n clientSecret: 3a9e79368a70bcdf1e4ac1df64e4220e7af798876333c9642a8edb782e6eb558 ## gitlab\u914d\u7f6e\u7684\u5e94\u7528\u7684\u5bc6\u7801\uff0c \u53ef\u5728\u4e0a\u4e00\u6b65\u9aa4\u201d\u914d\u7f6egitlab\u201c\u4e2d\u83b7\u53d6\n redirectURI: https://portal.172.22.96.209.nip.io/oidc/callback ## gitlab\u914d\u7f6e\u7684callback\u5730\u5740\uff0c \u53ef\u5728\u4e0a\u4e00\u6b65\u9aa4\u201d\u914d\u7f6egitlab\u201c\u4e2d\u83b7\u53d6\n")),(0,r.kt)("ol",{start:5},(0,r.kt)("li",{parentName:"ol"},"\u5f00\u542f\u7b2c\u4e09\u65b9\u7cfb\u7edf\u5bf9\u63a5\uff0c\u76ee\u524d\u652f\u6301 gitlab/github \u4e24\u79cd\uff0c\u4ec5\u9700\u8981\u5c06\u5bf9\u5e94\u7684 enabled \u5b57\u6bb5\u8bbe\u7f6e\u4e3a true \u5373\u53ef\u3002")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"kubectl edit connector3rd connector3rd")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'kind: Connector3rd\nmetadata:\n annotations:\n helm.sh/hook: post-install,post-upgrade\n helm.sh/hook-weight: "-5"\n name: connector3rd\nspec:\n connectors:\n - description: gitlab description\n enabled: false # \u4fee\u6539\u4e3a true\n icon: <\u4fdd\u6301\u4e0d\u53d8>\n id: gitlab\n name: gitlab\n - description: github description\n enabled: false\n icon: <\u4fdd\u6301\u4e0d\u53d8>\n id: github\n name: github\n')),(0,r.kt)("ol",{start:6},(0,r.kt)("li",{parentName:"ol"},"\u914d\u7f6e\u5b8c\u6bd5\u540e\uff0c\u91cd\u542f oidc-server \u670d\u52a1\u5373\u53ef\u751f\u6548\uff0c\u6b64\u65f6\u518d\u6b21\u8bbf\u95ee\u767b\u5f55\u9875\u9762\uff0c\u65e2\u53ef\u770b\u5230\u5bf9\u5e94\u7684\u767b\u5f55\u56fe\u6807\u3002")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"\u56fe 4",src:n(1901).Z,width:"394",height:"308"})))}p.isMDXComponent=!0},6883:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/19b4c83b8381c4f6c82d3526ccdbc309014fac7a9f1f502854b9c6251eea03be-a7e3b0636c2d06b310b6c056d9dc9433.png"},7248:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/73946089d53ccbedf6b6c58cbb6cb8c55e3bd650bc3beede41ea1622211d02bd-6a2197fd3e0c38a8d0bf5fb608c0e897.png"},7953:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/7ef885f51a16d83577089c409efafa2583f60d9376d5efc7d03cb7faa4092fbf-250a1a88f6f1ce7c782e15512488f770.png"},1901:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/94ca51f03578085968c8e1ffd03f27606ed0d473e32d5eb511feff0513e4ff11-e58813e7f78df9928cd138aa4d0b3cb9.png"}}]); \ No newline at end of file diff --git a/assets/js/22167790.e613f018.js b/assets/js/22167790.e613f018.js deleted file mode 100644 index 6ab26713a..000000000 --- a/assets/js/22167790.e613f018.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9748],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>k});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var p=a.createContext({}),m=function(e){var n=a.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},s=function(e){var n=m(e.components);return a.createElement(p.Provider,{value:n},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,p=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),c=m(t),d=r,k=c["".concat(p,".").concat(d)]||c[d]||u[d]||l;return t?a.createElement(k,i(i({ref:n},s),{},{components:t})):a.createElement(k,i({ref:n},s))}));function k(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,i=new Array(l);i[0]=d;var o={};for(var p in n)hasOwnProperty.call(n,p)&&(o[p]=n[p]);o.originalType=e,o[c]="string"==typeof e?e:r,i[1]=o;for(var m=2;m{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>l,metadata:()=>o,toc:()=>m});var a=t(7462),r=(t(7294),t(3905));const l={sidebar_position:4},i="\u4ece Helm \u547d\u4ee4\u8fc1\u79fb",o={unversionedId:"core/userguide/helmtofuture",id:"core/userguide/helmtofuture",title:"\u4ece Helm \u547d\u4ee4\u8fc1\u79fb",description:"\u5185\u6838\u88ab\u8bbe\u8ba1\u4e3a\u5c3d\u91cf\u517c\u5bb9 Helm \u547d\u4ee4\uff0c\u5bf9\u4e8e\u4e00\u4e2a\u719f\u6089 Helm \u547d\u4ee4\u7684\u5f00\u53d1\u8005\u6216\u8005\u7528\u6237\uff0c\u4f7f\u7528\u5185\u6838\u5c06\u53d8\u5f97\u5f88\u5bb9\u6613\u3002",source:"@site/docs/core/userguide/helmtofuture.md",sourceDirName:"core/userguide",slug:"/core/userguide/helmtofuture",permalink:"/website/docs/core/userguide/helmtofuture",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"\u201c\u955c\u50cf\u66ff\u6362\u201d\u529f\u80fd\u7684\u5b8c\u6574\u8bf4\u660e",permalink:"/website/docs/core/userguide/imageoverride"},next:{title:"\u7ec4\u4ef6\u5f00\u53d1",permalink:"/website/docs/core/userguide/component-dev"}},p={},m=[{value:"helm repo add \u6dfb\u52a0\u4ed3\u5e93",id:"helm-repo-add-\u6dfb\u52a0\u4ed3\u5e93",level:2},{value:"helm install \u5b89\u88c5 chart",id:"helm-install-\u5b89\u88c5-chart",level:2},{value:"helm upgrade \u66f4\u65b0\u7248\u672c",id:"helm-upgrade-\u66f4\u65b0\u7248\u672c",level:2},{value:"helm uninstall \u5220\u9664 release",id:"helm-uninstall-\u5220\u9664-release",level:2},{value:"helm rollback \u56de\u6eda release",id:"helm-rollback-\u56de\u6eda-release",level:2}],s={toc:m},c="wrapper";function u(e){let{components:n,...t}=e;return(0,r.kt)(c,(0,a.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u4ece-helm-\u547d\u4ee4\u8fc1\u79fb"},"\u4ece Helm \u547d\u4ee4\u8fc1\u79fb"),(0,r.kt)("p",null,"\u5185\u6838\u88ab\u8bbe\u8ba1\u4e3a\u5c3d\u91cf\u517c\u5bb9 Helm \u547d\u4ee4\uff0c\u5bf9\u4e8e\u4e00\u4e2a\u719f\u6089 Helm \u547d\u4ee4\u7684\u5f00\u53d1\u8005\u6216\u8005\u7528\u6237\uff0c\u4f7f\u7528\u5185\u6838\u5c06\u53d8\u5f97\u5f88\u5bb9\u6613\u3002"),(0,r.kt)("h2",{id:"helm-repo-add-\u6dfb\u52a0\u4ed3\u5e93"},"helm repo add \u6dfb\u52a0\u4ed3\u5e93"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"helm repo add bitnami https://charts.bitnami.com/bitnami\n")),(0,r.kt)("p",null,"\u6dfb\u52a0\u4ed3\u5e93\u5bf9\u5e94\u521b\u5efa ",(0,r.kt)("inlineCode",{parentName:"p"},"Repository")," \u8d44\u6e90"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: Repository\nmetadata:\n name: bitnami\nspec:\n url: https://charts.bitnami.com/bitnami\n")),(0,r.kt)("h2",{id:"helm-install-\u5b89\u88c5-chart"},"helm install \u5b89\u88c5 chart"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"cat << EOF > values.yaml\nreplicaCount: 2\nEOF\n\nhelm install nginx bitnami/nginx --version 15.0.2 -f values.yaml --set image.registry=ddd.ccc\n")),(0,r.kt)("p",null,"\u5b89\u88c5 Chart \u5bf9\u5e94\u521b\u5efa ",(0,r.kt)("inlineCode",{parentName:"p"},"ComponentPlan")," \u8d44\u6e90\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: ComponentPlan\nmetadata:\n name: nginx\nspec:\n approved: true\n component:\n name: bitnami.nginx\n namespace: default\n name: nginx\n override:\n valuesFrom:\n - kind: ConfigMap\n name: nginx\n valuesKey: values.yaml\n set:\n - image.registry=ddd.ccc\n version: 15.0.2\n---\napiVersion: v1\nkind: ConfigMap\nmetadata:\n name: nginx\ndata:\n values.yaml: |\n replicaCount: 2\n")),(0,r.kt)("h2",{id:"helm-upgrade-\u66f4\u65b0\u7248\u672c"},"helm upgrade \u66f4\u65b0\u7248\u672c"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"helm upgrade nginx bitnami/nginx --set image.registry=docker.io\n")),(0,r.kt)("p",null,"\u5347\u7ea7\u7248\u672c\uff0c\u8fd9\u91cc\u6709 2 \u4e2a\u65b9\u6cd5\uff1a"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u7528\u65b0\u7684\u914d\u7f6e\u521b\u5efa\u4e00\u4e2a ",(0,r.kt)("inlineCode",{parentName:"li"},"ComponentPlan"),"\uff0c\u53ea\u8981\u4fdd\u8bc1 ",(0,r.kt)("inlineCode",{parentName:"li"},"metadata.namespace"),"\uff08\u5bf9\u5e94 ",(0,r.kt)("inlineCode",{parentName:"li"},"helm release")," \u7684 ",(0,r.kt)("inlineCode",{parentName:"li"},"namespace"),"\uff09\u548c ",(0,r.kt)("inlineCode",{parentName:"li"},"spec.name"),"\uff08\u5bf9\u5e94 ",(0,r.kt)("inlineCode",{parentName:"li"},"helm release")," \u7684 ",(0,r.kt)("inlineCode",{parentName:"li"},"name"),"\uff09\u4e00\u81f4\uff0c\u5c31\u4f1a\u5347\u7ea7\u5bf9\u5e94\u7684 ",(0,r.kt)("inlineCode",{parentName:"li"},"helm release"),"\u3002"),(0,r.kt)("li",{parentName:"ol"},"\u5728\u539f\u6765\u7684 ",(0,r.kt)("inlineCode",{parentName:"li"},"ComponentPlan")," \u57fa\u7840\u4e0a\u4fee\u6539\u3002\u76f8\u6bd4\u8f83\u524d\u8005\uff0c\u8fd9\u79cd\u65b9\u5f0f\u4e0d\u4f1a\u4fdd\u7559\u5386\u53f2\uff0c\u66f4\u7075\u6d3b\u3002\u524d\u4e00\u79cd\u65b9\u5f0f\u53ef\u4ee5\u8fdb\u884c\u56de\u6eda\u3002")),(0,r.kt)("h2",{id:"helm-uninstall-\u5220\u9664-release"},"helm uninstall \u5220\u9664 release"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"helm uninstall nginx\n")),(0,r.kt)("p",null,"\u5220\u9664 release\uff0c\u5bf9\u5e94\u5220\u9664 ",(0,r.kt)("inlineCode",{parentName:"p"},"ComponentPlan"),"\u3002\u56e0\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"ComponentPlan")," \u548c ",(0,r.kt)("inlineCode",{parentName:"p"},"helm release")," \u7684\u5173\u7cfb\u662f\u53ef\u4ee5\u591a\u5bf9\u4e00\uff0c\u8981\u6ce8\u610f\uff0c\u9700\u8981\u5220\u9664 ",(0,r.kt)("inlineCode",{parentName:"p"},"status.latest")," \u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"True"),"\uff08\u8868\u660e\u5f53\u524d ",(0,r.kt)("inlineCode",{parentName:"p"},"ComponentPlan")," \u5bf9\u5e94 ",(0,r.kt)("inlineCode",{parentName:"p"},"helm release")," \u7684\u6700\u65b0\u7248\u672c\uff09\u6216\u8005 ",(0,r.kt)("inlineCode",{parentName:"p"},"status.installedRevision")," \u548c\u5f53\u524d ",(0,r.kt)("inlineCode",{parentName:"p"},"helm release")," \u7248\u672c\u4e00\u81f4\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"Componentplan")),(0,r.kt)("h2",{id:"helm-rollback-\u56de\u6eda-release"},"helm rollback \u56de\u6eda release"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"helm rollback nginx 1\n")),(0,r.kt)("p",null,"\u56de\u6eda\uff0c\u53ea\u9700\u8981\u5728\u60f3\u8981\u56de\u6eda\u5230\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"ComponentPlan")," \u4e0a\u589e\u52a0\u4e00\u4e2a label:",(0,r.kt)("inlineCode",{parentName:"p"},"core.kubebb.k8s.com.cn/rollback: ture")," \u5373\u53ef\u3002"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/22646bfb.ef309b5e.js b/assets/js/22646bfb.ef309b5e.js deleted file mode 100644 index 88876c885..000000000 --- a/assets/js/22646bfb.ef309b5e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2774],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>k});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),s=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),m=s(n),d=a,k=m["".concat(p,".").concat(d)]||m[d]||u[d]||l;return n?r.createElement(k,i(i({ref:t},c),{},{components:n})):r.createElement(k,i({ref:t},c))}));function k(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,i=new Array(l);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[m]="string"==typeof e?e:a,i[1]=o;for(var s=2;s{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var r=n(7462),a=(n(7294),n(3905));const l={sidebar_position:1},i="\u4ecb\u7ecd",o={unversionedId:"lowcode-development/intro",id:"lowcode-development/intro",title:"\u4ecb\u7ecd",description:"\u4f4e\u7801 Kit \u5373\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\uff08\u4ee5\u4e0b\u7b80\u79f0\u201c\u4e91\u68af\u201d\uff09",source:"@site/docs/lowcode-development/intro.md",sourceDirName:"lowcode-development",slug:"/lowcode-development/intro",permalink:"/website/docs/lowcode-development/intro",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"\u4f4e\u7801 Kit",permalink:"/website/docs/category/\u4f4e\u7801-kit"},next:{title:"\u5f00\u53d1\u6a21\u5f0f",permalink:"/website/docs/lowcode-development/development_pattern"}},p={},s=[{value:"\u76ee\u6807",id:"\u76ee\u6807",level:2},{value:"\u67b6\u6784\u6982\u8ff0",id:"\u67b6\u6784\u6982\u8ff0",level:2},{value:"\u7279\u70b9\u548c\u4f18\u52bf",id:"\u7279\u70b9\u548c\u4f18\u52bf",level:2},{value:"\u672a\u6765\u89c4\u5212",id:"\u672a\u6765\u89c4\u5212",level:2}],c={toc:s},m="wrapper";function u(e){let{components:t,...l}=e;return(0,a.kt)(m,(0,r.Z)({},c,l,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u4ecb\u7ecd"},"\u4ecb\u7ecd"),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u4f4e\u7801 Kit \u5373\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\uff08\u4ee5\u4e0b\u7b80\u79f0\u201c\u4e91\u68af\u201d\uff09")),(0,a.kt)("h2",{id:"\u76ee\u6807"},"\u76ee\u6807"),(0,a.kt)("p",null,"\u4e91\u68af\u4f9d\u6258 ",(0,a.kt)("a",{parentName:"p",href:"https://lowcode-engine.cn/index"},"Low-Code Engine"),"\uff08\u4f4e\u4ee3\u7801\u5f15\u64ce\uff09\u548c\u5177\u6709 Git \u7279\u6027\u7684\u5173\u7cfb\u6570\u636e\u5e93 ",(0,a.kt)("a",{parentName:"p",href:"https://www.dolthub.com/"},"Dolt")," \u6253\u9020\uff0c\u76ee\u6807\u662f\u5b9e\u73b0\u4ece\u5f00\u53d1\u3001\u6d4b\u8bd5\u5230\u4e0a\u7ebf\u7684\u5168\u94fe\u8def\u4f4e\u7801\u5316\u3002\u7528\u6237\u53ef\u4ee5\u4f7f\u7528\u4e91\u68af\u8fdb\u884c\u7ec4\u4ef6\u3001\u9875\u9762\u7684\u53ef\u89c6\u5316\u642d\u5efa\uff0c\u4e5f\u53ef\u4ee5\u50cf\u4f7f\u7528 Git \u4e00\u6837\u5bf9\u4f4e\u4ee3\u7801\u5e94\u7528\u8fdb\u884c\u534f\u4f5c\u5f00\u53d1\u548c\u7248\u672c\u7ba1\u7406\u3002"),(0,a.kt)("h2",{id:"\u67b6\u6784\u6982\u8ff0"},"\u67b6\u6784\u6982\u8ff0"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"\u4e91\u68af\u603b\u4f53\u67b6\u6784\u56fe",src:n(268).Z,width:"1146",height:"540"})),(0,a.kt)("p",null,"\u4e91\u68af\u603b\u4f53\u67b6\u6784\u5206\u4e3a\u4e09\u5c42\uff1a"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u6570\u636e\u5e93\u5c42\uff1a\u6570\u636e\u5e93\u91c7\u7528 ",(0,a.kt)("a",{parentName:"li",href:"https://www.dolthub.com/"},"Dolt"),"\uff0cDolt \u53ef\u4ee5\u50cf Git \u4e00\u6837\u7ba1\u7406\u6570\u636e\uff0c\u8fd9\u6837\u4e91\u68af\u5c31\u62e5\u6709\u4e86\u534f\u4f5c\u548c\u7248\u672c\u7ba1\u7406\u80fd\u529b\uff0c\u7528\u6237\u4f7f\u7528\u4e91\u68af\u642d\u5efa\u5e94\u7528\u8ddf\u4f7f\u7528 Git \u5f00\u53d1\u5e94\u7528\u4e00\u6837\uff0c\u53ef\u4ee5\u8fdb\u884c\u591a\u4eba\u534f\u4f5c\u548c\u7248\u672c\u7ba1\u7406"),(0,a.kt)("li",{parentName:"ul"},"\u540e\u7aef yunti-server\uff1a\u540e\u7aef\u57fa\u4e8e ",(0,a.kt)("a",{parentName:"li",href:"https://nestjs.com/"},"Nest.js")," \u5f00\u53d1\uff0c\u901a\u8fc7 ",(0,a.kt)("a",{parentName:"li",href:"https://typeorm.io/"},"TypeOrm")," \u4e0e Dolt \u6570\u636e\u5e93\u8fdb\u884c\u4ea4\u4e92\uff0c\u63d0\u4f9b GraphQL API \u4f9b\u524d\u7aef\u8c03\u7528\uff0c\u4e3a\u4e86\u65b9\u4fbf\u524d\u7aef\u5bf9\u63a5 API\uff0c\u901a\u8fc7 ",(0,a.kt)("a",{parentName:"li",href:"https://the-guild.dev/graphql/codegen"},"GraphQL code generator")," \u5de5\u5177\u751f\u6210\u4e86 API SDK \u5e76\u53d1\u5e03\u6210 npm \u5305\u4f9b\u524d\u7aef\u76f4\u63a5\u4f7f\u7528\uff0c\u964d\u4f4e\u4e86 API \u5bf9\u63a5\u6210\u672c"),(0,a.kt)("li",{parentName:"ul"},"\u524d\u7aef yunti-console\uff1a\u57fa\u4e8e ",(0,a.kt)("a",{parentName:"li",href:"https://umijs.org/"},"Umi.js")," \u5f00\u53d1\uff0c\u4e3b\u8981\u7531\u4ee5\u4e0b 2 \u4e2a\u6a21\u5757\u7ec4\u6210\uff1a",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u4f4e\u4ee3\u7801\u7f16\u8f91\u5668\uff1a\u57fa\u4e8e ",(0,a.kt)("a",{parentName:"li",href:"https://lowcode-engine.cn/index"},"Low-Code Engine")," \u4f4e\u4ee3\u7801\u5f15\u64ce\u6269\u5c55\u800c\u6765\uff0c\u76ee\u524d\u6709\u9875\u9762\u7f16\u8f91\u5668\u548c\u7ec4\u4ef6\u7f16\u8f91\u5668\uff0c\u540e\u671f\u8fd8\u53ef\u4ee5\u6269\u5c55"),(0,a.kt)("li",{parentName:"ul"},"\u5e73\u53f0\u7ba1\u7406\u6a21\u5757\uff1a\u5bf9\u5e94\u7528\u3001\u7ec4\u4ef6\u3001\u533a\u5757\u7b49\u8fdb\u884c\u589e\u5220\u6539\u67e5")))),(0,a.kt)("p",null,"\u8fd8\u6709\u4e00\u4e9b\u57fa\u7840\u8bbe\u65bd\uff0c\u67b6\u6784\u56fe\u4e2d\u6ca1\u6709\u4f53\u73b0\uff0c\u4f8b\u5982\u79c1\u6709 npm \u4ed3\u5e93\u53ca\u79c1\u6709 unpkg \u7b49\u3002"),(0,a.kt)("h2",{id:"\u7279\u70b9\u548c\u4f18\u52bf"},"\u7279\u70b9\u548c\u4f18\u52bf"),(0,a.kt)("p",null,"\u57fa\u4e8e\u4ee5\u4e0a\u67b6\u6784\uff0c\u4e91\u68af\u5177\u6709\u4ee5\u4e0b\u6280\u672f\u7279\u70b9\u548c\u4f18\u52bf\uff1a"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u53ef\u89c6\u5316\u7ec4\u4ef6\u3001\u9875\u9762\u642d\u5efa"),"\uff1a\u901a\u8fc7\u7b80\u5355\u7684\u62d6\u62fd\u5b8c\u6210\u5e94\u7528\u9875\u9762\u5f00\u53d1\uff0c\u5bf9\u524d\u7aef\u6280\u80fd\u6ca1\u6709\u8981\u6c42\u6216\u4e0d\u9700\u8981\u7279\u522b\u4e13\u4e1a\u7684\u4e86\u89e3\uff1b"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u6807\u51c6\u5316\u534f\u8bae"),"\uff1a\u6807\u51c6\u5316\u534f\u8bae\u662f\u4f4e\u4ee3\u7801\u751f\u6001\u7684\u57fa\u7840\uff0c\u662f\u6253\u7834\u7269\u6599\u5b64\u5c9b\u7684\u5173\u952e",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://lowcode-engine.cn/site/docs/specs/lowcode-spec"},"\u300a\u4f4e\u4ee3\u7801\u5f15\u64ce\u642d\u5efa\u534f\u8bae\u89c4\u8303\u300b"),"\uff1a\u63cf\u8ff0\u6e90\u7801\u7269\u6599\u89c4\u8303\u548c\u642d\u5efa\u7269\u6599\u89c4\u8303"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://lowcode-engine.cn/site/docs/specs/material-spec"},"\u300a\u4f4e\u4ee3\u7801\u5f15\u64ce\u7269\u6599\u534f\u8bae\u89c4\u8303\u300b"),"\uff1a\u63cf\u8ff0\u4f4e\u4ee3\u7801\u642d\u5efa\u5e73\u53f0\u4ea7\u7269\u7684 Schema \u7ed3\u6784"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://lowcode-engine.cn/site/docs/specs/assets-spec"},"\u300a\u4f4e\u4ee3\u7801\u5f15\u64ce\u8d44\u4ea7\u5305\u534f\u8bae\u89c4\u8303\u300b"),"\uff1a\u63cf\u8ff0\u4f4e\u4ee3\u7801\u5e73\u53f0\u8d44\u4ea7\u5305\u7ed3\u6784"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u8bbe\u8ba1\u5668\u6613\u4e8e\u6269\u5c55"),"\uff1a\u7269\u6599\u3001\u63d2\u4ef6\u3001\u8bbe\u7f6e\u5668\u7b49\u90fd\u53ef\u4ee5\u6269\u5c55"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u4f18\u79c0\u7684\u51fa\u7801\u80fd\u529b"),"\uff1a\u5b9a\u5236\u5316\u7684\u51fa\u7801\u63d2\u4ef6\uff0c\u53ef\u5c06\u4f4e\u7801\u5e94\u7528\u7684 schema \u8f6c\u5316\u4e3a\u4ee3\u7801\u8f93\u51fa\uff0c\u8f93\u51fa\u7684\u4ee3\u7801\u53ef\u8bfb\u6027\u5f3a\uff0c\u53ef\u4f5c\u4e3a\u57fa\u7840\u5e94\u7528\u505a\u5b9a\u5236\u6269\u5c55\u5f00\u53d1"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u5b8c\u5907\u7684\u534f\u4f5c\u548c\u7248\u672c\u7ba1\u7406\u529f\u80fd\uff1a"),"\u652f\u6301\u50cf\u4f7f\u7528 Git \u4e00\u6837\u5bf9\u4f4e\u4ee3\u7801\u5e94\u7528\u8fdb\u884c\u534f\u4f5c\u642d\u5efa\u548c\u7248\u672c\u7ba1\u7406"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u201cServerless\u201d"),"\uff1a\u65e0\u9700\u5173\u5fc3\u670d\u52a1\u5668\u3001\u6570\u636e\u5e93\u7b49\u5e95\u5c42\u8fd0\u7ef4\u3001\u8ba1\u7b97\u8bbe\u65bd\u8bbe\u5907\u3001\u7f51\u7edc\u7b49\u7b49\u590d\u6742\u6280\u672f\u6982\u5ff5\uff0c\u5177\u5907\u5b89\u5168\u3001\u6027\u80fd\u7684\u7edf\u4e00\u89e3\u51b3\u65b9\u6848\uff0c\u5f00\u53d1\u8005\u53ea\u9700\u8981\u4e13\u6ce8\u4e8e\u4e1a\u52a1\u672c\u8eab\uff1b"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u53ef\u89c6\u5316\u670d\u52a1\u4e0e\u6570\u636e\u5f00\u653e\u3001\u96c6\u6210"),"\uff1a\u5177\u5907\u4e0e\u5176\u4ed6\u7cfb\u7edf\u4e92\u8054\u4e92\u901a\u7684\u914d\u7f6e\uff1b")),(0,a.kt)("h2",{id:"\u672a\u6765\u89c4\u5212"},"\u672a\u6765\u89c4\u5212"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"BFF \u5c42\u4f4e\u7801\u5316\u63a2\u7d22",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u53ef\u89c6\u5316\u6a21\u578b\u8bbe\u8ba1\uff1a\u4e0e\u4e1a\u52a1\u76f8\u5173\u7684\u6570\u636e\u5b58\u50a8\u53d8\u5f97\u66f4\u5bb9\u6613\u7406\u89e3\uff0c\u751a\u81f3\u5927\u591a\u6570\u7b80\u5355\u573a\u666f\u53ef\u4ee5\u505a\u5230\u8868\u5355\u5373\u6a21\u578b\uff0c\u6a21\u578b\u5b57\u6bb5\u7684\u7c7b\u578b\u66f4\u52a0\u4e1a\u52a1\u5316\uff1b"),(0,a.kt)("li",{parentName:"ul"},"API \u7f16\u6392\uff1a\u7f16\u6392 OpenAPI \u7b49\u4e3a BFF \u5c42\u63d0\u4f9b\u6570\u636e\u6e90"))),(0,a.kt)("li",{parentName:"ul"},"\u81ea\u52a8\u5316\u6d4b\u8bd5\uff1a\u63a2\u7d22\u57fa\u4e8e\u4f4e\u7801\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u65b9\u6848"),(0,a.kt)("li",{parentName:"ul"},"AIGC \u8f85\u52a9\u5de5\u5177\uff1a\u63a2\u7d22 AIGC \u5728\u4f4e\u7801\u5e73\u53f0\u7684\u5e94\u7528"),(0,a.kt)("li",{parentName:"ul"},"\u6269\u5c55\u66f4\u591a\u7684\u7f16\u8f91\u5668",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u53ef\u89c6\u5316\u6d41\u7a0b\u8bbe\u8ba1\uff0c\u4e0d\u7ba1\u662f\u4e1a\u52a1\u6d41\u7a0b\u8fd8\u662f\u5ba1\u6279\u6d41\u7a0b\uff0c\u90fd\u53ef\u4ee5\u901a\u8fc7\u7b80\u5355\u7684\u70b9\u7ebf\u8fde\u63a5\u6765\u8fdb\u884c\u914d\u7f6e\uff1b"),(0,a.kt)("li",{parentName:"ul"},"\u53ef\u89c6\u5316\u62a5\u8868\u53ca\u6570\u636e\u5206\u6790\uff1a BI \u6570\u636e\u5206\u6790\u80fd\u529b\u6210\u4e3a\u6807\u914d\uff0c\u968f\u65f6\u968f\u5730\u901a\u8fc7\u62d6\u62fd\u9009\u62e9\u6765\u5b9a\u4e49\u81ea\u5b9a\u4e49\u5206\u6790\u62a5\u8868\uff1b"))),(0,a.kt)("li",{parentName:"ul"},"\u6743\u9650\u3001\u89d2\u8272\u8bbe\u7f6e\u6807\u51c6\u5316\u548c\u4e1a\u52a1\u5316\uff1a\u901a\u8fc7\u7b56\u7565\u89c4\u5219\u914d\u7f6e\u6765\u5c06\u6570\u636e\u3001\u64cd\u4f5c\u7684\u6743\u9650\u8fdb\u884c\u7cbe\u7ec6\u5316\u7ba1\u7406\uff1b")))}u.isMDXComponent=!0},268:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/yunti_arch-b78d802506579d6930bfd849bb573389.svg"}}]); \ No newline at end of file diff --git a/assets/js/2661f043.8fddb686.js b/assets/js/2661f043.8fddb686.js new file mode 100644 index 000000000..4459e6003 --- /dev/null +++ b/assets/js/2661f043.8fddb686.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4535],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>d});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),k=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},s=function(e){var t=k(e.components);return r.createElement(i.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,s=p(e,["components","mdxType","originalType","parentName"]),u=k(n),c=a,d=u["".concat(i,".").concat(c)]||u[c]||m[c]||l;return n?r.createElement(d,o(o({ref:t},s),{},{components:n})):r.createElement(d,o({ref:t},s))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,o=new Array(l);o[0]=c;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[u]="string"==typeof e?e:a,o[1]=p;for(var k=2;k{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>p,toc:()=>k});var r=n(7462),a=(n(7294),n(3905));const l={sidebar_position:1},o="\u603b\u89c8",p={unversionedId:"develop-guid/intro",id:"develop-guid/intro",title:"\u603b\u89c8",description:"KubeBB(Kubernetes Building Blocks)\u662f\u4e00\u79cd\u7531\u5185\u6838\u9a71\u52a8\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u5e73\u53f0\uff0c\u96c6\u6210\u5f00\u7bb1\u5373\u7528\u7684\u4e91\u539f\u751f\u5e95\u5ea7\u548c\u4f4e\u7801\u7ec4\u4ef6\u5f00\u53d1\u80fd\u529b,\u6574\u5408\u5b9e\u73b0\u4e91\u539f\u751f\u4e09\u5c42\u7ec4\u4ef6\u6a21\u5f0f\u3002",source:"@site/docs/develop-guid/intro.md",sourceDirName:"develop-guid",slug:"/develop-guid/intro",permalink:"/website/docs/develop-guid/intro",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406",permalink:"/website/docs/user-guid/repository_anagement"},next:{title:"\u5185\u6838Kit",permalink:"/website/docs/category/\u5185\u6838kit"}},i={},k=[{value:"\u5185\u6838Kit",id:"\u5185\u6838kit",level:2},{value:"1. \u58f0\u660e\u5f0f\u7684\u7ec4\u4ef6\u5168\u751f\u547d\u5468\u671f\u7ba1\u7406",id:"1-\u58f0\u660e\u5f0f\u7684\u7ec4\u4ef6\u5168\u751f\u547d\u5468\u671f\u7ba1\u7406",level:3},{value:"\u63d0\u4f9b\u56db\u4e2a\u6838\u5fc3\u7684CRD\u5b9e\u73b0:",id:"\u63d0\u4f9b\u56db\u4e2a\u6838\u5fc3\u7684crd\u5b9e\u73b0",level:4},{value:"\u4e00\u4e2a\u6269\u5c55CRD\u5b9e\u73b0,\u96c6\u6210Tekton Pipeline:",id:"\u4e00\u4e2a\u6269\u5c55crd\u5b9e\u73b0\u96c6\u6210tekton-pipeline",level:4},{value:"2. \u5f00\u653e\u7ec4\u4ef6\u5e02\u573a",id:"2-\u5f00\u653e\u7ec4\u4ef6\u5e02\u573a",level:3},{value:"\u5e95\u5ea7Kit",id:"\u5e95\u5ea7kit",level:2},{value:"\u4f4e\u7801 Kit",id:"\u4f4e\u7801-kit",level:2},{value:"\u6280\u672f\u67b6\u6784",id:"\u6280\u672f\u67b6\u6784",level:2},{value:"\u83b7\u53d6\u66f4\u591a\u7ec4\u4ef6",id:"\u83b7\u53d6\u66f4\u591a\u7ec4\u4ef6",level:2}],s={toc:k},u="wrapper";function m(e){let{components:t,...l}=e;return(0,a.kt)(u,(0,r.Z)({},s,l,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u603b\u89c8"},"\u603b\u89c8"),(0,a.kt)("p",null,"KubeBB(Kubernetes Building Blocks)\u662f\u4e00\u79cd\u7531",(0,a.kt)("a",{parentName:"p",href:"./core/intro"},(0,a.kt)("strong",{parentName:"a"},"\u5185\u6838")),"\u9a71\u52a8\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u5e73\u53f0\uff0c\u96c6\u6210\u5f00\u7bb1\u5373\u7528\u7684",(0,a.kt)("a",{parentName:"p",href:"./building-base/intro"},(0,a.kt)("strong",{parentName:"a"},"\u4e91\u539f\u751f\u5e95\u5ea7")),"\u548c",(0,a.kt)("a",{parentName:"p",href:"./lowcode-development/intro"},(0,a.kt)("strong",{parentName:"a"},"\u4f4e\u7801\u7ec4\u4ef6\u5f00\u53d1")),"\u80fd\u529b,\u6574\u5408\u5b9e\u73b0",(0,a.kt)("a",{parentName:"p",href:"./lowcode-development/development_pattern"},(0,a.kt)("strong",{parentName:"a"},"\u4e91\u539f\u751f\u4e09\u5c42\u7ec4\u4ef6\u6a21\u5f0f")),"\u3002"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"overview",src:n(8546).Z,width:"943",height:"639"})),(0,a.kt)("p",null,"Kubebb\u63d0\u4f9b\u4e09\u4e2a",(0,a.kt)("strong",{parentName:"p"},"\u5957\u4ef6"),"\uff1a"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./core/intro"},(0,a.kt)("strong",{parentName:"a"},"\u5185\u6838 Kit")))),(0,a.kt)("p",null,"\u63d0\u4f9b",(0,a.kt)("strong",{parentName:"p"},"\u58f0\u660e\u5f0f\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u548c\u7ec4\u4ef6\u5e02\u573a"),",\u5e76\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"Tekton\u6d41\u6c34\u7ebf"),"\u5f3a\u5316\u4f4e\u4ee3\u7801\u5e73\u53f0\u7ec4\u4ef6\u4e0e\u5e95\u5ea7\u670d\u52a1\u7684\u96c6\u6210\u3002"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./building-base/intro"},(0,a.kt)("strong",{parentName:"a"},"\u5e95\u5ea7 Kit")))),(0,a.kt)("p",null,"\u63d0\u4f9b\u5f00\u7bb1\u5373\u7528\u7684\u4e91\u539f\u751f\u670d\u52a1\u95e8\u6237\uff0c\u5305\u62ec",(0,a.kt)("strong",{parentName:"p"},"\u7528\u6237\u3001OIDC\u8ba4\u8bc1\u3001\u6743\u9650\u3001\u5ba1\u8ba1\u3001\u79df\u6237\u7ba1\u7406\u3001\u95e8\u6237\u670d\u52a1\u7b49\u57fa\u7840\u7ec4\u4ef6\u4ee5\u53ca\u8bc1\u4e66\u7ba1\u7406\u3001Nignx Ingress"),"\u7b49\u96c6\u7fa4\u7ec4\u4ef6\u3002"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./lowcode-development/intro"},(0,a.kt)("strong",{parentName:"a"},"\u4f4e\u7801 Kit")))),(0,a.kt)("p",null,"\u4f4e\u7801 Kit \u5373\u4e91\u68af\u4f4e\u4ee3\u7801\u5e73\u53f0\uff0c\u4f9d\u6258 ",(0,a.kt)("a",{parentName:"p",href:"https://lowcode-engine.cn/index"},(0,a.kt)("strong",{parentName:"a"},"Low-Code Engine"))," \u548c\u5177\u6709 Git \u7279\u6027\u7684\u5173\u7cfb\u6570\u636e\u5e93 ",(0,a.kt)("a",{parentName:"p",href:"https://www.dolthub.com/"},(0,a.kt)("strong",{parentName:"a"},"Dolt"))," \u6253\u9020\uff0c\u5e76\u501f\u52a9\u5e95\u5ea7\u95e8\u6237\u7684",(0,a.kt)("strong",{parentName:"p"},"\u83dc\u5355\u548c\u8def\u7531\u8d44\u6e90"),"\u4ee5\u53ca\u5185\u6838\u5957\u4ef6\u7684",(0,a.kt)("strong",{parentName:"p"},"\u7ec4\u4ef6\u7ba1\u7406"),"\u80fd\u529b\uff0c\u5b9e\u73b0\u7ec4\u4ef6\u5f00\u53d1\u3001\u6d4b\u8bd5\u5230\u4e0a\u7ebf\u7684\u5168\u94fe\u8def\u80fd\u529b\u3002"),(0,a.kt)("p",null,"\u4e09\u4e2a\u6838\u5fc3\u5957\u4ef6\u4e4b\u95f4\u7684\u5173\u7cfb\u53ef\u4ee5\u7c7b\u6bd4\u4e00\u4e0b",(0,a.kt)("strong",{parentName:"p"},"\u64cd\u4f5c\u7cfb\u7edf"),":"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Kubernetes")," ~ ",(0,a.kt)("strong",{parentName:"li"},"\u64cd\u4f5c\u7cfb\u7edf\u5185\u6838")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Core")," ~ ",(0,a.kt)("strong",{parentName:"li"},"\u8f6f\u4ef6\u5b89\u88c5\u5668")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u5e95\u5ea7Kit")," ~ ",(0,a.kt)("strong",{parentName:"li"},"\u64cd\u4f5c\u7cfb\u7edf\u7684\u7cfb\u7edf\u8f6f\u4ef6\uff0c\u5982GUI\u3001\u7528\u6237\u7cfb\u7edf\u3001\u7f51\u7edc\u7b49")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u4f4e\u7801\u7ec4\u4ef6\u5f00\u53d1Kit")," ~ ",(0,a.kt)("strong",{parentName:"li"},"\u64cd\u4f5c\u7cfb\u7edf\u8f6f\u4ef6\u5f00\u53d1\u5de5\u5177"))),(0,a.kt)("h2",{id:"\u5185\u6838kit"},"\u5185\u6838Kit"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"\u5185\u6838Kit"),"\u7684\u662f\u73b0\u9636\u6bb5\u6211\u4eec\u91cd\u70b9\u5173\u6ce8\u5e76\u7814\u53d1\u7684",(0,a.kt)("a",{parentName:"p",href:"https://github.com/kubebb/core"},(0,a.kt)("strong",{parentName:"a"},"\u9879\u76ee")),",\u5b8c\u5168\u9075\u5faa\u5f00\u6e90\u9879\u76ee\u7ba1\u7406\u89c4\u8303\u3002\u73b0\u9636\u6bb5\u6211\u4eec\u7684\u76ee\u6807:"),(0,a.kt)("h3",{id:"1-\u58f0\u660e\u5f0f\u7684\u7ec4\u4ef6\u5168\u751f\u547d\u5468\u671f\u7ba1\u7406"},"1. \u58f0\u660e\u5f0f\u7684\u7ec4\u4ef6\u5168\u751f\u547d\u5468\u671f\u7ba1\u7406"),(0,a.kt)("p",null,"\u57fa\u4e8e",(0,a.kt)("a",{parentName:"p",href:"https://kubernetes.io/docs/concepts/extend-kubernetes/operator/"},(0,a.kt)("strong",{parentName:"a"},"Operator Pattern")),"\u5f00\u53d1,\u5b9e\u73b0\u58f0\u660e\u5f0f\u7684\u7ec4\u4ef6\u5168\u751f\u547d\u5468\u671f\u7ba1\u7406\u3002"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"component-lifecycle",src:n(7228).Z,width:"752",height:"522"})),(0,a.kt)("h4",{id:"\u63d0\u4f9b\u56db\u4e2a\u6838\u5fc3\u7684crd\u5b9e\u73b0"},"\u63d0\u4f9b\u56db\u4e2a\u6838\u5fc3\u7684CRD\u5b9e\u73b0:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./core/concepts/repository"},(0,a.kt)("strong",{parentName:"a"},"Repository\u7ec4\u4ef6\u4ed3\u5e93")))),(0,a.kt)("p",null,"\u5b9a\u4e49\u4e86\u7ec4\u4ef6\u4ed3\u5e93\u7684\u8bbf\u95ee\u4fe1\u606f\u3001\u8f6e\u8be2\u7b56\u7565\u548c\u8fc7\u6ee4\u9009\u9879\uff0c\u4ece\u800c\u5b9e\u73b0\u5468\u671f\u6027\u5730\u5411\u4ed3\u5e93\u670d\u52a1\u83b7\u53d6\u6700\u65b0\u7684\u7ec4\u4ef6\u5217\u8868\u4fe1\u606f\u3002"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./core/concepts/component"},(0,a.kt)("strong",{parentName:"a"},"Component\u7ec4\u4ef6")))),(0,a.kt)("p",null,"\u8bb0\u5f55\u7ec4\u4ef6\u7684\u57fa\u7840\u63cf\u8ff0\u3001\u7248\u672c\u5217\u8868\u3001\u662f\u5426\u5e9f\u5f03\u7b49\u4fe1\u606f"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./core/concepts/componentplan"},(0,a.kt)("strong",{parentName:"a"},"ComponentPlan\u7ec4\u4ef6\u90e8\u7f72")))),(0,a.kt)("p",null,"\u5b9a\u4e49\u7ec4\u4ef6\u5b89\u88c5\u90e8\u7f72\u7684\u624b\u52a8\u6279\u51c6\u3001\u7ec4\u4ef6\u5f15\u7528\u3001\u7248\u672c\u8bbe\u7f6e\u3001\u7c7bhelm\u7684\u914d\u7f6e\u8986\u76d6\u7b56\u7565\uff0c\u4ece\u800c\u5b9e\u73b0\u7ec4\u4ef6\u7684\u53ef\u8ffd\u8e2a\u90e8\u7f72\u3001\u5347\u7ea7\u548c\u56de\u6eda\u3002"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./core/concepts/subscription"},(0,a.kt)("strong",{parentName:"a"},"Subscription\u7ec4\u4ef6\u8ba2\u9605")))),(0,a.kt)("p",null,"\u5b9a\u4e49\u4e86\u7528\u6237\u8ba2\u9605\u7ec4\u4ef6\u7248\u672c\u66f4\u65b0"),(0,a.kt)("h4",{id:"\u4e00\u4e2a\u6269\u5c55crd\u5b9e\u73b0\u96c6\u6210tekton-pipeline"},"\u4e00\u4e2a\u6269\u5c55CRD\u5b9e\u73b0,\u96c6\u6210",(0,a.kt)("a",{parentName:"h4",href:"https://tekton.dev/"},(0,a.kt)("strong",{parentName:"a"},"Tekton Pipeline")),":"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./core/rating"},(0,a.kt)("strong",{parentName:"a"},"Rating\u7ec4\u4ef6\u8bc4\u7ea7")))),(0,a.kt)("h3",{id:"2-\u5f00\u653e\u7ec4\u4ef6\u5e02\u573a"},"2. \u5f00\u653e\u7ec4\u4ef6\u5e02\u573a"),(0,a.kt)("p",null,"\u7ec4\u4ef6\u5e02\u573a\u662f\u5185\u6838\u80fd\u529b\u7684",(0,a.kt)("strong",{parentName:"p"},"\u4ea7\u54c1\u5316"),"\uff0c\u4f5c\u4e3a\u4e00\u4e2a\u9002\u914d",(0,a.kt)("strong",{parentName:"p"},"\u5e95\u5ea7\u670d\u52a1\u7684\u7ec4\u4ef6"),"\u53d1\u5e03\u5230\u5b98\u65b9\u7ec4\u4ef6\u4ed3\u5e93\u4e2d\u4f7f\u7528\uff0c\u6269\u5c55KubeBB\u751f\u6001\u3002"),(0,a.kt)("h2",{id:"\u5e95\u5ea7kit"},"\u5e95\u5ea7Kit"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"\u5e95\u5ea7Kit"),"\u901a\u8fc7\u96c6\u6210\u4ee5\u4e0b\u7ec4\u4ef6\u4ece\u800c\u63d0\u4f9b\u7edf\u4e00\u7684\u8ba4\u8bc1\u4e2d\u5fc3\u548c\u95e8\u6237\u5165\u53e3:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("inlineCode",{parentName:"p"},"u4a-component")," \u63d0\u4f9b\u8d26\u53f7\u3001\u8ba4\u8bc1\u3001\u6743\u9650\u53ca\u5ba1\u8ba1\u7ba1\u7406\u529f\u80fd\uff0c\u5305\u542b\u4ee5\u4e0b\u4e3b\u8981\u8d44\u6599"),(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.nginx.com/nginx-ingress-controller/"},"nginx ingress")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://cert-manager.io/"},"cert-manager")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/dexidp/dex"},"\u57fa\u4e8e dex \u6784\u5efa")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/clastix/capsule"},"\u591a\u79df\u6237\u57fa\u4e8e capsule \u6784\u5efa")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/jetstack/kube-oidc-proxy"},"oidc-proxy \u57fa\u4e8e kube-oidc-proxy \u6784\u5efa"))))),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"portal",src:n(3317).Z,width:"1918",height:"848"})),(0,a.kt)("h2",{id:"\u4f4e\u7801-kit"},"\u4f4e\u7801 Kit"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"\u4f4e\u7801 Kit"),"\u63d0\u4f9b",(0,a.kt)("a",{parentName:"p",href:"./lowcode-development/development_pattern"},(0,a.kt)("strong",{parentName:"a"},"\u4e09\u5c42\u7ec4\u4ef6\u5f00\u53d1\u6a21\u5f0f")),"\u4e2d\u7684",(0,a.kt)("a",{parentName:"p",href:"./lowcode-development/development/frontend"},(0,a.kt)("strong",{parentName:"a"},"\u524d\u7aef\u6a21\u5757\u7814\u53d1")),"\u3001\u51fa\u7801\u80fd\u529b\uff0c\u5e76\u501f\u52a9",(0,a.kt)("strong",{parentName:"p"},"\u5185\u6838 Kit"),"\u5b8c\u6210\u6807\u51c6\u5316\u6253\u5305\u3001\u6d4b\u8bd5\u3001\u53d1\u5e03\uff0c\u540e\u7eed BFF \u5c42\u4e5f\u4f1a\u63a2\u7d22\u4f4e\u7801\u7684\u5f00\u53d1\u6a21\u5f0f\u3002"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"lowcode_development",src:n(5155).Z,width:"1644",height:"1118"})),(0,a.kt)("h2",{id:"\u6280\u672f\u67b6\u6784"},"\u6280\u672f\u67b6\u6784"),(0,a.kt)("p",null,"\u5e73\u53f0\u5f00\u53d1\u91c7\u53d6\u524d\u540e\u7aef\u5206\u79bb\uff0c\u4ee5 K8S \u4e3a\u6838\u5fc3\u7684\u5f00\u53d1\u6846\u67b6\uff0c\u9075\u5faa K8S \u7684\u6269\u5c55\u673a\u5236\u53ca API \u89c4\u8303\uff0c\u6574\u4f53\u5f00\u53d1\u67b6\u6784\u7684\u57fa\u672c\u903b\u8f91\u5982\u4e0b\u56fe\u6240\u793a\uff1a\n",(0,a.kt)("img",{alt:"\u56fe 2",src:n(326).Z,width:"1089",height:"724"})),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u6240\u6709\u7ec4\u4ef6\u7684\u5f00\u53d1\u3001\u6269\u5c55\u7684\u8ba4\u8bc1\u90fd\u901a\u8fc7\u7edf\u4e00\u8ba4\u8bc1\u4e2d\u5fc3\u8fdb\u884c\u8ba4\u8bc1"),(0,a.kt)("li",{parentName:"ol"},"\u8ba4\u8bc1\u7531\u5fae\u524d\u7aef\u7684\u4e3b\u6846\u67b6 DockApp \u7edf\u4e00\u8fdb\u884c\uff0c\u5176\u4ed6\u5fae\u524d\u7aef\u7684\u6269\u5c55\u4e0d\u9700\u8981\u5355\u72ec\u652f\u6301\u540c\u8ba4\u8bc1\u4e2d\u5fc3\u7684\u5904\u7406"),(0,a.kt)("li",{parentName:"ol"},"\u5f00\u53d1\u67b6\u6784\u4e0a\u6574\u4f53\u53ef\u4ee5\u6309\u7167\u4e09\u5c42\u6765\u770b")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u7b2c\u4e00\u5c42\uff0c\u524d\u7aef\u91c7\u7528\u5fae\u524d\u7aef\u67b6\u6784\uff0c\u5c3d\u91cf\u91c7\u7528\u4f4e\u4ee3\u7801\u65b9\u5f0f\u8fdb\u884c\u5f00\u53d1\uff0c\u63d0\u9ad8\u4ee3\u7801\u81ea\u52a8\u5316\u751f\u6210\u6bd4\u4f8b"),(0,a.kt)("li",{parentName:"ul"},"\u7b2c\u4e8c\u5c42\uff0c\u6839\u636e\u4e1a\u52a1\u9700\u6c42\u589e\u52a0 OpenAPI\uff0c\u5f62\u6210\u7edf\u4e00\u7684 BFF \u5c42\uff0c\u5bf9 API \u8fdb\u884c\u805a\u5408\uff0c\u63d0\u4f9b\u524d\u7aef\u6240\u9700\u8981\u7684\u4e1a\u52a1\u573a\u666f\u6570\u636e"),(0,a.kt)("li",{parentName:"ul"},"\u540e\u7aef\u91c7\u7528 CRD + controller \u7684 Operator \u6a21\u5f0f\u8fdb\u884c\u5f00\u53d1\uff0c\u5f62\u6210\u6570\u636e\u9a71\u52a8\u7684\u6d41\u7a0b\u5f00\u53d1\u6a21\u5f0f")),(0,a.kt)("ol",{start:4},(0,a.kt)("li",{parentName:"ol"},"\u5bf9\u5916 API \u4e3b\u8981\u5305\u62ec\u4e24\u90e8\u5206\uff1a")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u4ece BFF \u5c42\u63d0\u4f9b\u7684 OpenAPI"),(0,a.kt)("li",{parentName:"ul"},"\u4ece K8S \u5c42\u63d0\u4f9b\u7684\u8d44\u6e90 API")),(0,a.kt)("h2",{id:"\u83b7\u53d6\u66f4\u591a\u7ec4\u4ef6"},"\u83b7\u53d6\u66f4\u591a\u7ec4\u4ef6"),(0,a.kt)("p",null,"\u6d4f\u89c8 ",(0,a.kt)("a",{parentName:"p",href:"/docs/category/%E7%BB%84%E4%BB%B6%E5%B8%82%E5%9C%BA"},"\u7ec4\u4ef6\u5e02\u573a"),"\uff0c\u5b89\u88c5\u66f4\u591a\u9700\u8981\u7684\u670d\u52a1\u7ec4\u4ef6\u5230\u95e8\u6237\u4e2d\uff0c\u6bd4\u5982\uff1a"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/website/docs/develop-guid/component-market/kubedashboard"},"kubedashboard")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/website/docs/develop-guid/component-market/kubelogin"},"kubelogin"))))}m.isMDXComponent=!0},326:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/6b8d0cb645caee89c8df55940f5c5b3379940f8714667f8fb2dc780f3442b8f0-8fbc2a4fd6aeaaa23274c226eb811799.png"},7228:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/component-lifecycle.drawio-64de9e9f4e72adad8cdc532e11e9cab8.png"},8546:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/kubebb_overview.drawio-28cfaba13e7b70d148500fd399d0dde3.png"},3317:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/kubebb_portal-874bc2358e619fc78d9a674231e468b9.png"},5155:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/lowcode-development-a62899bc77702b09922121532be59d41.png"}}]); \ No newline at end of file diff --git a/assets/js/2be451b9.0358b163.js b/assets/js/2be451b9.1f514c48.js similarity index 66% rename from assets/js/2be451b9.0358b163.js rename to assets/js/2be451b9.1f514c48.js index 998b375b2..203965ffe 100644 --- a/assets/js/2be451b9.0358b163.js +++ b/assets/js/2be451b9.1f514c48.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[638],{3091:e=>{e.exports=JSON.parse('{"title":"\u7ec4\u4ef6\u5f00\u53d1","description":"\u57fa\u4e8e Kubebb \u5f00\u53d1\u81ea\u5df1\u670d\u52a1\u7ec4\u4ef6\uff0c\u5e76\u6dfb\u52a0\u5230\u670d\u52a1\u95e8\u6237","slug":"/category/\u7ec4\u4ef6\u5f00\u53d1","permalink":"/website/docs/category/\u7ec4\u4ef6\u5f00\u53d1","navigation":{"previous":{"title":"\u5f00\u53d1\u6a21\u5f0f","permalink":"/website/docs/lowcode-development/development_pattern"},"next":{"title":"\u524d\u7aef\u5c42\u5f00\u53d1","permalink":"/website/docs/lowcode-development/development/frontend"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[638],{3091:e=>{e.exports=JSON.parse('{"title":"\u7ec4\u4ef6\u5f00\u53d1","description":"\u57fa\u4e8e Kubebb \u5f00\u53d1\u81ea\u5df1\u670d\u52a1\u7ec4\u4ef6\uff0c\u5e76\u6dfb\u52a0\u5230\u670d\u52a1\u95e8\u6237","slug":"/category/\u7ec4\u4ef6\u5f00\u53d1","permalink":"/website/docs/category/\u7ec4\u4ef6\u5f00\u53d1","navigation":{"previous":{"title":"\u5f00\u53d1\u6a21\u5f0f","permalink":"/website/docs/develop-guid/lowcode-development/development_pattern"},"next":{"title":"\u524d\u7aef\u5c42\u5f00\u53d1","permalink":"/website/docs/develop-guid/lowcode-development/development/frontend"}}}')}}]); \ No newline at end of file diff --git a/assets/js/35308eea.7962b2aa.js b/assets/js/35308eea.7962b2aa.js new file mode 100644 index 000000000..29b41c6b8 --- /dev/null +++ b/assets/js/35308eea.7962b2aa.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8480],{3905:(t,e,n)=>{n.d(e,{Zo:()=>k,kt:()=>s});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function i(t){for(var e=1;e=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var o=a.createContext({}),m=function(t){var e=a.useContext(o),n=e;return t&&(n="function"==typeof t?t(e):i(i({},e),t)),n},k=function(t){var e=m(t.components);return a.createElement(o.Provider,{value:e},t.children)},u="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},g=a.forwardRef((function(t,e){var n=t.components,r=t.mdxType,l=t.originalType,o=t.parentName,k=p(t,["components","mdxType","originalType","parentName"]),u=m(n),g=r,s=u["".concat(o,".").concat(g)]||u[g]||d[g]||l;return n?a.createElement(s,i(i({ref:e},k),{},{components:n})):a.createElement(s,i({ref:e},k))}));function s(t,e){var n=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var l=n.length,i=new Array(l);i[0]=g;var p={};for(var o in e)hasOwnProperty.call(e,o)&&(p[o]=e[o]);p.originalType=t,p[u]="string"==typeof t?t:r,i[1]=p;for(var m=2;m{n.r(e),n.d(e,{assets:()=>o,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>p,toc:()=>m});var a=n(7462),r=(n(7294),n(3905));const l={sidebar_position:2},i="\u529f\u80fd\u4ecb\u7ecd",p={unversionedId:"develop-guid/core/rating/rating",id:"develop-guid/core/rating/rating",title:"\u529f\u80fd\u4ecb\u7ecd",description:"\u7ec4\u4ef6\u8bc4\u6d4b\u7684\u76ee\u7684\u662f\u901a\u8fc7\u5c3d\u53ef\u80fd\u591a\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u4ece\u591a\u4e2a\u7ef4\u5ea6\u6765\u8bc4\u4f30\u4e00\u4e2a\u7ec4\u4ef6\u3002\u56e0\u6b64\uff0c\u7ec4\u4ef6\u8bc4\u6d4b\u4e09\u4e2a\u90e8\u5206\u7684\u5185\u5bb9:",source:"@site/docs/develop-guid/core/rating/rating.md",sourceDirName:"develop-guid/core/rating",slug:"/develop-guid/core/rating/",permalink:"/website/docs/develop-guid/core/rating/",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"\u5feb\u901f\u90e8\u7f72",permalink:"/website/docs/develop-guid/core/rating/enablerating"},next:{title:"\u5e95\u5ea7Kit",permalink:"/website/docs/category/\u5e95\u5ea7kit"}},o={},m=[{value:"\u6838\u5fc3\u6d41\u7a0b",id:"\u6838\u5fc3\u6d41\u7a0b",level:2},{value:"\u4efb\u52a1\u5217\u8868",id:"\u4efb\u52a1\u5217\u8868",level:2},{value:"\u5b89\u5168\u6027\u4efb\u52a1",id:"\u5b89\u5168\u6027\u4efb\u52a1",level:3},{value:"\u53ef\u9760\u6027\u4efb\u52a1",id:"\u53ef\u9760\u6027\u4efb\u52a1",level:3},{value:"\u53ef\u7528\u6027\u4efb\u52a1",id:"\u53ef\u7528\u6027\u4efb\u52a1",level:3}],k={toc:m},u="wrapper";function d(t){let{components:e,...n}=t;return(0,r.kt)(u,(0,a.Z)({},k,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u529f\u80fd\u4ecb\u7ecd"},"\u529f\u80fd\u4ecb\u7ecd"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u7ec4\u4ef6\u8bc4\u6d4b"),"\u7684\u76ee\u7684\u662f\u901a\u8fc7\u5c3d\u53ef\u80fd\u591a\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u4ece\u591a\u4e2a\u7ef4\u5ea6\u6765\u8bc4\u4f30\u4e00\u4e2a\u7ec4\u4ef6\u3002\u56e0\u6b64\uff0c",(0,r.kt)("strong",{parentName:"p"},"\u7ec4\u4ef6\u8bc4\u6d4b"),"\u4e09\u4e2a\u90e8\u5206\u7684\u5185\u5bb9:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u5b9a\u4e49\u5e76\u5b8c\u6210\u7ec4\u4ef6\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5"),(0,r.kt)("li",{parentName:"ul"},"\u6536\u96c6\u5904\u7406\u6d4b\u8bd5\u6570\u636e"),(0,r.kt)("li",{parentName:"ul"},"\u8bc4\u4f30\u83b7\u53d6\u7ec4\u4ef6\u7b49\u7ea7")),(0,r.kt)("p",null,"\u4e3a\u4e86\u5b9e\u73b0\u4e0a\u8ff0\u63d0\u5230\u7684\u4e09\u4e2a\u90e8\u5206\u7684\u5185\u5bb9\uff0c\u6211\u4eec\u9009\u62e9:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u901a\u8fc7",(0,r.kt)("a",{parentName:"li",href:"https://github.com/kubebb/core/tree/main/pipeline/rating"},(0,r.kt)("strong",{parentName:"a"},"Tekton")),"\u4ece",(0,r.kt)("strong",{parentName:"li"},"\u5b89\u5168\u6027"),"\u3001",(0,r.kt)("strong",{parentName:"li"},"\u53ef\u9760\u6027"),"\u3001",(0,r.kt)("strong",{parentName:"li"},"\u53ef\u7528\u6027"),"\u4e09\u4e2a\u7ef4\u5ea6\u5b9a\u4e49\u591a\u79cd\u4efb\u52a1\u6765\u5b8c\u6210\u81ea\u52a8\u5316\u7ec4\u4ef6\u6d4b\u8bd5"),(0,r.kt)("li",{parentName:"ul"},"\u5b9a\u4e49",(0,r.kt)("strong",{parentName:"li"},"CRD Rating"),"\u53ca\u5176\u63a7\u5236\u5668,\u5b9e\u65f6\u76d1\u542c",(0,r.kt)("strong",{parentName:"li"},"Tekton"),"\u8d44\u6e90,\u6536\u96c6\u6d4b\u8bd5\u6570\u636e"),(0,r.kt)("li",{parentName:"ul"},"\u901a\u8fc7",(0,r.kt)("strong",{parentName:"li"},"KubeAGI/arcadia"),"\u5b9e\u73b0AI\u5236\u5b9a\u7ec4\u4ef6\u8bc4\u4f30\u89c4\u5219\uff0c\u5e76\u57fa\u4e8e\u6d4b\u8bd5\u6570\u636e\u5b9e\u65f6\u66f4\u65b0\u7ec4\u4ef6\u7b49\u7ea7")),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},"\u53c2\u8003",(0,r.kt)("a",{parentName:"li",href:"/website/docs/develop-guid/core/rating/enablerating"},"\u542f\u7528\u7ec4\u4ef6\u8bc4\u6d4b"),"\u5feb\u901f\u90e8\u7f72Rating"),(0,r.kt)("li",{parentName:"ul"},"\u53c2\u8003",(0,r.kt)("a",{parentName:"li",href:"/website/docs/develop-guid/core/concepts/rating"},"\u7ec4\u4ef6\u8bc4\u6d4b\u6982\u5ff5"),"\u4e86\u89e3Rating\u7684\u5b9e\u73b0\u539f\u7406"))),(0,r.kt)("h2",{id:"\u6838\u5fc3\u6d41\u7a0b"},"\u6838\u5fc3\u6d41\u7a0b"),(0,r.kt)("p",null,(0,r.kt)("img",{parentName:"p",src:"https://raw.githubusercontent.com/kubebb/core/main/assets/rating_flow.drawio.png",alt:"rating_workflow"})),(0,r.kt)("h2",{id:"\u4efb\u52a1\u5217\u8868"},"\u4efb\u52a1\u5217\u8868"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"\u6240\u6709\u4efb\u52a1\u6743\u91cd\u76ee\u524d\u90fd\u4e3a",(0,r.kt)("inlineCode",{parentName:"p"},"1"),",\u540e\u7eed\u9700\u8981\u6839\u636e\u5b9e\u9645\u7684\u4efb\u52a1\u91cd\u8981\u6027\u8d4b\u4e88\u4e0d\u540c\u7684\u6743\u91cd\uff0c\u5e76\u4ee5\u6b64\u83b7\u5f97\u6700\u7ec8\u7684\u8bc4\u5206")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u8bc4\u6d4b\u4efb\u52a1"),(0,r.kt)("th",{parentName:"tr",align:null},"\u7c7b\u578b"),(0,r.kt)("th",{parentName:"tr",align:null},"\u63cf\u8ff0"),(0,r.kt)("th",{parentName:"tr",align:null},"\u6743\u91cd"),(0,r.kt)("th",{parentName:"tr",align:null},"\u72b6\u6001"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"rating-security-rback")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"\u5b89\u5168\u6027")),(0,r.kt)("td",{parentName:"tr",align:null},"\u901a\u8fc7 dryrun \u7684\u65b9\u5f0f\u83b7\u53d6\u5b8c\u6574\u7684\u7ec4\u4ef6 RBAC"),(0,r.kt)("td",{parentName:"tr",align:null},"1"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5df2\u652f\u6301")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"rating-security-slsa")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"\u5b89\u5168\u6027")),(0,r.kt)("td",{parentName:"tr",align:null},"\u9a8c\u8bc1 SLSA \u4f9b\u5e94\u94fe\u5b89\u5168\u7b49\u7ea7"),(0,r.kt)("td",{parentName:"tr",align:null},"1"),(0,r.kt)("td",{parentName:"tr",align:null},"\u7814\u53d1\u4e2d")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"rating-reliability-linting")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"\u53ef\u9760\u6027")),(0,r.kt)("td",{parentName:"tr",align:null},"\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"td"},"helm lint")," \u9a8c\u8bc1\u7ec4\u4ef6\u662f\u5426\u7b26\u5408\u89c4\u8303"),(0,r.kt)("td",{parentName:"tr",align:null},"1"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5df2\u652f\u6301")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"rating-reliability-testing")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"\u53ef\u9760\u6027")),(0,r.kt)("td",{parentName:"tr",align:null},"\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"td"},"helm testing")),(0,r.kt)("td",{parentName:"tr",align:null},"1"),(0,r.kt)("td",{parentName:"tr",align:null},"\u7814\u53d1\u4e2d")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"rating-reliability-deployment-testing")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"\u53ef\u9760\u6027")),(0,r.kt)("td",{parentName:"tr",align:null},"\u9a8c\u8bc1\u90e8\u7f72\u540e\u7684\u7ec4\u4ef6\uff0c\u529f\u80fd\u548c\u6027\u80fd\u662f\u5426\u7b26\u5408\u9884\u671f"),(0,r.kt)("td",{parentName:"tr",align:null},"1"),(0,r.kt)("td",{parentName:"tr",align:null},"\u7814\u53d1\u4e2d")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"rating-availability-sample")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"\u53ef\u7528\u6027")),(0,r.kt)("td",{parentName:"tr",align:null},"\u9a8c\u8bc1\u7ec4\u4ef6\u5305\u662f\u5426\u5305\u542b ComponentPlan \u793a\u4f8b"),(0,r.kt)("td",{parentName:"tr",align:null},"1"),(0,r.kt)("td",{parentName:"tr",align:null},"\u7814\u53d1\u4e2d")))),(0,r.kt)("h3",{id:"\u5b89\u5168\u6027\u4efb\u52a1"},"\u5b89\u5168\u6027\u4efb\u52a1"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/kubebb/core/blob/main/pipeline/rating/tasks/task-rbac.yaml"},"rating-security-rback"))),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"rating-security-rback")," \u6839\u636e chart \u5305\u91cc\u7684\u5185\u5bb9\u5f97\u5230\u5b8c\u6574\u7684\u5b89\u88c5\u6587\u4ef6\uff0c\u5e76\u6839\u636e\u8fd9\u4e9b\u6587\u4ef6\u751f\u6210\u6743\u9650\u5173\u7cfb\u56fe\uff0c\u7528\u6237\u53ef\u4ee5\u6839\u636e\u8fd9\u4e2a\u5173\u7cfb\u56fe\u5224\u65ad\u6743\u9650\u662f\u5426\u8fc7\u5927\u800c\u9009\u62e9\u662f\u5426\u5b89\u88c5\u3002"),(0,r.kt)("p",null,"\u5206\u4ee5\u4e0b4\u4e2a\u6b65\u9aa4\u5b8c\u6210\uff1a"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u4e0b\u8f7dchart\u5305")),(0,r.kt)("p",null,"\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"p"},"helm pull")," \u4e0b\u8f7d\u6307\u5b9a\u7684chart\u5305"),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"\u751f\u6210 .dot \u6587\u4ef6")),(0,r.kt)("p",null,"\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"p"},"helm template")," \u5c06 chart \u5305\u8981\u5b89\u88c5\u7684\u5185\u5bb9\u5b8c\u5168\u5217\u4e3e\u51fa\u6765\uff0c\u5e76\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"p"},"yq")," \u548c ",(0,r.kt)("inlineCode",{parentName:"p"},"jq")," \u547d\u4ee4\u8f6c\u6362\u6210\u5982\u4e0b\u683c\u5f0f:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "kind":"List",\n "apiVersion": "v1",\n "items": [\n {\n "kind": "ServiceAccount",\n "apiVersion": "v1",\n "metadata": {\n "name": "sa",\n }\n }\n ]\n}\n')),(0,r.kt)("p",null,"\u901a\u8fc7 ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/team-soteria/rback"},"rback")," \u547d\u4ee4\u5c06\u4ee5\u4e0a\u7684 json \u5185\u5bb9\u8f6c\u6362\u6210 ",(0,r.kt)("inlineCode",{parentName:"p"},".dot")," \u6587\u4ef6\u3002"),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},"\u5b58\u50a8\u5230 ConfigMap")),(0,r.kt)("p",null,"\u5c06\u4e0a\u8ff0\u5f97\u5230 ",(0,r.kt)("inlineCode",{parentName:"p"},".dot")," \u6587\u4ef6\u5b58\u50a8\u5230 ConfigMap \u4e2d\u3002"),(0,r.kt)("ol",{start:4},(0,r.kt)("li",{parentName:"ol"},"\u5c06 ConfigMap \u540d\u5b57\u5199\u5230\u8f93\u51fa")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"Pipeline")," \u652f\u6301\u8f93\u51fa\u4e00\u4e9b\u8fd0\u884c\u7ed3\u679c\uff0c\u5c06CongiMap\u7684\u540d\u5b57\u5199\u5230\u8f93\u51fa\u5185\u5bb9\u4e2d\uff0c\u65b9\u4fbf\u540e\u7eed\u7528\u6237\u4f7f\u7528\u3002"),(0,r.kt)("h3",{id:"\u53ef\u9760\u6027\u4efb\u52a1"},"\u53ef\u9760\u6027\u4efb\u52a1"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/kubebb/core/blob/main/pipeline/rating/tasks/task-helm-lint.yaml"},"rating-reliability-linting"))),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"rating-reliability-linting")," \u7528\u6765\u68c0\u67e5 chart \u5305\u91cc\u4e66\u5199\u683c\u5f0f\u662f\u5426\u6b63\u786e\uff0c\u4ee5\u4fdd\u8bc1\u5e73\u53f0\u53ef\u4ee5\u5b8c\u6574\u7684\u7ed9\u7528\u6237\u5c55\u793a\u76f8\u5173\u4fe1\u606f\u3002"),(0,r.kt)("p",null,"\u5206\u4ee5\u4e0b2\u4e2a\u6b65\u9aa4\u5b8c\u6210\uff1a"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u4e0b\u8f7d chart \u5305")),(0,r.kt)("p",null,"\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"p"},"helm pull")," \u4e0b\u8f7d chart \u5305\u3002"),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"\u68c0\u67e5 lint")),(0,r.kt)("p",null,"\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"p"},"helm lint")," \u68c0\u67e5\u5305\u7684\u4e66\u5199\u683c\u5f0f\uff0c\u8f93\u51fa\u5185\u5bb9\u4f1a\u8ddf\u968f\u65e5\u5fd7\u8f93\u51fa\u3002"),(0,r.kt)("h3",{id:"\u53ef\u7528\u6027\u4efb\u52a1"},"\u53ef\u7528\u6027\u4efb\u52a1"),(0,r.kt)("p",null,"(\u5f85\u8865\u5145)"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/35bdf1fa.e549639f.js b/assets/js/35bdf1fa.e549639f.js new file mode 100644 index 000000000..267276066 --- /dev/null +++ b/assets/js/35bdf1fa.e549639f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7070],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>d});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var p=a.createContext({}),i=function(e){var n=a.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=i(e.components);return a.createElement(p.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},k=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,p=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=i(t),k=r,d=u["".concat(p,".").concat(k)]||u[k]||m[k]||l;return t?a.createElement(d,o(o({ref:n},c),{},{components:t})):a.createElement(d,o({ref:n},c))}));function d(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,o=new Array(l);o[0]=k;var s={};for(var p in n)hasOwnProperty.call(n,p)&&(s[p]=n[p]);s.originalType=e,s[u]="string"==typeof e?e:r,o[1]=s;for(var i=2;i{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>s,toc:()=>i});var a=t(7462),r=(t(7294),t(3905));const l={sidebar_position:5},o="\u79c1\u6709\u96c6\u7fa4\u90e8\u7f72\u65b9\u6848",s={unversionedId:"develop-guid/privatecluster",id:"develop-guid/privatecluster",title:"\u79c1\u6709\u96c6\u7fa4\u90e8\u7f72\u65b9\u6848",description:"\u5728\u4f7f\u7528 kubebb-core \u4e4b\u524d\u6211\u4eec\u9700\u8981\u6709\u4e00\u4e2a k8s \u96c6\u7fa4\uff0c\u7248\u672c\u662f 1.24+\u3002",source:"@site/docs/develop-guid/privatecluster.md",sourceDirName:"develop-guid",slug:"/develop-guid/privatecluster",permalink:"/website/docs/develop-guid/privatecluster",draft:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"\u53d1\u5e03\u7ec4\u4ef6",permalink:"/website/docs/develop-guid/lowcode-development/development/develop-hello-world"},next:{title:"\u7ec4\u4ef6\u5e02\u573a",permalink:"/website/docs/category/\u7ec4\u4ef6\u5e02\u573a"}},p={},i=[{value:"1. \u51c6\u5907",id:"1-\u51c6\u5907",level:2},{value:"\u547d\u4ee4\u884c\u5de5\u5177",id:"\u547d\u4ee4\u884c\u5de5\u5177",level:3},{value:"\u955c\u50cf",id:"\u955c\u50cf",level:3},{value:"\u4ee3\u7801\u4ed3\u5e93",id:"\u4ee3\u7801\u4ed3\u5e93",level:3},{value:"2. \u521b\u5efa\u96c6\u7fa4",id:"2-\u521b\u5efa\u96c6\u7fa4",level:2},{value:"2.1 \u901a\u8fc7 kind \u521b\u5efa k8s \u96c6\u7fa4",id:"21-\u901a\u8fc7-kind-\u521b\u5efa-k8s-\u96c6\u7fa4",level:3},{value:"2.2 \u521b\u5efa\u5e26\u6709\u955c\u50cf Registry \u7684 kind \u96c6\u7fa4",id:"22-\u521b\u5efa\u5e26\u6709\u955c\u50cf-registry-\u7684-kind-\u96c6\u7fa4",level:3},{value:"3.\u5b89\u88c5 kubebb-core",id:"3\u5b89\u88c5-kubebb-core",level:2},{value:"4.\u90e8\u7f72 chartmuseum",id:"4\u90e8\u7f72-chartmuseum",level:2},{value:"5.\u4f7f\u7528 kubebb-core",id:"5\u4f7f\u7528-kubebb-core",level:2},{value:"5.1 \u90e8\u7f72\u4e00\u4e2a Repository",id:"51-\u90e8\u7f72\u4e00\u4e2a-repository",level:3},{value:"5.2 \u90e8\u7f72\u4e00\u4e2a Component",id:"52-\u90e8\u7f72\u4e00\u4e2a-component",level:3},{value:"5.3 Repository Image \u91cd\u5199",id:"53-repository-image-\u91cd\u5199",level:3}],c={toc:i},u="wrapper";function m(e){let{components:n,...t}=e;return(0,r.kt)(u,(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u79c1\u6709\u96c6\u7fa4\u90e8\u7f72\u65b9\u6848"},"\u79c1\u6709\u96c6\u7fa4\u90e8\u7f72\u65b9\u6848"),(0,r.kt)("p",null,"\u5728\u4f7f\u7528 kubebb-core \u4e4b\u524d\u6211\u4eec\u9700\u8981\u6709\u4e00\u4e2a k8s \u96c6\u7fa4\uff0c\u7248\u672c\u662f ",(0,r.kt)("inlineCode",{parentName:"p"},"1.24+"),"\u3002"),(0,r.kt)("h2",{id:"1-\u51c6\u5907"},"1. \u51c6\u5907"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u56e0\u4e3a\u662f\u5728\u79c1\u6709\u73af\u5883\u90e8\u7f72\uff0c\u6240\u4ee5\u9700\u8981\u901a\u8fc7\u67d0\u4e2a\u53ef\u4ee5\u8054\u7f51\u96c6\u7fa4\uff0c\u83b7\u53d6\u4e0b\u9762\u6240\u5fc5\u987b\u7684 \u547d\u4ee4\uff0c\u955c\u50cf\u4e0a\u4f20\u5230\u76ee\u6807\u8282\u70b9\u3002")),(0,r.kt)("h3",{id:"\u547d\u4ee4\u884c\u5de5\u5177"},"\u547d\u4ee4\u884c\u5de5\u5177"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"kind (",(0,r.kt)("a",{parentName:"li",href:"https://kind.sigs.k8s.io/docs/user/quick-start/#installation"},"https://kind.sigs.k8s.io/docs/user/quick-start/#installation"),")"),(0,r.kt)("li",{parentName:"ul"},"kubectl (",(0,r.kt)("a",{parentName:"li",href:"https://kubernetes.io/docs/tasks/tools/"},"https://kubernetes.io/docs/tasks/tools/"),")"),(0,r.kt)("li",{parentName:"ul"},"docker"),(0,r.kt)("li",{parentName:"ul"},"helm (",(0,r.kt)("a",{parentName:"li",href:"https://helm.sh/docs/intro/install/"},"https://helm.sh/docs/intro/install/"),")")),(0,r.kt)("h3",{id:"\u955c\u50cf"},"\u955c\u50cf"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"kindest/node:v1.24.4 (\u521b\u5efak8s\u96c6\u7fa4\uff0ckind\u8981\u662f\u7528\u7684\u955c\u50cf)"),(0,r.kt)("li",{parentName:"ul"},"kubebb/core:v0.1.4 (kubebb-core \u7684\u955c\u50cf)"),(0,r.kt)("li",{parentName:"ul"},"alpine:3.15 (\u7528\u6765\u6d4b\u8bd5registry\u662f\u5426\u6b63\u5e38)"),(0,r.kt)("li",{parentName:"ul"},"ghcr.io/helm/chartmuseum:v0.16.0")),(0,r.kt)("h3",{id:"\u4ee3\u7801\u4ed3\u5e93"},"\u4ee3\u7801\u4ed3\u5e93"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/kubebb/components"},"kubebb/components")," (\u8fd9\u91cc\u5305\u542b\u4e86kubebb\u7684\u57fa\u7840chart\u5305, \u56e0\u4e3a\u662f\u79c1\u6709\u90e8\u7f72\uff0c\u6240\u4ee5\u9700\u8981\u5148clone\u4e0b\u6765)")),(0,r.kt)("h2",{id:"2-\u521b\u5efa\u96c6\u7fa4"},"2. \u521b\u5efa\u96c6\u7fa4"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u5982\u679c\u5df2\u7ecf\u6709\u4e86\u955c\u50cf registry\uff0c\u6267\u884c\u6b65\u9aa4 ",(0,r.kt)("a",{parentName:"strong",href:"#21-%E9%80%9A%E8%BF%87-kind-%E5%88%9B%E5%BB%BA-k8s-%E9%9B%86%E7%BE%A4"},"2.1"),", \u6ca1\u6709\u955c\u50cf registry\uff0c\u6267\u884c\u6b65\u9aa4 ",(0,r.kt)("a",{parentName:"strong",href:"#22-%E5%88%9B%E5%BB%BA%E5%B8%A6%E6%9C%89%E9%95%9C%E5%83%8F-registry-%E7%9A%84-kind-%E9%9B%86%E7%BE%A4"},"2.2"))),(0,r.kt)("h3",{id:"21-\u901a\u8fc7-kind-\u521b\u5efa-k8s-\u96c6\u7fa4"},"2.1 \u901a\u8fc7 kind \u521b\u5efa k8s \u96c6\u7fa4"),(0,r.kt)("p",null,"\u4e0b\u9762\u662f\u521b\u5efa\u4e00\u4e2a\u5355\u8282\u70b9\u96c6\u7fa4\u7684\u914d\u7f6e\u6587\u4ef6:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'# conf.yaml\nkind: Cluster\napiVersion: kind.x-k8s.io/v1alpha4\nname: kubebb-core\nnodes:\n - role: control-plane\n image: kindest/node:v1.24.4\n kubeadmConfigPatches:\n - |\n kind: InitConfiguration\n nodeRegistration:\n kubeletExtraArgs:\n node-labels: "ingress-ready=true"\n extraPortMappings:\n - containerPort: 80\n hostPort: 80\n protocol: TCP\n - containerPort: 443\n hostPort: 443\n protocol: TCP\n')),(0,r.kt)("p",null,"\u521b\u5efa\u96c6\u7fa4"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kind create cluster --config=conf.yaml\n")),(0,r.kt)("p",null,"\u521b\u5efa\u6210\u529f\u8f93\u51fa\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},'Creating cluster "kubebb-core" ...\n \u2713 Ensuring node image (kindest/node:v1.24.4) \ud83d\uddbc\n \u2713 Preparing nodes \ud83d\udce6 \n \u2713 Writing configuration \ud83d\udcdc \n \u2713 Starting control-plane \ud83d\udd79\ufe0f \n \u2713 Installing CNI \ud83d\udd0c \n \u2713 Installing StorageClass \ud83d\udcbe \nSet kubectl context to "kind-kubebb-core"\nYou can now use your cluster with:\n\nkubectl cluster-info --context kind-kubebb-core\n\nNot sure what to do next? \ud83d\ude05 Check out https://kind.sigs.k8s.io/docs/user/quick-start/\n')),(0,r.kt)("p",null,"\u68c0\u67e5\u8282\u70b9"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"kubectl get node\n\nNAME STATUS ROLES AGE VERSION\nkubebb-core-control-plane Ready control-plane 70s v1.24.4\n")),(0,r.kt)("h3",{id:"22-\u521b\u5efa\u5e26\u6709\u955c\u50cf-registry-\u7684-kind-\u96c6\u7fa4"},"2.2 \u521b\u5efa\u5e26\u6709\u955c\u50cf Registry \u7684 kind \u96c6\u7fa4"),(0,r.kt)("p",null,"\u53ef\u4ee5\u901a\u8fc7kind\u90e8\u7f72\u96c6\u7fa4\u7684\u65f6\u5019\uff0c\u76f4\u63a5\u5e26\u51fa\u6765\u4e00\u4e2a, \u53c2\u8003\u8fd9\u91cc\u90e8\u7f72\u76f4\u63a5\u5e26\u51fa\u6765\u4e00\u4e2aregistry\n",(0,r.kt)("a",{parentName:"p",href:"https://kind.sigs.k8s.io/docs/user/local-registry/"},"https://kind.sigs.k8s.io/docs/user/local-registry/")),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u542f\u52a8 registry")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},'# 1. \u521b\u5efa\u5bb9\u5668\ndocker run \\\n -d --restart=always -p "127.0.0.1:5001:5000" --name kind-registry \\\n registry:2\n\n# 2. \u68c0\u67e5\u5bb9\u5668\u662f\u5426\u6b63\u5e38\u8fd0\u884c\ndocker ps\n\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\n27c8049d53b9 registry:2 "/entrypoint.sh /etc\u2026" 4 seconds ago Up 3 seconds 127.0.0.1:5001->5000/tcp kind-registry\n')),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"\u4fee\u6539\u914d\u7f6e\uff0c\u5e76\u521b\u5efa\u96c6\u7fa4")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'# conf-with-registry.yaml\nkind: Cluster\napiVersion: kind.x-k8s.io/v1alpha4\nname: kubebb-core\ncontainerdConfigPatches:\n - |-\n [plugins."io.containerd.grpc.v1.cri".registry.mirrors."localhost:5001"]\n endpoint = ["http://kind-registry:5000"]\nnodes:\n - role: control-plane\n image: kindest/node:v1.24.4\n kubeadmConfigPatches:\n - |\n kind: InitConfiguration\n nodeRegistration:\n kubeletExtraArgs:\n node-labels: "ingress-ready=true"\n extraPortMappings:\n - containerPort: 80\n hostPort: 80\n protocol: TCP\n - containerPort: 443\n hostPort: 443\n protocol: TCP\n---\napiVersion: v1\nkind: ConfigMap\nmetadata:\n name: local-registry-hosting\n namespace: kube-public\ndata:\n localRegistryHosting.v1: |\n host: "localhost:5001"\n help: "https://kind.sigs.k8s.io/docs/user/local-registry/"\n')),(0,r.kt)("p",null,"\u521b\u5efa\u96c6\u7fa4"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"# 1. create cluster\nkind create cluster --config=conf-with-registry.yaml\n")),(0,r.kt)("p",null,"\u521b\u5efa\u6210\u529f\uff0c\u8f93\u5165\u5982\u4e0b:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},'# \u8f93\u51fa\u5982\u4e0b\nCreating cluster "kubebb-core" ...\n \u2713 Ensuring node image (kindest/node:v1.24.4) \ud83d\uddbc\n \u2713 Preparing nodes \ud83d\udce6 \n \u2713 Writing configuration \ud83d\udcdc \n \u2713 Starting control-plane \ud83d\udd79\ufe0f \n \u2713 Installing CNI \ud83d\udd0c \n \u2713 Installing StorageClass \ud83d\udcbe \nSet kubectl context to "kind-kubebb-core"\nYou can now use your cluster with:\n\nkubectl cluster-info --context kind-kubebb-core\n\nNot sure what to do next? \ud83d\ude05 Check out https://kind.sigs.k8s.io/docs/user/quick-start/\n')),(0,r.kt)("p",null,"\u5c06 registry \u8fde\u63a5\u5230 ",(0,r.kt)("inlineCode",{parentName:"p"},"kind")," \u7f51\u7edc"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},'if [ "$(docker inspect -f=\'{{json .NetworkSettings.Networks.kind}}\' "kind-registry")" = \'null\' ]; then\n docker network connect "kind" "kind-registry"\nfi\n')),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},"\u6d4b\u8bd5\u955c\u50cf")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"docker tag alpine:3.15 localhost:5001/alpine:3.15\ndocker push localhost:5001/alpine:3.15\n")),(0,r.kt)("ol",{start:4},(0,r.kt)("li",{parentName:"ol"},"\u6d4b\u8bd5\u955c\u50cf\u4f7f\u7528")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'#deploy.yaml\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: log\n labels:\n app: log\nspec:\n replicas: 1\n selector:\n matchLabels:\n app: log\n template:\n metadata:\n labels:\n app: log\n spec:\n containers:\n - name: log\n image: localhost:5001/alpine:3.15\n command:\n - "/bin/sh"\n args:\n - "-c"\n - "while true; do echo hello; sleep 10;done"\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"# 1. \u521b\u5efadeployment\nkubectl apply -f deploy.yaml \n\n# 2. \u68c0\u67e5pod\u662f\u5426\u8fd0\u884c\nkubectl get po\n\nNAME READY STATUS RESTARTS AGE\nlog-847f844f96-wvb46 1/1 Running 0 1s\n\n# 3. \u67e5\u770bpod\u65e5\u5fd7\nkubectl logs -f log-847f844f96-wvb46\nhello\nhello\nhello\n^C\n")),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"3\u5b89\u88c5-kubebb-core"},"3.\u5b89\u88c5 kubebb-core"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u5c06\u955c\u50cf ",(0,r.kt)("inlineCode",{parentName:"li"},"kubebb/core:v0.1.4")," \u63a8\u5230\u4f60\u7684\u955c\u50cf registry\u3002")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"docker tag kubebb/core:v0.1.4 localhost:5001/core:v0.1.4\ndocker push localhost:5001/core:v0.1.4\n")),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"\u5b89\u88c5")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl create ns kubebb-system\ncd components/charts/kubebb-core\nhelm -nkubebb-system install kubebb --set deployment.image=localhost:5001/core:v0.1.4\n")),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},"\u6267\u884c\u7ed3\u679c")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get po -nkubebb-system\n\nNAME READY STATUS RESTARTS AGE\nkubebb-799f9c474d-c9jnn 1/1 Running 0 17s\n")),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"4\u90e8\u7f72-chartmuseum"},"4.\u90e8\u7f72 chartmuseum"),(0,r.kt)("p",null,"\u90e8\u7f72\u4e00\u4e2a\u79c1\u6709\u7684chart repo\uff0c\u7528\u6765\u5b58\u50a8chart\u5305\u3002"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u5c06\u955c\u50cf ",(0,r.kt)("inlineCode",{parentName:"li"},"ghcr.io/helm/chartmuseum:v0.16.0")," \u63a8\u5230\u4f60\u7684 registry")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"docker tag ghcr.io/helm/chartmuseum:v0.16.0 localhost:5001/chartmuseum:v0.16.0\ndocker push localhost:5001/chartmuseum:v0.16.0\n")),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"\u5b89\u88c5")),(0,r.kt)("p",null,"\u8fd9\u91cc\u6ce8\u610f\uff1a\u5982\u679c\u8981\u662f\u7528 chartmuseum \u7684 api \u5fc5\u987b\u8bbe\u7f6e ",(0,r.kt)("inlineCode",{parentName:"p"},"env.open.DISABLE_API=false")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"cd components/charts/chartmuseum\nhelm install chartmuseum --set image.repository=localhost:5001/chartmuseum --set env.open.DISABLE_API=false .\n")),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},"\u6267\u884c\u7ed3\u679c")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get po\n\nNAME READY STATUS RESTARTS AGE\nchartmuseum-6c4bc46898-6jj4b 1/1 Running 0 13s\n")),(0,r.kt)("ol",{start:4},(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"\u6d4b\u8bd5\u5305\u4e0a\u4f20"),(0,r.kt)("p",{parentName:"li"},"\u8fd9\u91cc\u53ef\u4ee5\u901a\u8fc7 nodePort\uff0cingress\u7b49\u65b9\u5f0f\u5c06 chartmuseum \u66b4\u9732\u51fa\u53bb\u3002\n\u76ee\u524d\u662f\u901a\u8fc7kind\u90e8\u7f72\u7684\u96c6\u7fa4\uff0c\u6ca1\u6709\u6620\u5c04\u66f4\u591a\u7684\u4e3b\u673a\u7aef\u53e3\uff0c\u6240\u4ee5\u8fd9\u91cc\u9009\u62e9 ",(0,r.kt)("inlineCode",{parentName:"p"},"port-forward")),(0,r.kt)("p",{parentName:"li"},"4.1 \u627e\u5230 chartmuseum \u7684\u670d\u52a1port\u4fe1\u606f"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get svc\nNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE\nchartmuseum ClusterIP 10.96.240.154 8080/TCP 2m59s\n")),(0,r.kt)("p",{parentName:"li"},"4.2 \u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"p"},"port-froward")," \u8f6c\u53d1"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl port-forward service/chartmuseum 8080:8080 --address=0.0.0.0\n")),(0,r.kt)("p",{parentName:"li"},"4.3 \u4e0a\u4f20chart\u5305\n\u8fd9\u91cc\u8fd8\u662f\u4ee5 chartmuseum \u6d4b\u8bd5"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-shell"},'cd components/charts/chartmuseum\nhelm pacakge .\n\n# \u6210\u529f\u5c06\u4f1a\u8f93\u51fa {"saved":true}\ncurl --data-binary "@chartmuseum-3.10.1.tgz" http://localhost:8080/api/charts\n')),(0,r.kt)("p",{parentName:"li"},"4.4 \u7ed3\u679c\u67e5\u770b"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u770b index.yaml\ncurl http://localhost:8080/index.yaml\n")),(0,r.kt)("p",{parentName:"li"},"4.4 \u4e0a\u4f20\u5176\u4ed6\u7684chart\u5305"),(0,r.kt)("p",{parentName:"li"},"\u5bf9\u4e8e ",(0,r.kt)("inlineCode",{parentName:"p"},"components/charts")," \u4e0b\u9762\u7684\u5176\u4ed6\u7684chart\u5305\u7528\u5230\u54ea\u4e9b\uff0c\u6309\u7167 ",(0,r.kt)("inlineCode",{parentName:"p"},"4.3")," \u6b65\u9aa4\u5c31\u53ef\u4ee5\u5b8c\u6210\u4e0a\u4f20\u3002"))),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"5\u4f7f\u7528-kubebb-core"},"5.\u4f7f\u7528 kubebb-core"),(0,r.kt)("h3",{id:"51-\u90e8\u7f72\u4e00\u4e2a-repository"},"5.1 \u90e8\u7f72\u4e00\u4e2a Repository"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# repo.yaml\napiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: Repository\nmetadata:\n name: kubebb\n namespace: kubebb-system\nspec:\n url: http://chartmuseum.default.svc.cluster.local:8080\n pullStategy:\n intervalSeconds: 120\n retry: 5\n")),(0,r.kt)("p",null,"\u521b\u5efa repository"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"# 1. \u521b\u5efa repository\nkubectl apply -f repo.yaml \n\n# 2. \u68c0\u67e5 components \u662f\u5426\u521b\u5efa\nkubectl get components.core.kubebb.k8s.com.cn -n kubebb-system\nNAME AGE\nkubebb.chartmuseum 2s\nkubebb.kubebb-core 2s\n")),(0,r.kt)("p",null,"\u53ef\u4ee5\u770b\u5230\u521b\u5efa\u4e86 repository \u540e\uff0c\u76f8\u5173\u7684 components \u5df2\u7ecf\u88ab\u521b\u5efa\u51fa\u6765\u4e86\u3002"),(0,r.kt)("h3",{id:"52-\u90e8\u7f72\u4e00\u4e2a-component"},"5.2 \u90e8\u7f72\u4e00\u4e2a Component"),(0,r.kt)("p",null,"\u90e8\u7f72 component \uff0c\u9700\u8981\u4f7f\u7528 componentplan \u8fd9\u4e2a\u8d44\u6e90\u3002\u8fd9\u91cc\u6211\u4eec\u9009\u62e9\u518d\u6b21\u90e8\u7f72\u4e00\u4e2a chartmuseum\u3002\u524d\u9762\u901a\u8fc7 helm \u90e8\u7f72\u7684 chartmuseum \u662f\u7ed9\u7cfb\u7edf\u5b58\u50a8chart\u7528\u7684\uff0c\u8fd9\u91cc\u90e8\u7f72\uff0c\u662f\u4e3a\u4e86\u6d4b\u8bd5\u529f\u80fd\u6b63\u5e38(\u6ca1\u641e\u5176\u4ed6\u7684chart\u5305)\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# componentplan.yaml\napiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: ComponentPlan\nmetadata:\n name: chartmuseum-test\n namespace: default\nspec:\n approved: true\n name: chartmuseum-test\n version: 3.10.1\n override:\n set:\n - image.repository=localhost:5001/chartmuseum \n - env.open.DISABLE_API=false\n component:\n name: kubebb.chartmuseum\n namespace: kubebb-system\n")),(0,r.kt)("p",null,"\u521b\u5efacompnentplan"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl apply -f componentplan.yaml\n")),(0,r.kt)("p",null,"\u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u53ef\u4ee5\u770b\u5230 ",(0,r.kt)("inlineCode",{parentName:"p"},"chartmuseum-test")," \u7684pod\u4e5f\u8d77\u6765\u4e86\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get po\n\nNAME READY STATUS RESTARTS AGE\nchartmuseum-6c4bc46898-msp7r 1/1 Running 0 107s\nchartmuseum-test-86d66fd5d7-lp2rn 1/1 Running 0 11s\n")),(0,r.kt)("h3",{id:"53-repository-image-\u91cd\u5199"},"5.3 Repository Image \u91cd\u5199"),(0,r.kt)("p",null,"\u8fd9\u4e2a\u6b65\u9aa4\u662f\u4e3a\u4e86\u6d4b\u8bd5 image \u66f4\u65b0\u7b56\u7565\uff0c\u5982\u679c\u4e0d\u9700\u8981\u53ef\u4ee5\u4e0d\u7528\u64cd\u4f5c\u3002\n\u6211\u4eec\u8fd8\u662f\u7528\u4e4b\u524d\u7684helm\u90e8\u7f72\u7684 chartmuseum\uff0c\u91cc\u9762\u6709\u4e00\u4e2achartmuseum \u7684\u5305\uff0c \u8981\u7528\u5230\u955c\u50cf"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"ghcr.io/helm/chartmuseum:v0.16.0")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'# repo-override-image.yaml\napiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: Repository\nmetadata:\n name: repo-override-image\n namespace: kubebb-system\nspec:\n url: http://chartmuseum.default.svc.cluster.local:8080\n pullStategy:\n intervalSeconds: 120\n retry: 5\n imageOverride:\n - registry: ghcr.io\n newRegistry: localhost:5001\n pathOverride:\n path: helm\n newPath: ""\n')),(0,r.kt)("p",null,"\u521b\u5efaRepository"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl apply -f repo-override-image.yaml\n")),(0,r.kt)("p",null,"\u521b\u5efa repository \u540e\uff0c\u67e5\u770b components"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get components -A\nNAMESPACE NAME AGE\nkubebb-system kubebb.chartmuseum 18m\nkubebb-system kubebb.kubebb-core 18m\nkubebb-system repo-override-image.chartmuseum 5s\nkubebb-system repo-override-image.kubebb-core 5s\n")),(0,r.kt)("p",null,"\u518d\u6b21\u5b89\u88c5 chartmuseum\n",(0,r.kt)("strong",{parentName:"p"},"\u6ce8\u610f\uff0c\u8fd9\u91cc\u6211\u4eec\u4e0d\u518d\u8bbe\u7f6e chartmuseum \u6240\u4f7f\u7528\u7684\u955c\u50cf\u3002")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# componentplan-default-override.yaml\napiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: ComponentPlan\nmetadata:\n name: chartmuseum-test233\n namespace: default\nspec:\n approved: true\n name: chartmuseum-test233\n version: 3.10.1\n override:\n set:\n - env.open.DISABLE_API=false\n component:\n name: repo-override-image.chartmuseum\n namespace: kubebb-system\n")),(0,r.kt)("p",null,"\u521b\u5efa componentplan"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl apply -f componentplan-default-override.yaml\n")),(0,r.kt)("p",null,"\u68c0\u67e5pod\u7684\u8fd0\u884c\u60c5\u51b5"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get po\n\nNAME READY STATUS RESTARTS AGE\nchartmuseum-6c4bc46898-msp7r 1/1 Running 0 32m\nchartmuseum-test-86d66fd5d7-lp2rn 1/1 Running 0 31m\nchartmuseum-test233-544cbfb87c-b6pdd 1/1 Running 0 12s\n")),(0,r.kt)("p",null,"\u90e8\u7f72\u5b8c\u6210\u2705!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3724ddc1.992a3138.js b/assets/js/3724ddc1.992a3138.js deleted file mode 100644 index e581a289f..000000000 --- a/assets/js/3724ddc1.992a3138.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9449],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>d});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var i=n.createContext({}),s=function(e){var t=n.useContext(i),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(i.Provider,{value:t},e.children)},m="mdxType",k={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,i=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),m=s(r),c=a,d=m["".concat(i,".").concat(c)]||m[c]||k[c]||l;return r?n.createElement(d,o(o({ref:t},u),{},{components:r})):n.createElement(d,o({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=c;var p={};for(var i in t)hasOwnProperty.call(t,i)&&(p[i]=t[i]);p.originalType=e,p[m]="string"==typeof e?e:a,o[1]=p;for(var s=2;s{r.r(t),r.d(t,{assets:()=>i,contentTitle:()=>o,default:()=>k,frontMatter:()=>l,metadata:()=>p,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const l={sidebar_position:1},o="\u4ecb\u7ecd",p={unversionedId:"core/intro",id:"core/intro",title:"\u4ecb\u7ecd",description:"\u5185\u6838\u57fa\u4e8ekubernetes operator\u6a21\u5f0f\u8fdb\u884c\u5f00\u53d1\uff0c\u63d0\u4f9b\u5b8c\u6574\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u3001\u7ec4\u4ef6\u8ba2\u9605\u548c\u81ea\u52a8\u5316\u90e8\u7f72\u80fd\u529b\uff0c\u5e76\u901a\u8fc7tekton\u6269\u5c55\u5b9e\u73b0\u7ec4\u4ef6\u81ea\u52a8\u5316\u8bc4\u7ea7\u548c\u5b89\u88c5\u524d\u6821\u9a8c\u7b49\u80fd\u529b\u3002",source:"@site/docs/core/intro.md",sourceDirName:"core",slug:"/core/intro",permalink:"/website/docs/core/intro",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"\u5185\u6838Kit",permalink:"/website/docs/category/\u5185\u6838kit"},next:{title:"\u6982\u5ff5",permalink:"/website/docs/category/\u6982\u5ff5"}},i={},s=[{value:"\u6574\u4f53\u67b6\u6784",id:"\u6574\u4f53\u67b6\u6784",level:2},{value:"\u6838\u5fc3\u4f18\u52bf",id:"\u6838\u5fc3\u4f18\u52bf",level:2},{value:"\u58f0\u660e\u5f0f\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406",id:"\u58f0\u660e\u5f0f\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406",level:3},{value:"\u7ec4\u4ef6\u751f\u547d\u5468\u671f",id:"\u7ec4\u4ef6\u751f\u547d\u5468\u671f",level:4},{value:"1. \u7814\u53d1\u9636\u6bb5",id:"1-\u7814\u53d1\u9636\u6bb5",level:5},{value:"2. \u90e8\u7f72\u9636\u6bb5",id:"2-\u90e8\u7f72\u9636\u6bb5",level:5},{value:"3. \u4f7f\u7528\u9636\u6bb5",id:"3-\u4f7f\u7528\u9636\u6bb5",level:5},{value:"\u58f0\u660e\u5f0f\u7684\u4f18\u52bf",id:"\u58f0\u660e\u5f0f\u7684\u4f18\u52bf",level:4},{value:"\u591a\u7ef4\u5ea6\u7ec4\u4ef6\u8bc4\u7ea7",id:"\u591a\u7ef4\u5ea6\u7ec4\u4ef6\u8bc4\u7ea7",level:3},{value:"\u5168\u9762\u9002\u914dHelm\u751f\u6001",id:"\u5168\u9762\u9002\u914dhelm\u751f\u6001",level:3},{value:"\u6269\u5c55\u9002\u914d\u5e95\u5ea7\u670d\u52a1",id:"\u6269\u5c55\u9002\u914d\u5e95\u5ea7\u670d\u52a1",level:3}],u={toc:s},m="wrapper";function k(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u4ecb\u7ecd"},"\u4ecb\u7ecd"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://github.com/kubebb/core"},"\u5185\u6838"),"\u57fa\u4e8e",(0,a.kt)("a",{parentName:"p",href:"https://kubernetes.io/docs/concepts/extend-kubernetes/operator/"},"kubernetes operator"),"\u6a21\u5f0f\u8fdb\u884c\u5f00\u53d1\uff0c\u63d0\u4f9b\u5b8c\u6574\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u3001\u7ec4\u4ef6\u8ba2\u9605\u548c\u81ea\u52a8\u5316\u90e8\u7f72\u80fd\u529b\uff0c\u5e76\u901a\u8fc7",(0,a.kt)("a",{parentName:"p",href:"https://tekton.dev/"},"tekton"),"\u6269\u5c55\u5b9e\u73b0\u7ec4\u4ef6\u81ea\u52a8\u5316\u8bc4\u7ea7\u548c\u5b89\u88c5\u524d\u6821\u9a8c\u7b49\u80fd\u529b\u3002"),(0,a.kt)("h2",{id:"\u6574\u4f53\u67b6\u6784"},"\u6574\u4f53\u67b6\u6784"),(0,a.kt)("p",null,(0,a.kt)("img",{parentName:"p",src:"https://raw.githubusercontent.com/kubebb/core/main/assets/arch.png",alt:"KubeBB Core\u67b6\u6784\u56fe"})),(0,a.kt)("h2",{id:"\u6838\u5fc3\u4f18\u52bf"},"\u6838\u5fc3\u4f18\u52bf"),(0,a.kt)("h3",{id:"\u58f0\u660e\u5f0f\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406"},"\u58f0\u660e\u5f0f\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406"),(0,a.kt)("h4",{id:"\u7ec4\u4ef6\u751f\u547d\u5468\u671f"},"\u7ec4\u4ef6\u751f\u547d\u5468\u671f"),(0,a.kt)("p",null,"\u7ec4\u4ef6\u7684\u751f\u547d\u5468\u671f\u4e3b\u8981\u53ef\u4ee5\u5212\u5206\u4e3a\u4e09\u4e2a\u9636\u6bb5:"),(0,a.kt)("p",null,(0,a.kt)("img",{parentName:"p",src:"https://raw.githubusercontent.com/kubebb/core/main/assets/component-lifecycle.drawio.png",alt:"component_lifecycle"})),(0,a.kt)("h5",{id:"1-\u7814\u53d1\u9636\u6bb5"},"1. \u7814\u53d1\u9636\u6bb5"),(0,a.kt)("p",null,"\u5f00\u53d1\u8005\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"\u4f4e\u7801\u5e73\u53f0(optional)"),"\u5b8c\u6210\u7ec4\u4ef6\u7684\u5f00\u53d1\u5de5\u4f5c,\u6839\u636e\u4e0d\u540c\u7684\u7ec4\u4ef6\u7c7b\u578b\uff0c\u9009\u62e9\u4e0d\u540c\u7684\u65b9\u5f0f\u5b8c\u6210\u7ec4\u4ef6\u7684\u6253\u5305\uff0c\u5e76\u5c06\u6253\u5305\u540e\u7684\u8d44\u6e90\u53d1\u5e03\u5230",(0,a.kt)("strong",{parentName:"p"},"\u4ed3\u5e93\u670d\u52a1"),"\u4e2d\u3002"),(0,a.kt)("p",null,"\u7ec4\u4ef6\u8d44\u6e90\u4e00\u822c\u5305\u542b\u4e24\u7c7b:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u955c\u50cf\u8d44\u6e90: \u7ec4\u4ef6\u5f00\u53d1\u5b8c\u6210\u4e00\u822c\u9700\u8981\u6784\u5efa\u6210\u4e00\u4e2a\u955c\u50cf\uff0c\u5e76\u63a8\u9001\u5230\u955c\u50cf\u4ed3\u5e93"),(0,a.kt)("li",{parentName:"ul"},"\u5b89\u88c5\u5305\uff1a\u7ec4\u4ef6\u5b89\u88c5\u90e8\u7f72\u65f6\u7684\u5404\u79cd\u8d44\u6e90\u914d\u7f6e\u4fe1\u606f\uff08\u901a\u5e38\u4e3a",(0,a.kt)("strong",{parentName:"li"},"Helm charts\uff09,"),"\u5e76\u63a8\u9001\u5230Charts\u5305\u4ed3\u5e93")),(0,a.kt)("p",null,"\u955c\u50cf\u8d44\u6e90\u4e00\u822c\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"\u516c\u5171\u955c\u50cf\u4ed3\u5e93(Dockerhub)\u6216\u79c1\u6709\u955c\u50cf\u4ed3\u5e93"),"\u7ba1\u7406\uff0c\u6211\u4eec\u4e0d\u505a\u7279\u6b8a\u5904\u7406\u3002\u7ec4\u4ef6\u4ed3\u5e93\u670d\u52a1\u4e3b\u8981\u7528\u4e8e\u5b58\u50a8",(0,a.kt)("strong",{parentName:"p"},"\u5b89\u88c5\u5305(Charts)\u3002")),(0,a.kt)("h5",{id:"2-\u90e8\u7f72\u9636\u6bb5"},"2. \u90e8\u7f72\u9636\u6bb5"),(0,a.kt)("p",null,"\u7cfb\u7edf\u7ba1\u7406\u5458\u4ece",(0,a.kt)("strong",{parentName:"p"},"\u7ec4\u4ef6\u4ed3\u5e93\u670d\u52a1"),"\u4e2d\u624b\u52a8\u67e5\u627e\u5b58\u50a8\u7684\u7ec4\u4ef6\u5217\u8868\uff0c\u83b7\u53d6\u53ef\u7528\u7684\u7ec4\u4ef6\u4fe1\u606f",(0,a.kt)("strong",{parentName:"p"},"(\u53d1\u5e03\u8005\u3001\u7248\u672c\u3001\u5b89\u88c5\u914d\u7f6e\u7b49)\uff0c"),"\u5e76\u6839\u636e\u5b9e\u9645\u60c5\u51b5\uff0c\u5b8c\u6210\u7ec4\u4ef6\u914d\u7f6e\u5e76\u5b89\u88c5\u5230\u7cfb\u7edf\u4e2d\u3002\u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u9700\u8981\u624b\u52a8\u53bb\u68c0\u67e5\u7ec4\u4ef6\u7248\u672c\u66f4\u65b0\uff0c\u5e76\u8c28\u614e\u7684\u5b8c\u6574\u7ec4\u4ef6\u7684\u5347\u7ea7\u3002"),(0,a.kt)("h5",{id:"3-\u4f7f\u7528\u9636\u6bb5"},"3. \u4f7f\u7528\u9636\u6bb5"),(0,a.kt)("p",null,"\u666e\u901a\u7528\u6237\u5728\u7ec4\u4ef6\u5b89\u88c5\u5230\u7cfb\u7edf\u540e\uff0c\u901a\u8fc7\u5e95\u5ea7Kit\u63d0\u4f9b\u7684\u7edf\u4e00\u8bbf\u95ee\u5165\u53e3\u548c\u7edf\u4e00\u7528\u6237\u8ba4\u8bc1\u6765\u8bbf\u95ee\u5177\u4f53\u7684\u7ec4\u4ef6\u670d\u52a1\u3002"),(0,a.kt)("h4",{id:"\u58f0\u660e\u5f0f\u7684\u4f18\u52bf"},"\u58f0\u660e\u5f0f\u7684\u4f18\u52bf"),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"\u58f0\u660e\u5f0f"),"\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u6709\u4ee5\u4e0b\u4f18\u52bf:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u53ef\u8bfb\u6027\uff1a")," \u66f4\u6613\u4e8e\u7406\u89e3\u548c\u9605\u8bfb\u7ec4\u4ef6\u5b9a\u4e49\u672c\u8eab\uff0c\u56e0\u4e3a\u5b83\u4eec\u8868\u8fbe\u4e86\u60f3\u8981\u7684\u7ed3\u679c\uff0c\u800c\u4e0d\u662f\u5b9e\u73b0\u7684\u6b65\u9aa4\u3002"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u53ef\u7ef4\u62a4\u6027\uff1a"),"\u66f4\u6613\u4e8e\u7ef4\u62a4\u7ec4\u4ef6\uff0c\u56e0\u4e3a\u5b83\u4eec\u66f4\u5bb9\u6613\u7406\u89e3\uff0c\u66f4\u5bb9\u6613\u4fee\u6539\uff0c\u800c\u4e14\u66f4\u5c11\u6709\u9519\u8bef\u3002"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u53ef\u91cd\u7528\u6027\uff1a"),"\u66f4\u5bb9\u6613\u91cd\u7528\u7ec4\u4ef6\uff0c\u56e0\u4e3a\u5b83\u4eec\u901a\u5e38\u662f\u72ec\u7acb\u4e8e\u4e0a\u4e0b\u6587\u7684\uff0c\u53ef\u4ee5\u5728\u4e0d\u540c\u7684\u73af\u5883\u4e2d\u4f7f\u7528\u3002"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u53ef\u6269\u5c55\u6027\uff1a"),"\u66f4\u6613\u4e8e\u6269\u5c55\u7ec4\u4ef6\uff0c\u56e0\u4e3a\u5b83\u4eec\u901a\u5e38\u662f\u57fa\u4e8e\u7ec4\u4ef6\u548c\u6a21\u5757\u7684\uff0c\u53ef\u4ee5\u7b80\u5355\u5730\u7ec4\u5408\u8d77\u6765\u521b\u5efa\u66f4\u590d\u6742\u7684\u7cfb\u7edf\u3002"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u53ef\u9760\u6027\uff1a"),"\u66f4\u53ef\u9760\uff0c\u56e0\u4e3a\u5b83\u4eec\u901a\u5e38\u662f\u57fa\u4e8e\u9759\u6001\u914d\u7f6e\u7684\uff0c\u800c\u4e0d\u662f\u57fa\u4e8e\u8fd0\u884c\u65f6\u72b6\u6001\u7684\u3002\u8fd9\u610f\u5473\u7740\u5b83\u4eec\u66f4\u5c11\u51fa\u73b0\u8fd0\u884c\u65f6\u9519\u8bef\u548c\u610f\u5916\u884c\u4e3a\u3002")),(0,a.kt)("h3",{id:"\u591a\u7ef4\u5ea6\u7ec4\u4ef6\u8bc4\u7ea7"},"\u591a\u7ef4\u5ea6\u7ec4\u4ef6\u8bc4\u7ea7"),(0,a.kt)("p",null,"\u901a\u8fc7\u96c6\u6210",(0,a.kt)("a",{parentName:"p",href:"https://github.com/kubebb/components/tree/main/examples/tekton-operator"},"Tekton"),"\u6d41\u6c34\u7ebf\u7ec4\u4ef6\uff0c\u5b9e\u73b0\u81ea\u52a8\u5316\u7684\u7ec4\u4ef6\u8bc4\u7ea7\uff0c\u5e76\u901a\u8fc7",(0,a.kt)("inlineCode",{parentName:"p"},"CRD Rating"),"\u5b8c\u6210\u8bc4\u6d4b\u6570\u636e\u603b\u7ed3\u548c\u5206\u6790\u3002"),(0,a.kt)("p",null,"\u76ee\u524d\u7ec4\u4ef6\u8bc4\u7ea7\u56f4\u7ed5\u4e09\u4e2a\u7ef4\u5ea6\u5c55\u5f00:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./rating#%E5%AE%89%E5%85%A8%E6%80%A7%E4%BB%BB%E5%8A%A1"},(0,a.kt)("strong",{parentName:"a"},"\u5b89\u5168\u6027:"))," \u8bc4\u4f30\u7ec4\u4ef6\u7684\u5b89\u5168\u6027\u548c\u8f6f\u4ef6\u4f9b\u5e94\u94fe\u7684\u5b89\u5168\u6027\u3002"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./rating#%E5%8F%AF%E9%9D%A0%E6%80%A7%E4%BB%BB%E5%8A%A1"},(0,a.kt)("strong",{parentName:"a"},"\u53ef\u9760\u6027:"))," \u8bc4\u4f30\u7ec4\u4ef6\u672c\u8eab\u662f\u5426\u5df2\u7ecf\u8fc7\u826f\u597d\u7684\u529f\u80fd\u6d4b\u8bd5\u3001\u6027\u80fd\u6d4b\u8bd5"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"./rating#%E5%8F%AF%E7%94%A8%E6%80%A7%E4%BB%BB%E5%8A%A1"},(0,a.kt)("strong",{parentName:"a"},"\u53ef\u7528\u6027:"))," \u8bc4\u4f30\u7ec4\u4ef6\u662f\u5426\u6709\u5145\u8db3\u7684\u6587\u6863\u3001\u793a\u4f8b\u6765\u6307\u5bfc\u7528\u6237\u4f7f\u7528")),(0,a.kt)("h3",{id:"\u5168\u9762\u9002\u914dhelm\u751f\u6001"},"\u5168\u9762\u9002\u914dHelm\u751f\u6001"),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://helm.sh/"},"Helm"),"\u662f\u4e00\u79cd\u6210\u719f\u7684\u5305\u7ba1\u7406\u5de5\u5177\uff0c\u63d0\u4f9b\u4e00\u79cd\u7b80\u5355\u7684\u65b9\u5f0f\u6765\u7ba1\u7406Kubernetes\u5e94\u7528\u7a0b\u5e8f\u7684\u90e8\u7f72\u548c\u5347\u7ea7\u3002\u5b83\u62e5\u6709\u5e9e\u5927\u7684\u793e\u533a\u548c\u4f17\u591a\u4f18\u79c0\u7684\u9879\u76ee\u3002\n\u56e0\u6b64\uff0c\u5185\u6838\u4ece\u8bbe\u8ba1\u4e4b\u521d\u5c31\u786e\u5b9a\u4e86\u5fc5\u987b\u5168\u9762\u517c\u5bb9",(0,a.kt)("strong",{parentName:"p"},"Helm\u751f\u6001"),"\u3002"),(0,a.kt)("p",null,"\u8fd9\u4e00\u7279\u70b9\u4f53\u73b0\u5728",(0,a.kt)("strong",{parentName:"p"},"\u5185\u6838\u8bbe\u8ba1"),"\u7684\u5404\u4e2a\u65b9\u9762\uff0c\u6211\u4eec\u652f\u6301:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://helm.sh/docs/chart_template_guide/getting_started/"},"Charts"),"\u4f5c\u4e3a\u7ec4\u4ef6"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/website/docs/core/concepts/repository"},"\u7ec4\u4ef6\u4ed3\u5e93"),"\u5b8c\u5168\u9002\u914d",(0,a.kt)("strong",{parentName:"li"},"Helm\u7c7b\u578b"),"\u4ed3\u5e93"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"/website/docs/core/concepts/componentplan"},"\u7ec4\u4ef6\u90e8\u7f72"),"\u57fa\u672c\u5168\u9762\u8986\u76d6",(0,a.kt)("a",{parentName:"li",href:"https://helm.sh/docs/helm/helm/"},"Helm CLI"),"\u80fd\u529b")),(0,a.kt)("h3",{id:"\u6269\u5c55\u9002\u914d\u5e95\u5ea7\u670d\u52a1"},"\u6269\u5c55\u9002\u914d\u5e95\u5ea7\u670d\u52a1"),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("ol",{parentName:"admonition"},(0,a.kt)("li",{parentName:"ol"},"\u4f4e\u4ee3\u7801\u5f00\u53d1\u5e73\u53f0\u5b9a\u4e49",(0,a.kt)("strong",{parentName:"li"},"Menus"),"\u3001",(0,a.kt)("strong",{parentName:"li"},"Route"),"\u7b49\u5e95\u5ea7\u76f8\u5173\u8d44\u6e90\uff0c\u5e76\u6253\u5305\u5230\u7ec4\u4ef6\u6a21\u7248\u4e2d"),(0,a.kt)("li",{parentName:"ol"},"\u5185\u6838\u83b7\u53d6",(0,a.kt)("strong",{parentName:"li"},"\u5e95\u5ea7\u81ea\u5b9a\u4e49\u8d44\u6e90"),"\u540e,\u81ea\u52a8\u89e3\u6790\u3001\u914d\u7f6e\u3001\u521b\u5efa\u5bf9\u5e94\u8d44\u6e90"))),(0,a.kt)("p",null,"\u5e95\u5ea7\u670d\u52a1\u652f\u6301\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"\u81ea\u5b9a\u4e49\u83dc\u5355"),"\u548c",(0,a.kt)("strong",{parentName:"p"},"\u8def\u7531"),"\u6269\u5c55\u5e73\u53f0\u670d\u52a1\uff0c\u4e3a\u652f\u6491\u9002\u914d\u8fd9\u4e00\u80fd\u529b\uff0c\u6211\u4eec\u505a\u4e86\u4ee5\u4e0b\u52aa\u529b\uff1a"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u79fb\u690d",(0,a.kt)("strong",{parentName:"li"},"Menu"),"\u8d44\u6e90\u7c7b\u578b"),(0,a.kt)("li",{parentName:"ul"},"\u79fb\u690d",(0,a.kt)("strong",{parentName:"li"},"Route"),"\u914d\u7f6e")),(0,a.kt)("p",null,"\u4ece\u800c\u901a\u8fc7",(0,a.kt)("strong",{parentName:"p"},"\u5185\u6838"),"\u4e32\u8054",(0,a.kt)("strong",{parentName:"p"},"\u4e91\u68af\u4f4e\u4ee3\u7801\u5f00\u53d1\u5e73\u53f0"),"\u4e0e",(0,a.kt)("strong",{parentName:"p"},"\u5e95\u5ea7\u670d\u52a1"),"\u3002"))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/3c7910a2.96cd3189.js b/assets/js/3c7910a2.96cd3189.js deleted file mode 100644 index 457525f10..000000000 --- a/assets/js/3c7910a2.96cd3189.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5662],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var u=a.createContext({}),l=function(e){var n=a.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=l(e.components);return a.createElement(u.Provider,{value:n},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,s=e.originalType,u=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),p=l(t),m=r,f=p["".concat(u,".").concat(m)]||p[m]||d[m]||s;return t?a.createElement(f,i(i({ref:n},c),{},{components:t})):a.createElement(f,i({ref:n},c))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var s=t.length,i=new Array(s);i[0]=m;var o={};for(var u in n)hasOwnProperty.call(n,u)&&(o[u]=n[u]);o.originalType=e,o[p]="string"==typeof e?e:r,i[1]=o;for(var l=2;l{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>i,default:()=>d,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var a=t(7462),r=(t(7294),t(3905));const s={sidebar_position:3},i="\u914d\u7f6e\u5ba1\u8ba1\u80fd\u529b",o={unversionedId:"building-base/configuration/audit-config",id:"building-base/configuration/audit-config",title:"\u914d\u7f6e\u5ba1\u8ba1\u80fd\u529b",description:"\u6ce8\u610f\uff0c\u5ba1\u8ba1\u529f\u80fd\u4f9d\u8d56\u5bf9\u5ba1\u8ba1\u65e5\u5fd7\u7684\u91c7\u96c6\u529f\u80fd\uff0c\u9700\u8981\u5728\u96c6\u7fa4\u8bbe\u7f6e\u4e2d\u914d\u7f6e\u65e5\u5fd7\u670d\u52a1 ElasticSearch \u7684\u5730\u5740\uff0c\u65e5\u5fd7\u670d\u52a1\u7684\u914d\u7f6e\u53c2\u8003\u65e5\u5fd7\u7ec4\u4ef6",source:"@site/docs/building-base/configuration/audit-config.md",sourceDirName:"building-base/configuration",slug:"/building-base/configuration/audit-config",permalink:"/website/docs/building-base/configuration/audit-config",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"\u4f7f\u7528\u7b2c\u4e09\u65b9\u7cfb\u7edf\u767b\u5f55",permalink:"/website/docs/building-base/configuration/3rd-party-account"},next:{title:"\u96c6\u6210\u5355\u70b9\u767b\u5f55",permalink:"/website/docs/building-base/configuration/oidc-integration"}},u={},l=[],c={toc:l},p="wrapper";function d(e){let{components:n,...t}=e;return(0,r.kt)(p,(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u914d\u7f6e\u5ba1\u8ba1\u80fd\u529b"},"\u914d\u7f6e\u5ba1\u8ba1\u80fd\u529b"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"\u6ce8\u610f\uff0c\u5ba1\u8ba1\u529f\u80fd\u4f9d\u8d56\u5bf9\u5ba1\u8ba1\u65e5\u5fd7\u7684\u91c7\u96c6\u529f\u80fd\uff0c\u9700\u8981\u5728\u96c6\u7fa4\u8bbe\u7f6e\u4e2d\u914d\u7f6e\u65e5\u5fd7\u670d\u52a1 ElasticSearch \u7684\u5730\u5740\uff0c\u65e5\u5fd7\u670d\u52a1\u7684\u914d\u7f6e\u53c2\u8003",(0,r.kt)("a",{parentName:"p",href:"/website/docs/component-market/logging"},"\u65e5\u5fd7\u7ec4\u4ef6"))),(0,r.kt)("p",null,"1\u3001\u7f16\u8f91 audit-policy.yaml \u6587\u4ef6\u5bf9\u5ba1\u8ba1\u8fdb\u884c\u914d\u7f6e\uff0c",(0,r.kt)("inlineCode",{parentName:"p"},"kubectl edit cm audit-policy-conf -n u4a-system")),(0,r.kt)("p",null,"\u6309\u7167\u4ee5\u4e0b\u6a21\u5f0f\u8fdb\u884c\u5b9a\u4e49\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: audit.k8s.io/v1beta1\nkind: Policy\n# Don\'t generate audit events for all requests in RequestReceived stage.\nomitStages:\n - "RequestReceived"\nrules:\n # Don\'t audit namespace: kube-system/cluster-system/system-bigdata\n - level: None\n resources:\n - group: "" # core API group\n resources: ["secrets", "configmaps"]\n namespaces: ["kube-system", "cluster-system", "system-bigdata"]\n # Only enable \'write\' verbs audit log for secret and configmap\n - level: Metadata\n verbs: ["create","delete","deletecollection","patch","update"]\n resources:\n - group: "" # core API group\n resources: ["secrets", "configmaps"]\n')),(0,r.kt)("p",null,"\u5404\u4e2a\u7ec4\u4ef6\uff0c\u9700\u8981\u6839\u636e\u81ea\u5df1\u7684\u8d44\u6e90\u7c7b\u578b\uff0c\u6765\u9488\u5bf9\u6027\u7684\u5c06\u81ea\u5df1\u7684\u8d44\u6e90\u6dfb\u52a0\u5230\u5ba1\u8ba1\u7684 rule \u5217\u8868\u4e2d\uff0c\u9ed8\u8ba4\u5bf9\u5199\u64cd\u4f5c\u8fdb\u884c\u5ba1\u8ba1\u5373\u53ef\u3002"),(0,r.kt)("p",null,"2\u3001\u914d\u7f6e kube-apiserver \u53c2\u6570\uff08\u4e5f\u53ef\u4ee5\u5728 kube-oidc-proxy \u4e0a\u8fdb\u884c\u7c7b\u4f3c\u7684\u914d\u7f6e\uff0c\u5728\u65e0\u6cd5\u64cd\u4f5c\u539f\u6709 K8S \u96c6\u7fa4\u7684\u6761\u4ef6\u4e0b\uff0c\u4f7f\u7528 kube-oidc-proxy \u7684\u914d\u7f6e\uff09\uff0c\u6dfb\u52a0\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"# \u5ba1\u8ba1\u7b56\u7565\u914d\u7f6e\u6587\u4ef6\u5730\u5740\n - --audit-policy-file=/etc/kubernetes/pki/audit-policy.yaml\n# \u5ba1\u8ba1\u65e5\u5fd7\u7684\u8def\u5f84\u6587\u4ef6\n - --audit-log-path=/var/log/apiserver/audit/audit.log\n# \u65e5\u5fd7\u4fdd\u5b58\u7b56\u7565\n - --audit-log-maxage=7\n - --audit-log-maxbackup=10\n - --audit-log-maxsize=10\n")),(0,r.kt)("p",null,"\u5982\u679c\u662f\u5728 K8S \u4e0a\u76f4\u63a5\u4fee\u6539\uff0c\u5219\u9700\u8981\u4fee\u6539 /etc/kubernetes/manifests/kube-apiserver.yaml \u6765\u6dfb\u52a0\u8be5\u53c2\u6570\uff0c\u4fee\u6539\u540e\u786e\u8ba4 kube-apiserver \u5bb9\u5668\u53d1\u751f\u91cd\u542f\uff0c\u6b64\u65f6\u914d\u7f6e\u624d\u80fd\u751f\u6548"),(0,r.kt)("p",null,"3\u3001\u914d\u7f6e fluentd \u8fdb\u884c\u91c7\u96c6\uff08\u7d22\u5f15\u6a21\u7248\u8ddf\u539f\u6765\u7684 fluentd \u51b2\u7a81\uff0c\u6240\u4ee5\u9700\u8981\u5355\u72ec\u7684fluentd \u8fdb\u7a0b\u4e13\u95e8\u91c7\u96c6 master \u4e0a\u7684\u5ba1\u8ba1\u65e5\u5fd7\u3002\n\u76ee\u524d\u6d4b\u8bd5\u65b9\u6cd5\uff0c\u4ece\u539f\u6709\u7684 fluentd daemonset \u590d\u5236\u4e00\u4e2a\uff0c\u4fee\u6539 ds \u7684\u540d\u5b57\uff0c\u5e76\u4f7f\u7528\u4ee5\u4e0b\u914d\u7f6e\u6587\u4ef6\u8fdb\u884c\u6302\u8f7d\u5373\u53ef\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"apiVersion: v1\ndata:\n fluent.conf: |2\n # for audit log\n \n @type tail\n @id in_tail_kube_apiserver_audit\n multiline_flush_interval 5s\n path /var/log/apiserver/audit/audit.log\n pos_file /var/log/kube-apiserver-audit.log.pos\n tag kube-apiserver-audit\n \n @type json\n keep_time_key true\n time_key timestamp\n time_format %Y-%m-%dT%T.%L%Z\n \n \n\n ## Used for health check\n \n @type http\n port 9880\n bind 0.0.0.0\n \n\n ## sink all log to elasticsearch directly\n \n @type elasticsearch\n @log_level debug\n include_tag_key true\n host elasticsearch-logging\n port 9200\n user \"#{ENV['ES_USERNAME']}\"\n password \"#{ENV['ES_PASSWORD']}\"\n scheme \"#{ENV['ES_SCHEME']}\"\n ca_file /etc/fluent/certs/ca.crt\n logstash_prefix audit-k8s\n logstash_format true\n # Set the chunk limit the same as for fluentd-gcp.\n reload_on_failure true\n reconnect_on_error true\n request_timeout 120s\n \n @type file\n path /var/log/td-agent/buffer/elasticsearch\n chunk_limit_size 15MB\n total_limit_size 20GB\n flush_interval 3s\n flush_thread_count 8\n flush_mode interval\n # Never wait longer than 5 minutes between retries.\n retry_timeout 300\n retry_forever true\n \n \nkind: ConfigMap\nmetadata:\n labels:\n component: fluentd\n k8s-app: fluentd\n # \u65b0\u7684 fluentd \u4f7f\u7528\u8fd9\u4e2a configmap\n name: fluentd-audit\n namespace: kube-system\n")),(0,r.kt)("p",null,"\u6ce8\u610f\uff1a"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u65b0\u7684 fluentd daemonset \u53ea\u9700\u8981\u542f\u52a8\u5728 kube-oidc-proxy \u90e8\u7f72\u7684\u8282\u70b9\u4e0a\uff08\u901a\u8fc7\u8282\u70b9\u4eb2\u548c\u6027\u914d\u7f6e\uff09"),(0,r.kt)("li",{parentName:"ul"},"\u5c06\u4f7f\u7528\u7684 configmap \u4fee\u6539\u4e3a\u4e0a\u9762\u7684\uff0c\u540d\u5b57 fluentd-audit")),(0,r.kt)("p",null,"4\u3001\u6700\u7ec8\u5728 es \u91cc\u7684\u5ba1\u8ba1\u8bb0\u5f55\u683c\u5f0f\u5982\u4e0b\uff0c\u53ef\u4ee5\u901a\u8fc7\u67e5\u8be2 es \u6765\u83b7\u53d6\u5ba1\u8ba1\u65e5\u5fd7"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'{\n "_index": "logstash-2022.08.20",\n "_type": "fluentd",\n "_id": "iRzLu4IBqmHyli33qpUa",\n "_version": 1,\n "_score": null,\n "_source": {\n "kind": "Event",\n "apiVersion": "audit.k8s.io/v1",\n "level": "Metadata",\n "auditID": "7c0072aa-b48a-4772-bc52-42e50c0e65ce",\n "stage": "ResponseComplete",\n "requestURI": "/api/v1/namespaces/addon-system/configmaps/42c733ea.clastix.capsule.io",\n "verb": "update",\n "user": {\n "username": "system:serviceaccount:addon-system:default",\n "uid": "c8cb442d-853c-4a53-9c83-c7a1520095c4",\n "groups": [\n "system:serviceaccounts",\n "system:serviceaccounts:addon-system",\n "system:authenticated"\n ]\n },\n "sourceIPs": [\n "172.22.96.146"\n ],\n "userAgent": "manager/v0.0.0 (linux/amd64) kubernetes/$Format/leader-election",\n "objectRef": {\n "resource": "configmaps",\n "namespace": "addon-system",\n "name": "42c733ea.clastix.capsule.io",\n "uid": "c4542d46-0e07-41be-8420-f912a2918e51",\n "apiVersion": "v1",\n "resourceVersion": "236579314"\n },\n "responseStatus": {\n "metadata": {},\n "code": 200\n },\n "requestReceivedTimestamp": "2022-08-20T15:07:41.991582Z",\n "stageTimestamp": "2022-08-20T15:07:42.000098Z",\n "annotations": {\n "authentication.k8s.io/legacy-token": "system:serviceaccount:addon-system:default",\n "authorization.k8s.io/decision": "allow",\n "authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \\"t7d.io.capsule-manager-rolebinding\\" of ClusterRole \\"cluster-admin\\" to ServiceAccount \\"default/addon-system\\""\n },\n "@timestamp": "2022-08-20T15:07:42.000871648+00:00",\n "tag": "kube-apiserver-audit"\n },\n "fields": {\n "requestReceivedTimestamp": [\n "2022-08-20T15:07:41.991Z"\n ],\n "stageTimestamp": [\n "2022-08-20T15:07:42.000Z"\n ],\n "@timestamp": [\n "2022-08-20T15:07:42.000Z"\n ]\n },\n "sort": [\n 1661008062000\n ]\n}\n')),(0,r.kt)("p",null,"5\u3001\u5982\u679c\u4e0d\u662f\u6807\u51c6\u7684 K8S \u8d44\u6e90\u7c7b\u578b\u7684\u5ba1\u8ba1\uff0c\u5e94\u7528/\u670d\u52a1\u53ef\u4ee5\u81ea\u5df1\u5c06\u5ba1\u8ba1\u5199\u5165\u5230 /var/log/apiserver/audit \u76ee\u5f55\uff0c\u6bd4\u5982\u547d\u540d\u4e3a service-audit.log\uff0c\u683c\u5f0f\u7b26\u5408 K8S audit \u6d88\u606f\u683c\u5f0f\u5373\u53ef\uff0c\u53c2\u8003\u4ee5\u4e0b\u5355\u6761\u5ba1\u8ba1\u8bb0\u5f55\u7684\u683c\u5f0f\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'{"kind":"Event","apiVersion":"audit.k8s.io/v1","level":"Metadata","auditID":"8d8d8163-54e8-457d-94f6-7851e887f3cf","stage":"ResponseComplete","requestURI":"/api/v1/namespaces/u4a-system/secrets/sh.helm.release.v1.u4a-system.v1","verb":"delete","user":{"username":"admin","groups":["system:nodes","iam.tenxcloud.com"]},"sourceIPs":["172.16.31.254"],"userAgent":"helm/v0.0.0 (darwin/amd64) kubernetes/$Format","objectRef":{"resource":"secrets","namespace":"u4a-system","name":"sh.helm.release.v1.u4a-system.v1","apiVersion":"v1"},"responseStatus":{"metadata":{},"code":200},"requestReceivedTimestamp":"2022-08-24T05:36:36.524760Z","stageTimestamp":"2022-08-24T05:36:36.529890Z"}\n')),(0,r.kt)("p",null,"\u5176\u4e2d\uff0c\u91cd\u70b9\u5173\u6ce8\u7684\u6570\u636e\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"1\uff09kind\uff0c\u7edf\u4e00\u7528 \u201dEvent\u201c\uff0c\u67e5\u8be2\u53ea\u67e5\u8be2 Event \u7684\u5ba1\u8ba1\n\n2\uff09stage\uff1a\u76ee\u524d\u90fd\u662f\u201cResponseComplete\u201c\uff0c\u53ea\u8bb0\u5f55\u4e86\u54cd\u5e94\u7ed3\u675f\u7684\u65f6\u95f4\uff0c\u6ca1\u8bb0\u5f55\u8bf7\u6c42\u6536\u5230\u7684\u65f6\u95f4\n\n3\uff09verb\uff1a\u589e\u5220\u6539\u67e5\n\n4\uff09user.username\uff0c\u64cd\u4f5c\u4eba\n\n5\uff09sourceIPs\uff1a\u5ba2\u6237\u7aef IP\n\n6\uff09objectRef.resource\uff1a\u64cd\u4f5c\u7684\u8d44\u6e90\n\n7\uff09objectRef.namespace\uff1a\u64cd\u4f5c\u7684\u9879\u76ee/namespace\n\n8\uff09responseStatus.code\uff1a\u8fd4\u56de\u4ee3\u7801\n\n9\uff09requestReceivedTimestamp\uff1a\u8bf7\u6c42\u5230\u8fbe\u65f6\u95f4\n")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/41ebaef0.fa98793f.js b/assets/js/41ebaef0.fa98793f.js deleted file mode 100644 index a628a7d64..000000000 --- a/assets/js/41ebaef0.fa98793f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6890],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},s="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,p=e.parentName,d=a(e,["components","mdxType","originalType","parentName"]),s=c(n),m=o,f=s["".concat(p,".").concat(m)]||s[m]||u[m]||i;return n?r.createElement(f,l(l({ref:t},d),{},{components:n})):r.createElement(f,l({ref:t},d))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,l=new Array(i);l[0]=m;var a={};for(var p in t)hasOwnProperty.call(t,p)&&(a[p]=t[p]);a.originalType=e,a[s]="string"==typeof e?e:o,l[1]=a;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var r=n(7462),o=(n(7294),n(3905));const i={sidebar_position:1},l="\u524d\u7aef\u5c42\u5f00\u53d1",a={unversionedId:"lowcode-development/development/frontend",id:"lowcode-development/development/frontend",title:"\u524d\u7aef\u5c42\u5f00\u53d1",description:"KubeBB \u524d\u7aef\u5c42\u7684\u5f00\u53d1\u6a21\u5f0f\u4ecb\u7ecd\u3002",source:"@site/docs/lowcode-development/development/frontend.md",sourceDirName:"lowcode-development/development",slug:"/lowcode-development/development/frontend",permalink:"/website/docs/lowcode-development/development/frontend",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6\u5f00\u53d1",permalink:"/website/docs/category/\u7ec4\u4ef6\u5f00\u53d1"},next:{title:"\u524d\u7aef\u5c42\u57fa\u4e8e\u4f4e\u7801 Kit \u7684\u5f00\u53d1",permalink:"/website/docs/lowcode-development/development/frontend-low-code"}},p={},c=[{value:"\u67b6\u6784\u6982\u8ff0",id:"\u67b6\u6784\u6982\u8ff0",level:2},{value:"\u4f4e\u7801 Kit \u5f00\u53d1\u7684\u5e94\u7528",id:"\u4f4e\u7801-kit-\u5f00\u53d1\u7684\u5e94\u7528",level:2},{value:"\u5e38\u89c4\u5e94\u7528",id:"\u5e38\u89c4\u5e94\u7528",level:2},{value:"\u63a5\u5165\u5fae\u524d\u7aef",id:"\u63a5\u5165\u5fae\u524d\u7aef",level:3},{value:"iframe \u5d4c\u5165\u6216\u83dc\u5355\u8df3\u8f6c",id:"iframe-\u5d4c\u5165\u6216\u83dc\u5355\u8df3\u8f6c",level:3}],d={toc:c},s="wrapper";function u(e){let{components:t,...i}=e;return(0,o.kt)(s,(0,r.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"\u524d\u7aef\u5c42\u5f00\u53d1"},"\u524d\u7aef\u5c42\u5f00\u53d1"),(0,o.kt)("p",null,"KubeBB \u524d\u7aef\u5c42\u7684\u5f00\u53d1\u6a21\u5f0f\u4ecb\u7ecd\u3002"),(0,o.kt)("h2",{id:"\u67b6\u6784\u6982\u8ff0"},"\u67b6\u6784\u6982\u8ff0"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"\u524d\u7aef\u5c42\u67b6\u6784\u56fe",src:n(520).Z,width:"1186",height:"410"})),(0,o.kt)("p",null,"KubeBB \u4e2d\u524d\u7aef\u5c42\u91c7\u7528\u5fae\u524d\u7aef\u67b6\u6784\uff0c\u7531\u57fa\u5ea7\u5e94\u7528 DockApp \u53ca\u5404\u4e2a\u5b50\u5e94\u7528\u7ec4\u6210\uff0c\u6b64\u5916\u4e5f\u652f\u6301\u5e38\u89c4\u5e94\u7528\u4ee5\u5fae\u524d\u7aef\u3001iframe \u5d4c\u5165\u3001\u83dc\u5355\u8df3\u8f6c\u7b49\u65b9\u5f0f\u63a5\u5165\u5230 DockApp \u4e2d\u3002"),(0,o.kt)("h2",{id:"\u4f4e\u7801-kit-\u5f00\u53d1\u7684\u5e94\u7528"},"\u4f4e\u7801 Kit \u5f00\u53d1\u7684\u5e94\u7528"),(0,o.kt)("p",null,"\u4f4e\u7801 Kit \u5373\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\u4e2d\u5f00\u53d1\u7684\u5e94\u7528\uff0c\u672c\u8eab\u5c31\u63a5\u5165\u4e86\u5fae\u524d\u7aef\uff0c\u53ef\u4ee5\u65e0\u7f1d\u63a5\u5165\u5230 DockApp \u4e2d\uff0c\u7528\u6237\u53ef\u4ee5\u5728\u5e94\u7528\u8be6\u60c5\u7684\u53d1\u5e03\u7ba1\u7406\u6a21\u5757\u4e2d\u5bf9\u5e94\u7528\u8fdb\u884c\u53d1\u5e03\uff0c\u5e94\u7528\u53d1\u5e03\u5b8c\u6210\u540e\u4f1a\u751f\u6210\u4e00\u4e2a helm \u5305\uff0c\u8fd9\u4e2a helm \u5305\u5c31\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u63a5\u5165\u4e86\u5fae\u524d\u7aef\u7684 KubeBB \u7ec4\u4ef6\u3002"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"\u53d1\u5e03\u7ba1\u7406",src:n(2461).Z,width:"2705",height:"1763"})),(0,o.kt)("h2",{id:"\u5e38\u89c4\u5e94\u7528"},"\u5e38\u89c4\u5e94\u7528"),(0,o.kt)("p",null,"\u5e38\u89c4\u5e94\u7528\u5373\u6211\u4eec\u5e73\u5e38\u5f00\u53d1\u7684\u6e90\u7801\u5e94\u7528\u3002\u5e38\u89c4\u5e94\u7528\u53ef\u4ee5\u91c7\u7528\u63a5\u5165\u5fae\u524d\u7aef\u3001iframe \u5d4c\u5165\u6216\u83dc\u5355\u8df3\u8f6c\u7684\u5f62\u5f0f\u63a5\u5165\u5230 DockApp \u4e2d\u3002"),(0,o.kt)("h3",{id:"\u63a5\u5165\u5fae\u524d\u7aef"},"\u63a5\u5165\u5fae\u524d\u7aef"),(0,o.kt)("p",null,"DockApp \u91c7\u7528\u7684\u5fae\u524d\u7aef\u6280\u672f\u65b9\u6848\u662f",(0,o.kt)("a",{parentName:"p",href:"https://qiankun.umijs.org/"},"\u4e7e\u5764"),"\uff0c\u5e38\u89c4\u5e94\u7528\u9700\u8981\u6539\u9020\u6210\u4e7e\u5764\u7684\u5fae\u5e94\u7528\uff0c\u624d\u80fd\u63a5\u5165\u5230 DockApp \u4e2d\uff0c\u6559\u7a0b\u8be6\u89c1 ",(0,o.kt)("a",{parentName:"p",href:"https://qiankun.umijs.org/zh/guide/tutorial#%E5%BE%AE%E5%BA%94%E7%94%A8"},"\u9879\u76ee\u5b9e\u8df5 - \u5fae\u5e94\u7528"),"\uff0c\u5982\u679c\u5e38\u89c4\u5e94\u7528\u662f\u7528 Umi.js \u5f00\u53d1\u7684\uff0c\u63a5\u5165\u5fae\u524d\u7aef\u7279\u522b\u7b80\u5355\uff0c\u652f\u6301\u4e00\u952e\u542f\u7528\uff0c\u8be6\u89c1 ",(0,o.kt)("a",{parentName:"p",href:"https://umijs.org/docs/max/micro-frontend"},"UmiJS - \u5fae\u524d\u7aef"),"\u3002"),(0,o.kt)("p",null,"\u63a8\u8350\u5e38\u89c4\u5e94\u7528\u91c7\u7528\u5fae\u524d\u7aef\u7684\u65b9\u5f0f\u63a5\u5165\u5230 DockApp \u4e2d\uff0c\u4f7f\u7528\u4f53\u9a8c\u4f1a\u6bd4\u8f83\u597d\u3002"),(0,o.kt)("h3",{id:"iframe-\u5d4c\u5165\u6216\u83dc\u5355\u8df3\u8f6c"},"iframe \u5d4c\u5165\u6216\u83dc\u5355\u8df3\u8f6c"),(0,o.kt)("p",null,"\u8fd9\u79cd\u63a5\u5165\u65b9\u5f0f\u53ea\u9700\u8981\u5728 KubeBB \u7684 \u201c\u7ba1\u7406\u5de5\u4f5c\u53f0 > \u83dc\u5355\u7ba1\u7406\u201d \u4e2d\u65b0\u5efa\u5e38\u7528\u5e94\u7528\u7684\u5bf9\u5e94\u83dc\u5355\u5373\u53ef\uff0c\u7c7b\u578b\u9700\u8981\u9009\u62e9 iframe \u5d4c\u5165\u6216\u94fe\u63a5\u8df3\u8f6c\uff1a"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"\u83dc\u5355\u521b\u5efa",src:n(3694).Z,width:"2705",height:"1911"})),(0,o.kt)("p",null,"\u8fd9\u79cd\u65b9\u5f0f\u63a5\u5165\u7684\u7b2c\u4e09\u65b9\u5e94\u7528\u4f7f\u7528\u4f53\u9a8c\u8981\u6bd4\u5fae\u524d\u7aef\u63a5\u5165\u7684\u5e94\u7528\u5dee\u4e00\u4e9b\u3002"))}u.isMDXComponent=!0},2461:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/app_publish_tab-903bec47ad3cb07eafb1d667596b2a88.png"},520:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/fe_arch-26eb7478dfaee6c57641f3fd1df63674.svg"},3694:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/menu_create-6e3b032307de3690d86b0059f68becdd.png"}}]); \ No newline at end of file diff --git a/assets/js/45240dc4.e9ca2d80.js b/assets/js/45240dc4.e9ca2d80.js new file mode 100644 index 000000000..7a3b5e4fd --- /dev/null +++ b/assets/js/45240dc4.e9ca2d80.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2071],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>u});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var m=a.createContext({}),o=function(e){var t=a.useContext(m),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=o(e.components);return a.createElement(m.Provider,{value:t},e.children)},k="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},g=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,m=e.parentName,d=p(e,["components","mdxType","originalType","parentName"]),k=o(n),g=r,u=k["".concat(m,".").concat(g)]||k[g]||c[g]||i;return n?a.createElement(u,l(l({ref:t},d),{},{components:n})):a.createElement(u,l({ref:t},d))}));function u(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,l=new Array(i);l[0]=g;var p={};for(var m in t)hasOwnProperty.call(t,m)&&(p[m]=t[m]);p.originalType=e,p[k]="string"==typeof e?e:r,l[1]=p;for(var o=2;o{n.r(t),n.d(t,{assets:()=>m,contentTitle:()=>l,default:()=>c,frontMatter:()=>i,metadata:()=>p,toc:()=>o});var a=n(7462),r=(n(7294),n(3905));const i={sidebar_position:3},l="\u955c\u50cf\u66ff\u6362",p={unversionedId:"develop-guid/core/concepts/imageoverride",id:"develop-guid/core/concepts/imageoverride",title:"\u955c\u50cf\u66ff\u6362",description:"\u4ecb\u7ecd",source:"@site/docs/develop-guid/core/concepts/imageoverride.md",sourceDirName:"develop-guid/core/concepts",slug:"/develop-guid/core/concepts/imageoverride",permalink:"/website/docs/develop-guid/core/concepts/imageoverride",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6",permalink:"/website/docs/develop-guid/core/concepts/component"},next:{title:"\u7ec4\u4ef6\u8ba2\u9605",permalink:"/website/docs/develop-guid/core/concepts/subscription"}},m={},o=[{value:"\u4ecb\u7ecd",id:"\u4ecb\u7ecd",level:2},{value:"\u53c2\u6570\u8bf4\u660e",id:"\u53c2\u6570\u8bf4\u660e",level:2},{value:"Docker \u955c\u50cf\u683c\u5f0f\u8bf4\u660e",id:"docker-\u955c\u50cf\u683c\u5f0f\u8bf4\u660e",level:3},{value:"\u955c\u50cf\u66ff\u6362 \u914d\u7f6e\u8bf4\u660e",id:"\u955c\u50cf\u66ff\u6362-\u914d\u7f6e\u8bf4\u660e",level:3},{value:"\u4ed3\u5e93\u90e8\u5206",id:"\u4ed3\u5e93\u90e8\u5206",level:4},{value:"\u7ec4\u4ef6\u5b89\u88c5\u90e8\u5206",id:"\u7ec4\u4ef6\u5b89\u88c5\u90e8\u5206",level:4},{value:"\u5177\u4f53\u6848\u4f8b",id:"\u5177\u4f53\u6848\u4f8b",level:2},{value:"\u6279\u91cf\u590d\u5236\u4ed3\u5e93",id:"\u6279\u91cf\u590d\u5236\u4ed3\u5e93",level:3},{value:"\u4f7f\u7528\u81ea\u5b9a\u4e49\u955c\u50cf",id:"\u4f7f\u7528\u81ea\u5b9a\u4e49\u955c\u50cf",level:3},{value:"\u6279\u91cf\u590d\u5236\u4ed3\u5e93\uff0c\u4e14\u4f7f\u7528\u81ea\u5b9a\u4e49\u955c\u50cf",id:"\u6279\u91cf\u590d\u5236\u4ed3\u5e93\u4e14\u4f7f\u7528\u81ea\u5b9a\u4e49\u955c\u50cf",level:3},{value:"\u5bf9\u6bd4",id:"\u5bf9\u6bd4",level:2},{value:"\u548c helm \u5b89\u88c5\u547d\u4ee4\u4e2d\u7684 --set image=xxx \u5bf9\u6bd4",id:"\u548c-helm-\u5b89\u88c5\u547d\u4ee4\u4e2d\u7684---set-imagexxx-\u5bf9\u6bd4",level:3}],d={toc:o},k="wrapper";function c(e){let{components:t,...i}=e;return(0,r.kt)(k,(0,a.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u955c\u50cf\u66ff\u6362"},"\u955c\u50cf\u66ff\u6362"),(0,r.kt)("h2",{id:"\u4ecb\u7ecd"},"\u4ecb\u7ecd"),(0,r.kt)("p",null,"\u955c\u50cf\u66ff\u6362\u6307\u7684\u662f\u4f7f\u7528\u6307\u5b9a\u7684\u955c\u50cf\u540d\u79f0\u66ff\u6362 helm chart \u5305\u4e2d\u7684\u955c\u50cf\u4ece\u800c\u6b63\u5e38\u5b89\u88c5\u7684\u529f\u80fd\u3002\u5e38\u7528\u4e8e kubernetes \u79bb\u7ebf\u73af\u5883\uff0c\u65e0\u6cd5\u8bbf\u95ee\u539f\u59cb\u955c\u50cf\u4ed3\u5e93\u65f6\u4f7f\u7528\u3002"),(0,r.kt)("p",null,"\u8fd9\u65f6\u6211\u4eec\u901a\u5e38\u4f1a\u505a 2 \u4ef6\u4e8b\uff1a\u9996\u5148\u627e\u4e00\u4e2a\u53ef\u4ee5\u8bbf\u95ee\u539f\u59cb\u955c\u50cf\u4ed3\u5e93\u7684\u73af\u5883\u4e0b\u8f7d\u955c\u50cf\uff0c\u5e76\u5c06\u955c\u50cf\u6309\u4e00\u5b9a\u7684\u89c4\u5219\u4e0a\u4f20\u5230\u81ea\u5df1\u7684\u955c\u50cf\u4ed3\u5e93\u4e2d\uff0c\u7136\u540e\u5728\u5b89\u88c5\u65f6\u4fee\u6539\u955c\u50cf\u5730\u5740\u3002\u672c\u529f\u80fd\u5c31\u662f\u4e3a\u4e86\u65b9\u4fbf\u7684\u5b8c\u6210\u7b2c 2 \u6b65\u800c\u8bbe\u8ba1\u7684\u3002"),(0,r.kt)("p",null,"\u6709\u5982\u4e0b\u4f18\u52bf\uff1a"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u65e0\u9700\u66f4\u6539 helm chart \u5305\u3002"),(0,r.kt)("li",{parentName:"ol"},"\u6309\u9700\u66f4\u6539\uff0c\u9897\u7c92\u5ea6\u5c0f\u3002"),(0,r.kt)("li",{parentName:"ol"},"\u5206\u4e3a\u4ed3\u5e93\u7ec4\u4ef6\u66ff\u6362\u548c\u7ec4\u4ef6\u66ff\u6362\uff0c\u53ef\u5206\u522b\u914d\u7f6e\uff0c\u4e92\u76f8\u89e3\u8026\uff0c\u4e92\u4e0d\u5f71\u54cd\u3002")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"image-changed",src:n(9435).Z,width:"1180",height:"834"})),(0,r.kt)("p",null,"\u4ee5\u4e0a\u56fe\u4e3a\u4f8b\uff0chelm chart \u5305\u4e2d\u7684\u955c\u50cf\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"docker.com/library/nginx:1.25.1"),"\uff0c\u6211\u4eec\u5b9e\u9645\u5b89\u88c5 helm chart \u5305\u65f6\uff0c\u9700\u8981\u7684\u955c\u50cf\u5730\u5740\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"192.168.1.1/system-container/nginx:latest"),"\uff0c\u955c\u50cf\u66ff\u6362\u529f\u80fd\u786e\u4fdd\u4e86\u6211\u4eec\u5b89\u88c5\u65f6\u4f7f\u7528\u540e\u4e00\u4e2a\u5730\u5740\u8fdb\u884c\u5b89\u88c5\u3002"),(0,r.kt)("p",null,"\u955c\u50cf\u66ff\u6362\u529f\u80fd\u5b9e\u9645\u662f\u901a\u8fc7 ",(0,r.kt)("a",{parentName:"p",href:"https://helm.sh/docs/topics/advanced/#post-rendering"},"Helm:post-rendering")," \u6280\u672f\u5b9e\u73b0\u7684\u3002"),(0,r.kt)("h2",{id:"\u53c2\u6570\u8bf4\u660e"},"\u53c2\u6570\u8bf4\u660e"),(0,r.kt)("h3",{id:"docker-\u955c\u50cf\u683c\u5f0f\u8bf4\u660e"},"Docker \u955c\u50cf\u683c\u5f0f\u8bf4\u660e"),(0,r.kt)("p",null,"\u6211\u4eec\u4ecd\u7136\u4ee5 ",(0,r.kt)("inlineCode",{parentName:"p"},"docker.com/library/nginx:1.25.1")," \u4e3a\u4f8b\u6765\u8bf4\u660e\uff1a"),(0,r.kt)("p",null,"\u6839\u636e ",(0,r.kt)("a",{parentName:"p",href:"https://docs.docker.com/engine/reference/commandline/tag/#description"},"docker \u5b98\u65b9\u6587\u6863"),"\u57fa\u672c\u683c\u5f0f\u4e3a\uff1a",(0,r.kt)("inlineCode",{parentName:"p"},"[HOST[:PORT_NUMBER]/]PATH:TAG"),"\uff0c\u5176\u4e2d\uff1a"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"HOST: \u53ef\u9009\uff0c\u4e3b\u673a\u540d\u6307\u5b9a\u6620\u50cf\u6240\u5728\u7684\u4f4d\u7f6e\u3002\u4e3b\u673a\u540d\u5fc5\u987b\u7b26\u5408\u6807\u51c6 DNS \u89c4\u5219\uff0c\u4f46\u4e0d\u5f97\u5305\u542b\u4e0b\u5212\u7ebf\u3002\u5982\u679c\u672a\u6307\u5b9a\u4e3b\u673a\u540d\uff0c\u5219 Docker \u9ed8\u8ba4\u4f7f\u7528\u4f4d\u4e8e ",(0,r.kt)("inlineCode",{parentName:"li"},"registry-1.docker.io")," \u7684\u516c\u5171\u955c\u50cf\u4ed3\u5e93\u3002"),(0,r.kt)("li",{parentName:"ul"},"PORT_NUMBER: \u5982\u679c\u5b58\u5728\u4e3b\u673a\u540d\uff0c\u5219\u53ef\u4ee5\u9009\u62e9\u5728\u5176\u540e\u9762\u8ddf\u968f\u683c\u5f0f\u4e3a ",(0,r.kt)("inlineCode",{parentName:"li"},":8080")," \u7684\u955c\u50cf\u4ed3\u5e93\u7aef\u53e3\u53f7\u3002"),(0,r.kt)("li",{parentName:"ul"},"PATH: \u8def\u5f84\u7531\u659c\u6760\u5206\u9694\u7684\u90e8\u5206\u7ec4\u6210\u3002\u6bcf\u4e2a\u90e8\u5206\u53ef\u4ee5\u5305\u542b\u5c0f\u5199\u5b57\u6bcd\u3001\u6570\u5b57\u548c\u5206\u9694\u7b26\u3002\u5206\u9694\u7b26\u5b9a\u4e49\u4e3a\u4e00\u4e2a\u53e5\u70b9\u3001\u4e00\u4e2a\u6216\u4e24\u4e2a\u4e0b\u5212\u7ebf\u3001\u6216\u8005\u4e00\u4e2a\u6216\u591a\u4e2a\u8fde\u5b57\u7b26\u3002\u90e8\u5206\u4e0d\u80fd\u4ee5\u5206\u9694\u7b26\u5f00\u59cb\u6216\u7ed3\u675f\u3002\u867d\u7136 ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/opencontainers/distribution-spec"},"OCI \u89c4\u8303"),"\u652f\u6301\u4e24\u4e2a\u4ee5\u4e0a\u659c\u6760\u5206\u9694\u7684\u90e8\u5206\uff0c\u4f46\u5927\u591a\u6570\u955c\u50cf\u4ed3\u5e93\u4ec5\u652f\u6301\u4e24\u4e2a\u659c\u6760\u5206\u9694\u7684\u90e8\u5206\u3002\u5bf9\u4e8e Docker \u7684\u516c\u5171\u955c\u50cf\u4ed3\u5e93\uff0c\u8def\u5f84\u683c\u5f0f\u5982\u4e0b\uff1a",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"[NAMESPACE/]REPOSITORY"),": \u7b2c\u4e00\u4e2a\u53ef\u9009\u90e8\u5206\u901a\u5e38\u662f\u7528\u6237\u6216\u7ec4\u7ec7\u7684\u547d\u540d\u7a7a\u95f4\u3002\u7b2c\u4e8c\u4e2a\u5f3a\u5236\u90e8\u5206\u662f\u5b58\u50a8\u5e93\u540d\u79f0\u3002\u5f53\u547d\u540d\u7a7a\u95f4\u4e0d\u5b58\u5728\u65f6\uff0cDocker \u4f7f\u7528 ",(0,r.kt)("inlineCode",{parentName:"li"},"library")," \u4f5c\u4e3a\u9ed8\u8ba4\u547d\u540d\u7a7a\u95f4\u3002"))),(0,r.kt)("li",{parentName:"ul"},"\u5728\u955c\u50cf\u540d\u79f0\u4e4b\u540e\uff0c\u53ef\u9009\u7684 ",(0,r.kt)("inlineCode",{parentName:"li"},"TAG")," \u662f\u4e00\u4e2a\u81ea\u5b9a\u4e49\u7684\u3001\u4eba\u7c7b\u53ef\u8bfb\u7684\u6e05\u5355\u6807\u8bc6\u7b26\uff0c\u901a\u5e38\u662f\u955c\u50cf\u7684\u7279\u5b9a\u7248\u672c\u6216\u53d8\u4f53\u3002\u8be5\u6807\u7b7e\u5fc5\u987b\u662f\u6709\u6548\u7684 ASCII\uff0c\u5e76\u4e14\u53ef\u4ee5\u5305\u542b\u5c0f\u5199\u548c\u5927\u5199\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf\u3001\u53e5\u70b9\u548c\u8fde\u5b57\u7b26\u3002\u5b83\u4e0d\u80fd\u4ee5\u53e5\u70b9\u6216\u8fde\u5b57\u7b26\u5f00\u5934\uff0c\u4e14\u4e0d\u5f97\u8d85\u8fc7 128 \u4e2a\u5b57\u7b26\u3002\u5982\u679c\u672a\u6307\u5b9a\u6807\u8bb0\uff0c\u5219 Docker \u547d\u4ee4\u9ed8\u8ba4\u4f7f\u7528 ",(0,r.kt)("inlineCode",{parentName:"li"},"latest"),"\u3002")),(0,r.kt)("h3",{id:"\u955c\u50cf\u66ff\u6362-\u914d\u7f6e\u8bf4\u660e"},"\u955c\u50cf\u66ff\u6362 \u914d\u7f6e\u8bf4\u660e"),(0,r.kt)("h4",{id:"\u4ed3\u5e93\u90e8\u5206"},"\u4ed3\u5e93\u90e8\u5206"),(0,r.kt)("p",null,"\u4e00\u4e2a\u4ed3\u5e93\u7684\u4f8b\u5b50\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: Repository\nmetadata:\n name: repository-bitnami-special-version\n namespace: kubebb-system\nspec:\n # \u7701\u7565\u5176\u4ed6\u90e8\u5206\n imageOverride:\n - registry: docker.io\n newRegistry: 192.168.1.1\n pathOverride:\n path: library\n newPath: system-container\n")),(0,r.kt)("p",null,"\u6bcf\u9879\u53c2\u6570\u7684\u5177\u4f53\u8bf4\u660e\uff1a"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"spec.imageOverride")," \u975e\u5fc5\u9700\uff0c\u8be5\u5b57\u6bb5\u662f\u6570\u7ec4\uff0c\u5b9a\u4e49\u4e86\u4e00\u7cfb\u5217\u4ed3\u5e93\u7ea7\u522b\u7684\u955c\u50cf\u8986\u76d6\u7b56\u7565\u3002"),(0,r.kt)("p",null,"\u6bcf\u4e00\u9879\u5185\u5bb9\u5305\u62ec\uff1a"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"spec.imageOverride[].registry")," \u8be5\u955c\u50cf\u4ed3\u5e93\u57df\u540d\u5730\u5740\uff0c\u53ef\u4ee5\u5305\u542b\u7aef\u53e3\uff0c\u4f8b\u5982\uff1a",(0,r.kt)("inlineCode",{parentName:"li"},"docker.io"),"\uff0c",(0,r.kt)("inlineCode",{parentName:"li"},"192.168.1.1:5000")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"spec.imageOverride[].newRegistry")," \u8981\u5c06 ",(0,r.kt)("inlineCode",{parentName:"li"},"registry")," \u66ff\u6362\u540e\u7684\u955c\u50cf\u4ed3\u5e93\u57df\u540d\u5730\u5740\uff0c\u53ef\u4ee5\u5305\u542b\u7aef\u53e3\u3002"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"spec.imageOverride[].pathOverride")," \u975e\u5fc5\u9700\uff0c\u6570\u7ec4\u3002",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"spec.imageOverride[].pathOverride.path")," \u65e7\u7684\u955c\u50cf\u4ed3\u5e93\u8def\u5f84\uff0c\u6bd4\u5982\u955c\u50cf\u5730\u5740 ",(0,r.kt)("inlineCode",{parentName:"li"},"docker.io/library/nginx:latest")," \u4e2d\u7684 path \u4e3a ",(0,r.kt)("inlineCode",{parentName:"li"},"library")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"spec.imageOverride[].pathOverride.newPath")," \u8981\u5c06 ",(0,r.kt)("inlineCode",{parentName:"li"},"path")," \u66ff\u6362\u540e\u7684\u955c\u50cf\u4ed3\u5e93\u65b0\u8def\u5f84\uff0c\u53ef\u4ee5\u4e3a\u7a7a\u3002")))),(0,r.kt)("h4",{id:"\u7ec4\u4ef6\u5b89\u88c5\u90e8\u5206"},"\u7ec4\u4ef6\u5b89\u88c5\u90e8\u5206"),(0,r.kt)("p",null,"\u4e0b\u9762\u662f\u4e00\u4e2a ComponentPlan \u793a\u4f8b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: ComponentPlan\nmetadata:\n name: nginx-15.0.2\n namespace: kubebb-system\nspec:\n # \u7701\u7565\u5176\u4ed6\u90e8\u5206\n override:\n images:\n - name: docker.io/bitnami/nginx\n newTag: latest\n")),(0,r.kt)("p",null,"\u6bcf\u9879\u53c2\u6570\u7684\u5177\u4f53\u8bf4\u660e\uff1a"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"spec.override.images")," \u6570\u7ec4\u3002\u7c7b\u4f3c ",(0,r.kt)("a",{parentName:"p",href:"https://kubectl.docs.kubernetes.io/references/kustomize/builtins/#_imagetagtransformer_"},(0,r.kt)("inlineCode",{parentName:"a"},"kustomize")," \u7684\u955c\u50cf\u81ea\u5b9a\u4e49\u53c2\u6570")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"spec.override.images[].name")),(0,r.kt)("p",{parentName:"li"},"\u539f\u59cb\u955c\u50cf\u540d\u79f0\uff0c",(0,r.kt)("inlineCode",{parentName:"p"},"tag")," \u53ef\u9009\uff0c\u5982\u679c\u5305\u542b ",(0,r.kt)("inlineCode",{parentName:"p"},"tag"),"\uff0c\u5219\u5339\u914d\u7cbe\u786e\u5230 ",(0,r.kt)("inlineCode",{parentName:"p"},"tag")," \u4e00\u81f4\u624d\u66ff\u6362\uff0c\u6bd4\u5982\uff0c\u5982\u679c\u8be5\u9879\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"docker.io/bitnami/nginx:v1"),"\uff0c\u90a3\u4e48\u53ea\u5339\u914d tag \u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"v1")," \u7684 nginx \u955c\u50cf\uff0c\u5982\u679c\u6709 ",(0,r.kt)("inlineCode",{parentName:"p"},"docker.io/bitnami/nginx:v2")," \u4e0d\u4f1a\u88ab\u66ff\u6362\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"spec.override.images[].newName")),(0,r.kt)("p",{parentName:"li"},"\u66ff\u4ee3\u539f\u59cb\u955c\u50cf\u540d\u79f0\u7684\u540d\u79f0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"spec.override.images[].newTag")),(0,r.kt)("p",{parentName:"li"},"\u66ff\u4ee3\u539f\u59cb ",(0,r.kt)("inlineCode",{parentName:"p"},"tag")," \u7684\u65b0 ",(0,r.kt)("inlineCode",{parentName:"p"},"tag")," \u540d\u79f0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"spec.override.images[].digest")),(0,r.kt)("p",{parentName:"li"},"\u66ff\u4ee3\u539f\u59cb ",(0,r.kt)("inlineCode",{parentName:"p"},"tag")," \u7684\u65b0 ",(0,r.kt)("inlineCode",{parentName:"p"},"digest"),"\uff0c\u5982\u679c ",(0,r.kt)("inlineCode",{parentName:"p"},"digest")," \u6709\u503c\uff0c\u4f1a\u5ffd\u7565 ",(0,r.kt)("inlineCode",{parentName:"p"},"newTag")," \u7684\u503c\u3002"))),(0,r.kt)("h2",{id:"\u5177\u4f53\u6848\u4f8b"},"\u5177\u4f53\u6848\u4f8b"),(0,r.kt)("h3",{id:"\u6279\u91cf\u590d\u5236\u4ed3\u5e93"},"\u6279\u91cf\u590d\u5236\u4ed3\u5e93"),(0,r.kt)("p",null,"\u5047\u8bbe\u6211\u4eec\u5e0c\u671b\u5c06 helm chart \u5305 ",(0,r.kt)("a",{parentName:"p",href:"https://artifacthub.io/packages/helm/bitnami/nginx/15.0.2"},"bitnami nginx chart version:15.0.2")," \u90e8\u7f72\u5230\u79bb\u7ebf kubernetes \u73af\u5883\uff0c\u8fd9\u91cc\u6d89\u53ca\u5230\u7684\u955c\u50cf\u4e3a\uff1a"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u539f\u59cb\u955c\u50cf"),(0,r.kt)("th",{parentName:"tr",align:null},"\u7528\u9014"),(0,r.kt)("th",{parentName:"tr",align:null},"\u5fc5\u9009"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx:1.25.1-debian-11-r0"),(0,r.kt)("td",{parentName:"tr",align:null},"nginx deployment \u4f7f\u7528"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5fc5\u9009")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/git:2.41.0-debian-11-r4"),(0,r.kt)("td",{parentName:"tr",align:null},"nginx deployment \u5bfc\u5165\u914d\u7f6e\u4f7f\u7528"),(0,r.kt)("td",{parentName:"tr",align:null},"\u53ef\u9009")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx-exporter\uff1a0.11.0-debian-11-r91"),(0,r.kt)("td",{parentName:"tr",align:null},"nginx deployment \u66b4\u9732 metric \u4f7f\u7528"),(0,r.kt)("td",{parentName:"tr",align:null},"\u53ef\u9009")))),(0,r.kt)("p",null,"\u5047\u8bbe\u6211\u4eec\u5c06 ",(0,r.kt)("inlineCode",{parentName:"p"},"docker.io/bitnami/")," \u955c\u50cf\u4ed3\u5e93\u6279\u91cf\u590d\u5236\u5230\u4e86\u6211\u4eec\u81ea\u5df1\u7684\u955c\u50cf\u4ed3\u5e93 ",(0,r.kt)("inlineCode",{parentName:"p"},"192.168.1.1:5000")," \u4e2d\uff0c\u90a3\u4e48\u4e0a\u9762\u955c\u50cf\u7684\u5730\u5740\u5c06\u53d8\u66f4\u5982\u4e0b\uff1a"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u539f\u59cb\u955c\u50cf"),(0,r.kt)("th",{parentName:"tr",align:null},"\u672c\u5730\u955c\u50cf"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx:1.25.1-debian-11-r0"),(0,r.kt)("td",{parentName:"tr",align:null},"192.168.1.1:5000/nginx:1.25.1-debian-11-r0")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/git:2.41.0-debian-11-r4"),(0,r.kt)("td",{parentName:"tr",align:null},"192.168.1.1:5000/git:2.41.0-debian-11-r4")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx-exporter:0.11.0-debian-11-r91"),(0,r.kt)("td",{parentName:"tr",align:null},"192.168.1.1:5000/nginx-exporter:0.11.0-debian-11-r91")))),(0,r.kt)("p",null,"\u90a3\u4e48\uff0c\u6211\u4eec\u53ea\u9700\u8981\u5728\u4ed3\u5e93\u4e2d\u4fee\u6539\u914d\u7f6e\u5982\u4e0b\u5373\u53ef"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: Repository\nmetadata:\n name: repository-bitnami-special-version\n namespace: kubebb-system\nspec:\n # \u7701\u7565\u5176\u4ed6\u90e8\u5206\n imageOverride:\n - registry: docker.io\n newRegistry: 192.168.1.1:5000\n pathOverride:\n path: bitnami\n newPath: ""\n')),(0,r.kt)("h3",{id:"\u4f7f\u7528\u81ea\u5b9a\u4e49\u955c\u50cf"},"\u4f7f\u7528\u81ea\u5b9a\u4e49\u955c\u50cf"),(0,r.kt)("p",null,"\u5047\u8bbe\u6211\u4eec\u5e0c\u671b\u5c06 helm chart \u5305 ",(0,r.kt)("a",{parentName:"p",href:"https://artifacthub.io/packages/helm/bitnami/nginx/15.0.2"},"bitnami nginx chart version:15.0.2")," \u90e8\u7f72\u5230\u53ef\u8bbf\u95ee docker.io \u7684 kubernetes \u73af\u5883\u4e2d\uff0c\u8fd9\u91cc\u6d89\u53ca\u5230\u7684\u955c\u50cf\u4e3a\uff1a"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u539f\u59cb\u955c\u50cf"),(0,r.kt)("th",{parentName:"tr",align:null},"\u7528\u9014"),(0,r.kt)("th",{parentName:"tr",align:null},"\u5fc5\u9009"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx:1.25.1-debian-11-r0"),(0,r.kt)("td",{parentName:"tr",align:null},"nginx deployment \u4f7f\u7528"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5fc5\u9009")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/git:2.41.0-debian-11-r4"),(0,r.kt)("td",{parentName:"tr",align:null},"nginx deployment \u5bfc\u5165\u914d\u7f6e\u4f7f\u7528"),(0,r.kt)("td",{parentName:"tr",align:null},"\u53ef\u9009")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx-exporter\uff1a0.11.0-debian-11-r91"),(0,r.kt)("td",{parentName:"tr",align:null},"nginx deployment \u66b4\u9732 metric \u4f7f\u7528"),(0,r.kt)("td",{parentName:"tr",align:null},"\u53ef\u9009")))),(0,r.kt)("p",null,"\u5047\u8bbe\u6211\u4eec\u5e0c\u671b\u4f7f\u7528\u81ea\u5df1\u7f16\u8bd1\u7684 nginx \u955c\u50cf ",(0,r.kt)("inlineCode",{parentName:"p"},"192.168.1.1:5000/tmp/nginx:2023"),"\uff0c\u90a3\u4e48\u4e0a\u9762\u955c\u50cf\u7684\u5730\u5740\u53d8\u66f4\u5982\u4e0b\uff1a"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u539f\u59cb\u955c\u50cf"),(0,r.kt)("th",{parentName:"tr",align:null},"\u672c\u5730\u955c\u50cf"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx:1.25.1-debian-11-r0"),(0,r.kt)("td",{parentName:"tr",align:null},"192.168.1.1:5000/tmp/nginx:2023")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/git:2.41.0-debian-11-r4"),(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/git:2.41.0-debian-11-r4")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx-exporter:0.11.0-debian-11-r91"),(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx-exporter:0.11.0-debian-11-r91")))),(0,r.kt)("p",null,"\u90a3\u4e48\uff0c\u6211\u4eec\u53ea\u9700\u8981\u5728\u5b89\u88c5\u65f6\u7684 ComponentPlan \u4e2d\u914d\u7f6e\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: ComponentPlan\nmetadata:\n name: nginx-15.0.2\n namespace: kubebb-system\nspec:\n # \u7701\u7565\u5176\u4ed6\u90e8\u5206\n override:\n images:\n - name: docker.io/bitnami/nginx\n newName: 192.168.1.1:5000/tmp/nginx \n newTag: "2023"\n')),(0,r.kt)("h3",{id:"\u6279\u91cf\u590d\u5236\u4ed3\u5e93\u4e14\u4f7f\u7528\u81ea\u5b9a\u4e49\u955c\u50cf"},"\u6279\u91cf\u590d\u5236\u4ed3\u5e93\uff0c\u4e14\u4f7f\u7528\u81ea\u5b9a\u4e49\u955c\u50cf"),(0,r.kt)("p",null,"\u5047\u8bbe\u6211\u4eec\u5e0c\u671b\u5c06 helm chart \u5305 ",(0,r.kt)("a",{parentName:"p",href:"https://artifacthub.io/packages/helm/bitnami/nginx/15.0.2"},"bitnami nginx chart version:15.0.2")," \u90e8\u7f72\u5230\u79bb\u7ebf kubernetes \u73af\u5883\uff0c\u8fd9\u91cc\u6d89\u53ca\u5230\u7684\u955c\u50cf\u4e3a\uff1a"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u539f\u59cb\u955c\u50cf"),(0,r.kt)("th",{parentName:"tr",align:null},"\u7528\u9014"),(0,r.kt)("th",{parentName:"tr",align:null},"\u5fc5\u9009"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx:1.25.1-debian-11-r0"),(0,r.kt)("td",{parentName:"tr",align:null},"nginx deployment \u4f7f\u7528"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5fc5\u9009")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/git:2.41.0-debian-11-r4"),(0,r.kt)("td",{parentName:"tr",align:null},"nginx deployment \u5bfc\u5165\u914d\u7f6e\u4f7f\u7528"),(0,r.kt)("td",{parentName:"tr",align:null},"\u53ef\u9009")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx-exporter\uff1a0.11.0-debian-11-r91"),(0,r.kt)("td",{parentName:"tr",align:null},"nginx deployment \u66b4\u9732 metric \u4f7f\u7528"),(0,r.kt)("td",{parentName:"tr",align:null},"\u53ef\u9009")))),(0,r.kt)("p",null,"\u5047\u8bbe\u6211\u4eec\u5c06 ",(0,r.kt)("inlineCode",{parentName:"p"},"docker.io/bitnami/")," \u955c\u50cf\u4ed3\u5e93\u6279\u91cf\u590d\u5236\u5230\u4e86\u6211\u4eec\u81ea\u5df1\u7684\u955c\u50cf\u4ed3\u5e93 ",(0,r.kt)("inlineCode",{parentName:"p"},"192.168.1.1:5000/bitnami-mirror/")," \u4e2d\uff0c\u5e76\u4e14\u6211\u4eec\u5e0c\u671b\u4f7f\u7528\u81ea\u5df1\u7f16\u8bd1\u7684 nginx \u955c\u50cf ",(0,r.kt)("inlineCode",{parentName:"p"},"192.168.1.1:5000/tmp/nginx:2023"),"\uff0c\u90a3\u4e48\u4e0a\u9762\u955c\u50cf\u7684\u5730\u5740\u53d8\u66f4\u5982\u4e0b\uff1a"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u539f\u59cb\u955c\u50cf"),(0,r.kt)("th",{parentName:"tr",align:null},"\u672c\u5730\u955c\u50cf"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx:1.25.1-debian-11-r0"),(0,r.kt)("td",{parentName:"tr",align:null},"192.168.1.1:5000/tmp/nginx:2023")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/git:2.41.0-debian-11-r4"),(0,r.kt)("td",{parentName:"tr",align:null},"192.168.1.1:5000/bitnami-mirror/git:2.41.0-debian-11-r4")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx-exporter\uff1a0.11.0-debian-11-r91"),(0,r.kt)("td",{parentName:"tr",align:null},"192.168.1.1:5000/bitnami-mirror/nginx-exporter\uff1a0.11.0-debian-11-r91")))),(0,r.kt)("p",null,"\u90a3\u4e48\uff0c\u6211\u4eec\u9996\u5148\u9700\u8981\u5728\u4ed3\u5e93\u4e2d\u914d\u7f6e\u5982\u4e0b"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: Repository\nmetadata:\n name: repository-bitnami-special-version\n namespace: kubebb-system\nspec:\n # \u7701\u7565\u5176\u4ed6\u90e8\u5206\n imageOverride:\n - registry: docker.io\n newRegistry: 192.168.1.1:5000\n pathOverride:\n path: bitnami\n newPath: bitnami-mirror\n")),(0,r.kt)("p",null,"\u7136\u540e\u5728\u5728\u5b89\u88c5\u65f6\u7684 ComponentPlan \u4e2d\u914d\u7f6e\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: ComponentPlan\nmetadata:\n name: nginx-15.0.2\n namespace: kubebb-system\nspec:\n # \u7701\u7565\u5176\u4ed6\u90e8\u5206\n override:\n images:\n - name: docker.io/bitnami/nginx\n newName: 192.168.1.1:5000/tmp/nginx \n newTag: "2023"\n')),(0,r.kt)("h2",{id:"\u5bf9\u6bd4"},"\u5bf9\u6bd4"),(0,r.kt)("h3",{id:"\u548c-helm-\u5b89\u88c5\u547d\u4ee4\u4e2d\u7684---set-imagexxx-\u5bf9\u6bd4"},"\u548c helm \u5b89\u88c5\u547d\u4ee4\u4e2d\u7684 ",(0,r.kt)("inlineCode",{parentName:"h3"},"--set image=xxx")," \u5bf9\u6bd4"),(0,r.kt)("p",null,"\u5f88\u591a helm chart \u5305\u5728 ",(0,r.kt)("inlineCode",{parentName:"p"},"values.yaml")," \u4e2d\u63d0\u4f9b\u4e86\u53d8\u91cf\u6765\u5b58\u50a8\u955c\u50cf\u7684\u5730\u5740\u3002"),(0,r.kt)("p",null,"\u4e00\u4e9b\u8bbe\u8ba1\u7684\u66f4\u52a0\u7cbe\u5de7\u7684 helm chart \u5305\u8fd8\u8be6\u7ec6\u7684\u533a\u5206\u4e86\u955c\u50cf\u7684 registry \uff0crepository \u548c tag\u3002\uff08\u6bd4\u5982\u4e0a\u9762\u63d0\u5230\u7684 helm chart \u5305 ",(0,r.kt)("a",{parentName:"p",href:"https://artifacthub.io/packages/helm/bitnami/nginx/15.0.2"},"bitnami nginx chart version:15.0.2")," \u63d0\u4f9b\u4e86 ",(0,r.kt)("inlineCode",{parentName:"p"},"image.registry"),"(\u9ed8\u8ba4\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"docker.io"),") ",(0,r.kt)("inlineCode",{parentName:"p"},"image.repository"),"(\u9ed8\u8ba4\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"bitnami/nginx"),") ",(0,r.kt)("inlineCode",{parentName:"p"},"image.tag"),"(\u9ed8\u8ba4\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"1.25.1-debian-11-r0"),") \u548c ",(0,r.kt)("inlineCode",{parentName:"p"},"image.digest"),"(\u9ed8\u8ba4\u4e3a\u7a7a) \u56db\u4e2a\u53d8\u91cf\uff09"),(0,r.kt)("p",null,"\u4f7f\u7528\u8fd9\u4e9b\u53d8\u91cf\u6765\u4fee\u6539\u955c\u50cf\u5730\u5740\u662f\u53ef\u884c\u7684\u3002"),(0,r.kt)("p",null,"\u4f46\u662f\u4e0d\u662f\u6240\u6709\u7684 helm chart \u5305\u90fd\u9075\u5faa\u4e86\u8fd9\u4e9b\u5b9e\u8df5\uff0c\u53e6\u4e00\u65b9\u9762\uff0chelm chart \u5305\u4f7f\u7528\u54ea\u4e2a\u53d8\u91cf\u6765\u66ff\u6362\u955c\u50cf\u5e76\u6ca1\u6709\u7edf\u4e00\u7684\u89c4\u8303\u3002"),(0,r.kt)("p",null,"\u4f7f\u7528\u955c\u50cf\u66ff\u6362\u529f\u80fd\u53ef\u4ee5\u65e0\u89c6\u4e0a\u8ff0\u95ee\u9898\uff0c\u5b9e\u73b0\u7edf\u4e00\u955c\u50cf\u66ff\u6362\u3002"),(0,r.kt)("p",null,"\u53e6\u4e00\u4e2a\u573a\u666f\u662f\uff0c\u5f53\u6211\u4eec\u590d\u5236\u955c\u50cf\u4ed3\u5e93\u65f6\uff08\u6bd4\u5982\u4fee\u6539 harbor \u7684\u5bf9\u5916\u5730\u5740\uff0c\u6216\u8005\u5c06\u955c\u50cf\u79bb\u7ebf\u5b89\u88c5\u5230\u53e6\u4e00\u4e2a\u73af\u5883\uff09\uff0c\u5982\u679c\u4f7f\u7528 helm \u7684\u5b89\u88c5\u547d\u4ee4 ",(0,r.kt)("inlineCode",{parentName:"p"},"--set image=xxx")," \u6765\u5b89\u88c5\uff0c\u6211\u4eec\u9700\u8981\u4fee\u6539\u6bcf\u4e00\u4e2a\u547d\u4ee4\u4e3a\u65b0\u7684\u4ed3\u5e93\u5730\u5740\u3002\u800c\u4f7f\u7528\u955c\u50cf\u66ff\u6362\u529f\u80fd\uff0c\u6211\u4eec\u53ea\u9700\u8981\u4fee\u6539\u4ed3\u5e93\u7684\u914d\u7f6e\uff0c\u7ec4\u4ef6\u7684\u914d\u7f6e\u65e0\u9700\u4fee\u6539\u3002"))}c.isMDXComponent=!0},9435:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/image-changed-6cc1cd7373beaa44065302ebf7479fc7.png"}}]); \ No newline at end of file diff --git a/assets/js/473a5afa.215ee1a5.js b/assets/js/473a5afa.215ee1a5.js new file mode 100644 index 000000000..ad5c50c98 --- /dev/null +++ b/assets/js/473a5afa.215ee1a5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8013],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o=r.createContext({}),c=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(o.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,o=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),s=c(n),d=a,k=s["".concat(o,".").concat(d)]||s[d]||m[d]||i;return n?r.createElement(k,l(l({ref:t},u),{},{components:n})):r.createElement(k,l({ref:t},u))}));function k(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,l=new Array(i);l[0]=d;var p={};for(var o in t)hasOwnProperty.call(t,o)&&(p[o]=t[o]);p.originalType=e,p[s]="string"==typeof e?e:a,l[1]=p;for(var c=2;c{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>p,toc:()=>c});var r=n(7462),a=(n(7294),n(3905));const i={sidebar_position:5},l="\u6269\u5c55\u8d44\u6e90(\u5e95\u5ea7)",p={unversionedId:"develop-guid/core/concepts/buildingbase_resources",id:"develop-guid/core/concepts/buildingbase_resources",title:"\u6269\u5c55\u8d44\u6e90(\u5e95\u5ea7)",description:"\u5e95\u5ea7\u6269\u5c55\u8d44\u6e90\u7528\u4e8e\u9002\u914d\u5e95\u5ea7\u7684\u95e8\u6237\u670d\u52a1,\u4e0d\u6d89\u53ca\u6838\u5fc3\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u3002\u76ee\u524d\u4e3b\u8981\u6709\u4e24\u79cd:",source:"@site/docs/develop-guid/core/concepts/buildingbase_resources.md",sourceDirName:"develop-guid/core/concepts",slug:"/develop-guid/core/concepts/buildingbase_resources",permalink:"/website/docs/develop-guid/core/concepts/buildingbase_resources",draft:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6\u90e8\u7f72",permalink:"/website/docs/develop-guid/core/concepts/componentplan"},next:{title:"\u7ec4\u4ef6\u8bc4\u6d4b",permalink:"/website/docs/develop-guid/core/concepts/rating"}},o={},c=[{value:"Menu",id:"menu",level:2},{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49",level:3},{value:"\u95e8\u6237\u8def\u7531",id:"\u95e8\u6237\u8def\u7531",level:2},{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49-1",level:3}],u={toc:c},s="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(s,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u6269\u5c55\u8d44\u6e90\u5e95\u5ea7"},"\u6269\u5c55\u8d44\u6e90(\u5e95\u5ea7)"),(0,a.kt)("p",null,"\u5e95\u5ea7\u6269\u5c55\u8d44\u6e90\u7528\u4e8e\u9002\u914d\u5e95\u5ea7\u7684\u95e8\u6237\u670d\u52a1,\u4e0d\u6d89\u53ca\u6838\u5fc3\u7684",(0,a.kt)("strong",{parentName:"p"},"\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406"),"\u3002\u76ee\u524d\u4e3b\u8981\u6709\u4e24\u79cd:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"Menu"),": \u95e8\u6237\u83dc\u5355"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"Portal"),": \u95e8\u6237\u8def\u7531")),(0,a.kt)("h2",{id:"menu"},"Menu"),(0,a.kt)("p",null,"\u83dc\u5355\u662f",(0,a.kt)("a",{parentName:"p",href:"../../building-base/configuration/customize-menu"},"\u5e95\u5ea7\u95e8\u6237"),"\u8d44\u6e90\uff0c\u7528\u4e8e\u4e0e\u5fae\u524d\u7aef\u9875\u9762\u7ed3\u5408\uff0c\u5b9e\u73b0\u53ef\u5b9a\u5236\u5316\u7684\u95e8\u6237\u83dc\u5355\u3002"),(0,a.kt)("h3",{id:"\u5b9a\u4e49"},"\u5b9a\u4e49"),(0,a.kt)("p",null,"\u4ee3\u7801\u5b9a\u4e49\u4f4d\u4e8e ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/kubebb/core/blob/main/api/v1alpha1/menu_types.go"},"Menus"),",\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4e0b:"),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u8bf4\u660e \u5bf9\u4e8e\u4e0b\u9762\u7684 yaml\uff0c\u6211\u4eec\u60f3\u8981\u8bbf\u95ee bar \u5b57\u6bb5\uff0c\u4e66\u5199\u683c\u5f0f\u4e3a ",(0,a.kt)("inlineCode",{parentName:"p"},"spec.foo.bar")),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"spec:\n foo:\n bar: xx\n"))),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.id"),": \u83dc\u5355\u7ec4ID"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.text"),": \u83dc\u5355\u4e2d\u6587\u540d\u79f0"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.textEn"),": \u83dc\u5355\u82f1\u6587\u540d\u79f0"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.column"),": \u83dc\u5355\u7ec4\u6240\u5728\u5217\u5e8f\u53f7"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.rankingInColumn"),": \u83dc\u5355\u5728\u5f53\u524d\u7ec4\u4e2d\u7684\u6392\u5e8f\uff0c\u6570\u5b57\u8d8a\u5c0f\u8d8a\u9760\u524d"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.icon"),": \u83dc\u5355\u56fe\u6807"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.replaceSiderBackNextPathnamePattern"),": \u7ed9\u66ff\u6362\u83dc\u5355\u7684\u8fd4\u56de\u6309\u94ae\u4f7f\u7528\uff0c\u5f53\u65b0\u7684 pathname \u662f\u66ff\u6362\u83dc\u5355\uff0c\u4e14\u66ff\u6362\u83dc\u5355\u7684\u8fd4\u56de\u6309\u94ae\u9700\u8981\u8fd4\u56de\u5230\u5f53\u524d pathname \u65f6\uff0c\u914d\u7f6e\u6b64\u5c5e\u6027"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.pathname"),": \u83dc\u5355\u8def\u7531"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.redirect"),": \u8df3\u8f6c\u83dc\u5355\u8def\u7531\uff0c\u4f18\u5148\u7ea7\u9ad8\u4e8e pathname\uff0c\u6307\u5b9a\u540e\u70b9\u51fb\u83dc\u5355\u4f1a\u8df3\u8f6c\u5230 redirect \u76f8\u5e94\u8def\u7531"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.target"),": \u540c a \u6807\u7b7e\u7684 target \u5c5e\u6027"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.requiredRoles"),": \u83dc\u5355\u53ef\u89c1\u9700\u8981\u7684\u89d2\u8272"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.requiredModuleBits"),": \u83dc\u5355\u53ef\u5bf9\u5e94\u7684 module \u4e8c\u8fdb\u5236\u4f4d (\u6709\u4e00\u4e2a\u6ee1\u8db3\u5373\u53ef\u89c1)"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.tenant"),": \u83dc\u5355\u5bf9\u5e94\u8def\u7531\u662f\u5426\u53ef\u4ee5\u5207\u6362\u79df\u6237"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.project"),": \u83dc\u5355\u5bf9\u5e94\u8def\u7531\u662f\u5426\u53ef\u4ee5\u5207\u6362\u9879\u76ee"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.cluster"),": \u83dc\u5355\u5bf9\u5e94\u8def\u7531\u662f\u5426\u53ef\u4ee5\u5207\u6362\u96c6\u7fa4"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.isRenderSelectCurrent"),": \u662f\u5426\u6e32\u67d3\u9009\u62e9\u9879\u76ee\u3001\u96c6\u7fa4"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.useChildrenReplaceSider"),": \u662f\u5426\u5728\u8fdb\u5165\u5b50\u9875\u9762\u540e\u5c06 sider \u66ff\u6362"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.getTitleForReplaceSider"),": \u83b7\u53d6 title \u7684\u51fd\u6570"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.parent"),": \u7236\u83dc\u5355 ID"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.parentOwnerReferences"),": \u7236\u83dc\u5355\u4f9d\u8d56"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.disabled"),": menu \u663e\u793a\u63a7\u5236")),(0,a.kt)("h2",{id:"\u95e8\u6237\u8def\u7531"},"\u95e8\u6237\u8def\u7531"),(0,a.kt)("p",null,"\u95e8\u6237\u8def\u7531\u662f",(0,a.kt)("a",{parentName:"p",href:"../../building-base/configuration/customize-menu"},"\u5e95\u5ea7\u95e8\u6237"),"\u8d44\u6e90,\u7528\u4e8e\u914d\u7f6e\u8bbf\u95ee\u8def\u5f84\u3002"),(0,a.kt)("h3",{id:"\u5b9a\u4e49-1"},"\u5b9a\u4e49"),(0,a.kt)("p",null,"\u4ee3\u7801\u5b9a\u4e49\u4f4d\u4e8e ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/kubebb/core/blob/main/api/v1alpha1/portal_types.go"},"Menus"),",\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4e0b:"),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u8bf4\u660e \u5bf9\u4e8e\u4e0b\u9762\u7684 yaml\uff0c\u6211\u4eec\u60f3\u8981\u8bbf\u95ee bar \u5b57\u6bb5\uff0c\u4e66\u5199\u683c\u5f0f\u4e3a ",(0,a.kt)("inlineCode",{parentName:"p"},"spec.foo.bar")),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"spec:\n foo:\n bar: xx\n"))),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.path"),": \u8bf7\u6c42\u7684\u8bbf\u95ee\u8def\u5f84"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.entry"),": \u9759\u6001\u8d44\u6e90\u7684\u8bbf\u95ee\u8def\u5f84")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/476857ee.644a72e0.js b/assets/js/476857ee.b3d10f7d.js similarity index 66% rename from assets/js/476857ee.644a72e0.js rename to assets/js/476857ee.b3d10f7d.js index 6102b2204..ef689b0e7 100644 --- a/assets/js/476857ee.644a72e0.js +++ b/assets/js/476857ee.b3d10f7d.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3484],{422:e=>{e.exports=JSON.parse('{"title":"\u4f4e\u7801 Kit","description":"\u53ef\u4f7f\u7528\u4f4e\u7801 Kit \u5f00\u53d1\u81ea\u5df1\u670d\u52a1\u7ec4\u4ef6\uff0c\u5e76\u6dfb\u52a0\u5230\u670d\u52a1\u95e8\u6237\u4e2d\u3002","slug":"/category/\u4f4e\u7801-kit","permalink":"/website/docs/category/\u4f4e\u7801-kit","navigation":{"previous":{"title":"\u751f\u6210 oidc-proxy \u7684\u8bc1\u4e66","permalink":"/website/docs/building-base/configuration/issue-oidc-proxy-certs"},"next":{"title":"\u4ecb\u7ecd","permalink":"/website/docs/lowcode-development/intro"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3484],{422:e=>{e.exports=JSON.parse('{"title":"\u4f4e\u7801 Kit","description":"\u53ef\u4f7f\u7528\u4f4e\u7801 Kit \u5f00\u53d1\u81ea\u5df1\u670d\u52a1\u7ec4\u4ef6\uff0c\u5e76\u6dfb\u52a0\u5230\u670d\u52a1\u95e8\u6237\u4e2d\u3002","slug":"/category/\u4f4e\u7801-kit","permalink":"/website/docs/category/\u4f4e\u7801-kit","navigation":{"previous":{"title":"\u751f\u6210 oidc-proxy \u7684\u8bc1\u4e66","permalink":"/website/docs/develop-guid/building-base/configuration/issue-oidc-proxy-certs"},"next":{"title":"\u4ecb\u7ecd","permalink":"/website/docs/develop-guid/lowcode-development/intro"}}}')}}]); \ No newline at end of file diff --git a/assets/js/552535a5.62c3c6be.js b/assets/js/552535a5.62c3c6be.js deleted file mode 100644 index acf9dd850..000000000 --- a/assets/js/552535a5.62c3c6be.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4776],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>f});var o=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function l(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=o.createContext({}),p=function(e){var n=o.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},s=function(e){var n=p(e.components);return o.createElement(c.Provider,{value:n},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return o.createElement(o.Fragment,{},n)}},g=o.forwardRef((function(e,n){var t=e.components,a=e.mdxType,r=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),m=p(t),g=a,f=m["".concat(c,".").concat(g)]||m[g]||u[g]||r;return t?o.createElement(f,l(l({ref:n},s),{},{components:t})):o.createElement(f,l({ref:n},s))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var r=t.length,l=new Array(r);l[0]=g;var i={};for(var c in n)hasOwnProperty.call(n,c)&&(i[c]=n[c]);i.originalType=e,i[m]="string"==typeof e?e:a,l[1]=i;for(var p=2;p{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>p});var o=t(7462),a=(t(7294),t(3905));const r={sidebar_position:1},l="\u81ea\u5b9a\u4e49\u95e8\u6237",i={unversionedId:"building-base/configuration/customize-portal",id:"building-base/configuration/customize-portal",title:"\u81ea\u5b9a\u4e49\u95e8\u6237",description:"\u81ea\u5b9a\u4e49 logo",source:"@site/docs/building-base/configuration/customize-portal.md",sourceDirName:"building-base/configuration",slug:"/building-base/configuration/customize-portal",permalink:"/website/docs/building-base/configuration/customize-portal",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"\u81ea\u5b9a\u4e49\u914d\u7f6e",permalink:"/website/docs/category/\u81ea\u5b9a\u4e49\u914d\u7f6e"},next:{title:"\u81ea\u5b9a\u4e49\u83dc\u5355",permalink:"/website/docs/building-base/configuration/customize-menu"}},c={},p=[{value:"\u81ea\u5b9a\u4e49 logo",id:"\u81ea\u5b9a\u4e49-logo",level:2},{value:"\u81ea\u5b9a\u4e49\u4e3b\u8272\u8c03",id:"\u81ea\u5b9a\u4e49\u4e3b\u8272\u8c03",level:2}],s={toc:p},m="wrapper";function u(e){let{components:n,...t}=e;return(0,a.kt)(m,(0,o.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u81ea\u5b9a\u4e49\u95e8\u6237"},"\u81ea\u5b9a\u4e49\u95e8\u6237"),(0,a.kt)("h2",{id:"\u81ea\u5b9a\u4e49-logo"},"\u81ea\u5b9a\u4e49 logo"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u51c6\u5907\u597d\u9700\u8981\u66ff\u6362\u7684 logo\uff0c\u6bd4\u5982 logo-white.png\u3001favicon.png\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u521b\u5efa\u5bf9\u5e94\u7684 configmap")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"kubectl create configmap portal-logos -n u4a-system \\\n --from-file=logo-white.png=./logo-white.png \\\n --from-file=favicon.ico=./favicon.png\n")),(0,a.kt)("ol",{start:2},(0,a.kt)("li",{parentName:"ol"},"\u4fee\u6539 bff-server \u7684 deployment \u5c06 configmap \u6302\u8f7d\u8fdb\u53bb")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: bff-server\n namespace: u4a-system\nspec:\n template:\n spec:\n volumes:\n - hostPath:\n path: /etc/localtime\n type: ""\n name: time-localtime\n # \u5b58\u50a8\u5377\u4e2d\u589e\u52a0\u521a\u521a\u521b\u5efa\u7684 configmap portal-logos\n - configMap:\n name: portal-logos\n name: logos\n containers:\n volumeMounts:\n - mountPath: /etc/localtime\n name: time-localtime\n readOnly: true\n # \u5c06\u4e0a\u9762\u7684\u5b58\u50a8\u5377 logos \u6302\u8f7d\u5230\u5bf9\u5e94 logo \u76ee\u5f55\n - mountPath: /usr/src/app/public/profile/img\n name: logos\n')),(0,a.kt)("h2",{id:"\u81ea\u5b9a\u4e49\u4e3b\u8272\u8c03"},"\u81ea\u5b9a\u4e49\u4e3b\u8272\u8c03"),(0,a.kt)("p",null,"\u901a\u8fc7\u521b\u5efa portal-global-configs \u7684 configmap\uff0c\u5373\u53ef\u81ea\u5b9a\u4e49\u95e8\u6237\u4e3b\u8272\u8c03\uff0c\u793a\u610f\u5982\u4e0b\uff1a"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: v1\nkind: ConfigMap\nmetadata:\n name: portal-global-configs\n namespace: u4a-system\ndata:\n global-configs: |\n {"theme": {"primaryColor": "#008F35"}}\n')),(0,a.kt)("p",null,"\u521b\u5efa configMap\uff0c\u5237\u65b0\u95e8\u6237\u540e\u5373\u53ef\u751f\u6548"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl create cm portal-global-configs -n u4a-system\n")),(0,a.kt)("ol",{start:2},(0,a.kt)("li",{parentName:"ol"},"\u4fee\u6539 bff-server \u7684 deployment \u5c06 configmap \u6302\u8f7d\u8fdb\u53bb")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: bff-server\n namespace: u4a-system\nspec:\n template:\n spec:\n volumes:\n - hostPath:\n path: /etc/localtime\n type: ""\n name: time-localtime\n # \u5b58\u50a8\u5377\u4e2d\u589e\u52a0\u521a\u521a\u521b\u5efa\u7684 configmap portal-global-configs\n - configMap:\n name: portal-global-configs\n name: portal-global-configs\n containers:\n volumeMounts:\n - mountPath: /etc/localtime\n name: time-localtime\n readOnly: true\n # \u5c06\u4e0a\u9762\u7684\u5b58\u50a8\u5377 logos \u6302\u8f7d\u5230\u5bf9\u5e94 logo \u76ee\u5f55\uff1a\n - mountPath: /usr/src/app/configs\n name: portal-global-configs\n')))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/59db27b9.19d4c7b9.js b/assets/js/59db27b9.19d4c7b9.js deleted file mode 100644 index e00d9be13..000000000 --- a/assets/js/59db27b9.19d4c7b9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4195],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),c=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),u=c(r),b=a,m=u["".concat(l,".").concat(b)]||u[b]||d[b]||o;return r?n.createElement(m,i(i({ref:t},p),{},{components:r})):n.createElement(m,i({ref:t},p))}));function m(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=b;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:a,i[1]=s;for(var c=2;c{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var n=r(7462),a=(r(7294),r(3905));const o={sidebar_position:2},i="\u6dfb\u52a0\u96c6\u7fa4",s={unversionedId:"building-base/add-cluster",id:"building-base/add-cluster",title:"\u6dfb\u52a0\u96c6\u7fa4",description:"1. \u4e3a\u96c6\u7fa4\u7ba1\u7406\u521b\u5efa\u4e00\u4e2a namespace\uff0c\u53ef\u4ee5\u4f7f\u7528 cluster-system\uff0c\u7528\u6765\u4fdd\u5b58\u96c6\u7fa4\u4fe1\u606f",source:"@site/docs/building-base/add-cluster.md",sourceDirName:"building-base",slug:"/building-base/add-cluster",permalink:"/website/docs/building-base/add-cluster",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"\u4ecb\u7ecd",permalink:"/website/docs/building-base/intro"},next:{title:"\u81ea\u5b9a\u4e49\u914d\u7f6e",permalink:"/website/docs/category/\u81ea\u5b9a\u4e49\u914d\u7f6e"}},l={},c=[],p={toc:c},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u6dfb\u52a0\u96c6\u7fa4"},"\u6dfb\u52a0\u96c6\u7fa4"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u4e3a\u96c6\u7fa4\u7ba1\u7406\u521b\u5efa\u4e00\u4e2a namespace\uff0c\u53ef\u4ee5\u4f7f\u7528 cluster-system\uff0c\u7528\u6765\u4fdd\u5b58\u96c6\u7fa4\u4fe1\u606f")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"kubectl create ns cluster-system\n")),(0,a.kt)("ol",{start:2},(0,a.kt)("li",{parentName:"ol"},"\u83b7\u53d6\u6dfb\u52a0\u96c6\u7fa4\u7684 token")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"export TOKENNAME=$(kubectl get serviceaccount/host-cluster-reader -n u4a-system -o jsonpath='{.secrets[0].name}')\nkubectl get secret $TOKENNAME -n u4a-system -o jsonpath='{.data.token}' | base64 -d\n")),(0,a.kt)("ol",{start:3},(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"\u767b\u5f55\u7ba1\u7406\u5e73\u53f0\uff0c\u8fdb\u5165 \u201c\u96c6\u7fa4\u7ba1\u7406\u201d\uff0c\u53c2\u8003 ",(0,a.kt)("a",{parentName:"p",href:"/website/docs/quick-start/buildingbase_quickstart"},"\u5b89\u88c5\u5e95\u5ea7"),"\uff0c\u70b9\u51fb\u201c\u6dfb\u52a0\u96c6\u7fa4\u201d\u3002")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"\u8f93\u5165\u96c6\u7fa4\u540d\u79f0\uff0c\u6309\u9700\u4fee\u6539\u96c6\u7fa4\u540e\u7f00\uff0c\u8fd9\u91cc\u4f7f\u7528\u201cAPI Token\u201d\u65b9\u5f0f\u63a5\u5165\u96c6\u7fa4\u3002"))),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"API Host\uff0c\u4f7f\u7528\u652f\u6301 OIDC \u534f\u8bae\u7684 K8s API \u5730\u5740\uff0c\u53ef\u4ee5\u901a\u8fc7 ",(0,a.kt)("strong",{parentName:"li"},"kubectl get ingress -nu4a-system")," \u67e5\u770bkube-oidc-proxy-server-ingress \u5bf9\u5e94\u7684 Host \u4fe1\u606f\uff0c\u6bd4\u5982 ",(0,a.kt)("a",{parentName:"li",href:"https://k8s.172.22.96.136.nip.io%EF%BC%88%E6%B3%A8%E6%84%8F%E7%BB%93%E5%B0%BE%E4%B8%8D%E8%A6%81%E6%9C%89"},"https://k8s.172.22.96.136.nip.io\uff08\u6ce8\u610f\u7ed3\u5c3e\u4e0d\u8981\u6709")," /\uff09"),(0,a.kt)("li",{parentName:"ul"},"API Token\uff0c\u8f93\u5165\u7b2c 2 \u6b65\u83b7\u53d6\u7684 token \u4fe1\u606f")),(0,a.kt)("ol",{start:5},(0,a.kt)("li",{parentName:"ol"},'\u6dfb\u52a0\u6210\u529f\u540e\uff0c\u53ef\u4ee5\u5728\u5217\u8868\u4e0a\u770b\u5230\u96c6\u7fa4\u4fe1\u606f\u53ca\u5176\u72b6\u6001\uff1b\u9009\u62e9\u201c\u79df\u6237\u7ba1\u7406\u201d\uff0c\u4f1a\u770b\u5230\u540d\u79f0\u4e3a "system-tenant" \u7684\u4e00\u4e2a\u7cfb\u7edf\u79df\u6237')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5d9ef359.464c1236.js b/assets/js/5d9ef359.464c1236.js deleted file mode 100644 index f46cf137a..000000000 --- a/assets/js/5d9ef359.464c1236.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[813],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},l=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),u=p(n),b=o,f=u["".concat(s,".").concat(b)]||u[b]||m[b]||a;return n?r.createElement(f,i(i({ref:t},l),{},{components:n})):r.createElement(f,i({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=b;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const a={sidebar_position:4},i="\u533a\u5757\u94fe - \u8054\u76df\u94fe",c={unversionedId:"component-market/blockchain",id:"component-market/blockchain",title:"\u533a\u5757\u94fe - \u8054\u76df\u94fe",description:"\u533a\u5757\u94fe\u7ec4\u4ef6\u76ee\u524d\u8fd8\u6ca1\u6709\u5b8c\u6210\u7ec4\u4ef6\u5316\uff0c\u4f46\u662f\u4f9d\u7136\u53ef\u4ee5\u57fa\u4e8e\u5e95\u5ea7Kit\u8fdb\u884c\u90e8\u7f72\uff0c\u8be6\u7ec6\u53c2\u8003 bestchains \u5e73\u53f0\u5b89\u88c5\u3002",source:"@site/docs/component-market/blockchain.md",sourceDirName:"component-market",slug:"/component-market/blockchain",permalink:"/website/docs/component-market/blockchain",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"\u76d1\u63a7\u7ec4\u4ef6",permalink:"/website/docs/component-market/monitoring"},next:{title:"\u4f7f\u7528 kubelogin \u5de5\u5177",permalink:"/website/docs/component-market/kubelogin"}},s={},p=[],l={toc:p},u="wrapper";function m(e){let{components:t,...n}=e;return(0,o.kt)(u,(0,r.Z)({},l,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"\u533a\u5757\u94fe---\u8054\u76df\u94fe"},"\u533a\u5757\u94fe - \u8054\u76df\u94fe"),(0,o.kt)("p",null,"\u533a\u5757\u94fe\u7ec4\u4ef6\u76ee\u524d\u8fd8\u6ca1\u6709\u5b8c\u6210\u7ec4\u4ef6\u5316\uff0c\u4f46\u662f\u4f9d\u7136\u53ef\u4ee5\u57fa\u4e8e\u5e95\u5ea7Kit\u8fdb\u884c\u90e8\u7f72\uff0c\u8be6\u7ec6\u53c2\u8003 ",(0,o.kt)("a",{parentName:"p",href:"https://bestchains.github.io/website/docs/QuickStart/installation#2-%E5%AE%89%E8%A3%85-baas-component"},"bestchains \u5e73\u53f0\u5b89\u88c5"),"\u3002"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"\u6ce8\u610f\u4fee\u6539 scripts/e2e.sh \u4e2d\u56fd\u5462 ingressNode\uff0ckubeProxyNode \u7684\u914d\u7f6e"),(0,o.kt)("li",{parentName:"ul"},"\u90e8\u7f72\u540e\u5373\u53ef\u5728\u7ba1\u7406\u5e73\u53f0\u770b\u5230\u533a\u5757\u94fe\u76f8\u5173\u83dc\u5355\u53ca\u529f\u80fd")),(0,o.kt)("p",null,"bestchains \u7684\u8be6\u7ec6\u4f7f\u7528\uff0c\u8bf7\u53c2\u8003",(0,o.kt)("a",{parentName:"p",href:"https://bestchains.github.io/website/"},"\u5e2e\u52a9\u6587\u6863")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/62fa1b0b.b5b41b52.js b/assets/js/62fa1b0b.b5b41b52.js deleted file mode 100644 index 657a34f74..000000000 --- a/assets/js/62fa1b0b.b5b41b52.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5070],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},c="mdxType",k={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=p(n),d=a,m=c["".concat(s,".").concat(d)]||c[d]||k[d]||i;return n?r.createElement(m,o(o({ref:t},u),{},{components:n})):r.createElement(m,o({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[c]="string"==typeof e?e:a,o[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>k,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=n(7462),a=(n(7294),n(3905));const i={sidebar_position:1},o="\u9884\u5148\u51c6\u5907",l={unversionedId:"quick-start/prerequisite",id:"quick-start/prerequisite",title:"\u9884\u5148\u51c6\u5907",description:"\u57fa\u7840\u73af\u5883",source:"@site/docs/quick-start/prerequisite.md",sourceDirName:"quick-start",slug:"/quick-start/prerequisite",permalink:"/website/docs/quick-start/prerequisite",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"\u5feb\u901f\u5f00\u59cb",permalink:"/website/docs/category/\u5feb\u901f\u5f00\u59cb"},next:{title:"\u5b89\u88c5\u5185\u6838",permalink:"/website/docs/quick-start/core_quickstart"}},s={},p=[{value:"\u57fa\u7840\u73af\u5883",id:"\u57fa\u7840\u73af\u5883",level:2},{value:"Kubernetes\u96c6\u7fa4",id:"kubernetes\u96c6\u7fa4",level:2},{value:"Kind\u5f00\u53d1\u96c6\u7fa4",id:"kind\u5f00\u53d1\u96c6\u7fa4",level:3}],u={toc:p},c="wrapper";function k(e){let{components:t,...n}=e;return(0,a.kt)(c,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u9884\u5148\u51c6\u5907"},"\u9884\u5148\u51c6\u5907"),(0,a.kt)("h2",{id:"\u57fa\u7840\u73af\u5883"},"\u57fa\u7840\u73af\u5883"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://helm.sh/docs/intro/install/"},"Helm")," +3.0 \u5ba2\u6237\u7aef"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://kubernetes.io/docs/tasks/tools/#kubectl"},"Kubectl")," \u5ba2\u6237\u7aef")),(0,a.kt)("h2",{id:"kubernetes\u96c6\u7fa4"},"Kubernetes\u96c6\u7fa4"),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u5982\u679c\u6ca1\u6709kubernets\u96c6\u7fa4\uff0c\u53ef\u6309\u7167\u4e0b\u8ff0\u6559\u7a0b\u901a\u8fc7",(0,a.kt)("a",{parentName:"p",href:"https://kind.sigs.k8s.io/docs/user/quick-start/#installation"},"kind"),"\u90e8\u7f72\u4e00\u4e2a\u5f00\u53d1\u96c6\u7fa4\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u4e3a\u9002\u914d",(0,a.kt)("inlineCode",{parentName:"p"},"building base"),",\u96c6\u7fa4\u81f3\u5c11\u6709\u4e00\u4e2a\u8282\u70b9\u9700\u8981\u4e3a",(0,a.kt)("inlineCode",{parentName:"p"},"Ingress Controller"),"\u670d\u52a1\u8282\u70b9\uff0c\u5e76\u66b4\u9732",(0,a.kt)("inlineCode",{parentName:"p"},"80"),"\u548c",(0,a.kt)("inlineCode",{parentName:"p"},"443"),"\u7aef\u53e3\u3002")),(0,a.kt)("h3",{id:"kind\u5f00\u53d1\u96c6\u7fa4"},"Kind\u5f00\u53d1\u96c6\u7fa4"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u5b89\u88c5kind")),(0,a.kt)("blockquote",null,(0,a.kt)("p",{parentName:"blockquote"},"\u53c2\u8003: ",(0,a.kt)("a",{parentName:"p",href:"https://kind.sigs.k8s.io/docs/user/quick-start/#installation"},"https://kind.sigs.k8s.io/docs/user/quick-start/#installation"))),(0,a.kt)("p",null,"Linux\u73af\u5883\u4e3a\u4f8b:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"# For AMD64 / x86_64\n[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64\n# For ARM64\n[ $(uname -m) = aarch64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-arm64\nchmod +x ./kind\nsudo mv ./kind /usr/local/bin/kind\n")),(0,a.kt)("ol",{start:2},(0,a.kt)("li",{parentName:"ol"},"\u51c6\u5907\u5355\u8282\u70b9\u96c6\u7fa4",(0,a.kt)("a",{parentName:"li",href:"https://github.com/kubebb/core/blob/main/tests/kind-config.yaml"},"\u914d\u7f6e\u6587\u4ef6"),(0,a.kt)("inlineCode",{parentName:"li"},"kind-config.yaml"))),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("ul",{parentName:"admonition"},(0,a.kt)("li",{parentName:"ul"},"\u6b64\u5904\u91c7\u7528v1.24.13\u7248\u672c\uff0c\u5176\u4ed6\u7248\u672c\u8bf7\u81ea\u884c\u66ff\u6362. ",(0,a.kt)("a",{parentName:"li",href:"https://hub.docker.com/r/kindest/node/tags?page=1&ordering=last_updated"},"\u7248\u672c\u5217\u8868"),"\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u5982\u9700\u521b\u5efa\u591a\u8282\u70b9\u96c6\u7fa4\uff0c\u53ef\u53c2\u8003",(0,a.kt)("a",{parentName:"li",href:"https://github.com/kubebb/core/blob/main/tests/kind-config-3nodes.yaml"},"3\u8282\u70b9\u914d\u7f6e\u6587\u4ef6")))),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'kind: Cluster\napiVersion: kind.x-k8s.io/v1alpha4\nname: kubebb-core\nnodes:\n - role: control-plane\n image: kindest/node:v1.24.13\n kubeadmConfigPatches:\n - |\n kind: InitConfiguration\n nodeRegistration:\n kubeletExtraArgs:\n node-labels: "ingress-ready=true"\n extraPortMappings:\n - containerPort: 80\n hostPort: 80\n protocol: TCP\n - containerPort: 443\n hostPort: 443\n protocol: TCP\n')),(0,a.kt)("ol",{start:3},(0,a.kt)("li",{parentName:"ol"},"\u521b\u5efa\u96c6\u7fa4")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"kind create cluster --config=kind-config.yaml\n")),(0,a.kt)("ol",{start:4},(0,a.kt)("li",{parentName:"ol"},"\u67e5\u770b\u96c6\u7fa4\u72b6\u6001")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl cluster-info --context kind-kubebb-core\n")),(0,a.kt)("p",null,"\u5982\u679c\u4e00\u5207\u6b63\u5e38\uff0c\u8f93\u51fa\u5982\u4e0b:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"Kubernetes control plane is running at https://127.0.0.1:42607\nCoreDNS is running at https://127.0.0.1:42607/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy\n\nTo further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.\n")),(0,a.kt)("ol",{start:5},(0,a.kt)("li",{parentName:"ol"},"\u67e5\u770b\u96c6\u7fa4\u8282\u70b9")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get nodes\n")),(0,a.kt)("p",null,"\u5982\u679c\u4e00\u5207\u6b63\u5e38\uff0c\u8f93\u51fa\u5982\u4e0b:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"NAME STATUS ROLES AGE VERSION\nkubebb-core-control-plane Ready control-plane 21m v1.24.13\n")),(0,a.kt)("p",null,"\u901a\u8fc7",(0,a.kt)("inlineCode",{parentName:"p"},"docker ps"),"\u53ef\u53d1\u73b0\u8be5\u8282\u70b9\u5df2\u7ecf\u66b4\u9732\u4e86",(0,a.kt)("inlineCode",{parentName:"p"},"80"),"\u548c",(0,a.kt)("inlineCode",{parentName:"p"},"443"),"\u7aef\u53e3:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},'(base) \u279c building-base git:(azure) docker ps\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\ne4e3820cdb5a kindest/node:v1.24.13 "/usr/local/bin/entr\u2026" 22 minutes ago Up 22 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 127.0.0.1:33611->6443/tcp kubebb-core-control-plane\n')))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/647f233e.a270a649.js b/assets/js/647f233e.a270a649.js deleted file mode 100644 index 3a18a16bf..000000000 --- a/assets/js/647f233e.a270a649.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6320],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>b});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},u=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,i=e.originalType,p=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),s=c(r),d=a,b=s["".concat(p,".").concat(d)]||s[d]||m[d]||i;return r?n.createElement(b,l(l({ref:t},u),{},{components:r})):n.createElement(b,l({ref:t},u))}));function b(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=r.length,l=new Array(i);l[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[s]="string"==typeof e?e:a,l[1]=o;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var n=r(7462),a=(r(7294),r(3905));const i={sidebar_position:1},l="\u4ecb\u7ecd",o={unversionedId:"building-base/intro",id:"building-base/intro",title:"\u4ecb\u7ecd",description:"\u6280\u672f\u7ec4\u4ef6",source:"@site/docs/building-base/intro.md",sourceDirName:"building-base",slug:"/building-base/intro",permalink:"/website/docs/building-base/intro",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"\u5e95\u5ea7Kit",permalink:"/website/docs/category/\u5e95\u5ea7kit"},next:{title:"\u6dfb\u52a0\u96c6\u7fa4",permalink:"/website/docs/building-base/add-cluster"}},p={},c=[{value:"\u6280\u672f\u7ec4\u4ef6",id:"\u6280\u672f\u7ec4\u4ef6",level:2},{value:"\u4f7f\u7528\u57df\u540d\u8bbf\u95ee",id:"\u4f7f\u7528\u57df\u540d\u8bbf\u95ee",level:2}],u={toc:c},s="wrapper";function m(e){let{components:t,...i}=e;return(0,a.kt)(s,(0,n.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u4ecb\u7ecd"},"\u4ecb\u7ecd"),(0,a.kt)("h2",{id:"\u6280\u672f\u7ec4\u4ef6"},"\u6280\u672f\u7ec4\u4ef6"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"u4a-component")," \u63d0\u4f9b\u8d26\u53f7\u3001\u8ba4\u8bc1\u3001\u6743\u9650\u53ca\u5ba1\u8ba1\u7ba1\u7406\u529f\u80fd\uff0c\u5305\u542b\u4ee5\u4e0b\u4e3b\u8981\u8d44\u6599",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.nginx.com/nginx-ingress-controller/"},"nginx ingress")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://cert-manager.io/"},"cert-manager")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/dexidp/dex"},"\u57fa\u4e8e dex \u6784\u5efa")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/clastix/capsule"},"\u591a\u79df\u6237\u57fa\u4e8e capsule \u6784\u5efa")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://github.com/jetstack/kube-oidc-proxy"},"oidc-proxy \u57fa\u4e8e kube-oidc-proxy \u6784\u5efa"))))),(0,a.kt)("p",null,"\u5e73\u53f0\u5f00\u53d1\u91c7\u53d6\u524d\u540e\u7aef\u5206\u79bb\uff0c\u4ee5 K8S \u4e3a\u6838\u5fc3\u7684\u5f00\u53d1\u6846\u67b6\uff0c\u9075\u5faa K8S \u7684\u6269\u5c55\u673a\u5236\u53ca API \u89c4\u8303\uff0c\u6574\u4f53\u5f00\u53d1\u67b6\u6784\u7684\u57fa\u672c\u903b\u8f91\u5982\u4e0b\u56fe\u6240\u793a\uff1a\n",(0,a.kt)("img",{alt:"\u56fe 2",src:r(9509).Z,width:"1089",height:"724"})," "),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u6240\u6709\u7ec4\u4ef6\u7684\u5f00\u53d1\u3001\u6269\u5c55\u7684\u8ba4\u8bc1\u90fd\u901a\u8fc7\u7edf\u4e00\u8ba4\u8bc1\u4e2d\u5fc3\u8fdb\u884c\u8ba4\u8bc1"),(0,a.kt)("li",{parentName:"ol"},"\u8ba4\u8bc1\u7531\u5fae\u524d\u7aef\u7684\u4e3b\u6846\u67b6 DockApp \u7edf\u4e00\u8fdb\u884c\uff0c\u5176\u4ed6\u5fae\u524d\u7aef\u7684\u6269\u5c55\u4e0d\u9700\u8981\u5355\u72ec\u652f\u6301\u540c\u8ba4\u8bc1\u4e2d\u5fc3\u7684\u5904\u7406"),(0,a.kt)("li",{parentName:"ol"},"\u5f00\u53d1\u67b6\u6784\u4e0a\u6574\u4f53\u53ef\u4ee5\u6309\u7167\u4e09\u5c42\u6765\u770b")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u7b2c\u4e00\u5c42\uff0c\u524d\u7aef\u91c7\u7528\u5fae\u524d\u7aef\u67b6\u6784\uff0c\u5c3d\u91cf\u91c7\u7528\u4f4e\u4ee3\u7801\u65b9\u5f0f\u8fdb\u884c\u5f00\u53d1\uff0c\u63d0\u9ad8\u4ee3\u7801\u81ea\u52a8\u5316\u751f\u6210\u6bd4\u4f8b"),(0,a.kt)("li",{parentName:"ul"},"\u7b2c\u4e8c\u5c42\uff0c\u6839\u636e\u4e1a\u52a1\u9700\u6c42\u589e\u52a0 OpenAPI\uff0c\u5f62\u6210\u7edf\u4e00\u7684 BFF \u5c42\uff0c\u5bf9 API \u8fdb\u884c\u805a\u5408\uff0c\u63d0\u4f9b\u524d\u7aef\u6240\u9700\u8981\u7684\u4e1a\u52a1\u573a\u666f\u6570\u636e"),(0,a.kt)("li",{parentName:"ul"},"\u540e\u7aef\u91c7\u7528 CRD + controller \u7684 Operator \u6a21\u5f0f\u8fdb\u884c\u5f00\u53d1\uff0c\u5f62\u6210\u6570\u636e\u9a71\u52a8\u7684\u6d41\u7a0b\u5f00\u53d1\u6a21\u5f0f")),(0,a.kt)("ol",{start:4},(0,a.kt)("li",{parentName:"ol"},"\u5bf9\u5916 API \u4e3b\u8981\u5305\u62ec\u4e24\u90e8\u5206\uff1a")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u4ece BFF \u5c42\u63d0\u4f9b\u7684 OpenAPI"),(0,a.kt)("li",{parentName:"ul"},"\u4ece K8S \u5c42\u63d0\u4f9b\u7684\u8d44\u6e90 API")),(0,a.kt)("h2",{id:"\u4f7f\u7528\u57df\u540d\u8bbf\u95ee"},"\u4f7f\u7528\u57df\u540d\u8bbf\u95ee"),(0,a.kt)("p",null,"\u5728\u4ee3\u7406\u670d\u52a1\u5668/\u8d1f\u8f7d\u5747\u8861\u4e0a\uff0c\u4f7f\u7528 nip.io \u6765\u652f\u6301 http/https \u57df\u540d\u7684\u7ed1\u5b9a\u65b9\u5f0f\uff0c\u4fbf\u4e8e\u9ed8\u8ba4\u7edf\u4e00\u91c7\u7528\u57df\u540d\u8fdb\u884c\u914d\u7f6e\u3002"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u4f7f\u7528 nip.io \u8fdb\u884c\u8bbf\u95ee ",(0,a.kt)("inlineCode",{parentName:"li"},"http://.nip.io\uff0c\u6bd4\u5982 http://192.168.1.123.nip.io"))))}m.isMDXComponent=!0},9509:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/dev_arch-8fbc2a4fd6aeaaa23274c226eb811799.png"}}]); \ No newline at end of file diff --git a/assets/js/67b8aae2.f83ec188.js b/assets/js/67b8aae2.f83ec188.js new file mode 100644 index 000000000..4c9549729 --- /dev/null +++ b/assets/js/67b8aae2.f83ec188.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8135],{3905:(t,e,a)=>{a.d(e,{Zo:()=>m,kt:()=>c});var n=a(7294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function l(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var d=n.createContext({}),o=function(t){var e=n.useContext(d),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},m=function(t){var e=o(t.components);return n.createElement(d.Provider,{value:e},t.children)},k="mdxType",s={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},g=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,d=t.parentName,m=p(t,["components","mdxType","originalType","parentName"]),k=o(a),g=r,c=k["".concat(d,".").concat(g)]||k[g]||s[g]||i;return a?n.createElement(c,l(l({ref:e},m),{},{components:a})):n.createElement(c,l({ref:e},m))}));function c(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,l=new Array(i);l[0]=g;var p={};for(var d in e)hasOwnProperty.call(e,d)&&(p[d]=e[d]);p.originalType=t,p[k]="string"==typeof t?t:r,l[1]=p;for(var o=2;o{a.r(e),a.d(e,{assets:()=>d,contentTitle:()=>l,default:()=>s,frontMatter:()=>i,metadata:()=>p,toc:()=>o});var n=a(7462),r=(a(7294),a(3905));const i={sidebar_position:2},l="\u524d\u7aef\u5c42\u57fa\u4e8e\u4f4e\u7801 Kit \u7684\u5f00\u53d1",p={unversionedId:"develop-guid/lowcode-development/development/frontend-low-code",id:"develop-guid/lowcode-development/development/frontend-low-code",title:"\u524d\u7aef\u5c42\u57fa\u4e8e\u4f4e\u7801 Kit \u7684\u5f00\u53d1",description:"\u672c\u7ae0\u8282\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528\u4f4e\u7801 Kit \u5f00\u53d1\u524d\u7aef\u5e94\u7528\u3002",source:"@site/docs/develop-guid/lowcode-development/development/frontend-low-code.md",sourceDirName:"develop-guid/lowcode-development/development",slug:"/develop-guid/lowcode-development/development/frontend-low-code",permalink:"/website/docs/develop-guid/lowcode-development/development/frontend-low-code",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"\u524d\u7aef\u5c42\u5f00\u53d1",permalink:"/website/docs/develop-guid/lowcode-development/development/frontend"},next:{title:"BFF \u5c42 API \u5f00\u53d1",permalink:"/website/docs/develop-guid/lowcode-development/development/bff-apis"}},d={},o=[{value:"1. \u65b0\u589e\u5e94\u7528",id:"1-\u65b0\u589e\u5e94\u7528",level:2},{value:"2. \u6dfb\u52a0\u6210\u5458",id:"2-\u6dfb\u52a0\u6210\u5458",level:2},{value:"3. \u521b\u5efa\u5206\u652f",id:"3-\u521b\u5efa\u5206\u652f",level:2},{value:"4. \u65b0\u589e\u9875\u9762",id:"4-\u65b0\u589e\u9875\u9762",level:2},{value:"5. \u8bbe\u8ba1\u9875\u9762",id:"5-\u8bbe\u8ba1\u9875\u9762",level:2},{value:"5.1 \u6dfb\u52a0\u8d44\u4ea7",id:"51-\u6dfb\u52a0\u8d44\u4ea7",level:3},{value:"5.2 \u5168\u5c40\u8bbe\u7f6e",id:"52-\u5168\u5c40\u8bbe\u7f6e",level:3},{value:"5.3 \u62d6\u5165\u7ec4\u4ef6\u5e76\u914d\u7f6e\u5c5e\u6027",id:"53-\u62d6\u5165\u7ec4\u4ef6\u5e76\u914d\u7f6e\u5c5e\u6027",level:3},{value:"5.4 \u6dfb\u52a0\u6570\u636e\u6e90&\u7ed1\u5b9a\u6570\u636e",id:"54-\u6dfb\u52a0\u6570\u636e\u6e90\u7ed1\u5b9a\u6570\u636e",level:3},{value:"5.5 \u6dfb\u52a0\u53d8\u91cf/\u65b9\u6cd5",id:"55-\u6dfb\u52a0\u53d8\u91cf\u65b9\u6cd5",level:3},{value:"5.6 \u7ed1\u5b9a\u4e8b\u4ef6",id:"56-\u7ed1\u5b9a\u4e8b\u4ef6",level:3},{value:"5.7 \u4fdd\u5b58&\u9884\u89c8",id:"57-\u4fdd\u5b58\u9884\u89c8",level:3},{value:"5.8 git \u63d0\u4ea4",id:"58-git-\u63d0\u4ea4",level:3},{value:"5.9 \u53d1\u5e03&\u51fa\u7801",id:"59-\u53d1\u5e03\u51fa\u7801",level:3}],m={toc:o},k="wrapper";function s(t){let{components:e,...i}=t;return(0,r.kt)(k,(0,n.Z)({},m,i,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u524d\u7aef\u5c42\u57fa\u4e8e\u4f4e\u7801-kit-\u7684\u5f00\u53d1"},"\u524d\u7aef\u5c42\u57fa\u4e8e\u4f4e\u7801 Kit \u7684\u5f00\u53d1"),(0,r.kt)("p",null,"\u672c\u7ae0\u8282\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528\u4f4e\u7801 Kit \u5f00\u53d1\u524d\u7aef\u5e94\u7528\u3002"),(0,r.kt)("h2",{id:"1-\u65b0\u589e\u5e94\u7528"},"1. \u65b0\u589e\u5e94\u7528"),(0,r.kt)("p",null,"\u9996\u5148\u6211\u4eec\u9700\u8981\u5728\u4e91\u68af\u5de5\u4f5c\u53f0\u3010\u5e94\u7528\u7ba1\u7406\u3011-\u3010\u65b0\u589e\u5e94\u7528\u3011\u4e0b\u521b\u5efa\u4e00\u4e2a\u5e94\u7528\uff0c\u5982\u679c\u60a8\u5df2\u6709\u53ef\u7528\u7684\u5e94\u7528\u5219\u53ef\u4ee5\u8df3\u8fc7\u672c\u6b65\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff0c\u6211\u4eec\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"Hello World")," \u7684\u7a7a\u767d\u5e94\u7528\uff1a\n",(0,r.kt)("img",{alt:"\u65b0\u589e\u5e94\u7528",src:a(3293).Z,width:"1346",height:"813"})),(0,r.kt)("h2",{id:"2-\u6dfb\u52a0\u6210\u5458"},"2. \u6dfb\u52a0\u6210\u5458"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("ol",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ol"},"\u7cfb\u7edf\u7ba1\u7406\u5458\u62e5\u6709\u6240\u6709\u6743\u9650"),(0,r.kt)("li",{parentName:"ol"},"\u5168\u5c40\u7528\u6237\u6743\u9650\uff1a\u6240\u6709\u7528\u6237\u90fd\u53ef\u4ee5\u968f\u610f\u521b\u5efa\u5e94\u7528\u548c\u7ec4\u4ef6\uff0c\u53ea\u80fd\u770b\u5230\u81ea\u5df1\u6709\u6743\u9650\u7684\u5e94\u7528\u6216\u7ec4\u4ef6"),(0,r.kt)("li",{parentName:"ol"},"\u5e94\u7528&\u7ec4\u4ef6\u5185\u6210\u5458\u6743\u9650")),(0,r.kt)("table",{parentName:"admonition"},(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"-"),(0,r.kt)("th",{parentName:"tr",align:"center"},"\u62e5\u6709\u8005"),(0,r.kt)("th",{parentName:"tr",align:"right"},"\u7ef4\u62a4\u8005"),(0,r.kt)("th",{parentName:"tr",align:"right"},"\u5f00\u53d1\u8005"),(0,r.kt)("th",{parentName:"tr",align:"right"},"\u6d4b\u8bd5"),(0,r.kt)("th",{parentName:"tr",align:"right"},"\u8bbf\u5ba2"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"\u5e94\u7528 - \u9875\u9762\u7ba1\u7406"),(0,r.kt)("td",{parentName:"tr",align:"center"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u67e5\u770b\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u67e5\u770b\u6743\u9650")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"\u5e94\u7528 - \u53d1\u5e03\u7ba1\u7406"),(0,r.kt)("td",{parentName:"tr",align:"center"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u67e5\u770b\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u67e5\u770b\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"\u5e94\u7528 - \u6210\u5458\u7ba1\u7406"),(0,r.kt)("td",{parentName:"tr",align:"center"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"\u5e94\u7528 - \u5206\u652f\u7ba1\u7406"),(0,r.kt)("td",{parentName:"tr",align:"center"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"\u7ec4\u4ef6 - \u7248\u672c\u7ba1\u7406"),(0,r.kt)("td",{parentName:"tr",align:"center"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u67e5\u770b\u53ca\u8bbe\u8ba1\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u67e5\u770b\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u67e5\u770b\u6743\u9650")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"\u7ec4\u4ef6 - \u6210\u5458\u7ba1\u7406"),(0,r.kt)("td",{parentName:"tr",align:"center"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"\u7ec4\u4ef6 - \u5206\u652f\u7ba1\u7406"),(0,r.kt)("td",{parentName:"tr",align:"center"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x"))))),(0,r.kt)("p",null,"\u5982\u679c\u60a8\u6ca1\u6709\u76f8\u5173\u5e94\u7528\u6743\u9650\uff0c\u53ef\u4ee5\u8054\u7cfb\u5e94\u7528\u62e5\u6709\u8005\u5728\u3010\u6210\u5458\u7ba1\u7406\u3011-\u3010\u6dfb\u52a0\u6210\u5458\u3011\u6dfb\u52a0\u5f00\u53d1\u8005\u6743\u9650\uff0c\u5982\u679c\u60a8\u5df2\u6709\u5f00\u53d1\u8005\u6743\u9650\u53ef\u4ee5\u8df3\u8fc7\u672c\u6b65\uff1a"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"\u6dfb\u52a0\u6210\u5458",src:a(5687).Z,width:"1346",height:"813"})),(0,r.kt)("h2",{id:"3-\u521b\u5efa\u5206\u652f"},"3. \u521b\u5efa\u5206\u652f"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("ol",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ol"},"\u9ed8\u8ba4\u4e3b\u5206\u652f\uff1a\u521b\u5efa\u5e94\u7528\u65f6\uff0c\u4f1a\u9ed8\u8ba4\u57fa\u4e8e main \u5206\u652f\u521b\u5efa\u4e00\u4e2a\u5e94\u7528\u7684\u9ed8\u8ba4\u5206\u652f <\u5e94\u7528 ID>/main"),(0,r.kt)("li",{parentName:"ol"},"\u53d1\u7248\u5206\u652f\uff1a\u4ee5 'release-' \u5f00\u5934\u7684\u5206\u652f\u6bd4\u8f83\u7279\u6b8a\uff0c\u4ec5 Owner \u53ca Maintainer \u53ef\u521b\u5efa\u7f16\u8f91\uff0c\u4e0d\u8fc7\u6240\u6709\u5e94\u7528\u6210\u5458\u5747\u62e5\u6709\u8bfb\u53d6\u6743\u9650\uff0c\u53d1\u7248\u5206\u652f\u7684\u547d\u540d\u5f62\u5f0f\u4e3a\uff1a<\u5e94\u7528 ID>/release-<\u7248\u672c>"),(0,r.kt)("li",{parentName:"ol"},"\u5f00\u53d1\u5206\u652f\uff1a\u7528\u6237\u5404\u81ea\u521b\u5efa\u7684\u975e\u53d1\u7248\u5206\u652f\u90fd\u5c5e\u4e8e\u5f00\u53d1\u5206\u652f\uff0c\u8fd9\u4e9b\u5206\u652f\u4ec5\u521b\u5efa\u4eba\u53ef\u89c1\uff0c\u5f53\u5f00\u5b8c\u5b8c\u6210\u4e00\u4e2a\u529f\u80fd\u540e\uff0c\u53ef\u4ee5\u5c06\u5f00\u53d1\u5206\u652f\u7684\u66f4\u6539\u63d0\u4ea4 merge \u5230\u53d1\u7248\u5206\u652f\uff0c\u5f00\u53d1\u5206\u652f\u7684\u547d\u540d\u5f62\u5f0f\u4e3a\uff1a<\u5e94\u7528 ID>/<\u7528\u6237 ID>/\u5206\u652f\u5c55\u793a\u540d"))),(0,r.kt)("p",null,"\u63a5\u4e0b\u6765\u6211\u4eec\u9700\u8981\u5728\u4e91\u68af\u5de5\u4f5c\u53f0\u3010\u5206\u652f\u7ba1\u7406\u3011-\u3010\u521b\u5efa\u5206\u652f\u3011\u521b\u5efa\u4e00\u4e2a\u5f00\u53d1\u5206\u652f\uff0c\u5982\u679c\u60a8\u5df2\u6709\u76f8\u5173\u5206\u652f\u53ef\u4ee5\u8df3\u8fc7\u672c\u6b65\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff0c\u6211\u4eec\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"dev")," \u7684\u5206\u652f\uff1a"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"\u53ef\u5728\u3010\u9875\u9762\u7ba1\u7406\u3011- \u70b9\u51fb\u53f3\u4e0a\u89d2\u5207\u6362\u5230 ",(0,r.kt)("inlineCode",{parentName:"p"},"dev")," \u5206\u652f")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"\u521b\u5efa\u5206\u652f",src:a(6377).Z,width:"1346",height:"813"})),(0,r.kt)("h2",{id:"4-\u65b0\u589e\u9875\u9762"},"4. \u65b0\u589e\u9875\u9762"),(0,r.kt)("p",null,"\u70b9\u51fb\u3010\u9875\u9762\u7ba1\u7406\u3011\uff0c\u70b9\u51fb\u3010\u53f3\u4e0a\u89d2\u9009\u62e9\u5206\u652f\u3011\u5207\u6362\u5230 ",(0,r.kt)("inlineCode",{parentName:"p"},"dev")," \u5206\u652f\uff0c\u5982\u56fe\u6240\u793a\uff0c"),(0,r.kt)("p",null,"\u63a5\u4e0b\u6765\u6211\u4eec\u9700\u8981\u521b\u5efa\u4e00\u4e2a\u9875\u9762\u6765\u5b9e\u73b0 ",(0,r.kt)("inlineCode",{parentName:"p"},"Hello World")," \u7684\u529f\u80fd\uff0c\u5982\u4e0b\u6240\u793a\uff0c\u5f53\u524d\u6211\u4eec\u8fd8\u6ca1\u6709\u9875\u9762\u6a21\u677f\uff08\u5df2\u6709\u7684\u9875\u9762\uff09\uff0c\u53ef\u4ee5\u4e0d\u9009\u62e9\uff1a"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"\u521b\u5efa\u9875\u9762",src:a(90).Z,width:"1346",height:"813"})),(0,r.kt)("p",null,"\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u3010\u53f3\u4e0a\u89d2\u6309\u94ae\u3011\u8fdb\u884c\u7f16\u8f91\u9875\u9762\u4fe1\u606f\u548c\u5220\u9664\u9875\u9762\u64cd\u4f5c\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1a"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"\u7f16\u8f91\u9875\u9762",src:a(7906).Z,width:"1447",height:"915"})),(0,r.kt)("h2",{id:"5-\u8bbe\u8ba1\u9875\u9762"},"5. \u8bbe\u8ba1\u9875\u9762"),(0,r.kt)("p",null," \u70b9\u51fb\u3010\u9009\u62e9\u9875\u9762\u3011-\u3010\u8bbe\u8ba1\u9875\u9762\u3011 \u76f4\u63a5\u8fdb\u5165\u9875\u9762\u8bbe\u8ba1\u5668\uff1a"),(0,r.kt)("p",null," ",(0,r.kt)("img",{alt:"\u8bbe\u8ba1\u9875\u9762\u5165\u53e3",src:a(8230).Z,width:"1346",height:"813"})),(0,r.kt)("h3",{id:"51-\u6dfb\u52a0\u8d44\u4ea7"},"5.1 \u6dfb\u52a0\u8d44\u4ea7"),(0,r.kt)("p",null," \u9996\u5148\u6211\u4eec\u9700\u8981\u6dfb\u52a0\u8bbe\u8ba1\u9875\u9762\u6240\u9700\u8981\u7684\u8d44\u4ea7\uff0c\u8d44\u4ea7\u5206\u4e3a\u7ec4\u4ef6\u548c\u975e\u7ec4\u4ef6\u4e24\u79cd\u7c7b\u578b\uff0c\u5982\u7ec4\u4ef6\u8d44\u4ea7\u5305\u3001bff \u63a5\u53e3\u7684 npm \u5305\u3002\u6b64\u5904\u6211\u4eec\u5df2\u6709\u5185\u7f6e\u7684\u7ec4\u4ef6\u8d44\u4ea7\u5305\uff0c\u53ef\u4ee5\u5148\u8df3\u8fc7\u3002"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("ol",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"\u5185\u7f6e\u524d\u7aef\u8d44\u4ea7\u5305\u5982\u4e0b\uff1a"),(0,r.kt)("table",{parentName:"li"},(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"\u5305\u540d"),(0,r.kt)("th",{parentName:"tr",align:"center"},"\u529f\u80fd"),(0,r.kt)("th",{parentName:"tr",align:"right"},"\u7c7b\u578b"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"@tenx-ui/materials"),(0,r.kt)("td",{parentName:"tr",align:"center"},"\u57fa\u4e8e antd \u7684\u7ec4\u4ef6\u8d44\u4ea7\u5305"),(0,r.kt)("td",{parentName:"tr",align:"right"},"npm \u7ec4\u4ef6")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"@tenx-ui/charts"),(0,r.kt)("td",{parentName:"tr",align:"center"},"\u57fa\u4e8e bizcharts \u7684\u56fe\u8868\u7ec4\u4ef6\u8d44\u4ea7\u5305"),(0,r.kt)("td",{parentName:"tr",align:"right"},"npm \u56fe\u6807\u7ec4\u4ef6")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"@tenx-ui/icon-materials"),(0,r.kt)("td",{parentName:"tr",align:"center"},"\u57fa\u4e8e @ant-design/icons, @tenx-ui/icon \u7684\u56fe\u6807\u7ec4\u4ef6\u8d44\u4ea7\u5305"),(0,r.kt)("td",{parentName:"tr",align:"right"},"npm \u56fe\u6807\u7ec4\u4ef6"))))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"\u624b\u52a8\u6dfb\u52a0 npm \u5305\u65f6\u4f1a\u901a\u8fc7\u89e3\u6790 package \u6587\u4ef6\u4e2d\u7684 yunti \u5b57\u6bb5\uff0c\u5224\u65ad\u5f53\u524d npm \u5305\u7c7b\u578b\u5e76\u6dfb\u52a0\u5230\u7ec4\u4ef6\u7ba1\u7406\u4e2d\u3002"),(0,r.kt)("p",{parentName:"li"},"package.json \u793a\u4f8b\uff1a"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre"},' "yunti": {\n "umd": { // UMD \u4ea7\u7269 CDN \u5730\u5740\n "library": "TenxUiMaterials",\n "entry": [\n "/dist/TenxUiMaterials.js",\n "/dist/TenxUiMaterials.css"\n ],\n "externals": { // \u4f9d\u8d56\u7684\u5916\u90e8\u5305\uff08\u81ea\u52a8\u6dfb\u52a0\uff09\n "antd": ">=5.4.0",\n "dayjs": ">=1.8.27",\n "@ant-design/icons": ">=4.7.0",\n "react": ">=16.9.0",\n "lodash": ">=4.17.21"\n }\n },\n "lowCode": { // \u7f16\u8f91\u6001 UMD \u4ea7\u7269 CDN \u5730\u5740\n "meta": "/build/lowcode/meta.js",\n "editEntry": [\n "/build/lowcode/view.css",\n "/build/lowcode/view.js"\n ]\n }\n}\n')),(0,r.kt)("p",{parentName:"li"},"\u6dfb\u52a0 npm \u8d44\u4ea7\u5305\u64cd\u4f5c\u5982\u4e0b\u56fe\u6240\u793a\uff1a\n",(0,r.kt)("img",{alt:"\u6dfb\u52a0 npm \u8d44\u4ea7\u5305",src:a(4016).Z,width:"1920",height:"937"}))))),(0,r.kt)("h3",{id:"52-\u5168\u5c40\u8bbe\u7f6e"},"5.2 \u5168\u5c40\u8bbe\u7f6e"),(0,r.kt)("p",null," \u3010\u5168\u5c40\u8bbe\u7f6e\u9762\u677f\u3011\u4e3b\u8981\u5305\u62ec ",(0,r.kt)("inlineCode",{parentName:"p"},"antd")," \u5168\u5c40\u6837\u5f0f\u8bbe\u7f6e\uff0c\u5e94\u7528\u7248\u672c\u8bbe\u7f6e \u7b49\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1a"),(0,r.kt)("p",null," ",(0,r.kt)("img",{alt:"\u5168\u5c40\u8bbe\u7f6e",src:a(765).Z,width:"1920",height:"937"})),(0,r.kt)("h3",{id:"53-\u62d6\u5165\u7ec4\u4ef6\u5e76\u914d\u7f6e\u5c5e\u6027"},"5.3 \u62d6\u5165\u7ec4\u4ef6\u5e76\u914d\u7f6e\u5c5e\u6027"),(0,r.kt)("p",null," \u6211\u4eec\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"Hello World")," \u793a\u4f8b\u975e\u5e38\u7b80\u5355\uff0c\u603b\u5171\u5305\u542b\u4e24\u4e2a\u7ec4\u4ef6\uff0c\u5f00\u53d1\u8005\u53ef\u4ee5\u4ece\u3010\u7ec4\u4ef6\u5e93\u9762\u677f\u3011\u4e2d\u5c06\u7ec4\u4ef6\u5148\u62d6\u5165\u753b\u5e03\uff0c\u7136\u540e\u901a\u8fc7\u53f3\u4fa7\u3010\u8bbe\u7f6e\u5668\u9762\u677f\u3011\u914d\u7f6e\u76f8\u5173\u5c5e\u6027\uff1a"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"\u5237\u65b0\u6309\u94ae")," - \u7528\u4e8e\u5237\u65b0\u9875\u9762\u6570\u636e\uff0c\u6211\u4eec\u5c06\u7ec4\u4ef6\u7684",(0,r.kt)("inlineCode",{parentName:"p"},"\u56fe\u6807"),"\u5c5e\u6027\u8bbe\u7f6e\u4e3a\u5173\u95ed\uff0c\u4e3a\u4e86\u7f8e\u89c2\u6211\u4eec\u5728\u3010\u6837\u5f0f\u9762\u677f\u3011\u4e2d\u8bbe\u7f6e\u4e0b\u8fb9\u8ddd\uff1a",(0,r.kt)("inlineCode",{parentName:"p"},"20px"),"\uff1b")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"\u8868\u683c")," - \u7528\u4e8e\u5c55\u793a\u5217\u8868\u6570\u636e\uff0c\u6211\u4eec\u5c06\u8868\u683c\u7684",(0,r.kt)("inlineCode",{parentName:"p"},"\u5217\u6807\u9898"),'\u5c5e\u6027\u8bbe\u7f6e\u4e3a "\u5e94\u7528\u540d\u79f0"\u3001 \u5e94\u7528id\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1b'),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{alt:"\u62d6\u5165\u7ec4\u4ef6",src:a(3931).Z,width:"1817",height:"919"}),"\n"))),(0,r.kt)("h3",{id:"54-\u6dfb\u52a0\u6570\u636e\u6e90\u7ed1\u5b9a\u6570\u636e"},"5.4 \u6dfb\u52a0\u6570\u636e\u6e90&\u7ed1\u5b9a\u6570\u636e"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"}," \u6dfb\u52a0\u6570\u636e\u6e90\u6709\u4e24\u79cd\u65b9\u5f0f\uff1a"),(0,r.kt)("ol",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ol"},"\u901a\u8fc7\u6570\u636e\u6e90\u9762\u677f\u586b\u52a0\uff0c\u5185\u7f6e\u4e86 ",(0,r.kt)("inlineCode",{parentName:"li"},"axios")," \u548c ",(0,r.kt)("inlineCode",{parentName:"li"},"jsonp")," \u4e24\u79cd\u7c7b\u578b\uff1b"),(0,r.kt)("li",{parentName:"ol"},"\u901a\u8fc7\u8d44\u4ea7\u914d\u7f6e\u7684\u65b9\u5f0f\u5f15\u5165 ",(0,r.kt)("inlineCode",{parentName:"li"},"bff sdk"),"\uff08\u6b64\u65b9\u5f0f\u57fa\u4e8e ",(0,r.kt)("inlineCode",{parentName:"li"},"swr"),"\uff09\uff1b"))),(0,r.kt)("p",null," \u4ece\u8fd9\u4e00\u6b65\u6211\u4eec\u8981\u5f00\u59cb\u5b9e\u73b0\u903b\u8f91\u90e8\u5206\u4e86\uff0c\u6211\u4eec\u73b0\u5728\u7528\u7b2c\u4e8c\u79cd\u65b9\u5f0f"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"\u9996\u5148\u70b9\u51fb\u8fdb\u5165\u3010\u8d44\u4ea7\u914d\u7f6e\u3011\u9762\u677f\uff0c\u6dfb\u52a0 ",(0,r.kt)("inlineCode",{parentName:"p"},"sdk")," \u8d44\u4ea7\u5305 ",(0,r.kt)("inlineCode",{parentName:"p"},"@tenx-ui/yunti-bff-client"),"\uff0c \u5982\u4e0b\u56fe\u6240\u793a:"),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{alt:"\u6dfb\u52a0\u6570\u636e\u6e90 npm \u5305",src:a(233).Z,width:"1920",height:"937"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"\u70b9\u51fb\u8fdb\u5165\u3010\u5168\u5c40\u4e0a\u4e0b\u6587\u7ba1\u7406\u3011\u9762\u677f\uff0c\u6dfb\u52a0\u5168\u5c40\u51fd\u6570 ",(0,r.kt)("inlineCode",{parentName:"p"},"bff")," \u6765\u5f15\u7528\u521a\u521a\u6dfb\u52a0\u7684 sdk \u8d44\u4ea7\u5305 ",(0,r.kt)("inlineCode",{parentName:"p"},"@tenx-ui/yunti-bff-client")," \u5982\u4e0b\u56fe\u6240\u793a:"),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{alt:"\u6dfb\u52a0\u5168\u5c40\u51fd\u6570",src:a(973).Z,width:"1920",height:"937"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"\u7ed1\u5b9a sdk \u4e2d\u7684\u8bf7\u6c42\u65b9\u6cd5\uff1a"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"\u65b9\u5f0f\u4e00\uff1a\u53ef\u4ee5\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"p"},"this.utils.bff.getXXX")," \u5728 \u3010\u6e90\u7801\u9762\u677f\u3011\u4e2d\u6765\u8c03\u7528 ",(0,r.kt)("inlineCode",{parentName:"p"},"sdk")," \u4e2d\u7684\u8bf7\u6c42\u65b9\u6cd5")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"\u65b9\u5f0f\u4e8c\uff1a\u3010\u5c5e\u6027\u8bbe\u7f6e\u9762\u677f\u3011-\u3010\u8c03\u7528\u51fd\u6570\u3011\uff08\u76ee\u524d\u4ec5\u652f\u6301\u89e3\u6790\u5168\u5c40\u51fd\u6570 ",(0,r.kt)("inlineCode",{parentName:"p"},"bff")," \u6240\u7ed1\u5b9a\u7684 npm \u8d44\u4ea7\u7684\u65b9\u6cd5 \uff09\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1a"))),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{alt:"\u6dfb\u52a0\u9875\u9762\u6570\u636e",src:a(5948).Z,width:"1920",height:"937"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"\u6700\u540e\u4e00\u6b65"))),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"\u6211\u4eec\u9700\u8981\u5c06\u63a5\u53e3\u8fd4\u56de\u7684\u6570\u636e\u53d8\u91cf ",(0,r.kt)("inlineCode",{parentName:"p"},"this.props.useGetCurrentUserApps?.data?.currentUser?.apps")," \u7ed1\u5b9a\u5230",(0,r.kt)("strong",{parentName:"p"},"\u8868\u683c"),"\u7ec4\u4ef6\u7684",(0,r.kt)("inlineCode",{parentName:"p"},"\u8868\u683c\u6570\u636e"),"\u5c5e\u6027\u4e0a\u8fdb\u884c\u5c55\u793a\uff1b")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"\u5c06\u53d8\u91cf ",(0,r.kt)("inlineCode",{parentName:"p"},"this.props.useGetCurrentUserApps?.loading")," \u7ed1\u5b9a\u5230",(0,r.kt)("strong",{parentName:"p"},"\u8868\u683c"),"\u7ec4\u4ef6\u7684",(0,r.kt)("inlineCode",{parentName:"p"},"\u52a0\u8f7d\u4e2d")," \u5c5e\u6027\u4e0a\u8fdb\u884c\u5c55\u793a\uff0c")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"\u5c06\u53d8\u91cf ",(0,r.kt)("inlineCode",{parentName:"p"},"this.props.useGetCurrentUserApps?.data?.currentUser?.apps?.length")," \u7ed1\u5b9a\u5230",(0,r.kt)("strong",{parentName:"p"},"\u8868\u683c"),"\u7ec4\u4ef6\u7684",(0,r.kt)("inlineCode",{parentName:"p"},"\u6570\u636e\u603b\u6570"),"\u5c5e\u6027\u4e0a\u8fdb\u884c\u5c55\u793a"),(0,r.kt)("p",{parentName:"li"}," \u5982\u4e0b\u56fe\u6240\u793a\uff1a"),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{alt:"\u9875\u9762\u7ed1\u5b9a\u6570\u636e",src:a(4077).Z,width:"1920",height:"937"})))),(0,r.kt)("h3",{id:"55-\u6dfb\u52a0\u53d8\u91cf\u65b9\u6cd5"},"5.5 \u6dfb\u52a0\u53d8\u91cf/\u65b9\u6cd5"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"}," \u6dfb\u52a0\u53d8\u91cf/\u65b9\u6cd5\u6839\u636e\u4f5c\u7528\u57df\u4e0d\u540c\u6709\u4e24\u79cd\uff1a"),(0,r.kt)("ol",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ol"},"\u5e94\u7528\u7ea7\u522b\uff1a\u6240\u6709\u9875\u9762\u90fd\u53ef\u4ee5\u4f7f\u7528\uff0c\u5728\u3010\u5168\u5c40\u4e0a\u4e0b\u6587\u7ba1\u7406\u3011\u5904\u6dfb\u52a0\uff1b"),(0,r.kt)("li",{parentName:"ol"},"\u9875\u9762\u7ea7\u522b\uff1a\u53ea\u6709\u5f53\u524d\u9875\u9762\u53ef\u4ee5\u4f7f\u7528\uff0c\u5728\u3010\u6e90\u7801\u9762\u677f\u3011\u5185\u6dfb\u52a0\uff1b"))),(0,r.kt)("p",null," \u6253\u5f00\u3010\u6e90\u7801\u9762\u677f\u3011\uff0c\u521b\u5efa\u4e00\u4e2a ",(0,r.kt)("inlineCode",{parentName:"p"},"refresh")," \u65b9\u6cd5\uff0c\u7528\u6765\u5237\u65b0\u6570\u636e\uff0c\u5982\u4e0b\u6240\u793a\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"refresh() {\n this.props.useGetCurrentUserApps.mutate()\n}\n")),(0,r.kt)("p",null," ",(0,r.kt)("img",{alt:"\u6dfb\u52a0\u9875\u9762\u51fd\u6570",src:a(3040).Z,width:"1920",height:"937"})),(0,r.kt)("h3",{id:"56-\u7ed1\u5b9a\u4e8b\u4ef6"},"5.6 \u7ed1\u5b9a\u4e8b\u4ef6"),(0,r.kt)("p",null,"\u7ed9\u6309\u94ae\u7ed1\u5b9a\u70b9\u51fb\u4e8b\u4ef6\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff0c\u6253\u5f00\u3010\u4e8b\u4ef6\u7ed1\u5b9a\u9762\u677f\u3011\uff0c\u9009\u62e9\u6e90\u7801\u9762\u677f\u4e2d\u5df2\u7ecf\u521b\u5efa\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"refresh")," \u65b9\u6cd5\uff0c\u5982\u679c\u4e0d\u9009\u62e9\uff0c\u70b9\u51fb\u786e\u5b9a\u540e\u6211\u4eec\u4f1a\u6839\u636e\u4f4e\u7801\u8bbe\u7f6e\u7684\u4e8b\u4ef6\u6a21\u677f\u81ea\u52a8\u6253\u5f00\u3010\u6e90\u7801\u9762\u677f\u3011\u5e76\u751f\u6210\u4e00\u4e2a JS \u51fd\u6570\uff1a"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"\u7ed1\u5b9a\u4e8b\u4ef6",src:a(9631).Z,width:"1920",height:"937"})),(0,r.kt)("h3",{id:"57-\u4fdd\u5b58\u9884\u89c8"},"5.7 \u4fdd\u5b58&\u9884\u89c8"),(0,r.kt)("p",null,"\u5230\u76ee\u524d\u4e3a\u6b62\uff0c\u6211\u4eec\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"Hello Word")," \u793a\u4f8b\u5c31\u5df2\u7ecf\u5f00\u53d1\u5b8c\u6210\u4e86\uff0c\u7528\u6237\u53ef\u4ee5\u70b9\u51fb\u8bbe\u8ba1\u5668\u53f3\u4e0a\u89d2\u7684\u3010\u4fdd\u5b58\u3011/\u3010\u9884\u89c8\u3011 \u6309\u94ae\u8fdb\u884c \u4fdd\u5b58/\u9884\u89c8, \u9884\u89c8\u64cd\u4f5c\u9ed8\u8ba4\u4f1a\u4fdd\u5b58\u6570\u636e\uff1a"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"\u4fdd\u5b58&\u9884\u89c8",src:a(2630).Z,width:"1920",height:"937"})),(0,r.kt)("h3",{id:"58-git-\u63d0\u4ea4"},"5.8 git \u63d0\u4ea4"),(0,r.kt)("p",null,"\u5f00\u53d1\u5b8c\u6210\u540e\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7 \u3010git \u63d0\u4ea4\u9762\u677f\u3011\u6765\u63d0\u4ea4\u6240\u6709\u4fee\u6539\uff1a"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"\u4fdd\u5b58&\u9884\u89c8",src:a(3958).Z,width:"1920",height:"937"})),(0,r.kt)("h3",{id:"59-\u53d1\u5e03\u51fa\u7801"},"5.9 \u53d1\u5e03&\u51fa\u7801"),(0,r.kt)("p",null,"\u6700\u540e\u53ef\u4ee5\u901a\u8fc7\u3010\u5e94\u7528\u53d1\u5e03\u3011\u6a21\u5757\u6765\u53d1\u5e03\u5e94\u7528\uff0c\u8be6\u89c1 ",(0,r.kt)("a",{parentName:"p",href:"/website/docs/develop-guid/lowcode-development/development/develop-hello-world"},"\u53d1\u5e03\u4e00\u4e2a Hello World \u7ec4\u4ef6")," \uff0c\u6216\u8005\u70b9\u51fb\u3010\u51fa\u7801\u3011\u6309\u94ae\u8fdb\u884c ",(0,r.kt)("inlineCode",{parentName:"p"},"ProCode")," \u51fa\u7801\uff0c\u5982\u4e0b\u56fe\u6240\u793a"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"\u51fa\u7801",src:a(4066).Z,width:"1920",height:"937"})))}s.isMDXComponent=!0},3293:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/app_create-051dd20b6e77e6bd5d1e999e0bbf9d12.png"},4016:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/assets_npm_add-0121b8cdf6a27acfaba58988c4037561.png"},233:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/assets_npm_bff-ee5e007a629757a7d8fd532995962898.png"},6377:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/branches_create-51a2b5fbaf7881ec726a10f3ea7dea66.png"},973:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/global_add_func-6117c10563e0d4225a54a2d64acec34a.png"},765:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/global_config-e5575bf2b560170ee104f976352b7a53.png"},5687:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/members_create-28345c05b121fc953d0668c20a16628e.png"},5948:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_add_api-398f83d92187f7623fc3bd8f2cb9a811.png"},3040:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_add_func-7c956a4e75b2e1265297adebf84455e0.png"},4077:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_bind_data-43d20f889acfc1801f7904472f3368f7.png"},9631:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_bind_func-6c3ba1d420df48b4ab7011263eab7f74.png"},4066:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_code-73902d0eec78916a9a105e0894ea03af.png"},3958:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_commit-e6cb6c03ce7c4699a1e229eb4cc7d9a4.png"},90:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_create-582d5677202f15c0c6124f2dc1503501.png"},7906:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_edit-de0089afadde64e209a272050cba0764.png"},3931:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_edit_props-4d476b11e959acd3818d3a4cf44164e6.png"},8230:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_entry-6073242a2bae6e2aab50cdfd7823c8a2.png"},2630:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_preview-e9da425c71c6168a46544d25db5bebf4.png"}}]); \ No newline at end of file diff --git a/assets/js/67d2fccd.711bcf9a.js b/assets/js/67d2fccd.711bcf9a.js new file mode 100644 index 000000000..f6799953c --- /dev/null +++ b/assets/js/67d2fccd.711bcf9a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9060],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>u});var a=t(7294);function p(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n=0||(p[t]=e[t]);return p}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(p[t]=e[t])}return p}var m=a.createContext({}),o=function(e){var n=a.useContext(m),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},s=function(e){var n=o(e.components);return a.createElement(m.Provider,{value:n},e.children)},k="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},N=a.forwardRef((function(e,n){var t=e.components,p=e.mdxType,i=e.originalType,m=e.parentName,s=r(e,["components","mdxType","originalType","parentName"]),k=o(t),N=p,u=k["".concat(m,".").concat(N)]||k[N]||d[N]||i;return t?a.createElement(u,l(l({ref:n},s),{},{components:t})):a.createElement(u,l({ref:n},s))}));function u(e,n){var t=arguments,p=n&&n.mdxType;if("string"==typeof e||p){var i=t.length,l=new Array(i);l[0]=N;var r={};for(var m in n)hasOwnProperty.call(n,m)&&(r[m]=n[m]);r.originalType=e,r[k]="string"==typeof e?e:p,l[1]=r;for(var o=2;o{t.r(n),t.d(n,{assets:()=>m,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>o});var a=t(7462),p=(t(7294),t(3905));const i={sidebar_position:4},l="\u7ec4\u4ef6\u90e8\u7f72",r={unversionedId:"develop-guid/core/concepts/componentplan",id:"develop-guid/core/concepts/componentplan",title:"\u7ec4\u4ef6\u90e8\u7f72",description:"ComponentPlan \u4f1a\u5b89\u88c5\u4e00\u4e2a\u7ec4\u4ef6\u5230\u96c6\u7fa4\uff0c\u7c7b\u4f3c\u6267\u884c\u4e00\u6b21 helm install/upgrade \u64cd\u4f5c\uff0c\u53ea\u4e0d\u8fc7\u5c06 helm install/upgrade \u547d\u4ee4\u4e2d\u7684\u53c2\u6570\u56fa\u5316\u5230 ComponentPlan \u7684 spec",source:"@site/docs/develop-guid/core/concepts/componentplan.md",sourceDirName:"develop-guid/core/concepts",slug:"/develop-guid/core/concepts/componentplan",permalink:"/website/docs/develop-guid/core/concepts/componentplan",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6\u8ba2\u9605",permalink:"/website/docs/develop-guid/core/concepts/subscription"},next:{title:"\u6269\u5c55\u8d44\u6e90(\u5e95\u5ea7)",permalink:"/website/docs/develop-guid/core/concepts/buildingbase_resources"}},m={},o=[{value:"\u4f7f\u7528",id:"\u4f7f\u7528",level:2},{value:"CRD \u5b9a\u4e49\u8bf4\u660e",id:"crd-\u5b9a\u4e49\u8bf4\u660e",level:2},{value:"\u914d\u7f6e\u8bf4\u660e",id:"\u914d\u7f6e\u8bf4\u660e",level:3},{value:"\u72b6\u6001\u63cf\u8ff0",id:"\u72b6\u6001\u63cf\u8ff0",level:3},{value:"\u5de5\u4f5c\u539f\u7406",id:"\u5de5\u4f5c\u539f\u7406",level:2},{value:"\u955c\u50cf\u8986\u76d6\u7b56\u7565",id:"\u955c\u50cf\u8986\u76d6\u7b56\u7565",level:3},{value:"ComponentPlan \u548c Helm release \u7684\u5173\u7cfb",id:"componentplan-\u548c-helm-release-\u7684\u5173\u7cfb",level:3}],s={toc:o},k="wrapper";function d(e){let{components:n,...i}=e;return(0,p.kt)(k,(0,a.Z)({},s,i,{components:n,mdxType:"MDXLayout"}),(0,p.kt)("h1",{id:"\u7ec4\u4ef6\u90e8\u7f72"},"\u7ec4\u4ef6\u90e8\u7f72"),(0,p.kt)("p",null,"ComponentPlan \u4f1a\u5b89\u88c5\u4e00\u4e2a\u7ec4\u4ef6\u5230\u96c6\u7fa4\uff0c\u7c7b\u4f3c\u6267\u884c\u4e00\u6b21 ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade")," \u64cd\u4f5c\uff0c\u53ea\u4e0d\u8fc7\u5c06 ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade")," \u547d\u4ee4\u4e2d\u7684\u53c2\u6570\u56fa\u5316\u5230 ComponentPlan \u7684 spec\n\u5b57\u6bb5\u4e2d\uff0c\u5c06\u6d89\u53ca\u5230\u7684 docker \u955c\u50cf\u4ee5\u53ca\u5b89\u88c5\u540e\u96c6\u7fa4\u5bf9\u8c61\u548c\u73b0\u6709\u5bf9\u8c61\u7684 diff \u663e\u793a\u5728 status \u5b57\u6bb5\u4e2d\uff0c\u5e76\u4e14\u53ef\u4ee5\u8bbe\u7f6e\u5931\u8d25\u540e\u81ea\u52a8\u91cd\u8bd5\u7684\u6b21\u6570\u3002"),(0,p.kt)("h2",{id:"\u4f7f\u7528"},"\u4f7f\u7528"),(0,p.kt)("p",null,"\u4e0b\u9762\u662f\u4e00\u4e2a ComponentPlan \u793a\u4f8b\uff1a"),(0,p.kt)("pre",null,(0,p.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: ComponentPlan\nmetadata:\n# labels:\n# core.kubebb.k8s.com.cn/componentplan-release: nginx\n name: nginx-15.0.2\n namespace: kubebb-system\nspec:\n approved: true\n component:\n name: repository-bitnami-sample.nginx\n namespace: kubebb-system\n name: my-nginx\n override:\n images:\n - name: docker.io/bitnami/nginx\n newTag: latest # the default image is docker.io/bitnami/nginx:1.25.1-debian-11-r0, will be replaced by docker.io/bitnami/nginx:latest\n version: 15.0.2\n#status:\n# conditions:\n# - lastTransitionTime: "2023-06-21T03:44:31Z"\n# reason: ""\n# status: "True"\n# type: Approved\n# - lastTransitionTime: "2023-06-21T03:44:37Z"\n# reason: ""\n# status: "True"\n# type: Installed\n# - lastTransitionTime: "2023-06-21T03:44:37Z"\n# reason: ""\n# status: "True"\n# type: Succeeded\n# images:\n# - docker.io/bitnami/nginx:latest\n# installedRevision: 3\n# latest: true\n# observedGeneration: 5\n# resources:\n# - NewCreated: true\n# apiVersion: v1\n# kind: Service\n# name: my-nginx\n# - NewCreated: true\n# apiVersion: apps/v1\n# kind: Deployment\n# name: my-nginx\n')),(0,p.kt)("p",null,"\u4e0a\u8ff0 ComponentPlan \u5b9a\u4e49\u4e86\u5b89\u88c5\u7684\u7ec4\u4ef6\u662f ",(0,p.kt)("inlineCode",{parentName:"p"},"kubebb-system")," \u547d\u540d\u7a7a\u95f4\u7684 ",(0,p.kt)("inlineCode",{parentName:"p"},"repository-bitnami-sample.nginx"),"\u3002\n\u5b89\u88c5\u540d\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"my-nginx"),"\uff0c\u5b89\u88c5\u7248\u672c\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"15.0.2"),"\u3002\n\u540c\u65f6\u5728\u5b89\u88c5\u65f6\uff0c\u5c06\u955c\u50cf ",(0,p.kt)("inlineCode",{parentName:"p"},"docker.io/bitnami/nginx")," \u7684 ",(0,p.kt)("inlineCode",{parentName:"p"},"tag")," \u66ff\u6362\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"latest"),"\u3002"),(0,p.kt)("p",null,"\u901a\u8fc7 ",(0,p.kt)("inlineCode",{parentName:"p"},"status")," \u5b57\u6bb5\u53ef\u4ee5\u770b\u5230\uff0c\u5f53\u524d\u7ec4\u4ef6\u6d89\u53ca\u7684\u955c\u50cf\u4ee5\u53ca\u8d44\u6e90\u3002\u5176\u4e2d\u8d44\u6e90\u4f1a\u6807\u660e\u662f\u65b0\u521b\u5efa\u8fd8\u662f\u66f4\u65b0\u73b0\u6709\u8d44\u6e90\uff0c\u4e00\u4e2a\u66f4\u65b0\u73b0\u6709\u8d44\u6e90\u7684\u4f8b\u5b50\u4e3a\uff1a"),(0,p.kt)("pre",null,(0,p.kt)("code",{parentName:"pre",className:"language-yaml"},"- apiVersion: v1\n kind: Service\n name: my-wordpress\n specDiffwithExist: no spec diff, but some field like resourceVersion will update\n- apiVersion: apps/v1\n kind: Deployment\n name: my-wordpress\n specDiffwithExist: |\n metadata:\n annotations: map[deployment.kubernetes.io/revision:2] -> (REMOVED)\n spec:\n replicas: 3 -> 1\n template:\n spec:\n containers:\n '[#0]':\n image: docker.io/bitnami/wordpress:6.2.2-debian-11-r9 -> docker.io/bitnami/wordpress:6.2.2-debian-11-r11\n resources:\n requests:\n cpu: 400m -> 300m\n memory: 1Gi -> 512Mi\n")),(0,p.kt)("h2",{id:"crd-\u5b9a\u4e49\u8bf4\u660e"},"CRD \u5b9a\u4e49\u8bf4\u660e"),(0,p.kt)("p",null,"CRD \u7684\u4ee3\u7801\u5b9a\u4e49\u4f4d\u4e8e ",(0,p.kt)("a",{parentName:"p",href:"https://github.com/kubebb/core/blob/main/api/v1alpha1/componentplan_types.go"},"componentplan_types.go"),"\u3002\u63a5\u4e0b\u6765\u4f1a\u8be6\u7ec6\u4ecb\u7ecd\u6bcf\u4e2a\u5b57\u6bb5\u7684\u542b\u4e49\u53ca\u5176\u4f5c\u7528\u3002"),(0,p.kt)("admonition",{type:"tip"},(0,p.kt)("p",{parentName:"admonition"},"\u8bf4\u660e\uff1a\u5bf9\u4e8e\u4e0b\u9762\u7684 yaml\uff0c\u6211\u4eec\u60f3\u8981\u8bbf\u95ee bar \u5b57\u6bb5\uff0c\u4e66\u5199\u683c\u5f0f\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"spec.foo.bar")),(0,p.kt)("pre",{parentName:"admonition"},(0,p.kt)("code",{parentName:"pre",className:"language-yaml"},"spec:\n foo:\n bar: xx\n"))),(0,p.kt)("h3",{id:"\u914d\u7f6e\u8bf4\u660e"},"\u914d\u7f6e\u8bf4\u660e"),(0,p.kt)("p",null,"ComponentPlan \u7684\u53ef\u9009\u914d\u7f6e\u5339\u914d\u4e86 helm install / upgrade / uninstall \u7684\u53ef\u9009\u53c2\u6570\uff0c\u6709\u4e00\u4e9b\u53c2\u6570 ComponentPlan \u5e76\u4e0d\u652f\u6301:"),(0,p.kt)("ol",null,(0,p.kt)("li",{parentName:"ol"},(0,p.kt)("inlineCode",{parentName:"li"},"--create-namespace")," \u53c2\u6570\u4e0d\u652f\u6301\uff0chelm release \u4f1a\u521b\u5efa\u5728 ComponentPlan \u7684\u540c\u540d namespace \u4e2d\u3002"),(0,p.kt)("li",{parentName:"ol"},(0,p.kt)("inlineCode",{parentName:"li"},"--dry-run")," \u53c2\u6570\u4e0d\u652f\u6301\uff0c\u4e0d\u9700\u8981\u6a21\u62df\uff0c\u6a21\u62df\u8fd0\u884c\u7684\u7ed3\u679c\u4f1a\u51fa\u73b0\u5728 ComponentPlan \u7684 status \u5b57\u6bb5\u4e2d\u3002"),(0,p.kt)("li",{parentName:"ol"},(0,p.kt)("inlineCode",{parentName:"li"},"--replace")," \u53c2\u6570\u4e0d\u652f\u6301\uff0chelm \u6807\u8bb0\u8be5\u53c2\u6570\u4e0d\u5e94\u8be5\u7528\u4e8e\u751f\u4ea7\u73af\u5883\u3002"),(0,p.kt)("li",{parentName:"ol"},(0,p.kt)("inlineCode",{parentName:"li"},"--render-subchart-notes")," \u53c2\u6570\u4e0d\u652f\u6301\uff0c\u6211\u4eec\u4e0d\u5c55\u793a notes \u4fe1\u606f\u3002"),(0,p.kt)("li",{parentName:"ol"},(0,p.kt)("inlineCode",{parentName:"li"},"--devel")," \u53c2\u6570\u4e0d\u652f\u6301\uff0c\u5982\u679c\u9700\u8981\u4f7f\u7528 ",(0,p.kt)("inlineCode",{parentName:"li"},"devel")," \u7248\u672c\uff0c",(0,p.kt)("inlineCode",{parentName:"li"},"spec.version")," \u5b57\u6bb5\u6307\u5b9a ",(0,p.kt)("inlineCode",{parentName:"li"},">0.0.0-0")," \u5373\u53ef\u3002"),(0,p.kt)("li",{parentName:"ol"},(0,p.kt)("inlineCode",{parentName:"li"},"--nameTemplate")," \u548c ",(0,p.kt)("inlineCode",{parentName:"li"},"--generateName")," \u53c2\u6570\u4e0d\u652f\u6301\uff0c\u56e0\u4e3a\u8fd9\u4e24\u4e2a\u5b57\u6bb5\u5728\u591a\u6b21\u8fd0\u884c\u8fc7\u7a0b\u4e2d\u53ef\u80fd\u4f1a\u751f\u6210\u4e0d\u786e\u5b9a\u7684\u7ed3\u679c\uff0c\u6211\u4eec\u4f7f\u7528 ",(0,p.kt)("inlineCode",{parentName:"li"},"spec.name")," \u6765\u751f\u6210\u56fa\u5b9a\u7684\u540d\u79f0\u3002"),(0,p.kt)("li",{parentName:"ol"},(0,p.kt)("inlineCode",{parentName:"li"},"--reset-values")," \u548c ",(0,p.kt)("inlineCode",{parentName:"li"},"--reuse-values")," \u53c2\u6570\u4e0d\u652f\u6301\uff0c\u6211\u4eec\u4f7f\u7528 ",(0,p.kt)("inlineCode",{parentName:"li"},"spec.override.values")," \u548c ",(0,p.kt)("inlineCode",{parentName:"li"},"spec.override.valuesFrom")," \u6765\u91cd\u5199\u914d\u7f6e\u3002"),(0,p.kt)("li",{parentName:"ol"},"\u5176\u4ed6\u8ba4\u8bc1\u53c2\u6570\u6bd4\u5982 ",(0,p.kt)("inlineCode",{parentName:"li"},"--username"),"\uff0c\u9700\u8981\u5728 Repository \u4e2d\u6307\u5b9a\u3002")),(0,p.kt)("p",null,"\u5176\u4ed6\u914d\u7f6e\u4e3a\uff1a"),(0,p.kt)("ul",null,(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.componet")),(0,p.kt)("p",{parentName:"li"},"\u8be5\u5b57\u6bb5\u7528\u6765\u6307\u660e\u8981\u76d1\u63a7\u7684\u7ec4\u4ef6\u5b9e\u4f8b\uff0c\u4e00\u822c\u4f7f\u7528 ",(0,p.kt)("inlineCode",{parentName:"p"},"namespace")," \u548c ",(0,p.kt)("inlineCode",{parentName:"p"},"name")," \u6765\u552f\u4e00\u786e\u5b9a")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.version")),(0,p.kt)("p",{parentName:"li"},"\u9700\u8981\u5b89\u88c5\u7684\u7ec4\u4ef6\u7248\u672c\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.approved")),(0,p.kt)("p",{parentName:"li"},"\u662f\u5426\u540c\u610f\u5b89\u88c5\u3002",(0,p.kt)("inlineCode",{parentName:"p"},"bool")," \u7c7b\u578b\uff0c",(0,p.kt)("inlineCode",{parentName:"p"},"true")," \u6216 ",(0,p.kt)("inlineCode",{parentName:"p"},"false"),"\uff0c\u5f53\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"true")," \u65f6\uff0c\u81ea\u52a8\u89e6\u53d1\u5b89\u88c5\u6d41\u7a0b\u3002\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false")," \u65f6\uff0c\u53ea\u4f1a\u89e3\u6790\u8fd9\u4e2a\u7ec4\u4ef6\u7684 ",(0,p.kt)("inlineCode",{parentName:"p"},"manifest"),"\uff0c\u5e76\u586b\u5145 ",(0,p.kt)("inlineCode",{parentName:"p"},"status")," \u5b57\u6bb5\uff0c\u65b9\u4fbf\u7528\u6237\u5224\u65ad\u8fd9\u6b21\u5b89\u88c5\u4f1a\u5bf9\u96c6\u7fa4\u4e2d\u73b0\u6709\u8d44\u6e90\u5e26\u6765\u7684\u5f71\u54cd\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.name")),(0,p.kt)("p",{parentName:"li"},"\u7ec4\u4ef6\u5b89\u88c5\u5230\u96c6\u7fa4\u4e2d\u7684\u540d\u79f0\u3002\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm release")," \u7684\u540d\u79f0")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.force")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u66f4\u65b0\u65f6\u901a\u8fc7\u66ff\u6362\u7b56\u7565\u5f3a\u5236\u66f4\u65b0\u8d44\u6e90, \u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm upgrade --force")," \u53c2\u6570\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.timeoutSeconds")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u6574\u6570\u503c\uff0c\u521b\u5efa/\u66f4\u65b0/\u5220\u9664\u65f6\u7684\u8d85\u65f6\u65f6\u95f4\uff0c\u5355\u4f4d\u4e3a\u79d2\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"300"),"\uff0c\u5373 5 \u5206\u949f\u3002\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade --timeout")," \u53c2\u6570")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.wait")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u5982\u679c\u8bbe\u7f6e\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"true"),"\uff0c\u5c06\u7b49\u5f85\u6240\u6709\u7684 Pod\u3001PVC\u3001Service \u548c Deployment\u3001StatefulSet \u6216 ReplicaSet \u7684\u6700\u5c0f\u6570\u91cf\u7684 Pod \u5904\u4e8e\u5c31\u7eea\u72b6\u6001\u624d\u8ba4\u4e3a\u5b89\u88c5/\u66f4\u65b0\u6210\u529f\u3002\u7b49\u5f85\u7684\u65f6\u95f4\u5373\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"spec.timeoutSeconds")," \u7684\u503c\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"),"\uff0c\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade --wait")," \u53c2\u6570\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.waitForJobs")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u5982\u679c\u8bbe\u7f6e\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"true"),"\uff0c\u5c06\u7b49\u5f85\u6240\u6709\u7684 Job \u5b8c\u6210\u624d\u8ba4\u4e3a\u5b89\u88c5/\u66f4\u65b0\u6210\u529f\u3002\u7b49\u5f85\u7684\u65f6\u95f4\u5373\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"spec.timeoutSeconds")," \u7684\u503c\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"),"\uff0c\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade --wait-for-jobs")," \u53c2\u6570\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.description")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u7ed9\u5b89\u88c5/\u66f4\u65b0\u6dfb\u52a0\u4e00\u4e2a\u81ea\u5b9a\u4e49\u63cf\u8ff0\u3002\u9ed8\u8ba4\u4e3a\u7a7a\uff0c\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade --description")," \u53c2\u6570\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.dependencyUpdate")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u5728\u5b89\u88c5/\u66f4\u65b0\u7ec4\u4ef6\u524d\uff0c\u662f\u5426\u66f4\u65b0\u7f3a\u5c11\u7684\u4f9d\u8d56\u9879\u3002\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade --dependency-update")," \u53c2\u6570\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.disableHooks")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u5982\u679c\u8bbe\u7f6e\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"true"),"\uff0c\u5219\u963b\u6b62 Hook \u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u8fd0\u884c\uff0c\u5e76\u7981\u7528\u5347\u7ea7\u524d/\u540e Hook\uff0c\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade --no-hooks")," \u53c2\u6570\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.disableOpenAPIValidation")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u5982\u679c\u8bbe\u7f6e\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"true"),"\uff0c\u5b89\u88c5\u8fc7\u7a0b\u5c06\u4e0d\u4f1a\u6839\u636e Kubernetes OpenAPI Schema \u9a8c\u8bc1\u6e32\u67d3\u7684\u6a21\u677f\u3002\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade --disable-openapi-validation")," \u53c2\u6570\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.atomic")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u5982\u679c\u8bbe\u7f6e\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"true"),"\uff0c\u5b89\u88c5/\u66f4\u65b0\u8fc7\u7a0b\u4f1a\u5728\u5b89\u88c5/\u66f4\u65b0\u5931\u8d25\u65f6\u5220\u9664\u5b89\u88c5\u3002\u5982\u679c ",(0,p.kt)("inlineCode",{parentName:"p"},"spec.atomic")," \u8bbe\u7f6e\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"true"),"\uff0c\u5c06\u81ea\u52a8\u8bbe\u7f6e ",(0,p.kt)("inlineCode",{parentName:"p"},"spec.wait")," \u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"true"),"\u3002\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade --atomic")," \u53c2\u6570\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.skipCRDs")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u5982\u679c\u8bbe\u7f6e\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"true"),"\uff0c\u5219\u8df3\u8fc7 CRD \u7684\u5b89\u88c5\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u5982\u679c\u5c1a\u672a\u5b89\u88c5 CRD\uff0c\u4f1a\u81ea\u52a8\u5b89\u88c5\u3002\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade --skip-crds")," \u53c2\u6570\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.enableDNS")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u5728\u6e32\u67d3\u6a21\u677f\u65f6\u662f\u5426\u542f\u7528 DNS \u67e5\u8be2\uff0c\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade --enable-dns")," \u53c2\u6570 \u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.historyMax")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u6574\u6570\u503c\uff0c\u9650\u5236\u6bcf\u4e2a release \u4fdd\u5b58\u7684\u6700\u5927 revisions \u6570\u76ee\u3002\u4f7f\u7528 ",(0,p.kt)("inlineCode",{parentName:"p"},"0")," \u8868\u793a\u65e0\u9650\u5236\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"10"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.maxRetry")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u6574\u6570\u503c\uff0c\u521b\u5efa/\u66f4\u65b0\u6700\u5927\u91cd\u8bd5\u6b21\u6570\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"5"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.cleanupOnFail")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u5f53\u5347\u7ea7\u5931\u8d25\u65f6\uff0c\u5141\u8bb8\u5220\u9664\u5728\u6b64\u5347\u7ea7\u4e2d\u521b\u5efa\u7684\u65b0\u8d44\u6e90\uff0c\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm upgrade --cleanup-on-fail")," \u53c2\u6570\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"),"\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.keepHistory")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u5378\u8f7d\u65f6\uff0c\u5220\u9664\u6240\u6709\u76f8\u5173\u8d44\u6e90\uff0c\u5e76\u5c06\u53d1\u5e03\u6807\u8bb0\u4e3a\u5df2\u5220\u9664\uff0c\u4f46\u4fdd\u7559\u53d1\u5e03\u5386\u53f2\u3002\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm uninstall --keep-history")," \u53c2\u6570\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"),"\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u7528\u4e8e\u8986\u76d6\u539f\u7ec4\u4ef6\u914d\u7f6e\u7684\u5b57\u6bb5\u3002"),(0,p.kt)("ul",{parentName:"li"},(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.values")),(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"JSON")," \u683c\u5f0f\u7684 ",(0,p.kt)("inlineCode",{parentName:"p"},"values"),"\uff0c\u7528\u4e8e\u8986\u76d6\u9ed8\u8ba4\u503c")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.valuesFrom")),(0,p.kt)("p",{parentName:"li"},"\u5b57\u6bb5\u4e3a\u6570\u7ec4\u3002\u5f53\u8981\u8bbe\u5b9a\u7684\u5b57\u6bb5\u504f\u591a\u65f6\uff0c\u6211\u4eec\u4e00\u822c\u5e0c\u671b\u628a ",(0,p.kt)("inlineCode",{parentName:"p"},"values.yaml")," \u5355\u72ec\u62ff\u51fa\u6765\uff0c\u653e\u5728 ",(0,p.kt)("inlineCode",{parentName:"p"},"ConfigMap")," \u6216\u8005 ",(0,p.kt)("inlineCode",{parentName:"p"},"Secret")," \u4e2d\uff0c\u800c\u4e14\u6211\u4eec\u53ef\u80fd\u4f1a\u6709\u5f88\u591a ",(0,p.kt)("inlineCode",{parentName:"p"},"values.yaml")," \u6587\u4ef6\u3002\u5177\u4f53\u683c\u5f0f\u4e3a\uff1a"),(0,p.kt)("ul",{parentName:"li"},(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.valuesFrom[].kind")),(0,p.kt)("p",{parentName:"li"},"\u53ef\u9009\u9879\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"Secret")," \u6216 ",(0,p.kt)("inlineCode",{parentName:"p"},"ConfigMap"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.valuesFrom[].name")),(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"Secret")," \u6216 ",(0,p.kt)("inlineCode",{parentName:"p"},"ConfigMap")," \u7684\u540d\u79f0\uff0c\u4e0d\u9700\u8981 ",(0,p.kt)("inlineCode",{parentName:"p"},"namespace")," \u5b57\u6bb5\uff0c\u56e0\u4e3a\u53ea\u4f1a\u67e5\u627e\u548c\u5f53\u524d ComponentPlan \u540c ",(0,p.kt)("inlineCode",{parentName:"p"},"namespace")," \u7684\u8d44\u6e90\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.valuesFrom[].valuesKey")),(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"Secret")," \u6216 ",(0,p.kt)("inlineCode",{parentName:"p"},"ConfigMap")," \u7684 ",(0,p.kt)("inlineCode",{parentName:"p"},"data")," \u4e2d\u7684 ",(0,p.kt)("inlineCode",{parentName:"p"},"key"),"\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"values.yaml")," \u4f1a\u5c1d\u8bd5\u5148\u540e\u67e5\u8be2 ",(0,p.kt)("inlineCode",{parentName:"p"},"ConfigMap")," \u4e2d\u7684 ",(0,p.kt)("inlineCode",{parentName:"p"},"Data")," \u548c ",(0,p.kt)("inlineCode",{parentName:"p"},"BinaryData")," \u5b57\u6bb5\uff0c",(0,p.kt)("inlineCode",{parentName:"p"},"Secret")," \u4e2d\u7684 ",(0,p.kt)("inlineCode",{parentName:"p"},"StringData")," \u548c ",(0,p.kt)("inlineCode",{parentName:"p"},"Data")," \u5b57\u6bb5\u3002")))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.set")),(0,p.kt)("p",{parentName:"li"},"\u6570\u7ec4\uff0c\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm template --set")," \u7684\u53c2\u6570")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.set-string")),(0,p.kt)("p",{parentName:"li"},"\u6570\u7ec4\uff0c\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm template --set-string")," \u7684\u53c2\u6570")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.images")),(0,p.kt)("p",{parentName:"li"},"\u6570\u7ec4\u3002\u7c7b\u4f3c ",(0,p.kt)("a",{parentName:"p",href:"https://kubectl.docs.kubernetes.io/references/kustomize/builtins/#_imagetagtransformer_"},(0,p.kt)("inlineCode",{parentName:"a"},"kustomize")," \u7684\u955c\u50cf\u81ea\u5b9a\u4e49\u53c2\u6570")),(0,p.kt)("ul",{parentName:"li"},(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.images[].name")),(0,p.kt)("p",{parentName:"li"},"\u539f\u59cb\u955c\u50cf\u540d\u79f0\uff0c",(0,p.kt)("inlineCode",{parentName:"p"},"tag")," \u53ef\u9009\uff0c\u5982\u679c\u5305\u542b ",(0,p.kt)("inlineCode",{parentName:"p"},"tag"),"\uff0c\u5219\u5339\u914d\u7cbe\u786e\u5230 ",(0,p.kt)("inlineCode",{parentName:"p"},"tag")," \u4e00\u81f4\u624d\u66ff\u6362\uff0c\u6bd4\u5982\uff0c\u5982\u679c\u8be5\u9879\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"docker.io/bitnami/nginx:v1"),"\uff0c\u90a3\u4e48\u53ea\u5339\u914d tag \u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"v1")," \u7684 nginx \u955c\u50cf\uff0c\u5982\u679c\u6709 ",(0,p.kt)("inlineCode",{parentName:"p"},"docker.io/bitnami/nginx:v2")," \u4e0d\u4f1a\u88ab\u66ff\u6362\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.images[].newName")),(0,p.kt)("p",{parentName:"li"},"\u66ff\u4ee3\u539f\u59cb\u955c\u50cf\u540d\u79f0\u7684\u540d\u79f0")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.images[].newTag")),(0,p.kt)("p",{parentName:"li"},"\u66ff\u4ee3\u539f\u59cb ",(0,p.kt)("inlineCode",{parentName:"p"},"tag")," \u7684\u65b0 ",(0,p.kt)("inlineCode",{parentName:"p"},"tag")," \u540d\u79f0")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.images[].digest")),(0,p.kt)("p",{parentName:"li"},"\u66ff\u4ee3\u539f\u59cb ",(0,p.kt)("inlineCode",{parentName:"p"},"tag")," \u7684\u65b0 ",(0,p.kt)("inlineCode",{parentName:"p"},"digest"),"\uff0c\u5982\u679c ",(0,p.kt)("inlineCode",{parentName:"p"},"digest")," \u6709\u503c\uff0c\u4f1a\u5ffd\u7565 ",(0,p.kt)("inlineCode",{parentName:"p"},"newTag")," \u7684\u503c\u3002"))))))),(0,p.kt)("h3",{id:"\u72b6\u6001\u63cf\u8ff0"},"\u72b6\u6001\u63cf\u8ff0"),(0,p.kt)("p",null,"\u4e00\u4e2a\u5178\u578b\u7684 ComponentPlan \u72b6\u6001\u793a\u4f8b\u5982\u4e0b\uff1a"),(0,p.kt)("pre",null,(0,p.kt)("code",{parentName:"pre",className:"language-yaml"},'status:\n conditions:\n - lastTransitionTime: "2023-07-25T12:22:12Z"\n reason: ""\n status: "True"\n type: Approved\n - lastTransitionTime: "2023-07-25T12:25:00Z"\n message: timed out waiting for the condition\n reason: UpgradeFailed\n status: "False"\n type: Actioned\n - lastTransitionTime: "2023-07-25T12:25:00Z"\n reason: ""\n status: "False"\n type: Succeeded\n images:\n - docker.io/bitnami/nginx:xxxxx\n installedRevision: 4\n latest: true\n observedGeneration: 1\n resources:\n - NewCreated: true\n apiVersion: v1\n kind: Service\n name: my-nginx\n - NewCreated: true\n apiVersion: apps/v1\n kind: Deployment\n name: my-nginx\n')),(0,p.kt)("ul",null,(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.conditions")),(0,p.kt)("p",{parentName:"li"},"\u6570\u7ec4\uff0cComponentPlan \u7684\u72b6\u6001"),(0,p.kt)("ul",{parentName:"li"},(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.conditions[].lastTransitionTime")),(0,p.kt)("p",{parentName:"li"},"\u4e0a\u6b21\u4ece\u4e00\u79cd\u72b6\u6001\u8f6c\u6362\u5230\u53e6\u4e00\u79cd\u72b6\u6001\u65f6\u7684\u65f6\u95f4\u6233")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.conditions[].reason")),(0,p.kt)("p",{parentName:"li"},"\u673a\u5668\u53ef\u8bfb\u7684\u3001\u9a7c\u5cf0\u7f16\u7801\uff08UpperCamelCase\uff09\u7684\u6587\u5b57\uff0c\u8868\u8ff0\u4e0a\u6b21\u72b6\u51b5\u53d8\u5316\u7684\u539f\u56e0")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.conditions[].message")),(0,p.kt)("p",{parentName:"li"},"\u4eba\u7c7b\u53ef\u8bfb\u7684\u6d88\u606f\uff0c\u7ed9\u51fa\u4e0a\u6b21\u72b6\u6001\u8f6c\u6362\u7684\u8be6\u7ec6\u4fe1\u606f")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.conditions[].status")),(0,p.kt)("p",{parentName:"li"},"\u8868\u660e\u8be5\u72b6\u51b5\u662f\u5426\u9002\u7528\uff0c\u53ef\u80fd\u7684\u53d6\u503c\u6709 ",(0,p.kt)("inlineCode",{parentName:"p"},'True"'),"\u3001",(0,p.kt)("inlineCode",{parentName:"p"},"False")," \u6216 ",(0,p.kt)("inlineCode",{parentName:"p"},"Unknown"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.conditions[].type")),(0,p.kt)("p",{parentName:"li"},"\u72b6\u51b5\u7684\u540d\u79f0"),(0,p.kt)("p",{parentName:"li"},"\u53ef\u80fd\u5305\u542b\u4ee5\u4e0b\u72b6\u6001\uff1a"),(0,p.kt)("ul",{parentName:"li"},(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"Approved")),(0,p.kt)("p",{parentName:"li"},"\u7528\u6237\u5df2\u7ecf\u540c\u610f\u8be5\u7ec4\u4ef6\u5b89\u88c5\u8ba1\u5212\uff08ComponentPlan\uff09\u7684\u5b89\u88c5")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"Actioned")),(0,p.kt)("p",{parentName:"li"},"\u67d0\u4e2a\u64cd\u4f5c\u5df2\u7ecf\u5b8c\u6210")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"Succeeded")),(0,p.kt)("p",{parentName:"li"},"\u7528\u6237\u671f\u5f85\u7684\u64cd\u4f5c\u5df2\u7ecf\u5168\u90e8\u5b8c\u6210")))))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.images")),(0,p.kt)("p",{parentName:"li"},"\u8be5 ComponentPlan \u4f1a\u5f15\u5165\u7684\u955c\u50cf\u5217\u8868")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.installedRevision")),(0,p.kt)("p",{parentName:"li"},"\u8be5 ComponentPlan \u5b89\u88c5\u7684 helm release revision \u7248\u672c\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.latest")),(0,p.kt)("p",{parentName:"li"},"helm release \u7684\u6700\u65b0\u7248\u672c\u662f\u5426\u662f\u8be5 ComponentPlan \u5b89\u88c5\u7684\u3002\u652f\u6301\u591a\u4e2a ComponentPlan \u6309\u90e8\u7f72\u65f6\u95f4\u5b89\u88c5/\u5347\u7ea7\u540c\u4e00\u4e2a helm release\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.observedGeneration")),(0,p.kt)("p",{parentName:"li"},"\u7528\u4e8e\u7a0b\u5e8f\u5185\u90e8\u5904\u7406\u3002\u8868\u793a\u8be5 ComponentPlan \u57fa\u4e8e\u7684 ",(0,p.kt)("inlineCode",{parentName:"p"},".metadata.generation")," \u7684\u8fc7\u671f\u6b21\u6570\u3002 \u4f8b\u5982\uff0c\u5982\u679c ",(0,p.kt)("inlineCode",{parentName:"p"},".metadata.generation")," \u5f53\u524d\u4e3a 12\uff0c\u4f46 ",(0,p.kt)("inlineCode",{parentName:"p"},".status.observedGeneration")," \u4e3a 9\uff0c \u5219\u76f8\u5bf9\u4e8e\u5b9e\u4f8b\u7684\u5f53\u524d\u72b6\u6001\u5df2\u8fc7\u671f\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.resources")),(0,p.kt)("p",{parentName:"li"},"\u6570\u7ec4\uff0cComponentPlan \u6d89\u53ca\u7684\u8d44\u6e90"),(0,p.kt)("ul",{parentName:"li"},(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.resources[].specDiffwithExist")),(0,p.kt)("p",{parentName:"li"},"\u5c55\u793a\u8be5\u8d44\u6e90\u7684 manifest \u5728\u8be5 ComponentPlan \u5e94\u7528\u524d\u540e\u7684\u5bf9\u6bd4")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.resources[].NewCreated")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u8be5\u8d44\u6e90\u662f\u5426\u662f\u65b0\u521b\u5efa\u7684")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.resources[].kind")),(0,p.kt)("p",{parentName:"li"},"\u8be5\u8d44\u6e90\u7684\u7c7b\u578b")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.resources[].name")),(0,p.kt)("p",{parentName:"li"},"\u8be5\u8d44\u6e90\u7684\u540d\u79f0")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.resources[].apiVersion")),(0,p.kt)("p",{parentName:"li"},"\u8be5\u8d44\u6e90\u7684 apiVersion \u4fe1\u606f"))))),(0,p.kt)("h2",{id:"\u5de5\u4f5c\u539f\u7406"},"\u5de5\u4f5c\u539f\u7406"),(0,p.kt)("p",null,"\u7ec4\u4ef6\u5b89\u88c5\u4ee5 Kubernetes Operator \u65b9\u5f0f\u5b9e\u73b0, \u5e95\u5c42\u901a\u8fc7\u8c03\u7528 Helm Go SDK \u5b9e\u73b0\u7ec4\u4ef6\u5b89\u88c5\u3001\u5347\u7ea7\u548c\u5378\u8f7d\u3002"),(0,p.kt)("p",null,"\u5728\u8fd0\u884c\u65f6\uff0c\u901a\u8fc7\u76d1\u6d4b\u96c6\u7fa4\u4e2d\u662f\u5426\u6709\u540c\u540d ",(0,p.kt)("inlineCode",{parentName:"p"},"helm release")," \u6765\u667a\u80fd\u4f7f\u7528 ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install")," \u6216\u8005 ",(0,p.kt)("inlineCode",{parentName:"p"},"helm upgrade")," \u76f8\u5173\u51fd\u6570\u8fdb\u884c\u5b89\u88c5\u6216\u5347\u7ea7\u3002"),(0,p.kt)("p",null,"\u5b89\u88c5\u6216\u5347\u7ea7\u65f6\uff0c\u4f1a\u5c06 ComponentPlan \u4e2d\u7684\u914d\u7f6e\u4f20\u9012\u7ed9\u76f8\u5173\u51fd\u6570\uff0c\u529f\u80fd\u548c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install")," \u6216\u8005 ",(0,p.kt)("inlineCode",{parentName:"p"},"helm upgrade")," \u57fa\u672c\u4e00\u81f4\u3002"),(0,p.kt)("p",null,"\u5f53\u5220\u9664 ComponentPlan \u65f6\uff0c\u5224\u65ad\u5f53\u524d\u96c6\u7fa4\u4e2d\u7684\u540c\u540d\u7684 ",(0,p.kt)("inlineCode",{parentName:"p"},"helm release")," \u7684\u6700\u65b0\u7248\u672c\u662f\u5426\u7531\u5f85\u5220\u9664\u7684 ComponentPlan \u5b89\u88c5\uff0c\u5982\u679c\u662f\uff0c\u5219\u540c\u65f6\u8c03\u7528 ",(0,p.kt)("inlineCode",{parentName:"p"},"helm uninstall")," \u76f8\u5173\u51fd\u6570\u5220\u9664\u8be5 helm release\u3002"),(0,p.kt)("p",null,"\u4e00\u4e9b\u7ec6\u8282\uff1a"),(0,p.kt)("ol",null,(0,p.kt)("li",{parentName:"ol"},"\u521b\u5efa ComponentPlan \u540e\uff0coperator \u4f1a\u5c1d\u8bd5\u81ea\u52a8\u89e3\u6790\u8be5 ComponentPlan \u4e2d\u5f15\u5165\u7684 helm release \u4f1a\u5bf9\u96c6\u7fa4\u4e2d\u73b0\u6709\u8d44\u6e90\u7684\u5f71\u54cd\uff0c\u7ed3\u679c\u4f1a\u5c55\u793a\u5728 ComponentPlan \u7684 status\n\u5b57\u6bb5\u4e2d\uff0c\u7c7b\u4f3c\u4e8e\u5148\u8fdb\u884c ",(0,p.kt)("inlineCode",{parentName:"li"},"helm install/upgrade --dry-run")," \u540e\uff0c\u5c06\u751f\u6210\u7684 manifest \u518d\u8fdb\u884c ",(0,p.kt)("inlineCode",{parentName:"li"},"kubectl diff")," \u64cd\u4f5c\uff0c"),(0,p.kt)("li",{parentName:"ol"},"\u53ea\u6709 ComponentPlan \u4e2d\u7684 ",(0,p.kt)("inlineCode",{parentName:"li"},"spec.approved")," \u4e3a ",(0,p.kt)("inlineCode",{parentName:"li"},"true"),"\uff0c\u5bf9\u5e94\u7684 ",(0,p.kt)("inlineCode",{parentName:"li"},"helm release")," \u624d\u4f1a\u771f\u6b63\u5b89\u88c5\u3002"),(0,p.kt)("li",{parentName:"ol"},"\u5355\u4e2a ComponentPlan \u7684\u955c\u50cf\u66ff\u6362 \uff08\u5373 ",(0,p.kt)("inlineCode",{parentName:"li"},"spec.override.images"),"\n\u5b57\u6bb5\uff09\u7684\u89c4\u5219\u9075\u5faa ",(0,p.kt)("a",{parentName:"li",href:"https://kubectl.docs.kubernetes.io/references/kustomize/builtins/#_imagetagtransformer_"},"kustomize:ImageTagTransformer"),"\n\u89c4\u8303\uff0c\u4ee3\u7801\u5b9e\u73b0\u4e5f\u662f\u76f4\u63a5\u8c03\u7528\u4e86 kustomize \u7684\u8fd9\u90e8\u5206\u4ee3\u7801\uff0c\u964d\u4f4e\u4e86\u7528\u6237\u5b66\u4e60\u6210\u672c\uff0c\u4fdd\u8bc1\u4e86\u4ee3\u7801\u7684\u517c\u5bb9\u6027\u548c\u6709\u6548\u6027\u3002"),(0,p.kt)("li",{parentName:"ol"},"\u5355\u4e2a ComponentPlan \u7684\u955c\u50cf\u66ff\u6362\u548c\u6574\u4e2a Repository \u7684\u955c\u50cf\u66ff\u6362\uff0c\u90fd\u662f\u901a\u8fc7 ",(0,p.kt)("a",{parentName:"li",href:"https://helm.sh/docs/topics/advanced/#post-rendering"},"Helm:post-rendering")," \u6280\u672f\u5b9e\u73b0\u7684\u3002")),(0,p.kt)("h3",{id:"\u955c\u50cf\u8986\u76d6\u7b56\u7565"},"\u955c\u50cf\u8986\u76d6\u7b56\u7565"),(0,p.kt)("p",null,(0,p.kt)("img",{alt:"image-changed",src:t(9435).Z,width:"1180",height:"834"})),(0,p.kt)("h3",{id:"componentplan-\u548c-helm-release-\u7684\u5173\u7cfb"},"ComponentPlan \u548c Helm release \u7684\u5173\u7cfb"),(0,p.kt)("p",null,(0,p.kt)("img",{alt:"componentplan",src:t(3187).Z,width:"4155",height:"1740"})))}d.isMDXComponent=!0},3187:(e,n,t)=>{t.d(n,{Z:()=>a});const a=t.p+"assets/images/componentplan-helm-release-48f97a6244dca22b6b69f6467ae141f3.png"},9435:(e,n,t)=>{t.d(n,{Z:()=>a});const a=t.p+"assets/images/image-changed-6cc1cd7373beaa44065302ebf7479fc7.png"}}]); \ No newline at end of file diff --git a/assets/js/6b8ed726.2b22f6bc.js b/assets/js/6b8ed726.2b22f6bc.js new file mode 100644 index 000000000..0c7304032 --- /dev/null +++ b/assets/js/6b8ed726.2b22f6bc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6674],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>N});var l=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=l.createContext({}),u=function(e){var t=l.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},m=function(e){var t=u(e.components);return l.createElement(p.Provider,{value:t},e.children)},k="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},c=l.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,p=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),k=u(n),c=a,N=k["".concat(p,".").concat(c)]||k[c]||s[c]||r;return n?l.createElement(N,i(i({ref:t},m),{},{components:n})):l.createElement(N,i({ref:t},m))}));function N(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=c;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[k]="string"==typeof e?e:a,i[1]=o;for(var u=2;u{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>r,metadata:()=>o,toc:()=>u});var l=n(7462),a=(n(7294),n(3905));const r={sidebar_position:3,title:"\u7ec4\u4ef6\u7ba1\u7406",sidebar_label:"\u7ec4\u4ef6\u7ba1\u7406"},i=void 0,o={unversionedId:"user-guid/component_anagement",id:"user-guid/component_anagement",title:"\u7ec4\u4ef6\u7ba1\u7406",description:"\u7ec4\u4ef6\u7ba1\u7406\u4e3b\u8981\u5206\u4e09\u90e8\u5206\u80fd\u529b\uff1a",source:"@site/docs/user-guid/component_anagement.md",sourceDirName:"user-guid",slug:"/user-guid/component_anagement",permalink:"/website/docs/user-guid/component_anagement",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"\u7ec4\u4ef6\u7ba1\u7406",sidebar_label:"\u7ec4\u4ef6\u7ba1\u7406"},sidebar:"tutorialSidebar",previous:{title:"\u53d1\u5e03 HelloWorld \u7ec4\u4ef6",permalink:"/website/docs/quick-start/quick-experience"},next:{title:"\u7ec4\u4ef6\u5e02\u573a",permalink:"/website/docs/user-guid/component_market"}},p={},u=[{value:"\u6211\u53d1\u5e03\u7684",id:"\u6211\u53d1\u5e03\u7684",level:2},{value:"\u53d1\u5e03\u81ea\u5b9a\u4e49\u7ec4\u4ef6",id:"\u53d1\u5e03\u81ea\u5b9a\u4e49\u7ec4\u4ef6",level:3},{value:"\u6211\u5b89\u88c5\u7684",id:"\u6211\u5b89\u88c5\u7684",level:2},{value:"\u5b89\u88c5\u7ec4\u4ef6",id:"\u5b89\u88c5\u7ec4\u4ef6",level:3},{value:"\u5b89\u88c5\u7248\u672c\u7ba1\u7406",id:"\u5b89\u88c5\u7248\u672c\u7ba1\u7406",level:3},{value:"\u66f4\u65b0\u7ec4\u4ef6",id:"\u66f4\u65b0\u7ec4\u4ef6",level:3},{value:"\u5378\u8f7d\u7ec4\u4ef6",id:"\u5378\u8f7d\u7ec4\u4ef6",level:3},{value:"\u6211\u8ba2\u9605\u7684",id:"\u6211\u8ba2\u9605\u7684",level:2}],m={toc:u},k="wrapper";function s(e){let{components:t,...n}=e;return(0,a.kt)(k,(0,l.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"\u7ec4\u4ef6\u7ba1\u7406\u4e3b\u8981\u5206\u4e09\u90e8\u5206\u80fd\u529b\uff1a"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u6211\u53d1\u5e03\u7684\uff1a\u624b\u52a8\u53d1\u5e03\u7ec4\u4ef6\u5230\u4ed3\u5e93\uff1b\u540c\u4e00\u7ec4\u4ef6\u53ef\u53d1\u5e03\u591a\u7248\u672c"),(0,a.kt)("li",{parentName:"ul"},"\u6211\u5b89\u88c5\u7684\uff1a\u624b\u52a8\u3001\u81ea\u52a8\u5b89\u88c5\u7ec4\u4ef6\uff1b\u7248\u672c\u66f4\u65b0\u63a8\u9001\uff1b\u5386\u53f2\u7248\u672c\u7ba1\u7406\u548c\u4e00\u952e\u56de\u6eda"),(0,a.kt)("li",{parentName:"ul"},"\u6211\u8ba2\u9605\u7684\uff1a\u8ba2\u9605\u548c\u53d6\u6d88\u8ba2\u9605")),(0,a.kt)("h2",{id:"\u6211\u53d1\u5e03\u7684"},"\u6211\u53d1\u5e03\u7684"),(0,a.kt)("p",null,"\u624b\u52a8\u53d1\u5e03\u7ec4\u4ef6\uff0c\u53d1\u5e03\u540e\uff0c\u53ef\u5728\u201c\u7ec4\u4ef6\u5e02\u573a\u201d\u6d4f\u89c8\u3001\u4e0b\u8f7d\u3001\u8ba2\u9605\u6216\u5b89\u88c5\u3002\u540c\u4e00\u7ec4\u4ef6\u53ef\u53d1\u5e03\u591a\u7248\u672c\u3002"),(0,a.kt)("p",null,"\u64cd\u4f5c\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165","[\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u7ba1\u7406/\u6211\u53d1\u5e03\u7684]","\u9875\u9762\uff0c\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"}," +\u7ec4\u4ef6\u53d1\u5e03 ")),(0,a.kt)("li",{parentName:"ol"},"\u5f39\u6846\u4e2d\u9009\u62e9\u7ec4\u4ef6\u4ed3\u5e93\uff0c\u4e0a\u4f20 helm \u5305\uff0c",(0,a.kt)("strong",{parentName:"li"},"\u786e\u5b9a"),"\u540e\uff0c\u5373\u5f00\u59cb\u53d1\u5e03\u7ec4\u4ef6\uff0c\u53d1\u5e03\u6210\u529f\uff0c\u8fd4\u56de\u5217\u8868\u9875\u9762")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u7ec4\u4ef6\u4ed3\u5e93\u4ec5\u5c55\u793a Chart Museum \u7c7b\u578b\u7684\u4ed3\u5e93")),(0,a.kt)("ol",{start:3},(0,a.kt)("li",{parentName:"ol"},"\u201c\u6211\u53d1\u5e03\u7684\u201d\u5217\u8868\u4e2d\u5c55\u793a\u7ec4\u4ef6\u540d\u79f0\u3001\u6700\u65b0\u7248\u672c\u3001\u7ec4\u4ef6\u4ed3\u5e93\u3001\u5f53\u524d\u72b6\u6001\u3001\u66f4\u65b0\u65f6\u95f4\uff0c\u64cd\u4f5c\uff1a\u66f4\u65b0\u3001\u5220\u9664")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u5f53\u524d\u72b6\u6001\u6709\u4e24\u79cd\uff0c\u540c\u6b65\u4e2d\u3001\u6b63\u5e38\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u66f4\u65b0\u7ec4\u4ef6\uff0c\u4e0d\u53ef\u4fee\u6539\u7ec4\u4ef6\u4ed3\u5e93\uff0c\u53ef\u4e0a\u4f20\u65b0\u7684 helm \u5305\uff0c\u5373\u53d1\u5e03\u65b0\u7248\u672c\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u5220\u9664\u7ec4\u4ef6\uff0c\u5373\u5220\u9664\u5176\u6240\u6709\u7248\u672c\u4fe1\u606f\uff0c\u5220\u9664\u540e\u5c06\u4e0d\u518d<\u7ec4\u4ef6\u5e02\u573a>\u5c55\u793a\u3002")),(0,a.kt)("ol",{start:4},(0,a.kt)("li",{parentName:"ol"},"\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u7ec4\u4ef6\u540d\u79f0"),"\uff0c\u8fdb\u5165\u5176\u8be6\u60c5\u9875\uff0c\u5c55\u793a\u7ec4\u4ef6\u7248\u672c\u5217\u8868\u3001\u7ec4\u4ef6\u4ed3\u5e93\u540d\u79f0\u3001\u7ec4\u4ef6\u5173\u952e\u8bcd\u3001\u4ea7\u54c1\u4ecb\u7ecd\u4fe1\u606f\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u7ec4\u4ef6\u8be6\u60c5\u9875\uff0c\u9009\u62e9\u7248\u672c\u540e\uff0c\u652f\u6301\u5220\u9664\u67d0\u4e00\u7248\u672c\uff0c\u5373\u4ec5\u5220\u9664\u6b64\u7248\u672c\u7684\u76f8\u5173\u4fe1\u606f\u3002")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("ul",{parentName:"admonition"},(0,a.kt)("li",{parentName:"ul"},"\u76ee\u524d\u4ec5\u652f\u6301\u7cfb\u7edf\u7ba1\u7406\u5458admin\u53d1\u5e03\u7ec4\u4ef6\u5230Chart Museum\u7c7b\u578b\u7684\u4ed3\u5e93\uff0c\u66f4\u591a\u4ed3\u5e93\u7c7b\u578b\uff0c\u540e\u7eed\u7248\u672c\u652f\u6301"),(0,a.kt)("li",{parentName:"ul"},"\u7528\u6237\u4e3b\u52a8\u5c06\u7ec4\u4ef6\u6240\u6709\u7248\u672c\u5747\u8bbe\u7f6e\u4e3a\u201c\u5e9f\u5f03\u201d\u72b6\u6001\uff0c\u5219\u4e0d\u4f1a\u663e\u793a\u5728\u201c\u6211\u53d1\u5e03\u7684\u201d\u5217\u8868\u53ca\u7ec4\u4ef6\u5e02\u573a\u4e2d"))),(0,a.kt)("h3",{id:"\u53d1\u5e03\u81ea\u5b9a\u4e49\u7ec4\u4ef6"},"\u53d1\u5e03\u81ea\u5b9a\u4e49\u7ec4\u4ef6"),(0,a.kt)("p",null,"\u6b64\u7ae0\u8282\u4e3b\u8981\u5bf9\u4e0a\u8ff0 \u201c\u4e0a\u4f20 helm \u5305\u201d \u4e2d\u5305\u7ed3\u6784\u6216\u91cd\u70b9\u5185\u5bb9\u7684\u8bf4\u660e\u3002Kubebb \u7684\u7ec4\u4ef6\u5b89\u88c5\u5305\u91c7\u7528",(0,a.kt)("inlineCode",{parentName:"p"},"Helm"),"\u6a21\u5f0f\uff0c\u9075\u5faa Helm charts \u5f00\u53d1\u89c4\u5219\u3002\u9664\u6b64\u4e4b\u5916\uff0c\u6211\u4eec\u989d\u5916\u5b9a\u4e49\u4e86\u4e00\u4e9b\u7279\u6b8a\u5b57\u6bb5\u6765\u6ee1\u8db3\u7ec4\u4ef6\u7684\u591a\u6837\u6027\u3002"),(0,a.kt)("p",null,"\u901a\u7528\u914d\u7f6e\uff1a\u53c2\u8003",(0,a.kt)("a",{parentName:"p",href:"https://helm.sh/docs/"},"Helm\u5b98\u65b9\u6587\u6863")),(0,a.kt)("p",null,"\u9ad8\u7ea7\u914d\u7f6e\uff1a\u4e3a\u652f\u6301\u4e0d\u540c\u7ec4\u4ef6\u5bf9\u5b89\u88c5\u4f4d\u7f6e\u3001\u6743\u9650\u7684\u53ef\u63a7\uff0c\u7279\u6b64\u989d\u5916\u7ea6\u5b9a\u4e86\u591a\u4e2a\u914d\u7f6e\u5b57\u6bb5\u3002"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Chart.yaml")),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"Chart.yaml"),"\u4e2d\u5305\u542b\u7ec4\u4ef6\u7684\u6838\u5fc3\u5b9a\u4e49\u3001\u7248\u672c\u3001\u7ef4\u62a4\u8005\u7b49\u4fe1\u606f\uff0c\u5c5e\u4e8e",(0,a.kt)("inlineCode",{parentName:"p"},"Helm"),"\u9884\u5b9a\u4e49\u7684\u5185\u5bb9\u3002\u4e3a\u4e86\u652f\u6301\u989d\u5916\u7684\u7279\u6b8a\u9700\u6c42\uff0c\u6211\u4eec\u51b3\u5b9a\u901a\u8fc7",(0,a.kt)("inlineCode",{parentName:"p"},"annotations"),"\u6765\u81ea\u7531\u5b9a\u4e49\u3002\u5982\u4e0b\u6240\u793a:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'annotations:\n core.kubebb.k8s.com.cn/classification: "\u5f00\u53d1\u5de5\u5177" # \u7ec4\u4ef6\u5206\u7c7b\uff0c\u4fbf\u4e8e\u7528\u6237\u7b5b\u9009\uff0c\u9700\u9009\u586b\u201c\u5bb9\u5668\u3001\u670d\u52a1\u6cbb\u7406\u3001API \u7f51\u5173\u3001\u6570\u636e\u5e93\u3001\u7f51\u7edc\u3001\u5b89\u5168\u3001\u5b58\u50a8\u3001\u6d88\u606f\u961f\u5217\u3001\u4e91\u539f\u751f\u53ef\u89c2\u6d4b\u3001\u5927\u6570\u636e\u8ba1\u7b97\u3001\u4eba\u5de5\u667a\u80fd\u4e0e\u673a\u5668\u5b66\u4e60\u3001\u5a92\u4f53\u670d\u52a1\u3001\u5f00\u53d1\u5de5\u5177\u3001\u5176\u5b83\u201d\n core.kubebb.k8s.com.cn/displayname: "\u793a\u4f8b\u7ec4\u4ef6" # \u7528\u4e8e\u586b\u5145\u7ec4\u4ef6\u7684\u5c55\u793a\u540d\uff0c\u652f\u6301\u4e2d\u82f1\u6587\n core.kubebb.k8s.com.cn/restricted-namespaces: "pro1" # \u7528\u4e8e\u8bbe\u7f6e\u7ec4\u4ef6\u5b89\u88c5\u4f4d\u7f6e\u7684\u9650\u5236\u79df\u6237\uff0c\u591a\u4e2a\u79df\u6237\u9700\u8981\u901a\u8fc7`,`\u9694\u5f00\n core.kubebb.k8s.com.cn/restricted-tenants: "tenant1" # \u7528\u4e8e\u8bbe\u7f6e\u7ec4\u4ef6\u5b89\u88c5\u4f4d\u7f6e\u7684\u9650\u5236\u9879\u76ee/\u547d\u540d\u7a7a\u95f4\uff0c\u591a\u4e2a\u547d\u540d\u7a7a\u95f4\u901a\u8fc7`,`\u9694\u5f00\n')),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"README.md")),(0,a.kt)("p",null,"\u8bf4\u660e\u5b89\u88c5\u90e8\u7f72\u7684\u6ce8\u610f\u4e8b\u9879\u548c\u9700\u8981\u6309\u5b9e\u9645\u73af\u5883\u8c03\u6574\u7684\u53c2\u6570\u7b49\u3002\u6b64\u5185\u5bb9\u4f1a\u663e\u793a\u5230 <\u7ec4\u4ef6\u5e02\u573a> \u7ec4\u4ef6\u7684\u8be6\u60c5\u9875\u9762\uff0c\u4fbf\u4e8e\u7528\u6237\u67e5\u770b\u3002"),(0,a.kt)("p",null,"\u6309\u4e0a\u9762\u8bf4\u660e\u5bf9\u60a8\u7684\u7ec4\u4ef6\u8fdb\u884c\u8c03\u6574\u540e\uff0c\u5373\u53ef\u5728 \u201c\u6211\u53d1\u5e03\u7684\u201d \u9875\u9762\u9009\u62e9\u76ee\u6807\u4ed3\u5e93\u540e\u4e0a\u4f20 Helm \u5305\uff0c\u5b8c\u6210\u7ec4\u4ef6\u53d1\u5e03\u3002"),(0,a.kt)("h2",{id:"\u6211\u5b89\u88c5\u7684"},"\u6211\u5b89\u88c5\u7684"),(0,a.kt)("p",null,"\u5728\u201c\u7ec4\u4ef6\u5e02\u573a\u201d\u6d4f\u89c8\u7ec4\u4ef6\uff0c\u6309\u9700\u5b89\u88c5\u7ec4\u4ef6\uff0c\u5f53\u7ec4\u4ef6\u6709\u65b0\u7248\u672c\u63a8\u9001\u65f6\u53ef\u9009\u62e9\u624b\u52a8\u6216\u81ea\u52a8\u66f4\u65b0\u3002"),(0,a.kt)("h3",{id:"\u5b89\u88c5\u7ec4\u4ef6"},"\u5b89\u88c5\u7ec4\u4ef6"),(0,a.kt)("p",null,"\u64cd\u4f5c\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165","[\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u7ba1\u7406/\u6211\u5b89\u88c5\u7684]","\u9875\u9762\uff0c\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"}," +\u7ec4\u4ef6\u5b89\u88c5 "),"\uff0c\u8df3\u8f6c\u5230\u201c\u7ec4\u4ef6\u5e02\u573a\u201d\u9875\u9762\uff0c\u9009\u62e9\u76ee\u6807\u96c6\u7fa4\uff0c\u6d4f\u89c8\u7ec4\u4ef6"),(0,a.kt)("li",{parentName:"ol"},"\u627e\u5230\u76ee\u6807\u7ec4\u4ef6\uff0c\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u5b89\u88c5"),"\uff0c\u8fdb\u5165\u5b89\u88c5\u9875\u9762\uff0c\u586b\u5199\u90e8\u7f72\u540d\u79f0\u3001\u9009\u62e9\u7ec4\u4ef6\u7248\u672c\u3001\u66f4\u65b0\u65b9\u5f0f\u3001\u9009\u62e9\u79df\u6237&\u9879\u76ee\u3001\u67e5\u770b\u6216\u8c03\u6574\u914d\u7f6e\u6587\u4ef6\u3001\u6309\u9700\u6dfb\u52a0\u955c\u50cf\u66ff\u6362\u89c4\u5219")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u5efa\u8bae\u5b89\u88c5\u524d\u4ed4\u7ec6\u9605\u8bfb\u5b89\u88c5\u8bf4\u660e"),"\uff0c\u52a9\u60a8\u5feb\u901f\u6b63\u786e\u7684\u5b89\u88c5\u7ec4\u4ef6\uff0c\u8fdb\u884c\u4f53\u9a8c"),(0,a.kt)("li",{parentName:"ul"},"\u90e8\u7f72\u540d\u79f0\uff1a",(0,a.kt)("inlineCode",{parentName:"li"},"\u75313~53\u4e2a\u5c0f\u5199\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e2d\u5212\u7ebf\u201c-\u201d\u7ec4\u6210\uff0c\u5e76\u4ee5\u5b57\u6bcd\u3001\u6570\u5b57\u5f00\u5934\u6216\u7ed3\u5c3e"),"\u3002\u9879\u76ee&\u96c6\u7fa4\u5185\u552f\u4e00\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u7ec4\u4ef6\u540d\u79f0\u548c\u7ec4\u4ef6\u4ed3\u5e93\u81ea\u52a8\u56de\u663e\uff0c\u53ea\u8bfb"),(0,a.kt)("li",{parentName:"ul"},"\u66f4\u65b0\u65b9\u5f0f\uff1a\u9ed8\u8ba4\u624b\u52a8\u66f4\u65b0\u3002",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u9009\u62e9\u201c\u624b\u52a8\u66f4\u65b0\u201d\u540e\uff0c\u5f53\u7ec4\u4ef6\u6709\u65b0\u7248\u672c\u53d1\u5e03\u540e\uff0c\u7528\u6237\u6309\u9700\u624b\u52a8\u66f4\u65b0\u6210\u6700\u65b0\u7248\u672c\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u9009\u62e9\u201c\u81ea\u52a8\u66f4\u65b0\u201d\u540e\uff0c\u5f53\u7ec4\u4ef6\u6709\u65b0\u7248\u672c\u53d1\u5e03\u540e\uff0c\u65e0\u9700\u624b\u52a8\u66f4\u65b0\uff0c\u6309\u8bbe\u7f6e\u7684\u66f4\u65b0\u65f6\u95f4\u81ea\u52a8\u66f4\u65b0\u6210\u6700\u65b0\u7248\u672c\u3002",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"\u66f4\u65b0\u65f6\u95f4"),"\u652f\u6301\u8bbe\u7f6e\u6bcf\u5929\u7684\u65f6\u5206\uff0c\u8bbe\u7f6e\u540e\uff0c\u7ec4\u4ef6\u5f53\u5929\u6709\u65b0\u7248\u672c\u53d1\u5e03\u540e\uff0c\u5982\u679c\u5728",(0,a.kt)("inlineCode",{parentName:"li"},"\u66f4\u65b0\u65f6\u95f4"),"\u524d\u53d1\u5e03\uff0c\u5219\u5f53\u65e5",(0,a.kt)("inlineCode",{parentName:"li"},"\u66f4\u65b0\u65f6\u95f4"),"\u5373\u81ea\u52a8\u66f4\u65b0\uff0c\u5426\u5219\u6b21\u65e5",(0,a.kt)("inlineCode",{parentName:"li"},"\u66f4\u65b0\u65f6\u95f4"),"\u518d\u81ea\u52a8\u66f4\u65b0\u3002"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"\u66f4\u65b0\u65f6\u95f4"),"\u4e0d\u8bbe\u7f6e\uff0c\u5373\u6709\u65b0\u7248\u672c\u53d1\u5e03\u540e\uff0c\u7acb\u5373\u81ea\u52a8\u66f4\u65b0\u3002\u6b64\u65b9\u5f0f\u9700\u6ce8\u610f\u5bf9\u4f7f\u7528\u7ec4\u4ef6\u7528\u6237\u7684\u5f71\u54cd\uff0c\u907f\u514d\u7ec4\u4ef6\u670d\u52a1\u66f4\u65b0\u5bfc\u81f4\u7528\u6237\u4f7f\u7528\u5361\u987f\u6216\u4e2d\u65ad\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u9009\u62e9\u201c\u81ea\u52a8\u66f4\u65b0\u201d\uff0c\u4f1a\u81ea\u52a8\u8ba2\u9605\u6b64\u7ec4\u4ef6\u3002"))))),(0,a.kt)("li",{parentName:"ul"},"\u7ec4\u4ef6\u7248\u672c\uff1a\u4e0b\u62c9\u5217\u8868\u9009\u62e9\u8981\u5b89\u88c5\u7684\u7248\u672c\u3002",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u5f53\u9009\u62e9\u201c\u81ea\u52a8\u201d\u66f4\u65b0\u65b9\u5f0f\uff0c\u6b64\u5904\u7248\u672c\u9ed8\u8ba4\u9009\u4e2d\u6700\u65b0\u7248\u672c\uff0c\u4e0d\u53ef\u4fee\u6539\u3002"))),(0,a.kt)("li",{parentName:"ul"},"\u5b89\u88c5\u4f4d\u7f6e\uff1a\u9009\u62e9\u79df\u6237\u3001\u9879\u76ee\uff08\u4e0a\u4e00\u6b65\u5df2\u9009\u62e9\u96c6\u7fa4\uff09",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u540c\u4e00\u9879\u76ee&\u96c6\u7fa4\u4e2d\u4e5f\u53ef\u5b89\u88c5\u591a\u6b21\u76f8\u540c\u7ec4\u4ef6\uff0c\u4f8b\u5982\u6570\u636e\u5e93\u3001\u5b58\u50a8\u7c7b\u7ec4\u4ef6\uff0c\u53ef\u90e8\u7f72\u591a\u4e2a\uff0c\u4f46\u90e8\u7f72\u540d\u79f0\u9700\u552f\u4e00\u3002 "))),(0,a.kt)("li",{parentName:"ul"},"\u914d\u7f6e\u6587\u4ef6\uff1avalue.yaml\uff0c\u652f\u6301\u67e5\u770b\u3001\u7f16\u8f91"),(0,a.kt)("li",{parentName:"ul"},"\u955c\u50cf\u66ff\u6362\uff1a\u7ec4\u4ef6\u7ea7\u522b\u7684\u955c\u50cf\u8986\u76d6\u91cd\u5199\u3002\u9ed8\u8ba4\u65e0\u89c4\u5219\uff0c\u6309\u9700\u6dfb\u52a0\u3002",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u586b\u5199\u89c4\u5219\uff1a\u9009\u62e9\u5df2\u6709\u955c\u50cf\uff0c\u66ff\u6362\u4e3a\u65b0\u955c\u50cf\u3002\u5176\u4e2d\u9009\u62e9\u5df2\u6709\u955c\u50cf\uff0c\u4f9d\u6b21\u5c55\u793a\u4e3a\u57df\u540d/\u4ed3\u5e93\u7ec4/\u955c\u50cf\u540d\u79f0/tag\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u9009\u62e9\u5df2\u6709\u955c\u50cf\uff0c\u5982\u679c\u5339\u914d\u5230\u7ec4\u4ef6\u4ed3\u5e93\u7684\u955c\u50cf\u66ff\u6362\u89c4\u5219\uff0c\u5219\u81ea\u52a8\u586b\u5145\u66ff\u6362\u540e\u7684\u65b0\u57df\u540d\u3001\u65b0\u4ed3\u5e93\u7ec4\uff0c\u7528\u6237\u53ef\u7ee7\u7eed\u586b\u5199\u65b0\u955c\u50cf\u540d\u79f0\u3001\u65b0tag/\u65b0digest\uff1b\u5426\u5219\u7528\u6237\u81ea\u5b9a\u4e49\u586b\u5199\u65b0\u57df\u540d\u3001\u65b0\u4ed3\u5e93\u7ec4\u3001\u65b0\u955c\u50cf\u540d\u79f0\u3001\u65b0tag/\u65b0digest\u3002")))),(0,a.kt)("ol",{start:3},(0,a.kt)("li",{parentName:"ol"},"\u586b\u5199\u5b8c\u6210\uff0c\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u786e\u5b9a"),"\u540e\uff0c\u5373\u5f00\u59cb\u5b89\u88c5\uff0c\u81ea\u52a8\u8df3\u8f6c\u5230\u4e0a\u9762\u6240\u9009\u79df\u6237\u3001\u9879\u76ee&\u96c6\u7fa4\u7684<\u6211\u5b89\u88c5\u7684>\u5217\u8868\u9875\u9762\u3002\u5217\u8868\u5c55\u793a\u90e8\u7f72\u540d\u79f0\u3001\u7ec4\u4ef6\u540d\u79f0\u3001\u7248\u672c\u3001\u72b6\u6001\u3001\u66f4\u65b0\u65b9\u5f0f\u3001\u6240\u5c5e\u7ec4\u4ef6\u4ed3\u5e93\u3001\u66f4\u65b0\u65f6\u95f4\u3002")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u72b6\u6001\uff1a\u5b89\u88c5\u4e2d\u3001\u5b89\u88c5\u6210\u529f\u3001\u5b89\u88c5\u5931\u8d25\u3001\u5378\u8f7d\u4e2d\u3001\u5378\u8f7d\u5931\u8d25\u3001\u672a\u77e5\u3002 \u5176\u4e2d\u5378\u8f7d\u5931\u8d25\u3001\u672a\u77e5\u6bd4\u8f83\u5c11\u89c1\uff0c\u5982\u9047\u5230\u8bf7\u8054\u7cfb\u7ba1\u7406\u5458\u68c0\u67e5kubebb\u7684\u7cfb\u7edf\u670d\u52a1\u7ec4\u4ef6\u3002")),(0,a.kt)("ol",{start:4},(0,a.kt)("li",{parentName:"ol"},"\u5f53\u7ec4\u4ef6\u53d1\u5e03\u65b0\u7248\u672c\u540e\uff0c\u4e00\u5468\u5185\u4f1a\u6709\u63a8\u65b0\u7684\u6807\u8bc6\u3002\u4e5f\u53ef\u70b9\u51fb\u201c\u7248\u672c\u201d\u65c1\u7684new\uff0c\u8fc7\u6ee4\u6240\u6709\u8fd1\u4e00\u5468\u6709\u63a8\u65b0\u7684\u7ec4\u4ef6")),(0,a.kt)("h3",{id:"\u5b89\u88c5\u7248\u672c\u7ba1\u7406"},"\u5b89\u88c5\u7248\u672c\u7ba1\u7406"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165","[\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u7ba1\u7406/\u6211\u5b89\u88c5\u7684]","\u9875\u9762\uff0c\u627e\u5230\u76ee\u6807\u90e8\u7f72\u7ec4\u4ef6\uff0c\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u7ec4\u4ef6\u540d\u79f0"),"\uff0c\u8fdb\u5165\u5176\u8be6\u60c5\u9875\u9762"),(0,a.kt)("li",{parentName:"ol"},"\u5b89\u88c5\u4fe1\u606f\uff1a\u5c55\u793a\u5f53\u524d\u5b89\u88c5\u7684\u7248\u672c\u4fe1\u606f\uff0c\u5305\u62ec\u90e8\u7f72\u540d\u79f0\u3001\u7ec4\u4ef6\u540d\u79f0\u3001\u7ec4\u4ef6\u4ed3\u5e93\u3001\u7248\u672c\u3001\u66f4\u65b0\u65b9\u5f0f\u3001\u5b89\u88c5\u4f4d\u7f6e\u3001\u914d\u7f6e\u6587\u4ef6\u3001\u955c\u50cf\u66ff\u6362\u89c4\u5219"),(0,a.kt)("li",{parentName:"ol"},"\u5386\u53f2\u7248\u672c\uff1a\u5c55\u793a\u6b64\u6b21\u90e8\u7f72\u7ec4\u4ef6\u7684\u5386\u53f2\u7248\u672c\u5217\u8868\uff0c\u5305\u62ec\u7ec4\u4ef6\u540d\u79f0\u3001\u7248\u672c\u3001\u66f4\u65b0\u65b9\u5f0f\u3001\u5b89\u88c5\u65f6\u95f4\u3002\u7248\u672c\u5904\u4f1a\u6807\u8bc6\u5f53\u524d\u7248\u672c")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u652f\u6301\u67e5\u770b\u5404\u5386\u53f2\u7248\u672c\u7684\u5b89\u88c5\u4fe1\u606f"),(0,a.kt)("li",{parentName:"ul"},"\u652f\u6301\u6309\u9700\u56de\u6eda\u5230\u67d0\u5386\u53f2\u7248\u672c\u3002\u4e3b\u52a8\u56de\u6eda\u540e\uff0c\u6ce8\u610f\u4f1a\u66f4\u65b0\u5176",(0,a.kt)("inlineCode",{parentName:"li"},"\u66f4\u65b0\u65b9\u5f0f"),"\u4e3a\u624b\u52a8\u66f4\u65b0\u3002")),(0,a.kt)("h3",{id:"\u66f4\u65b0\u7ec4\u4ef6"},"\u66f4\u65b0\u7ec4\u4ef6"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165","[\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u7ba1\u7406/\u6211\u5b89\u88c5\u7684]","\u9875\u9762\uff0c\u627e\u5230\u76ee\u6807\u90e8\u7f72\u7ec4\u4ef6\uff0c\u6309\u9700\u66f4\u65b0")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u9009\u62e9\u65b0\u7248\u672c\u5347\u7ea7"),(0,a.kt)("li",{parentName:"ul"},"\u9009\u62e9\u65e7\u7248\u672c\u56de\u9000"),(0,a.kt)("li",{parentName:"ul"},"\u6216\u4e0d\u8c03\u6574\u7248\u672c\uff0c\u4ec5\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\u6216\u955c\u50cf\u66ff\u6362\u89c4\u5219\u7b49")),(0,a.kt)("ol",{start:2},(0,a.kt)("li",{parentName:"ol"},"\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u66f4\u65b0"),"\uff0c\u8fdb\u5165\u7ec4\u4ef6\u66f4\u65b0\u9875\u9762\uff0c\u90e8\u7f72\u540d\u79f0\u3001\u7ec4\u4ef6\u540d\u79f0\u3001\u7ec4\u4ef6\u4ed3\u5e93\u3001\u5b89\u88c5\u4f4d\u7f6e\uff0c\u4e0d\u5141\u8bb8\u4fee\u6539\uff0c\u5176\u4ed6\u9009\u9879\u6309\u9700\u8c03\u6574\uff0c\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u786e\u5b9a"),"\uff0c\u5f00\u59cb\u66f4\u65b0\u7ec4\u4ef6")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"\u66f4\u65b0\u7ec4\u4ef6\u65f6\uff0c\u7ec4\u4ef6\u670d\u52a1\u4f1a\u91cd\u542f\uff0c\u53ef\u80fd\u4f1a\u5bf9\u7528\u6237\u4f7f\u7528\u9020\u6210\u5f71\u54cd\uff0c\u8bf7\u8bc4\u4f30\u540e\u9009\u62e9\u5408\u9002\u65f6\u95f4\u8fdb\u884c\u66f4\u65b0\u3002")),(0,a.kt)("h3",{id:"\u5378\u8f7d\u7ec4\u4ef6"},"\u5378\u8f7d\u7ec4\u4ef6"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165","[\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u7ba1\u7406/\u6211\u5b89\u88c5\u7684]","\u9875\u9762\uff0c\u627e\u5230\u76ee\u6807\u90e8\u7f72\u7ec4\u4ef6\uff0c\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u5378\u8f7d")),(0,a.kt)("li",{parentName:"ol"},"\u5378\u8f7d\u7ec4\u4ef6\u4f1a\u540c\u6b65\u5220\u9664\u6b64\u90e8\u7f72\u4e0b\u7684\u6240\u6709\u5386\u53f2\u7248\u672c\u4fe1\u606f\uff0c\u4e8c\u6b21\u5f39\u6846\u63d0\u793a\uff0c\u786e\u5b9a\u540e\uff0c\u5f00\u59cb\u5378\u8f7d\u3002")),(0,a.kt)("h2",{id:"\u6211\u8ba2\u9605\u7684"},"\u6211\u8ba2\u9605\u7684"),(0,a.kt)("p",null,"\u6d4f\u89c8\u7ec4\u4ef6\u5e02\u573a\uff0c\u60f3\u5173\u6ce8\u7684\u7ec4\u4ef6\u53ef\u4ee5\u63d0\u524d\u8ba2\u9605\uff0c\u53ca\u65f6\u5173\u6ce8\u5176\u52a8\u6001\u3002"),(0,a.kt)("p",null,"\u64cd\u4f5c\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165","[\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u7ba1\u7406/\u6211\u8ba2\u9605\u7684]","\u9875\u9762\uff0c\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"}," +\u7ec4\u4ef6\u8ba2\u9605 "),"\uff0c\u8df3\u8f6c\u7ec4\u4ef6\u5e02\u573a\uff0c\u627e\u5230\u76ee\u6807\u7ec4\u4ef6\uff0c\u70b9\u51fb\u5361\u7247\u533a\u57df\uff0c\u8fdb\u5165\u5176\u8be6\u60c5\u9875\u9762"),(0,a.kt)("li",{parentName:"ol"},"\u53f3\u4e0a\u89d2\u64cd\u4f5c\u5904\u70b9\u51fb\u201c\u8ba2\u9605\u201d\uff0c\u5f39\u6846\u5185\u586b\u5199\u8ba2\u9605\u9879\u76ee\uff0c\u5373\u9009\u62e9\u79df\u6237\u3001\u9879\u76ee\uff0c\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u786e\u5b9a"),"\uff0c\u5b8c\u6210\u8ba2\u9605"),(0,a.kt)("li",{parentName:"ol"},"\u8fd4\u56de\u6211\u8ba2\u9605\u7684\u5217\u8868\u9875\uff0c\u5c55\u793a\u8ba2\u9605\u7684\u7ec4\u4ef6\u5217\u8868\uff0c\u5305\u62ec\u7ec4\u4ef6\u540d\u79f0\u3001\u7248\u672c\u3001\u6240\u5c5e\u7ec4\u4ef6\u4ed3\u5e93\u3001\u8ba2\u9605\u65f6\u95f4\uff0c\u64cd\u4f5c\uff1a\u53d6\u6d88\u8ba2\u9605"),(0,a.kt)("li",{parentName:"ol"},"\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u7ec4\u4ef6\u540d\u79f0"),"\u8df3\u8f6c\u5176\u7ec4\u4ef6\u5e02\u573a\u7684\u8be6\u60c5\u9875\u9762\uff0c\u53ef\u67e5\u770b\u8be6\u7ec6\u4fe1\u606f"),(0,a.kt)("li",{parentName:"ol"},"\u5982\u4e0d\u60f3\u7ee7\u7eed\u5173\u6ce8\uff0c\u53ef\u53d6\u6d88\u8ba2\u9605")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"\u5728\u540c\u4e00\u96c6\u7fa4\u4e2d\uff0c\u76f8\u540c\u7684\u79df\u6237&\u9879\u76ee\u5bf9\u76f8\u540c\u7ec4\u4ef6\u53ea\u80fd\u8ba2\u9605\u4e00\u6b21\u3002")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6b8ed726.7d1ab0b3.js b/assets/js/6b8ed726.7d1ab0b3.js deleted file mode 100644 index 2e9acf199..000000000 --- a/assets/js/6b8ed726.7d1ab0b3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6674],{3905:(e,t,n)=>{n.d(t,{Zo:()=>m,kt:()=>c});var l=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,l)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(l=0;l=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=l.createContext({}),u=function(e){var t=l.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},m=function(e){var t=u(e.components);return l.createElement(p.Provider,{value:t},e.children)},k="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return l.createElement(l.Fragment,{},t)}},N=l.forwardRef((function(e,t){var n=e.components,a=e.mdxType,r=e.originalType,p=e.parentName,m=o(e,["components","mdxType","originalType","parentName"]),k=u(n),N=a,c=k["".concat(p,".").concat(N)]||k[N]||s[N]||r;return n?l.createElement(c,i(i({ref:t},m),{},{components:n})):l.createElement(c,i({ref:t},m))}));function c(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=n.length,i=new Array(r);i[0]=N;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[k]="string"==typeof e?e:a,i[1]=o;for(var u=2;u{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>s,frontMatter:()=>r,metadata:()=>o,toc:()=>u});var l=n(7462),a=(n(7294),n(3905));const r={sidebar_position:3,title:"\u7ec4\u4ef6\u7ba1\u7406",sidebar_label:"\u7ec4\u4ef6\u7ba1\u7406"},i=void 0,o={unversionedId:"user-guid/component_anagement",id:"user-guid/component_anagement",title:"\u7ec4\u4ef6\u7ba1\u7406",description:"\u7ec4\u4ef6\u7ba1\u7406\u4e3b\u8981\u5206\u4e09\u90e8\u5206\u80fd\u529b\uff1a",source:"@site/docs/user-guid/component_anagement.md",sourceDirName:"user-guid",slug:"/user-guid/component_anagement",permalink:"/website/docs/user-guid/component_anagement",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"\u7ec4\u4ef6\u7ba1\u7406",sidebar_label:"\u7ec4\u4ef6\u7ba1\u7406"},sidebar:"tutorialSidebar",previous:{title:"\u4ea7\u54c1\u4ecb\u7ecd",permalink:"/website/docs/user-guid/intro"},next:{title:"\u7ec4\u4ef6\u5e02\u573a",permalink:"/website/docs/user-guid/component_market"}},p={},u=[{value:"\u6211\u53d1\u5e03\u7684",id:"\u6211\u53d1\u5e03\u7684",level:2},{value:"\u6211\u5b89\u88c5\u7684",id:"\u6211\u5b89\u88c5\u7684",level:2},{value:"\u5b89\u88c5\u7ec4\u4ef6",id:"\u5b89\u88c5\u7ec4\u4ef6",level:3},{value:"\u5b89\u88c5\u7248\u672c\u7ba1\u7406",id:"\u5b89\u88c5\u7248\u672c\u7ba1\u7406",level:3},{value:"\u66f4\u65b0\u7ec4\u4ef6",id:"\u66f4\u65b0\u7ec4\u4ef6",level:3},{value:"\u5378\u8f7d\u7ec4\u4ef6",id:"\u5378\u8f7d\u7ec4\u4ef6",level:3},{value:"\u6211\u8ba2\u9605\u7684",id:"\u6211\u8ba2\u9605\u7684",level:2}],m={toc:u},k="wrapper";function s(e){let{components:t,...n}=e;return(0,a.kt)(k,(0,l.Z)({},m,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"\u7ec4\u4ef6\u7ba1\u7406\u4e3b\u8981\u5206\u4e09\u90e8\u5206\u80fd\u529b\uff1a"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u6211\u53d1\u5e03\u7684\uff1a\u624b\u52a8\u53d1\u5e03\u7ec4\u4ef6\u5230\u4ed3\u5e93\uff1b\u540c\u4e00\u7ec4\u4ef6\u53ef\u53d1\u5e03\u591a\u7248\u672c"),(0,a.kt)("li",{parentName:"ul"},"\u6211\u5b89\u88c5\u7684\uff1a\u624b\u52a8\u3001\u81ea\u52a8\u5b89\u88c5\u7ec4\u4ef6\uff1b\u7248\u672c\u66f4\u65b0\u63a8\u9001\uff1b\u5386\u53f2\u7248\u672c\u7ba1\u7406\u548c\u4e00\u952e\u56de\u6eda"),(0,a.kt)("li",{parentName:"ul"},"\u6211\u8ba2\u9605\u7684\uff1a\u8ba2\u9605\u548c\u53d6\u6d88\u8ba2\u9605")),(0,a.kt)("h2",{id:"\u6211\u53d1\u5e03\u7684"},"\u6211\u53d1\u5e03\u7684"),(0,a.kt)("p",null,"\u624b\u52a8\u53d1\u5e03\u7ec4\u4ef6\uff0c\u53d1\u5e03\u540e\uff0c\u53ef\u5728\u201c\u7ec4\u4ef6\u5e02\u573a\u201d\u6d4f\u89c8\u3001\u4e0b\u8f7d\u3001\u8ba2\u9605\u6216\u5b89\u88c5\u3002\u540c\u4e00\u7ec4\u4ef6\u53ef\u53d1\u5e03\u591a\u7248\u672c\u3002"),(0,a.kt)("p",null,"\u64cd\u4f5c\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165","[\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u7ba1\u7406/\u6211\u53d1\u5e03\u7684]","\u9875\u9762\uff0c\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"}," +\u7ec4\u4ef6\u53d1\u5e03 ")),(0,a.kt)("li",{parentName:"ol"},"\u5f39\u6846\u4e2d\u9009\u62e9\u7ec4\u4ef6\u4ed3\u5e93\uff0c\u4e0a\u4f20 helm \u5305\uff0c",(0,a.kt)("strong",{parentName:"li"},"\u786e\u5b9a"),"\u540e\uff0c\u5373\u5f00\u59cb\u53d1\u5e03\u7ec4\u4ef6\uff0c\u53d1\u5e03\u6210\u529f\uff0c\u8fd4\u56de\u5217\u8868\u9875\u9762"),(0,a.kt)("li",{parentName:"ol"},"\u201c\u6211\u53d1\u5e03\u7684\u201d\u5217\u8868\u4e2d\u5c55\u793a\u7ec4\u4ef6\u540d\u79f0\u3001\u6700\u65b0\u7248\u672c\u3001\u7ec4\u4ef6\u4ed3\u5e93\u3001\u5f53\u524d\u72b6\u6001\u3001\u66f4\u65b0\u65f6\u95f4\uff0c\u64cd\u4f5c\uff1a\u66f4\u65b0\u3001\u5220\u9664")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u5f53\u524d\u72b6\u6001\u6709\u4e24\u79cd\uff0c\u540c\u6b65\u4e2d\u3001\u6b63\u5e38\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u66f4\u65b0\u7ec4\u4ef6\uff0c\u4e0d\u53ef\u4fee\u6539\u7ec4\u4ef6\u4ed3\u5e93\uff0c\u53ef\u4e0a\u4f20\u65b0\u7684 helm \u5305\uff0c\u5373\u53d1\u5e03\u65b0\u7248\u672c\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u5220\u9664\u7ec4\u4ef6\uff0c\u5373\u5220\u9664\u5176\u6240\u6709\u7248\u672c\u4fe1\u606f\uff0c\u5220\u9664\u540e\u5c06\u4e0d\u518d<\u7ec4\u4ef6\u5e02\u573a>\u5c55\u793a\u3002")),(0,a.kt)("ol",{start:4},(0,a.kt)("li",{parentName:"ol"},"\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u7ec4\u4ef6\u540d\u79f0"),"\uff0c\u8fdb\u5165\u5176\u8be6\u60c5\u9875\uff0c\u5c55\u793a\u7ec4\u4ef6\u7248\u672c\u5217\u8868\u3001\u7ec4\u4ef6\u4ed3\u5e93\u540d\u79f0\u3001\u7ec4\u4ef6\u5173\u952e\u8bcd\u3001\u4ea7\u54c1\u4ecb\u7ecd\u4fe1\u606f"),(0,a.kt)("li",{parentName:"ol"},"\u7ec4\u4ef6\u8be6\u60c5\u9875\uff0c\u9009\u62e9\u7248\u672c\u540e\uff0c\u652f\u6301\u5220\u9664\u67d0\u4e00\u7248\u672c")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("ul",{parentName:"admonition"},(0,a.kt)("li",{parentName:"ul"},"\u76ee\u524d\u4ec5\u652f\u6301\u7cfb\u7edf\u7ba1\u7406\u5458admin\u53d1\u5e03\u7ec4\u4ef6\u5230Chart Museum\u7c7b\u578b\u7684\u4ed3\u5e93"),(0,a.kt)("li",{parentName:"ul"},"\u7528\u6237\u4e3b\u52a8\u5c06\u7ec4\u4ef6\u6240\u6709\u7248\u672c\u5747\u8bbe\u7f6e\u4e3a\u201c\u5e9f\u5f03\u201d\u72b6\u6001\uff0c\u5219\u4e0d\u4f1a\u663e\u793a\u5728\u201c\u6211\u53d1\u5e03\u7684\u201d\u5217\u8868\u53ca\u7ec4\u4ef6\u5e02\u573a\u4e2d"))),(0,a.kt)("h2",{id:"\u6211\u5b89\u88c5\u7684"},"\u6211\u5b89\u88c5\u7684"),(0,a.kt)("p",null,"\u5728\u201c\u7ec4\u4ef6\u5e02\u573a\u201d\u6d4f\u89c8\u7ec4\u4ef6\uff0c\u6309\u9700\u5b89\u88c5\u7ec4\u4ef6\uff0c\u5f53\u7ec4\u4ef6\u6709\u65b0\u7248\u672c\u63a8\u9001\u65f6\u53ef\u9009\u62e9\u624b\u52a8\u6216\u81ea\u52a8\u66f4\u65b0\u3002"),(0,a.kt)("h3",{id:"\u5b89\u88c5\u7ec4\u4ef6"},"\u5b89\u88c5\u7ec4\u4ef6"),(0,a.kt)("p",null,"\u64cd\u4f5c\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165","[\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u7ba1\u7406/\u6211\u5b89\u88c5\u7684]","\u9875\u9762\uff0c\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"}," +\u7ec4\u4ef6\u5b89\u88c5 "),"\uff0c\u8df3\u8f6c\u5230\u201c\u7ec4\u4ef6\u5e02\u573a\u201d\u9875\u9762\uff0c\u9009\u62e9\u76ee\u6807\u96c6\u7fa4\uff0c\u6d4f\u89c8\u7ec4\u4ef6"),(0,a.kt)("li",{parentName:"ol"},"\u627e\u5230\u76ee\u6807\u7ec4\u4ef6\uff0c\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u5b89\u88c5"),"\uff0c\u8fdb\u5165\u5b89\u88c5\u9875\u9762\uff0c\u586b\u5199\u90e8\u7f72\u540d\u79f0\u3001\u9009\u62e9\u7ec4\u4ef6\u7248\u672c\u3001\u66f4\u65b0\u65b9\u5f0f\u3001\u9009\u62e9\u79df\u6237&\u9879\u76ee\u3001\u67e5\u770b\u6216\u8c03\u6574\u914d\u7f6e\u6587\u4ef6\u3001\u6309\u9700\u6dfb\u52a0\u955c\u50cf\u66ff\u6362\u89c4\u5219")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u5efa\u8bae\u5b89\u88c5\u524d\u4ed4\u7ec6\u9605\u8bfb\u5b89\u88c5\u8bf4\u660e"),"\uff0c\u52a9\u60a8\u5feb\u901f\u6b63\u786e\u7684\u5b89\u88c5\u7ec4\u4ef6\uff0c\u8fdb\u884c\u4f53\u9a8c"),(0,a.kt)("li",{parentName:"ul"},"\u90e8\u7f72\u540d\u79f0\uff1a\u75313~56\u4e2a\u5c0f\u5199\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e2d\u5212\u7ebf\u201c-\u201d\u6216\u70b9\u201c.\u201d\u7ec4\u6210\uff0c\u5e76\u4ee5\u5b57\u6bcd\u3001\u6570\u5b57\u5f00\u5934\u6216\u7ed3\u5c3e\u3002\u9879\u76ee&\u96c6\u7fa4\u5185\u552f\u4e00\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u7ec4\u4ef6\u540d\u79f0\u548c\u7ec4\u4ef6\u4ed3\u5e93\u81ea\u52a8\u56de\u663e\uff0c\u53ea\u8bfb"),(0,a.kt)("li",{parentName:"ul"},"\u7ec4\u4ef6\u7248\u672c\uff1a\u4e0b\u62c9\u5217\u8868\u9009\u62e9\u8981\u5b89\u88c5\u7684\u7248\u672c"),(0,a.kt)("li",{parentName:"ul"},"\u66f4\u65b0\u65b9\u5f0f\uff1a\u9ed8\u8ba4\u624b\u52a8\u66f4\u65b0\u3002",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u9009\u62e9\u201c\u624b\u52a8\u66f4\u65b0\u201d\u540e\uff0c\u5f53\u7ec4\u4ef6\u6709\u65b0\u7248\u672c\u53d1\u5e03\u540e\uff0c\u7528\u6237\u6309\u9700\u624b\u52a8\u66f4\u65b0\u6210\u6700\u65b0\u7248\u672c\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u9009\u62e9\u201c\u81ea\u52a8\u66f4\u65b0\u201d\u540e\uff0c\u5f53\u7ec4\u4ef6\u6709\u65b0\u7248\u672c\u53d1\u5e03\u540e\uff0c\u65e0\u9700\u624b\u52a8\u66f4\u65b0\uff0c\u6309\u8bbe\u7f6e\u7684\u66f4\u65b0\u65f6\u95f4\u81ea\u52a8\u66f4\u65b0\u6210\u6700\u65b0\u7248\u672c\u3002",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"\u66f4\u65b0\u65f6\u95f4"),"\u652f\u6301\u8bbe\u7f6e\u6bcf\u5929\u7684\u65f6\u5206\uff0c\u8bbe\u7f6e\u540e\uff0c\u7ec4\u4ef6\u5f53\u5929\u6709\u65b0\u7248\u672c\u53d1\u5e03\u540e\uff0c\u5982\u679c\u5728",(0,a.kt)("inlineCode",{parentName:"li"},"\u66f4\u65b0\u65f6\u95f4"),"\u524d\u53d1\u5e03\uff0c\u5219\u5f53\u65e5",(0,a.kt)("inlineCode",{parentName:"li"},"\u66f4\u65b0\u65f6\u95f4"),"\u5373\u81ea\u52a8\u66f4\u65b0\uff0c\u5426\u5219\u6b21\u65e5",(0,a.kt)("inlineCode",{parentName:"li"},"\u66f4\u65b0\u65f6\u95f4"),"\u518d\u81ea\u52a8\u66f4\u65b0\u3002"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"\u66f4\u65b0\u65f6\u95f4"),"\u4e0d\u8bbe\u7f6e\uff0c\u5373\u6709\u65b0\u7248\u672c\u53d1\u5e03\u540e\uff0c\u7acb\u5373\u81ea\u52a8\u66f4\u65b0\u3002\u6b64\u65b9\u5f0f\u9700\u6ce8\u610f\u5bf9\u4f7f\u7528\u7ec4\u4ef6\u7528\u6237\u7684\u5f71\u54cd\uff0c\u907f\u514d\u7ec4\u4ef6\u670d\u52a1\u66f4\u65b0\u5bfc\u81f4\u7528\u6237\u4f7f\u7528\u5361\u987f\u6216\u4e2d\u65ad\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u9009\u62e9\u201c\u81ea\u52a8\u66f4\u65b0\u201d\uff0c\u4f1a\u81ea\u52a8\u8ba2\u9605\u6b64\u7ec4\u4ef6\u3002"))))),(0,a.kt)("li",{parentName:"ul"},"\u5b89\u88c5\u4f4d\u7f6e\uff1a\u9009\u62e9\u79df\u6237\u3001\u9879\u76ee\uff08\u4e0a\u4e00\u6b65\u5df2\u9009\u62e9\u96c6\u7fa4\uff09",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u540c\u4e00\u9879\u76ee&\u96c6\u7fa4\u4e2d\u4e5f\u53ef\u5b89\u88c5\u591a\u6b21\u76f8\u540c\u7ec4\u4ef6\uff0c\u4f8b\u5982\u6570\u636e\u5e93\u3001\u5b58\u50a8\u7c7b\u7ec4\u4ef6\uff0c\u53ef\u90e8\u7f72\u591a\u4e2a\uff0c\u4f46\u90e8\u7f72\u540d\u79f0\u9700\u552f\u4e00\u3002 "))),(0,a.kt)("li",{parentName:"ul"},"\u914d\u7f6e\u6587\u4ef6\uff1avalue.yaml\uff0c\u652f\u6301\u67e5\u770b\u3001\u7f16\u8f91"),(0,a.kt)("li",{parentName:"ul"},"\u955c\u50cf\u66ff\u6362\uff1a\u7ec4\u4ef6\u7ea7\u522b\u7684\u955c\u50cf\u8986\u76d6\u91cd\u5199\u3002\u9ed8\u8ba4\u65e0\u89c4\u5219\uff0c\u6309\u9700\u6dfb\u52a0\u3002",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u586b\u5199\u89c4\u5219\uff1a\u9009\u62e9\u5df2\u6709\u955c\u50cf\uff0c\u66ff\u6362\u4e3a\u65b0\u955c\u50cf\u3001\u65b0\u955c\u50cf\u540d\u79f0\u3001\u65b0tag\u3002\u5176\u4e2d\u9009\u62e9\u5df2\u6709\u955c\u50cf\uff0c\u5373\u4f9d\u6b21\u9009\u62e9\u57df\u540d\u3001\u4ed3\u5e93\u7ec4\u3001\u955c\u50cf\u540d\u79f0\u3001tag\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u9009\u62e9\u5df2\u6709\u955c\u50cf - \u57df\u540d\u3001\u4ed3\u5e93\u7ec4\u540e\uff0c\u5982\u679c\u5339\u914d\u5230\u7ec4\u4ef6\u4ed3\u5e93\u7684\u955c\u50cf\u66ff\u6362\u89c4\u5219\uff0c\u5219\u81ea\u52a8\u586b\u5145\u66ff\u6362\u540e\u7684\u65b0\u955c\u50cf\uff1b\u5426\u5219\u65b0\u955c\u50cf\u7528\u6237\u81ea\u5b9a\u4e49\u586b\u5199"),(0,a.kt)("li",{parentName:"ul"},"\u9009\u62e9\u5df2\u6709\u955c\u50cf - tag\u65f6\uff0c\u9009\u62e9\u6307\u5b9atag\uff0c\u5219\u4ec5\u66ff\u6362\u6b64tag\uff1b\u9009\u62e9\u5168\u90e8\uff0c\u5219\u5168\u90e8\u66ff\u6362")))),(0,a.kt)("ol",{start:3},(0,a.kt)("li",{parentName:"ol"},"\u586b\u5199\u5b8c\u6210\uff0c\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u786e\u5b9a"),"\u540e\uff0c\u5373\u5f00\u59cb\u5b89\u88c5\uff0c\u8fd4\u56de\u5b89\u88c5\u5217\u8868\u3002\u5217\u8868\u5c55\u793a\u90e8\u7f72\u540d\u79f0\u3001\u7ec4\u4ef6\u540d\u79f0\u3001\u7248\u672c\u3001\u72b6\u6001\u3001\u66f4\u65b0\u65b9\u5f0f\u3001\u6240\u5c5e\u7ec4\u4ef6\u4ed3\u5e93\u3001\u66f4\u65b0\u65f6\u95f4\u3002")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u72b6\u6001\uff1a\u5b89\u88c5\u4e2d\u3001\u5b89\u88c5\u6210\u529f\u3001\u5b89\u88c5\u5931\u8d25\u3001\u5378\u8f7d\u4e2d\u3001\u5378\u8f7d\u5931\u8d25\u3001\u672a\u77e5\u3002 \u5176\u4e2d\u5378\u8f7d\u5931\u8d25\u3001\u672a\u77e5\u6bd4\u8f83\u5c11\u89c1\uff0c\u5982\u9047\u5230\u8bf7\u8054\u7cfb\u7ba1\u7406\u5458\u68c0\u67e5kubebb\u7684\u7cfb\u7edf\u670d\u52a1\u7ec4\u4ef6\u3002")),(0,a.kt)("ol",{start:4},(0,a.kt)("li",{parentName:"ol"},"\u5f53\u7ec4\u4ef6\u53d1\u5e03\u65b0\u7248\u672c\u540e\uff0c\u4e00\u5468\u5185\u4f1a\u6709\u63a8\u65b0\u7684\u6807\u8bc6\u3002\u4e5f\u53ef\u70b9\u51fb\u201c\u7248\u672c\u201d\u65c1\u7684new\uff0c\u8fc7\u6ee4\u6240\u6709\u8fd1\u4e00\u5468\u6709\u63a8\u65b0\u7684\u7ec4\u4ef6")),(0,a.kt)("h3",{id:"\u5b89\u88c5\u7248\u672c\u7ba1\u7406"},"\u5b89\u88c5\u7248\u672c\u7ba1\u7406"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165","[\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u7ba1\u7406/\u6211\u5b89\u88c5\u7684]","\u9875\u9762\uff0c\u627e\u5230\u76ee\u6807\u90e8\u7f72\u7ec4\u4ef6\uff0c\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u7ec4\u4ef6\u540d\u79f0"),"\uff0c\u8fdb\u5165\u5176\u8be6\u60c5\u9875\u9762"),(0,a.kt)("li",{parentName:"ol"},"\u5b89\u88c5\u4fe1\u606f\uff1a\u5c55\u793a\u5f53\u524d\u5b89\u88c5\u7684\u7248\u672c\u4fe1\u606f\uff0c\u5305\u62ec\u90e8\u7f72\u540d\u79f0\u3001\u7ec4\u4ef6\u540d\u79f0\u3001\u7ec4\u4ef6\u4ed3\u5e93\u3001\u7248\u672c\u3001\u66f4\u65b0\u65b9\u5f0f\u3001\u5b89\u88c5\u4f4d\u7f6e\u3001\u914d\u7f6e\u6587\u4ef6\u3001\u955c\u50cf\u66ff\u6362\u89c4\u5219"),(0,a.kt)("li",{parentName:"ol"},"\u5386\u53f2\u7248\u672c\uff1a\u5c55\u793a\u6b64\u6b21\u90e8\u7f72\u7ec4\u4ef6\u7684\u5386\u53f2\u7248\u672c\u5217\u8868\uff0c\u5305\u62ec\u7ec4\u4ef6\u540d\u79f0\u3001\u7248\u672c\u3001\u66f4\u65b0\u65b9\u5f0f\u3001\u5b89\u88c5\u65f6\u95f4\u3002\u7248\u672c\u5904\u4f1a\u6807\u8bc6\u5f53\u524d\u7248\u672c")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u652f\u6301\u67e5\u770b\u5404\u5386\u53f2\u7248\u672c\u7684\u5b89\u88c5\u4fe1\u606f"),(0,a.kt)("li",{parentName:"ul"},"\u652f\u6301\u6309\u9700\u56de\u6eda\u5230\u67d0\u5386\u53f2\u7248\u672c\u3002\u4e3b\u52a8\u56de\u6eda\u540e\uff0c\u6ce8\u610f\u4f1a\u66f4\u65b0\u5176",(0,a.kt)("inlineCode",{parentName:"li"},"\u66f4\u65b0\u65b9\u5f0f"),"\u4e3a\u624b\u52a8\u66f4\u65b0\u3002")),(0,a.kt)("h3",{id:"\u66f4\u65b0\u7ec4\u4ef6"},"\u66f4\u65b0\u7ec4\u4ef6"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165","[\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u7ba1\u7406/\u6211\u5b89\u88c5\u7684]","\u9875\u9762\uff0c\u627e\u5230\u76ee\u6807\u90e8\u7f72\u7ec4\u4ef6\uff0c\u6309\u9700\u66f4\u65b0")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u9009\u62e9\u65b0\u7248\u672c\u5347\u7ea7"),(0,a.kt)("li",{parentName:"ul"},"\u9009\u62e9\u65e7\u7248\u672c\u56de\u9000"),(0,a.kt)("li",{parentName:"ul"},"\u6216\u4e0d\u8c03\u6574\u7248\u672c\uff0c\u4ec5\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\u6216\u955c\u50cf\u66ff\u6362\u89c4\u5219\u7b49")),(0,a.kt)("ol",{start:2},(0,a.kt)("li",{parentName:"ol"},"\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u66f4\u65b0"),"\uff0c\u8fdb\u5165\u7ec4\u4ef6\u66f4\u65b0\u9875\u9762\uff0c\u90e8\u7f72\u540d\u79f0\u3001\u7ec4\u4ef6\u540d\u79f0\u3001\u7ec4\u4ef6\u4ed3\u5e93\u3001\u5b89\u88c5\u4f4d\u7f6e\uff0c\u4e0d\u5141\u8bb8\u4fee\u6539\uff0c\u5176\u4ed6\u9009\u9879\u6309\u9700\u8c03\u6574\uff0c\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u786e\u5b9a"),"\uff0c\u5f00\u59cb\u66f4\u65b0\u7ec4\u4ef6")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"\u66f4\u65b0\u7ec4\u4ef6\u65f6\uff0c\u7ec4\u4ef6\u670d\u52a1\u4f1a\u91cd\u542f\uff0c\u53ef\u80fd\u4f1a\u5bf9\u7528\u6237\u4f7f\u7528\u9020\u6210\u5f71\u54cd\uff0c\u8bf7\u8bc4\u4f30\u540e\u9009\u62e9\u5408\u9002\u65f6\u95f4\u8fdb\u884c\u66f4\u65b0\u3002")),(0,a.kt)("h3",{id:"\u5378\u8f7d\u7ec4\u4ef6"},"\u5378\u8f7d\u7ec4\u4ef6"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165","[\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u7ba1\u7406/\u6211\u5b89\u88c5\u7684]","\u9875\u9762\uff0c\u627e\u5230\u76ee\u6807\u90e8\u7f72\u7ec4\u4ef6\uff0c\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u5378\u8f7d")),(0,a.kt)("li",{parentName:"ol"},"\u5378\u8f7d\u7ec4\u4ef6\u4f1a\u540c\u6b65\u5220\u9664\u6b64\u90e8\u7f72\u4e0b\u7684\u6240\u6709\u5386\u53f2\u7248\u672c\u4fe1\u606f\uff0c\u4e8c\u6b21\u5f39\u6846\u63d0\u793a\uff0c\u786e\u5b9a\u540e\uff0c\u5f00\u59cb\u5378\u8f7d\u3002")),(0,a.kt)("h2",{id:"\u6211\u8ba2\u9605\u7684"},"\u6211\u8ba2\u9605\u7684"),(0,a.kt)("p",null,"\u6d4f\u89c8\u7ec4\u4ef6\u5e02\u573a\uff0c\u60f3\u5173\u6ce8\u7684\u7ec4\u4ef6\u53ef\u4ee5\u63d0\u524d\u8ba2\u9605\uff0c\u53ca\u65f6\u5173\u6ce8\u5176\u52a8\u6001\u3002"),(0,a.kt)("p",null,"\u64cd\u4f5c\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165","[\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u7ba1\u7406/\u6211\u8ba2\u9605\u7684]","\u9875\u9762\uff0c\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"}," +\u7ec4\u4ef6\u8ba2\u9605 "),"\uff0c\u8df3\u8f6c\u7ec4\u4ef6\u5e02\u573a\uff0c\u627e\u5230\u76ee\u6807\u7ec4\u4ef6\uff0c\u70b9\u51fb\u5361\u7247\u533a\u57df\uff0c\u8fdb\u5165\u5176\u8be6\u60c5\u9875\u9762"),(0,a.kt)("li",{parentName:"ol"},"\u53f3\u4e0a\u89d2\u64cd\u4f5c\u5904\u70b9\u51fb\u201c\u8ba2\u9605\u201d\uff0c\u5f39\u6846\u5185\u586b\u5199\u8ba2\u9605\u9879\u76ee\uff0c\u5373\u9009\u62e9\u79df\u6237\u3001\u9879\u76ee\uff0c\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u786e\u5b9a"),"\uff0c\u5b8c\u6210\u8ba2\u9605"),(0,a.kt)("li",{parentName:"ol"},"\u8fd4\u56de\u6211\u8ba2\u9605\u7684\u5217\u8868\u9875\uff0c\u5c55\u793a\u8ba2\u9605\u7684\u7ec4\u4ef6\u5217\u8868\uff0c\u5305\u62ec\u7ec4\u4ef6\u540d\u79f0\u3001\u7248\u672c\u3001\u6240\u5c5e\u7ec4\u4ef6\u4ed3\u5e93\u3001\u8ba2\u9605\u65f6\u95f4\uff0c\u64cd\u4f5c\uff1a\u53d6\u6d88\u8ba2\u9605"),(0,a.kt)("li",{parentName:"ol"},"\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u7ec4\u4ef6\u540d\u79f0"),"\u8df3\u8f6c\u5176\u7ec4\u4ef6\u5e02\u573a\u7684\u8be6\u60c5\u9875\u9762\uff0c\u53ef\u67e5\u770b\u8be6\u7ec6\u4fe1\u606f"),(0,a.kt)("li",{parentName:"ol"},"\u5982\u4e0d\u60f3\u7ee7\u7eed\u5173\u6ce8\uff0c\u53ef\u53d6\u6d88\u8ba2\u9605")),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"\u5728\u540c\u4e00\u96c6\u7fa4\u4e2d\uff0c\u76f8\u540c\u7684\u79df\u6237&\u9879\u76ee\u5bf9\u76f8\u540c\u7ec4\u4ef6\u53ea\u80fd\u8ba2\u9605\u4e00\u6b21\u3002")))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/74f3aee8.7d3b8243.js b/assets/js/74f3aee8.7d3b8243.js new file mode 100644 index 000000000..89e956223 --- /dev/null +++ b/assets/js/74f3aee8.7d3b8243.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2275],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>g});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var u=a.createContext({}),l=function(e){var n=a.useContext(u),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=l(e.components);return a.createElement(u.Provider,{value:n},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,s=e.originalType,u=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),d=l(t),m=r,g=d["".concat(u,".").concat(m)]||d[m]||p[m]||s;return t?a.createElement(g,i(i({ref:n},c),{},{components:t})):a.createElement(g,i({ref:n},c))}));function g(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var s=t.length,i=new Array(s);i[0]=m;var o={};for(var u in n)hasOwnProperty.call(n,u)&&(o[u]=n[u]);o.originalType=e,o[d]="string"==typeof e?e:r,i[1]=o;for(var l=2;l{t.r(n),t.d(n,{assets:()=>u,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var a=t(7462),r=(t(7294),t(3905));const s={sidebar_position:3},i="\u914d\u7f6e\u5ba1\u8ba1\u80fd\u529b",o={unversionedId:"develop-guid/building-base/configuration/audit-config",id:"develop-guid/building-base/configuration/audit-config",title:"\u914d\u7f6e\u5ba1\u8ba1\u80fd\u529b",description:"\u6ce8\u610f\uff0c\u5ba1\u8ba1\u529f\u80fd\u4f9d\u8d56\u5bf9\u5ba1\u8ba1\u65e5\u5fd7\u7684\u91c7\u96c6\u529f\u80fd\uff0c\u9700\u8981\u5728\u96c6\u7fa4\u8bbe\u7f6e\u4e2d\u914d\u7f6e\u65e5\u5fd7\u670d\u52a1 ElasticSearch \u7684\u5730\u5740\uff0c\u65e5\u5fd7\u670d\u52a1\u7684\u914d\u7f6e\u53c2\u8003\u65e5\u5fd7\u7ec4\u4ef6",source:"@site/docs/develop-guid/building-base/configuration/audit-config.md",sourceDirName:"develop-guid/building-base/configuration",slug:"/develop-guid/building-base/configuration/audit-config",permalink:"/website/docs/develop-guid/building-base/configuration/audit-config",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"\u4f7f\u7528\u7b2c\u4e09\u65b9\u7cfb\u7edf\u767b\u5f55",permalink:"/website/docs/develop-guid/building-base/configuration/3rd-party-account"},next:{title:"\u96c6\u6210\u5355\u70b9\u767b\u5f55",permalink:"/website/docs/develop-guid/building-base/configuration/oidc-integration"}},u={},l=[],c={toc:l},d="wrapper";function p(e){let{components:n,...t}=e;return(0,r.kt)(d,(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u914d\u7f6e\u5ba1\u8ba1\u80fd\u529b"},"\u914d\u7f6e\u5ba1\u8ba1\u80fd\u529b"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"\u6ce8\u610f\uff0c\u5ba1\u8ba1\u529f\u80fd\u4f9d\u8d56\u5bf9\u5ba1\u8ba1\u65e5\u5fd7\u7684\u91c7\u96c6\u529f\u80fd\uff0c\u9700\u8981\u5728\u96c6\u7fa4\u8bbe\u7f6e\u4e2d\u914d\u7f6e\u65e5\u5fd7\u670d\u52a1 ElasticSearch \u7684\u5730\u5740\uff0c\u65e5\u5fd7\u670d\u52a1\u7684\u914d\u7f6e\u53c2\u8003",(0,r.kt)("a",{parentName:"p",href:"/website/docs/develop-guid/component-market/logging"},"\u65e5\u5fd7\u7ec4\u4ef6"))),(0,r.kt)("p",null,"1\u3001\u7f16\u8f91 audit-policy.yaml \u6587\u4ef6\u5bf9\u5ba1\u8ba1\u8fdb\u884c\u914d\u7f6e\uff0c",(0,r.kt)("inlineCode",{parentName:"p"},"kubectl edit cm audit-policy-conf -n u4a-system")),(0,r.kt)("p",null,"\u6309\u7167\u4ee5\u4e0b\u6a21\u5f0f\u8fdb\u884c\u5b9a\u4e49\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: audit.k8s.io/v1beta1\nkind: Policy\n# Don\'t generate audit events for all requests in RequestReceived stage.\nomitStages:\n - "RequestReceived"\nrules:\n # Don\'t audit namespace: kube-system/cluster-system/system-bigdata\n - level: None\n resources:\n - group: "" # core API group\n resources: ["secrets", "configmaps"]\n namespaces: ["kube-system", "cluster-system", "system-bigdata"]\n # Only enable \'write\' verbs audit log for secret and configmap\n - level: Metadata\n verbs: ["create","delete","deletecollection","patch","update"]\n resources:\n - group: "" # core API group\n resources: ["secrets", "configmaps"]\n')),(0,r.kt)("p",null,"\u5404\u4e2a\u7ec4\u4ef6\uff0c\u9700\u8981\u6839\u636e\u81ea\u5df1\u7684\u8d44\u6e90\u7c7b\u578b\uff0c\u6765\u9488\u5bf9\u6027\u7684\u5c06\u81ea\u5df1\u7684\u8d44\u6e90\u6dfb\u52a0\u5230\u5ba1\u8ba1\u7684 rule \u5217\u8868\u4e2d\uff0c\u9ed8\u8ba4\u5bf9\u5199\u64cd\u4f5c\u8fdb\u884c\u5ba1\u8ba1\u5373\u53ef\u3002"),(0,r.kt)("p",null,"2\u3001\u914d\u7f6e kube-apiserver \u53c2\u6570\uff08\u4e5f\u53ef\u4ee5\u5728 kube-oidc-proxy \u4e0a\u8fdb\u884c\u7c7b\u4f3c\u7684\u914d\u7f6e\uff0c\u5728\u65e0\u6cd5\u64cd\u4f5c\u539f\u6709 K8S \u96c6\u7fa4\u7684\u6761\u4ef6\u4e0b\uff0c\u4f7f\u7528 kube-oidc-proxy \u7684\u914d\u7f6e\uff09\uff0c\u6dfb\u52a0\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"# \u5ba1\u8ba1\u7b56\u7565\u914d\u7f6e\u6587\u4ef6\u5730\u5740\n - --audit-policy-file=/etc/kubernetes/pki/audit-policy.yaml\n# \u5ba1\u8ba1\u65e5\u5fd7\u7684\u8def\u5f84\u6587\u4ef6\n - --audit-log-path=/var/log/apiserver/audit/audit.log\n# \u65e5\u5fd7\u4fdd\u5b58\u7b56\u7565\n - --audit-log-maxage=7\n - --audit-log-maxbackup=10\n - --audit-log-maxsize=10\n")),(0,r.kt)("p",null,"\u5982\u679c\u662f\u5728 K8S \u4e0a\u76f4\u63a5\u4fee\u6539\uff0c\u5219\u9700\u8981\u4fee\u6539 /etc/kubernetes/manifests/kube-apiserver.yaml \u6765\u6dfb\u52a0\u8be5\u53c2\u6570\uff0c\u4fee\u6539\u540e\u786e\u8ba4 kube-apiserver \u5bb9\u5668\u53d1\u751f\u91cd\u542f\uff0c\u6b64\u65f6\u914d\u7f6e\u624d\u80fd\u751f\u6548"),(0,r.kt)("p",null,"3\u3001\u914d\u7f6e fluentd \u8fdb\u884c\u91c7\u96c6\uff08\u7d22\u5f15\u6a21\u7248\u8ddf\u539f\u6765\u7684 fluentd \u51b2\u7a81\uff0c\u6240\u4ee5\u9700\u8981\u5355\u72ec\u7684fluentd \u8fdb\u7a0b\u4e13\u95e8\u91c7\u96c6 master \u4e0a\u7684\u5ba1\u8ba1\u65e5\u5fd7\u3002\n\u76ee\u524d\u6d4b\u8bd5\u65b9\u6cd5\uff0c\u4ece\u539f\u6709\u7684 fluentd daemonset \u590d\u5236\u4e00\u4e2a\uff0c\u4fee\u6539 ds \u7684\u540d\u5b57\uff0c\u5e76\u4f7f\u7528\u4ee5\u4e0b\u914d\u7f6e\u6587\u4ef6\u8fdb\u884c\u6302\u8f7d\u5373\u53ef\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"apiVersion: v1\ndata:\n fluent.conf: |2\n # for audit log\n \n @type tail\n @id in_tail_kube_apiserver_audit\n multiline_flush_interval 5s\n path /var/log/apiserver/audit/audit.log\n pos_file /var/log/kube-apiserver-audit.log.pos\n tag kube-apiserver-audit\n \n @type json\n keep_time_key true\n time_key timestamp\n time_format %Y-%m-%dT%T.%L%Z\n \n \n\n ## Used for health check\n \n @type http\n port 9880\n bind 0.0.0.0\n \n\n ## sink all log to elasticsearch directly\n \n @type elasticsearch\n @log_level debug\n include_tag_key true\n host elasticsearch-logging\n port 9200\n user \"#{ENV['ES_USERNAME']}\"\n password \"#{ENV['ES_PASSWORD']}\"\n scheme \"#{ENV['ES_SCHEME']}\"\n ca_file /etc/fluent/certs/ca.crt\n logstash_prefix audit-k8s\n logstash_format true\n # Set the chunk limit the same as for fluentd-gcp.\n reload_on_failure true\n reconnect_on_error true\n request_timeout 120s\n \n @type file\n path /var/log/td-agent/buffer/elasticsearch\n chunk_limit_size 15MB\n total_limit_size 20GB\n flush_interval 3s\n flush_thread_count 8\n flush_mode interval\n # Never wait longer than 5 minutes between retries.\n retry_timeout 300\n retry_forever true\n \n \nkind: ConfigMap\nmetadata:\n labels:\n component: fluentd\n k8s-app: fluentd\n # \u65b0\u7684 fluentd \u4f7f\u7528\u8fd9\u4e2a configmap\n name: fluentd-audit\n namespace: kube-system\n")),(0,r.kt)("p",null,"\u6ce8\u610f\uff1a"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u65b0\u7684 fluentd daemonset \u53ea\u9700\u8981\u542f\u52a8\u5728 kube-oidc-proxy \u90e8\u7f72\u7684\u8282\u70b9\u4e0a\uff08\u901a\u8fc7\u8282\u70b9\u4eb2\u548c\u6027\u914d\u7f6e\uff09"),(0,r.kt)("li",{parentName:"ul"},"\u5c06\u4f7f\u7528\u7684 configmap \u4fee\u6539\u4e3a\u4e0a\u9762\u7684\uff0c\u540d\u5b57 fluentd-audit")),(0,r.kt)("p",null,"4\u3001\u6700\u7ec8\u5728 es \u91cc\u7684\u5ba1\u8ba1\u8bb0\u5f55\u683c\u5f0f\u5982\u4e0b\uff0c\u53ef\u4ee5\u901a\u8fc7\u67e5\u8be2 es \u6765\u83b7\u53d6\u5ba1\u8ba1\u65e5\u5fd7"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'{\n "_index": "logstash-2022.08.20",\n "_type": "fluentd",\n "_id": "iRzLu4IBqmHyli33qpUa",\n "_version": 1,\n "_score": null,\n "_source": {\n "kind": "Event",\n "apiVersion": "audit.k8s.io/v1",\n "level": "Metadata",\n "auditID": "7c0072aa-b48a-4772-bc52-42e50c0e65ce",\n "stage": "ResponseComplete",\n "requestURI": "/api/v1/namespaces/addon-system/configmaps/42c733ea.clastix.capsule.io",\n "verb": "update",\n "user": {\n "username": "system:serviceaccount:addon-system:default",\n "uid": "c8cb442d-853c-4a53-9c83-c7a1520095c4",\n "groups": [\n "system:serviceaccounts",\n "system:serviceaccounts:addon-system",\n "system:authenticated"\n ]\n },\n "sourceIPs": [\n "172.22.96.146"\n ],\n "userAgent": "manager/v0.0.0 (linux/amd64) kubernetes/$Format/leader-election",\n "objectRef": {\n "resource": "configmaps",\n "namespace": "addon-system",\n "name": "42c733ea.clastix.capsule.io",\n "uid": "c4542d46-0e07-41be-8420-f912a2918e51",\n "apiVersion": "v1",\n "resourceVersion": "236579314"\n },\n "responseStatus": {\n "metadata": {},\n "code": 200\n },\n "requestReceivedTimestamp": "2022-08-20T15:07:41.991582Z",\n "stageTimestamp": "2022-08-20T15:07:42.000098Z",\n "annotations": {\n "authentication.k8s.io/legacy-token": "system:serviceaccount:addon-system:default",\n "authorization.k8s.io/decision": "allow",\n "authorization.k8s.io/reason": "RBAC: allowed by ClusterRoleBinding \\"t7d.io.capsule-manager-rolebinding\\" of ClusterRole \\"cluster-admin\\" to ServiceAccount \\"default/addon-system\\""\n },\n "@timestamp": "2022-08-20T15:07:42.000871648+00:00",\n "tag": "kube-apiserver-audit"\n },\n "fields": {\n "requestReceivedTimestamp": [\n "2022-08-20T15:07:41.991Z"\n ],\n "stageTimestamp": [\n "2022-08-20T15:07:42.000Z"\n ],\n "@timestamp": [\n "2022-08-20T15:07:42.000Z"\n ]\n },\n "sort": [\n 1661008062000\n ]\n}\n')),(0,r.kt)("p",null,"5\u3001\u5982\u679c\u4e0d\u662f\u6807\u51c6\u7684 K8S \u8d44\u6e90\u7c7b\u578b\u7684\u5ba1\u8ba1\uff0c\u5e94\u7528/\u670d\u52a1\u53ef\u4ee5\u81ea\u5df1\u5c06\u5ba1\u8ba1\u5199\u5165\u5230 /var/log/apiserver/audit \u76ee\u5f55\uff0c\u6bd4\u5982\u547d\u540d\u4e3a service-audit.log\uff0c\u683c\u5f0f\u7b26\u5408 K8S audit \u6d88\u606f\u683c\u5f0f\u5373\u53ef\uff0c\u53c2\u8003\u4ee5\u4e0b\u5355\u6761\u5ba1\u8ba1\u8bb0\u5f55\u7684\u683c\u5f0f\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'{"kind":"Event","apiVersion":"audit.k8s.io/v1","level":"Metadata","auditID":"8d8d8163-54e8-457d-94f6-7851e887f3cf","stage":"ResponseComplete","requestURI":"/api/v1/namespaces/u4a-system/secrets/sh.helm.release.v1.u4a-system.v1","verb":"delete","user":{"username":"admin","groups":["system:nodes","iam.tenxcloud.com"]},"sourceIPs":["172.16.31.254"],"userAgent":"helm/v0.0.0 (darwin/amd64) kubernetes/$Format","objectRef":{"resource":"secrets","namespace":"u4a-system","name":"sh.helm.release.v1.u4a-system.v1","apiVersion":"v1"},"responseStatus":{"metadata":{},"code":200},"requestReceivedTimestamp":"2022-08-24T05:36:36.524760Z","stageTimestamp":"2022-08-24T05:36:36.529890Z"}\n')),(0,r.kt)("p",null,"\u5176\u4e2d\uff0c\u91cd\u70b9\u5173\u6ce8\u7684\u6570\u636e\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"1\uff09kind\uff0c\u7edf\u4e00\u7528 \u201dEvent\u201c\uff0c\u67e5\u8be2\u53ea\u67e5\u8be2 Event \u7684\u5ba1\u8ba1\n\n2\uff09stage\uff1a\u76ee\u524d\u90fd\u662f\u201cResponseComplete\u201c\uff0c\u53ea\u8bb0\u5f55\u4e86\u54cd\u5e94\u7ed3\u675f\u7684\u65f6\u95f4\uff0c\u6ca1\u8bb0\u5f55\u8bf7\u6c42\u6536\u5230\u7684\u65f6\u95f4\n\n3\uff09verb\uff1a\u589e\u5220\u6539\u67e5\n\n4\uff09user.username\uff0c\u64cd\u4f5c\u4eba\n\n5\uff09sourceIPs\uff1a\u5ba2\u6237\u7aef IP\n\n6\uff09objectRef.resource\uff1a\u64cd\u4f5c\u7684\u8d44\u6e90\n\n7\uff09objectRef.namespace\uff1a\u64cd\u4f5c\u7684\u9879\u76ee/namespace\n\n8\uff09responseStatus.code\uff1a\u8fd4\u56de\u4ee3\u7801\n\n9\uff09requestReceivedTimestamp\uff1a\u8bf7\u6c42\u5230\u8fbe\u65f6\u95f4\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/791926a5.fe0ced91.js b/assets/js/791926a5.fe0ced91.js deleted file mode 100644 index b34328a7c..000000000 --- a/assets/js/791926a5.fe0ced91.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6741],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var u=a.createContext({}),s=function(e){var t=a.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return a.createElement(u.Provider,{value:t},e.children)},b="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},i=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,u=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),b=s(n),i=r,k=b["".concat(u,".").concat(i)]||b[i]||m[i]||l;return n?a.createElement(k,o(o({ref:t},c),{},{components:n})):a.createElement(k,o({ref:t},c))}));function k(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=i;var p={};for(var u in t)hasOwnProperty.call(t,u)&&(p[u]=t[u]);p.originalType=e,p[b]="string"==typeof e?e:r,o[1]=p;for(var s=2;s{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>p,toc:()=>s});var a=n(7462),r=(n(7294),n(3905));const l={sidebar_position:2},o="\u5b89\u88c5\u5185\u6838",p={unversionedId:"quick-start/core_quickstart",id:"quick-start/core_quickstart",title:"\u5b89\u88c5\u5185\u6838",description:"\u5b89\u88c5\u524d\u9700\u5b8c\u6210\u9884\u5148\u51c6\u5907\u3002",source:"@site/docs/quick-start/core_quickstart.md",sourceDirName:"quick-start",slug:"/quick-start/core_quickstart",permalink:"/website/docs/quick-start/core_quickstart",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"\u9884\u5148\u51c6\u5907",permalink:"/website/docs/quick-start/prerequisite"},next:{title:"\u5b89\u88c5\u5e95\u5ea7",permalink:"/website/docs/quick-start/buildingbase_quickstart"}},u={},s=[{value:"\u5b89\u88c5",id:"\u5b89\u88c5",level:2},{value:"\u5feb\u901f\u4f53\u9a8c",id:"\u5feb\u901f\u4f53\u9a8c",level:2},{value:"\u90e8\u7f72\u4e00\u4e2a\u79c1\u6709\u4ed3\u5e93",id:"\u90e8\u7f72\u4e00\u4e2a\u79c1\u6709\u4ed3\u5e93",level:2}],c={toc:s},b="wrapper";function m(e){let{components:t,...n}=e;return(0,r.kt)(b,(0,a.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u5b89\u88c5\u5185\u6838"},"\u5b89\u88c5\u5185\u6838"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"\u5b89\u88c5\u524d\u9700\u5b8c\u6210",(0,r.kt)("a",{parentName:"p",href:"./prerequisite"},"\u9884\u5148\u51c6\u5907"),"\u3002")),(0,r.kt)("h2",{id:"\u5b89\u88c5"},"\u5b89\u88c5"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"Kubebb\u5b98\u65b9\u63d0\u4f9b\u4e86helm\u4ed3\u5e93\uff0c\u65b9\u4fbf\u7528\u6237\u5b89\u88c5: ",(0,r.kt)("a",{parentName:"p",href:"https://kubebb.github.io/components/"},"https://kubebb.github.io/components/"))),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u6dfb\u52a0helm\u4ed3\u5e93")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"helm repo add kubebb https://kubebb.github.io/components/\nhelm repo update\n")),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"\u521b\u5efa\u547d\u540d\u7a7a\u95f4")),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"\u8bf7\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u4fee\u6539\u547d\u540d\u7a7a\u95f4\u540d\u79f0")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl create namespace kubebb-system\n")),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},"\u5b89\u88c5")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"helm install -nkubebb-system kubebb-core kubebb/kubebb-core\n")),(0,r.kt)("ol",{start:4},(0,r.kt)("li",{parentName:"ol"},"\u67e5\u770b\u5b89\u88c5\u72b6\u6001")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get pods -nkubebb-system \n")),(0,r.kt)("p",null,"\u5982\u679c\u4e00\u5207\u6b63\u5e38\uff0c\u8f93\u5165\u5982\u4e0b:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"NAME READY STATUS RESTARTS AGE\nkubebb-core-6bd7c5f679-742mq 1/1 Running 0 21h\n")),(0,r.kt)("h2",{id:"\u5feb\u901f\u4f53\u9a8c"},"\u5feb\u901f\u4f53\u9a8c"),(0,r.kt)("p",null,"\u5185\u6838\u5b89\u88c5\u5b8c\u6210\u540e\u53ef\u901a\u8fc7",(0,r.kt)("a",{parentName:"p",href:"https://github.com/kubebb/components"},"\u5b98\u65b9\u7ec4\u4ef6\u4ed3\u5e93"),"\u5feb\u901f\u4f53\u9a8c\u7ec4\u4ef6\u5316\u7684\u90e8\u7f72:"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},(0,r.kt)("strong",{parentName:"p"},"kubebb"),"\u4e3a",(0,r.kt)("a",{parentName:"p",href:"https://github.com/kubebb/components"},"\u5b98\u65b9\u7ec4\u4ef6\u4ed3\u5e93"),",\u5185\u6838\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u9ed8\u8ba4\u6dfb\u52a0,\u63d0\u4f9b\u591a\u4e2a\u8ba4\u8bc1\u4ed3\u5e93\u3001\u7ec4\u4ef6\u548c\u7ec4\u4ef6\u5e94\u7528.")),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u67e5\u770b\u4ed3\u5e93\u5217\u8868:")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get repository -nkubebb-system\n")),(0,r.kt)("p",null,"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u81f3\u5c11\u5305\u542b\u4ed3\u5e93",(0,r.kt)("strong",{parentName:"p"},"kubebb")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"(base) \u279c charts git:(dev) kubectl get repository -nkubebb-system\nNAME AGE\nkubebb 14m\n")),(0,r.kt)("p",null,"\u5982\u679c\u6ca1\u6709\u770b\u5230",(0,r.kt)("strong",{parentName:"p"},"kubebb"),",\u53ef\u624b\u52a8\u6dfb\u52a0:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl apply -f https://raw.githubusercontent.com/kubebb/components/main/repos/repository_kubebb.yaml\n")),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"\u83b7\u53d6\u5b98\u65b9\u4ed3\u5e93\u4e2d\u7684\u7ec4\u4ef6")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get components -nkubebb-system -l kubebb.component.repository=kubebb\n")),(0,r.kt)("p",null,"\u5982\u679c\u4e00\u5207\u6b63\u5e38\uff0c\u8f93\u51fa\u5982\u4e0b:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"NAME AGE\nkubebb.bc-apis 135m\nkubebb.bc-depository 135m\nkubebb.bc-explorer 135m\nkubebb.cluster-component 135m\nkubebb.fabric-operator 135m\nkubebb.ingress-nginx 135m\nkubebb.kubebb 135m\nkubebb.kubebb-core 135m\nkubebb.minio 135m\nkubebb.tekton-operator 135m\nkubebb.u4a-component 135m\nkubebb.weaviate 135m\n")),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},"\u90e8\u7f72\u4e00\u4e2a\u7ec4\u4ef6")),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"\u4ee5\u90e8\u7f72",(0,r.kt)("inlineCode",{parentName:"p"},"kubebb.minio"),"\u4e3a\u4f8b")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl apply -f https://raw.githubusercontent.com/kubebb/components/main/examples/minio/componentplan.yaml\n")),(0,r.kt)("p",null,"\u67e5\u770b\u7ec4\u4ef6\u90e8\u7f72\u72b6\u6001:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get componentplan my-minio -oyaml\n")),(0,r.kt)("p",null,"\u67e5\u770b\u7ec4\u4ef6Pod\u72b6\u6001"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get pods -l core.kubebb.k8s.com.cn/componentplan=my-minio\n")),(0,r.kt)("p",null,"\u5982\u679c\u4e00\u5207\u6b63\u5e38\uff0c\u8f93\u51fa\u5982\u4e0b:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"NAME READY STATUS RESTARTS AGE\nmy-minio-0 1/1 Running 0 42h\nmy-minio-1 1/1 Running 0 42h\nmy-minio-2 1/1 Running 0 42h\n")),(0,r.kt)("h2",{id:"\u90e8\u7f72\u4e00\u4e2a\u79c1\u6709\u4ed3\u5e93"},"\u90e8\u7f72\u4e00\u4e2a\u79c1\u6709\u4ed3\u5e93"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u5728\u5b98\u65b9\u4ed3\u5e93\u4e2d\u90e8\u7f72chartmuseum")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl apply -f https://raw.githubusercontent.com/kubebb/components/main/examples/chartmuseum/componentplan.yaml\n")),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"\u6dfb\u52a0\u4ed3\u5e93")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# repository_chartmuseum.yaml\napiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: Repository\nmetadata:\n name: chartmuseum\n namespace: kubebb-system\nspec:\n url: http://chartmuseum.kubebb-system.svc.cluster.local:8080\n pullStategy:\n intervalSeconds: 120\n retry: 5\n")),(0,r.kt)("p",null,"\u521b\u5efa\u4ed3\u5e93"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl apply -f repository_chartmuseum.yaml \n")),(0,r.kt)("p",null,"\u6267\u884c\u7ed3\u679c"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get repository -nkubebb-system\nNAME AGE\nchartmuseum 4m41s\nkubebb 15h\n")),(0,r.kt)("p",null,"\u7aef\u53e3\u66b4\u9732"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl port-forward service/chartmuseum 8080:8080 -nkubebb-system\n")),(0,r.kt)("p",null,"\u4e0a\u4f20\u81ea\u5b9a\u4e49chart"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},'helm create mychart\ncd mychart\nhelm package .\ncurl --data-binary "@mychart-0.1.0.tgz" http://localhost:8080/api/charts\n')),(0,r.kt)("p",null,"\u4ece\u79c1\u6709\u4ed3\u5e93\u4e2d\u67e5\u770b"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"kubectl get component -l kubebb.component.repository=chartmuseum -nkubebb-system\nNAME AGE\nchartmuseum.mychart 4m27s\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7b0c2381.a8765fe9.js b/assets/js/7b0c2381.a8765fe9.js new file mode 100644 index 000000000..1993b5074 --- /dev/null +++ b/assets/js/7b0c2381.a8765fe9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8101],{3905:(e,t,i)=>{i.d(t,{Zo:()=>s,kt:()=>m});var n=i(7294);function o(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function a(e){for(var t=1;t=0||(o[i]=e[i]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i])}return o}var c=n.createContext({}),u=function(e){var t=n.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},s=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},k=n.forwardRef((function(e,t){var i=e.components,o=e.mdxType,r=e.originalType,c=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),p=u(i),k=o,m=p["".concat(c,".").concat(k)]||p[k]||d[k]||r;return i?n.createElement(m,a(a({ref:t},s),{},{components:i})):n.createElement(m,a({ref:t},s))}));function m(e,t){var i=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=i.length,a=new Array(r);a[0]=k;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:o,a[1]=l;for(var u=2;u{i.r(t),i.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>l,toc:()=>u});var n=i(7462),o=(i(7294),i(3905));const r={sidebar_position:5},a="\u4f7f\u7528 kubelogin \u5de5\u5177",l={unversionedId:"develop-guid/component-market/kubelogin",id:"develop-guid/component-market/kubelogin",title:"\u4f7f\u7528 kubelogin \u5de5\u5177",description:"Here is the steps about how to install kubelogin to integrate with OIDC server for kubectl tool, so you can do authentication with Kubernetes.",source:"@site/docs/develop-guid/component-market/kubelogin.md",sourceDirName:"develop-guid/component-market",slug:"/develop-guid/component-market/kubelogin",permalink:"/website/docs/develop-guid/component-market/kubelogin",draft:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"\u533a\u5757\u94fe - \u8054\u76df\u94fe",permalink:"/website/docs/develop-guid/component-market/blockchain"},next:{title:"\u5e38\u89c1\u95ee\u9898",permalink:"/website/docs/FAQ"}},c={},u=[{value:"Install kubelogin",id:"install-kubelogin",level:3},{value:"Prepare kubeconfig file",id:"prepare-kubeconfig-file",level:3},{value:"Get id token from cached file",id:"get-id-token-from-cached-file",level:3},{value:"Get id token using username/password",id:"get-id-token-using-usernamepassword",level:3},{value:"Logout",id:"logout",level:3}],s={toc:u},p="wrapper";function d(e){let{components:t,...i}=e;return(0,o.kt)(p,(0,n.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"\u4f7f\u7528-kubelogin-\u5de5\u5177"},"\u4f7f\u7528 kubelogin \u5de5\u5177"),(0,o.kt)("p",null,"Here is the steps about how to install kubelogin to integrate with OIDC server for kubectl tool, so you can do authentication with Kubernetes."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Refer to ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/int128/kubelogin"},"kubelogin")," for details."),(0,o.kt)("li",{parentName:"ul"},"Prerequisite\nInstall u4a-component and it'll provide the account, authentication, authorization and audit funcationality built on Kubernetes.")),(0,o.kt)("h3",{id:"install-kubelogin"},"Install kubelogin"),(0,o.kt)("p",null,"Get the binary here ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/int128/kubelogin/releases"},"download")," and download the one matching your OS."),(0,o.kt)("p",null,"Then you need to put the kubelogin binary on your path under the name kubectl-oidc_login so that the kubectl plugin mechanism can find it when you invoke kubectl oidc-login."),(0,o.kt)("h3",{id:"prepare-kubeconfig-file"},"Prepare kubeconfig file"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Backup your original config file under ~/.kube/config and create a new one.")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"$ cd ~/.kube\n$ cp config config_backup\n$ kubectl config set-credentials oidc \\\n --exec-api-version=client.authentication.k8s.io/v1beta1 \\\n --exec-command=kubectl \\\n --exec-arg=oidc-login \\\n --exec-arg=get-token \\\n --exec-arg=--oidc-extra-scope=email \\\n --exec-arg=--oidc-extra-scope=profile \\\n --exec-arg=--oidc-issuer-url=https://portal.172.22.96.209.nip.io/oidc \\\n --exec-arg=--oidc-client-id=bff-client \\\n --exec-arg=--oidc-client-secret=61324af0-1234-4f61-b110-ef57013267d6 \\\n --exec-arg=--insecure-skip-tls-verify\n")),(0,o.kt)("ol",{start:2},(0,o.kt)("li",{parentName:"ol"},"Point the cluster to kube-oidc-server or k8s-apiserver if oidc is enabled.")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"- cluster:\n certificate-authority-data: ....\n server: https://172.22.96.133 # Update this value\n name: cluster-name\n")),(0,o.kt)("ol",{start:3},(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Add ",(0,o.kt)("inlineCode",{parentName:"p"},"http://localhost:8000")," as a valid redirect URL of your OIDC server, so it can redirect to local server after successful login.")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Switch current context to oidc"))),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"$ kubectl config set-context --current --user=oidc\n")),(0,o.kt)("p",null,"Run ",(0,o.kt)("inlineCode",{parentName:"p"},"kubectl get nodes"),", kubectl executes kubelogin before calling the Kubernetes APIs. Kubelogin automatically opens the browser, and you can log in to the provider."),(0,o.kt)("p",null,"After successful login, you'll get a ",(0,o.kt)("inlineCode",{parentName:"p"},"Authenticated")," response."),(0,o.kt)("ol",{start:5},(0,o.kt)("li",{parentName:"ol"},"If you get ",(0,o.kt)("inlineCode",{parentName:"li"},"Unable to connect to the server: x509: certificate signed by unknown authority")," error after ",(0,o.kt)("inlineCode",{parentName:"li"},"kubectl get nodes"),". Remove certificate-authority-data, and add insecure-skip-tls-verify as true.")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"- cluster:\n # certificate-authority-data: ....\n server: https://172.22.96.133\n insecure-skip-tls-verify: true # Add it here\n name: cluster-name\n")),(0,o.kt)("p",null,"You can also use a valid certificate data, for example:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"export CLUSTER_CA=$(kubectl get secret -n u4a-system oidc-proxy-cert-tls -o jsonpath='{.data.ca\\.crt}')\n# Use the data from CLUSTER_CA and set to certificate-authority-data\n")),(0,o.kt)("p",null,"Then you can run any kubectl using the logged in user, Kubernetes RBAC and audit will take effect for the user."),(0,o.kt)("h3",{id:"get-id-token-from-cached-file"},"Get id token from cached file"),(0,o.kt)("p",null,"The id_token will be cached in ~/.kube/cache/oidc-login/\\",", you can use ",(0,o.kt)("inlineCode",{parentName:"p"},"cat")," to get the content and token from this file. For example:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},'{"id_token":"eyJhbGciOiJSUzI1NiIsImtpZCI6IjBkMzEyM2U1MWIxN2IzZTNlNDYzNjgxZTMzZTFkOTNkM2RiY2IwZDkifQ.eyJpc3MiOiJodHRwczovL3BvcnRhbC4xNzIuMjIuOTYuMjA5Lm5pcC5pby9vaWRjIiwic3ViIjoiQ2dWaFpHMXBiaElHYXpoelkzSmsiLCJhdWQiOiJiZmYtY2xpZW50IiwiZXhwIjoxNjc0MzU3OTU0LCJpYXQiOjE2NzQyNzE1NTQsIm5vbmNlIjoiVHhJVlE4VlFINW9PTGtLeGV1ekk3VWp3VVU0WUYyOEQ1N18xLWVpVWEtVSIsImF0X2hhc2giOiJOamZKZWJ1Ry1uUlVlWDJNY2dfZzVRIiwiY19oYXNoIjoiQWVQdUtsTmN5RjgyTy1xWFFqUzEwdyIsImVtYWlsIjoiYWRtaW5AdGVueGNsb3VkLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiYWRtaW4iLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhZG1pbiIsInBob25lIjoiIiwidXNlcmlkIjoiYWRtaW4ifQ.YtmRZbS7-B0s0vVh9myH1FYcWuKoKNNYkPZQ5asbrQE2n8eC7w74n8D7pvM6v44kvBnp27hNOeo06EK4leNR2Inb2UJtd2QBS1L9i4A3V_vm06o4DkvqfyNcbD7-hL6ES0XkzIKimG3WMMJIznvuA71W_88t77U7jC7wvtKbT7k1KZWgOV6VappWlz7uecuBSQahoCku5AO-s25H1O-FbodOYtL8-ju0sqiHrgmbNaV-f6Wuvvk9XkquAe_dztqWCJ0axfUW7u4J-M947mlR1JlWwbhm-nQXgvugyMVh3FjFOjwi7jR3BA3Me-iuS_XPNSWx-DB0dfsCfErCJ9DvBA"}\n')),(0,o.kt)("h3",{id:"get-id-token-using-usernamepassword"},"Get id token using username/password"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Enable passwordConnector in the oidc-server configuration")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"# kubectl edit cm oidc-server -n u4a-system\n oauth2:\n # Enable this one\n passwordConnector: k8scrd\n skipApprovalScreen: true\n")),(0,o.kt)("ol",{start:2},(0,o.kt)("li",{parentName:"ol"},"Get id token using kubelogin or curl")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"kubelogin")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},'kubelogin get-token --oidc-issuer-url=https://portal.172.22.96.209.nip.io/oidc --oidc-client-id=bff-client --oidc-client-secret=61324af0-1234-4f61-b110-ef57013267d6 --insecure-skip-tls-verify --grant-type=password --username=admin --password=admiN\\$123\n\n# here is the response, get the token from the json\n{"kind":"ExecCredential","apiVersion":"client.authentication.k8s.io/v1beta1","spec":{"interactive":false},"status":{"expirationTimestamp":"2023-02-11T04:37:32Z","token":"eyJhbGciOiJSUzI1NiIsImtpZCI6ImY2ZjFjMjFkNzFhOGEyYmU3ZTg2YjQyYWIwOTYwY2MxNzU3NjdiM2MifQ.eyJpc3MiOiJodHRwczovL3BvcnRhbC4xNzIuMjIuOTYuMjA5Lm5pcC5pby9vaWRjIiwic3ViIjoiQ2dWaFpHMXBiaElHYXpoelkzSmsiLCJhdWQiOiJiZmYtY2xpZW50IiwiZXhwIjoxNjc2MDkwMjUyLCJpYXQiOjE2NzYwMDM4NTIsImF0X2hhc2giOiJyLWtsUnBQcEd3U0I5TFQyelVQSWtRIiwicGhvbmUiOiIifQ.tFOmGN1w79I_s5pWZZK4zEEHwCyuJRwkNtacmxVcCY-Jms-JOzXUJTxnNm8XzIBC3cZqt5U6oNXMuk68MHq0v3g2tQKJeAwV1aojJrIIp5QHefXMUjl_hTaFe1tRgwsvZqBWhExLi1yaTSUfjmP_SZEb23A0R_AWvc7ClO7sbuKQlkPG_gi2TPCBOeTx0UmlQ14w6U3dIJhR57hXfttdSr2nRqKma8bp_jAiUiWaKLSWSyc3tQsxWl7LeAAbRM3URx-3winVIEPEpUgwIBXnrr-ba9BZwZoD5NGytOGw4xA80eGDmmMIG8U2QarJKsZErpzS7EWbiPBLgS2_Wg1eBA"}}\n')),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"curl")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},'curl -k -XPOST https://portal.172.22.96.209.nip.io/oidc/token -H "Authorization: Basic " -H "Content-Type: application/x-www-form-urlencoded" --data \'grant_type=password&password=password&scope=openid&username=username\'\n\n# here is the response, and get id_token from the json\n{"access_token":"eyJhbGciOiJSUzI1NiIsImtpZCI6ImY2ZjFjMjFkNzFhOGEyYmU3ZTg2YjQyYWIwOTYwY2MxNzU3NjdiM2MifQ.eyJpc3MiOiJodHRwczovL3BvcnRhbC4xNzIuMjIuOTYuMjA5Lm5pcC5pby9vaWRjIiwic3ViIjoiQ2dWaFpHMXBiaElHYXpoelkzSmsiLCJhdWQiOiJiZmYtY2xpZW50IiwiZXhwIjoxNjc2MDkyOTk0LCJpYXQiOjE2NzYwMDY1OTQsImF0X2hhc2giOiJtM2xsQWprUXdlQnhJbUJlQkgxRG1RIiwicGhvbmUiOiIifQ.iel5l_mzlVf2LjbMqzqXb3sqb7L195a-fY4Aaon2_CVn1lBMzOf2qDYbtVF3KhGHxNlaKRxig63uCDfyts84BMD5-Uaz_x4_mq5QaMVYVYEUw9NWsLP-jQ0bTSZE7MZKlxz_a3AGW_fXwW0Y02dqemugBfC3IagBhroYI2PSTKcNCCQz2aao-ZSQ5-rysKSyo0VPDtcY_K8ikpDChLM9GhUKzbdIvctO6mGBOOKHRkiCAbRegOCFhJ6-0O4k6b-m3rXyJkQAIBfesOPIAFxhQQhg3y9wDEVxbBTZ99fwfvfIuSxN_vsITKCsqpRr7t-30jqReIKsYktyzZ15jiJhKg","token_type":"bearer","expires_in":86399,"id_token":"eyJhbGciOiJSUzI1NiIsImtpZCI6ImY2ZjFjMjFkNzFhOGEyYmU3ZTg2YjQyYWIwOTYwY2MxNzU3NjdiM2MifQ.eyJpc3MiOiJodHRwczovL3BvcnRhbC4xNzIuMjIuOTYuMjA5Lm5pcC5pby9vaWRjIiwic3ViIjoiQ2dWaFpHMXBiaElHYXpoelkzSmsiLCJhdWQiOiJiZmYtY2xpZW50IiwiZXhwIjoxNjc2MDkyOTk0LCJpYXQiOjE2NzYwMDY1OTQsImF0X2hhc2giOiJRT3NNWGdSeDRYaUJJTVZwSElXeUlRIiwicGhvbmUiOiIifQ.ZDU7AouftfpLAs2SDE3Kb86ggVyDEwrgA3jtUxitKUQwKqosjWiaEEGc3w824FAC3eDZhFr1w5uXT6R30O2s0DPzPb0nesDN8wa2ZscU9ESjZrKAAgpgM7uE1vU41mi7GfdZEUHabx83XFvu69KvmA9OKnqaSdyi3-aPYHyBP5GfNYoQ-mteCBsAbRF8l6fe1VREIYV3sQrBC8b9s1Ony4F8YFWgFE4G_1gxV-0qz8IxgzhLGUgehuwsHTUjMLvyGgTiFrFvrPsftEuEGtOQbKswngWQGlYWSsUIWb79Fdk_-wD08fyM9YUGJyb0Bg_HO2M95CFsSASB4HDO4QHOXw"}\n')),(0,o.kt)("h3",{id:"logout"},"Logout"),(0,o.kt)("p",null,"You can remove the local cache files under ",(0,o.kt)("inlineCode",{parentName:"p"},"~/.kube/cache/oidc-login/")," to logout current user."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/7c27091d.de30cb04.js b/assets/js/7c27091d.de30cb04.js new file mode 100644 index 000000000..089439e2d --- /dev/null +++ b/assets/js/7c27091d.de30cb04.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2250],{3905:(e,t,r)=>{r.d(t,{Zo:()=>c,kt:()=>b});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var p=n.createContext({}),u=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},c=function(e){var t=u(e.components);return n.createElement(p.Provider,{value:t},e.children)},s="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,a=e.originalType,p=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),s=u(r),m=i,b=s["".concat(p,".").concat(m)]||s[m]||d[m]||a;return r?n.createElement(b,l(l({ref:t},c),{},{components:r})):n.createElement(b,l({ref:t},c))}));function b(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=r.length,l=new Array(a);l[0]=m;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[s]="string"==typeof e?e:i,l[1]=o;for(var u=2;u{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>d,frontMatter:()=>a,metadata:()=>o,toc:()=>u});var n=r(7462),i=(r(7294),r(3905));const a={sidebar_position:1},l="\u4ecb\u7ecd",o={unversionedId:"develop-guid/building-base/intro",id:"develop-guid/building-base/intro",title:"\u4ecb\u7ecd",description:"\u6280\u672f\u7ec4\u4ef6",source:"@site/docs/develop-guid/building-base/intro.md",sourceDirName:"develop-guid/building-base",slug:"/develop-guid/building-base/intro",permalink:"/website/docs/develop-guid/building-base/intro",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"\u5e95\u5ea7Kit",permalink:"/website/docs/category/\u5e95\u5ea7kit"},next:{title:"\u6dfb\u52a0\u96c6\u7fa4",permalink:"/website/docs/develop-guid/building-base/add-cluster"}},p={},u=[{value:"\u6280\u672f\u7ec4\u4ef6",id:"\u6280\u672f\u7ec4\u4ef6",level:2},{value:"\u4f7f\u7528\u57df\u540d\u8bbf\u95ee",id:"\u4f7f\u7528\u57df\u540d\u8bbf\u95ee",level:2}],c={toc:u},s="wrapper";function d(e){let{components:t,...a}=e;return(0,i.kt)(s,(0,n.Z)({},c,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"\u4ecb\u7ecd"},"\u4ecb\u7ecd"),(0,i.kt)("h2",{id:"\u6280\u672f\u7ec4\u4ef6"},"\u6280\u672f\u7ec4\u4ef6"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"u4a-component")," \u63d0\u4f9b\u8d26\u53f7\u3001\u8ba4\u8bc1\u3001\u6743\u9650\u53ca\u5ba1\u8ba1\u7ba1\u7406\u529f\u80fd\uff0c\u5305\u542b\u4ee5\u4e0b\u4e3b\u8981\u8d44\u6599",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://docs.nginx.com/nginx-ingress-controller/"},"nginx ingress")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://cert-manager.io/"},"cert-manager")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/dexidp/dex"},"\u57fa\u4e8e dex \u6784\u5efa")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/clastix/capsule"},"\u591a\u79df\u6237\u57fa\u4e8e capsule \u6784\u5efa")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/jetstack/kube-oidc-proxy"},"oidc-proxy \u57fa\u4e8e kube-oidc-proxy \u6784\u5efa"))))),(0,i.kt)("p",null,"\u5e73\u53f0\u5f00\u53d1\u91c7\u53d6\u524d\u540e\u7aef\u5206\u79bb\uff0c\u4ee5 K8S \u4e3a\u6838\u5fc3\u7684\u5f00\u53d1\u6846\u67b6\uff0c\u9075\u5faa K8S \u7684\u6269\u5c55\u673a\u5236\u53ca API \u89c4\u8303\uff0c\u6574\u4f53\u5f00\u53d1\u67b6\u6784\u7684\u57fa\u672c\u903b\u8f91\u5982\u4e0b\u56fe\u6240\u793a\uff1a\n",(0,i.kt)("img",{alt:"\u56fe 2",src:r(2863).Z,width:"1089",height:"724"})," "),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"\u6240\u6709\u7ec4\u4ef6\u7684\u5f00\u53d1\u3001\u6269\u5c55\u7684\u8ba4\u8bc1\u90fd\u901a\u8fc7\u7edf\u4e00\u8ba4\u8bc1\u4e2d\u5fc3\u8fdb\u884c\u8ba4\u8bc1"),(0,i.kt)("li",{parentName:"ol"},"\u8ba4\u8bc1\u7531\u5fae\u524d\u7aef\u7684\u4e3b\u6846\u67b6 DockApp \u7edf\u4e00\u8fdb\u884c\uff0c\u5176\u4ed6\u5fae\u524d\u7aef\u7684\u6269\u5c55\u4e0d\u9700\u8981\u5355\u72ec\u652f\u6301\u540c\u8ba4\u8bc1\u4e2d\u5fc3\u7684\u5904\u7406"),(0,i.kt)("li",{parentName:"ol"},"\u5f00\u53d1\u67b6\u6784\u4e0a\u6574\u4f53\u53ef\u4ee5\u6309\u7167\u4e09\u5c42\u6765\u770b")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"\u7b2c\u4e00\u5c42\uff0c\u524d\u7aef\u91c7\u7528\u5fae\u524d\u7aef\u67b6\u6784\uff0c\u5c3d\u91cf\u91c7\u7528\u4f4e\u4ee3\u7801\u65b9\u5f0f\u8fdb\u884c\u5f00\u53d1\uff0c\u63d0\u9ad8\u4ee3\u7801\u81ea\u52a8\u5316\u751f\u6210\u6bd4\u4f8b"),(0,i.kt)("li",{parentName:"ul"},"\u7b2c\u4e8c\u5c42\uff0c\u6839\u636e\u4e1a\u52a1\u9700\u6c42\u589e\u52a0 OpenAPI\uff0c\u5f62\u6210\u7edf\u4e00\u7684 BFF \u5c42\uff0c\u5bf9 API \u8fdb\u884c\u805a\u5408\uff0c\u63d0\u4f9b\u524d\u7aef\u6240\u9700\u8981\u7684\u4e1a\u52a1\u573a\u666f\u6570\u636e"),(0,i.kt)("li",{parentName:"ul"},"\u540e\u7aef\u91c7\u7528 CRD + controller \u7684 Operator \u6a21\u5f0f\u8fdb\u884c\u5f00\u53d1\uff0c\u5f62\u6210\u6570\u636e\u9a71\u52a8\u7684\u6d41\u7a0b\u5f00\u53d1\u6a21\u5f0f")),(0,i.kt)("ol",{start:4},(0,i.kt)("li",{parentName:"ol"},"\u5bf9\u5916 API \u4e3b\u8981\u5305\u62ec\u4e24\u90e8\u5206\uff1a")),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"\u4ece BFF \u5c42\u63d0\u4f9b\u7684 OpenAPI"),(0,i.kt)("li",{parentName:"ul"},"\u4ece K8S \u5c42\u63d0\u4f9b\u7684\u8d44\u6e90 API")),(0,i.kt)("h2",{id:"\u4f7f\u7528\u57df\u540d\u8bbf\u95ee"},"\u4f7f\u7528\u57df\u540d\u8bbf\u95ee"),(0,i.kt)("p",null,"\u5728\u4ee3\u7406\u670d\u52a1\u5668/\u8d1f\u8f7d\u5747\u8861\u4e0a\uff0c\u4f7f\u7528 nip.io \u6765\u652f\u6301 http/https \u57df\u540d\u7684\u7ed1\u5b9a\u65b9\u5f0f\uff0c\u4fbf\u4e8e\u9ed8\u8ba4\u7edf\u4e00\u91c7\u7528\u57df\u540d\u8fdb\u884c\u914d\u7f6e\u3002"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"\u4f7f\u7528 nip.io \u8fdb\u884c\u8bbf\u95ee ",(0,i.kt)("inlineCode",{parentName:"li"},"http://.nip.io\uff0c\u6bd4\u5982 http://192.168.1.123.nip.io"))))}d.isMDXComponent=!0},2863:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/dev_arch-8fbc2a4fd6aeaaa23274c226eb811799.png"}}]); \ No newline at end of file diff --git a/assets/js/7d3a95df.9ba6ebc5.js b/assets/js/7d3a95df.9ba6ebc5.js new file mode 100644 index 000000000..cacada36e --- /dev/null +++ b/assets/js/7d3a95df.9ba6ebc5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7215],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>k});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),p=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=p(e.components);return n.createElement(c.Provider,{value:t},e.children)},u="mdxType",b={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),u=p(r),m=a,k=u["".concat(c,".").concat(m)]||u[m]||b[m]||l;return r?n.createElement(k,o(o({ref:t},s),{},{components:r})):n.createElement(k,o({ref:t},s))}));function k(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=m;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[u]="string"==typeof e?e:a,o[1]=i;for(var p=2;p{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>b,frontMatter:()=>l,metadata:()=>i,toc:()=>p});var n=r(7462),a=(r(7294),r(3905));const l={sidebar_position:4},o="\u53d1\u5e03 HelloWorld \u7ec4\u4ef6",i={unversionedId:"quick-start/quick-experience",id:"quick-start/quick-experience",title:"\u53d1\u5e03 HelloWorld \u7ec4\u4ef6",description:"\u5df2\u5b8c\u6210 Kubebb \u7684\u5b89\u88c5\uff0c\u53c2\u8003\u5b89\u88c5 Kubebb",source:"@site/docs/quick-start/quick-experience.md",sourceDirName:"quick-start",slug:"/quick-start/quick-experience",permalink:"/website/docs/quick-start/quick-experience",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"\u5b89\u88c5 Kubebb",permalink:"/website/docs/quick-start/quick-install"},next:{title:"\u7ec4\u4ef6\u7ba1\u7406",permalink:"/website/docs/user-guid/component_anagement"}},c={},p=[],s={toc:p},u="wrapper";function b(e){let{components:t,...l}=e;return(0,a.kt)(u,(0,n.Z)({},s,l,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u53d1\u5e03-helloworld-\u7ec4\u4ef6"},"\u53d1\u5e03 HelloWorld \u7ec4\u4ef6"),(0,a.kt)("admonition",{title:"\u524d\u63d0\u6761\u4ef6",type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u5df2\u5b8c\u6210 Kubebb \u7684\u5b89\u88c5\uff0c\u53c2\u8003",(0,a.kt)("a",{parentName:"p",href:"/website/docs/quick-start/quick-install"},"\u5b89\u88c5 Kubebb"))),(0,a.kt)("p",null,"Kubebb \u5b89\u88c5\u5b8c\u6210\u540e\uff0c\u53ef\u901a\u8fc7",(0,a.kt)("a",{parentName:"p",href:"https://github.com/kubebb/components"},"\u5b98\u65b9\u7ec4\u4ef6\u4ed3\u5e93"),"\u5feb\u901f\u4f53\u9a8c\u7ec4\u4ef6\u7684\u90e8\u7f72\u548c\u4f7f\u7528\u3002\u672c\u7ae0\u8282\u4e3b\u8981\u4ee5 HelloWorld \u7ec4\u4ef6\u4e3a\u4f8b\uff0c\u6f14\u793a\u7ec4\u4ef6\u53d1\u5e03\u3001\u5b89\u88c5\u3001\u4f7f\u7528\u6d41\u7a0b\u3002"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"kubebb \u4e3a\u5185\u7f6e\u7684\u5b98\u65b9\u7ec4\u4ef6\u4ed3\u5e93\uff0c\u63d0\u4f9b\u591a\u529f\u80fd\u7ec4\u4ef6\u3002 HelloWorld \u7ec4\u4ef6\u4f5c\u4e3a\u6f14\u793a\u7ec4\u4ef6\u5185\u7f6e\u5728<\u7ec4\u4ef6\u5e02\u573a>\u4e2d\u3002\n")),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165\u3010\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406\u3011\uff0c\u5373\u53ef\u67e5\u770b\u5230\u4ed3\u5e93 ",(0,a.kt)("inlineCode",{parentName:"li"},"kubebb"),"\uff0c\u5982\u679c\u6ca1\u6709\uff0c\u53ef\u624b\u52a8\u6dfb\u52a0")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl apply -f https://raw.githubusercontent.com/kubebb/components/main/repos/repository_kubebb.yaml\n")),(0,a.kt)("ol",{start:2},(0,a.kt)("li",{parentName:"ol"},"\u8fdb\u5165\u3010\u7ec4\u4ef6\u5e02\u573a/\u7ec4\u4ef6\u5e02\u573a\u3011\uff0c\u641c\u7d22\u201chello\u201d\uff0c\u5982\u4e0b\u56fe\uff0c\u793a\u4f8b\u7ec4\u4ef6\uff08hello-world\uff09")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"\u7ec4\u4ef6\u5e02\u573a",src:r(8953).Z,width:"1902",height:"739"})),(0,a.kt)("ol",{start:3},(0,a.kt)("li",{parentName:"ol"},"\u5355\u51fb\u7ec4\u4ef6\u5361\u7247\u7684",(0,a.kt)("strong",{parentName:"li"},"\u5b89\u88c5"),"\uff0c\u8fdb\u5165\u5b89\u88c5\u9875\u9762\uff0c\u793a\u4f8b\u7ec4\u4ef6\u5404\u9009\u9879\u914d\u7f6e\u8bf4\u660e\u5982\u4e0b\uff1a\u586b\u5199\u90e8\u7f72\u540d\u79f0\uff0c\u9009\u62e9\u7ec4\u4ef6\u7248\u672c\uff0c\u9009\u62e9\u5b89\u88c5\u4f4d\u7f6e\uff08\u79df\u6237\u3001\u9879\u76ee\uff09\uff0c\u68c0\u67e5 values.yaml\u3002")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u90e8\u7f72\u540d\u79f0\uff1a\u4f8bhelloworld\uff0c",(0,a.kt)("inlineCode",{parentName:"li"},"\u75313~53\u4e2a\u5c0f\u5199\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e2d\u5212\u7ebf\u201c-\u201d\u7ec4\u6210\uff0c\u5e76\u4ee5\u5b57\u6bcd\u3001\u6570\u5b57\u5f00\u5934\u6216\u7ed3\u5c3e")),(0,a.kt)("li",{parentName:"ul"},"\u66f4\u65b0\u65b9\u5f0f\uff1a\u9ed8\u8ba4\u624b\u52a8\u5373\u53ef"),(0,a.kt)("li",{parentName:"ul"},"\u7ec4\u4ef6\u7248\u672c\uff1a\u9ed8\u8ba4\u7b2c\u4e00\u4e2a0.1.0\u5373\u53ef"),(0,a.kt)("li",{parentName:"ul"},"\u5b89\u88c5\u4f4d\u7f6e\uff1a\u6309\u60a8\u9700\u8981\u9009\u62e9\u79df\u6237\u3001\u9879\u76ee"),(0,a.kt)("li",{parentName:"ul"},"values.yaml\uff1a\u65e0\u9700\u6539\u52a8\u3002\u5982\u679c\u5b89\u88c5\u5176\u4ed6\u7ec4\u4ef6\uff0c\u8bf7\u70b9\u51fb\u9875\u9762\u4e0a\u65b9 \u201c\u5b89\u88c5\u8bf4\u660e\u201d \u67e5\u770b\u662f\u5426\u9700\u8981\u8c03\u6574\u914d\u7f6e\u6587\u4ef6\u5185\u5bb9\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u955c\u50cf\u66ff\u6362\uff1a\u672c\u793a\u4f8b\u6682\u65e0\u9700\u6dfb\u52a0\u66ff\u6362\u89c4\u5219")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"\u7ec4\u4ef6\u5b89\u88c5",src:r(3888).Z,width:"1165",height:"811"})),(0,a.kt)("ol",{start:4},(0,a.kt)("li",{parentName:"ol"},"\u70b9\u51fb",(0,a.kt)("strong",{parentName:"li"},"\u786e\u5b9a"),"\uff0c\u5f00\u59cb\u5b89\u88c5\uff0c\u81ea\u52a8\u8df3\u8f6c\u5230\u6240\u9009\u79df\u6237\u3001\u9879\u76ee&\u96c6\u7fa4\u7684<\u6211\u5b89\u88c5\u7684>\u5217\u8868\u9875\u9762\uff0c\u67e5\u770b\u5b89\u88c5\u7ed3\u679c\u3002"),(0,a.kt)("li",{parentName:"ol"},"\u5b89\u88c5\u6210\u529f\u540e\uff0c\u5237\u65b0\u9875\u9762\uff0c\u70b9\u51fb\u5de6\u4e0a\u89d2\u6240\u6709\u83dc\u5355\uff0c\u53ef\u89c1\uff0c\u81f3\u6b64\u5b8c\u6210\u7ec4\u4ef6\u5b89\u88c5\u3001\u4f7f\u7528\u6d41\u7a0b\u3002")),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"\u83dc\u5355",src:r(5748).Z,width:"764",height:"465"})))}b.isMDXComponent=!0},3888:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/componetinstall-48c4f43369628ecd72f0b7552b56aa9a.png"},8953:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/componetmarket-a5736dc9d12730f13b18f808c90694fd.png"},5748:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/menu-cd788e2c64e300e4b712cb8ae3a40e9b.png"}}]); \ No newline at end of file diff --git a/assets/js/7dec8a7a.421cc3d2.js b/assets/js/7dec8a7a.421cc3d2.js new file mode 100644 index 000000000..98093926a --- /dev/null +++ b/assets/js/7dec8a7a.421cc3d2.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1323],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>b});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var s=n.createContext({}),c=function(e){var t=n.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},p=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=c(r),m=a,b=u["".concat(s,".").concat(m)]||u[m]||d[m]||o;return r?n.createElement(b,i(i({ref:t},p),{},{components:r})):n.createElement(b,i({ref:t},p))}));function b(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var c=2;c{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var n=r(7462),a=(r(7294),r(3905));const o={sidebar_position:2},i="\u6dfb\u52a0\u96c6\u7fa4",l={unversionedId:"develop-guid/building-base/add-cluster",id:"develop-guid/building-base/add-cluster",title:"\u6dfb\u52a0\u96c6\u7fa4",description:"1. \u4e3a\u96c6\u7fa4\u7ba1\u7406\u521b\u5efa\u4e00\u4e2a namespace\uff0c\u53ef\u4ee5\u4f7f\u7528 cluster-system\uff0c\u7528\u6765\u4fdd\u5b58\u96c6\u7fa4\u4fe1\u606f",source:"@site/docs/develop-guid/building-base/add-cluster.md",sourceDirName:"develop-guid/building-base",slug:"/develop-guid/building-base/add-cluster",permalink:"/website/docs/develop-guid/building-base/add-cluster",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"\u4ecb\u7ecd",permalink:"/website/docs/develop-guid/building-base/intro"},next:{title:"\u81ea\u5b9a\u4e49\u914d\u7f6e",permalink:"/website/docs/category/\u81ea\u5b9a\u4e49\u914d\u7f6e"}},s={},c=[],p={toc:c},u="wrapper";function d(e){let{components:t,...r}=e;return(0,a.kt)(u,(0,n.Z)({},p,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u6dfb\u52a0\u96c6\u7fa4"},"\u6dfb\u52a0\u96c6\u7fa4"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u4e3a\u96c6\u7fa4\u7ba1\u7406\u521b\u5efa\u4e00\u4e2a namespace\uff0c\u53ef\u4ee5\u4f7f\u7528 cluster-system\uff0c\u7528\u6765\u4fdd\u5b58\u96c6\u7fa4\u4fe1\u606f")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"kubectl create ns cluster-system\n")),(0,a.kt)("ol",{start:2},(0,a.kt)("li",{parentName:"ol"},"\u83b7\u53d6\u6dfb\u52a0\u96c6\u7fa4\u7684 token")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"export TOKENNAME=$(kubectl get serviceaccount/host-cluster-reader -n u4a-system -o jsonpath='{.secrets[0].name}')\nkubectl get secret $TOKENNAME -n u4a-system -o jsonpath='{.data.token}' | base64 -d\n")),(0,a.kt)("ol",{start:3},(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"\u767b\u5f55\u7ba1\u7406\u5e73\u53f0\uff0c\u8fdb\u5165 \u201c\u96c6\u7fa4\u7ba1\u7406\u201d\uff0c\u53c2\u8003 ",(0,a.kt)("a",{parentName:"p",href:"/website/docs/quick-start/quick-install#%E5%AE%89%E8%A3%85%E5%BA%95%E5%BA%A7"},"\u5b89\u88c5\u5e95\u5ea7"),"\uff0c\u70b9\u51fb\u201c\u6dfb\u52a0\u96c6\u7fa4\u201d\u3002")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"\u8f93\u5165\u96c6\u7fa4\u540d\u79f0\uff0c\u6309\u9700\u4fee\u6539\u96c6\u7fa4\u540e\u7f00\uff0c\u8fd9\u91cc\u4f7f\u7528\u201cAPI Token\u201d\u65b9\u5f0f\u63a5\u5165\u96c6\u7fa4\u3002"))),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"API Host\uff0c\u4f7f\u7528\u652f\u6301 OIDC \u534f\u8bae\u7684 K8s API \u5730\u5740\uff0c\u53ef\u4ee5\u901a\u8fc7 ",(0,a.kt)("strong",{parentName:"li"},"kubectl get ingress -nu4a-system")," \u67e5\u770b kube-oidc-proxy-server-ingress \u5bf9\u5e94\u7684 Host \u4fe1\u606f\uff0c\u6bd4\u5982 ",(0,a.kt)("inlineCode",{parentName:"li"},"https://k8s.172.22.96.136.nip.io"),"\uff08\u6ce8\u610f\u7ed3\u5c3e\u4e0d\u8981\u6709 /\uff09"),(0,a.kt)("li",{parentName:"ul"},"API Token\uff0c\u8f93\u5165\u7b2c 2 \u6b65\u83b7\u53d6\u7684 token \u4fe1\u606f")),(0,a.kt)("ol",{start:5},(0,a.kt)("li",{parentName:"ol"},'\u6dfb\u52a0\u6210\u529f\u540e\uff0c\u53ef\u4ee5\u5728\u5217\u8868\u4e0a\u770b\u5230\u96c6\u7fa4\u4fe1\u606f\u53ca\u5176\u72b6\u6001\uff1b\u9009\u62e9\u201c\u79df\u6237\u7ba1\u7406\u201d\uff0c\u4f1a\u770b\u5230\u540d\u79f0\u4e3a "system-tenant" \u7684\u4e00\u4e2a\u7cfb\u7edf\u79df\u6237')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/81fe2174.d89689e4.js b/assets/js/81fe2174.d89689e4.js deleted file mode 100644 index e5d805058..000000000 --- a/assets/js/81fe2174.d89689e4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7492],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>b});var r=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var c=r.createContext({}),l=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},s=function(e){var n=l(e.components);return r.createElement(c.Provider,{value:n},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),p=l(t),d=i,b=p["".concat(c,".").concat(d)]||p[d]||m[d]||o;return t?r.createElement(b,a(a({ref:n},s),{},{components:t})):r.createElement(b,a({ref:n},s))}));function b(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var o=t.length,a=new Array(o);a[0]=d;var u={};for(var c in n)hasOwnProperty.call(n,c)&&(u[c]=n[c]);u.originalType=e,u[p]="string"==typeof e?e:i,a[1]=u;for(var l=2;l{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>m,frontMatter:()=>o,metadata:()=>u,toc:()=>l});var r=t(7462),i=(t(7294),t(3905));const o={sidebar_position:2},a="\u81ea\u5b9a\u4e49\u83dc\u5355",u={unversionedId:"building-base/configuration/customize-menu",id:"building-base/configuration/customize-menu",title:"\u81ea\u5b9a\u4e49\u83dc\u5355",description:"kubebb \u7684\u6240\u6709\u83dc\u5355\u5747\u57fa\u4e8e menu \u7684 CRD \u8fdb\u884c\u5b9a\u4e49\uff0c\u5982\u679c\u9700\u8981\u6dfb\u52a0\u81ea\u5df1\u7684\u83dc\u5355\uff0c\u53ef\u4ee5\u53c2\u8003\u4ee5\u4e0b memnu \u793a\u4f8b:",source:"@site/docs/building-base/configuration/customize-menu.md",sourceDirName:"building-base/configuration",slug:"/building-base/configuration/customize-menu",permalink:"/website/docs/building-base/configuration/customize-menu",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"\u81ea\u5b9a\u4e49\u95e8\u6237",permalink:"/website/docs/building-base/configuration/customize-portal"},next:{title:"\u4f7f\u7528\u7b2c\u4e09\u65b9\u7cfb\u7edf\u767b\u5f55",permalink:"/website/docs/building-base/configuration/3rd-party-account"}},c={},l=[],s={toc:l},p="wrapper";function m(e){let{components:n,...o}=e;return(0,i.kt)(p,(0,r.Z)({},s,o,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"\u81ea\u5b9a\u4e49\u83dc\u5355"},"\u81ea\u5b9a\u4e49\u83dc\u5355"),(0,i.kt)("p",null,"kubebb \u7684\u6240\u6709\u83dc\u5355\u5747\u57fa\u4e8e menu \u7684 CRD \u8fdb\u884c\u5b9a\u4e49\uff0c\u5982\u679c\u9700\u8981\u6dfb\u52a0\u81ea\u5df1\u7684\u83dc\u5355\uff0c\u53ef\u4ee5\u53c2\u8003\u4ee5\u4e0b memnu \u793a\u4f8b:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'# \u4e3b\u83dc\u5355\napiVersion: component.t7d.io/v1beta1\nkind: Menu\nmetadata:\n name: demo-menu\nspec:\n column: 1\n isRenderSelectCurrent: false\n parentOwnerReferences:\n apiVersion: ""\n kind: ""\n name: ""\n uid: ""\n rankingInColumn: 100\n tenant: true\n text: \u6d4b\u8bd5\u83dc\u5355\n textEn: "Test Menu"\n---\n# \u6d4b\u8bd5\u83dc\u5355\u7d22\u5f15\u83dc\u5355\napiVersion: component.t7d.io/v1beta1\nkind: Menu\nmetadata:\n name: demo-menu-index\nspec:\n getTitleForReplaceSider: {}\n parentOwnerReferences:\n apiVersion: component.t7d.io/v1beta1\n blockOwnerDeletion: false\n controller: false\n kind: Menu\n name: demo-menu\n uid: ""\n rankingInColumn: 100\n tenant: true\n text: \u83dc\u5355\u7d22\u5f15\u9879\n textEn: \u201cMenu Index Item"\n---\n# \u5b50\u83dc\u5355\uff0c\u5177\u5907\u5b9e\u9645\u94fe\u63a5\u529f\u80fd\napiVersion: component.t7d.io/v1beta1\nkind: Menu\nmetadata:\n name: demo-menu-submenu1\nspec:\n getTitleForReplaceSider: {}\n isRenderSelectCurrent: false\n parentOwnerReferences:\n apiVersion: component.t7d.io/v1beta1\n blockOwnerDeletion: false\n controller: false\n kind: Menu\n name: demo-menu-index\n uid: ""\n pathname: /demo-feature1\n rankingInColumn: 200\n text: \u6d4b\u8bd5\u5b50\u83dc\u5355\n textEn: "Test Submenu"\n')),(0,i.kt)("p",null,"\u4f7f\u7528 ",(0,i.kt)("inlineCode",{parentName:"p"},"kubectl apply -f")," \u5373\u53ef\u5c06\u83dc\u5355\u9879\u90e8\u7f72\u5230\u73af\u5883\u4e2d\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1a\n",(0,i.kt)("img",{alt:"\u56fe 1",src:t(9399).Z,width:"1796",height:"516"})))}m.isMDXComponent=!0},9399:(e,n,t)=>{t.d(n,{Z:()=>r});const r=t.p+"assets/images/4a52ae49bf01baee581357a57038c5792dab1fe153770917e42a5888a7ebebdc-fdbb239e6fc4fbeb5e8f8338d8f6d83b.png"}}]); \ No newline at end of file diff --git a/assets/js/836d4174.2a8ee05a.js b/assets/js/836d4174.2a8ee05a.js new file mode 100644 index 000000000..a1bf32b55 --- /dev/null +++ b/assets/js/836d4174.2a8ee05a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[774],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),p=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=p(e.components);return a.createElement(c.Provider,{value:t},e.children)},b="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),b=p(n),d=r,k=b["".concat(c,".").concat(d)]||b[d]||s[d]||o;return n?a.createElement(k,l(l({ref:t},u),{},{components:n})):a.createElement(k,l({ref:t},u))}));function k(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[b]="string"==typeof e?e:r,l[1]=i;for(var p=2;p{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>p});var a=n(7462),r=(n(7294),n(3905));const o={sidebar_position:1},l="\u5feb\u901f\u90e8\u7f72",i={unversionedId:"develop-guid/core/rating/enablerating",id:"develop-guid/core/rating/enablerating",title:"\u5feb\u901f\u90e8\u7f72",description:"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cRating\u7ec4\u4ef6\u8bc4\u7ea7\u529f\u80fd\u662f\u5173\u95ed\u7684\uff0c\u9700\u8981\u624b\u52a8\u542f\u7528\u3002\u6211\u4eec\u5efa\u8bae\u6309\u7167\u4ee5\u4e0b\u6b65\u9aa4\u542f\u7528Rating:",source:"@site/docs/develop-guid/core/rating/enablerating.md",sourceDirName:"develop-guid/core/rating",slug:"/develop-guid/core/rating/enablerating",permalink:"/website/docs/develop-guid/core/rating/enablerating",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6\u8bc4\u6d4b",permalink:"/website/docs/category/\u7ec4\u4ef6\u8bc4\u6d4b"},next:{title:"\u529f\u80fd\u4ecb\u7ecd",permalink:"/website/docs/develop-guid/core/rating/"}},c={},p=[{value:"1.\u5b89\u88c5kubebb core",id:"1\u5b89\u88c5kubebb-core",level:2},{value:"2. \u521b\u5efa\u547d\u540d\u7a7a\u95f4 kubebb-addons",id:"2-\u521b\u5efa\u547d\u540d\u7a7a\u95f4-kubebb-addons",level:2},{value:"3. \u5b89\u88c5Tekton\u6d41\u6c34\u7ebf",id:"3-\u5b89\u88c5tekton\u6d41\u6c34\u7ebf",level:2},{value:"4. \u5b89\u88c5Arcadia AI\u7ec4\u4ef6",id:"4-\u5b89\u88c5arcadia-ai\u7ec4\u4ef6",level:2},{value:"5. \u66f4\u65b0\u5185\u6838",id:"5-\u66f4\u65b0\u5185\u6838",level:2}],u={toc:p},b="wrapper";function s(e){let{components:t,...n}=e;return(0,r.kt)(b,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u5feb\u901f\u90e8\u7f72"},"\u5feb\u901f\u90e8\u7f72"),(0,r.kt)("p",null,"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cRating\u7ec4\u4ef6\u8bc4\u7ea7\u529f\u80fd\u662f\u5173\u95ed\u7684\uff0c\u9700\u8981\u624b\u52a8\u542f\u7528\u3002\u6211\u4eec\u5efa\u8bae\u6309\u7167\u4ee5\u4e0b\u6b65\u9aa4\u542f\u7528Rating:"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"\u8be6\u7ec6\u4e86\u89e3\u66f4\u591aRating\u6709\u5173\u5185\u5bb9\uff0c\u8bf7\u53c2\u8003",(0,r.kt)("a",{parentName:"p",href:"/website/docs/develop-guid/core/rating/"},"\u7ec4\u4ef6\u8bc4\u6d4b\u8bbe\u8ba1"),"\u548c",(0,r.kt)("a",{parentName:"p",href:"/website/docs/develop-guid/core/concepts/rating"},"Rating CRD\u5b9a\u4e49"))),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Rating"),"\u4f9d\u8d56\u4e24\u4e2a\u7ec4\u4ef6\uff0c\u5206\u522b\u662f:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Tekton"),"\u63d0\u4f9b\u6d41\u6c34\u7ebf\u80fd\u529b,\u5b8c\u6210\u7ec4\u4ef6\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"KubeAGI Arcadia"),"\u63d0\u4f9bAI\u6570\u636e\u5206\u6790\u80fd\u529b\uff0c\u5b8c\u6574\u7ec4\u4ef6\u7684AI\u8bc4\u6d4b")),(0,r.kt)("p",null,"\u56e0\u6b64, \u9700\u8981\u5148\u5b89\u88c5\u597dTekton\u548cArcadia, \u624d\u80fd\u4f7f\u7528Rating\u529f\u80fd\u3002"),(0,r.kt)("h2",{id:"1\u5b89\u88c5kubebb-core"},"1.\u5b89\u88c5kubebb core"),(0,r.kt)("p",null,"\u53c2\u8003",(0,r.kt)("a",{parentName:"p",href:"/website/docs/quick-start/quick-install"},"\u5b89\u88c5\u5185\u6838"),"\u5b8c\u6210\u5185\u6838(\u672a\u542f\u7528Rating)\u5b89\u88c5\u3002"),(0,r.kt)("h2",{id:"2-\u521b\u5efa\u547d\u540d\u7a7a\u95f4-kubebb-addons"},"2. \u521b\u5efa\u547d\u540d\u7a7a\u95f4 ",(0,r.kt)("inlineCode",{parentName:"h2"},"kubebb-addons")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"\u540e\u7eed\u5b89\u88c5\u7684\u7ec4\u4ef6\u90fd\u4f1a\u6dfb\u52a0\u5230",(0,r.kt)("inlineCode",{parentName:"p"},"kubebb-addons"),"\u547d\u540d\u7a7a\u95f4\u4e2d\uff0c\u4f5c\u4e3akubebb\u7684\u6269\u5c55")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl create namespace kubebb-addons\n")),(0,r.kt)("h2",{id:"3-\u5b89\u88c5tekton\u6d41\u6c34\u7ebf"},"3. \u5b89\u88c5Tekton\u6d41\u6c34\u7ebf"),(0,r.kt)("p",null,"\u5b98\u65b9\u7ec4\u4ef6\u4ed3\u5e93\u63d0\u4f9b\u4e86",(0,r.kt)("a",{parentName:"p",href:"https://github.com/kubebb/components/tree/main/charts/tekton-operator"},"Tekton\u7ec4\u4ef6\u5b89\u88c5\u5305"),"\u548c",(0,r.kt)("a",{parentName:"p",href:"https://github.com/kubebb/components/tree/main/examples/tekton-operator"},"Tekton\u5b89\u88c5\u793a\u4f8b"),"\u3002\u53ef\u4ee5\u4f7f\u7528\u5185\u6838\u5feb\u901f\u5b8c\u6210tekton\u7684\u5b89\u88c5\u3002"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u524d\u9700\u8981\u786e\u4fdd\u7ec4\u4ef6kubebb.tekton-operator\u5df2\u7ecf\u540c\u6b65\u5b8c\u6210")),(0,r.kt)("p",null,"\u547d\u4ee4\u5982\u4e0b:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"# \u9ed8\u8ba4\u5b89\u88c5\u5230default\u547d\u540d\u7a7a\u95f4\nkubectl apply -f https://raw.githubusercontent.com/kubebb/components/main/examples/tekton-operator/componentplan.yaml\n")),(0,r.kt)("p",null,"\u67e5\u770b\u5b89\u88c5\u72b6\u6001:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get pods --watch\n")),(0,r.kt)("p",null,"\u5982\u679c\u5b89\u88c5\u5b8c\u6210,\u8f93\u51fa\u5982\u4e0b:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"\u276f kubectl get pods\nNAME READY STATUS RESTARTS AGE\nmy-tekton-tekton-operator-68bdffc888-8dtfx 2/2 Running 0 25m\nmy-tekton-tekton-operator-webhook-78bdfcbc77-6k6cx 1/1 Running 0 25m\n")),(0,r.kt)("p",null,"\u5982\u679c\u957f\u65f6\u95f4\u5b89\u88c5\u672a\u5b8c\u6210,\u53ef\u67e5\u770b\u5bf9\u5e94\u7684Componentplan\u8d44\u6e90\u7684\u72b6\u6001\u3002"),(0,r.kt)("h2",{id:"4-\u5b89\u88c5arcadia-ai\u7ec4\u4ef6"},"4. \u5b89\u88c5Arcadia AI\u7ec4\u4ef6"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Arcadia\u7ec4\u4ef6\u4f4d\u4e8e\u53e6\u5916\u7684\u4e00\u4e2a",(0,r.kt)("a",{parentName:"p",href:"https://github.com/kubeagi/arcadia/tree/main/charts"},"\u7ec4\u4ef6\u4ed3\u5e93"))),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u6dfb\u52a0",(0,r.kt)("a",{parentName:"li",href:"https://github.com/kubebb/components/blob/main/repos/repository_arcadia.yaml"},"arcadia\u7ec4\u4ef6\u4ed3\u5e93"))),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl apply -f https://raw.githubusercontent.com/kubebb/components/main/repos/repository_arcadia.yaml\n")),(0,r.kt)("p",null,"\u6210\u529f\u540e\uff0c\u53ef\u901a\u8fc7\u5982\u4e0b\u547d\u4ee4\u67e5\u770b\u4ed3\u5e93\u4e2d\u7684\u7ec4\u4ef6:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get components -nkubebb-system -l kubebb.component.repository=arcadia\n")),(0,r.kt)("p",null,"\u5982\u679c\u4e00\u5207\u6b63\u5e38\uff0c\u8f93\u5165\u5982\u4e0b:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"\u276f kubectl get components -nkubebb-system -l kubebb.component.repository=arcadia\nNAME AGE\narcadia.arcadia 32s\narcadia.jupyterlab 32s\narcadia.llms 32s\n")),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"\u5b89\u88c5Arcadia AI\u7ec4\u4ef6")),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"\u6b64\u5904\u5efa\u8bae\u91c7\u7528\u7ec4\u4ef6\u8ba2\u9605\u81ea\u52a8\u5b89\u88c5\u7684\u6a21\u5f0f\uff0c\u9ed8\u8ba4\u5b89\u88c5\u5230default\u547d\u540d\u7a7a\u95f4")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl apply -f https://raw.githubusercontent.com/kubebb/components/main/examples/arcadia/subscription.yaml\n")),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},"\u67e5\u770b\u5b89\u88c5\u72b6\u6001")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"\u276f kubectl get pods --watch\nNAME READY STATUS RESTARTS AGE\nmy-tekton-tekton-operator-68bdffc888-8dtfx 2/2 Running 0 48m\nmy-tekton-tekton-operator-webhook-78bdfcbc77-6k6cx 1/1 Running 0 48m\narcadia-5cb86f8787-jvd7j 0/1 Pending 0 0s\narcadia-5cb86f8787-jvd7j 0/1 Pending 0 0s\narcadia-5cb86f8787-jvd7j 0/1 ContainerCreating 0 0s\narcadia-5cb86f8787-jvd7j 0/1 Running 0 20s\narcadia-5cb86f8787-jvd7j 1/1 Running 0 30s\n")),(0,r.kt)("h2",{id:"5-\u66f4\u65b0\u5185\u6838"},"5. \u66f4\u65b0\u5185\u6838"),(0,r.kt)("p",null,"\u901a\u8fc7\u8bbe\u7f6e\u53c2\u6570",(0,r.kt)("inlineCode",{parentName:"p"},"deployment.rating_enable=true"),"\u6765\u542f\u7528Rating"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"helm upgrade -nkubebb-system kubebb-core kubebb/kubebb-core --set deployment.rating_enable=true\n")),(0,r.kt)("p",null,"\u67e5\u770b\u5185\u6838Pod\u72b6\u6001:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"\u276f kubectl get pods -nkubebb-system --watch\nNAME READY STATUS RESTARTS AGE\nkubebb-core-65ddc99994-25k49 0/1 Running 0 7s\nkubebb-core-6d78d7d8fd-vxbc6 1/1 Running 0 119s\nkubebb-core-65ddc99994-25k49 1/1 Running 0 10s\nkubebb-core-6d78d7d8fd-vxbc6 1/1 Terminating 0 2m2s\nkubebb-core-6d78d7d8fd-vxbc6 0/1 Terminating 0 2m3s\nkubebb-core-6d78d7d8fd-vxbc6 0/1 Terminating 0 2m3s\nkubebb-core-6d78d7d8fd-vxbc6 0/1 Terminating 0 2m3s\n")),(0,r.kt)("p",null,"\u5982\u679c\u5347\u7ea7\u6210\u529f,\u5219\u53ef\u5728\u5185\u6838Pod\u5185\u770b\u5230\u5982\u4e0b\u65e5\u5fd7:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},'1.6935407235060694e+09 INFO Starting EventSource {"controller": "rating", "controllerGroup": "core.kubebb.k8s.com.cn", "controllerKind": "Rating", "source": "kind source: *v1alpha1.Rating"}\n1.6935407235063274e+09 INFO Starting EventSource {"controller": "rating", "controllerGroup": "core.kubebb.k8s.com.cn", "controllerKind": "Rating", "source": "kind source: *v1beta1.PipelineRun"}\n')))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/86efa878.692c127c.js b/assets/js/86efa878.692c127c.js new file mode 100644 index 000000000..42ccfbe00 --- /dev/null +++ b/assets/js/86efa878.692c127c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8407],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>k});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var p=r.createContext({}),s=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(p.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,l=e.originalType,p=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),u=s(n),d=a,k=u["".concat(p,".").concat(d)]||u[d]||m[d]||l;return n?r.createElement(k,i(i({ref:t},c),{},{components:n})):r.createElement(k,i({ref:t},c))}));function k(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=n.length,i=new Array(l);i[0]=d;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[u]="string"==typeof e?e:a,i[1]=o;for(var s=2;s{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>o,toc:()=>s});var r=n(7462),a=(n(7294),n(3905));const l={sidebar_position:1},i="\u4ecb\u7ecd",o={unversionedId:"develop-guid/lowcode-development/intro",id:"develop-guid/lowcode-development/intro",title:"\u4ecb\u7ecd",description:"\u4f4e\u7801 Kit \u5373\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\uff08\u4ee5\u4e0b\u7b80\u79f0\u201c\u4e91\u68af\u201d\uff09",source:"@site/docs/develop-guid/lowcode-development/intro.md",sourceDirName:"develop-guid/lowcode-development",slug:"/develop-guid/lowcode-development/intro",permalink:"/website/docs/develop-guid/lowcode-development/intro",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"\u4f4e\u7801 Kit",permalink:"/website/docs/category/\u4f4e\u7801-kit"},next:{title:"\u5f00\u53d1\u6a21\u5f0f",permalink:"/website/docs/develop-guid/lowcode-development/development_pattern"}},p={},s=[{value:"\u76ee\u6807",id:"\u76ee\u6807",level:2},{value:"\u67b6\u6784\u6982\u8ff0",id:"\u67b6\u6784\u6982\u8ff0",level:2},{value:"\u7279\u70b9\u548c\u4f18\u52bf",id:"\u7279\u70b9\u548c\u4f18\u52bf",level:2},{value:"\u672a\u6765\u89c4\u5212",id:"\u672a\u6765\u89c4\u5212",level:2}],c={toc:s},u="wrapper";function m(e){let{components:t,...l}=e;return(0,a.kt)(u,(0,r.Z)({},c,l,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u4ecb\u7ecd"},"\u4ecb\u7ecd"),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u4f4e\u7801 Kit \u5373\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\uff08\u4ee5\u4e0b\u7b80\u79f0\u201c\u4e91\u68af\u201d\uff09")),(0,a.kt)("h2",{id:"\u76ee\u6807"},"\u76ee\u6807"),(0,a.kt)("p",null,"\u4e91\u68af\u4f9d\u6258 ",(0,a.kt)("a",{parentName:"p",href:"https://lowcode-engine.cn/index"},"Low-Code Engine"),"\uff08\u4f4e\u4ee3\u7801\u5f15\u64ce\uff09\u548c\u5177\u6709 Git \u7279\u6027\u7684\u5173\u7cfb\u6570\u636e\u5e93 ",(0,a.kt)("a",{parentName:"p",href:"https://www.dolthub.com/"},"Dolt")," \u6253\u9020\uff0c\u76ee\u6807\u662f\u5b9e\u73b0\u4ece\u5f00\u53d1\u3001\u6d4b\u8bd5\u5230\u4e0a\u7ebf\u7684\u5168\u94fe\u8def\u4f4e\u7801\u5316\u3002\u7528\u6237\u53ef\u4ee5\u4f7f\u7528\u4e91\u68af\u8fdb\u884c\u7ec4\u4ef6\u3001\u9875\u9762\u7684\u53ef\u89c6\u5316\u642d\u5efa\uff0c\u4e5f\u53ef\u4ee5\u50cf\u4f7f\u7528 Git \u4e00\u6837\u5bf9\u4f4e\u4ee3\u7801\u5e94\u7528\u8fdb\u884c\u534f\u4f5c\u5f00\u53d1\u548c\u7248\u672c\u7ba1\u7406\u3002"),(0,a.kt)("h2",{id:"\u67b6\u6784\u6982\u8ff0"},"\u67b6\u6784\u6982\u8ff0"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"\u4e91\u68af\u603b\u4f53\u67b6\u6784\u56fe",src:n(2384).Z,width:"1146",height:"540"})),(0,a.kt)("p",null,"\u4e91\u68af\u603b\u4f53\u67b6\u6784\u5206\u4e3a\u4e09\u5c42\uff1a"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u6570\u636e\u5e93\u5c42\uff1a\u6570\u636e\u5e93\u91c7\u7528 ",(0,a.kt)("a",{parentName:"li",href:"https://www.dolthub.com/"},"Dolt"),"\uff0cDolt \u53ef\u4ee5\u50cf Git \u4e00\u6837\u7ba1\u7406\u6570\u636e\uff0c\u8fd9\u6837\u4e91\u68af\u5c31\u62e5\u6709\u4e86\u534f\u4f5c\u548c\u7248\u672c\u7ba1\u7406\u80fd\u529b\uff0c\u7528\u6237\u4f7f\u7528\u4e91\u68af\u642d\u5efa\u5e94\u7528\u8ddf\u4f7f\u7528 Git \u5f00\u53d1\u5e94\u7528\u4e00\u6837\uff0c\u53ef\u4ee5\u8fdb\u884c\u591a\u4eba\u534f\u4f5c\u548c\u7248\u672c\u7ba1\u7406"),(0,a.kt)("li",{parentName:"ul"},"\u540e\u7aef yunti-server\uff1a\u540e\u7aef\u57fa\u4e8e ",(0,a.kt)("a",{parentName:"li",href:"https://nestjs.com/"},"Nest.js")," \u5f00\u53d1\uff0c\u901a\u8fc7 ",(0,a.kt)("a",{parentName:"li",href:"https://typeorm.io/"},"TypeOrm")," \u4e0e Dolt \u6570\u636e\u5e93\u8fdb\u884c\u4ea4\u4e92\uff0c\u63d0\u4f9b GraphQL API \u4f9b\u524d\u7aef\u8c03\u7528\uff0c\u4e3a\u4e86\u65b9\u4fbf\u524d\u7aef\u5bf9\u63a5 API\uff0c\u901a\u8fc7 ",(0,a.kt)("a",{parentName:"li",href:"https://the-guild.dev/graphql/codegen"},"GraphQL code generator")," \u5de5\u5177\u751f\u6210\u4e86 API SDK \u5e76\u53d1\u5e03\u6210 npm \u5305\u4f9b\u524d\u7aef\u76f4\u63a5\u4f7f\u7528\uff0c\u964d\u4f4e\u4e86 API \u5bf9\u63a5\u6210\u672c"),(0,a.kt)("li",{parentName:"ul"},"\u524d\u7aef yunti-console\uff1a\u57fa\u4e8e ",(0,a.kt)("a",{parentName:"li",href:"https://umijs.org/"},"Umi.js")," \u5f00\u53d1\uff0c\u4e3b\u8981\u7531\u4ee5\u4e0b 2 \u4e2a\u6a21\u5757\u7ec4\u6210\uff1a",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u4f4e\u4ee3\u7801\u7f16\u8f91\u5668\uff1a\u57fa\u4e8e ",(0,a.kt)("a",{parentName:"li",href:"https://lowcode-engine.cn/index"},"Low-Code Engine")," \u4f4e\u4ee3\u7801\u5f15\u64ce\u6269\u5c55\u800c\u6765\uff0c\u76ee\u524d\u6709\u9875\u9762\u7f16\u8f91\u5668\u548c\u7ec4\u4ef6\u7f16\u8f91\u5668\uff0c\u540e\u671f\u8fd8\u53ef\u4ee5\u6269\u5c55"),(0,a.kt)("li",{parentName:"ul"},"\u5e73\u53f0\u7ba1\u7406\u6a21\u5757\uff1a\u5bf9\u5e94\u7528\u3001\u7ec4\u4ef6\u3001\u533a\u5757\u7b49\u8fdb\u884c\u589e\u5220\u6539\u67e5")))),(0,a.kt)("p",null,"\u8fd8\u6709\u4e00\u4e9b\u57fa\u7840\u8bbe\u65bd\uff0c\u67b6\u6784\u56fe\u4e2d\u6ca1\u6709\u4f53\u73b0\uff0c\u4f8b\u5982\u79c1\u6709 npm \u4ed3\u5e93\u53ca\u79c1\u6709 unpkg \u7b49\u3002"),(0,a.kt)("h2",{id:"\u7279\u70b9\u548c\u4f18\u52bf"},"\u7279\u70b9\u548c\u4f18\u52bf"),(0,a.kt)("p",null,"\u57fa\u4e8e\u4ee5\u4e0a\u67b6\u6784\uff0c\u4e91\u68af\u5177\u6709\u4ee5\u4e0b\u6280\u672f\u7279\u70b9\u548c\u4f18\u52bf\uff1a"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u53ef\u89c6\u5316\u7ec4\u4ef6\u3001\u9875\u9762\u642d\u5efa"),"\uff1a\u901a\u8fc7\u7b80\u5355\u7684\u62d6\u62fd\u5b8c\u6210\u5e94\u7528\u9875\u9762\u5f00\u53d1\uff0c\u5bf9\u524d\u7aef\u6280\u80fd\u6ca1\u6709\u8981\u6c42\u6216\u4e0d\u9700\u8981\u7279\u522b\u4e13\u4e1a\u7684\u4e86\u89e3\uff1b"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u6807\u51c6\u5316\u534f\u8bae"),"\uff1a\u6807\u51c6\u5316\u534f\u8bae\u662f\u4f4e\u4ee3\u7801\u751f\u6001\u7684\u57fa\u7840\uff0c\u662f\u6253\u7834\u7269\u6599\u5b64\u5c9b\u7684\u5173\u952e",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://lowcode-engine.cn/site/docs/specs/lowcode-spec"},"\u300a\u4f4e\u4ee3\u7801\u5f15\u64ce\u642d\u5efa\u534f\u8bae\u89c4\u8303\u300b"),"\uff1a\u63cf\u8ff0\u6e90\u7801\u7269\u6599\u89c4\u8303\u548c\u642d\u5efa\u7269\u6599\u89c4\u8303"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://lowcode-engine.cn/site/docs/specs/material-spec"},"\u300a\u4f4e\u4ee3\u7801\u5f15\u64ce\u7269\u6599\u534f\u8bae\u89c4\u8303\u300b"),"\uff1a\u63cf\u8ff0\u4f4e\u4ee3\u7801\u642d\u5efa\u5e73\u53f0\u4ea7\u7269\u7684 Schema \u7ed3\u6784"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://lowcode-engine.cn/site/docs/specs/assets-spec"},"\u300a\u4f4e\u4ee3\u7801\u5f15\u64ce\u8d44\u4ea7\u5305\u534f\u8bae\u89c4\u8303\u300b"),"\uff1a\u63cf\u8ff0\u4f4e\u4ee3\u7801\u5e73\u53f0\u8d44\u4ea7\u5305\u7ed3\u6784"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u8bbe\u8ba1\u5668\u6613\u4e8e\u6269\u5c55"),"\uff1a\u7269\u6599\u3001\u63d2\u4ef6\u3001\u8bbe\u7f6e\u5668\u7b49\u90fd\u53ef\u4ee5\u6269\u5c55"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u4f18\u79c0\u7684\u51fa\u7801\u80fd\u529b"),"\uff1a\u5b9a\u5236\u5316\u7684\u51fa\u7801\u63d2\u4ef6\uff0c\u53ef\u5c06\u4f4e\u7801\u5e94\u7528\u7684 schema \u8f6c\u5316\u4e3a\u4ee3\u7801\u8f93\u51fa\uff0c\u8f93\u51fa\u7684\u4ee3\u7801\u53ef\u8bfb\u6027\u5f3a\uff0c\u53ef\u4f5c\u4e3a\u57fa\u7840\u5e94\u7528\u505a\u5b9a\u5236\u6269\u5c55\u5f00\u53d1"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u5b8c\u5907\u7684\u534f\u4f5c\u548c\u7248\u672c\u7ba1\u7406\u529f\u80fd\uff1a"),"\u652f\u6301\u50cf\u4f7f\u7528 Git \u4e00\u6837\u5bf9\u4f4e\u4ee3\u7801\u5e94\u7528\u8fdb\u884c\u534f\u4f5c\u642d\u5efa\u548c\u7248\u672c\u7ba1\u7406"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u201cServerless\u201d"),"\uff1a\u65e0\u9700\u5173\u5fc3\u670d\u52a1\u5668\u3001\u6570\u636e\u5e93\u7b49\u5e95\u5c42\u8fd0\u7ef4\u3001\u8ba1\u7b97\u8bbe\u65bd\u8bbe\u5907\u3001\u7f51\u7edc\u7b49\u7b49\u590d\u6742\u6280\u672f\u6982\u5ff5\uff0c\u5177\u5907\u5b89\u5168\u3001\u6027\u80fd\u7684\u7edf\u4e00\u89e3\u51b3\u65b9\u6848\uff0c\u5f00\u53d1\u8005\u53ea\u9700\u8981\u4e13\u6ce8\u4e8e\u4e1a\u52a1\u672c\u8eab\uff1b"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"\u53ef\u89c6\u5316\u670d\u52a1\u4e0e\u6570\u636e\u5f00\u653e\u3001\u96c6\u6210"),"\uff1a\u5177\u5907\u4e0e\u5176\u4ed6\u7cfb\u7edf\u4e92\u8054\u4e92\u901a\u7684\u914d\u7f6e\uff1b")),(0,a.kt)("h2",{id:"\u672a\u6765\u89c4\u5212"},"\u672a\u6765\u89c4\u5212"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"BFF \u5c42\u4f4e\u7801\u5316\u63a2\u7d22",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u53ef\u89c6\u5316\u6a21\u578b\u8bbe\u8ba1\uff1a\u4e0e\u4e1a\u52a1\u76f8\u5173\u7684\u6570\u636e\u5b58\u50a8\u53d8\u5f97\u66f4\u5bb9\u6613\u7406\u89e3\uff0c\u751a\u81f3\u5927\u591a\u6570\u7b80\u5355\u573a\u666f\u53ef\u4ee5\u505a\u5230\u8868\u5355\u5373\u6a21\u578b\uff0c\u6a21\u578b\u5b57\u6bb5\u7684\u7c7b\u578b\u66f4\u52a0\u4e1a\u52a1\u5316\uff1b"),(0,a.kt)("li",{parentName:"ul"},"API \u7f16\u6392\uff1a\u7f16\u6392 OpenAPI \u7b49\u4e3a BFF \u5c42\u63d0\u4f9b\u6570\u636e\u6e90"))),(0,a.kt)("li",{parentName:"ul"},"\u81ea\u52a8\u5316\u6d4b\u8bd5\uff1a\u63a2\u7d22\u57fa\u4e8e\u4f4e\u7801\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u65b9\u6848"),(0,a.kt)("li",{parentName:"ul"},"AIGC \u8f85\u52a9\u5de5\u5177\uff1a\u63a2\u7d22 AIGC \u5728\u4f4e\u7801\u5e73\u53f0\u7684\u5e94\u7528"),(0,a.kt)("li",{parentName:"ul"},"\u6269\u5c55\u66f4\u591a\u7684\u7f16\u8f91\u5668",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u53ef\u89c6\u5316\u6d41\u7a0b\u8bbe\u8ba1\uff0c\u4e0d\u7ba1\u662f\u4e1a\u52a1\u6d41\u7a0b\u8fd8\u662f\u5ba1\u6279\u6d41\u7a0b\uff0c\u90fd\u53ef\u4ee5\u901a\u8fc7\u7b80\u5355\u7684\u70b9\u7ebf\u8fde\u63a5\u6765\u8fdb\u884c\u914d\u7f6e\uff1b"),(0,a.kt)("li",{parentName:"ul"},"\u53ef\u89c6\u5316\u62a5\u8868\u53ca\u6570\u636e\u5206\u6790\uff1a BI \u6570\u636e\u5206\u6790\u80fd\u529b\u6210\u4e3a\u6807\u914d\uff0c\u968f\u65f6\u968f\u5730\u901a\u8fc7\u62d6\u62fd\u9009\u62e9\u6765\u5b9a\u4e49\u81ea\u5b9a\u4e49\u5206\u6790\u62a5\u8868\uff1b"))),(0,a.kt)("li",{parentName:"ul"},"\u6743\u9650\u3001\u89d2\u8272\u8bbe\u7f6e\u6807\u51c6\u5316\u548c\u4e1a\u52a1\u5316\uff1a\u901a\u8fc7\u7b56\u7565\u89c4\u5219\u914d\u7f6e\u6765\u5c06\u6570\u636e\u3001\u64cd\u4f5c\u7684\u6743\u9650\u8fdb\u884c\u7cbe\u7ec6\u5316\u7ba1\u7406\uff1b")))}m.isMDXComponent=!0},2384:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/yunti_arch-b78d802506579d6930bfd849bb573389.svg"}}]); \ No newline at end of file diff --git a/assets/js/88599150.c801135f.js b/assets/js/88599150.c801135f.js deleted file mode 100644 index 4dc74c6d7..000000000 --- a/assets/js/88599150.c801135f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6771],{3905:(t,e,n)=>{n.d(e,{Zo:()=>c,kt:()=>b});var r=n(7294);function l(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function u(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function i(t){for(var e=1;e=0||(l[n]=t[n]);return l}(t,e);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(t);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(l[n]=t[n])}return l}var a=r.createContext({}),s=function(t){var e=r.useContext(a),n=e;return t&&(n="function"==typeof t?t(e):i(i({},e),t)),n},c=function(t){var e=s(t.components);return r.createElement(a.Provider,{value:e},t.children)},d="mdxType",p={inlineCode:"code",wrapper:function(t){var e=t.children;return r.createElement(r.Fragment,{},e)}},k=r.forwardRef((function(t,e){var n=t.components,l=t.mdxType,u=t.originalType,a=t.parentName,c=o(t,["components","mdxType","originalType","parentName"]),d=s(n),k=l,b=d["".concat(a,".").concat(k)]||d[k]||p[k]||u;return n?r.createElement(b,i(i({ref:e},c),{},{components:n})):r.createElement(b,i({ref:e},c))}));function b(t,e){var n=arguments,l=e&&e.mdxType;if("string"==typeof t||l){var u=n.length,i=new Array(u);i[0]=k;var o={};for(var a in e)hasOwnProperty.call(e,a)&&(o[a]=e[a]);o.originalType=t,o[d]="string"==typeof t?t:l,i[1]=o;for(var s=2;s{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>i,default:()=>p,frontMatter:()=>u,metadata:()=>o,toc:()=>s});var r=n(7462),l=(n(7294),n(3905));const u={sidebar_position:2,title:"\u4ea7\u54c1\u4ecb\u7ecd",sidebar_label:"\u4ea7\u54c1\u4ecb\u7ecd"},i="\u4ea7\u54c1\u4ecb\u7ecd",o={unversionedId:"user-guid/intro",id:"user-guid/intro",title:"\u4ea7\u54c1\u4ecb\u7ecd",description:"KubeBB(Kubernetes Building Blocks)\u662f\u4e00\u79cd\u7531\u5185\u6838\u9a71\u52a8\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u5e73\u53f0\uff0c\u96c6\u6210\u4e86\u5f00\u7bb1\u5373\u7528\u7684\u4e91\u539f\u751f\u5e95\u5ea7\u548c\u4f4e\u7801\u7ec4\u4ef6\u5f00\u53d1\u80fd\u529b\u3002",source:"@site/docs/user-guid/intro.md",sourceDirName:"user-guid",slug:"/user-guid/intro",permalink:"/website/docs/user-guid/intro",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"\u4ea7\u54c1\u4ecb\u7ecd",sidebar_label:"\u4ea7\u54c1\u4ecb\u7ecd"},sidebar:"tutorialSidebar",previous:{title:"\u6700\u65b0\u52a8\u6001",permalink:"/website/docs/user-guid/version"},next:{title:"\u7ec4\u4ef6\u7ba1\u7406",permalink:"/website/docs/user-guid/component_anagement"}},a={},s=[{value:"\u529f\u80fd\u8bf4\u660e",id:"\u529f\u80fd\u8bf4\u660e",level:2},{value:"\u5e94\u7528\u573a\u666f",id:"\u5e94\u7528\u573a\u666f",level:2},{value:"\u5feb\u901f\u642d\u5efa\u60a8\u7684\u4e91\u539f\u751f\u5e73\u53f0",id:"\u5feb\u901f\u642d\u5efa\u60a8\u7684\u4e91\u539f\u751f\u5e73\u53f0",level:3}],c={toc:s},d="wrapper";function p(t){let{components:e,...u}=t;return(0,l.kt)(d,(0,r.Z)({},c,u,{components:e,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"\u4ea7\u54c1\u4ecb\u7ecd"},"\u4ea7\u54c1\u4ecb\u7ecd"),(0,l.kt)("p",null,"KubeBB(Kubernetes Building Blocks)\u662f\u4e00\u79cd\u7531\u5185\u6838\u9a71\u52a8\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u5e73\u53f0\uff0c\u96c6\u6210\u4e86\u5f00\u7bb1\u5373\u7528\u7684\u4e91\u539f\u751f\u5e95\u5ea7\u548c\u4f4e\u7801\u7ec4\u4ef6\u5f00\u53d1\u80fd\u529b\u3002"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"\u63d0\u4f9b\u5e95\u5ea7\u670d\u52a1\uff0c\u5feb\u901f\u5f00\u542f\u642d\u5efa"),"\uff1a\u63d0\u4f9b\u8d26\u53f7\u3001\u8ba4\u8bc1(OIDC)\u3001\u6743\u9650(RBAC)\u3001\u5ba1\u8ba1(Audit)\u7684\u57fa\u7840\u529f\u80fd\uff0c\u91c7\u7528\u66f4\u52a0\u6807\u51c6\u7684\u6280\u672f\u65b9\u5f0f\u63d0\u4f9b\u6784\u5efa\u7684\u5e95\u5ea7\u670d\u52a1"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"\u5185\u6838\u9a71\u52a8\u7684\u58f0\u660e\u5f0f\u7ec4\u4ef6\u7ba1\u7406"),"\uff1a\u63d0\u4f9b\u58f0\u660e\u5f0f\u7684\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406\u3001\u7ec4\u4ef6\u540c\u6b65\u3001\u7ec4\u4ef6\u8ba2\u9605\u3001\u90e8\u7f72\u4ee5\u53ca\u591a\u7ef4\u5ea6\u7684\u7ec4\u4ef6\u8bc4\u7ea7,\u5b8c\u6574\u9002\u914d Helm \u751f\u6001,\u96c6\u6210\u5fae\u524d\u7aef\u6846\u67b6"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("strong",{parentName:"li"},"\u7075\u6d3b\u7684\u7ec4\u4ef6\u5f00\u53d1\u6a21\u5f0f"),"\uff1a\u57fa\u4e8e\u5fae\u524d\u7aef\u6846\u67b6\u548c\u4f4e\u4ee3\u7801\u5f00\u53d1\uff0c\u5b9a\u4e49\u4e86\u6807\u51c6\u7684\u7ec4\u4ef6\u5c01\u88c5\u53ca\u53d1\u5e03\u6a21\u5f0f\uff0c\u8ba9\u5f00\u53d1\u8005\u53ef\u4ee5\u5728\u5e95\u5ea7\u4e4b\u4e0a\u6309\u7167\u5f00\u53d1\u89c4\u8303\u8fdb\u884c\u7ec4\u4ef6\u7684\u5feb\u901f\u5f00\u53d1\u548c\u53d1\u5e03\uff0c\u5e76\u5728\u7edf\u4e00\u7684\u670d\u52a1\u95e8\u6237\u4e0a\u5bf9\u5916\u63d0\u4f9b\u670d\u52a1")),(0,l.kt)("p",null,"\u5b98\u65b9\u63d0\u4f9b\u7684\u7ec4\u4ef6\u5305\u62ec\u5fae\u670d\u52a1\u6cbb\u7406\uff08TMF\uff09\u3001\u670d\u52a1\u7f51\u683c\uff08TDSF\uff09\u3001API\u7f51\u5173\uff08TAMP\uff09\u3001\u5e94\u7528\u6027\u80fd\u76d1\u63a7\uff08TAPM\uff09\u7684\u5f00\u6e90\u793e\u533a\u7248\u672c\uff0c\u8be6\u7ec6\u4ecb\u7ecd\u53c2\u89c1",(0,l.kt)("a",{parentName:"p",href:"https://docs.tenxcloud.com/"},(0,l.kt)("strong",{parentName:"a"},"\u5f00\u6e90\u6587\u6863"))),(0,l.kt)("h2",{id:"\u529f\u80fd\u8bf4\u660e"},"\u529f\u80fd\u8bf4\u660e"),(0,l.kt)("p",null,"Kubebb \u90e8\u7f72\u540e\u4e3b\u8981\u6709\u7ba1\u7406\u5de5\u4f5c\u53f0\u3001\u7ec4\u4ef6\u5e02\u573a\u4e24\u90e8\u5206\u80fd\u529b\u3002"),(0,l.kt)("table",null,(0,l.kt)("tr",null,(0,l.kt)("th",null,"\u6a21\u5757"),(0,l.kt)("th",{colspan:"2"},"\u8bf4\u660e")),(0,l.kt)("tr",null,(0,l.kt)("td",{rowspan:"4",width:"15%"},"\u7ec4\u4ef6\u5e02\u573a"),(0,l.kt)("td",{width:"20%"},"\u7ec4\u4ef6\u5e02\u573a"),(0,l.kt)("td",null,"\u7ec4\u4ef6\u7684\u5546\u5e97\uff0c\u652f\u6301\u6d4f\u89c8\u3001\u8ba2\u9605\u3001\u4e0b\u8f7d\u3001\u5b89\u88c5\u7ec4\u4ef6")),(0,l.kt)("tr",null,(0,l.kt)("td",null,"\u7ec4\u4ef6\u7ba1\u7406"),(0,l.kt)("td",null,"1. \u6211\u53d1\u5e03\u7684\uff1a\u652f\u6301\u624b\u52a8\u53d1\u5e03\u7ec4\u4ef6\u5230\u4ed3\u5e93\uff1b\u652f\u6301\u53d1\u5e03\u591a\u7248\u672c",(0,l.kt)("br",null)," 2. \u6211\u5b89\u88c5\u7684\uff1a\u652f\u6301\u5b89\u88c5\u3001\u66f4\u65b0\u3001\u5378\u8f7d\u7ec4\u4ef6\uff1b\u652f\u6301\u5386\u53f2\u7248\u672c\u7ba1\u7406\u548c\u7248\u672c\u56de\u6eda ",(0,l.kt)("br",null)," 3. \u6211\u8ba2\u9605\u7684\uff1a\u652f\u6301\u8ba2\u9605\u3001\u53d6\u6d88\u8ba2\u9605\u7ec4\u4ef6\uff1b\u652f\u6301\u7248\u672c\u66f4\u65b0\u63a8\u9001 ")),(0,l.kt)("tr",null,(0,l.kt)("td",null,"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406"),(0,l.kt)("td",null,"1. \u652f\u6301\u6dfb\u52a0\u3001\u7f16\u8f91\u3001\u5220\u9664\u7ec4\u4ef6\u4ed3\u5e93",(0,l.kt)("br",null)," 2. \u652f\u6301\u914d\u7f6e\u4ed3\u5e93\u5b89\u5168\u8ba4\u8bc1\u3001\u4ed3\u5e93\u540c\u6b65\u8bbe\u7f6e\u3001\u4ed3\u5e93\u7ec4\u4ef6\u8fc7\u6ee4\u89c4\u5219\u3001\u955c\u50cf\u4ed3\u5e93\u66ff\u6362\u89c4\u5219\u3001\u5f00\u542f\u7ec4\u4ef6\u8bc4\u6d4b\u7b49")),(0,l.kt)("tr",null,(0,l.kt)("td",null,"\u7ec4\u4ef6\u8bc4\u6d4b"),(0,l.kt)("td",null,"\u4f7f\u7528\u667a\u80fd AI \u5bf9\u7ec4\u4ef6\u4ece\u5b89\u5168\u6027\u3001\u53ef\u9760\u6027\u3001\u53ef\u7528\u6027\u4e09\u65b9\u9762\u8fdb\u884c\u7efc\u5408\u8bc4\u6d4b\uff0c\u4e3a\u60a8\u7684\u9009\u62e9\u63d0\u4f9b\u53c2\u8003\u6570\u636e")),(0,l.kt)("tr",null,(0,l.kt)("td",{rowspan:"6",width:"15%"},"\u7ba1\u7406\u5de5\u4f5c\u53f0"),(0,l.kt)("td",{width:"20%"},"\u96c6\u7fa4\u7ba1\u7406"),(0,l.kt)("td",null,"1. \u591a\u96c6\u7fa4\u7edf\u4e00\u89c6\u56fe\u7ba1\u7406",(0,l.kt)("br",null)," 2. \u8d44\u6e90\u7ba1\u7406\uff1a\u5206\u5185\u7f6e\u548c\u81ea\u5b9a\u4e49\u8d44\u6e90\uff0c\u5404\u8d44\u6e90\u652f\u6301yaml\u65b9\u5f0f\u67e5\u770b\u7f16\u8f91",(0,l.kt)("br",null)," 3. \u96c6\u7fa4\u89d2\u8272\u548c\u89d2\u8272\u6a21\u677f\u7ba1\u7406\uff1a\u96c6\u7fa4\u89d2\u8272\u652f\u6301\u7ed1\u5b9a\u89d2\u8272\u4e3b\u4f53\u6709\u6210\u5458\u3001\u7ec4\u548c\u670d\u52a1\u8d26\u53f7\uff0c\u5747\u652f\u6301yaml\u65b9\u5f0f\u67e5\u770b\u548c\u7f16\u8f91")),(0,l.kt)("tr",null,(0,l.kt)("td",null,"\u79df\u6237\u548c\u9879\u76ee\u7ba1\u7406"),(0,l.kt)("td",null,"1. \u591a\u79df\u6237\u3001\u591a\u9879\u76ee\u7edf\u4e00\u89c6\u56fe\u7ba1\u7406\uff1a\u67e5\u770b\u79df\u6237\u6216\u9879\u76ee\u6807\u7b7e\u3001\u6388\u6743\u96c6\u7fa4\u7b49",(0,l.kt)("br",null),"2. \u79df\u6237\u6388\u6743\u96c6\u7fa4\uff0c\u8bbe\u7f6e\u79df\u6237\u7ba1\u7406\u5458",(0,l.kt)("br",null),"3. \u9879\u76ee\u6388\u6743\u96c6\u7fa4\uff0c\u8bbe\u7f6e\u9879\u76ee\u7ba1\u7406\u5458",(0,l.kt)("br",null),"4. \u9879\u76ee\u5185\u89d2\u8272\u548c\u6210\u5458\u7ba1\u7406\u3001\u9879\u76ee\u5185\u670d\u52a1\u8d26\u53f7\u7ba1\u7406",(0,l.kt)("br",null),"5. \u5bf9\u5e94\u8d44\u6e90\u5747\u652f\u6301yaml\u65b9\u5f0f\u7f16\u8f91")),(0,l.kt)("tr",null,(0,l.kt)("td",null,"\u4e3b\u4f53\u7ba1\u7406"),(0,l.kt)("td",null,"\u7ba1\u7406\u6210\u5458\u548c\u7ec4\uff1a\u521b\u5efa\u3001\u67e5\u770b\u3001\u5220\u9664\u6210\u5458\uff1b\u4fee\u6539\u6210\u5458\u5bc6\u7801\uff1b\u521b\u5efa\u3001\u67e5\u770b\u3001\u5220\u9664\u7ec4\uff0c\u7ec4\u5185\u52a0\u5165\u6216\u79fb\u51fa\u6210\u5458")),(0,l.kt)("tr",null,(0,l.kt)("td",null,"\u83dc\u5355\u7ba1\u7406"),(0,l.kt)("td",null,"1. \u591a\u7ea7\u83dc\u5355\u7ba1\u7406\uff0c\u652f\u6301\u7ba1\u7406\u83dc\u5355\u540d\u79f0\u3001\u56fe\u6807\u3001\u884c\u5217\u6392\u5e8f\u3001\u8def\u5f84\u7b49",(0,l.kt)("br",null),"2. \u652f\u6301\u9ed8\u8ba4\u3001iframe\u5d4c\u5165\u3001\u94fe\u63a5\u8df3\u8f6c\u4e09\u79cd\u7c7b\u578b\u7684\u83dc\u5355\u6837\u5f0f",(0,l.kt)("br",null),"3. \u652f\u6301\u8bbe\u7f6e\u662f\u5426\u53ef\u89c1\uff1b\u8bbe\u7f6e\u83dc\u5355\u7684\u89d2\u8272\u6743\u9650\u7b49",(0,l.kt)("br",null),"4. \u652f\u6301\u4f7f\u7528JSON\u683c\u5f0f\u7684\u83dc\u5355\u6570\u636e\u5b9e\u73b0\u66f4\u591a\u81ea\u5b9a\u4e49\u83dc\u5355\u914d\u7f6e")),(0,l.kt)("tr",null,(0,l.kt)("td",null,"\u8bbe\u7f6e\u7ba1\u7406"),(0,l.kt)("td",null,"1. \u8d26\u6237\u4e2d\u5fc3\uff0c\u652f\u6301\u67e5\u770b\u7f16\u8f91\u624b\u673a\u3001\u90ae\u7bb1\uff1b\u4fee\u6539\u5bc6\u7801\u7b49\uff1b\u652f\u6301\u67e5\u770b\u6240\u5c5e\u79df\u6237\u9879\u76ee ",(0,l.kt)("br",null)," 2. \u5e73\u53f0\u4fe1\u606f\uff1a\u67e5\u770b\u6b63\u7248\u6388\u6743\u4fe1\u606f\u3001\u66f4\u65b0\u8bb8\u53ef\u8bc1\u7b49",(0,l.kt)("br",null)," 3. API \u51ed\u8bc1\uff0c\u652f\u6301\u67e5\u770b\u3001\u4e0b\u8f7dKubeconfig")),(0,l.kt)("tr",null,(0,l.kt)("td",null,"\u64cd\u4f5c\u5ba1\u8ba1"),(0,l.kt)("td",null,"\u7edf\u4e00\u67e5\u770b\u5bf9\u8d44\u6e90\u7684\u64cd\u4f5c\u8bb0\u5f55\uff0c\u652f\u6301\u79df\u6237\u3001\u9879\u76ee\u3001\u96c6\u7fa4\u3001\u64cd\u4f5c\u7c7b\u578b\u3001\u72b6\u6001\u3001\u53d1\u8d77\u8005\u7b49\u8fc7\u6ee4\u67e5\u8be2"))),(0,l.kt)("p",null,"\u7ba1\u7406\u5de5\u4f5c\u53f0\u7528\u6237\u6307\u5357\u8be6\u89c1",(0,l.kt)("a",{parentName:"p",href:"https://docs.tenxcloud.com/"},"\u7ba1\u7406\u5de5\u4f5c\u53f0")),(0,l.kt)("h2",{id:"\u5e94\u7528\u573a\u666f"},"\u5e94\u7528\u573a\u666f"),(0,l.kt)("h3",{id:"\u5feb\u901f\u642d\u5efa\u60a8\u7684\u4e91\u539f\u751f\u5e73\u53f0"},"\u5feb\u901f\u642d\u5efa\u60a8\u7684\u4e91\u539f\u751f\u5e73\u53f0"),(0,l.kt)("p",null,"Kubebb \u63d0\u4f9b\u4e86\u591a\u96c6\u7fa4\u591a\u79df\u6237\u7ba1\u7406\u3001\u83dc\u5355\u7ba1\u7406\u3001\u89d2\u8272\u548c\u6210\u5458\u7ba1\u7406\u3001OIDC \u8ba4\u8bc1\u7b49\u5b8c\u5584\u7684\u5e73\u53f0\u57fa\u7840\u80fd\u529b\u3002\u5185\u7f6e\u5b98\u65b9\u7ec4\u4ef6\uff0c\u901a\u8fc7\u4e91\u68af\u4f4e\u4ee3\u7801\u7ec4\u4ef6\u53ef\u5feb\u901f\u53d1\u5e03\u60a8\u7684\u5e94\u7528\uff1b\u901a\u8fc7\u5fae\u670d\u52a1\u6846\u67b6\u6216\u670d\u52a1\u7f51\u683c\u7edf\u4e00\u7ba1\u7406\u548c\u6cbb\u7406\u60a8\u7684\u5e94\u7528\uff1b\u901a\u8fc7\u5e94\u7528\u6027\u80fd\u76d1\u63a7\u7edf\u4e00\u89c2\u6d4b\u670d\u52a1\u8c03\u7528\uff0c\u8bbe\u7f6e\u94fe\u8def\u544a\u8b66\u3002\u540c\u65f6\u60a8\u53ef\u53d1\u5e03\u81ea\u5b9a\u4e49\u7ec4\u4ef6\uff0c\u4f8b\u5982\u5bb9\u5668\u670d\u52a1\u7ec4\u4ef6\uff0c\u5f62\u6210\u5e94\u7528\u7684\u5168\u751f\u547d\u5468\u671f\u7684\u7ba1\u7406\u548c\u6cbb\u7406\u3002\n",(0,l.kt)("img",{alt:"overview",src:n(7528).Z,width:"1134",height:"612"})))}p.isMDXComponent=!0},7528:(t,e,n)=>{n.d(e,{Z:()=>r});const r=n.p+"assets/images/struc-ff133d93cc9801277490171d61291487.png"}}]); \ No newline at end of file diff --git a/assets/js/8aa54216.d67cfeb5.js b/assets/js/8aa54216.d67cfeb5.js deleted file mode 100644 index 6d27a7df6..000000000 --- a/assets/js/8aa54216.d67cfeb5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2217],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i=a.createContext({}),u=function(e){var t=a.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=u(e.components);return a.createElement(i.Provider,{value:t},e.children)},b="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},k=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,p=c(e,["components","mdxType","originalType","parentName"]),b=u(n),k=r,d=b["".concat(i,".").concat(k)]||b[k]||s[k]||o;return n?a.createElement(d,l(l({ref:t},p),{},{components:n})):a.createElement(d,l({ref:t},p))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,l=new Array(o);l[0]=k;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[b]="string"==typeof e?e:r,l[1]=c;for(var u=2;u{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>s,frontMatter:()=>o,metadata:()=>c,toc:()=>u});var a=n(7462),r=(n(7294),n(3905));const o={sidebar_position:1},l="\u542f\u7528Rating",c={unversionedId:"core/userguide/enablerating",id:"core/userguide/enablerating",title:"\u542f\u7528Rating",description:"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cRating\u7ec4\u4ef6\u8bc4\u7ea7\u529f\u80fd\u662f\u5173\u95ed\u7684\uff0c\u9700\u8981\u624b\u52a8\u542f\u7528\u3002\u6211\u4eec\u5efa\u8bae\u6309\u7167\u4ee5\u4e0b\u6b65\u9aa4\u542f\u7528Rating:",source:"@site/docs/core/userguide/enablerating.md",sourceDirName:"core/userguide",slug:"/core/userguide/enablerating",permalink:"/website/docs/core/userguide/enablerating",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"\u7528\u6237\u6307\u5357",permalink:"/website/docs/category/\u7528\u6237\u6307\u5357"},next:{title:"\u79c1\u6709\u96c6\u7fa4\u90e8\u7f72\u65b9\u6848",permalink:"/website/docs/core/userguide/privatecluster"}},i={},u=[{value:"1.\u5b89\u88c5kubebb core",id:"1\u5b89\u88c5kubebb-core",level:2},{value:"2. \u521b\u5efa\u547d\u540d\u7a7a\u95f4 kubebb-addons",id:"2-\u521b\u5efa\u547d\u540d\u7a7a\u95f4-kubebb-addons",level:2},{value:"3. \u5b89\u88c5Tekton\u6d41\u6c34\u7ebf",id:"3-\u5b89\u88c5tekton\u6d41\u6c34\u7ebf",level:2},{value:"4. \u5b89\u88c5Arcadia AI\u7ec4\u4ef6",id:"4-\u5b89\u88c5arcadia-ai\u7ec4\u4ef6",level:2},{value:"5. \u66f4\u65b0\u5185\u6838",id:"5-\u66f4\u65b0\u5185\u6838",level:3}],p={toc:u},b="wrapper";function s(e){let{components:t,...n}=e;return(0,r.kt)(b,(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u542f\u7528rating"},"\u542f\u7528Rating"),(0,r.kt)("p",null,"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cRating\u7ec4\u4ef6\u8bc4\u7ea7\u529f\u80fd\u662f\u5173\u95ed\u7684\uff0c\u9700\u8981\u624b\u52a8\u542f\u7528\u3002\u6211\u4eec\u5efa\u8bae\u6309\u7167\u4ee5\u4e0b\u6b65\u9aa4\u542f\u7528Rating:"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"\u8be6\u7ec6\u4e86\u89e3\u66f4\u591aRating\u6709\u5173\u5185\u5bb9\uff0c\u8bf7\u53c2\u8003",(0,r.kt)("a",{parentName:"p",href:"../rating"},"\u7ec4\u4ef6\u8bc4\u7ea7\u8bbe\u8ba1"),"\u548c",(0,r.kt)("a",{parentName:"p",href:"../concepts/rating"},"Rating CRD\u5b9a\u4e49"))),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Rating"),"\u4f9d\u8d56\u4e24\u4e2a\u7ec4\u4ef6\uff0c\u5206\u522b\u662f:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Tekton"),"\u63d0\u4f9b\u6d41\u6c34\u7ebf\u80fd\u529b,\u5b8c\u6210\u7ec4\u4ef6\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"KubeAGI Arcadia"),"\u63d0\u4f9bAI\u6570\u636e\u5206\u6790\u80fd\u529b\uff0c\u5b8c\u6574\u7ec4\u4ef6\u7684AI\u8bc4\u6d4b")),(0,r.kt)("p",null,"\u56e0\u6b64, \u9700\u8981\u5148\u5b89\u88c5\u597dTekton\u548cArcadia, \u624d\u80fd\u4f7f\u7528Rating\u529f\u80fd\u3002"),(0,r.kt)("h2",{id:"1\u5b89\u88c5kubebb-core"},"1.\u5b89\u88c5kubebb core"),(0,r.kt)("p",null,"\u53c2\u8003",(0,r.kt)("a",{parentName:"p",href:"../../quick-start/core_quickstart"},"\u5b89\u88c5\u5185\u6838"),"\u5b8c\u6210\u5185\u6838(\u672a\u542f\u7528Rating)\u5b89\u88c5\u3002"),(0,r.kt)("h2",{id:"2-\u521b\u5efa\u547d\u540d\u7a7a\u95f4-kubebb-addons"},"2. \u521b\u5efa\u547d\u540d\u7a7a\u95f4 ",(0,r.kt)("inlineCode",{parentName:"h2"},"kubebb-addons")),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"\u540e\u7eed\u5b89\u88c5\u7684\u7ec4\u4ef6\u90fd\u4f1a\u6dfb\u52a0\u5230",(0,r.kt)("inlineCode",{parentName:"p"},"kubebb-addons"),"\u547d\u540d\u7a7a\u95f4\u4e2d\uff0c\u4f5c\u4e3akubebb\u7684\u6269\u5c55")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl create namespace kubebb-addons\n")),(0,r.kt)("h2",{id:"3-\u5b89\u88c5tekton\u6d41\u6c34\u7ebf"},"3. \u5b89\u88c5Tekton\u6d41\u6c34\u7ebf"),(0,r.kt)("p",null,"\u5b98\u65b9\u7ec4\u4ef6\u4ed3\u5e93\u63d0\u4f9b\u4e86",(0,r.kt)("a",{parentName:"p",href:"https://github.com/kubebb/components/tree/main/charts/tekton-operator"},"Tekton\u7ec4\u4ef6\u5b89\u88c5\u5305"),"\u548c",(0,r.kt)("a",{parentName:"p",href:"https://github.com/kubebb/components/tree/main/examples/tekton-operator"},"Tekton\u5b89\u88c5\u793a\u4f8b"),"\u3002\u53ef\u4ee5\u4f7f\u7528\u5185\u6838\u5feb\u901f\u5b8c\u6210tekton\u7684\u5b89\u88c5\u3002"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"\u6267\u884c\u4ee5\u4e0b\u547d\u4ee4\u524d\u9700\u8981\u786e\u4fdd\u7ec4\u4ef6kubebb.tekton-operator\u5df2\u7ecf\u540c\u6b65\u5b8c\u6210")),(0,r.kt)("p",null,"\u547d\u4ee4\u5982\u4e0b:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"# \u9ed8\u8ba4\u5b89\u88c5\u5230default\u547d\u540d\u7a7a\u95f4\nkubectl apply -f https://raw.githubusercontent.com/kubebb/components/main/examples/tekton-operator/componentplan.yaml\n")),(0,r.kt)("p",null,"\u67e5\u770b\u5b89\u88c5\u72b6\u6001:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get pods --watch\n")),(0,r.kt)("p",null,"\u5982\u679c\u5b89\u88c5\u5b8c\u6210,\u8f93\u51fa\u5982\u4e0b:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"\u276f kubectl get pods\nNAME READY STATUS RESTARTS AGE\nmy-tekton-tekton-operator-68bdffc888-8dtfx 2/2 Running 0 25m\nmy-tekton-tekton-operator-webhook-78bdfcbc77-6k6cx 1/1 Running 0 25m\n")),(0,r.kt)("p",null,"\u5982\u679c\u957f\u65f6\u95f4\u5b89\u88c5\u672a\u5b8c\u6210,\u53ef\u67e5\u770b\u5bf9\u5e94\u7684Componentplan\u8d44\u6e90\u7684\u72b6\u6001\u3002"),(0,r.kt)("h2",{id:"4-\u5b89\u88c5arcadia-ai\u7ec4\u4ef6"},"4. \u5b89\u88c5Arcadia AI\u7ec4\u4ef6"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"Arcadia\u7ec4\u4ef6\u4f4d\u4e8e\u53e6\u5916\u7684\u4e00\u4e2a",(0,r.kt)("a",{parentName:"p",href:"https://github.com/kubeagi/arcadia/tree/main/charts"},"\u7ec4\u4ef6\u4ed3\u5e93"))),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u6dfb\u52a0",(0,r.kt)("a",{parentName:"li",href:"https://github.com/kubebb/components/blob/main/repos/repository_arcadia.yaml"},"arcadia\u7ec4\u4ef6\u4ed3\u5e93"))),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl apply -f https://raw.githubusercontent.com/kubebb/components/main/repos/repository_arcadia.yaml\n")),(0,r.kt)("p",null,"\u6210\u529f\u540e\uff0c\u53ef\u901a\u8fc7\u5982\u4e0b\u547d\u4ee4\u67e5\u770b\u4ed3\u5e93\u4e2d\u7684\u7ec4\u4ef6:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get components -nkubebb-system -l kubebb.component.repository=arcadia\n")),(0,r.kt)("p",null,"\u5982\u679c\u4e00\u5207\u6b63\u5e38\uff0c\u8f93\u5165\u5982\u4e0b:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"\u276f kubectl get components -nkubebb-system -l kubebb.component.repository=arcadia\nNAME AGE\narcadia.arcadia 32s\narcadia.jupyterlab 32s\narcadia.llms 32s\n")),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"\u5b89\u88c5Arcadia AI\u7ec4\u4ef6")),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"\u6b64\u5904\u5efa\u8bae\u91c7\u7528\u7ec4\u4ef6\u8ba2\u9605\u81ea\u52a8\u5b89\u88c5\u7684\u6a21\u5f0f\uff0c\u9ed8\u8ba4\u5b89\u88c5\u5230default\u547d\u540d\u7a7a\u95f4")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl apply -f https://raw.githubusercontent.com/kubebb/components/main/examples/arcadia/subscription.yaml\n")),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},"\u67e5\u770b\u5b89\u88c5\u72b6\u6001")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"\u276f kubectl get pods --watch\nNAME READY STATUS RESTARTS AGE\nmy-tekton-tekton-operator-68bdffc888-8dtfx 2/2 Running 0 48m\nmy-tekton-tekton-operator-webhook-78bdfcbc77-6k6cx 1/1 Running 0 48m\narcadia-5cb86f8787-jvd7j 0/1 Pending 0 0s\narcadia-5cb86f8787-jvd7j 0/1 Pending 0 0s\narcadia-5cb86f8787-jvd7j 0/1 ContainerCreating 0 0s\narcadia-5cb86f8787-jvd7j 0/1 Running 0 20s\narcadia-5cb86f8787-jvd7j 1/1 Running 0 30s\n")),(0,r.kt)("h3",{id:"5-\u66f4\u65b0\u5185\u6838"},"5. \u66f4\u65b0\u5185\u6838"),(0,r.kt)("p",null,"\u901a\u8fc7\u8bbe\u7f6e\u53c2\u6570",(0,r.kt)("inlineCode",{parentName:"p"},"deployment.rating_enable=true"),"\u6765\u542f\u7528Rating"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"helm upgrade -nkubebb-system kubebb-core kubebb/kubebb-core --set deployment.rating_enable=true\n")),(0,r.kt)("p",null,"\u67e5\u770b\u5185\u6838Pod\u72b6\u6001:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"\u276f kubectl get pods -nkubebb-system --watch\nNAME READY STATUS RESTARTS AGE\nkubebb-core-65ddc99994-25k49 0/1 Running 0 7s\nkubebb-core-6d78d7d8fd-vxbc6 1/1 Running 0 119s\nkubebb-core-65ddc99994-25k49 1/1 Running 0 10s\nkubebb-core-6d78d7d8fd-vxbc6 1/1 Terminating 0 2m2s\nkubebb-core-6d78d7d8fd-vxbc6 0/1 Terminating 0 2m3s\nkubebb-core-6d78d7d8fd-vxbc6 0/1 Terminating 0 2m3s\nkubebb-core-6d78d7d8fd-vxbc6 0/1 Terminating 0 2m3s\n")),(0,r.kt)("p",null,"\u5982\u679c\u5347\u7ea7\u6210\u529f,\u5219\u53ef\u5728\u5185\u6838Pod\u5185\u770b\u5230\u5982\u4e0b\u65e5\u5fd7:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},'1.6935407235060694e+09 INFO Starting EventSource {"controller": "rating", "controllerGroup": "core.kubebb.k8s.com.cn", "controllerKind": "Rating", "source": "kind source: *v1alpha1.Rating"}\n1.6935407235063274e+09 INFO Starting EventSource {"controller": "rating", "controllerGroup": "core.kubebb.k8s.com.cn", "controllerKind": "Rating", "source": "kind source: *v1beta1.PipelineRun"}\n')))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8b32ec56.4946f215.js b/assets/js/8b32ec56.4946f215.js new file mode 100644 index 000000000..2757d7634 --- /dev/null +++ b/assets/js/8b32ec56.4946f215.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9292],{6587:e=>{e.exports=JSON.parse('{"title":"\u7ec4\u4ef6\u8bc4\u6d4b","description":"\u7ec4\u4ef6\u8bc4\u6d4b","slug":"/category/\u7ec4\u4ef6\u8bc4\u6d4b","permalink":"/website/docs/category/\u7ec4\u4ef6\u8bc4\u6d4b","navigation":{"previous":{"title":"\u7ec4\u4ef6\u8bc4\u6d4b","permalink":"/website/docs/develop-guid/core/concepts/rating"},"next":{"title":"\u5feb\u901f\u90e8\u7f72","permalink":"/website/docs/develop-guid/core/rating/enablerating"}}}')}}]); \ No newline at end of file diff --git a/assets/js/8d745e6e.ca19f709.js b/assets/js/8d745e6e.ca19f709.js deleted file mode 100644 index bd21cb81b..000000000 --- a/assets/js/8d745e6e.ca19f709.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1649],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>d});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var p=a.createContext({}),i=function(e){var n=a.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},c=function(e){var n=i(e.components);return a.createElement(p.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},k=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,p=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=i(t),k=r,d=u["".concat(p,".").concat(k)]||u[k]||m[k]||l;return t?a.createElement(d,o(o({ref:n},c),{},{components:t})):a.createElement(d,o({ref:n},c))}));function d(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,o=new Array(l);o[0]=k;var s={};for(var p in n)hasOwnProperty.call(n,p)&&(s[p]=n[p]);s.originalType=e,s[u]="string"==typeof e?e:r,o[1]=s;for(var i=2;i{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>s,toc:()=>i});var a=t(7462),r=(t(7294),t(3905));const l={sidebar_position:2},o="\u79c1\u6709\u96c6\u7fa4\u90e8\u7f72\u65b9\u6848",s={unversionedId:"core/userguide/privatecluster",id:"core/userguide/privatecluster",title:"\u79c1\u6709\u96c6\u7fa4\u90e8\u7f72\u65b9\u6848",description:"\u5728\u4f7f\u7528 kubebb-core \u4e4b\u524d\u6211\u4eec\u9700\u8981\u6709\u4e00\u4e2a k8s \u96c6\u7fa4\uff0c\u7248\u672c\u662f 1.24+\u3002",source:"@site/docs/core/userguide/privatecluster.md",sourceDirName:"core/userguide",slug:"/core/userguide/privatecluster",permalink:"/website/docs/core/userguide/privatecluster",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"\u542f\u7528Rating",permalink:"/website/docs/core/userguide/enablerating"},next:{title:"\u201c\u955c\u50cf\u66ff\u6362\u201d\u529f\u80fd\u7684\u5b8c\u6574\u8bf4\u660e",permalink:"/website/docs/core/userguide/imageoverride"}},p={},i=[{value:"1. \u51c6\u5907",id:"1-\u51c6\u5907",level:2},{value:"\u547d\u4ee4\u884c\u5de5\u5177",id:"\u547d\u4ee4\u884c\u5de5\u5177",level:3},{value:"\u955c\u50cf",id:"\u955c\u50cf",level:3},{value:"\u4ee3\u7801\u4ed3\u5e93",id:"\u4ee3\u7801\u4ed3\u5e93",level:3},{value:"2. \u521b\u5efa\u96c6\u7fa4",id:"2-\u521b\u5efa\u96c6\u7fa4",level:2},{value:"2.1 \u901a\u8fc7 kind \u521b\u5efa k8s \u96c6\u7fa4",id:"21-\u901a\u8fc7-kind-\u521b\u5efa-k8s-\u96c6\u7fa4",level:3},{value:"2.2 \u521b\u5efa\u5e26\u6709\u955c\u50cf Registry \u7684 kind \u96c6\u7fa4",id:"22-\u521b\u5efa\u5e26\u6709\u955c\u50cf-registry-\u7684-kind-\u96c6\u7fa4",level:3},{value:"3.\u5b89\u88c5 kubebb-core",id:"3\u5b89\u88c5-kubebb-core",level:2},{value:"4.\u90e8\u7f72 chartmuseum",id:"4\u90e8\u7f72-chartmuseum",level:2},{value:"5.\u4f7f\u7528 kubebb-core",id:"5\u4f7f\u7528-kubebb-core",level:2},{value:"5.1 \u90e8\u7f72\u4e00\u4e2a Repository",id:"51-\u90e8\u7f72\u4e00\u4e2a-repository",level:3},{value:"5.2 \u90e8\u7f72\u4e00\u4e2a Component",id:"52-\u90e8\u7f72\u4e00\u4e2a-component",level:3},{value:"5.3 Repository Image \u91cd\u5199",id:"53-repository-image-\u91cd\u5199",level:3}],c={toc:i},u="wrapper";function m(e){let{components:n,...t}=e;return(0,r.kt)(u,(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u79c1\u6709\u96c6\u7fa4\u90e8\u7f72\u65b9\u6848"},"\u79c1\u6709\u96c6\u7fa4\u90e8\u7f72\u65b9\u6848"),(0,r.kt)("p",null,"\u5728\u4f7f\u7528 kubebb-core \u4e4b\u524d\u6211\u4eec\u9700\u8981\u6709\u4e00\u4e2a k8s \u96c6\u7fa4\uff0c\u7248\u672c\u662f ",(0,r.kt)("inlineCode",{parentName:"p"},"1.24+"),"\u3002"),(0,r.kt)("h2",{id:"1-\u51c6\u5907"},"1. \u51c6\u5907"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u56e0\u4e3a\u662f\u5728\u79c1\u6709\u73af\u5883\u90e8\u7f72\uff0c\u6240\u4ee5\u9700\u8981\u901a\u8fc7\u67d0\u4e2a\u53ef\u4ee5\u8054\u7f51\u96c6\u7fa4\uff0c\u83b7\u53d6\u4e0b\u9762\u6240\u5fc5\u987b\u7684 \u547d\u4ee4\uff0c\u955c\u50cf\u4e0a\u4f20\u5230\u76ee\u6807\u8282\u70b9\u3002")),(0,r.kt)("h3",{id:"\u547d\u4ee4\u884c\u5de5\u5177"},"\u547d\u4ee4\u884c\u5de5\u5177"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"kind (",(0,r.kt)("a",{parentName:"li",href:"https://kind.sigs.k8s.io/docs/user/quick-start/#installation"},"https://kind.sigs.k8s.io/docs/user/quick-start/#installation"),")"),(0,r.kt)("li",{parentName:"ul"},"kubectl (",(0,r.kt)("a",{parentName:"li",href:"https://kubernetes.io/docs/tasks/tools/"},"https://kubernetes.io/docs/tasks/tools/"),")"),(0,r.kt)("li",{parentName:"ul"},"docker"),(0,r.kt)("li",{parentName:"ul"},"helm (",(0,r.kt)("a",{parentName:"li",href:"https://helm.sh/docs/intro/install/"},"https://helm.sh/docs/intro/install/"),")")),(0,r.kt)("h3",{id:"\u955c\u50cf"},"\u955c\u50cf"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"kindest/node:v1.24.4 (\u521b\u5efak8s\u96c6\u7fa4\uff0ckind\u8981\u662f\u7528\u7684\u955c\u50cf)"),(0,r.kt)("li",{parentName:"ul"},"kubebb/core:v0.1.4 (kubebb-core \u7684\u955c\u50cf)"),(0,r.kt)("li",{parentName:"ul"},"alpine:3.15 (\u7528\u6765\u6d4b\u8bd5registry\u662f\u5426\u6b63\u5e38)"),(0,r.kt)("li",{parentName:"ul"},"ghcr.io/helm/chartmuseum:v0.16.0")),(0,r.kt)("h3",{id:"\u4ee3\u7801\u4ed3\u5e93"},"\u4ee3\u7801\u4ed3\u5e93"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/kubebb/components"},"kubebb/components")," (\u8fd9\u91cc\u5305\u542b\u4e86kubebb\u7684\u57fa\u7840chart\u5305, \u56e0\u4e3a\u662f\u79c1\u6709\u90e8\u7f72\uff0c\u6240\u4ee5\u9700\u8981\u5148clone\u4e0b\u6765)")),(0,r.kt)("h2",{id:"2-\u521b\u5efa\u96c6\u7fa4"},"2. \u521b\u5efa\u96c6\u7fa4"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u5982\u679c\u5df2\u7ecf\u6709\u4e86\u955c\u50cf registry\uff0c\u6267\u884c\u6b65\u9aa4 ",(0,r.kt)("a",{parentName:"strong",href:"#21-%E9%80%9A%E8%BF%87-kind-%E5%88%9B%E5%BB%BA-k8s-%E9%9B%86%E7%BE%A4"},"2.1"),", \u6ca1\u6709\u955c\u50cf registry\uff0c\u6267\u884c\u6b65\u9aa4 ",(0,r.kt)("a",{parentName:"strong",href:"#22-%E5%88%9B%E5%BB%BA%E5%B8%A6%E6%9C%89%E9%95%9C%E5%83%8F-registry-%E7%9A%84-kind-%E9%9B%86%E7%BE%A4"},"2.2"))),(0,r.kt)("h3",{id:"21-\u901a\u8fc7-kind-\u521b\u5efa-k8s-\u96c6\u7fa4"},"2.1 \u901a\u8fc7 kind \u521b\u5efa k8s \u96c6\u7fa4"),(0,r.kt)("p",null,"\u4e0b\u9762\u662f\u521b\u5efa\u4e00\u4e2a\u5355\u8282\u70b9\u96c6\u7fa4\u7684\u914d\u7f6e\u6587\u4ef6:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'# conf.yaml\nkind: Cluster\napiVersion: kind.x-k8s.io/v1alpha4\nname: kubebb-core\nnodes:\n - role: control-plane\n image: kindest/node:v1.24.4\n kubeadmConfigPatches:\n - |\n kind: InitConfiguration\n nodeRegistration:\n kubeletExtraArgs:\n node-labels: "ingress-ready=true"\n extraPortMappings:\n - containerPort: 80\n hostPort: 80\n protocol: TCP\n - containerPort: 443\n hostPort: 443\n protocol: TCP\n')),(0,r.kt)("p",null,"\u521b\u5efa\u96c6\u7fa4"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kind create cluster --config=conf.yaml\n")),(0,r.kt)("p",null,"\u521b\u5efa\u6210\u529f\u8f93\u51fa\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},'Creating cluster "kubebb-core" ...\n \u2713 Ensuring node image (kindest/node:v1.24.4) \ud83d\uddbc\n \u2713 Preparing nodes \ud83d\udce6 \n \u2713 Writing configuration \ud83d\udcdc \n \u2713 Starting control-plane \ud83d\udd79\ufe0f \n \u2713 Installing CNI \ud83d\udd0c \n \u2713 Installing StorageClass \ud83d\udcbe \nSet kubectl context to "kind-kubebb-core"\nYou can now use your cluster with:\n\nkubectl cluster-info --context kind-kubebb-core\n\nNot sure what to do next? \ud83d\ude05 Check out https://kind.sigs.k8s.io/docs/user/quick-start/\n')),(0,r.kt)("p",null,"\u68c0\u67e5\u8282\u70b9"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"kubectl get node\n\nNAME STATUS ROLES AGE VERSION\nkubebb-core-control-plane Ready control-plane 70s v1.24.4\n")),(0,r.kt)("h3",{id:"22-\u521b\u5efa\u5e26\u6709\u955c\u50cf-registry-\u7684-kind-\u96c6\u7fa4"},"2.2 \u521b\u5efa\u5e26\u6709\u955c\u50cf Registry \u7684 kind \u96c6\u7fa4"),(0,r.kt)("p",null,"\u53ef\u4ee5\u901a\u8fc7kind\u90e8\u7f72\u96c6\u7fa4\u7684\u65f6\u5019\uff0c\u76f4\u63a5\u5e26\u51fa\u6765\u4e00\u4e2a, \u53c2\u8003\u8fd9\u91cc\u90e8\u7f72\u76f4\u63a5\u5e26\u51fa\u6765\u4e00\u4e2aregistry\n",(0,r.kt)("a",{parentName:"p",href:"https://kind.sigs.k8s.io/docs/user/local-registry/"},"https://kind.sigs.k8s.io/docs/user/local-registry/")),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u542f\u52a8 registry")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},'# 1. \u521b\u5efa\u5bb9\u5668\ndocker run \\\n -d --restart=always -p "127.0.0.1:5001:5000" --name kind-registry \\\n registry:2\n\n# 2. \u68c0\u67e5\u5bb9\u5668\u662f\u5426\u6b63\u5e38\u8fd0\u884c\ndocker ps\n\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\n27c8049d53b9 registry:2 "/entrypoint.sh /etc\u2026" 4 seconds ago Up 3 seconds 127.0.0.1:5001->5000/tcp kind-registry\n')),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"\u4fee\u6539\u914d\u7f6e\uff0c\u5e76\u521b\u5efa\u96c6\u7fa4")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'# conf-with-registry.yaml\nkind: Cluster\napiVersion: kind.x-k8s.io/v1alpha4\nname: kubebb-core\ncontainerdConfigPatches:\n - |-\n [plugins."io.containerd.grpc.v1.cri".registry.mirrors."localhost:5001"]\n endpoint = ["http://kind-registry:5000"]\nnodes:\n - role: control-plane\n image: kindest/node:v1.24.4\n kubeadmConfigPatches:\n - |\n kind: InitConfiguration\n nodeRegistration:\n kubeletExtraArgs:\n node-labels: "ingress-ready=true"\n extraPortMappings:\n - containerPort: 80\n hostPort: 80\n protocol: TCP\n - containerPort: 443\n hostPort: 443\n protocol: TCP\n---\napiVersion: v1\nkind: ConfigMap\nmetadata:\n name: local-registry-hosting\n namespace: kube-public\ndata:\n localRegistryHosting.v1: |\n host: "localhost:5001"\n help: "https://kind.sigs.k8s.io/docs/user/local-registry/"\n')),(0,r.kt)("p",null,"\u521b\u5efa\u96c6\u7fa4"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"# 1. create cluster\nkind create cluster --config=conf-with-registry.yaml\n")),(0,r.kt)("p",null,"\u521b\u5efa\u6210\u529f\uff0c\u8f93\u5165\u5982\u4e0b:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},'# \u8f93\u51fa\u5982\u4e0b\nCreating cluster "kubebb-core" ...\n \u2713 Ensuring node image (kindest/node:v1.24.4) \ud83d\uddbc\n \u2713 Preparing nodes \ud83d\udce6 \n \u2713 Writing configuration \ud83d\udcdc \n \u2713 Starting control-plane \ud83d\udd79\ufe0f \n \u2713 Installing CNI \ud83d\udd0c \n \u2713 Installing StorageClass \ud83d\udcbe \nSet kubectl context to "kind-kubebb-core"\nYou can now use your cluster with:\n\nkubectl cluster-info --context kind-kubebb-core\n\nNot sure what to do next? \ud83d\ude05 Check out https://kind.sigs.k8s.io/docs/user/quick-start/\n')),(0,r.kt)("p",null,"\u5c06 registry \u8fde\u63a5\u5230 ",(0,r.kt)("inlineCode",{parentName:"p"},"kind")," \u7f51\u7edc"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},'if [ "$(docker inspect -f=\'{{json .NetworkSettings.Networks.kind}}\' "kind-registry")" = \'null\' ]; then\n docker network connect "kind" "kind-registry"\nfi\n')),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},"\u6d4b\u8bd5\u955c\u50cf")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"docker tag alpine:3.15 localhost:5001/alpine:3.15\ndocker push localhost:5001/alpine:3.15\n")),(0,r.kt)("ol",{start:4},(0,r.kt)("li",{parentName:"ol"},"\u6d4b\u8bd5\u955c\u50cf\u4f7f\u7528")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'#deploy.yaml\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: log\n labels:\n app: log\nspec:\n replicas: 1\n selector:\n matchLabels:\n app: log\n template:\n metadata:\n labels:\n app: log\n spec:\n containers:\n - name: log\n image: localhost:5001/alpine:3.15\n command:\n - "/bin/sh"\n args:\n - "-c"\n - "while true; do echo hello; sleep 10;done"\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"# 1. \u521b\u5efadeployment\nkubectl apply -f deploy.yaml \n\n# 2. \u68c0\u67e5pod\u662f\u5426\u8fd0\u884c\nkubectl get po\n\nNAME READY STATUS RESTARTS AGE\nlog-847f844f96-wvb46 1/1 Running 0 1s\n\n# 3. \u67e5\u770bpod\u65e5\u5fd7\nkubectl logs -f log-847f844f96-wvb46\nhello\nhello\nhello\n^C\n")),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"3\u5b89\u88c5-kubebb-core"},"3.\u5b89\u88c5 kubebb-core"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u5c06\u955c\u50cf ",(0,r.kt)("inlineCode",{parentName:"li"},"kubebb/core:v0.1.4")," \u63a8\u5230\u4f60\u7684\u955c\u50cf registry\u3002")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"docker tag kubebb/core:v0.1.4 localhost:5001/core:v0.1.4\ndocker push localhost:5001/core:v0.1.4\n")),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"\u5b89\u88c5")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl create ns kubebb-system\ncd components/charts/kubebb-core\nhelm -nkubebb-system install kubebb --set deployment.image=localhost:5001/core:v0.1.4\n")),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},"\u6267\u884c\u7ed3\u679c")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get po -nkubebb-system\n\nNAME READY STATUS RESTARTS AGE\nkubebb-799f9c474d-c9jnn 1/1 Running 0 17s\n")),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"4\u90e8\u7f72-chartmuseum"},"4.\u90e8\u7f72 chartmuseum"),(0,r.kt)("p",null,"\u90e8\u7f72\u4e00\u4e2a\u79c1\u6709\u7684chart repo\uff0c\u7528\u6765\u5b58\u50a8chart\u5305\u3002"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u5c06\u955c\u50cf ",(0,r.kt)("inlineCode",{parentName:"li"},"ghcr.io/helm/chartmuseum:v0.16.0")," \u63a8\u5230\u4f60\u7684 registry")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"docker tag ghcr.io/helm/chartmuseum:v0.16.0 localhost:5001/chartmuseum:v0.16.0\ndocker push localhost:5001/chartmuseum:v0.16.0\n")),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"\u5b89\u88c5")),(0,r.kt)("p",null,"\u8fd9\u91cc\u6ce8\u610f\uff1a\u5982\u679c\u8981\u662f\u7528 chartmuseum \u7684 api \u5fc5\u987b\u8bbe\u7f6e ",(0,r.kt)("inlineCode",{parentName:"p"},"env.open.DISABLE_API=false")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"cd components/charts/chartmuseum\nhelm install chartmuseum --set image.repository=localhost:5001/chartmuseum --set env.open.DISABLE_API=false .\n")),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},"\u6267\u884c\u7ed3\u679c")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get po\n\nNAME READY STATUS RESTARTS AGE\nchartmuseum-6c4bc46898-6jj4b 1/1 Running 0 13s\n")),(0,r.kt)("ol",{start:4},(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"\u6d4b\u8bd5\u5305\u4e0a\u4f20"),(0,r.kt)("p",{parentName:"li"},"\u8fd9\u91cc\u53ef\u4ee5\u901a\u8fc7 nodePort\uff0cingress\u7b49\u65b9\u5f0f\u5c06 chartmuseum \u66b4\u9732\u51fa\u53bb\u3002\n\u76ee\u524d\u662f\u901a\u8fc7kind\u90e8\u7f72\u7684\u96c6\u7fa4\uff0c\u6ca1\u6709\u6620\u5c04\u66f4\u591a\u7684\u4e3b\u673a\u7aef\u53e3\uff0c\u6240\u4ee5\u8fd9\u91cc\u9009\u62e9 ",(0,r.kt)("inlineCode",{parentName:"p"},"port-forward")),(0,r.kt)("p",{parentName:"li"},"4.1 \u627e\u5230 chartmuseum \u7684\u670d\u52a1port\u4fe1\u606f"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get svc\nNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE\nchartmuseum ClusterIP 10.96.240.154 8080/TCP 2m59s\n")),(0,r.kt)("p",{parentName:"li"},"4.2 \u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"p"},"port-froward")," \u8f6c\u53d1"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl port-forward service/chartmuseum 8080:8080 --address=0.0.0.0\n")),(0,r.kt)("p",{parentName:"li"},"4.3 \u4e0a\u4f20chart\u5305\n\u8fd9\u91cc\u8fd8\u662f\u4ee5 chartmuseum \u6d4b\u8bd5"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-shell"},'cd components/charts/chartmuseum\nhelm pacakge .\n\n# \u6210\u529f\u5c06\u4f1a\u8f93\u51fa {"saved":true}\ncurl --data-binary "@chartmuseum-3.10.1.tgz" http://localhost:8080/api/charts\n')),(0,r.kt)("p",{parentName:"li"},"4.4 \u7ed3\u679c\u67e5\u770b"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"# \u67e5\u770b index.yaml\ncurl http://localhost:8080/index.yaml\n")),(0,r.kt)("p",{parentName:"li"},"4.4 \u4e0a\u4f20\u5176\u4ed6\u7684chart\u5305"),(0,r.kt)("p",{parentName:"li"},"\u5bf9\u4e8e ",(0,r.kt)("inlineCode",{parentName:"p"},"components/charts")," \u4e0b\u9762\u7684\u5176\u4ed6\u7684chart\u5305\u7528\u5230\u54ea\u4e9b\uff0c\u6309\u7167 ",(0,r.kt)("inlineCode",{parentName:"p"},"4.3")," \u6b65\u9aa4\u5c31\u53ef\u4ee5\u5b8c\u6210\u4e0a\u4f20\u3002"))),(0,r.kt)("hr",null),(0,r.kt)("h2",{id:"5\u4f7f\u7528-kubebb-core"},"5.\u4f7f\u7528 kubebb-core"),(0,r.kt)("h3",{id:"51-\u90e8\u7f72\u4e00\u4e2a-repository"},"5.1 \u90e8\u7f72\u4e00\u4e2a Repository"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# repo.yaml\napiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: Repository\nmetadata:\n name: kubebb\n namespace: kubebb-system\nspec:\n url: http://chartmuseum.default.svc.cluster.local:8080\n pullStategy:\n intervalSeconds: 120\n retry: 5\n")),(0,r.kt)("p",null,"\u521b\u5efa repository"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"# 1. \u521b\u5efa repository\nkubectl apply -f repo.yaml \n\n# 2. \u68c0\u67e5 components \u662f\u5426\u521b\u5efa\nkubectl get components.core.kubebb.k8s.com.cn -n kubebb-system\nNAME AGE\nkubebb.chartmuseum 2s\nkubebb.kubebb-core 2s\n")),(0,r.kt)("p",null,"\u53ef\u4ee5\u770b\u5230\u521b\u5efa\u4e86 repository \u540e\uff0c\u76f8\u5173\u7684 components \u5df2\u7ecf\u88ab\u521b\u5efa\u51fa\u6765\u4e86\u3002"),(0,r.kt)("h3",{id:"52-\u90e8\u7f72\u4e00\u4e2a-component"},"5.2 \u90e8\u7f72\u4e00\u4e2a Component"),(0,r.kt)("p",null,"\u90e8\u7f72 component \uff0c\u9700\u8981\u4f7f\u7528 componentplan \u8fd9\u4e2a\u8d44\u6e90\u3002\u8fd9\u91cc\u6211\u4eec\u9009\u62e9\u518d\u6b21\u90e8\u7f72\u4e00\u4e2a chartmuseum\u3002\u524d\u9762\u901a\u8fc7 helm \u90e8\u7f72\u7684 chartmuseum \u662f\u7ed9\u7cfb\u7edf\u5b58\u50a8chart\u7528\u7684\uff0c\u8fd9\u91cc\u90e8\u7f72\uff0c\u662f\u4e3a\u4e86\u6d4b\u8bd5\u529f\u80fd\u6b63\u5e38(\u6ca1\u641e\u5176\u4ed6\u7684chart\u5305)\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# componentplan.yaml\napiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: ComponentPlan\nmetadata:\n name: chartmuseum-test\n namespace: default\nspec:\n approved: true\n name: chartmuseum-test\n version: 3.10.1\n override:\n set:\n - image.repository=localhost:5001/chartmuseum \n - env.open.DISABLE_API=false\n component:\n name: kubebb.chartmuseum\n namespace: kubebb-system\n")),(0,r.kt)("p",null,"\u521b\u5efacompnentplan"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl apply -f componentplan.yaml\n")),(0,r.kt)("p",null,"\u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u53ef\u4ee5\u770b\u5230 ",(0,r.kt)("inlineCode",{parentName:"p"},"chartmuseum-test")," \u7684pod\u4e5f\u8d77\u6765\u4e86\u3002"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get po\n\nNAME READY STATUS RESTARTS AGE\nchartmuseum-6c4bc46898-msp7r 1/1 Running 0 107s\nchartmuseum-test-86d66fd5d7-lp2rn 1/1 Running 0 11s\n")),(0,r.kt)("h3",{id:"53-repository-image-\u91cd\u5199"},"5.3 Repository Image \u91cd\u5199"),(0,r.kt)("p",null,"\u8fd9\u4e2a\u6b65\u9aa4\u662f\u4e3a\u4e86\u6d4b\u8bd5 image \u66f4\u65b0\u7b56\u7565\uff0c\u5982\u679c\u4e0d\u9700\u8981\u53ef\u4ee5\u4e0d\u7528\u64cd\u4f5c\u3002\n\u6211\u4eec\u8fd8\u662f\u7528\u4e4b\u524d\u7684helm\u90e8\u7f72\u7684 chartmuseum\uff0c\u91cc\u9762\u6709\u4e00\u4e2achartmuseum \u7684\u5305\uff0c \u8981\u7528\u5230\u955c\u50cf"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"ghcr.io/helm/chartmuseum:v0.16.0")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'# repo-override-image.yaml\napiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: Repository\nmetadata:\n name: repo-override-image\n namespace: kubebb-system\nspec:\n url: http://chartmuseum.default.svc.cluster.local:8080\n pullStategy:\n intervalSeconds: 120\n retry: 5\n imageOverride:\n - registry: ghcr.io\n newRegistry: localhost:5001\n pathOverride:\n path: helm\n newPath: ""\n')),(0,r.kt)("p",null,"\u521b\u5efaRepository"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl apply -f repo-override-image.yaml\n")),(0,r.kt)("p",null,"\u521b\u5efa repository \u540e\uff0c\u67e5\u770b components"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get components -A\nNAMESPACE NAME AGE\nkubebb-system kubebb.chartmuseum 18m\nkubebb-system kubebb.kubebb-core 18m\nkubebb-system repo-override-image.chartmuseum 5s\nkubebb-system repo-override-image.kubebb-core 5s\n")),(0,r.kt)("p",null,"\u518d\u6b21\u5b89\u88c5 chartmuseum\n",(0,r.kt)("strong",{parentName:"p"},"\u6ce8\u610f\uff0c\u8fd9\u91cc\u6211\u4eec\u4e0d\u518d\u8bbe\u7f6e chartmuseum \u6240\u4f7f\u7528\u7684\u955c\u50cf\u3002")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"# componentplan-default-override.yaml\napiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: ComponentPlan\nmetadata:\n name: chartmuseum-test233\n namespace: default\nspec:\n approved: true\n name: chartmuseum-test233\n version: 3.10.1\n override:\n set:\n - env.open.DISABLE_API=false\n component:\n name: repo-override-image.chartmuseum\n namespace: kubebb-system\n")),(0,r.kt)("p",null,"\u521b\u5efa componentplan"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl apply -f componentplan-default-override.yaml\n")),(0,r.kt)("p",null,"\u68c0\u67e5pod\u7684\u8fd0\u884c\u60c5\u51b5"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get po\n\nNAME READY STATUS RESTARTS AGE\nchartmuseum-6c4bc46898-msp7r 1/1 Running 0 32m\nchartmuseum-test-86d66fd5d7-lp2rn 1/1 Running 0 31m\nchartmuseum-test233-544cbfb87c-b6pdd 1/1 Running 0 12s\n")),(0,r.kt)("p",null,"\u90e8\u7f72\u5b8c\u6210\u2705!"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8ec7214f.35ab15bb.js b/assets/js/8ec7214f.35ab15bb.js new file mode 100644 index 000000000..6ec3d3453 --- /dev/null +++ b/assets/js/8ec7214f.35ab15bb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4046],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>b});var r=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function a(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var c=r.createContext({}),l=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):a(a({},n),e)),t},s=function(e){var n=l(e.components);return r.createElement(c.Provider,{value:n},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),p=l(t),m=i,b=p["".concat(c,".").concat(m)]||p[m]||d[m]||o;return t?r.createElement(b,a(a({ref:n},s),{},{components:t})):r.createElement(b,a({ref:n},s))}));function b(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var o=t.length,a=new Array(o);a[0]=m;var u={};for(var c in n)hasOwnProperty.call(n,c)&&(u[c]=n[c]);u.originalType=e,u[p]="string"==typeof e?e:i,a[1]=u;for(var l=2;l{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>o,metadata:()=>u,toc:()=>l});var r=t(7462),i=(t(7294),t(3905));const o={sidebar_position:2},a="\u81ea\u5b9a\u4e49\u83dc\u5355",u={unversionedId:"develop-guid/building-base/configuration/customize-menu",id:"develop-guid/building-base/configuration/customize-menu",title:"\u81ea\u5b9a\u4e49\u83dc\u5355",description:"kubebb \u7684\u6240\u6709\u83dc\u5355\u5747\u57fa\u4e8e menu \u7684 CRD \u8fdb\u884c\u5b9a\u4e49\uff0c\u5982\u679c\u9700\u8981\u6dfb\u52a0\u81ea\u5df1\u7684\u83dc\u5355\uff0c\u53ef\u4ee5\u53c2\u8003\u4ee5\u4e0b memnu \u793a\u4f8b:",source:"@site/docs/develop-guid/building-base/configuration/customize-menu.md",sourceDirName:"develop-guid/building-base/configuration",slug:"/develop-guid/building-base/configuration/customize-menu",permalink:"/website/docs/develop-guid/building-base/configuration/customize-menu",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"\u81ea\u5b9a\u4e49\u95e8\u6237",permalink:"/website/docs/develop-guid/building-base/configuration/customize-portal"},next:{title:"\u4f7f\u7528\u7b2c\u4e09\u65b9\u7cfb\u7edf\u767b\u5f55",permalink:"/website/docs/develop-guid/building-base/configuration/3rd-party-account"}},c={},l=[],s={toc:l},p="wrapper";function d(e){let{components:n,...o}=e;return(0,i.kt)(p,(0,r.Z)({},s,o,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"\u81ea\u5b9a\u4e49\u83dc\u5355"},"\u81ea\u5b9a\u4e49\u83dc\u5355"),(0,i.kt)("p",null,"kubebb \u7684\u6240\u6709\u83dc\u5355\u5747\u57fa\u4e8e menu \u7684 CRD \u8fdb\u884c\u5b9a\u4e49\uff0c\u5982\u679c\u9700\u8981\u6dfb\u52a0\u81ea\u5df1\u7684\u83dc\u5355\uff0c\u53ef\u4ee5\u53c2\u8003\u4ee5\u4e0b memnu \u793a\u4f8b:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'# \u4e3b\u83dc\u5355\napiVersion: component.t7d.io/v1beta1\nkind: Menu\nmetadata:\n name: demo-menu\nspec:\n column: 1\n isRenderSelectCurrent: false\n parentOwnerReferences:\n apiVersion: ""\n kind: ""\n name: ""\n uid: ""\n rankingInColumn: 100\n tenant: true\n text: \u6d4b\u8bd5\u83dc\u5355\n textEn: "Test Menu"\n---\n# \u6d4b\u8bd5\u83dc\u5355\u7d22\u5f15\u83dc\u5355\napiVersion: component.t7d.io/v1beta1\nkind: Menu\nmetadata:\n name: demo-menu-index\nspec:\n getTitleForReplaceSider: {}\n parentOwnerReferences:\n apiVersion: component.t7d.io/v1beta1\n blockOwnerDeletion: false\n controller: false\n kind: Menu\n name: demo-menu\n uid: ""\n rankingInColumn: 100\n tenant: true\n text: \u83dc\u5355\u7d22\u5f15\u9879\n textEn: \u201cMenu Index Item"\n---\n# \u5b50\u83dc\u5355\uff0c\u5177\u5907\u5b9e\u9645\u94fe\u63a5\u529f\u80fd\napiVersion: component.t7d.io/v1beta1\nkind: Menu\nmetadata:\n name: demo-menu-submenu1\nspec:\n getTitleForReplaceSider: {}\n isRenderSelectCurrent: false\n parentOwnerReferences:\n apiVersion: component.t7d.io/v1beta1\n blockOwnerDeletion: false\n controller: false\n kind: Menu\n name: demo-menu-index\n uid: ""\n pathname: /demo-feature1\n rankingInColumn: 200\n text: \u6d4b\u8bd5\u5b50\u83dc\u5355\n textEn: "Test Submenu"\n')),(0,i.kt)("p",null,"\u4f7f\u7528 ",(0,i.kt)("inlineCode",{parentName:"p"},"kubectl apply -f")," \u5373\u53ef\u5c06\u83dc\u5355\u9879\u90e8\u7f72\u5230\u73af\u5883\u4e2d\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1a\n",(0,i.kt)("img",{alt:"\u56fe 1",src:t(625).Z,width:"1796",height:"516"})))}d.isMDXComponent=!0},625:(e,n,t)=>{t.d(n,{Z:()=>r});const r=t.p+"assets/images/4a52ae49bf01baee581357a57038c5792dab1fe153770917e42a5888a7ebebdc-fdbb239e6fc4fbeb5e8f8338d8f6d83b.png"}}]); \ No newline at end of file diff --git a/assets/js/9048d586.fc2d062f.js b/assets/js/9048d586.fc2d062f.js new file mode 100644 index 000000000..19c63f7c1 --- /dev/null +++ b/assets/js/9048d586.fc2d062f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8088],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>b});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function p(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=a.createContext({}),l=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):p(p({},n),e)),t},c=function(e){var n=l(e.components);return a.createElement(s.Provider,{value:n},e.children)},m="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},u=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=l(t),u=r,b=m["".concat(s,".").concat(u)]||m[u]||d[u]||o;return t?a.createElement(b,p(p({ref:n},c),{},{components:t})):a.createElement(b,p({ref:n},c))}));function b(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,p=new Array(o);p[0]=u;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[m]="string"==typeof e?e:r,p[1]=i;for(var l=2;l{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>p,default:()=>d,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var a=t(7462),r=(t(7294),t(3905));const o={sidebar_position:3},p="\u7ec4\u4ef6\u8ba2\u9605",i={unversionedId:"develop-guid/core/concepts/subscription",id:"develop-guid/core/concepts/subscription",title:"\u7ec4\u4ef6\u8ba2\u9605",description:"\u521b\u5efa\u4e00\u4e2a\u8ba2\u9605\uff0c\u8868\u793a\u7528\u6237\u5c06\u8ffd\u8e2a\u4e00\u4e2a\u7ec4\u4ef6\uff08Component\uff09\u5728 \u4ed3\u5e93\uff08Repository\uff09\u4e2d\u7684\u66f4\u65b0\uff0c\u5f53\u7ec4\u4ef6\u66f4\u65b0\u65f6\uff0c\u8be5\u7ec4\u4ef6\u4f1a\u6839\u636e\u8ba2\u9605\u4e2d\u7684\u914d\u7f6e\u81ea\u52a8\u6216\u5f85\u6279\u51c6\u540e\u5b89\u88c5\u5230\u96c6\u7fa4\u4e2d\u3002",source:"@site/docs/develop-guid/core/concepts/subscription.md",sourceDirName:"develop-guid/core/concepts",slug:"/develop-guid/core/concepts/subscription",permalink:"/website/docs/develop-guid/core/concepts/subscription",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"\u955c\u50cf\u66ff\u6362",permalink:"/website/docs/develop-guid/core/concepts/imageoverride"},next:{title:"\u7ec4\u4ef6\u90e8\u7f72",permalink:"/website/docs/develop-guid/core/concepts/componentplan"}},s={},l=[{value:"\u4f7f\u7528",id:"\u4f7f\u7528",level:2},{value:"CRD \u5b9a\u4e49\u8bf4\u660e",id:"crd-\u5b9a\u4e49\u8bf4\u660e",level:2},{value:"\u5de5\u4f5c\u539f\u7406",id:"\u5de5\u4f5c\u539f\u7406",level:2}],c={toc:l},m="wrapper";function d(e){let{components:n,...t}=e;return(0,r.kt)(m,(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u7ec4\u4ef6\u8ba2\u9605"},"\u7ec4\u4ef6\u8ba2\u9605"),(0,r.kt)("p",null,"\u521b\u5efa\u4e00\u4e2a\u8ba2\u9605\uff0c\u8868\u793a\u7528\u6237\u5c06\u8ffd\u8e2a\u4e00\u4e2a\u7ec4\u4ef6\uff08Component\uff09\u5728 \u4ed3\u5e93\uff08Repository\uff09\u4e2d\u7684\u66f4\u65b0\uff0c\u5f53\u7ec4\u4ef6\u66f4\u65b0\u65f6\uff0c\u8be5\u7ec4\u4ef6\u4f1a\u6839\u636e\u8ba2\u9605\u4e2d\u7684\u914d\u7f6e\u81ea\u52a8\u6216\u5f85\u6279\u51c6\u540e\u5b89\u88c5\u5230\u96c6\u7fa4\u4e2d\u3002"),(0,r.kt)("h2",{id:"\u4f7f\u7528"},"\u4f7f\u7528"),(0,r.kt)("p",null,"\u4e0b\u9762\u662f\u4e00\u4e2a\u8ba2\u9605\u7684\u793a\u4f8b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: Subscription\nmetadata:\n name: wordpress-sample\n namespace: kubebb-system\nspec:\n component:\n name: repository-bitnami-sample.wordpress\n namespace: kubebb-system\n repository:\n name: repository-bitnami-sample\n namespace: kubebb-system\n componentPlanInstallMethod: auto\n name: my-wordpress\n#status:\n# conditions:\n# - lastTransitionTime: "2023-06-07T13:32:26Z"\n# reason: ReconcileSuccess\n# status: "True"\n# type: SourceSynced\n# - lastTransitionTime: "2023-06-07T13:34:35Z"\n# reason: Available\n# status: "True"\n# type: Ready\n# - lastTransitionTime: "2023-06-07T13:34:34Z"\n# reason: ReconcileSuccess\n# status: "True"\n# type: PlanSynced\n# installed:\n# - componentPlan:\n# name: sub-wordpress-sample-16.1.13\n# namespace: kubebb-system\n# installedTime: "2023-06-07T13:34:34Z"\n# installedVersion:\n# appVersion: 6.2.2\n# createdAt: "2023-06-06T19:08:58Z"\n# deprecated: false\n# digest: 47096ed3f0a385e5830e90c75f443b7be107d7fa6df6aa869e7deb60b6cb6f8f\n# updatedAt: "2023-06-07T13:34:31Z"\n# version: 16.1.13\n# repositoryHealth:\n# healthy: true\n# lastUpdated: "2023-06-07T13:34:35Z"\n# repository:\n# name: repository-bitnami-sample\n# namespace: kubebb-system\n')),(0,r.kt)("p",null,"\u4e0a\u8ff0\u8ba2\u9605\u5b9a\u4e49\u4e86\u76d1\u63a7\u7684\u7ec4\u4ef6\u662f ",(0,r.kt)("inlineCode",{parentName:"p"},"kubebb-system")," \u547d\u540d\u7a7a\u95f4\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"repository-bitnami-sample.wordpress"),"\u3002\n\u5f53\u7ec4\u4ef6\u6709\u65b0\u7248\u672c\u53d1\u5e03\u65f6\uff0c\u5b89\u88c5\u65b9\u5f0f\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"auto")," \uff0c\u5373\u81ea\u52a8\u5b89\u88c5\u3002\n\u8be5\u7ec4\u4ef6\u4f1a\u88ab\u5b89\u88c5\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"my-wordpress")," \u3002\n\u67e5\u770b\u8be5\u8ba2\u9605\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"status")," \u53ef\u4ee5\u770b\u5230\u8be5\u8ba2\u9605\u4f1a\u663e\u793a\u7531\u8be5\u8ba2\u9605\u521b\u5efa\u7684\u7ec4\u4ef6\u5b89\u88c5\u8ba1\u5212\uff08ComponentPlan\uff09\uff0c\u4ee5\u53ca\u8be5\u8ba2\u9605\u5bf9\u5e94\u7684\u7ec4\u4ef6\u7684\u4ed3\u5e93\u7684\u5065\u5eb7\u72b6\u6001\u3002"),(0,r.kt)("h2",{id:"crd-\u5b9a\u4e49\u8bf4\u660e"},"CRD \u5b9a\u4e49\u8bf4\u660e"),(0,r.kt)("p",null,"CRD \u7684\u4ee3\u7801\u5b9a\u4e49\u4f4d\u4e8e ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/kubebb/core/blob/main/api/v1alpha1/subscription_types.go"},"subscription_types.go"),"\u3002\u63a5\u4e0b\u6765\u4f1a\u8be6\u7ec6\u4ecb\u7ecd\u6bcf\u4e2a\u5b57\u6bb5\u7684\u542b\u4e49\u53ca\u5176\u4f5c\u7528\u3002"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"\u8bf4\u660e \u5bf9\u4e8e\u4e0b\u9762\u7684 yaml\uff0c\u6211\u4eec\u60f3\u8981\u8bbf\u95ee bar \u5b57\u6bb5\uff0c\u4e66\u5199\u683c\u5f0f\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"spec.foo.bar")),(0,r.kt)("pre",{parentName:"admonition"},(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"spec:\n foo:\n bar: xx\n"))),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"spec.componet"),"\n\u8be5\u5b57\u6bb5\u7528\u6765\u6307\u660e\u8981\u76d1\u63a7\u7684\u7ec4\u4ef6\u5b9e\u4f8b\uff0c\u4e00\u822c\u4f7f\u7528 ",(0,r.kt)("inlineCode",{parentName:"p"},"namespace")," \u548c ",(0,r.kt)("inlineCode",{parentName:"p"},"name")," \u6765\u552f\u4e00\u786e\u5b9a")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"spec.repository")," ",(0,r.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5"),"\n\u8be5\u5b57\u6bb5\u7528\u6765\u6307\u660e\u8981\u76d1\u63a7\u7684\u7ec4\u4ef6\u6240\u5728\u7684\u4ed3\u5e93\u5b9e\u4f8b\uff0c\u4e00\u822c\u4f7f\u7528 ",(0,r.kt)("inlineCode",{parentName:"p"},"namespace")," \u548c ",(0,r.kt)("inlineCode",{parentName:"p"},"name")," \u6765\u552f\u4e00\u786e\u5b9a\uff0c\u4e00\u822c\u7531\u63a7\u5236\u5668\u81ea\u52a8\u586b\u5145\uff0c\u4e0d\u9700\u8981\u7528\u6237\u586b\u5199\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"spec.componentPlanInstallMethod")," ",(0,r.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5"),"\n\u7ec4\u4ef6\u5b89\u88c5\u8ba1\u5212\u7684\u5b89\u88c5\u65b9\u5f0f\uff0c\u9ed8\u8ba4\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"auto"),"\uff0c\u53ef\u9009\u9879\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"auto")," \u6216 ",(0,r.kt)("inlineCode",{parentName:"p"},"manual"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"spec.schedule")," ",(0,r.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5"),"\n\u7ec4\u4ef6\u5b89\u88c5\u8ba1\u5212\u7684\u5b89\u88c5\u65f6\u95f4\uff0c\u9ed8\u8ba4\u4e3a\u7a7a\uff0c\u53ea\u6709 ",(0,r.kt)("inlineCode",{parentName:"p"},"spec.componentPlanInstallMethod")," \u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"auto"),"\uff0c\u4e14\u4e0a\u6e38\u53d1\u5e03\u4e86\u65b0\u7248\u672c\u65f6\u624d\u6709\u751f\u6548\uff0c",(0,r.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Cron"},"Cron \u683c\u5f0f"),"\uff0c\u4f8b\u5982 ",(0,r.kt)("inlineCode",{parentName:"p"},"45 20 * * *"),"\uff0c\u4ee3\u8868\u6bcf\u5929 20:45 \u540e\u518d\u8fdb\u884c\u65b0\u7248\u672c\u5b89\u88c5\u3002"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre"},"# \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u5206 (0 - 59)\n# \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u65f6 (0 - 23)\n# \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u6708\u7684\u7b2c\u51e0\u5929 (1 - 31)\n# \u2502 \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u6708\u4efd (1 - 12)\n# \u2502 \u2502 \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u5468\u7684\u7b2c\u51e0\u5929 (0 - 6) (\u5468\u65e5\u5230\u5468\u516d)\n# \u2502 \u2502 \u2502 \u2502 \u2502 \n# \u2502 \u2502 \u2502 \u2502 \u2502\n# \u2502 \u2502 \u2502 \u2502 \u2502\n# * * * * * \n"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"spec.\u5176\u4ed6"),"\n\u8ba2\u9605\u4e2d\u5b8c\u6574\u7684\u5305\u542b\u4e86\u7ec4\u4ef6\u5b89\u88c5\u8ba1\u5212\u4e2d\u7684\u81ea\u5b9a\u4e49\u914d\u7f6e\u5b57\u6bb5\u3002\u8be6\u7ec6\u5185\u5bb9\u89c1\u7ec4\u4ef6\u5b89\u88c5\u8ba1\u5212\u7684\u6587\u6863\u3002"))),(0,r.kt)("h2",{id:"\u5de5\u4f5c\u539f\u7406"},"\u5de5\u4f5c\u539f\u7406"),(0,r.kt)("p",null,"\u8ba2\u9605\u4ee5 Kubernetes Operator \u65b9\u5f0f\u5b9e\u73b0\u3002\u5f53\u8ba2\u9605\u63a7\u5236\u5668\u76d1\u89c6\u53d1\u73b0\u96c6\u7fa4\u4e2d\u8ba2\u9605\u5bf9\u5e94\u7684\u7ec4\u4ef6\u521b\u5efa\u6216\u66f4\u65b0\u65f6\uff0c\u5224\u65ad\u8ba2\u9605\u672a\u5904\u7406\u8be5\u66f4\u65b0\u4e8b\u4ef6\u65f6\uff0c\u7528\u8ba2\u9605\u4e2d\u7684\u7ec4\u4ef6\u5b89\u88c5\u8ba1\u5212\u914d\u7f6e\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"sub-<\u8ba2\u9605\u540d>-<\u5b89\u88c5\u7248\u672c>")," \u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"ComponentPlan"),"\uff0c\u89e6\u53d1\u540e\u7eed\u7684\u7ec4\u4ef6\u5b89\u88c5\u6b65\u9aa4\u3002"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9115b1fc.3ccb976d.js b/assets/js/9115b1fc.3ccb976d.js deleted file mode 100644 index ed3d1441f..000000000 --- a/assets/js/9115b1fc.3ccb976d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9243],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>f});var r=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function i(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var c=r.createContext({}),s=function(e){var n=r.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},u=function(e){var n=s(e.components);return r.createElement(c.Provider,{value:n},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},d=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=s(t),d=a,f=p["".concat(c,".").concat(d)]||p[d]||m[d]||o;return t?r.createElement(f,i(i({ref:n},u),{},{components:t})):r.createElement(f,i({ref:n},u))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var o=t.length,i=new Array(o);i[0]=d;var l={};for(var c in n)hasOwnProperty.call(n,c)&&(l[c]=n[c]);l.originalType=e,l[p]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=t(7462),a=(t(7294),t(3905));const o={sidebar_position:4},i="\u4f53\u9a8c\u81ea\u5b9a\u4e49\u914d\u7f6e",l={unversionedId:"quick-start/try_customization",id:"quick-start/try_customization",title:"\u4f53\u9a8c\u81ea\u5b9a\u4e49\u914d\u7f6e",description:"1. \u81ea\u5b9a\u4e49\u95e8\u6237\u7684\u4e3b\u8272\u8c03",source:"@site/docs/quick-start/try_customization.md",sourceDirName:"quick-start",slug:"/quick-start/try_customization",permalink:"/website/docs/quick-start/try_customization",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"\u5b89\u88c5\u5e95\u5ea7",permalink:"/website/docs/quick-start/buildingbase_quickstart"},next:{title:"\u5185\u6838Kit",permalink:"/website/docs/category/\u5185\u6838kit"}},c={},s=[],u={toc:s},p="wrapper";function m(e){let{components:n,...o}=e;return(0,a.kt)(p,(0,r.Z)({},u,o,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u4f53\u9a8c\u81ea\u5b9a\u4e49\u914d\u7f6e"},"\u4f53\u9a8c\u81ea\u5b9a\u4e49\u914d\u7f6e"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u81ea\u5b9a\u4e49\u95e8\u6237\u7684\u4e3b\u8272\u8c03")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl edit cm portal-global-configs -n u4a-system\n")),(0,a.kt)("p",null,"\u4fee\u6539 primaryColor \u5373\u53ef\u81ea\u5b9a\u4e49\u95e8\u6237\u4e3b\u8272\u8c03"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: v1\nkind: ConfigMap\nmetadata:\n name: portal-global-configs\ndata:\n global-configs: |\n {"theme": {"primaryColor": "#FE8F35"}}\n')),(0,a.kt)("ol",{start:2},(0,a.kt)("li",{parentName:"ol"},"\u81ea\u5b9a\u4e49\u83dc\u5355")),(0,a.kt)("p",null,"kubebb \u7684\u6240\u6709\u83dc\u5355\u5747\u57fa\u4e8e menu \u7684 CRD \u8fdb\u884c\u5b9a\u4e49\uff0c\u5982\u679c\u9700\u8981\u6dfb\u52a0\u81ea\u5df1\u7684\u83dc\u5355\uff0c\u53ef\u4ee5\u53c2\u8003\u4ee5\u4e0b memnu \u793a\u4f8b:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'# \u4e3b\u83dc\u5355\napiVersion: component.t7d.io/v1beta1\nkind: Menu\nmetadata:\n name: demo-menu\nspec:\n column: 1\n isRenderSelectCurrent: false\n parentOwnerReferences:\n apiVersion: ""\n kind: ""\n name: ""\n uid: ""\n rankingInColumn: 100\n tenant: true\n text: \u6d4b\u8bd5\u83dc\u5355\n textEn: "Test Menu"\n---\n# \u6d4b\u8bd5\u83dc\u5355\u7d22\u5f15\u83dc\u5355\napiVersion: component.t7d.io/v1beta1\nkind: Menu\nmetadata:\n name: demo-menu-index\nspec:\n getTitleForReplaceSider: {}\n parentOwnerReferences:\n apiVersion: component.t7d.io/v1beta1\n blockOwnerDeletion: false\n controller: false\n kind: Menu\n name: demo-menu\n uid: ""\n rankingInColumn: 100\n tenant: true\n text: \u83dc\u5355\u7d22\u5f15\u9879\n textEn: \u201cMenu Index Item"\n---\n# \u5b50\u83dc\u5355\uff0c\u5177\u5907\u5b9e\u9645\u94fe\u63a5\u529f\u80fd\napiVersion: component.t7d.io/v1beta1\nkind: Menu\nmetadata:\n name: demo-menu-submenu1\nspec:\n getTitleForReplaceSider: {}\n isRenderSelectCurrent: false\n parentOwnerReferences:\n apiVersion: component.t7d.io/v1beta1\n blockOwnerDeletion: false\n controller: false\n kind: Menu\n name: demo-menu-index\n uid: ""\n pathname: /demo-feature1\n rankingInColumn: 200\n text: \u6d4b\u8bd5\u5b50\u83dc\u5355\n textEn: "Test Submenu"\n')),(0,a.kt)("p",null,"\u4f7f\u7528 ",(0,a.kt)("inlineCode",{parentName:"p"},"kubectl apply -f")," \u5373\u53ef\u5c06\u83dc\u5355\u9879\u90e8\u7f72\u5230\u73af\u5883\u4e2d\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1a\n",(0,a.kt)("img",{alt:"\u56fe 1",src:t(7506).Z,width:"1796",height:"516"})," "),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u8be6\u7ec6\u4ecb\u7ecd\u53c2\u8003 ",(0,a.kt)("a",{parentName:"li",href:"/website/docs/building-base/configuration/customize-menu"},"\u81ea\u5b9a\u4e49\u83dc\u5355"))),(0,a.kt)("ol",{start:3},(0,a.kt)("li",{parentName:"ol"},"\u591a\u8bed\u8a00 & \u767d\u5929/\u9ed1\u591c\u6a21\u5f0f")),(0,a.kt)("p",null,"1\uff09\u901a\u8fc7\u53f3\u4e0a\u89d2\u7684\u8bed\u8a00\u5207\u6362\u6309\u94ae\u8fdb\u884c\u591a\u8bed\u8a00\u5207\u6362\uff0c\u76ee\u524d\u652f\u6301\u4e2d\u6587\u3001\u82f1\u6587\u4e24\u79cd\u8bed\u8a00"),(0,a.kt)("p",null,"2\uff09\u901a\u8fc7\u53f3\u4e0a\u89d2\u7684\u6309\u94ae\u5207\u6362\u767d\u5929/\u9ed1\u591c\u6a21\u5f0f"))}m.isMDXComponent=!0},7506:(e,n,t)=>{t.d(n,{Z:()=>r});const r=t.p+"assets/images/4a52ae49bf01baee581357a57038c5792dab1fe153770917e42a5888a7ebebdc-fdbb239e6fc4fbeb5e8f8338d8f6d83b.png"}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.c8b37816.js b/assets/js/935f2afb.c8b37816.js new file mode 100644 index 000000000..79346bb3f --- /dev/null +++ b/assets/js/935f2afb.c8b37816.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"\u4ea7\u54c1\u4ecb\u7ecd","href":"/website/docs/intro","docId":"intro"},{"type":"link","label":"\u6700\u65b0\u52a8\u6001","href":"/website/docs/version","docId":"version"},{"type":"category","label":"\u5feb\u901f\u5f00\u59cb","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u5b89\u88c5 Kubebb","href":"/website/docs/quick-start/quick-install","docId":"quick-start/quick-install"},{"type":"link","label":"\u53d1\u5e03 HelloWorld \u7ec4\u4ef6","href":"/website/docs/quick-start/quick-experience","docId":"quick-start/quick-experience"}],"href":"/website/docs/category/\u5feb\u901f\u5f00\u59cb"},{"type":"category","label":"\u7528\u6237\u6307\u5357","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u7ec4\u4ef6\u7ba1\u7406","href":"/website/docs/user-guid/component_anagement","docId":"user-guid/component_anagement"},{"type":"link","label":"\u7ec4\u4ef6\u5e02\u573a","href":"/website/docs/user-guid/component_market","docId":"user-guid/component_market"},{"type":"link","label":"\u7ec4\u4ef6\u8bc4\u6d4b","href":"/website/docs/user-guid/component_rating","docId":"user-guid/component_rating"},{"type":"link","label":"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406","href":"/website/docs/user-guid/repository_anagement","docId":"user-guid/repository_anagement"}]},{"type":"category","label":"\u5f00\u53d1\u6307\u5357","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u603b\u89c8","href":"/website/docs/develop-guid/intro","docId":"develop-guid/intro"},{"type":"category","label":"\u5185\u6838Kit","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u4ecb\u7ecd","href":"/website/docs/develop-guid/core/intro","docId":"develop-guid/core/intro"},{"type":"category","label":"\u6982\u5ff5","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u7ec4\u4ef6\u4ed3\u5e93","href":"/website/docs/develop-guid/core/concepts/repository","docId":"develop-guid/core/concepts/repository"},{"type":"link","label":"\u7ec4\u4ef6","href":"/website/docs/develop-guid/core/concepts/component","docId":"develop-guid/core/concepts/component"},{"type":"link","label":"\u955c\u50cf\u66ff\u6362","href":"/website/docs/develop-guid/core/concepts/imageoverride","docId":"develop-guid/core/concepts/imageoverride"},{"type":"link","label":"\u7ec4\u4ef6\u8ba2\u9605","href":"/website/docs/develop-guid/core/concepts/subscription","docId":"develop-guid/core/concepts/subscription"},{"type":"link","label":"\u7ec4\u4ef6\u90e8\u7f72","href":"/website/docs/develop-guid/core/concepts/componentplan","docId":"develop-guid/core/concepts/componentplan"},{"type":"link","label":"\u6269\u5c55\u8d44\u6e90(\u5e95\u5ea7)","href":"/website/docs/develop-guid/core/concepts/buildingbase_resources","docId":"develop-guid/core/concepts/buildingbase_resources"},{"type":"link","label":"\u7ec4\u4ef6\u8bc4\u6d4b","href":"/website/docs/develop-guid/core/concepts/rating","docId":"develop-guid/core/concepts/rating"}],"href":"/website/docs/category/\u6982\u5ff5"},{"type":"category","label":"\u7ec4\u4ef6\u8bc4\u6d4b","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u5feb\u901f\u90e8\u7f72","href":"/website/docs/develop-guid/core/rating/enablerating","docId":"develop-guid/core/rating/enablerating"},{"type":"link","label":"\u529f\u80fd\u4ecb\u7ecd","href":"/website/docs/develop-guid/core/rating/","docId":"develop-guid/core/rating/rating"}],"href":"/website/docs/category/\u7ec4\u4ef6\u8bc4\u6d4b"}],"href":"/website/docs/category/\u5185\u6838kit"},{"type":"category","label":"\u5e95\u5ea7Kit","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u4ecb\u7ecd","href":"/website/docs/develop-guid/building-base/intro","docId":"develop-guid/building-base/intro"},{"type":"link","label":"\u6dfb\u52a0\u96c6\u7fa4","href":"/website/docs/develop-guid/building-base/add-cluster","docId":"develop-guid/building-base/add-cluster"},{"type":"category","label":"\u81ea\u5b9a\u4e49\u914d\u7f6e","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u81ea\u5b9a\u4e49\u95e8\u6237","href":"/website/docs/develop-guid/building-base/configuration/customize-portal","docId":"develop-guid/building-base/configuration/customize-portal"},{"type":"link","label":"\u81ea\u5b9a\u4e49\u83dc\u5355","href":"/website/docs/develop-guid/building-base/configuration/customize-menu","docId":"develop-guid/building-base/configuration/customize-menu"},{"type":"link","label":"\u4f7f\u7528\u7b2c\u4e09\u65b9\u7cfb\u7edf\u767b\u5f55","href":"/website/docs/develop-guid/building-base/configuration/3rd-party-account","docId":"develop-guid/building-base/configuration/3rd-party-account"},{"type":"link","label":"\u914d\u7f6e\u5ba1\u8ba1\u80fd\u529b","href":"/website/docs/develop-guid/building-base/configuration/audit-config","docId":"develop-guid/building-base/configuration/audit-config"},{"type":"link","label":"\u96c6\u6210\u5355\u70b9\u767b\u5f55","href":"/website/docs/develop-guid/building-base/configuration/oidc-integration","docId":"develop-guid/building-base/configuration/oidc-integration"},{"type":"link","label":"\u751f\u6210 oidc-proxy \u7684\u8bc1\u4e66","href":"/website/docs/develop-guid/building-base/configuration/issue-oidc-proxy-certs","docId":"develop-guid/building-base/configuration/issue-oidc-proxy-certs"}],"href":"/website/docs/category/\u81ea\u5b9a\u4e49\u914d\u7f6e"}],"href":"/website/docs/category/\u5e95\u5ea7kit"},{"type":"category","label":"\u4f4e\u7801 Kit","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u4ecb\u7ecd","href":"/website/docs/develop-guid/lowcode-development/intro","docId":"develop-guid/lowcode-development/intro"},{"type":"link","label":"\u5f00\u53d1\u6a21\u5f0f","href":"/website/docs/develop-guid/lowcode-development/development_pattern","docId":"develop-guid/lowcode-development/development_pattern"},{"type":"category","label":"\u7ec4\u4ef6\u5f00\u53d1","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u524d\u7aef\u5c42\u5f00\u53d1","href":"/website/docs/develop-guid/lowcode-development/development/frontend","docId":"develop-guid/lowcode-development/development/frontend"},{"type":"link","label":"\u524d\u7aef\u5c42\u57fa\u4e8e\u4f4e\u7801 Kit \u7684\u5f00\u53d1","href":"/website/docs/develop-guid/lowcode-development/development/frontend-low-code","docId":"develop-guid/lowcode-development/development/frontend-low-code"},{"type":"link","label":"BFF \u5c42 API \u5f00\u53d1","href":"/website/docs/develop-guid/lowcode-development/development/bff-apis","docId":"develop-guid/lowcode-development/development/bff-apis"},{"type":"link","label":"\u53d1\u5e03\u7ec4\u4ef6","href":"/website/docs/develop-guid/lowcode-development/development/develop-hello-world","docId":"develop-guid/lowcode-development/development/develop-hello-world"}],"href":"/website/docs/category/\u7ec4\u4ef6\u5f00\u53d1"}],"href":"/website/docs/category/\u4f4e\u7801-kit"},{"type":"link","label":"\u79c1\u6709\u96c6\u7fa4\u90e8\u7f72\u65b9\u6848","href":"/website/docs/develop-guid/privatecluster","docId":"develop-guid/privatecluster"},{"type":"category","label":"\u7ec4\u4ef6\u5e02\u573a","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"kubedashboard \u7ba1\u7406\u5de5\u5177","href":"/website/docs/develop-guid/component-market/kubedashboard","docId":"develop-guid/component-market/kubedashboard"},{"type":"link","label":"\u65e5\u5fd7\u7ec4\u4ef6","href":"/website/docs/develop-guid/component-market/logging","docId":"develop-guid/component-market/logging"},{"type":"link","label":"\u76d1\u63a7\u7ec4\u4ef6","href":"/website/docs/develop-guid/component-market/monitoring","docId":"develop-guid/component-market/monitoring"},{"type":"link","label":"\u533a\u5757\u94fe - \u8054\u76df\u94fe","href":"/website/docs/develop-guid/component-market/blockchain","docId":"develop-guid/component-market/blockchain"},{"type":"link","label":"\u4f7f\u7528 kubelogin \u5de5\u5177","href":"/website/docs/develop-guid/component-market/kubelogin","docId":"develop-guid/component-market/kubelogin"}],"href":"/website/docs/category/\u7ec4\u4ef6\u5e02\u573a"}]},{"type":"link","label":"\u5e38\u89c1\u95ee\u9898","href":"/website/docs/FAQ","docId":"FAQ"},{"type":"link","label":"\u8d21\u732e\u6307\u5357","href":"/website/docs/contribute","docId":"contribute"}]},"docs":{"contribute":{"id":"contribute","title":"\u8d21\u732e\u6307\u5357","description":"\u6b22\u8fce\u6765\u5230 KubeBB!","sidebar":"tutorialSidebar"},"develop-guid/building-base/add-cluster":{"id":"develop-guid/building-base/add-cluster","title":"\u6dfb\u52a0\u96c6\u7fa4","description":"1. \u4e3a\u96c6\u7fa4\u7ba1\u7406\u521b\u5efa\u4e00\u4e2a namespace\uff0c\u53ef\u4ee5\u4f7f\u7528 cluster-system\uff0c\u7528\u6765\u4fdd\u5b58\u96c6\u7fa4\u4fe1\u606f","sidebar":"tutorialSidebar"},"develop-guid/building-base/configuration/3rd-party-account":{"id":"develop-guid/building-base/configuration/3rd-party-account","title":"\u4f7f\u7528\u7b2c\u4e09\u65b9\u7cfb\u7edf\u767b\u5f55","description":"\u76ee\u524d\u57fa\u4e8e dex \u652f\u6301\u5916\u90e8\u8ba4\u8bc1\u7cfb\u7edf\u7684\u96c6\u6210\uff0c\u5b9e\u73b0\u670d\u52a1\u95e8\u6237\u4e0e\u7b2c\u4e09\u65b9\u8ba4\u8bc1\u7cfb\u7edf\u7684\u7edf\u4e00\u8d26\u53f7\u53ca\u5355\u70b9\u767b\u5f55\u3002","sidebar":"tutorialSidebar"},"develop-guid/building-base/configuration/audit-config":{"id":"develop-guid/building-base/configuration/audit-config","title":"\u914d\u7f6e\u5ba1\u8ba1\u80fd\u529b","description":"\u6ce8\u610f\uff0c\u5ba1\u8ba1\u529f\u80fd\u4f9d\u8d56\u5bf9\u5ba1\u8ba1\u65e5\u5fd7\u7684\u91c7\u96c6\u529f\u80fd\uff0c\u9700\u8981\u5728\u96c6\u7fa4\u8bbe\u7f6e\u4e2d\u914d\u7f6e\u65e5\u5fd7\u670d\u52a1 ElasticSearch \u7684\u5730\u5740\uff0c\u65e5\u5fd7\u670d\u52a1\u7684\u914d\u7f6e\u53c2\u8003\u65e5\u5fd7\u7ec4\u4ef6","sidebar":"tutorialSidebar"},"develop-guid/building-base/configuration/customize-menu":{"id":"develop-guid/building-base/configuration/customize-menu","title":"\u81ea\u5b9a\u4e49\u83dc\u5355","description":"kubebb \u7684\u6240\u6709\u83dc\u5355\u5747\u57fa\u4e8e menu \u7684 CRD \u8fdb\u884c\u5b9a\u4e49\uff0c\u5982\u679c\u9700\u8981\u6dfb\u52a0\u81ea\u5df1\u7684\u83dc\u5355\uff0c\u53ef\u4ee5\u53c2\u8003\u4ee5\u4e0b memnu \u793a\u4f8b:","sidebar":"tutorialSidebar"},"develop-guid/building-base/configuration/customize-portal":{"id":"develop-guid/building-base/configuration/customize-portal","title":"\u81ea\u5b9a\u4e49\u95e8\u6237","description":"\u81ea\u5b9a\u4e49 logo","sidebar":"tutorialSidebar"},"develop-guid/building-base/configuration/issue-oidc-proxy-certs":{"id":"develop-guid/building-base/configuration/issue-oidc-proxy-certs","title":"\u751f\u6210 oidc-proxy \u7684\u8bc1\u4e66","description":"\u4f7f\u7528\u573a\u666f\uff1a","sidebar":"tutorialSidebar"},"develop-guid/building-base/configuration/oidc-integration":{"id":"develop-guid/building-base/configuration/oidc-integration","title":"\u96c6\u6210\u5355\u70b9\u767b\u5f55","description":"\u901a\u8fc7 OIDC \u534f\u8bae\uff0c\u5b9e\u73b0\u540c kubebb \u7684\u7edf\u4e00\u8d26\u53f7\u3001\u8ba4\u8bc1\u53ca\u5355\u70b9\u767b\u5f55\u529f\u80fd\u3002","sidebar":"tutorialSidebar"},"develop-guid/building-base/intro":{"id":"develop-guid/building-base/intro","title":"\u4ecb\u7ecd","description":"\u6280\u672f\u7ec4\u4ef6","sidebar":"tutorialSidebar"},"develop-guid/component-market/blockchain":{"id":"develop-guid/component-market/blockchain","title":"\u533a\u5757\u94fe - \u8054\u76df\u94fe","description":"\u533a\u5757\u94fe\u7ec4\u4ef6\u76ee\u524d\u8fd8\u6ca1\u6709\u5b8c\u6210\u7ec4\u4ef6\u5316\uff0c\u4f46\u662f\u4f9d\u7136\u53ef\u4ee5\u57fa\u4e8e\u5e95\u5ea7Kit\u8fdb\u884c\u90e8\u7f72\uff0c\u8be6\u7ec6\u53c2\u8003 bestchains \u5e73\u53f0\u5b89\u88c5\u3002","sidebar":"tutorialSidebar"},"develop-guid/component-market/kubedashboard":{"id":"develop-guid/component-market/kubedashboard","title":"kubedashboard \u7ba1\u7406\u5de5\u5177","description":"\u8fd9\u91cc\u4ecb\u7ecd\u4e00\u4e0b\u5982\u4f55\u57fa\u4e8e kubebb \u7684\u5e95\u5ea7\u6765\u90e8\u7f72 Kubernetes Dashboard\uff0c\u5e76\u4f7f\u7528\u7edf\u4e00\u7684 OIDC \u8ba4\u8bc1\u3001\u5355\u70b9\u767b\u5f55\u53ca\u539f\u751f Kubernetes RBAC \u8ba4\u8bc1\u3002","sidebar":"tutorialSidebar"},"develop-guid/component-market/kubelogin":{"id":"develop-guid/component-market/kubelogin","title":"\u4f7f\u7528 kubelogin \u5de5\u5177","description":"Here is the steps about how to install kubelogin to integrate with OIDC server for kubectl tool, so you can do authentication with Kubernetes.","sidebar":"tutorialSidebar"},"develop-guid/component-market/logging":{"id":"develop-guid/component-market/logging","title":"\u65e5\u5fd7\u7ec4\u4ef6","description":"* ingress+rbac(\u63a8\u8350\u6a21\u5f0f)","sidebar":"tutorialSidebar"},"develop-guid/component-market/monitoring":{"id":"develop-guid/component-market/monitoring","title":"\u76d1\u63a7\u7ec4\u4ef6","description":"\u7b80\u4ecb","sidebar":"tutorialSidebar"},"develop-guid/core/concepts/buildingbase_resources":{"id":"develop-guid/core/concepts/buildingbase_resources","title":"\u6269\u5c55\u8d44\u6e90(\u5e95\u5ea7)","description":"\u5e95\u5ea7\u6269\u5c55\u8d44\u6e90\u7528\u4e8e\u9002\u914d\u5e95\u5ea7\u7684\u95e8\u6237\u670d\u52a1,\u4e0d\u6d89\u53ca\u6838\u5fc3\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u3002\u76ee\u524d\u4e3b\u8981\u6709\u4e24\u79cd:","sidebar":"tutorialSidebar"},"develop-guid/core/concepts/component":{"id":"develop-guid/core/concepts/component","title":"\u7ec4\u4ef6","description":"\u7ec4\u4ef6\u662f\u5c06 chart package \u6620\u5c04\u4e3a\u96c6\u7fa4\u8d44\u6e90\u7684\u4e00\u4e2a\u6982\u5ff5\uff0c\u7ec4\u4ef6\u5b9a\u4e49\u4e86 chart package \u7684\u57fa\u7840\u63cf\u8ff0\u4fe1\u606f\uff0c\u7248\u672c\u4fe1\u606f\u7b49\u3002\u7ec4\u4ef6\u4e00\u822c\u7531\u4ed3\u5e93\u521b\u5efa\u51fa\u6765\uff0c\u65e0\u9700\u624b\u52a8\u521b\u5efa\u3002","sidebar":"tutorialSidebar"},"develop-guid/core/concepts/componentplan":{"id":"develop-guid/core/concepts/componentplan","title":"\u7ec4\u4ef6\u90e8\u7f72","description":"ComponentPlan \u4f1a\u5b89\u88c5\u4e00\u4e2a\u7ec4\u4ef6\u5230\u96c6\u7fa4\uff0c\u7c7b\u4f3c\u6267\u884c\u4e00\u6b21 helm install/upgrade \u64cd\u4f5c\uff0c\u53ea\u4e0d\u8fc7\u5c06 helm install/upgrade \u547d\u4ee4\u4e2d\u7684\u53c2\u6570\u56fa\u5316\u5230 ComponentPlan \u7684 spec","sidebar":"tutorialSidebar"},"develop-guid/core/concepts/imageoverride":{"id":"develop-guid/core/concepts/imageoverride","title":"\u955c\u50cf\u66ff\u6362","description":"\u4ecb\u7ecd","sidebar":"tutorialSidebar"},"develop-guid/core/concepts/rating":{"id":"develop-guid/core/concepts/rating","title":"\u7ec4\u4ef6\u8bc4\u6d4b","description":"\u7ec4\u4ef6\u8bc4\u6d4b \u76ee\u7684\u662f\u901a\u8fc7\u5c3d\u53ef\u80fd\u591a\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\uff0c\u4ece\u591a\u4e2a\u7eac\u5ea6\u8bc4\u4f30\u4e00\u4e2a\u7ec4\u4ef6\u3002\u8bc4\u4f30\u4e00\u4e2a\u7ec4\u4ef6\u5206\u4e09\u4e2a\u90e8\u5206\u7684\u5185\u5bb9\uff1a","sidebar":"tutorialSidebar"},"develop-guid/core/concepts/repository":{"id":"develop-guid/core/concepts/repository","title":"\u7ec4\u4ef6\u4ed3\u5e93","description":"\u4ed3\u5e93\u662f\u5c06 chart repository \u6620\u5c04\u4e3a\u96c6\u7fa4\u8d44\u6e90\u7684\u4e00\u4e2a\u6982\u5ff5\u3002\u4ed3\u5e93\u5b9a\u4e49\u4e86 chart repository \u7684 URL\uff0c\u8ba4\u8bc1\u4fe1\u606f\u7b49\u76f8\u5173\u4fe1\u606f\u3002\u4ed3\u5e93\u662f\u7ec4\u4ef6\u90e8\u7f72\uff0c\u5347\u7ea7\u7684\u57fa\u7840\u3002","sidebar":"tutorialSidebar"},"develop-guid/core/concepts/subscription":{"id":"develop-guid/core/concepts/subscription","title":"\u7ec4\u4ef6\u8ba2\u9605","description":"\u521b\u5efa\u4e00\u4e2a\u8ba2\u9605\uff0c\u8868\u793a\u7528\u6237\u5c06\u8ffd\u8e2a\u4e00\u4e2a\u7ec4\u4ef6\uff08Component\uff09\u5728 \u4ed3\u5e93\uff08Repository\uff09\u4e2d\u7684\u66f4\u65b0\uff0c\u5f53\u7ec4\u4ef6\u66f4\u65b0\u65f6\uff0c\u8be5\u7ec4\u4ef6\u4f1a\u6839\u636e\u8ba2\u9605\u4e2d\u7684\u914d\u7f6e\u81ea\u52a8\u6216\u5f85\u6279\u51c6\u540e\u5b89\u88c5\u5230\u96c6\u7fa4\u4e2d\u3002","sidebar":"tutorialSidebar"},"develop-guid/core/intro":{"id":"develop-guid/core/intro","title":"\u4ecb\u7ecd","description":"\u5185\u6838\u57fa\u4e8ekubernetes operator\u6a21\u5f0f\u8fdb\u884c\u5f00\u53d1\uff0c\u63d0\u4f9b\u5b8c\u6574\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u3001\u7ec4\u4ef6\u8ba2\u9605\u548c\u81ea\u52a8\u5316\u90e8\u7f72\u80fd\u529b\uff0c\u5e76\u901a\u8fc7tekton\u6269\u5c55\u5b9e\u73b0\u7ec4\u4ef6\u81ea\u52a8\u5316\u8bc4\u6d4b\u548c\u5b89\u88c5\u524d\u6821\u9a8c\u7b49\u80fd\u529b\u3002","sidebar":"tutorialSidebar"},"develop-guid/core/rating/enablerating":{"id":"develop-guid/core/rating/enablerating","title":"\u5feb\u901f\u90e8\u7f72","description":"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cRating\u7ec4\u4ef6\u8bc4\u7ea7\u529f\u80fd\u662f\u5173\u95ed\u7684\uff0c\u9700\u8981\u624b\u52a8\u542f\u7528\u3002\u6211\u4eec\u5efa\u8bae\u6309\u7167\u4ee5\u4e0b\u6b65\u9aa4\u542f\u7528Rating:","sidebar":"tutorialSidebar"},"develop-guid/core/rating/rating":{"id":"develop-guid/core/rating/rating","title":"\u529f\u80fd\u4ecb\u7ecd","description":"\u7ec4\u4ef6\u8bc4\u6d4b\u7684\u76ee\u7684\u662f\u901a\u8fc7\u5c3d\u53ef\u80fd\u591a\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u4ece\u591a\u4e2a\u7ef4\u5ea6\u6765\u8bc4\u4f30\u4e00\u4e2a\u7ec4\u4ef6\u3002\u56e0\u6b64\uff0c\u7ec4\u4ef6\u8bc4\u6d4b\u4e09\u4e2a\u90e8\u5206\u7684\u5185\u5bb9:","sidebar":"tutorialSidebar"},"develop-guid/intro":{"id":"develop-guid/intro","title":"\u603b\u89c8","description":"KubeBB(Kubernetes Building Blocks)\u662f\u4e00\u79cd\u7531\u5185\u6838\u9a71\u52a8\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u5e73\u53f0\uff0c\u96c6\u6210\u5f00\u7bb1\u5373\u7528\u7684\u4e91\u539f\u751f\u5e95\u5ea7\u548c\u4f4e\u7801\u7ec4\u4ef6\u5f00\u53d1\u80fd\u529b,\u6574\u5408\u5b9e\u73b0\u4e91\u539f\u751f\u4e09\u5c42\u7ec4\u4ef6\u6a21\u5f0f\u3002","sidebar":"tutorialSidebar"},"develop-guid/lowcode-development/development_pattern":{"id":"develop-guid/lowcode-development/development_pattern","title":"\u5f00\u53d1\u6a21\u5f0f","description":"KubeBB \u7ec4\u4ef6\u7684\u5f00\u53d1\u91c7\u53d6\u524d\u540e\u7aef\u5206\u79bb\uff0c\u4ee5 K8S \u4e3a\u6838\u5fc3\u7684\u5f00\u53d1\u6846\u67b6\uff0c\u9075\u5faa K8S \u7684\u6269\u5c55\u673a\u5236\u53ca API \u89c4\u8303\u3002\u6574\u4f53\u5f00\u53d1\u67b6\u6784\u7684\u57fa\u672c\u903b\u8f91\u5982\u4e0b\u56fe\u6240\u793a\uff1a","sidebar":"tutorialSidebar"},"develop-guid/lowcode-development/development/bff-apis":{"id":"develop-guid/lowcode-development/development/bff-apis","title":"BFF \u5c42 API \u5f00\u53d1","description":"\u672c\u7ae0\u8282\u5bf9 Kubebb \u7684 BFF \u5c42\u8fdb\u884c\u8be6\u7ec6\u4ecb\u7ecd\uff0c\u5305\u62ec\u5982\u4f55\u4f7f\u7528 GraphQL \u5feb\u901f\u5f00\u53d1 BFF \u5c42\u7684 API","sidebar":"tutorialSidebar"},"develop-guid/lowcode-development/development/develop-hello-world":{"id":"develop-guid/lowcode-development/development/develop-hello-world","title":"\u53d1\u5e03\u7ec4\u4ef6","description":"\u672c\u7ae0\u8282\u4e3b\u8981\u4ecb\u7ecd\u53d1\u5e03\u7ba1\u7406\uff0c\u5373\u5728\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\u53d1\u5e03\u4e00\u4e2a\u5e94\u7528\u5230 Kubebb \u7ec4\u4ef6\u4ed3\u5e93\u3002\u53d1\u5e03\u6210\u529f\u540e\uff0c\u53ef\u8fdb\u5165 Kubebb \u7ec4\u4ef6\u5e02\u573a\u9875\u9762\uff0c\u67e5\u770b\u5e94\u7528\u6216\u5b89\u88c5\u4f7f\u7528\u3002","sidebar":"tutorialSidebar"},"develop-guid/lowcode-development/development/frontend":{"id":"develop-guid/lowcode-development/development/frontend","title":"\u524d\u7aef\u5c42\u5f00\u53d1","description":"KubeBB \u524d\u7aef\u5c42\u7684\u5f00\u53d1\u6a21\u5f0f\u4ecb\u7ecd\u3002","sidebar":"tutorialSidebar"},"develop-guid/lowcode-development/development/frontend-low-code":{"id":"develop-guid/lowcode-development/development/frontend-low-code","title":"\u524d\u7aef\u5c42\u57fa\u4e8e\u4f4e\u7801 Kit \u7684\u5f00\u53d1","description":"\u672c\u7ae0\u8282\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528\u4f4e\u7801 Kit \u5f00\u53d1\u524d\u7aef\u5e94\u7528\u3002","sidebar":"tutorialSidebar"},"develop-guid/lowcode-development/intro":{"id":"develop-guid/lowcode-development/intro","title":"\u4ecb\u7ecd","description":"\u4f4e\u7801 Kit \u5373\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\uff08\u4ee5\u4e0b\u7b80\u79f0\u201c\u4e91\u68af\u201d\uff09","sidebar":"tutorialSidebar"},"develop-guid/privatecluster":{"id":"develop-guid/privatecluster","title":"\u79c1\u6709\u96c6\u7fa4\u90e8\u7f72\u65b9\u6848","description":"\u5728\u4f7f\u7528 kubebb-core \u4e4b\u524d\u6211\u4eec\u9700\u8981\u6709\u4e00\u4e2a k8s \u96c6\u7fa4\uff0c\u7248\u672c\u662f 1.24+\u3002","sidebar":"tutorialSidebar"},"FAQ":{"id":"FAQ","title":"\u5e38\u89c1\u95ee\u9898","description":"BuildingBase\u76f8\u5173","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"\u4ea7\u54c1\u4ecb\u7ecd","description":"Kubebb(Kubernetes Building Blocks) \u662f\u4e00\u79cd\u7531\u5185\u6838\u9a71\u52a8\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u5e73\u53f0\uff0c\u96c6\u6210\u4e86\u5f00\u7bb1\u5373\u7528\u7684\u4e91\u539f\u751f\u5e95\u5ea7\u548c\u4f4e\u7801\u7ec4\u4ef6\u5f00\u53d1\u80fd\u529b\u3002","sidebar":"tutorialSidebar"},"quick-start/quick-experience":{"id":"quick-start/quick-experience","title":"\u53d1\u5e03 HelloWorld \u7ec4\u4ef6","description":"\u5df2\u5b8c\u6210 Kubebb \u7684\u5b89\u88c5\uff0c\u53c2\u8003\u5b89\u88c5 Kubebb","sidebar":"tutorialSidebar"},"quick-start/quick-install":{"id":"quick-start/quick-install","title":"\u5b89\u88c5 Kubebb","description":"\u51c6\u5907\u73af\u5883","sidebar":"tutorialSidebar"},"user-guid/component_anagement":{"id":"user-guid/component_anagement","title":"\u7ec4\u4ef6\u7ba1\u7406","description":"\u7ec4\u4ef6\u7ba1\u7406\u4e3b\u8981\u5206\u4e09\u90e8\u5206\u80fd\u529b\uff1a","sidebar":"tutorialSidebar"},"user-guid/component_market":{"id":"user-guid/component_market","title":"\u7ec4\u4ef6\u5e02\u573a","description":"\u7ec4\u4ef6\u5e02\u573a\u662f\u4e00\u4e2a\u5f00\u653e\u3001\u81ea\u7531\u3001\u5171\u4eab\u7684\u7ec4\u4ef6\u5546\u5e97\u3002\u6211\u4eec\u5185\u7f6e\u4e86\u5fae\u670d\u52a1\u6cbb\u7406\u3001\u670d\u52a1\u7f51\u683c\u3001API \u7f51\u5173\u3001\u5e94\u7528\u6027\u80fd\u76d1\u63a7\u7b49\u4ea7\u54c1\u7684\u5f00\u6e90\u793e\u533a\u7248\u672c\uff0c\u53ef\u5feb\u901f\u52a9\u60a8\u642d\u5efa\u4e00\u4e2a\u4e91\u539f\u751f\u5e94\u7528\u5e73\u53f0\u3002\u540c\u65f6\u60a8\u8fd8\u53ef\u53d1\u5e03\u81ea\u5b9a\u4e49\u7ec4\u4ef6\uff0c\u5728\u516c\u53f8\u3001\u90e8\u95e8\u5185\u5f00\u653e\u4f7f\u7528\uff0c\u907f\u514d\u91cd\u590d\u5f00\u53d1\uff0c\u5c06\u6280\u672f\u3001\u4eba\u529b\u3001\u8f6f\u786c\u4ef6\u8d44\u6e90\u8fbe\u5230\u6700\u9ad8\u5229\u7528\u7387\u3002","sidebar":"tutorialSidebar"},"user-guid/component_rating":{"id":"user-guid/component_rating","title":"\u7ec4\u4ef6\u8bc4\u6d4b","description":"\u4f7f\u7528\u667a\u80fd AI \u5bf9\u7ec4\u4ef6\u4ece\u5b89\u5168\u6027\u3001\u53ef\u9760\u6027\u3001\u53ef\u7528\u6027\u4e09\u65b9\u9762\u8fdb\u884c\u7efc\u5408\u8bc4\u6d4b\uff0c\u4e3a\u60a8\u7684\u9009\u62e9\u63d0\u4f9b\u53c2\u8003\u6570\u636e\u3002","sidebar":"tutorialSidebar"},"user-guid/repository_anagement":{"id":"user-guid/repository_anagement","title":"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406","description":"\u7ec4\u4ef6\u4ed3\u5e93\u4e3b\u8981\u7528\u6765\u5b58\u653e\u7ba1\u7406\u5404\u79cd\u7ec4\u4ef6\u3002","sidebar":"tutorialSidebar"},"version":{"id":"version","title":"\u6700\u65b0\u52a8\u6001","description":"\u672c\u6587\u4ecb\u7ecd\u4e86 Kubebb \u5404\u7248\u672c\u7684\u529f\u80fd\u53d1\u5e03\u548c\u5bf9\u5e94\u7684\u6587\u6863\u52a8\u6001\uff0c\u6b22\u8fce\u4f53\u9a8c\u3002","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.dbfd6440.js b/assets/js/935f2afb.dbfd6440.js deleted file mode 100644 index cda9d1288..000000000 --- a/assets/js/935f2afb.dbfd6440.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"\u603b\u89c8","href":"/website/docs/intro","docId":"intro"},{"type":"category","label":"\u5feb\u901f\u5f00\u59cb","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u9884\u5148\u51c6\u5907","href":"/website/docs/quick-start/prerequisite","docId":"quick-start/prerequisite"},{"type":"link","label":"\u5b89\u88c5\u5185\u6838","href":"/website/docs/quick-start/core_quickstart","docId":"quick-start/core_quickstart"},{"type":"link","label":"\u5b89\u88c5\u5e95\u5ea7","href":"/website/docs/quick-start/buildingbase_quickstart","docId":"quick-start/buildingbase_quickstart"},{"type":"link","label":"\u4f53\u9a8c\u81ea\u5b9a\u4e49\u914d\u7f6e","href":"/website/docs/quick-start/try_customization","docId":"quick-start/try_customization"}],"href":"/website/docs/category/\u5feb\u901f\u5f00\u59cb"},{"type":"category","label":"\u5185\u6838Kit","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u4ecb\u7ecd","href":"/website/docs/core/intro","docId":"core/intro"},{"type":"category","label":"\u6982\u5ff5","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u7ec4\u4ef6\u4ed3\u5e93","href":"/website/docs/core/concepts/repository","docId":"core/concepts/repository"},{"type":"link","label":"\u7ec4\u4ef6","href":"/website/docs/core/concepts/component","docId":"core/concepts/component"},{"type":"link","label":"\u7ec4\u4ef6\u90e8\u7f72","href":"/website/docs/core/concepts/componentplan","docId":"core/concepts/componentplan"},{"type":"link","label":"\u7ec4\u4ef6\u8ba2\u9605","href":"/website/docs/core/concepts/subscription","docId":"core/concepts/subscription"},{"type":"link","label":"\u6269\u5c55\u8d44\u6e90(\u5e95\u5ea7)","href":"/website/docs/core/concepts/buildingbase_resources","docId":"core/concepts/buildingbase_resources"},{"type":"link","label":"\u7ec4\u4ef6\u8bc4\u6d4b","href":"/website/docs/core/concepts/rating","docId":"core/concepts/rating"}],"href":"/website/docs/category/\u6982\u5ff5"},{"type":"category","label":"\u7528\u6237\u6307\u5357","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u542f\u7528Rating","href":"/website/docs/core/userguide/enablerating","docId":"core/userguide/enablerating"},{"type":"link","label":"\u79c1\u6709\u96c6\u7fa4\u90e8\u7f72\u65b9\u6848","href":"/website/docs/core/userguide/privatecluster","docId":"core/userguide/privatecluster"},{"type":"link","label":"\u201c\u955c\u50cf\u66ff\u6362\u201d\u529f\u80fd\u7684\u5b8c\u6574\u8bf4\u660e","href":"/website/docs/core/userguide/imageoverride","docId":"core/userguide/imageoverride"},{"type":"link","label":"\u4ece Helm \u547d\u4ee4\u8fc1\u79fb","href":"/website/docs/core/userguide/helmtofuture","docId":"core/userguide/helmtofuture"},{"type":"link","label":"\u7ec4\u4ef6\u5f00\u53d1","href":"/website/docs/core/userguide/component-dev","docId":"core/userguide/component-dev"}],"href":"/website/docs/category/\u7528\u6237\u6307\u5357"},{"type":"link","label":"\u7ec4\u4ef6\u8bc4\u6d4b","href":"/website/docs/core/rating","docId":"core/rating"},{"type":"link","label":"\u8def\u7ebf\u56fe","href":"/website/docs/core/roadmap","docId":"core/roadmap"}],"href":"/website/docs/category/\u5185\u6838kit"},{"type":"category","label":"\u5e95\u5ea7Kit","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u4ecb\u7ecd","href":"/website/docs/building-base/intro","docId":"building-base/intro"},{"type":"link","label":"\u6dfb\u52a0\u96c6\u7fa4","href":"/website/docs/building-base/add-cluster","docId":"building-base/add-cluster"},{"type":"category","label":"\u81ea\u5b9a\u4e49\u914d\u7f6e","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u81ea\u5b9a\u4e49\u95e8\u6237","href":"/website/docs/building-base/configuration/customize-portal","docId":"building-base/configuration/customize-portal"},{"type":"link","label":"\u81ea\u5b9a\u4e49\u83dc\u5355","href":"/website/docs/building-base/configuration/customize-menu","docId":"building-base/configuration/customize-menu"},{"type":"link","label":"\u4f7f\u7528\u7b2c\u4e09\u65b9\u7cfb\u7edf\u767b\u5f55","href":"/website/docs/building-base/configuration/3rd-party-account","docId":"building-base/configuration/3rd-party-account"},{"type":"link","label":"\u914d\u7f6e\u5ba1\u8ba1\u80fd\u529b","href":"/website/docs/building-base/configuration/audit-config","docId":"building-base/configuration/audit-config"},{"type":"link","label":"\u96c6\u6210\u5355\u70b9\u767b\u5f55","href":"/website/docs/building-base/configuration/oidc-integration","docId":"building-base/configuration/oidc-integration"},{"type":"link","label":"\u751f\u6210 oidc-proxy \u7684\u8bc1\u4e66","href":"/website/docs/building-base/configuration/issue-oidc-proxy-certs","docId":"building-base/configuration/issue-oidc-proxy-certs"}],"href":"/website/docs/category/\u81ea\u5b9a\u4e49\u914d\u7f6e"}],"href":"/website/docs/category/\u5e95\u5ea7kit"},{"type":"category","label":"\u4f4e\u7801 Kit","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u4ecb\u7ecd","href":"/website/docs/lowcode-development/intro","docId":"lowcode-development/intro"},{"type":"link","label":"\u5f00\u53d1\u6a21\u5f0f","href":"/website/docs/lowcode-development/development_pattern","docId":"lowcode-development/development_pattern"},{"type":"category","label":"\u7ec4\u4ef6\u5f00\u53d1","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u524d\u7aef\u5c42\u5f00\u53d1","href":"/website/docs/lowcode-development/development/frontend","docId":"lowcode-development/development/frontend"},{"type":"link","label":"\u524d\u7aef\u5c42\u57fa\u4e8e\u4f4e\u7801 Kit \u7684\u5f00\u53d1","href":"/website/docs/lowcode-development/development/frontend-low-code","docId":"lowcode-development/development/frontend-low-code"},{"type":"link","label":"BFF \u5c42 API \u5f00\u53d1","href":"/website/docs/lowcode-development/development/bff-apis","docId":"lowcode-development/development/bff-apis"},{"type":"link","label":"\u53d1\u5e03\u7ec4\u4ef6","href":"/website/docs/lowcode-development/development/develop-hello-world","docId":"lowcode-development/development/develop-hello-world"}],"href":"/website/docs/category/\u7ec4\u4ef6\u5f00\u53d1"}],"href":"/website/docs/category/\u4f4e\u7801-kit"},{"type":"category","label":"\u7ec4\u4ef6\u5e02\u573a","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"kubedashboard \u7ba1\u7406\u5de5\u5177","href":"/website/docs/component-market/kubedashboard","docId":"component-market/kubedashboard"},{"type":"link","label":"\u65e5\u5fd7\u7ec4\u4ef6","href":"/website/docs/component-market/logging","docId":"component-market/logging"},{"type":"link","label":"\u76d1\u63a7\u7ec4\u4ef6","href":"/website/docs/component-market/monitoring","docId":"component-market/monitoring"},{"type":"link","label":"\u533a\u5757\u94fe - \u8054\u76df\u94fe","href":"/website/docs/component-market/blockchain","docId":"component-market/blockchain"},{"type":"link","label":"\u4f7f\u7528 kubelogin \u5de5\u5177","href":"/website/docs/component-market/kubelogin","docId":"component-market/kubelogin"}],"href":"/website/docs/category/\u7ec4\u4ef6\u5e02\u573a"},{"type":"category","label":"\u7528\u6237\u6307\u5357","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"\u6700\u65b0\u52a8\u6001","href":"/website/docs/user-guid/version","docId":"user-guid/version"},{"type":"link","label":"\u4ea7\u54c1\u4ecb\u7ecd","href":"/website/docs/user-guid/intro","docId":"user-guid/intro"},{"type":"link","label":"\u7ec4\u4ef6\u7ba1\u7406","href":"/website/docs/user-guid/component_anagement","docId":"user-guid/component_anagement"},{"type":"link","label":"\u7ec4\u4ef6\u5e02\u573a","href":"/website/docs/user-guid/component_market","docId":"user-guid/component_market"},{"type":"link","label":"\u7ec4\u4ef6\u8bc4\u6d4b","href":"/website/docs/user-guid/component_rating","docId":"user-guid/component_rating"},{"type":"link","label":"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406","href":"/website/docs/user-guid/repository_anagement","docId":"user-guid/repository_anagement"}]},{"type":"link","label":"\u5e38\u89c1\u95ee\u9898","href":"/website/docs/FAQ","docId":"FAQ"},{"type":"link","label":"\u8d21\u732e\u6307\u5357","href":"/website/docs/contribute","docId":"contribute"}]},"docs":{"building-base/add-cluster":{"id":"building-base/add-cluster","title":"\u6dfb\u52a0\u96c6\u7fa4","description":"1. \u4e3a\u96c6\u7fa4\u7ba1\u7406\u521b\u5efa\u4e00\u4e2a namespace\uff0c\u53ef\u4ee5\u4f7f\u7528 cluster-system\uff0c\u7528\u6765\u4fdd\u5b58\u96c6\u7fa4\u4fe1\u606f","sidebar":"tutorialSidebar"},"building-base/configuration/3rd-party-account":{"id":"building-base/configuration/3rd-party-account","title":"\u4f7f\u7528\u7b2c\u4e09\u65b9\u7cfb\u7edf\u767b\u5f55","description":"\u76ee\u524d\u57fa\u4e8e dex \u652f\u6301\u5916\u90e8\u8ba4\u8bc1\u7cfb\u7edf\u7684\u96c6\u6210\uff0c\u5b9e\u73b0\u670d\u52a1\u95e8\u6237\u4e0e\u7b2c\u4e09\u65b9\u8ba4\u8bc1\u7cfb\u7edf\u7684\u7edf\u4e00\u8d26\u53f7\u53ca\u5355\u70b9\u767b\u5f55\u3002","sidebar":"tutorialSidebar"},"building-base/configuration/audit-config":{"id":"building-base/configuration/audit-config","title":"\u914d\u7f6e\u5ba1\u8ba1\u80fd\u529b","description":"\u6ce8\u610f\uff0c\u5ba1\u8ba1\u529f\u80fd\u4f9d\u8d56\u5bf9\u5ba1\u8ba1\u65e5\u5fd7\u7684\u91c7\u96c6\u529f\u80fd\uff0c\u9700\u8981\u5728\u96c6\u7fa4\u8bbe\u7f6e\u4e2d\u914d\u7f6e\u65e5\u5fd7\u670d\u52a1 ElasticSearch \u7684\u5730\u5740\uff0c\u65e5\u5fd7\u670d\u52a1\u7684\u914d\u7f6e\u53c2\u8003\u65e5\u5fd7\u7ec4\u4ef6","sidebar":"tutorialSidebar"},"building-base/configuration/customize-menu":{"id":"building-base/configuration/customize-menu","title":"\u81ea\u5b9a\u4e49\u83dc\u5355","description":"kubebb \u7684\u6240\u6709\u83dc\u5355\u5747\u57fa\u4e8e menu \u7684 CRD \u8fdb\u884c\u5b9a\u4e49\uff0c\u5982\u679c\u9700\u8981\u6dfb\u52a0\u81ea\u5df1\u7684\u83dc\u5355\uff0c\u53ef\u4ee5\u53c2\u8003\u4ee5\u4e0b memnu \u793a\u4f8b:","sidebar":"tutorialSidebar"},"building-base/configuration/customize-portal":{"id":"building-base/configuration/customize-portal","title":"\u81ea\u5b9a\u4e49\u95e8\u6237","description":"\u81ea\u5b9a\u4e49 logo","sidebar":"tutorialSidebar"},"building-base/configuration/issue-oidc-proxy-certs":{"id":"building-base/configuration/issue-oidc-proxy-certs","title":"\u751f\u6210 oidc-proxy \u7684\u8bc1\u4e66","description":"\u4f7f\u7528\u573a\u666f\uff1a","sidebar":"tutorialSidebar"},"building-base/configuration/oidc-integration":{"id":"building-base/configuration/oidc-integration","title":"\u96c6\u6210\u5355\u70b9\u767b\u5f55","description":"\u901a\u8fc7 OIDC \u534f\u8bae\uff0c\u5b9e\u73b0\u540c kubebb \u7684\u7edf\u4e00\u8d26\u53f7\u3001\u8ba4\u8bc1\u53ca\u5355\u70b9\u767b\u5f55\u529f\u80fd\u3002","sidebar":"tutorialSidebar"},"building-base/intro":{"id":"building-base/intro","title":"\u4ecb\u7ecd","description":"\u6280\u672f\u7ec4\u4ef6","sidebar":"tutorialSidebar"},"component-market/blockchain":{"id":"component-market/blockchain","title":"\u533a\u5757\u94fe - \u8054\u76df\u94fe","description":"\u533a\u5757\u94fe\u7ec4\u4ef6\u76ee\u524d\u8fd8\u6ca1\u6709\u5b8c\u6210\u7ec4\u4ef6\u5316\uff0c\u4f46\u662f\u4f9d\u7136\u53ef\u4ee5\u57fa\u4e8e\u5e95\u5ea7Kit\u8fdb\u884c\u90e8\u7f72\uff0c\u8be6\u7ec6\u53c2\u8003 bestchains \u5e73\u53f0\u5b89\u88c5\u3002","sidebar":"tutorialSidebar"},"component-market/kubedashboard":{"id":"component-market/kubedashboard","title":"kubedashboard \u7ba1\u7406\u5de5\u5177","description":"\u8fd9\u91cc\u4ecb\u7ecd\u4e00\u4e0b\u5982\u4f55\u57fa\u4e8e kubebb \u7684\u5e95\u5ea7\u6765\u90e8\u7f72 Kubernetes Dashboard\uff0c\u5e76\u4f7f\u7528\u7edf\u4e00\u7684 OIDC \u8ba4\u8bc1\u3001\u5355\u70b9\u767b\u5f55\u53ca\u539f\u751f Kubernetes RBAC \u8ba4\u8bc1\u3002","sidebar":"tutorialSidebar"},"component-market/kubelogin":{"id":"component-market/kubelogin","title":"\u4f7f\u7528 kubelogin \u5de5\u5177","description":"Here is the steps about how to install kubelogin to integrate with OIDC server for kubectl tool, so you can do authentication with Kubernetes.","sidebar":"tutorialSidebar"},"component-market/logging":{"id":"component-market/logging","title":"\u65e5\u5fd7\u7ec4\u4ef6","description":"* ingress+rbac(\u63a8\u8350\u6a21\u5f0f)","sidebar":"tutorialSidebar"},"component-market/monitoring":{"id":"component-market/monitoring","title":"\u76d1\u63a7\u7ec4\u4ef6","description":"\u7b80\u4ecb","sidebar":"tutorialSidebar"},"contribute":{"id":"contribute","title":"\u8d21\u732e\u6307\u5357","description":"\u6b22\u8fce\u6765\u5230 KubeBB!","sidebar":"tutorialSidebar"},"core/concepts/buildingbase_resources":{"id":"core/concepts/buildingbase_resources","title":"\u6269\u5c55\u8d44\u6e90(\u5e95\u5ea7)","description":"\u5e95\u5ea7\u6269\u5c55\u8d44\u6e90\u7528\u4e8e\u9002\u914d\u5e95\u5ea7\u7684\u95e8\u6237\u670d\u52a1,\u4e0d\u6d89\u53ca\u6838\u5fc3\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u3002\u76ee\u524d\u4e3b\u8981\u6709\u4e24\u79cd:","sidebar":"tutorialSidebar"},"core/concepts/component":{"id":"core/concepts/component","title":"\u7ec4\u4ef6","description":"\u7ec4\u4ef6\u662f\u5c06 chart package \u6620\u5c04\u4e3a\u96c6\u7fa4\u8d44\u6e90\u7684\u4e00\u4e2a\u6982\u5ff5\uff0c\u7ec4\u4ef6\u5b9a\u4e49\u4e86 chart package \u7684\u57fa\u7840\u63cf\u8ff0\u4fe1\u606f\uff0c\u7248\u672c\u4fe1\u606f\u7b49\u3002\u7ec4\u4ef6\u4e00\u822c\u7531\u4ed3\u5e93\u521b\u5efa\u51fa\u6765\uff0c\u65e0\u9700\u624b\u52a8\u521b\u5efa\u3002","sidebar":"tutorialSidebar"},"core/concepts/componentplan":{"id":"core/concepts/componentplan","title":"\u7ec4\u4ef6\u90e8\u7f72","description":"ComponentPlan \u4f1a\u5b89\u88c5\u4e00\u4e2a\u7ec4\u4ef6\u5230\u96c6\u7fa4\uff0c\u7c7b\u4f3c\u6267\u884c\u4e00\u6b21 helm install/upgrade \u64cd\u4f5c\uff0c\u53ea\u4e0d\u8fc7\u5c06 helm install/upgrade \u547d\u4ee4\u4e2d\u7684\u53c2\u6570\u56fa\u5316\u5230 ComponentPlan \u7684 spec","sidebar":"tutorialSidebar"},"core/concepts/rating":{"id":"core/concepts/rating","title":"\u7ec4\u4ef6\u8bc4\u6d4b","description":"\u7ec4\u4ef6\u8bc4\u6d4b \u76ee\u7684\u662f\u901a\u8fc7\u5c3d\u53ef\u80fd\u591a\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\uff0c\u4ece\u591a\u4e2a\u7eac\u5ea6\u8bc4\u4f30\u4e00\u4e2a\u7ec4\u4ef6\u3002\u8bc4\u4f30\u4e00\u4e2a\u7ec4\u4ef6\u5206\u4e09\u4e2a\u90e8\u5206\u7684\u5185\u5bb9\uff1a","sidebar":"tutorialSidebar"},"core/concepts/repository":{"id":"core/concepts/repository","title":"\u7ec4\u4ef6\u4ed3\u5e93","description":"\u4ed3\u5e93\u662f\u5c06 chart repository \u6620\u5c04\u4e3a\u96c6\u7fa4\u8d44\u6e90\u7684\u4e00\u4e2a\u6982\u5ff5\u3002\u4ed3\u5e93\u5b9a\u4e49\u4e86 chart repository \u7684 URL\uff0c\u8ba4\u8bc1\u4fe1\u606f\u7b49\u76f8\u5173\u4fe1\u606f\u3002\u4ed3\u5e93\u662f\u7ec4\u4ef6\u90e8\u7f72\uff0c\u5347\u7ea7\u7684\u57fa\u7840\u3002","sidebar":"tutorialSidebar"},"core/concepts/subscription":{"id":"core/concepts/subscription","title":"\u7ec4\u4ef6\u8ba2\u9605","description":"\u521b\u5efa\u4e00\u4e2a\u8ba2\u9605\uff0c\u8868\u793a\u7528\u6237\u5c06\u8ffd\u8e2a\u4e00\u4e2a\u7ec4\u4ef6\uff08Component\uff09\u5728 \u4ed3\u5e93\uff08Repository\uff09\u4e2d\u7684\u66f4\u65b0\uff0c\u5f53\u7ec4\u4ef6\u66f4\u65b0\u65f6\uff0c\u8be5\u7ec4\u4ef6\u4f1a\u6839\u636e\u8ba2\u9605\u4e2d\u7684\u914d\u7f6e\u81ea\u52a8\u6216\u5f85\u6279\u51c6\u540e\u5b89\u88c5\u5230\u96c6\u7fa4\u4e2d\u3002","sidebar":"tutorialSidebar"},"core/intro":{"id":"core/intro","title":"\u4ecb\u7ecd","description":"\u5185\u6838\u57fa\u4e8ekubernetes operator\u6a21\u5f0f\u8fdb\u884c\u5f00\u53d1\uff0c\u63d0\u4f9b\u5b8c\u6574\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u3001\u7ec4\u4ef6\u8ba2\u9605\u548c\u81ea\u52a8\u5316\u90e8\u7f72\u80fd\u529b\uff0c\u5e76\u901a\u8fc7tekton\u6269\u5c55\u5b9e\u73b0\u7ec4\u4ef6\u81ea\u52a8\u5316\u8bc4\u7ea7\u548c\u5b89\u88c5\u524d\u6821\u9a8c\u7b49\u80fd\u529b\u3002","sidebar":"tutorialSidebar"},"core/rating":{"id":"core/rating","title":"\u7ec4\u4ef6\u8bc4\u6d4b","description":"\u7ec4\u4ef6\u8bc4\u6d4b\u7684\u76ee\u7684\u662f\u901a\u8fc7\u5c3d\u53ef\u80fd\u591a\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u4ece\u591a\u4e2a\u7ef4\u5ea6\u6765\u8bc4\u4f30\u4e00\u4e2a\u7ec4\u4ef6\u3002\u56e0\u6b64\uff0c\u7ec4\u4ef6\u8bc4\u6d4b\u4e09\u4e2a\u90e8\u5206\u7684\u5185\u5bb9:","sidebar":"tutorialSidebar"},"core/roadmap":{"id":"core/roadmap","title":"\u8def\u7ebf\u56fe","description":"v0.1.0","sidebar":"tutorialSidebar"},"core/userguide/component-dev":{"id":"core/userguide/component-dev","title":"\u7ec4\u4ef6\u5f00\u53d1","description":"Kubebb\u7684\u7ec4\u4ef6\u5b89\u88c5\u5305\u91c7\u7528Helm\u6a21\u5f0f\uff0c\u9075\u5faaHelm charts\u5f00\u53d1\u89c4\u5219\u3002\u9664\u6b64\u4e4b\u5916\uff0c\u6211\u4eec\u989d\u5916\u5b9a\u4e49\u6dfb\u52a0\u4e86\u4e00\u4e9b\u7279\u6b8a\u5b57\u6bb5\u6765\u6ee1\u8db3\u4e00\u4e9b\u7ec4\u4ef6\u7684\u7279\u6b8a\u6027\u3002","sidebar":"tutorialSidebar"},"core/userguide/enablerating":{"id":"core/userguide/enablerating","title":"\u542f\u7528Rating","description":"\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0cRating\u7ec4\u4ef6\u8bc4\u7ea7\u529f\u80fd\u662f\u5173\u95ed\u7684\uff0c\u9700\u8981\u624b\u52a8\u542f\u7528\u3002\u6211\u4eec\u5efa\u8bae\u6309\u7167\u4ee5\u4e0b\u6b65\u9aa4\u542f\u7528Rating:","sidebar":"tutorialSidebar"},"core/userguide/helmtofuture":{"id":"core/userguide/helmtofuture","title":"\u4ece Helm \u547d\u4ee4\u8fc1\u79fb","description":"\u5185\u6838\u88ab\u8bbe\u8ba1\u4e3a\u5c3d\u91cf\u517c\u5bb9 Helm \u547d\u4ee4\uff0c\u5bf9\u4e8e\u4e00\u4e2a\u719f\u6089 Helm \u547d\u4ee4\u7684\u5f00\u53d1\u8005\u6216\u8005\u7528\u6237\uff0c\u4f7f\u7528\u5185\u6838\u5c06\u53d8\u5f97\u5f88\u5bb9\u6613\u3002","sidebar":"tutorialSidebar"},"core/userguide/imageoverride":{"id":"core/userguide/imageoverride","title":"\u201c\u955c\u50cf\u66ff\u6362\u201d\u529f\u80fd\u7684\u5b8c\u6574\u8bf4\u660e","description":"\u4ecb\u7ecd","sidebar":"tutorialSidebar"},"core/userguide/privatecluster":{"id":"core/userguide/privatecluster","title":"\u79c1\u6709\u96c6\u7fa4\u90e8\u7f72\u65b9\u6848","description":"\u5728\u4f7f\u7528 kubebb-core \u4e4b\u524d\u6211\u4eec\u9700\u8981\u6709\u4e00\u4e2a k8s \u96c6\u7fa4\uff0c\u7248\u672c\u662f 1.24+\u3002","sidebar":"tutorialSidebar"},"FAQ":{"id":"FAQ","title":"\u5e38\u89c1\u95ee\u9898","description":"BuildingBase\u76f8\u5173","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"\u603b\u89c8","description":"KubeBB(Kubernetes Building Blocks)\u662f\u4e00\u79cd\u7531\u5185\u6838\u9a71\u52a8\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u5e73\u53f0\uff0c\u96c6\u6210\u5f00\u7bb1\u5373\u7528\u7684\u4e91\u539f\u751f\u5e95\u5ea7\u548c\u4f4e\u7801\u7ec4\u4ef6\u5f00\u53d1\u80fd\u529b,\u6574\u5408\u5b9e\u73b0\u4e91\u539f\u751f\u4e09\u5c42\u7ec4\u4ef6\u6a21\u5f0f\u3002","sidebar":"tutorialSidebar"},"lowcode-development/development_pattern":{"id":"lowcode-development/development_pattern","title":"\u5f00\u53d1\u6a21\u5f0f","description":"KubeBB \u7ec4\u4ef6\u7684\u5f00\u53d1\u91c7\u53d6\u524d\u540e\u7aef\u5206\u79bb\uff0c\u4ee5 K8S \u4e3a\u6838\u5fc3\u7684\u5f00\u53d1\u6846\u67b6\uff0c\u9075\u5faa K8S \u7684\u6269\u5c55\u673a\u5236\u53ca API \u89c4\u8303\u3002\u6574\u4f53\u5f00\u53d1\u67b6\u6784\u7684\u57fa\u672c\u903b\u8f91\u5982\u4e0b\u56fe\u6240\u793a\uff1a","sidebar":"tutorialSidebar"},"lowcode-development/development/bff-apis":{"id":"lowcode-development/development/bff-apis","title":"BFF \u5c42 API \u5f00\u53d1","description":"\u672c\u7ae0\u8282\u5bf9 Kubebb \u7684 BFF \u5c42\u8fdb\u884c\u8be6\u7ec6\u4ecb\u7ecd\uff0c\u5305\u62ec\u5982\u4f55\u4f7f\u7528 GraphQL \u5feb\u901f\u5f00\u53d1 BFF \u5c42\u7684 API","sidebar":"tutorialSidebar"},"lowcode-development/development/develop-hello-world":{"id":"lowcode-development/development/develop-hello-world","title":"\u53d1\u5e03\u7ec4\u4ef6","description":"\u672c\u7ae0\u8282\u4e3b\u8981\u4ecb\u7ecd\u53d1\u5e03\u7ba1\u7406\uff0c\u5373\u5728\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\u53d1\u5e03\u4e00\u4e2a\u5e94\u7528\u5230 Kubebb \u7ec4\u4ef6\u4ed3\u5e93\u3002\u53d1\u5e03\u6210\u529f\u540e\uff0c\u53ef\u8fdb\u5165 Kubebb \u7ec4\u4ef6\u5e02\u573a\u9875\u9762\uff0c\u67e5\u770b\u5e94\u7528\u6216\u5b89\u88c5\u4f7f\u7528\u3002","sidebar":"tutorialSidebar"},"lowcode-development/development/frontend":{"id":"lowcode-development/development/frontend","title":"\u524d\u7aef\u5c42\u5f00\u53d1","description":"KubeBB \u524d\u7aef\u5c42\u7684\u5f00\u53d1\u6a21\u5f0f\u4ecb\u7ecd\u3002","sidebar":"tutorialSidebar"},"lowcode-development/development/frontend-low-code":{"id":"lowcode-development/development/frontend-low-code","title":"\u524d\u7aef\u5c42\u57fa\u4e8e\u4f4e\u7801 Kit \u7684\u5f00\u53d1","description":"\u672c\u7ae0\u8282\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528\u4f4e\u7801 Kit \u5f00\u53d1\u524d\u7aef\u5e94\u7528\u3002","sidebar":"tutorialSidebar"},"lowcode-development/intro":{"id":"lowcode-development/intro","title":"\u4ecb\u7ecd","description":"\u4f4e\u7801 Kit \u5373\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\uff08\u4ee5\u4e0b\u7b80\u79f0\u201c\u4e91\u68af\u201d\uff09","sidebar":"tutorialSidebar"},"quick-start/buildingbase_quickstart":{"id":"quick-start/buildingbase_quickstart","title":"\u5b89\u88c5\u5e95\u5ea7","description":"\u672c\u7ae0\u8282\u4e3b\u8981\u4ecb\u7ecd\u5e95\u5ea7\u7ec4\u4ef6\u7684\u90e8\u7f72\u6b65\u9aa4\uff0c\u5305\u62ec\u76f8\u5173\u7684\u5f00\u6e90\u6280\u672f\u7ec4\u4ef6\u3001\u524d\u63d0\u6761\u4ef6\u4ee5\u53ca\u5feb\u901f\u90e8\u7f72\uff0c\u5e76\u5c06\u90e8\u7f72\u7684\u96c6\u7fa4\u6dfb\u52a0\u5230\u670d\u52a1\u95e8\u6237\u4e0a\u3002","sidebar":"tutorialSidebar"},"quick-start/core_quickstart":{"id":"quick-start/core_quickstart","title":"\u5b89\u88c5\u5185\u6838","description":"\u5b89\u88c5\u524d\u9700\u5b8c\u6210\u9884\u5148\u51c6\u5907\u3002","sidebar":"tutorialSidebar"},"quick-start/prerequisite":{"id":"quick-start/prerequisite","title":"\u9884\u5148\u51c6\u5907","description":"\u57fa\u7840\u73af\u5883","sidebar":"tutorialSidebar"},"quick-start/try_customization":{"id":"quick-start/try_customization","title":"\u4f53\u9a8c\u81ea\u5b9a\u4e49\u914d\u7f6e","description":"1. \u81ea\u5b9a\u4e49\u95e8\u6237\u7684\u4e3b\u8272\u8c03","sidebar":"tutorialSidebar"},"user-guid/component_anagement":{"id":"user-guid/component_anagement","title":"\u7ec4\u4ef6\u7ba1\u7406","description":"\u7ec4\u4ef6\u7ba1\u7406\u4e3b\u8981\u5206\u4e09\u90e8\u5206\u80fd\u529b\uff1a","sidebar":"tutorialSidebar"},"user-guid/component_market":{"id":"user-guid/component_market","title":"\u7ec4\u4ef6\u5e02\u573a","description":"\u7ec4\u4ef6\u5e02\u573a\u662f\u4e00\u4e2a\u5f00\u653e\u3001\u81ea\u7531\u3001\u5171\u4eab\u7684\u7ec4\u4ef6\u5546\u5e97\u3002\u6211\u4eec\u5185\u7f6e\u4e86\u5fae\u670d\u52a1\u6cbb\u7406\u3001\u670d\u52a1\u7f51\u683c\u3001API \u7f51\u5173\u3001\u5e94\u7528\u6027\u80fd\u76d1\u63a7\u7b49\u4ea7\u54c1\u7684\u5f00\u6e90\u793e\u533a\u7248\u672c\uff0c\u53ef\u5feb\u901f\u52a9\u60a8\u642d\u5efa\u4e00\u4e2a\u4e91\u539f\u751f\u5e94\u7528\u5e73\u53f0\u3002\u540c\u65f6\u60a8\u8fd8\u53ef\u53d1\u5e03\u81ea\u5b9a\u4e49\u7ec4\u4ef6\uff0c\u5728\u516c\u53f8\u3001\u90e8\u95e8\u5185\u5f00\u653e\u4f7f\u7528\uff0c\u907f\u514d\u91cd\u590d\u5f00\u53d1\uff0c\u5c06\u6280\u672f\u3001\u4eba\u529b\u3001\u8f6f\u786c\u4ef6\u8d44\u6e90\u8fbe\u5230\u6700\u9ad8\u5229\u7528\u7387\u3002","sidebar":"tutorialSidebar"},"user-guid/component_rating":{"id":"user-guid/component_rating","title":"\u7ec4\u4ef6\u8bc4\u6d4b","description":"\u4f7f\u7528\u667a\u80fd AI \u5bf9\u7ec4\u4ef6\u4ece\u5b89\u5168\u6027\u3001\u53ef\u9760\u6027\u3001\u53ef\u7528\u6027\u4e09\u65b9\u9762\u8fdb\u884c\u7efc\u5408\u8bc4\u6d4b\uff0c\u4e3a\u60a8\u7684\u9009\u62e9\u63d0\u4f9b\u53c2\u8003\u6570\u636e\u3002","sidebar":"tutorialSidebar"},"user-guid/intro":{"id":"user-guid/intro","title":"\u4ea7\u54c1\u4ecb\u7ecd","description":"KubeBB(Kubernetes Building Blocks)\u662f\u4e00\u79cd\u7531\u5185\u6838\u9a71\u52a8\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u5e73\u53f0\uff0c\u96c6\u6210\u4e86\u5f00\u7bb1\u5373\u7528\u7684\u4e91\u539f\u751f\u5e95\u5ea7\u548c\u4f4e\u7801\u7ec4\u4ef6\u5f00\u53d1\u80fd\u529b\u3002","sidebar":"tutorialSidebar"},"user-guid/repository_anagement":{"id":"user-guid/repository_anagement","title":"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406","description":"\u7ec4\u4ef6\u4ed3\u5e93\u4e3b\u8981\u7528\u6765\u5b58\u653e\u7ba1\u7406\u5404\u79cd\u7ec4\u4ef6\u3002","sidebar":"tutorialSidebar"},"user-guid/version":{"id":"user-guid/version","title":"\u6700\u65b0\u52a8\u6001","description":"\u672c\u6587\u4ecb\u7ecd\u4e86 Kubebb \u5404\u7248\u672c\u7684\u529f\u80fd\u53d1\u5e03\u548c\u5bf9\u5e94\u7684\u6587\u6863\u52a8\u6001\uff0c\u6b22\u8fce\u4f53\u9a8c\u3002","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/94743b49.040fb976.js b/assets/js/94743b49.040fb976.js new file mode 100644 index 000000000..29c054daf --- /dev/null +++ b/assets/js/94743b49.040fb976.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1277],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>d});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function p(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=a.createContext({}),s=function(e){var t=a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):p(p({},t),e)),n},c=function(e){var t=s(e.components);return a.createElement(o.Provider,{value:t},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},k=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=s(n),k=r,d=m["".concat(o,".").concat(k)]||m[k]||u[k]||i;return n?a.createElement(d,p(p({ref:t},c),{},{components:n})):a.createElement(d,p({ref:t},c))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,p=new Array(i);p[0]=k;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[m]="string"==typeof e?e:r,p[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>p,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var a=n(7462),r=(n(7294),n(3905));const i={sidebar_position:2},p="\u7ec4\u4ef6",l={unversionedId:"develop-guid/core/concepts/component",id:"develop-guid/core/concepts/component",title:"\u7ec4\u4ef6",description:"\u7ec4\u4ef6\u662f\u5c06 chart package \u6620\u5c04\u4e3a\u96c6\u7fa4\u8d44\u6e90\u7684\u4e00\u4e2a\u6982\u5ff5\uff0c\u7ec4\u4ef6\u5b9a\u4e49\u4e86 chart package \u7684\u57fa\u7840\u63cf\u8ff0\u4fe1\u606f\uff0c\u7248\u672c\u4fe1\u606f\u7b49\u3002\u7ec4\u4ef6\u4e00\u822c\u7531\u4ed3\u5e93\u521b\u5efa\u51fa\u6765\uff0c\u65e0\u9700\u624b\u52a8\u521b\u5efa\u3002",source:"@site/docs/develop-guid/core/concepts/component.md",sourceDirName:"develop-guid/core/concepts",slug:"/develop-guid/core/concepts/component",permalink:"/website/docs/develop-guid/core/concepts/component",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6\u4ed3\u5e93",permalink:"/website/docs/develop-guid/core/concepts/repository"},next:{title:"\u955c\u50cf\u66ff\u6362",permalink:"/website/docs/develop-guid/core/concepts/imageoverride"}},o={},s=[{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49",level:2},{value:"\u5de5\u4f5c\u539f\u7406",id:"\u5de5\u4f5c\u539f\u7406",level:2}],c={toc:s},m="wrapper";function u(e){let{components:t,...n}=e;return(0,r.kt)(m,(0,a.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u7ec4\u4ef6"},"\u7ec4\u4ef6"),(0,r.kt)("p",null,"\u7ec4\u4ef6\u662f\u5c06 ",(0,r.kt)("inlineCode",{parentName:"p"},"chart package")," \u6620\u5c04\u4e3a\u96c6\u7fa4\u8d44\u6e90\u7684\u4e00\u4e2a\u6982\u5ff5\uff0c\u7ec4\u4ef6\u5b9a\u4e49\u4e86 ",(0,r.kt)("inlineCode",{parentName:"p"},"chart package")," \u7684\u57fa\u7840\u63cf\u8ff0\u4fe1\u606f\uff0c\u7248\u672c\u4fe1\u606f\u7b49\u3002\u7ec4\u4ef6\u4e00\u822c\u7531\u4ed3\u5e93\u521b\u5efa\u51fa\u6765\uff0c\u65e0\u9700\u624b\u52a8\u521b\u5efa\u3002"),(0,r.kt)("h2",{id:"\u5b9a\u4e49"},"\u5b9a\u4e49"),(0,r.kt)("p",null,"CRD \u7684\u4ee3\u7801\u5b9a\u4e49\u4f4d\u4e8e ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/kubebb/core/blob/main/api/v1alpha1/component_types.go"},"ComponentTypes"),"\u3002\u7ec4\u4ef6\u7684\u4fe1\u606f\u90fd\u5b9a\u5728 ",(0,r.kt)("inlineCode",{parentName:"p"},"status")," \u4e2d\uff0c \u63a5\u4e0b\u6765\u4f1a\u8be6\u7ec6\u4ecb\u7ecd\u6bcf\u4e2a\u5b57\u6bb5\u7684\u542b\u4e49\u53ca\u5176\u4f5c\u7528\u3002"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"status.name")),(0,r.kt)("p",{parentName:"li"},"\u8be5\u5b57\u6bb5\u7528\u6765\u4fdd\u5b58 ",(0,r.kt)("inlineCode",{parentName:"p"},"chart package")," \u7684\u540d\u5b57,\u5fc5\u987b\u7b26\u5408kubernetes\u7684\u547d\u540d\u89c4\u8303\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"status.displayName")),(0,r.kt)("p",{parentName:"li"},"\u8be5\u5b57\u6bb5\u7528\u6765\u4fdd\u5b58 ",(0,r.kt)("inlineCode",{parentName:"p"},"chart package")," \u7684\u5c55\u793a\u540d\uff0c\u8be5\u5b57\u6bb5\u5185\u5bb9\u4e3a\u7ec4\u4ef6",(0,r.kt)("strong",{parentName:"p"},"\u6700\u65b0\u7248\u672c"),"\u7684\u6ce8\u89e3",(0,r.kt)("inlineCode",{parentName:"p"},"core.kubebb.k8s.com.cn/displayname"),",\u5141\u8bb8\u4e3a\u7a7a\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"status.versions")),(0,r.kt)("p",{parentName:"li"},"\u8be5\u5b57\u6bb5\u662f\u6570\u7ec4\uff0c\u7528\u6765\u4fdd\u5b58 ",(0,r.kt)("inlineCode",{parentName:"p"},"chart package")," \u7684\u591a\u4e2a\u7248\u672c\u3002\u6bcf\u4e2a\u7248\u672c\u5305\u542b\u7684\u4fe1\u606f\u5982\u4e0b"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"status.versions[index].appVersion")," \u5b9a\u4e49 ",(0,r.kt)("inlineCode",{parentName:"li"},"chart packge")," \u91cc\u9762\u7684\u5e94\u7528\u7684\u7248\u672c\u4fe1\u606f\u3002"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"status.versions[index].annotations")," \u5b9a\u4e49\u8be5\u7248\u672c\u7684\u6ce8\u89e3\u4fe1\u606f,\u5982\u7ec4\u4ef6\u7684\u5c55\u793a\u540d\u3002"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"status.versions[index].createdAt")," \u521b\u5efa\u65f6\u95f4"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"status.versions[index].updatedAt")," \u66f4\u65b0\u65f6\u95f4"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"status.versions[index].deprecated")," \u5f53\u524d\u7248\u672c\u662f\u5426\u5e9f\u5f03"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"status.versions[index].version")," ",(0,r.kt)("inlineCode",{parentName:"li"},"chart package")," \u7684\u7248\u672c\u4fe1\u606f"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"status.versions[index].digest")," \u6570\u5b57\u7b7e\u540d"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"status.description")),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"chart package")," \u7684\u63cf\u8ff0\u4fe1\u606f")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"status.maintainers")),(0,r.kt)("p",{parentName:"li"},"\u8be5\u5b57\u6bb5\u662f\u6570\u7ec4\u7c7b\u578b\uff0c\u6bcf\u4e00\u9879\u90fd\u662f ",(0,r.kt)("inlineCode",{parentName:"p"},"chart package")," \u7684\u7ef4\u62a4\u8005\u3002\u6bcf\u4e00\u9879\u7684\u5305\u542b\u7684\u4fe1\u606f\u5982\u4e0b"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"status.maintainers[index].name")," \u7ef4\u62a4\u8005\u540d\u5b57"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"status.maintainers[index].email")," \u7ef4\u62a4\u8005\u7684\u90ae\u7bb1"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"status.maintainers[index].url")," \u7ef4\u62a4\u8005\u7684\u7f51\u7ad9"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"status.home")),(0,r.kt)("p",{parentName:"li"},"\u7ec4\u4ef6\u7684\u5b98\u7f51\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"status.soureces")),(0,r.kt)("p",{parentName:"li"},"\u8be5\u5b57\u6bb5\u662f\u5b57\u7b26\u4e32\u6570\u7ec4\u7c7b\u578b\uff0c\u5b9a\u4e49\u7ec4\u4ef6\u4ee3\u7801\u4ed3\u5e93\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"status.keywords")),(0,r.kt)("p",{parentName:"li"},"\u8be5\u5b57\u6bb5\u662f\u5b57\u7b26\u4e32\u6570\u7ec4\u7c7b\u578b\uff0c\u5b9a\u4e49\u4e0e\u8be5\u7ec4\u4ef6\u5173\u8054\u7684\u5173\u952e\u8bcd\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"status.icon")),(0,r.kt)("p",{parentName:"li"},"\u5b9a\u4e49\u8be5\u7ec4\u4ef6\u7684\u56fe\u6807")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"status.deprecated")),(0,r.kt)("p",{parentName:"li"},"\u5b9a\u4e49\u5f53\u524d\u7ec4\u4ef6\u662f\u5426\u5e9f\u5f03"))),(0,r.kt)("h2",{id:"\u5de5\u4f5c\u539f\u7406"},"\u5de5\u4f5c\u539f\u7406"),(0,r.kt)("p",null,"\u4ed3\u5e93",(0,r.kt)("inlineCode",{parentName:"p"},"Watcher"),"\u540c\u6b65\u4ed3\u5e93\u670d\u52a1\u7684\u7ec4\u4ef6\u5217\u8868\uff0c\u5e76",(0,r.kt)("inlineCode",{parentName:"p"},"\u521b\u5efa/\u66f4\u65b0"),"\u7ec4\u4ef6\u3002\u56e0\u6b64:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"\u7ec4\u4ef6"),"\u4e0d\u5efa\u8bae\u4e3b\u52a8\u521b\u5efa\uff0c\u5e94\u8be5\u90fd\u901a\u8fc7\u7ec4\u4ef6\u4ed3\u5e93\u5bf9\u5e94\u7684",(0,r.kt)("inlineCode",{parentName:"li"},"Watcher"),"\u81ea\u52a8\u540c\u6b65\u83b7\u5f97"),(0,r.kt)("li",{parentName:"ul"},"\u540c\u5c5e\u4e00\u4e2a\u4ed3\u5e93\u7684\u7ec4\u4ef6\u53ef\u901a\u8fc7",(0,r.kt)("inlineCode",{parentName:"li"},"kubebb.component.repository="),"\u68c0\u7d22")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9546be45.7e49d2d5.js b/assets/js/9546be45.7e49d2d5.js deleted file mode 100644 index fc391e002..000000000 --- a/assets/js/9546be45.7e49d2d5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8994],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,a=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),d=c(r),m=o,f=d["".concat(p,".").concat(m)]||d[m]||u[m]||a;return r?n.createElement(f,l(l({ref:t},s),{},{components:r})):n.createElement(f,l({ref:t},s))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=r.length,l=new Array(a);l[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[d]="string"==typeof e?e:o,l[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var n=r(7462),o=(r(7294),r(3905));const a={sidebar_position:2},l="\u5f00\u53d1\u6a21\u5f0f",i={unversionedId:"lowcode-development/development_pattern",id:"lowcode-development/development_pattern",title:"\u5f00\u53d1\u6a21\u5f0f",description:"KubeBB \u7ec4\u4ef6\u7684\u5f00\u53d1\u91c7\u53d6\u524d\u540e\u7aef\u5206\u79bb\uff0c\u4ee5 K8S \u4e3a\u6838\u5fc3\u7684\u5f00\u53d1\u6846\u67b6\uff0c\u9075\u5faa K8S \u7684\u6269\u5c55\u673a\u5236\u53ca API \u89c4\u8303\u3002\u6574\u4f53\u5f00\u53d1\u67b6\u6784\u7684\u57fa\u672c\u903b\u8f91\u5982\u4e0b\u56fe\u6240\u793a\uff1a",source:"@site/docs/lowcode-development/development_pattern.md",sourceDirName:"lowcode-development",slug:"/lowcode-development/development_pattern",permalink:"/website/docs/lowcode-development/development_pattern",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"\u4ecb\u7ecd",permalink:"/website/docs/lowcode-development/intro"},next:{title:"\u7ec4\u4ef6\u5f00\u53d1",permalink:"/website/docs/category/\u7ec4\u4ef6\u5f00\u53d1"}},p={},c=[{value:"\u4e09\u5c42\u6a21\u5f0f",id:"\u4e09\u5c42\u6a21\u5f0f",level:2}],s={toc:c},d="wrapper";function u(e){let{components:t,...a}=e;return(0,o.kt)(d,(0,n.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"\u5f00\u53d1\u6a21\u5f0f"},"\u5f00\u53d1\u6a21\u5f0f"),(0,o.kt)("p",null,"KubeBB \u7ec4\u4ef6\u7684\u5f00\u53d1\u91c7\u53d6\u524d\u540e\u7aef\u5206\u79bb\uff0c\u4ee5 K8S \u4e3a\u6838\u5fc3\u7684\u5f00\u53d1\u6846\u67b6\uff0c\u9075\u5faa K8S \u7684\u6269\u5c55\u673a\u5236\u53ca API \u89c4\u8303\u3002\u6574\u4f53\u5f00\u53d1\u67b6\u6784\u7684\u57fa\u672c\u903b\u8f91\u5982\u4e0b\u56fe\u6240\u793a\uff1a\n",(0,o.kt)("img",{alt:"dev_arch",src:r(5083).Z,width:"1089",height:"724"})),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"\u6240\u6709\u7ec4\u4ef6\u7684\u5f00\u53d1\u3001\u6269\u5c55\u7684\u8ba4\u8bc1\u90fd\u901a\u8fc7\u7edf\u4e00\u8ba4\u8bc1\u4e2d\u5fc3\u8fdb\u884c\u8ba4\u8bc1"),(0,o.kt)("li",{parentName:"ol"},"\u8ba4\u8bc1\u7531\u5fae\u524d\u7aef\u7684\u4e3b\u6846\u67b6 DockApp \u7edf\u4e00\u8fdb\u884c\uff0c\u5176\u4ed6\u5fae\u524d\u7aef\u7684\u6269\u5c55\u4e0d\u9700\u8981\u5355\u72ec\u652f\u6301\u540c\u8ba4\u8bc1\u4e2d\u5fc3\u7684\u5904\u7406")),(0,o.kt)("h2",{id:"\u4e09\u5c42\u6a21\u5f0f"},"\u4e09\u5c42\u6a21\u5f0f"),(0,o.kt)("p",null,"\u57fa\u4e8e\u4f4e\u7801\u5f00\u53d1\u7684\u7ec4\u4ef6\uff0c\u5c06\u91c7\u7528\u5982\u4e0b\u4e09\u5c42\u5f00\u53d1\u6a21\u5f0f:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"\u7b2c\u4e00\u5c42:")," \u524d\u7aef\u91c7\u7528\u5fae\u524d\u7aef\u67b6\u6784\uff0c\u63a8\u8350\u91c7\u7528\u4f4e\u4ee3\u7801\u65b9\u5f0f\u8fdb\u884c\u5f00\u53d1\uff0c\u63d0\u9ad8\u4ee3\u7801\u81ea\u52a8\u5316\u751f\u6210\u6bd4\u4f8b\uff0c\u4e5f\u53ef\u91c7\u7528\u624b\u52a8\u5f00\u53d1\u7684\u6a21\u5f0f\uff0c\u8be6\u89c1 ",(0,o.kt)("a",{parentName:"li",href:"/website/docs/lowcode-development/development/frontend"},"\u524d\u7aef\u5c42\u5f00\u53d1")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"\u7b2c\u4e8c\u5c42:")," \u6839\u636e\u4e1a\u52a1\u9700\u6c42\u589e\u52a0 OpenAPI\uff0c\u5f62\u6210\u7edf\u4e00\u7684 BFF \u5c42\uff0c\u5bf9 API \u8fdb\u884c\u805a\u5408\uff0c\u63d0\u4f9b\u524d\u7aef\u6240\u9700\u8981\u7684\u4e1a\u52a1\u573a\u666f\u6570\u636e\uff0c\u76ee\u524d K8s \u8d44\u6e90\u7684 sdk \u53ef\u5b9e\u73b0\u81ea\u52a8\u751f\u6210\uff0c\u540e\u7eed\u8fd9\u4e00\u5c42\u4e5f\u4f1a\u63a2\u7d22\u4f4e\u7801\u5316"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"\u7b2c\u4e09\u5c42:")," \u540e\u7aef\u91c7\u7528 CRD + controller \u7684 Operator \u6a21\u5f0f\u8fdb\u884c\u5f00\u53d1\uff0c\u5f62\u6210\u6570\u636e\u9a71\u52a8\u7684\u6d41\u7a0b\u5f00\u53d1\u6a21\u5f0f")))}u.isMDXComponent=!0},5083:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/dev_arch-8fbc2a4fd6aeaaa23274c226eb811799.png"}}]); \ No newline at end of file diff --git a/assets/js/956d2487.e4c1a3b1.js b/assets/js/956d2487.e4c1a3b1.js new file mode 100644 index 000000000..844df9e12 --- /dev/null +++ b/assets/js/956d2487.e4c1a3b1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8776],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=a.createContext({}),d=function(e){var t=a.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},s=function(e){var t=d(e.components);return a.createElement(c.Provider,{value:t},e.children)},b="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,s=o(e,["components","mdxType","originalType","parentName"]),b=d(n),u=r,f=b["".concat(c,".").concat(u)]||b[u]||p[u]||i;return n?a.createElement(f,l(l({ref:t},s),{},{components:n})):a.createElement(f,l({ref:t},s))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,l=new Array(i);l[0]=u;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[b]="string"==typeof e?e:r,l[1]=o;for(var d=2;d{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>d});var a=n(7462),r=(n(7294),n(3905));const i={sidebar_position:3},l="\u4f7f\u7528\u7b2c\u4e09\u65b9\u7cfb\u7edf\u767b\u5f55",o={unversionedId:"develop-guid/building-base/configuration/3rd-party-account",id:"develop-guid/building-base/configuration/3rd-party-account",title:"\u4f7f\u7528\u7b2c\u4e09\u65b9\u7cfb\u7edf\u767b\u5f55",description:"\u76ee\u524d\u57fa\u4e8e dex \u652f\u6301\u5916\u90e8\u8ba4\u8bc1\u7cfb\u7edf\u7684\u96c6\u6210\uff0c\u5b9e\u73b0\u670d\u52a1\u95e8\u6237\u4e0e\u7b2c\u4e09\u65b9\u8ba4\u8bc1\u7cfb\u7edf\u7684\u7edf\u4e00\u8d26\u53f7\u53ca\u5355\u70b9\u767b\u5f55\u3002",source:"@site/docs/develop-guid/building-base/configuration/3rd-party-account.md",sourceDirName:"develop-guid/building-base/configuration",slug:"/develop-guid/building-base/configuration/3rd-party-account",permalink:"/website/docs/develop-guid/building-base/configuration/3rd-party-account",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"\u81ea\u5b9a\u4e49\u83dc\u5355",permalink:"/website/docs/develop-guid/building-base/configuration/customize-menu"},next:{title:"\u914d\u7f6e\u5ba1\u8ba1\u80fd\u529b",permalink:"/website/docs/develop-guid/building-base/configuration/audit-config"}},c={},d=[{value:"1. Gitlab \u96c6\u6210",id:"1-gitlab-\u96c6\u6210",level:2},{value:"1.1 \u5728 Gitlab \u4e2d\u914d\u7f6e\u5e94\u7528\u8d26\u53f7",id:"11-\u5728-gitlab-\u4e2d\u914d\u7f6e\u5e94\u7528\u8d26\u53f7",level:3}],s={toc:d},b="wrapper";function p(e){let{components:t,...i}=e;return(0,r.kt)(b,(0,a.Z)({},s,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u4f7f\u7528\u7b2c\u4e09\u65b9\u7cfb\u7edf\u767b\u5f55"},"\u4f7f\u7528\u7b2c\u4e09\u65b9\u7cfb\u7edf\u767b\u5f55"),(0,r.kt)("p",null,"\u76ee\u524d\u57fa\u4e8e dex \u652f\u6301\u5916\u90e8\u8ba4\u8bc1\u7cfb\u7edf\u7684\u96c6\u6210\uff0c\u5b9e\u73b0\u670d\u52a1\u95e8\u6237\u4e0e\u7b2c\u4e09\u65b9\u8ba4\u8bc1\u7cfb\u7edf\u7684\u7edf\u4e00\u8d26\u53f7\u53ca\u5355\u70b9\u767b\u5f55\u3002"),(0,r.kt)("h2",{id:"1-gitlab-\u96c6\u6210"},"1. Gitlab \u96c6\u6210"),(0,r.kt)("p",null,"\u53c2\u8003\u4ee5\u4e0b\u6b65\u9aa4\u8fdb\u884c Gilab \u767b\u5f55\u7684\u96c6\u6210"),(0,r.kt)("h3",{id:"11-\u5728-gitlab-\u4e2d\u914d\u7f6e\u5e94\u7528\u8d26\u53f7"},"1.1 \u5728 Gitlab \u4e2d\u914d\u7f6e\u5e94\u7528\u8d26\u53f7"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"\u4f7f\u7528root\u7528\u6237\u767b\u5f55\u540e\uff0c\u70b9\u51fb\u53f3\u4e0a\u89d2\u7528\u6237\u7684\u5934\u50cf\uff0c\u7136\u540e\u70b9\u51fb\u504f\u597d\u8bbe\u7f6e\n",(0,r.kt)("img",{alt:"\u56fe 1",src:n(4132).Z,width:"1013",height:"272"})," ")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"\u5728\u5de6\u4fa7\u83dc\u5355\u5bfc\u822a\u5904\u9009\u62e9\u201c\u5e94\u7528\u201d\uff0c\u7136\u540e\u5728\u65b0\u5efa\u5e94\u7528\u4e2d\uff0c\u586b\u5199\u5fc5\u8981\u4fe1\u606f\uff1a"))),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u540d\u79f0\uff1a\u6839\u636e\u9700\u8981\u586b\u5199"),(0,r.kt)("li",{parentName:"ul"},"\u56de\u8c03\u5730\u5740\uff1a/oidc/callback"),(0,r.kt)("li",{parentName:"ul"},"\u8303\u56f4\uff1a\u52fe\u9009 read_user \u548c openid\n",(0,r.kt)("img",{alt:"\u56fe 2",src:n(6034).Z,width:"1158",height:"756"})," ")),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},"\u4fdd\u5b58\u5e94\u7528\uff0c\u70b9\u51fb\u9875\u9762\u4e0b\u521a\u521a\u4fdd\u5b58\u7684\u5e94\u7528\uff0c\u5f97\u5230\u4e0b\u56fe\u3002\n",(0,r.kt)("img",{alt:"\u56fe 3",src:n(1146).Z,width:"660",height:"377"})," ")),(0,r.kt)("p",null,"\u8bb0\u5f55 \u5e94\u7528\u7a0b\u5e8fID\uff08clientid\uff09\u3001\u5bc6\u7801\uff08clientsecret\uff09 \u4ee5\u53ca \u56de\u8c03 URL\uff08redirecturl\uff09\uff0c\u9700\u8981\u5728oidc-server \u7aef\u8fdb\u884c\u76f8\u5e94\u914d\u7f6e\u3002"),(0,r.kt)("ol",{start:4},(0,r.kt)("li",{parentName:"ol"},"\u7f16\u8f91 oidc-server \u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u589e\u52a0\u4e00\u79cd\u65b0\u7684 connector \u914d\u7f6e\uff0c",(0,r.kt)("inlineCode",{parentName:"li"},"kubectl edit cm oidc-server -n u4a-system"),"\uff0c\u6309\u4ee5\u4e0b\u793a\u4f8b\u8fdb\u884c\u914d\u7f6e\uff1a")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"connectors:\n- type: k8scrd\n ...\n- type: gitlab ## \u56fa\u5b9a\u503c gitlab\n name: gitlab ## \u540d\u79f0\n id: gitlab ## \u56fa\u5b9a\u503c gitlab\n config:\n baseURL: http://gitlab.172.22.50.155.nip.io ## gitlab\u5bf9\u5916\u8bbf\u95ee\u7684\u5730\u5740\n clientID: ef2b579e5b4c1cf9ae5b0b2acb166271ebff5892e84aa113689d4646ffcb29e7 ## gitlab\u914d\u7f6e\u7684\u5e94\u7528\u7684clientID\uff0c \u53ef\u5728\u4e0a\u4e00\u6b65\u9aa4\u201d\u914d\u7f6egitlab\u201c\u4e2d\u83b7\u53d6\n clientSecret: 3a9e79368a70bcdf1e4ac1df64e4220e7af798876333c9642a8edb782e6eb558 ## gitlab\u914d\u7f6e\u7684\u5e94\u7528\u7684\u5bc6\u7801\uff0c \u53ef\u5728\u4e0a\u4e00\u6b65\u9aa4\u201d\u914d\u7f6egitlab\u201c\u4e2d\u83b7\u53d6\n redirectURI: https://portal.172.22.96.209.nip.io/oidc/callback ## gitlab\u914d\u7f6e\u7684callback\u5730\u5740\uff0c \u53ef\u5728\u4e0a\u4e00\u6b65\u9aa4\u201d\u914d\u7f6egitlab\u201c\u4e2d\u83b7\u53d6\n")),(0,r.kt)("ol",{start:5},(0,r.kt)("li",{parentName:"ol"},"\u5f00\u542f\u7b2c\u4e09\u65b9\u7cfb\u7edf\u5bf9\u63a5\uff0c\u76ee\u524d\u652f\u6301 gitlab/github \u4e24\u79cd\uff0c\u4ec5\u9700\u8981\u5c06\u5bf9\u5e94\u7684 enabled \u5b57\u6bb5\u8bbe\u7f6e\u4e3a true \u5373\u53ef\u3002")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"kubectl edit connector3rd connector3rd")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'kind: Connector3rd\nmetadata:\n annotations:\n helm.sh/hook: post-install,post-upgrade\n helm.sh/hook-weight: "-5"\n name: connector3rd\nspec:\n connectors:\n - description: gitlab description\n enabled: false # \u4fee\u6539\u4e3a true\n icon: <\u4fdd\u6301\u4e0d\u53d8>\n id: gitlab\n name: gitlab\n - description: github description\n enabled: false\n icon: <\u4fdd\u6301\u4e0d\u53d8>\n id: github\n name: github\n')),(0,r.kt)("ol",{start:6},(0,r.kt)("li",{parentName:"ol"},"\u914d\u7f6e\u5b8c\u6bd5\u540e\uff0c\u91cd\u542f oidc-server \u670d\u52a1\u5373\u53ef\u751f\u6548\uff0c\u6b64\u65f6\u518d\u6b21\u8bbf\u95ee\u767b\u5f55\u9875\u9762\uff0c\u65e2\u53ef\u770b\u5230\u5bf9\u5e94\u7684\u767b\u5f55\u56fe\u6807\u3002")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"\u56fe 4",src:n(2459).Z,width:"394",height:"308"})))}p.isMDXComponent=!0},4132:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/19b4c83b8381c4f6c82d3526ccdbc309014fac7a9f1f502854b9c6251eea03be-a7e3b0636c2d06b310b6c056d9dc9433.png"},6034:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/73946089d53ccbedf6b6c58cbb6cb8c55e3bd650bc3beede41ea1622211d02bd-6a2197fd3e0c38a8d0bf5fb608c0e897.png"},1146:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/7ef885f51a16d83577089c409efafa2583f60d9376d5efc7d03cb7faa4092fbf-250a1a88f6f1ce7c782e15512488f770.png"},2459:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/94ca51f03578085968c8e1ffd03f27606ed0d473e32d5eb511feff0513e4ff11-e58813e7f78df9928cd138aa4d0b3cb9.png"}}]); \ No newline at end of file diff --git a/assets/js/a35a66a7.fe316c62.js b/assets/js/a35a66a7.63d4afb8.js similarity index 70% rename from assets/js/a35a66a7.fe316c62.js rename to assets/js/a35a66a7.63d4afb8.js index 701b9fae4..c1fd60f48 100644 --- a/assets/js/a35a66a7.fe316c62.js +++ b/assets/js/a35a66a7.63d4afb8.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7943],{4838:e=>{e.exports=JSON.parse('{"title":"\u6982\u5ff5","description":"\u5185\u6838\u76f8\u5173\u7684\u77e5\u8bc6\u53ca\u8be6\u7ec6\u7684\u4f7f\u7528\u6559\u7a0b","slug":"/category/\u6982\u5ff5","permalink":"/website/docs/category/\u6982\u5ff5","navigation":{"previous":{"title":"\u4ecb\u7ecd","permalink":"/website/docs/core/intro"},"next":{"title":"\u7ec4\u4ef6\u4ed3\u5e93","permalink":"/website/docs/core/concepts/repository"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7943],{4838:e=>{e.exports=JSON.parse('{"title":"\u6982\u5ff5","description":"\u5185\u6838\u76f8\u5173\u7684\u77e5\u8bc6\u53ca\u8be6\u7ec6\u7684\u4f7f\u7528\u6559\u7a0b","slug":"/category/\u6982\u5ff5","permalink":"/website/docs/category/\u6982\u5ff5","navigation":{"previous":{"title":"\u4ecb\u7ecd","permalink":"/website/docs/develop-guid/core/intro"},"next":{"title":"\u7ec4\u4ef6\u4ed3\u5e93","permalink":"/website/docs/develop-guid/core/concepts/repository"}}}')}}]); \ No newline at end of file diff --git a/assets/js/a76bfff0.4cce2d19.js b/assets/js/a76bfff0.4cce2d19.js deleted file mode 100644 index c3808b3a9..000000000 --- a/assets/js/a76bfff0.4cce2d19.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6004],{3905:(t,e,n)=>{n.d(e,{Zo:()=>k,kt:()=>g});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function i(t){for(var e=1;e=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var o=a.createContext({}),m=function(t){var e=a.useContext(o),n=e;return t&&(n="function"==typeof t?t(e):i(i({},e),t)),n},k=function(t){var e=m(t.components);return a.createElement(o.Provider,{value:e},t.children)},u="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},s=a.forwardRef((function(t,e){var n=t.components,r=t.mdxType,l=t.originalType,o=t.parentName,k=p(t,["components","mdxType","originalType","parentName"]),u=m(n),s=r,g=u["".concat(o,".").concat(s)]||u[s]||d[s]||l;return n?a.createElement(g,i(i({ref:e},k),{},{components:n})):a.createElement(g,i({ref:e},k))}));function g(t,e){var n=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var l=n.length,i=new Array(l);i[0]=s;var p={};for(var o in e)hasOwnProperty.call(e,o)&&(p[o]=e[o]);p.originalType=t,p[u]="string"==typeof t?t:r,i[1]=p;for(var m=2;m{n.r(e),n.d(e,{assets:()=>o,contentTitle:()=>i,default:()=>d,frontMatter:()=>l,metadata:()=>p,toc:()=>m});var a=n(7462),r=(n(7294),n(3905));const l={sidebar_position:4},i="\u7ec4\u4ef6\u8bc4\u6d4b",p={unversionedId:"core/rating",id:"core/rating",title:"\u7ec4\u4ef6\u8bc4\u6d4b",description:"\u7ec4\u4ef6\u8bc4\u6d4b\u7684\u76ee\u7684\u662f\u901a\u8fc7\u5c3d\u53ef\u80fd\u591a\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u4ece\u591a\u4e2a\u7ef4\u5ea6\u6765\u8bc4\u4f30\u4e00\u4e2a\u7ec4\u4ef6\u3002\u56e0\u6b64\uff0c\u7ec4\u4ef6\u8bc4\u6d4b\u4e09\u4e2a\u90e8\u5206\u7684\u5185\u5bb9:",source:"@site/docs/core/rating.md",sourceDirName:"core",slug:"/core/rating",permalink:"/website/docs/core/rating",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6\u5f00\u53d1",permalink:"/website/docs/core/userguide/component-dev"},next:{title:"\u8def\u7ebf\u56fe",permalink:"/website/docs/core/roadmap"}},o={},m=[{value:"\u6838\u5fc3\u6d41\u7a0b",id:"\u6838\u5fc3\u6d41\u7a0b",level:2},{value:"\u4efb\u52a1\u5217\u8868",id:"\u4efb\u52a1\u5217\u8868",level:2},{value:"\u5b89\u5168\u6027\u4efb\u52a1",id:"\u5b89\u5168\u6027\u4efb\u52a1",level:3},{value:"\u53ef\u9760\u6027\u4efb\u52a1",id:"\u53ef\u9760\u6027\u4efb\u52a1",level:3},{value:"\u53ef\u7528\u6027\u4efb\u52a1",id:"\u53ef\u7528\u6027\u4efb\u52a1",level:3}],k={toc:m},u="wrapper";function d(t){let{components:e,...n}=t;return(0,r.kt)(u,(0,a.Z)({},k,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u7ec4\u4ef6\u8bc4\u6d4b"},"\u7ec4\u4ef6\u8bc4\u6d4b"),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u7ec4\u4ef6\u8bc4\u6d4b"),"\u7684\u76ee\u7684\u662f\u901a\u8fc7\u5c3d\u53ef\u80fd\u591a\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u4ece\u591a\u4e2a\u7ef4\u5ea6\u6765\u8bc4\u4f30\u4e00\u4e2a\u7ec4\u4ef6\u3002\u56e0\u6b64\uff0c",(0,r.kt)("strong",{parentName:"p"},"\u7ec4\u4ef6\u8bc4\u6d4b"),"\u4e09\u4e2a\u90e8\u5206\u7684\u5185\u5bb9:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u5b9a\u4e49\u5e76\u5b8c\u6210\u7ec4\u4ef6\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5"),(0,r.kt)("li",{parentName:"ul"},"\u6536\u96c6\u5904\u7406\u6d4b\u8bd5\u6570\u636e"),(0,r.kt)("li",{parentName:"ul"},"\u8bc4\u4f30\u83b7\u53d6\u7ec4\u4ef6\u7b49\u7ea7")),(0,r.kt)("p",null,"\u4e3a\u4e86\u5b9e\u73b0\u4e0a\u8ff0\u63d0\u5230\u7684\u4e09\u4e2a\u90e8\u5206\u7684\u5185\u5bb9\uff0c\u6211\u4eec\u9009\u62e9:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u901a\u8fc7",(0,r.kt)("a",{parentName:"li",href:"https://github.com/kubebb/core/tree/main/pipeline/rating"},(0,r.kt)("strong",{parentName:"a"},"Tekton")),"\u4ece",(0,r.kt)("strong",{parentName:"li"},"\u5b89\u5168\u6027"),"\u3001",(0,r.kt)("strong",{parentName:"li"},"\u53ef\u9760\u6027"),"\u3001",(0,r.kt)("strong",{parentName:"li"},"\u53ef\u7528\u6027"),"\u4e09\u4e2a\u7ef4\u5ea6\u5b9a\u4e49\u591a\u79cd\u4efb\u52a1\u6765\u5b8c\u6210\u81ea\u52a8\u5316\u7ec4\u4ef6\u6d4b\u8bd5"),(0,r.kt)("li",{parentName:"ul"},"\u5b9a\u4e49",(0,r.kt)("strong",{parentName:"li"},"CRD Rating"),"\u53ca\u5176\u63a7\u5236\u5668,\u5b9e\u65f6\u76d1\u542c",(0,r.kt)("strong",{parentName:"li"},"Tekton"),"\u8d44\u6e90,\u6536\u96c6\u6d4b\u8bd5\u6570\u636e"),(0,r.kt)("li",{parentName:"ul"},"\u901a\u8fc7",(0,r.kt)("strong",{parentName:"li"},"KubeAGI/arcadia"),"\u5b9e\u73b0AI\u5236\u5b9a\u7ec4\u4ef6\u8bc4\u4f30\u89c4\u5219\uff0c\u5e76\u57fa\u4e8e\u6d4b\u8bd5\u6570\u636e\u5b9e\u65f6\u66f4\u65b0\u7ec4\u4ef6\u7b49\u7ea7")),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("ul",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ul"},"\u53c2\u8003",(0,r.kt)("a",{parentName:"li",href:"./userguide/enablerating"},"\u542f\u7528\u7ec4\u4ef6\u8bc4\u6d4b"),"\u5feb\u901f\u4f7f\u7528Rating"),(0,r.kt)("li",{parentName:"ul"},"\u53c2\u8003",(0,r.kt)("a",{parentName:"li",href:"./concepts/rating"},"\u7ec4\u4ef6\u8bc4\u6d4b\u6982\u5ff5"),"\u4e86\u89e3Rating\u7684\u5b9e\u73b0\u539f\u7406"))),(0,r.kt)("h2",{id:"\u6838\u5fc3\u6d41\u7a0b"},"\u6838\u5fc3\u6d41\u7a0b"),(0,r.kt)("p",null,(0,r.kt)("img",{parentName:"p",src:"https://raw.githubusercontent.com/kubebb/core/main/assets/rating_flow.drawio.png",alt:"rating_workflow"})),(0,r.kt)("h2",{id:"\u4efb\u52a1\u5217\u8868"},"\u4efb\u52a1\u5217\u8868"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"\u6240\u6709\u4efb\u52a1\u6743\u91cd\u76ee\u524d\u90fd\u4e3a",(0,r.kt)("inlineCode",{parentName:"p"},"1"),",\u540e\u7eed\u9700\u8981\u6839\u636e\u5b9e\u9645\u7684\u4efb\u52a1\u91cd\u8981\u6027\u8d4b\u4e88\u4e0d\u540c\u7684\u6743\u91cd\uff0c\u5e76\u4ee5\u6b64\u83b7\u5f97\u6700\u7ec8\u7684\u8bc4\u5206")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u8bc4\u6d4b\u4efb\u52a1"),(0,r.kt)("th",{parentName:"tr",align:null},"\u7c7b\u578b"),(0,r.kt)("th",{parentName:"tr",align:null},"\u63cf\u8ff0"),(0,r.kt)("th",{parentName:"tr",align:null},"\u6743\u91cd"),(0,r.kt)("th",{parentName:"tr",align:null},"\u72b6\u6001"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"rating-security-rback")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"\u5b89\u5168\u6027")),(0,r.kt)("td",{parentName:"tr",align:null},"\u901a\u8fc7 dryrun \u7684\u65b9\u5f0f\u83b7\u53d6\u5b8c\u6574\u7684\u7ec4\u4ef6 RBAC"),(0,r.kt)("td",{parentName:"tr",align:null},"1"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5df2\u652f\u6301")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"rating-security-slsa")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"\u5b89\u5168\u6027")),(0,r.kt)("td",{parentName:"tr",align:null},"\u9a8c\u8bc1 SLSA \u4f9b\u5e94\u94fe\u5b89\u5168\u7b49\u7ea7"),(0,r.kt)("td",{parentName:"tr",align:null},"1"),(0,r.kt)("td",{parentName:"tr",align:null},"\u7814\u53d1\u4e2d")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"rating-reliability-linting")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"\u53ef\u9760\u6027")),(0,r.kt)("td",{parentName:"tr",align:null},"\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"td"},"helm lint")," \u9a8c\u8bc1\u7ec4\u4ef6\u662f\u5426\u7b26\u5408\u89c4\u8303"),(0,r.kt)("td",{parentName:"tr",align:null},"1"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5df2\u652f\u6301")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"rating-reliability-testing")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"\u53ef\u9760\u6027")),(0,r.kt)("td",{parentName:"tr",align:null},"\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"td"},"helm testing")),(0,r.kt)("td",{parentName:"tr",align:null},"1"),(0,r.kt)("td",{parentName:"tr",align:null},"\u7814\u53d1\u4e2d")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"rating-reliability-deployment-testing")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"\u53ef\u9760\u6027")),(0,r.kt)("td",{parentName:"tr",align:null},"\u9a8c\u8bc1\u90e8\u7f72\u540e\u7684\u7ec4\u4ef6\uff0c\u529f\u80fd\u548c\u6027\u80fd\u662f\u5426\u7b26\u5408\u9884\u671f"),(0,r.kt)("td",{parentName:"tr",align:null},"1"),(0,r.kt)("td",{parentName:"tr",align:null},"\u7814\u53d1\u4e2d")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"rating-availability-sample")),(0,r.kt)("td",{parentName:"tr",align:null},(0,r.kt)("strong",{parentName:"td"},"\u53ef\u7528\u6027")),(0,r.kt)("td",{parentName:"tr",align:null},"\u9a8c\u8bc1\u7ec4\u4ef6\u5305\u662f\u5426\u5305\u542b ComponentPlan \u793a\u4f8b"),(0,r.kt)("td",{parentName:"tr",align:null},"1"),(0,r.kt)("td",{parentName:"tr",align:null},"\u7814\u53d1\u4e2d")))),(0,r.kt)("h3",{id:"\u5b89\u5168\u6027\u4efb\u52a1"},"\u5b89\u5168\u6027\u4efb\u52a1"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/kubebb/core/blob/main/pipeline/rating/tasks/task-rbac.yaml"},"rating-security-rback"))),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"rating-security-rback")," \u6839\u636e chart \u5305\u91cc\u7684\u5185\u5bb9\u5f97\u5230\u5b8c\u6574\u7684\u5b89\u88c5\u6587\u4ef6\uff0c\u5e76\u6839\u636e\u8fd9\u4e9b\u6587\u4ef6\u751f\u6210\u6743\u9650\u5173\u7cfb\u56fe\uff0c\u7528\u6237\u53ef\u4ee5\u6839\u636e\u8fd9\u4e2a\u5173\u7cfb\u56fe\u5224\u65ad\u6743\u9650\u662f\u5426\u8fc7\u5927\u800c\u9009\u62e9\u662f\u5426\u5b89\u88c5\u3002"),(0,r.kt)("p",null,"\u5206\u4ee5\u4e0b4\u4e2a\u6b65\u9aa4\u5b8c\u6210\uff1a"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u4e0b\u8f7dchart\u5305")),(0,r.kt)("p",null,"\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"p"},"helm pull")," \u4e0b\u8f7d\u6307\u5b9a\u7684chart\u5305"),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"\u751f\u6210 .dot \u6587\u4ef6")),(0,r.kt)("p",null,"\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"p"},"helm template")," \u5c06 chart \u5305\u8981\u5b89\u88c5\u7684\u5185\u5bb9\u5b8c\u5168\u5217\u4e3e\u51fa\u6765\uff0c\u5e76\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"p"},"yq")," \u548c ",(0,r.kt)("inlineCode",{parentName:"p"},"jq")," \u547d\u4ee4\u8f6c\u6362\u6210\u5982\u4e0b\u683c\u5f0f:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "kind":"List",\n "apiVersion": "v1",\n "items": [\n {\n "kind": "ServiceAccount",\n "apiVersion": "v1",\n "metadata": {\n "name": "sa",\n }\n }\n ]\n}\n')),(0,r.kt)("p",null,"\u901a\u8fc7 ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/team-soteria/rback"},"rback")," \u547d\u4ee4\u5c06\u4ee5\u4e0a\u7684 json \u5185\u5bb9\u8f6c\u6362\u6210 ",(0,r.kt)("inlineCode",{parentName:"p"},".dot")," \u6587\u4ef6\u3002"),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},"\u5b58\u50a8\u5230 ConfigMap")),(0,r.kt)("p",null,"\u5c06\u4e0a\u8ff0\u5f97\u5230 ",(0,r.kt)("inlineCode",{parentName:"p"},".dot")," \u6587\u4ef6\u5b58\u50a8\u5230 ConfigMap \u4e2d\u3002"),(0,r.kt)("ol",{start:4},(0,r.kt)("li",{parentName:"ol"},"\u5c06 ConfigMap \u540d\u5b57\u5199\u5230\u8f93\u51fa")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"Pipeline")," \u652f\u6301\u8f93\u51fa\u4e00\u4e9b\u8fd0\u884c\u7ed3\u679c\uff0c\u5c06CongiMap\u7684\u540d\u5b57\u5199\u5230\u8f93\u51fa\u5185\u5bb9\u4e2d\uff0c\u65b9\u4fbf\u540e\u7eed\u7528\u6237\u4f7f\u7528\u3002"),(0,r.kt)("h3",{id:"\u53ef\u9760\u6027\u4efb\u52a1"},"\u53ef\u9760\u6027\u4efb\u52a1"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://github.com/kubebb/core/blob/main/pipeline/rating/tasks/task-helm-lint.yaml"},"rating-reliability-linting"))),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"rating-reliability-linting")," \u7528\u6765\u68c0\u67e5 chart \u5305\u91cc\u4e66\u5199\u683c\u5f0f\u662f\u5426\u6b63\u786e\uff0c\u4ee5\u4fdd\u8bc1\u5e73\u53f0\u53ef\u4ee5\u5b8c\u6574\u7684\u7ed9\u7528\u6237\u5c55\u793a\u76f8\u5173\u4fe1\u606f\u3002"),(0,r.kt)("p",null,"\u5206\u4ee5\u4e0b2\u4e2a\u6b65\u9aa4\u5b8c\u6210\uff1a"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u4e0b\u8f7d chart \u5305")),(0,r.kt)("p",null,"\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"p"},"helm pull")," \u4e0b\u8f7d chart \u5305\u3002"),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"\u68c0\u67e5 lint")),(0,r.kt)("p",null,"\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"p"},"helm lint")," \u68c0\u67e5\u5305\u7684\u4e66\u5199\u683c\u5f0f\uff0c\u8f93\u51fa\u5185\u5bb9\u4f1a\u8ddf\u968f\u65e5\u5fd7\u8f93\u51fa\u3002"),(0,r.kt)("h3",{id:"\u53ef\u7528\u6027\u4efb\u52a1"},"\u53ef\u7528\u6027\u4efb\u52a1"),(0,r.kt)("p",null,"(\u5f85\u8865\u5145)"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a95e9274.c0534094.js b/assets/js/a95e9274.c0534094.js deleted file mode 100644 index 703e9011e..000000000 --- a/assets/js/a95e9274.c0534094.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7530],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=a.createContext({}),c=function(e){var t=a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(o.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,o=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),m=c(n),d=r,k=m["".concat(o,".").concat(d)]||m[d]||p[d]||s;return n?a.createElement(k,l(l({ref:t},u),{},{components:n})):a.createElement(k,l({ref:t},u))}));function k(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,l=new Array(s);l[0]=d;var i={};for(var o in t)hasOwnProperty.call(t,o)&&(i[o]=t[o]);i.originalType=e,i[m]="string"==typeof e?e:r,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>l,default:()=>p,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var a=n(7462),r=(n(7294),n(3905));const s={sidebar_position:2},l="\u65e5\u5fd7\u7ec4\u4ef6",i={unversionedId:"component-market/logging",id:"component-market/logging",title:"\u65e5\u5fd7\u7ec4\u4ef6",description:"* ingress+rbac(\u63a8\u8350\u6a21\u5f0f)",source:"@site/docs/component-market/logging.md",sourceDirName:"component-market",slug:"/component-market/logging",permalink:"/website/docs/component-market/logging",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"kubedashboard \u7ba1\u7406\u5de5\u5177",permalink:"/website/docs/component-market/kubedashboard"},next:{title:"\u76d1\u63a7\u7ec4\u4ef6",permalink:"/website/docs/component-market/monitoring"}},o={},c=[{value:"\u529f\u80fd\u63cf\u8ff0",id:"\u529f\u80fd\u63cf\u8ff0",level:3},{value:"values \u5b57\u6bb5\u89e3\u91ca",id:"values-\u5b57\u6bb5\u89e3\u91ca",level:3},{value:"\u5b89\u88c5\u6d4b\u8bd5",id:"\u5b89\u88c5\u6d4b\u8bd5",level:2},{value:'1. \u4f7f\u7528 ingress \u4e0e RBAC \u8ba4\u8bc1\u65b9\u5f0f',id:"1-\u4f7f\u7528-ingress-\u4e0e-rbac-\u8ba4\u8bc1\u65b9\u5f0f",level:3},{value:"\u4f9d\u8d56\u955c\u50cf",id:"\u4f9d\u8d56\u955c\u50cf",level:4},{value:"\u8c03\u6574values.yml",id:"\u8c03\u6574valuesyml",level:4},{value:"\u90e8\u7f72 elasticsearch",id:"\u90e8\u7f72-elasticsearch",level:4},{value:"\u8bbf\u95ee elasticsearch",id:"\u8bbf\u95ee-elasticsearch",level:4},{value:'2. ingress \u4e0b\u4e0d\u5f00\u542f RBAC \u8ba4\u8bc1',id:"2-ingress-\u4e0b\u4e0d\u5f00\u542f-rbac-\u8ba4\u8bc1",level:3},{value:"\u51c6\u5907\u955c\u50cf(\u53c2\u8003\u4e4b\u524d\u7684\u955c\u50cf)",id:"\u51c6\u5907\u955c\u50cf\u53c2\u8003\u4e4b\u524d\u7684\u955c\u50cf",level:4},{value:"\u8c03\u6574values.yml",id:"\u8c03\u6574valuesyml-1",level:4},{value:"\u8bbf\u95ee elasticsearch",id:"\u8bbf\u95ee-elasticsearch-1",level:4}],u={toc:c},m="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(m,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u65e5\u5fd7\u7ec4\u4ef6"},"\u65e5\u5fd7\u7ec4\u4ef6"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#1-%E4%BD%BF%E7%94%A8-ingress-%E4%B8%8E-rbac-%E8%AE%A4%E8%AF%81%E6%96%B9%E5%BC%8F"},"ingress+rbac(\u63a8\u8350\u6a21\u5f0f)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#2-ingress-%E4%B8%8B%E4%B8%8D%E5%BC%80%E5%90%AF-rbac-%E8%AE%A4%E8%AF%81"},"ingress-without-auth"))),(0,r.kt)("h3",{id:"\u529f\u80fd\u63cf\u8ff0"},"\u529f\u80fd\u63cf\u8ff0"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"helm package\u5305\u542b\u4e86\u5b89\u88c5elasticsearch\u548c\u5bf9\u5916\u66b4\u9732elasticsearch\u670d\u52a1\u7684ingress\u8d44\u6e90\u6587\u4ef6;"),(0,r.kt)("li",{parentName:"ol"},"\u652f\u6301\u914d\u7f6e\u7684\u7ec4\u4ef6\u5305\u62ec\u4ee5\u4e0b\u51e0\u4e2a\uff1a ",(0,r.kt)("blockquote",{parentName:"li"},(0,r.kt)("ul",{parentName:"blockquote"},(0,r.kt)("li",{parentName:"ul"},"rbacSidecar(.Values.rbacSidecar.enabled): \u5728elasticsearch client\u8282\u70b9\u4e0a\u5b89\u88c5kube-rbac-proxy sidecar \u7528\u6765\u8ba4\u8bc1\u7528\u6237token"),(0,r.kt)("li",{parentName:"ul"},"ingress(.Values.ingress.enabled): \u901a\u8fc7ingress\u66b4\u9732elasticsearch\u670d\u52a1\uff0c\u6309\u9700\u5f00\u542f\uff0c\u9ed8\u8ba4\u4e3a true"))))),(0,r.kt)("p",null,"rbacSidecar \u548c elasticsearch.secure \u4ec5\u80fd\u4f7f\u7528\u5176\u4e2d\u4e00\u79cd\uff0c\u6bd4\u5982:"),(0,r.kt)("blockquote",null,(0,r.kt)("ul",{parentName:"blockquote"},(0,r.kt)("li",{parentName:"ul"},".Values.rbacSidecar.enabled: true, .Values.elasticsearch.secure: false"),(0,r.kt)("li",{parentName:"ul"},".Values.rbacSidecar.enabled: false, .Values.elasticsearch.secure: true"))),(0,r.kt)("h3",{id:"values-\u5b57\u6bb5\u89e3\u91ca"},"values \u5b57\u6bb5\u89e3\u91ca"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'operatorName: elasticsearch-operator # operator\u540d\u79f0\nnamespace: addon-system #operator\u90e8\u7f72\u7684ns,\u9700\u8981\u6839\u636e\u5177\u4f53\u60c5\u51b5\u8bbe\u7f6e \nwatchNamespace: addon-system #operator watch\u7684ns(\u76ee\u524d\u5e94\u8be5\u662fcluster scope)\uff0c\u9700\u8981\u6839\u636e\u5177\u4f53\u60c5\u51b5\u8bbe\u7f6e\nreplicaCount: 1\n\nkubectlImage: hub.tenxcloud.com/system_containers/kubectl:v1.20.8 #kubectl\u955c\u50cf, \u7528\u6765\u6267\u884c\u4e00\u4e9b\u547d\u4ee4\n\nimage:\n repository: hub.tenxcloud.com/system_containers/elasticsearch-operator:v5.4.1 #operator\u955c\u50cf\u5730\u5740\n pullPolicy: IfNotPresent\n\nserviceAccount: #\u4e0d\u7528\u5904\u7406\n create: true\n annotations: {}\n name: "elasticsearch-operator" #\u4e0d\u7528\u5904\u7406\n\nelasticsearch: #\u90e8\u7f72elasticsearch\u7684\u65f6\u5019\u7684\u914d\u7f6e\n name: es #\u8d44\u6e90\u540d\u79f0\n namespace: addon-system #\u90e8\u7f72\u5728\u54ea\u4e2anamespace\n affinity: #\u4e0d\u7528\u5904\u7406\n allInOne: true #\u5982\u679c\u662f\u5355\u673a\u90e8\u7f72 \u914d\u7f6e\u4e3atrue \u96c6\u7fa4\u914d\u7f6e\u4e3afalse\n clientNodeReplicas: 1 #\u5982\u679c\u96c6\u7fa4\u6a21\u5f0f es client\u7684\u4e2a\u6570\n masterNodeReplicas: 1 #\u5982\u679c\u96c6\u7fa4\u6a21\u5f0f es master\u7684\u4e2a\u6570\n dataNodeReplicas: 1 #\u5982\u679c\u96c6\u7fa4\u6a21\u5f0f es data\u7684\u4e2a\u6570\n dataDiskSize: 50Gi #elasticsearch data pod\u78c1\u76d8\u5927\u5c0f\n elasticSearchImage: hub.tenxcloud.com/system_containers/elasticsearch:7.10.1-ik #elasticsearch\u955c\u50cf\u5730\u5740\n enabled: true\n secure: true\n javaOptions: -Xms1g -Xmx1g #JVM \u5806\u6808\u914d\u7f6e\uff0c\u6839\u636e\u9700\u8981\u8c03\u6574\n masterDiskSize: 1Gi #elasticsearch master pod\u78c1\u76d8\u5927\u5c0f\n resources:\n limits:\n cpu: "1"\n memory: 2Gi\n requests:\n cpu: "1"\n memory: 2Gi\n storage:\n storageClass: openebs-hostpath # \u914d\u7f6e\u96c6\u7fa4\u5185\u53ef\u7528\u7684 storageclass\n\nrbacSidecar: #kube-rbac-proxy\u914d\u7f6e\n enabled: false \n image: hub.tenxcloud.com/system_containers/kube-rbac-proxy:v0.13.0-32f11472 #kube-rbac-proxy\u955c\u50cf\u5730\u5740\n imagePullPolicy: IfNotPresent\n args: #kube-rbac-proxy\u542f\u52a8\u53c2\u6570\n - "--secure-listen-address=0.0.0.0:8443"\n - "--upstream=http://127.0.0.1:9200"\n - "--logtostderr=true"\n - "--oidc-issuer=https://oidc.172.22.96.16.nip.io" #\u8fd9\u91cc\u662foidc-server\u7684\u5730\u5740,\u9700\u8981\u6839\u636e\u5177\u4f53\u73af\u5883\u914d\u7f6e\n - "--oidc-clientID=bff-client" #\u9700\u8981\u6839\u636e\u5177\u4f53\u73af\u5883\u914d\u7f6e,\u4fdd\u6301\u4e0d\u53d8\u5373\u53ef\n - "--oidc-ca-file=/etc/oidc-server/tls/ca.crt" #\u9700\u8981\u6839\u636e\u5177\u4f53\u73af\u5883\u914d\u7f6e,\u4fdd\u6301\u4e0d\u53d8\u5373\u53ef\n - "--token-passthrough"\n - "--v=1"\n resources:\n limits:\n cpu: "1"\n memory: 1Gi\n requests:\n cpu: 500m\n memory: 512Mi\n\nfluentd: #fluentd\u914d\u7f6e\n enabled: true #\u662f\u5426\u5f00\u542ffluentd\n withAuditLog: true #fluend\u662f\u5426\u6536\u96c6audit\u65e5\u5fd7\n affinity:\n nodeAffinity:\n requiredDuringSchedulingIgnoredDuringExecution:\n nodeSelectorTerms:\n - matchExpressions:\n - key: node-role.kubernetes.io/agent\n operator: DoesNotExist\n image: hub.tenxcloud.com/system_containers/fluentd-elk:v5.0-kfk\n imagePullPolicy: IfNotPresent\n resources:\n limits:\n cpu: "1"\n memory: 2Gi\n requests:\n cpu: 100m\n memory: 256Mi\n tolerations:\n - effect: NoSchedule\n operator: Exists\n - effect: NoExecute\n operator: Exists\n\ningress: \n enabled: true\n className: "" # 1.33\u7248\u672c\u7684ingress,\u4f7f\u7528className\uff0cannotations\u9700\u8981\u53bb\u6389kubernetes.io/ingress.class\u6ce8\u89e3\n ingressName: "ingress-es"\n annotations:\n # 0.44\u7248\u672c\u7684ingress\uff0c\u4f7f\u7528\u6ce8\u89e3\u7684\u65b9\u5f0f\uff0c\u8fd9\u4e2a\u6ce8\u89e3\u7684\u503c\u6839\u636eingress-controller\u91cc\u9762\u914d\u7f6e\u7684\u503c\u6765\u786e\u5b9a\n ingressClass: nginx-ingress-wwixjqtizm #\u9700\u8981\u6839\u636e\u5177\u4f53\u73af\u5883\u914d\u7f6e\n # kubernetes.io/tls-acme: "true"\n labels: {}\n hosts:\n - host: logging.nip.io #\u8fd9\u91cc\u662felasticsearch\u901a\u8fc7ingress\u66b4\u9732\u51fa\u6765\u7684host,\u547d\u540d\u89c4\u8303logging..nip.io,\u8fd9\u91ccingress_controller_ip\u9700\u8981\u6839\u636e\u5177\u4f53\u7684\u73af\u5883\u83b7\u53d6\n paths:\n - path: /\n pathType: ImplementationSpecific\n tls: []\n #- secretName: chart-example-tls\n # hosts:\n # - chart-example.local\n\n')),(0,r.kt)("h2",{id:"\u5b89\u88c5\u6d4b\u8bd5"},"\u5b89\u88c5\u6d4b\u8bd5"),(0,r.kt)("h3",{id:"1-\u4f7f\u7528-ingress-\u4e0e-rbac-\u8ba4\u8bc1\u65b9\u5f0f"},(0,r.kt)("a",{name:"test-with-ingress-and-rbac"},"1. \u4f7f\u7528 ingress \u4e0e RBAC \u8ba4\u8bc1\u65b9\u5f0f")),(0,r.kt)("blockquote",null,(0,r.kt)("ul",{parentName:"blockquote"},(0,r.kt)("li",{parentName:"ul"},".Values.rbacSidecar.enabled: true"),(0,r.kt)("li",{parentName:"ul"},".Values.elasticsearch.secure: false"),(0,r.kt)("li",{parentName:"ul"},".Values.ingress.enabled false"))),(0,r.kt)("h4",{id:"\u4f9d\u8d56\u955c\u50cf"},"\u4f9d\u8d56\u955c\u50cf"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"hub.tenxcloud.com/system_containers/elasticsearch-operator v5.4.1 89aeaffad933 2 hours ago 30.8MB\nhub.tenxcloud.com/system_containers/elasticsearch 7.10.1-ik 3bf941c09b95 8 months ago 963MB\nhub.tenxcloud.com/system_containers/kubectl v1.20.8 403754878e80 3 months ago 112MB\nhub.tenxcloud.com/system_containers/fluentd-elk v5.0-kfk 63cd90e77b9c 18 months ago 347MB\nhub.tenxcloud.com/system_containers/kube-rbac-proxy v0.13.0-32f11472 d00c78c0989a 30 minutes ago 54.2MB")),(0,r.kt)("h4",{id:"\u8c03\u6574valuesyml"},(0,r.kt)("a",{parentName:"h4",href:"#value"},"\u8c03\u6574values.yml")),(0,r.kt)("blockquote",null,(0,r.kt)("ul",{parentName:"blockquote"},(0,r.kt)("li",{parentName:"ul"},".Values.rbacSidecar.enabled: true"),(0,r.kt)("li",{parentName:"ul"},".Values.elasticsearch.secure: false"),(0,r.kt)("li",{parentName:"ul"},".Values.ingress.enabled true"))),(0,r.kt)("p",null,"kube-rbac-proxy\u7684\u914d\u7f6e\u5728rbacSidercar\u8fd9\u4e00\u6bb5"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'rbacSidecar:\n enabled: true\n image: hub.tenxcloud.com/system_containers/kube-rbac-proxy:v0.13.0-32f11472\n imagePullPolicy: IfNotPresent\n certSecretName: oidc-server-root-secret #\u770b\u4e0b\u9762\u83b7\u53d6\u53c2\u6570\u63cf\u8ff0\n args:\n - "--insecure-listen-address=0.0.0.0:8443"\n - "--upstream=http://127.0.0.1:9200"\n - "--oidc-issuer=https://oidc.172.22.96.16.nip.io" #\u770b\u4e0b\u9762\u83b7\u53d6\u53c2\u6570\u63cf\u8ff0\n - "--oidc-clientID=bff-client"\n - "--oidc-ca-file=/etc/oidc-server/tls/ca.crt"\n - "--token-passthrough"\n - "--logtostderr=true"\n - "--v=1"\n resources:\n limits:\n cpu: "1"\n memory: 1Gi\n requests:\n cpu: 500m\n memory: 512Mi\n')),(0,r.kt)("p",null,"\u83b7\u53d6\u53c2\u6570 --oidc-issuer\uff0c\u8bbe\u7f6e\u4e3a oidc \u670d\u52a1\u7684\u5730\u5740\uff0c\u4e00\u822c\u7531 u4a-component \u63d0\u4f9b"),(0,r.kt)("p",null,"\u83b7\u53d6\u53c2\u6570 certSecretName: \u8fd9\u4e2asecret\u9700\u8981\u4eceu4a-system\u8fd9\u4e2anamespace\u4e2d\u83b7\u53d6, kubectl get secret oidc-server-root-secret -n u4a-system -o yaml > oidc-server-root-secret.yaml, \u5c06yaml\u91cc\u8fb9\u7684namespace\u4fe1\u606f\u6539\u4e3a addon-system\uff0c\u5e76\u901a\u8fc7 kubectl apply -f oidc-server-root-secret.yaml \u521b\u5efa\u5230 addon-system \u4e2d\u3002"),(0,r.kt)("h4",{id:"\u90e8\u7f72-elasticsearch"},"\u90e8\u7f72 elasticsearch"),(0,r.kt)("p",null,"\u5f00\u59cb\u5b89\u88c5:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u8fdb\u5165 es-logging/helm-chart \u76ee\u5f55\uff0c\u6267\u884c helm install es . -n addon-system"),(0,r.kt)("li",{parentName:"ul"},"helm list -n addon-system,\u53ef\u4ee5\u770b\u5230release\u6570\u636e")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"# kubectl get pod -n addon-system\u67e5\u770bpod\u72b6\u6001(\u8fd9\u91cc\u6709\u4e00\u4e2ajob\u4f9d\u8d56es\u7684\u72b6\u6001\uff0c\u53ef\u80fd\u9700\u8981\u4e00\u70b9\u65f6\u95f4)\n# wait es-sgadmin-es job completed\n# kubectl get pod -n addon-system\nNAME READY STATUS RESTARTS AGE\nes-allinone-es-0 1/1 Running 0 5m40s\nes-elasticsearch-operator-88c7cccf6-5scjt 1/1 Running 0 5m51s\nes-sgadmin-es-mmnc4 0/1 Completed 0 28s\n\n")),(0,r.kt)("h4",{id:"\u8bbf\u95ee-elasticsearch"},"\u8bbf\u95ee elasticsearch"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u83b7\u53d6fluentd sa secret")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"SECRET_NAME=$(kubectl get secret -n addon-system | grep fluentd | awk '{print $1}')\n")),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"\u83b7\u53d6\u8bbf\u95eeelasticsearch\u7684token")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'TOKEN=$(kubectl get secret $SECRET_NAME -n addon-system -o yaml | grep "token:" | awk -F": " \'{print $2}\' | base64 -d)\n')),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},"\u83b7\u53d6ingress\u4fe1\u606f")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"ES_HOST=$(kubectl get ingress ingress-es -n addon-system | grep ingress-es | awk '{print $3}')\nINGRESS_IP=$(kubectl get ingress ingress-es -n addon-system | grep ingress-es | awk '{print $4}')\n")),(0,r.kt)("ol",{start:4},(0,r.kt)("li",{parentName:"ol"},"\u8bbf\u95eeelasticsearch")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},'curl -H "Authorization: Bearer $TOKEN" http://$INGRESS_IP -H "Host: $ES_HOST"\n')),(0,r.kt)("p",null,"\u4f1a\u8fd4\u56de\u5982\u4e0b\u63d0\u793a\u4fe1\u606f\uff0c\u8bf4\u660e\u65e5\u5fd7\u670d\u52a1\u6b63\u5e38\u542f\u52a8\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "name": "es-allinone-es-0",\n "cluster_name": "es",\n "cluster_uuid": "ATBDAzVHQeSDb7gaKdgNUw",\n "version": {\n "number": "7.10.1",\n "build_flavor": "default",\n "build_type": "tar",\n "build_hash": "7a15d2a",\n "build_date": "2020-08-12T07:27:20.804867Z",\n "build_snapshot": false,\n "lucene_version": "7.7.3",\n "minimum_wire_compatibility_version": "5.6.0",\n "minimum_index_compatibility_version": "5.0.0"\n },\n "tagline": "You Know, for Search"\n}\n')),(0,r.kt)("h3",{id:"2-ingress-\u4e0b\u4e0d\u5f00\u542f-rbac-\u8ba4\u8bc1"},(0,r.kt)("a",{name:"test-with-ingress-without-auth"},"2. ingress \u4e0b\u4e0d\u5f00\u542f RBAC \u8ba4\u8bc1")),(0,r.kt)("blockquote",null,(0,r.kt)("ul",{parentName:"blockquote"},(0,r.kt)("li",{parentName:"ul"},".Values.rbacSidecar.enabled: false"),(0,r.kt)("li",{parentName:"ul"},".Values.elasticsearch.secure: false"),(0,r.kt)("li",{parentName:"ul"},".Values.ingress.enabled true"))),(0,r.kt)("h4",{id:"\u51c6\u5907\u955c\u50cf\u53c2\u8003\u4e4b\u524d\u7684\u955c\u50cf"},(0,r.kt)("a",{parentName:"h4",href:"#image"},"\u51c6\u5907\u955c\u50cf(\u53c2\u8003\u4e4b\u524d\u7684\u955c\u50cf)")),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"hub.tenxcloud.com/system_containers/elasticsearch-operator v5.4.1 89aeaffad933 2 hours ago 30.8MB\nhub.tenxcloud.com/system_containers/elasticsearch 7.10.1-ik 3bf941c09b95 8 months ago 963MB\nhub.tenxcloud.com/system_containers/kubectl v1.20.8 403754878e80 3 months ago 112MB\nhub.tenxcloud.com/system_containers/fluentd-elk v5.0-kfk 63cd90e77b9c 18 months ago 347MB")),(0,r.kt)("h4",{id:"\u8c03\u6574valuesyml-1"},(0,r.kt)("a",{parentName:"h4",href:"#value"},"\u8c03\u6574values.yml")),(0,r.kt)("blockquote",null,(0,r.kt)("ul",{parentName:"blockquote"},(0,r.kt)("li",{parentName:"ul"},".Values.rbacSidecar.enabled: false"),(0,r.kt)("li",{parentName:"ul"},".Values.elasticsearch.secure: false"),(0,r.kt)("li",{parentName:"ul"},".Values.ingress.enabled true"))),(0,r.kt)("h4",{id:"\u8bbf\u95ee-elasticsearch-1"},"\u8bbf\u95ee elasticsearch"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u83b7\u53d6ingress\u4fe1\u606f")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"ES_HOST=$(kubectl get ingress ingress-es -n addon-system | grep ingress-es | awk '{print $3}')\nINGRESS_IP=$(kubectl get ingress ingress-es -n addon-system | grep ingress-es | awk '{print $4}')\n")),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"\u8bbf\u95eeelasticsearch")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},'curl http://$INGRESS_IP -H "Host: $ES_HOST"\n')),(0,r.kt)("p",null,"\u4f1a\u8fd4\u56de\u5982\u4e0b\u63d0\u793a\u4fe1\u606f\uff0c\u8bf4\u660e\u65e5\u5fd7\u670d\u52a1\u6b63\u5e38\u542f\u52a8\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'{\n "name": "es-allinone-es-0",\n "cluster_name": "es",\n "cluster_uuid": "ATBDAzVHQeSDb7gaKdgNUw",\n "version": {\n "number": "7.10.1",\n "build_flavor": "default",\n "build_type": "tar",\n "build_hash": "7a15d2a",\n "build_date": "2020-08-12T07:27:20.804867Z",\n "build_snapshot": false,\n "lucene_version": "7.7.3",\n "minimum_wire_compatibility_version": "5.6.0",\n "minimum_index_compatibility_version": "5.0.0"\n },\n "tagline": "You Know, for Search"\n}\n')))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a9a78b31.8f25754e.js b/assets/js/a9a78b31.8f25754e.js deleted file mode 100644 index 263541748..000000000 --- a/assets/js/a9a78b31.8f25754e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1915],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>k});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),d=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},c=function(e){var t=d(e.components);return r.createElement(i.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},b=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,i=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=d(n),b=a,k=u["".concat(i,".").concat(b)]||u[b]||p[b]||o;return n?r.createElement(k,s(s({ref:t},c),{},{components:n})):r.createElement(k,s({ref:t},c))}));function k(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,s=new Array(o);s[0]=b;var l={};for(var i in t)hasOwnProperty.call(t,i)&&(l[i]=t[i]);l.originalType=e,l[u]="string"==typeof e?e:a,s[1]=l;for(var d=2;d{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>s,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>d});var r=n(7462),a=(n(7294),n(3905));const o={sidebar_position:1},s="kubedashboard \u7ba1\u7406\u5de5\u5177",l={unversionedId:"component-market/kubedashboard",id:"component-market/kubedashboard",title:"kubedashboard \u7ba1\u7406\u5de5\u5177",description:"\u8fd9\u91cc\u4ecb\u7ecd\u4e00\u4e0b\u5982\u4f55\u57fa\u4e8e kubebb \u7684\u5e95\u5ea7\u6765\u90e8\u7f72 Kubernetes Dashboard\uff0c\u5e76\u4f7f\u7528\u7edf\u4e00\u7684 OIDC \u8ba4\u8bc1\u3001\u5355\u70b9\u767b\u5f55\u53ca\u539f\u751f Kubernetes RBAC \u8ba4\u8bc1\u3002",source:"@site/docs/component-market/kubedashboard.md",sourceDirName:"component-market",slug:"/component-market/kubedashboard",permalink:"/website/docs/component-market/kubedashboard",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6\u5e02\u573a",permalink:"/website/docs/category/\u7ec4\u4ef6\u5e02\u573a"},next:{title:"\u65e5\u5fd7\u7ec4\u4ef6",permalink:"/website/docs/component-market/logging"}},i={},d=[{value:"\u5b89\u88c5 Kubernetes dashboard",id:"\u5b89\u88c5-kubernetes-dashboard",level:3},{value:"Uninstall",id:"uninstall",level:3}],c={toc:d},u="wrapper";function p(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"kubedashboard-\u7ba1\u7406\u5de5\u5177"},"kubedashboard \u7ba1\u7406\u5de5\u5177"),(0,a.kt)("p",null,"\u8fd9\u91cc\u4ecb\u7ecd\u4e00\u4e0b\u5982\u4f55\u57fa\u4e8e kubebb \u7684\u5e95\u5ea7\u6765\u90e8\u7f72 Kubernetes Dashboard\uff0c\u5e76\u4f7f\u7528\u7edf\u4e00\u7684 OIDC \u8ba4\u8bc1\u3001\u5355\u70b9\u767b\u5f55\u53ca\u539f\u751f Kubernetes RBAC \u8ba4\u8bc1\u3002"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u5de5\u5177\u4ee3\u7801\u5730\u5740\uff1a",(0,a.kt)("a",{parentName:"p",href:"https://github.com/kubernetes/dashboard"},"kubernetes dashboard "))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"Prerequisite"),(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u90e8\u7f72 kubebb \u7684\u5e95\u5ea7\u7ec4\u4ef6 u4a-component\uff0c\u63d0\u4f9b\u57fa\u4e8e K8S \u6784\u5efa\u7684\u57fa\u672c\u7684\u8d26\u53f7\u3001\u8ba4\u8bc1\u3001\u6743\u9650\u548c\u5ba1\u8ba1\u529f\u80fd\u3002"),(0,a.kt)("li",{parentName:"ul"},"\u83b7\u53d6\u90e8\u7f72\u7ec4\u4ef6")),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"$ git clone https://github.com/kubebb/addon-components.git\n# \u8fdb\u5165\u5bf9\u5e94\u76ee\u5f55\n$ cd kube-dashboard\n")))),(0,a.kt)("h3",{id:"\u5b89\u88c5-kubernetes-dashboard"},"\u5b89\u88c5 Kubernetes dashboard"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u7f16\u8f91 values.yaml\uff0c\u6309\u9700\u8981\u66ff\u6362\u955c\u50cf\u5730\u5740\uff0c\u66ff\u6362 ",(0,a.kt)("inlineCode",{parentName:"li"},".nip.io\n\n# You must check and update the value of each variable below\nkubeOidcProxy:\n issuerUrl: # https://portal.172.22.96.209.nip.io/oidc\n clientId: \n clientSecret: \n usernameClaim: preferred_username\n groupClaim: groups\n hostConfig:\n enabled: true\n hostAliases:\n - hostnames:\n # MUST update this value\n - portal..nip.io\n ip: \n")),(0,a.kt)("ol",{start:2},(0,a.kt)("li",{parentName:"ol"},"\u8fd0\u884c helm \u5b89\u88c5\u63d2\u4ef6")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"# \u5982\u679c\u9700\u8981\uff0c\u521b\u5efa\u5355\u72ec\u7684 namespace \u6765\u90e8\u7f72\u6b64\u63d2\u4ef6\uff0c\u6bd4\u5982 addon-system\nkubectl create ns addon-system\n# \u90e8\u7f72 kube-dashboard \u63d2\u4ef6\nhelm install kube-dashboard -n addon-system .\n")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Note: \u6b64\u65f6\uff0cdashboard \u7684 pod \u4f1a\u5904\u4e8e ContainerCreating \u7684\u72b6\u6001\uff0c\u8fd9\u662f\u56e0\u4e3a\u7f3a\u5c11\u6240\u4f9d\u8d56\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u63a5\u4e0b\u6765\u6211\u4eec\u9700\u8981\u51c6\u5907\u6b64\u914d\u7f6e\u6587\u4ef6\u3002")),(0,a.kt)("ol",{start:3},(0,a.kt)("li",{parentName:"ol"},"\u521b\u5efa kube-dashboard \u6240\u9700\u8981\u7684 kubeconfig \u6587\u4ef6, \u4ee5\u4fbf kube-dashboard \u53ef\u4ee5\u4f7f\u7528\u7edf\u4e00\u7684 kube-oidc-proxy \u8fdb\u884c\u8ba4\u8bc1\uff0c\u540c\u65f6\uff0c\u4e5f\u9700\u8981\u5728\u914d\u7f6e\u4e2d\u4f7f\u7528\u6b63\u786e\u7684\u8bc1\u4e66\u548c\u8fde\u63a5 token \u4fe1\u606f")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"# copy the kubeconfig template\n$ cp sample-kubeconfig kubeconfig\n# edit kubeconfig file to use the correct cluster.certificate-authority-data, cluster.server, user.token\n\n# Step 1\n$ export CLUSTER_CA=$(kubectl get secret -n u4a-system oidc-server-root-secret -o jsonpath='{.data.ca\\.crt}')\n$ use the value from $CLUSTER_CA to replace cluster.certificate-authority-data() in kubeconfig file\n\n# Step 2\n$ export USER_TOKEN_NAME=$(kubectl -n addon-system get serviceaccount kubernetes-dashboard -o=jsonpath='{.secrets[0].name}')\n$ export USER_TOKEN_VALUE=$(kubectl -n addon-system get secret/${USER_TOKEN_NAME} -o=go-template='{{.data.token}}' | base64 --decode)\n# use the value from $USER_TOKEN_VALUE to replace user.token() in kubeconfig file\n\n# Step 3 replace cluster.server() with the address of kube-oidc-proxy\n\n# Step 4 create the configmap\n$ kubectl create cm dashboard-kubeconfig --from-file=kubeconfig -n addon-system\n")),(0,a.kt)("ol",{start:4},(0,a.kt)("li",{parentName:"ol"},"\u91cd\u542f kube-dashboard")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"$ kubectl delete pod -n addon-system $(kubectl get pod -n addon-system | grep kubernetes-dashboard | awk '{print $1}')\n")),(0,a.kt)("ol",{start:5},(0,a.kt)("li",{parentName:"ol"},"\u5728 OIDC \u670d\u52a1\u4e2d\u6dfb\u52a0 kube-dashboard \u7684 callback \u5730\u5740.")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"$ kubectl edit cm oidc-server -n u4a-system\n# find redirectURIs and add a new redirect url 'https:///oauth/callback'\n")),(0,a.kt)("ol",{start:6},(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"\u4f7f\u7528 ",(0,a.kt)("inlineCode",{parentName:"p"},"kubedashboard..nip.io")," \u5730\u5740\u8bbf\u95ee kube-dashboard. \u5982\u679c\u5904\u4e8e\u672a\u767b\u5f55\u72b6\u6001\uff0c\u4f1a\u88ab\u91cd\u5b9a\u5411\u5230\u7edf\u4e00\u7684\u8ba4\u8bc1\u670d\u52a1\u8fdb\u884c\u767b\u5f55\uff0c\u6210\u529f\u767b\u5f55\u540e\u5373\u523b\u643a\u5e26\u6388\u6743\u7684 token \u56de\u5230 kube-dashboard \u8fdb\u884c\u6b63\u5e38\u4f7f\u7528\u4e86\u3002")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"\u53ef\u4ee5\u901a\u8fc7\u7ed9\u767b\u5f55\u7684\u7528\u6237\u6388\u6743\u4e0d\u540c\u7684 RBAC \u7b56\u7565\uff0c\u6765\u9a8c\u8bc1\u662f\u5426\u53ea\u6709\u6388\u6743\u7684\u8d44\u6e90\u624d\u80fd\u88ab\u8be5\u7528\u6237\u8bbf\u95ee\u3002"))),(0,a.kt)("h3",{id:"uninstall"},"Uninstall"),(0,a.kt)("p",null,"\u901a\u8fc7 helm uninstall \u6765\u5378\u8f7d\u8be5\u63d2\u4ef6"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"helm uninstall kube-dashboard -n addon-system\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ab5e4632.48026ef8.js b/assets/js/ab5e4632.48026ef8.js new file mode 100644 index 000000000..090b01366 --- /dev/null +++ b/assets/js/ab5e4632.48026ef8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8034],{3905:(t,e,n)=>{n.d(e,{Zo:()=>d,kt:()=>b});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function l(t){for(var e=1;e=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var p=a.createContext({}),c=function(t){var e=a.useContext(p),n=e;return t&&(n="function"==typeof t?t(e):l(l({},e),t)),n},d=function(t){var e=c(t.components);return a.createElement(p.Provider,{value:e},t.children)},u="mdxType",k={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},m=a.forwardRef((function(t,e){var n=t.components,r=t.mdxType,i=t.originalType,p=t.parentName,d=o(t,["components","mdxType","originalType","parentName"]),u=c(n),m=r,b=u["".concat(p,".").concat(m)]||u[m]||k[m]||i;return n?a.createElement(b,l(l({ref:e},d),{},{components:n})):a.createElement(b,l({ref:e},d))}));function b(t,e){var n=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=n.length,l=new Array(i);l[0]=m;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o[u]="string"==typeof t?t:r,l[1]=o;for(var c=2;c{n.r(e),n.d(e,{assets:()=>p,contentTitle:()=>l,default:()=>k,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var a=n(7462),r=(n(7294),n(3905));const i={sidebar_position:4},l="\u96c6\u6210\u5355\u70b9\u767b\u5f55",o={unversionedId:"develop-guid/building-base/configuration/oidc-integration",id:"develop-guid/building-base/configuration/oidc-integration",title:"\u96c6\u6210\u5355\u70b9\u767b\u5f55",description:"\u901a\u8fc7 OIDC \u534f\u8bae\uff0c\u5b9e\u73b0\u540c kubebb \u7684\u7edf\u4e00\u8d26\u53f7\u3001\u8ba4\u8bc1\u53ca\u5355\u70b9\u767b\u5f55\u529f\u80fd\u3002",source:"@site/docs/develop-guid/building-base/configuration/oidc-integration.md",sourceDirName:"develop-guid/building-base/configuration",slug:"/develop-guid/building-base/configuration/oidc-integration",permalink:"/website/docs/develop-guid/building-base/configuration/oidc-integration",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"\u914d\u7f6e\u5ba1\u8ba1\u80fd\u529b",permalink:"/website/docs/develop-guid/building-base/configuration/audit-config"},next:{title:"\u751f\u6210 oidc-proxy \u7684\u8bc1\u4e66",permalink:"/website/docs/develop-guid/building-base/configuration/issue-oidc-proxy-certs"}},p={},c=[{value:"1. \u5728 kubebb \u670d\u52a1\u7aef\u6ce8\u518c OIDC \u5ba2\u6237\u7aef",id:"1-\u5728-kubebb-\u670d\u52a1\u7aef\u6ce8\u518c-oidc-\u5ba2\u6237\u7aef",level:2},{value:"2. \u63a5\u5165 OIDC \u767b\u5f55",id:"2--\u63a5\u5165-oidc-\u767b\u5f55",level:2}],d={toc:c},u="wrapper";function k(t){let{components:e,...n}=t;return(0,r.kt)(u,(0,a.Z)({},d,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u96c6\u6210\u5355\u70b9\u767b\u5f55"},"\u96c6\u6210\u5355\u70b9\u767b\u5f55"),(0,r.kt)("p",null,"\u901a\u8fc7 OIDC \u534f\u8bae\uff0c\u5b9e\u73b0\u540c kubebb \u7684\u7edf\u4e00\u8d26\u53f7\u3001\u8ba4\u8bc1\u53ca\u5355\u70b9\u767b\u5f55\u529f\u80fd\u3002"),(0,r.kt)("h2",{id:"1-\u5728-kubebb-\u670d\u52a1\u7aef\u6ce8\u518c-oidc-\u5ba2\u6237\u7aef"},"1. \u5728 kubebb \u670d\u52a1\u7aef\u6ce8\u518c OIDC \u5ba2\u6237\u7aef"),(0,r.kt)("p",null,"\u901a\u8fc7\u4fee\u6539 dex-server \u4f7f\u7528\u7684 ConfigMap \u6765\u6dfb\u52a0 client\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"kubectl edit cm oidc-server -n u4a-system\n")),(0,r.kt)("p",null,"\u5728 staticClients \u5904\u6dfb\u52a0\u4e00\u4e2a\u65b0\u7684\u5ba2\u6237\u7aef\uff0c\u53c2\u8003\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},' staticClients:\n - id: my-oidc-client\n name: my-oidc-client\n secret: ZXhhbXBsZS1hcHAtc2VjcmV0 # \u8fd9\u91cc\u586b\u5199\u968f\u673a\u5bc6\u94a5\uff0c\u6ce8\u610f\u4e0d\u8981\u6cc4\u6f0f\u5bc6\u94a5\n redirectURIs: # \u8fd9\u91cc\u53ef\u4ee5\u914d\u7f6e\u591a\u4e2a\u56de\u8c03\u5730\u5740\n - "" # \u8fd9\u91cc\u586b\u5199\u767b\u5f55\u6210\u529f\u540e\u7684\u56de\u8c03\u5730\u5740\uff0c\u4f8b\u5982 "http://192.168.1.32:8022"\n')),(0,r.kt)("p",null,"\u91cd\u542f oidc-server"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"kubectl delete -n u4a-system\n")),(0,r.kt)("h2",{id:"2--\u63a5\u5165-oidc-\u767b\u5f55"},"2. \u63a5\u5165 OIDC \u767b\u5f55"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"\u73af\u5883\u4fe1\u606f\u793a\u4f8b")),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"\u5e94\u7528\u5730\u5740\uff1a",(0,r.kt)("a",{parentName:"li",href:"http://192.168.1.32:8022"},"http://192.168.1.32:8022")),(0,r.kt)("li",{parentName:"ul"},"kubebb \u8ba4\u8bc1\u670d\u52a1\u5730\u5740\uff08issuer\uff09\uff1a",(0,r.kt)("a",{parentName:"li",href:"https://192.168.2.216/oidc"},"https://192.168.2.216/oidc")))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"\u5e94\u7528\u6ce8\u518c\u4fe1\u606f")),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"\u5e94\u7528\u540d\u79f0\uff1amy-oidc-client"),(0,r.kt)("li",{parentName:"ul"},"\u56de\u8c03\u5730\u5740\uff1a",(0,r.kt)("a",{parentName:"li",href:"http://192.168.1.32:8022/auth/callback"},"http://192.168.1.32:8022/auth/callback")),(0,r.kt)("li",{parentName:"ul"},"client_id\uff1amy-oidc-client"),(0,r.kt)("li",{parentName:"ul"},"client_secret\uff1aZXhhbXBsZS1hcHAtc2VjcmV0"))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"\u7528\u6237\u767b\u5f55")))),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u5728\u5e94\u7528\u4fa7\uff0c\u4e00\u822c\u4f1a\u5f15\u7528\u76f8\u5173\u7684 OIDC SDK \u6765\u5904\u7406 OIDC \u76f8\u5173\u7684\u5904\u7406\u6d41\u7a0b\uff0c\u6765\u5e2e\u52a9\u5f00\u53d1\u8005\u7b80\u5316\u4ea4\u4e92\u6d41\u7a0b\uff0c\u6bd4\u5982 golang \u53ef\u4ee5\u4f7f\u7528\uff1a",(0,r.kt)("a",{parentName:"li",href:"https://github.com/coreos/go-oidc"},"https://github.com/coreos/go-oidc"))),(0,r.kt)("p",null,"\u8fd9\u91cc\u4ecb\u7ecd\u5982\u4f55\u901a\u8fc7 API \u8c03\u7528\uff0c\u6765\u5b9e\u73b0 OIDC \u5355\u70b9\u767b\u5f55\u7684\u57fa\u672c\u6d41\u7a0b\uff1a"),(0,r.kt)("p",null,"1\uff09\u7528\u6237\u8bbf\u95ee\u5e94\u7528\u754c\u9762\uff0c\u5e94\u81ea\u52a8\u91cd\u5b9a\u5411\u5230 kubebb \u8ba4\u8bc1\u670d\u52a1\u767b\u9646 URL\uff0cURL \u793a\u4f8b\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"https://192.168.2.216/oidc/auth?client_id=my-oidc-client&redirect_uri=http://192.168.1.32:8022/auth/callback&response_type=code&scope=openid+profile+email+offline_access\n")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u53c2\u6570\u540d\u79f0"),(0,r.kt)("th",{parentName:"tr",align:null},"\u63cf\u8ff0"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"client_id"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5e94\u7528 ID\uff0c\u6ce8\u518c\u9636\u6bb5\u7531 kubebb \u63d0\u4f9b\uff0c\u5982\uff1amy-oidc-client")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"redirect_uri"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5e94\u7528\u56de\u8c03\u5730\u5740\uff0c\u6ce8\u518c\u9636\u6bb5\u7531\u5e94\u7528\u63d0\u4f9b\uff0c\u5982\uff1a",(0,r.kt)("a",{parentName:"td",href:"http://192.168.1.32:8022/auth/callback"},"http://192.168.1.32:8022/auth/callback"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"response_type"),(0,r.kt)("td",{parentName:"tr",align:null},"\u56fa\u5b9a\u503c\uff1acode")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"scope"),(0,r.kt)("td",{parentName:"tr",align:null},"\u56fa\u5b9a\u503c\uff1aopenid profile email")))),(0,r.kt)("p",null,"2\uff09\u5728 kubebb \u7684\u767b\u9646\u9875\u9762\uff0c\u7528\u6237\u8f93\u5165\u7528\u6237\u540d/\u5bc6\u7801\u767b\u9646\uff08\u5982\u679c\u7528\u6237\u5df2\u7ecf\u767b\u9646\uff0c\u8fd9\u6b65\u4f1a\u81ea\u52a8\u8df3\u8fc7\uff09"),(0,r.kt)("p",null,"3\uff09\u767b\u5f55\u6210\u529f\u540e\uff0c\u8df3\u8f6c\u56de\u5e94\u7528\u6ce8\u518c\u7684\u56de\u8c03\u5730\u5740\uff0c\u8df3\u8f6c\u793a\u4f8b\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"http://192.168.1.32:8022/auth/callback?code=kf7dmmvhdipdcjczydklwi6pu&state=\n")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u53c2\u6570\u540d\u79f0"),(0,r.kt)("th",{parentName:"tr",align:null},"\u63cf\u8ff0"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"code"),(0,r.kt)("td",{parentName:"tr",align:null},"\u6388\u6743\u7801\uff0c\u7531 kubebb \u8ba4\u8bc1\u670d\u52a1 \u751f\u6210\uff0c\u7528\u4e8e\u540e\u9762\u83b7\u53d6 token")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"state"),(0,r.kt)("td",{parentName:"tr",align:null},"\u4e0e\u5e94\u7528\u8df3\u8f6c\u5230 kubebb \u8ba4\u8bc1\u670d\u52a1\u767b\u9646 URL \u65f6\u4f20\u9012\u7684 state \u503c\u4e00\u6837\u3002")))),(0,r.kt)("p",null,"4\uff09\u5e94\u7528\u540e\u53f0\u8c03\u7528 kubebb token API \u83b7\u53d6 token \u4fe1\u606f\uff0c\u8c03\u7528\u793a\u4f8b\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"curl -XPOST 'https://192.168.2.216/oidc/token' \\\n -H 'Authorization: Basic c2FtcGxlLWFwcC0yMTg6WlhoaGJYQnNaUzFoY0hBdGMyVmpjbVYwJw==' \\\n -H 'Content-Type: application/x-www-form-urlencoded' \\\n --data-urlencode 'code=kf7dmmvhdipdcjczydklwi6pu' \\\n --data-urlencode 'grant_type=authorization_code' \\\n --data-urlencode 'redirect_uri=http://192.168.1.32:8022/auth/callback'\n")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u53c2\u6570\u540d\u79f0"),(0,r.kt)("th",{parentName:"tr",align:null},"\u63cf\u8ff0"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Authorization"),(0,r.kt)("td",{parentName:"tr",align:null},"\u683c\u5f0f Basic XXXX\uff0c\u5176\u4e2d XXXX \u662f client_id:client_secret \u7684 base64 \u7f16\u7801")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Content-Type"),(0,r.kt)("td",{parentName:"tr",align:null},"\u56fa\u5b9a\u503c\uff1aapplication/x-www-form-urlencoded")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"code"),(0,r.kt)("td",{parentName:"tr",align:null},"\u6388\u6743\u7801")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"grant_type"),(0,r.kt)("td",{parentName:"tr",align:null},"\u56fa\u5b9a\u503c\uff1aauthorization_code")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"redirect_uri"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5e94\u7528\u56de\u8c03\u5730\u5740\uff0ckubebb \u8ba4\u8bc1\u670d\u52a1\u4f1a\u9a8c\u8bc1\u8be5\u5730\u5740\u662f\u5426\u4e0e\u5e94\u7528\u6ce8\u518c\u7684\u56de\u8c03\u5730\u5740\u4e00\u81f4")))),(0,r.kt)("p",null,"\u8be5\u8bf7\u6c42\u4f1a\u8fd4\u56detoken\u4fe1\u606f"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"ID Token: eyJhbGciOiJSUzI1NiIsImtpZCI6ImQxY2Y2MzA3YmQ5Yzk3OTJiMzdmMGJiM2M1Njk1ZDQ0MWJlZTMzNjcifQ.eyJpc3MiOiJodHRwczovLzE5Mi4xNjguMi4yMTYiLCJzdWIiOiJDZ0V4RWdsMFpXNTRZMnh2ZFdRIiwiYXVkIjoic2FtcGxlLWFwcC0yMTgiLCJleHAiOjE2MzAwMzA0ODEsImlhdCI6MTYyOTk0NDA4MSwiYXRfaGFzaCI6Ik1PUjk0enktTUZNcU5zZUZTM1ZzRXciLCJjX2hhc2giOiJpbkoteDVKUEFCRXhaaEpRaEx3T3pBIiwiZW1haWwiOiJhZG1pbkBleGFtcGxlLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiYWRtaW4iLCJwaG9uZSI6IjE3MzQzMTM1MDUxIiwidXNlcmlkIjoiMSJ9.FrC6oKRsManuP9opqugknJmOE78uKmxX6uteM1flCDVRqRv-riG0C5AOX4K9BTnT9GIlu3H24jydT4ybSissz_wL_mLzoTQWoQ9uMMmd4w1aiGqgO6mIaEh3XvTqtoQv1ltONSkp49bykpdIXbDJxy0PScU0k-0XFNJIMSBwn8SEubgH7NO3xwFzsjaLqBfolxC5YXBuWS8n-FEOqNTg-mx-n_Fu2oemJCT-8qWMqY6FNjRSC3D-2ABkCbl4g76vPLgJ-I6dU6eaJvaBW6S4BzhCX0SitxYrxcXjOGviX1HKOXXSUC1n1HfQpOpNW-FA2G3F-kON94rYr1AEdIwSVw\n\nAccess Token: eyJhbGciOiJSUzI1NiIsImtpZCI6ImQxY2Y2MzA3YmQ5Yzk3OTJiMzdmMGJiM2M1Njk1ZDQ0MWJlZTMzNjcifQ.eyJpc3MiOiJodHRwczovLzE5Mi4xNjguMi4yMTYiLCJzdWIiOiJDZ0V4RWdsMFpXNTRZMnh2ZFdRIiwiYXVkIjoic2FtcGxlLWFwcC0yMTgiLCJleHAiOjE2MzAwMzA0ODEsImlhdCI6MTYyOTk0NDA4MSwiYXRfaGFzaCI6IlhYS3RzUkhZS043WnZGOUFxcXVSd3ciLCJlbWFpbCI6ImFkbWluQGV4YW1wbGUuY29tIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsIm5hbWUiOiJhZG1pbiIsInBob25lIjoiMTczNDMxMzUwNTEiLCJ1c2VyaWQiOiIxIn0.VXUxba9cy4S3ZUtyfbF6A3Xg5fZYL-m6nqR09qiJgJmNUCEkHr_b4xKXXvDJwsgoC0zdUxShd1BpOgN4vi8A7zZ676-PybB2dVT6x3EPpwCVC8_NVYwXijeELWJJ0nU9aAq6p_m-XdXOuPzutbmMLSWVfrY-CS2WSdQISuKxb28slTptzCF4OY3dZugOHZ_v10KAxsMo0Aul4d3C_EXOaiUKzw0OTD7xyYOm8MmJvhzQEYSodHAkbJWnOusKEBtFKJ5hhAqPLCymY2VleN-7Jbqr-DYrDSDtd7FF1vCbDL0-rTwQ5_79FIAu_fusOcVc26M7GlvOtGcniaweNtm1dg\n")),(0,r.kt)("p",null,"\u8fd4\u56de\u7684 ID Token \u662f\u6807\u51c6 JWT Token\uff0c\u5e94\u7528\u53ef\u4ee5\u4ece ID Token \u4e2d\u89e3\u6790\u51fa\u7528\u6237\u4fe1\u606f\uff0c\u4f8b\u5982\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},' {\n "iss": "https://192.168.2.216/oidc",\n "sub": "CgExEgl0ZW54Y2xvdWQ",\n "aud": "sample-app",\n "exp": 1630030481,\n "iat": 1629944081,\n "at_hash": "MOR94zy-MFMqNseFS3VsEw",\n "c_hash": "inJ-x5JPABExZhJQhLwOzA",\n "email": "admin@example.com",\n "email_verified": true,\n "name": "admin",\n "phone": "17343135051",\n "userid": "1"\n }\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u57fa\u4e8e\u8be5 JWT Token\uff0c\u5e94\u7528\u53ef\u4ee5\u5c06\u7528\u6237\u57fa\u7840\u4fe1\u606f\u540c\u6b65\u5230\u81ea\u5df1\u7684\u7cfb\u7edf\u5185\uff0c\u5728\u57fa\u4e8e\u7edf\u4e00\u8d26\u53f7\u3001\u8ba4\u8bc1\u7684\u524d\u63d0\u4e0b\uff0c\u5b9e\u73b0\u540c\u81ea\u8eab\u8d26\u53f7\u3001\u6743\u9650\u4f53\u7cfb\u7684\u878d\u5408\u3002"),(0,r.kt)("li",{parentName:"ul"},"Access Token \u4e00\u822c\u7528\u4e8e\u8bbf\u95ee kubebb \u8ba4\u8bc1\u670d\u52a1\u83b7\u53d6\u7528\u6237\u8be6\u7ec6\u4fe1\u606f\uff0c\u53ef\u4ee5\u6309\u9700\u4f7f\u7528\u3002")))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/abe5e8bf.04573a0a.js b/assets/js/abe5e8bf.04573a0a.js new file mode 100644 index 000000000..d0fe9fc65 --- /dev/null +++ b/assets/js/abe5e8bf.04573a0a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7658],{3905:(e,t,a)=>{a.d(t,{Zo:()=>k,kt:()=>N});var n=a(7294);function i(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function p(e){for(var t=1;t=0||(i[a]=e[a]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(i[a]=e[a])}return i}var o=n.createContext({}),m=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):p(p({},t),e)),a},k=function(e){var t=m(e.components);return n.createElement(o.Provider,{value:t},e.children)},c="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var a=e.components,i=e.mdxType,r=e.originalType,o=e.parentName,k=l(e,["components","mdxType","originalType","parentName"]),c=m(a),d=i,N=c["".concat(o,".").concat(d)]||c[d]||s[d]||r;return a?n.createElement(N,p(p({ref:t},k),{},{components:a})):n.createElement(N,p({ref:t},k))}));function N(e,t){var a=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=a.length,p=new Array(r);p[0]=d;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[c]="string"==typeof e?e:i,p[1]=l;for(var m=2;m{a.r(t),a.d(t,{assets:()=>o,contentTitle:()=>p,default:()=>s,frontMatter:()=>r,metadata:()=>l,toc:()=>m});var n=a(7462),i=(a(7294),a(3905));const r={sidebar_position:1},p="\u7ec4\u4ef6\u4ed3\u5e93",l={unversionedId:"develop-guid/core/concepts/repository",id:"develop-guid/core/concepts/repository",title:"\u7ec4\u4ef6\u4ed3\u5e93",description:"\u4ed3\u5e93\u662f\u5c06 chart repository \u6620\u5c04\u4e3a\u96c6\u7fa4\u8d44\u6e90\u7684\u4e00\u4e2a\u6982\u5ff5\u3002\u4ed3\u5e93\u5b9a\u4e49\u4e86 chart repository \u7684 URL\uff0c\u8ba4\u8bc1\u4fe1\u606f\u7b49\u76f8\u5173\u4fe1\u606f\u3002\u4ed3\u5e93\u662f\u7ec4\u4ef6\u90e8\u7f72\uff0c\u5347\u7ea7\u7684\u57fa\u7840\u3002",source:"@site/docs/develop-guid/core/concepts/repository.md",sourceDirName:"develop-guid/core/concepts",slug:"/develop-guid/core/concepts/repository",permalink:"/website/docs/develop-guid/core/concepts/repository",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"\u6982\u5ff5",permalink:"/website/docs/category/\u6982\u5ff5"},next:{title:"\u7ec4\u4ef6",permalink:"/website/docs/develop-guid/core/concepts/component"}},o={},m=[{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49",level:2},{value:"\u4f7f\u7528",id:"\u4f7f\u7528",level:2},{value:"OCI \u4ed3\u5e93\u7684\u989d\u5916\u8bf4\u660e",id:"oci-\u4ed3\u5e93\u7684\u989d\u5916\u8bf4\u660e",level:3},{value:"\u652f\u6301\u5730\u5740",id:"\u652f\u6301\u5730\u5740",level:4},{value:"\u9650\u5236",id:"\u9650\u5236",level:4},{value:"\u5de5\u4f5c\u539f\u7406",id:"\u5de5\u4f5c\u539f\u7406",level:2}],k={toc:m},c="wrapper";function s(e){let{components:t,...r}=e;return(0,i.kt)(c,(0,n.Z)({},k,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"\u7ec4\u4ef6\u4ed3\u5e93"},"\u7ec4\u4ef6\u4ed3\u5e93"),(0,i.kt)("p",null,"\u4ed3\u5e93\u662f\u5c06 ",(0,i.kt)("inlineCode",{parentName:"p"},"chart repository")," \u6620\u5c04\u4e3a\u96c6\u7fa4\u8d44\u6e90\u7684\u4e00\u4e2a\u6982\u5ff5\u3002\u4ed3\u5e93\u5b9a\u4e49\u4e86 ",(0,i.kt)("inlineCode",{parentName:"p"},"chart repository")," \u7684 URL\uff0c\u8ba4\u8bc1\u4fe1\u606f\u7b49\u76f8\u5173\u4fe1\u606f\u3002\u4ed3\u5e93\u662f\u7ec4\u4ef6\u90e8\u7f72\uff0c\u5347\u7ea7\u7684\u57fa\u7840\u3002"),(0,i.kt)("p",null,"\u7ec4\u4ef6\u4ed3\u5e93\u7684\u5de5\u4f5c\u6d41\u7a0b\u5982\u4e0b:"),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://raw.githubusercontent.com/kubebb/core/main/assets/repository_flow.drawio.png",alt:"repository_flow"})),(0,i.kt)("h2",{id:"\u5b9a\u4e49"},"\u5b9a\u4e49"),(0,i.kt)("p",null,"CRD \u7684\u4ee3\u7801\u5b9a\u4e49\u4f4d\u4e8e ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/kubebb/core/blob/main/api/v1alpha1/repository_types.go"},"RepositoryTypes"),"\u3002\u63a5\u4e0b\u6765\u4f1a\u8be6\u7ec6\u4ecb\u7ecd\u6bcf\u4e2a\u5b57\u6bb5\u7684\u542b\u4e49\u53ca\u5176\u4f5c\u7528\u3002"),(0,i.kt)("admonition",{type:"tip"},(0,i.kt)("p",{parentName:"admonition"},"\u8bf4\u660e \u5bf9\u4e8e\u4e0b\u9762\u7684 yaml\uff0c\u6211\u4eec\u60f3\u8981\u8bbf\u95ee bar \u5b57\u6bb5\uff0c\u4e66\u5199\u683c\u5f0f\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"spec.foo.bar")),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},"spec:\n foo:\n bar: xx\n"))),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.url")),(0,i.kt)("p",{parentName:"li"},"\u8be5\u5b57\u6bb5\u7528\u6765\u4fdd\u5b58 ",(0,i.kt)("inlineCode",{parentName:"p"},"chart repository")," \u7684\u5730\u5740")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.authSecret")),(0,i.kt)("p",{parentName:"li"},"\u5bf9\u4e8e\u9700\u8981\u8ba4\u8bc1\uff0c\u6216\u8005\u6709\u81ea\u5b9a\u4e49\u8bc1\u4e66\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"chart repository"),"\uff0c\u9700\u8981\u5c06\u8ba4\u8bc1\u4fe1\u606f\uff0c\u8bc1\u4e66\u4fe1\u606f\u5b58\u653e\u5230\u4ee5\u8be5\u5b57\u6bb5\u4e3a\u540d\u5b57\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"secret")," \u4e2d\u3002secret \u4e2d\u7684\u4e3b\u8981\u5b57\u6bb5\u4fe1\u606f\u5982\u4e0b"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"username")," \u5b9a\u4e49\u8ba4\u8bc1\u9700\u8981\u7684\u7528\u6237\u540d"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"password")," \u5b9a\u4e49\u8ba4\u8bc1\u9700\u8981\u7684\u5bc6\u7801"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"cadata")," \u5b9a\u4e49\u7b7e\u53d1\u8bc1\u4e66\u7684 RootCA"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"certdata")," \u5b9a\u4e49\u5ba2\u6237\u7aef\u901a\u8fc7 RootCA \u7b7e\u53d1\u7684\u8bc1\u4e66"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"keydata")," \u5b9a\u4e49\u5ba2\u6237\u7aef\u79c1\u94a5")),(0,i.kt)("p",{parentName:"li"},"\u5982\u679c\u670d\u52a1\u7aef\u8981\u6c42 TLS \u53cc\u5411\u8ba4\u8bc1\uff0c\u90a3\u4e48\u9700\u8981\u63d0\u4f9b ",(0,i.kt)("inlineCode",{parentName:"p"},"certdata")," \u548c ",(0,i.kt)("inlineCode",{parentName:"p"},"keydata"),"\u3002")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.insecure")),(0,i.kt)("p",{parentName:"li"},"\u662f\u5426\u8df3\u8fc7 https \u9a8c\u8bc1")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.repositoryType")),(0,i.kt)("p",{parentName:"li"},"\u4ed3\u5e93\u7c7b\u578b\uff0c\u662f\u5b57\u7b26\u4e32\uff0c\u7406\u89e3\u4e3a\u6807\u8bb0\u5373\u53ef\u3002")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.PullStrategy.intervalSeconds")),(0,i.kt)("p",{parentName:"li"},"\u5b9a\u4e49\u83b7\u53d6\u6570\u636e\u7684\u5468\u671f\uff0c\u53ef\u4ee5\u4e0d\u586b\u5199\uff0c\u9ed8\u8ba4\u662f 120 \u79d2\u3002")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.PullStrategy.timeoutSeconds")),(0,i.kt)("p",{parentName:"li"},"\u5b9a\u4e49\u4e00\u6b21 http \u8bf7\u6c42\u7684\u8d85\u65f6\u65f6\u95f4\u3002")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.PullStrategy.retry")),(0,i.kt)("p",{parentName:"li"},"\u5b9a\u4e49\u8bf7\u6c42\u5931\u8d25\u7684\u91cd\u8bd5\u6b21\u6570\u3002\u9ed8\u8ba4\u4e0d\u586b\u5199\uff0c\u53ea\u4f1a\u505a\u4e00\u6b21\u8bf7\u6c42")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.filter")),(0,i.kt)("p",{parentName:"li"},"\u8be5\u5b57\u6bb5\u662f\u6570\u7ec4\uff0c\u5b9a\u4e49\u4e86\u4e00\u7cfb\u5217\u7684\u5bf9 ",(0,i.kt)("inlineCode",{parentName:"p"},"chart package")," \u548c \u7248\u672c\u7684\u8fc7\u6ee4\u6761\u4ef6\u3002\u56e0\u4e3a\u662f\u6570\u7ec4\uff0c\u6240\u4ee5\u53ef\u4ee5\u51fa\u73b0\u5bf9\u540c\u4e00\u4e2a ",(0,i.kt)("inlineCode",{parentName:"p"},"chart package")," \u7684\u591a\u4e2a\u8fc7\u6ee4\u6761\u4ef6\uff0c\u53ea\u4f1a\u4f7f\u7528\u6700\u540e\u4e00\u6761\u3002"),(0,i.kt)("p",{parentName:"li"},"\u6570\u7ec4\u7684\u6bcf\u4e00\u9879\u7684\u4ecb\u7ecd"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.filter[index].name")," \u5b9a\u4e49\u4e86\u8981\u53c2\u4e0e\u8fc7\u6ee4\u7684 ",(0,i.kt)("inlineCode",{parentName:"li"},"chart package")," \u7684\u540d\u79f0\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.filter[index].operation")," \u6709\u4e24\u4e2a\u53ef\u9009\u503c ",(0,i.kt)("inlineCode",{parentName:"li"},"keep"),", ",(0,i.kt)("inlineCode",{parentName:"li"},"ignore"),"\u3002",(0,i.kt)("inlineCode",{parentName:"li"},"ignore")," \u5b9a\u4e49 ",(0,i.kt)("inlineCode",{parentName:"li"},"chart package")," \u8981\u5ffd\u7565\u7684\u7248\u672c, ",(0,i.kt)("inlineCode",{parentName:"li"},"keep")," \u5b9a\u4e49 ",(0,i.kt)("inlineCode",{parentName:"li"},"chart package")," \u8981\u4fdd\u7559\u7684\u7248\u672c\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.filter[index].keepDeprecated")," ",(0,i.kt)("inlineCode",{parentName:"li"},"false")," \u8868\u793a\u4e0d\u4fdd\u7559 ",(0,i.kt)("inlineCode",{parentName:"li"},"chart package")," \u5df2\u7ecf\u5e9f\u5f03\u7684\u7248\u672c\uff0c",(0,i.kt)("inlineCode",{parentName:"li"},"true")," \u8868\u793a\u4fdd\u7559\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.filter[index].versionedFilterCond.versions")," \u662f\u4e00\u4e2a\u7248\u672c\u7684\u6570\u7ec4\uff0c\u53ea\u8981 ",(0,i.kt)("inlineCode",{parentName:"li"},"chart package")," \u7684\u7248\u672c\u4e0e\u8be5\u6570\u7ec4\u4e2d\u4efb\u610f\u4e00\u4e2a\u7cbe\u786e\u5339\u914d\u4e0a\uff0c\u5373\u7b26\u5408\u89c4\u5219\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.fitler[index].versionedFilterCond.versionRegexp")," \u7248\u672c\u8fc7\u6ee4\u7684\u6b63\u5219\u8868\u8fbe\u5f0f\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.filter[index].versionedFilterCond.versionConstraint")," \u7248\u672c\u9a8c\u8bc1\u6761\u4ef6\uff0c\u8868\u8fbe\u5f0f\u683c\u5f0f\u8bf7\u53c2\u8003 ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/Masterminds/semver#semver"},"semver"))),(0,i.kt)("p",{parentName:"li"},"\u5f53 ",(0,i.kt)("inlineCode",{parentName:"p"},"operation=keep")," \u7684\u65f6\u5019\uff0c ",(0,i.kt)("inlineCode",{parentName:"p"},"versions, versionRegexp, VersionConstraint")," \u6ee1\u8db3\u4efb\u4e00\u6761\u4ef6\u5c31\u4f1a\u4fdd\u7559\u7248\u672c\u3002\n\u5f53 ",(0,i.kt)("inlineCode",{parentName:"p"},"operation=ignore")," \u7684\u65f6\u5019\uff0c ",(0,i.kt)("inlineCode",{parentName:"p"},"versions, versionRegexp, VersionConstraint")," \u6ee1\u8db3\u4efb\u4e00\u6761\u4ef6\u5c31\u4f1a\u5ffd\u7565\u7248\u672c\u3002"),(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"keepDeprecated")," \u5728\u5bf9\u6700\u7ec8\u7559\u4e0b\u6765\u7684\u7248\u672c\u8fdb\u884c\u8fc7\u6ee4\uff0c\u662f\u5426\u4fdd\u7559\u5e9f\u5f03\u7248\u672c\u3002")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.imageOverride")," \u975e\u5fc5\u9700\n\u8be5\u5b57\u6bb5\u662f\u6570\u7ec4\uff0c\u5b9a\u4e49\u4e86\u4e00\u7cfb\u5217\u4ed3\u5e93\u7ea7\u522b\u7684\u955c\u50cf\u8986\u76d6\u7b56\u7565\u3002"),(0,i.kt)("p",{parentName:"li"},"\u6bcf\u4e00\u9879\u5185\u5bb9\u5305\u62ec\uff1a"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.imageOverride[].registry")," \u8be5\u955c\u50cf\u4ed3\u5e93\u57df\u540d\u5730\u5740\uff0c\u53ef\u4ee5\u5305\u542b\u7aef\u53e3\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"docker.io"),"\uff0c",(0,i.kt)("inlineCode",{parentName:"li"},"192.168.1.1:5000")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.imageOverride[].newRegistry")," \u8981\u5c06 ",(0,i.kt)("inlineCode",{parentName:"li"},"registry")," \u66ff\u6362\u540e\u7684\u955c\u50cf\u4ed3\u5e93\u57df\u540d\u5730\u5740\uff0c\u53ef\u4ee5\u5305\u542b\u7aef\u53e3\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.imageOverride[].pathOverride")," \u975e\u5fc5\u9700\uff0c\u6570\u7ec4\u3002",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.imageOverride[].pathOverride.path")," \u65e7\u7684\u955c\u50cf\u4ed3\u5e93\u8def\u5f84\uff0c\u6bd4\u5982\u955c\u50cf\u5730\u5740 ",(0,i.kt)("inlineCode",{parentName:"li"},"docker.io/library/nginx:latest")," \u4e2d\u7684 path \u4e3a ",(0,i.kt)("inlineCode",{parentName:"li"},"library")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.imageOverride[].pathOverride.newPath")," \u8981\u5c06 ",(0,i.kt)("inlineCode",{parentName:"li"},"path")," \u66ff\u6362\u540e\u7684\u955c\u50cf\u4ed3\u5e93\u65b0\u8def\u5f84\uff0c\u53ef\u4ee5\u4e3a\u7a7a\u3002"))))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.keywordLenLimit")," \u975e\u5fc5\u8981\n\u6bcf\u4e2a chart \u5305\u90fd\u53ef\u4ee5\u5b9a\u4e49\u4e00\u4e2a\u5173\u952e\u8bcd\u5217\u8868\uff0c\u4f9b helm \u641c\u7d22\u4f7f\u7528\u3002\u8be5\u5b57\u6bb5\u662f\u7528\u6765\u9650\u5236\u8fd9\u4e2a\u5173\u952e\u8bcd\u5217\u8868\u7684\u957f\u5ea6\uff0c\u907f\u514d\u5173\u952e\u8bcd\u8fc7\u591a\u5bfc\u81f4\u5728\u4ea7\u54c1\u754c\u9762\u4e0d\u597d\u5c55\u793a\u3002\u5982\u679c\u4e0d\u914d\u7f6e\uff0c\u4e0d\u4f1a\u505a\u4efb\u4f55\u9650\u5236\u3002"))),(0,i.kt)("h2",{id:"\u4f7f\u7528"},"\u4f7f\u7528"),(0,i.kt)("p",null,"\u4e0b\u9762\u662f\u4e00\u4e2a\u4ed3\u5e93\u793a\u4f8b\uff1a"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},"apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: Repository\nmetadata:\n name: repository-bitnami-special-version\n namespace: kubebb-system\nspec:\n url: https://charts.bitnami.com/bitnami\n pullStategy:\n intervalSeconds: 120\n retry: 5\n filter:\n - name: wordpress\n operation: keep\n versionedFilterCond:\n versions:\n - 16.1.14\n - 16.1.13\n imageOverride:\n - registry: docker.io\n newRegistry: 192.168.1.1\n pathOverride:\n path: library\n newPath: system-container\n")),(0,i.kt)("p",null,"\u4e0a\u8ff0\u4ed3\u5e93\u5b9a\u4e49\u4e86\u6570\u636e\u6765\u6e90\u662f ",(0,i.kt)("inlineCode",{parentName:"p"},"https://charts.bitnami.com/bitnami")," \uff0c\u6570\u636e\u83b7\u53d6\u7b56\u7565\u662f\uff0c\u6bcf\u9694 120s \u83b7\u53d6\u4e00\u6b21\uff0c\u5982\u679c\u53d1\u751f\u9519\u8bef\u6700\u591a\u5c1d\u8bd5 5 \u6b21\u3002\n\u5bf9 ",(0,i.kt)("inlineCode",{parentName:"p"},"wordpress")," \u7684\u7248\u672c\u5b9a\u4e49\u4e86\u591a\u8651\u6761\u4ef6\uff0c\u7cbe\u786e\u5339\u914d ",(0,i.kt)("inlineCode",{parentName:"p"},"16.1.14"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"16.1.13")," \u4e24\u4e2a\u7248\u672c\u3002\n\u5bf9\u4ed3\u5e93\u4e2d\u6240\u6709\u6765\u81ea ",(0,i.kt)("inlineCode",{parentName:"p"},"docker.io")," \u7684\u955c\u50cf\uff0c\u66ff\u6362\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"192.168.1.1")," \uff0c\u5e76\u5c06\u955c\u50cf\u8def\u5f84\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"library")," \u7684\u955c\u50cf\u66ff\u6362\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"system-container")," \uff0c\u6bd4\u5982\u4ed3\u5e93\u4e2d\u6709\u955c\u50cf ",(0,i.kt)("inlineCode",{parentName:"p"},"docker.io/library/nginx:v1.2.3")," \u4f1a\u66ff\u6362\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"192.168.1.1/system-container/nginx:v1.2.3")," \u3002"),(0,i.kt)("h3",{id:"oci-\u4ed3\u5e93\u7684\u989d\u5916\u8bf4\u660e"},"OCI \u4ed3\u5e93\u7684\u989d\u5916\u8bf4\u660e"),(0,i.kt)("h4",{id:"\u652f\u6301\u5730\u5740"},"\u652f\u6301\u5730\u5740"),(0,i.kt)("p",null,"\u4ed3\u5e93\u652f\u6301\u4f7f\u7528 OCI \u955c\u50cf\u4ed3\u5e93\u7684\u5730\u5740\uff0c\u76ee\u524d\u652f\u6301\u5982\u4e0b\u51e0\u79cd\u65b9\u5f0f\uff1a"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"\u539f\u751f ",(0,i.kt)("a",{parentName:"li",href:"https://goharbor.io/"},"harbor")," 2.x \u4ee5\u4e0a\u7248\u672c:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"\u9879\u76ee\u7eac\u5ea6\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8fd9\u4e2a\u9879\u76ee\u4e0b\u6240\u6709\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://demo.goharbor.io/helm-test")," (",(0,i.kt)("inlineCode",{parentName:"li"},"demo.goharbor.io")," \u662f harbor \u7684\u5728\u7ebf\u6d4b\u8bd5\u670d\u52a1\u5668\uff0c\u8be5\u670d\u52a1\u5668\u6570\u636e\u6bcf 2 \u5929\u6e05\u7a7a\u4e00\u6b21\uff0c\u8be6\u60c5\u89c1 ",(0,i.kt)("a",{parentName:"li",href:"https://goharbor.io/docs/1.10/install-config/demo-server/"},"docker \u6587\u6863\u7684\u76f8\u5173\u8bf4\u660e"),")"),(0,i.kt)("li",{parentName:"ul"},"\u955c\u50cf\u7ef4\u5ea6\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8fd9\u4e2a\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://demo.goharbor.io/helm-test/nginx")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://hub.docker.com/"},"dockerhub"),":",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"\u9879\u76ee\u7eac\u5ea6\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8fd9\u4e2a\u9879\u76ee\u4e0b\u6240\u6709\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://registry-1.docker.io/bitnamicharts")),(0,i.kt)("li",{parentName:"ul"},"\u955c\u50cf\u7ef4\u5ea6\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8fd9\u4e2a\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://registry-1.docker.io/bitnamicharts/wordpress")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/features/packages"},"github package"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/features/packages"},"github package")," \u7ec4\u7ec7\u7ef4\u5ea6:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"\u6574\u4e2a\u7ec4\u7ec7\u7684\u5730\u5740\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8be5\u7ec4\u7ec7\u4e0b\u6240\u6709\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://ghcr.io/oci-helm-example")),(0,i.kt)("li",{parentName:"ul"},"\u7ec4\u7ec7\u4e2d\u5355\u72ec\u4e0a\u4f20\u7684\u955c\u50cf\u5730\u5740\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8be5\u7ec4\u7ec7\u4e0b\u6240\u6709\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://ghcr.io/oci-helm-example/redis")),(0,i.kt)("li",{parentName:"ul"},"\u7ec4\u7ec7\u4e2d\u7684\u4ed3\u5e93\u5730\u5740\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8be5\u4ed3\u5e93\u4e0b\u6240\u6709\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://ghcr.io/oci-helm-example/helm-oci-example")),(0,i.kt)("li",{parentName:"ul"},"\u7ec4\u7ec7\u4e2d\u67d0\u4e2a\u4ed3\u5e93\u7684\u955c\u50cf\u5730\u5740\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8be5\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://ghcr.io/oci-helm-example/helm-oci-example/nginx")))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/features/packages"},"github package")," \u4e2a\u4eba\u7ef4\u5ea6:",(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},"\u8be5\u7528\u6237\u7684\u5730\u5740\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8be5\u7528\u6237\u540d\u4e0b\u6240\u6709\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://ghcr.io/abirdcfly")),(0,i.kt)("li",{parentName:"ul"},"\u7528\u6237\u5355\u72ec\u4e0a\u4f20\u7684\u955c\u50cf\u5730\u5740\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8be5\u7528\u6237\u540d\u4e0b\u6240\u6709\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://ghcr.io/abirdcfly/redis")),(0,i.kt)("li",{parentName:"ul"},"\u7528\u6237\u7684\u4ed3\u5e93\u5730\u5740\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8be5\u4ed3\u5e93\u4e0b\u6240\u6709\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://ghcr.io/abirdcfly/helm-oci-example")),(0,i.kt)("li",{parentName:"ul"},"\u7528\u6237\u67d0\u4e2a\u4ed3\u5e93\u7684\u955c\u50cf\u5730\u5740\uff0c\u5c06\u4f1a\u5c1d\u8bd5\u83b7\u53d6\u8be5\u955c\u50cf\u7684\u6240\u6709 tag\uff0c\u4f8b\u5982\uff1a",(0,i.kt)("inlineCode",{parentName:"li"},"oci://ghcr.io/abirdcfly/helm-oci-example/nginx"))))))),(0,i.kt)("h4",{id:"\u9650\u5236"},"\u9650\u5236"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"\u9650\u4e8e ",(0,i.kt)("a",{parentName:"li",href:"https://docs.github.com/zh/rest/packages/packages?apiVersion=2022-11-28#%E5%85%B3%E4%BA%8E-github-packages"},"github package API \u7684\u9650\u5236"))),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"\u82e5\u8981\u4f7f\u7528 REST API \u7ba1\u7406 GitHub Packages\uff0c\u5fc5\u987b\u4f7f\u7528 personal access token (classic) \u8fdb\u884c\u8eab\u4efd\u9a8c\u8bc1\u3002\n\u8981\u8bbf\u95ee\u5305\u5143\u6570\u636e\uff0c\u4ee4\u724c\u5fc5\u987b\u5305\u542b read:packages \u8303\u56f4\u3002")),(0,i.kt)("p",null,"\u5728\u4f7f\u7528 github package \u4f5c\u4e3a OCI \u7684\u5b58\u50a8\u5730\u5740\u65f6\uff0c\u9700\u8981\u63d0\u4f9b\u4e00\u4e2a personal access token (classic) \uff0c\u7528\u6237\u53ef\u4ee5\u4f7f\u7528\u73af\u5883\u53d8\u91cf ",(0,i.kt)("inlineCode",{parentName:"p"},"GITHUB_PAT_TOKEN")," \u6765\u8986\u76d6\u7cfb\u7edf\u9ed8\u8ba4\u63d0\u4f9b\u7684 token\u3002"),(0,i.kt)("ol",{start:2},(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"\u9650\u4e8e \u539f\u751f ",(0,i.kt)("a",{parentName:"p",href:"https://goharbor.io/"},"harbor")," \u548c ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/features/packages"},"github package")," \u5e76\u6ca1\u6709\u5728 API \u8fd4\u56de\u8be6\u60c5\u4e2d\u5199\u660e\u955c\u50cf\u7684\u7c7b\u578b\uff0c\u6240\u4ee5\u4ece API \u8fd4\u56de\u7ed3\u679c\u4e2d\u65e0\u6cd5\u533a\u5206\u8be5 OCI \u955c\u50cf\u662f\u5426\u5b58\u50a8\u7684\u662f Helm \u5305\u8fd8\u662f\u666e\u901a docker \u955c\u50cf\u3002\u56e0\u6b64\u5c06\u4f1a\u4e00\u5e76\u5c1d\u8bd5\uff0c\u53ef\u80fd\u4f1a\u5728\u65e5\u5fd7\u6216\u8d44\u6e90\u72b6\u6001\u4e2d\u770b\u5230\u9519\u8bef\u3002\u6211\u4eec\u5efa\u8bae\u7528\u6237\u5355\u72ec\u5c06\u67d0\u4e2a OCI \u4ed3\u5e93\u7528\u4f5c Helm \u5305\u5b58\u50a8\u3002")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"\u76ee\u524d\u8fd8\u4e0d\u652f\u6301\u79c1\u6709\u4ed3\u5e93\u3002\u5c06\u5728\u540e\u7eed\u7248\u672c\u652f\u6301\u3002")),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("p",{parentName:"li"},"\u56e0\u4e3a\u5de5\u4f5c\u539f\u7406\u4e0d\u540c\uff0cchartmuseum \u7c7b\u578b\u7684\u4ed3\u5e93\u4f1a\u63d0\u4f9b\u7d22\u5f15\u6587\u4ef6\uff0c\u800c OCI \u4ed3\u5e93\u53ea\u80fd\u901a\u8fc7\u62c9\u53d6\u5177\u4f53\u538b\u7f29\u5305\u5e76\u89e3\u6790\u5185\u5bb9\uff0cOCI \u4ed3\u5e93\u7684\u83b7\u53d6\u8981\u6162\u4e8e chartmuseum \u4ed3\u5e93\uff0c\u5e76\u4e14\u5404\u4e2a\u5b58\u50a8\u5730\u5740\u90fd\u6709\u81ea\u5df1\u7684 API \u8bf7\u6c42\u901f\u7387\u9650\u5236\u3002\u9ed8\u8ba4\u5c06 OCI \u4ed3\u5e93\u7684\u89e3\u6790\u7684\u5e76\u53d1\u6570\u8bbe\u7f6e\u4e3a 5\uff0c\u53ef\u4ee5\u901a\u8fc7\u73af\u5883\u53d8\u91cf ",(0,i.kt)("inlineCode",{parentName:"p"},"OCI_PULL_WORKER")," \u8986\u76d6\u8be5\u8bbe\u7f6e\uff0c\u6570\u5b57\u8d8a\u5927\uff0c\u89e3\u6790\u5e76\u53d1\u6570\u8d8a\u591a\uff0c\u4e5f\u8d8a\u53ef\u80fd\u9047\u5230 ",(0,i.kt)("inlineCode",{parentName:"p"},"429 Too Many Requests")," \u9519\u8bef\u3002"))),(0,i.kt)("h2",{id:"\u5de5\u4f5c\u539f\u7406"},"\u5de5\u4f5c\u539f\u7406"),(0,i.kt)("p",null,"\u4ed3\u5e93\u4ee5 Kubernetes Operator \u65b9\u5f0f\u5b9e\u73b0\u3002\u5468\u671f\u6027\u7684\u83b7\u53d6 ",(0,i.kt)("inlineCode",{parentName:"p"},"chart repository")," \u7684\u6570\u636e\uff0c\u5bf9\u96c6\u7fa4\u4e2d\u7ec4\u4ef6\u66f4\u65b0\u6216\u8005\u521b\u5efa\uff0c",(0,i.kt)("strong",{parentName:"p"},"\u4e00\u822c\u4e0d\u4f1a\u5220\u9664\u7ec4\u4ef6\uff0c\u800c\u662f\u5c06\u5728 ",(0,i.kt)("inlineCode",{parentName:"strong"},"chart repository")," \u4e2d\u4e0d\u5b58\u5728\u7684\u7ec4\u4ef6\u6807\u8bb0\u4e3a\u5e9f\u5f03"),"\u3002"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"\u5f53 ",(0,i.kt)("inlineCode",{parentName:"li"},"Repository")," \u521b\u5efa\uff0c\u66f4\u65b0\u65f6")),(0,i.kt)("p",null,"\u521b\u5efa\u6216\u8005\u66f4\u65b0 ",(0,i.kt)("inlineCode",{parentName:"p"},"Repository")," \u65f6\uff0c\u4f1a\u68c0\u67e5\u8be5\u8d44\u6e90\u662f\u5426\u6dfb\u52a0 finalizers, \u4ee5\u53ca URL \u53d8\u66f4\u5386\u53f2\u662f\u5426\u6b63\u786e\u66f4\u65b0\u3002"),(0,i.kt)("p",null,"\u5f53\u6240\u6709\u7684\u66f4\u65b0\u90fd\u5904\u7406\u5b8c\u6210\u540e\uff0c\u5c06\u4f1a\u542f\u52a8 ",(0,i.kt)("inlineCode",{parentName:"p"},"chartmuseum watcher"),"\uff0c\u5728\u6bcf\u6b21\u83b7\u53d6\u5230\u82e5\u5e72\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"chart package")," \u540e\uff0c\u4e0e\u96c6\u7fa4\u4e2d\u5df2\u7ecf\u5b58\u5728\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"Component")," \u5bf9\u6bd4\uff0c\u5c06\u4f1a\u6267\u884c ",(0,i.kt)("inlineCode",{parentName:"p"},"\u65b0\u589e component"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"\u66f4\u65b0 component"),"\u3002"),(0,i.kt)("p",null,"\u6211\u4eec\u4e0d\u4f1a\u5220\u9664\u5df2\u7ecf\u521b\u5efa\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"Component"),", \u800c\u662f\u5728\u53d1\u73b0\u96c6\u7fa4\u4e2d\u5b58\u5728 ",(0,i.kt)("inlineCode",{parentName:"p"},"Component")," \u4e14\u5e76\u4e0d\u5b58\u5728\u4e8e\u5f53\u524d\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"chart repository")," \u4e2d\uff0c\u90a3\u4e48\u4f1a\u5c06\u5176\u6807\u8bb0\u4e3a\u5e9f\u5f03\u3002"),(0,i.kt)("ol",{start:2},(0,i.kt)("li",{parentName:"ol"},"\u5f53 ",(0,i.kt)("inlineCode",{parentName:"li"},"Repoistory")," \u5220\u9664\u65f6")),(0,i.kt)("p",null,"\u7531 ",(0,i.kt)("inlineCode",{parentName:"p"},"Repository")," \u521b\u5efa\u51fa\u6765\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"Component")," \u90fd\u4f1a\u6dfb\u52a0 ",(0,i.kt)("inlineCode",{parentName:"p"},"OwnerReferences"),"\uff0c\u5220\u9664 ",(0,i.kt)("inlineCode",{parentName:"p"},"Repository")," \u7684\u65f6\u5019\u4f1a\u81ea\u52a8\u5220\u9664\u5173\u8054\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"Component"),"\u3002"),(0,i.kt)("ol",{start:3},(0,i.kt)("li",{parentName:"ol"},"\u955c\u50cf\u8986\u76d6\u7b56\u7565")),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"image-changed",src:a(9435).Z,width:"1180",height:"834"})))}s.isMDXComponent=!0},9435:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/image-changed-6cc1cd7373beaa44065302ebf7479fc7.png"}}]); \ No newline at end of file diff --git a/assets/js/acf368fd.4804172f.js b/assets/js/acf368fd.4804172f.js deleted file mode 100644 index dd1ff064c..000000000 --- a/assets/js/acf368fd.4804172f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2237],{3905:(t,e,n)=>{n.d(e,{Zo:()=>u,kt:()=>b});var a=n(7294);function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function l(t){for(var e=1;e=0||(r[n]=t[n]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}var p=a.createContext({}),c=function(t){var e=a.useContext(p),n=e;return t&&(n="function"==typeof t?t(e):l(l({},e),t)),n},u=function(t){var e=c(t.components);return a.createElement(p.Provider,{value:e},t.children)},d="mdxType",k={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},m=a.forwardRef((function(t,e){var n=t.components,r=t.mdxType,i=t.originalType,p=t.parentName,u=o(t,["components","mdxType","originalType","parentName"]),d=c(n),m=r,b=d["".concat(p,".").concat(m)]||d[m]||k[m]||i;return n?a.createElement(b,l(l({ref:e},u),{},{components:n})):a.createElement(b,l({ref:e},u))}));function b(t,e){var n=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=n.length,l=new Array(i);l[0]=m;var o={};for(var p in e)hasOwnProperty.call(e,p)&&(o[p]=e[p]);o.originalType=t,o[d]="string"==typeof t?t:r,l[1]=o;for(var c=2;c{n.r(e),n.d(e,{assets:()=>p,contentTitle:()=>l,default:()=>k,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var a=n(7462),r=(n(7294),n(3905));const i={sidebar_position:4},l="\u96c6\u6210\u5355\u70b9\u767b\u5f55",o={unversionedId:"building-base/configuration/oidc-integration",id:"building-base/configuration/oidc-integration",title:"\u96c6\u6210\u5355\u70b9\u767b\u5f55",description:"\u901a\u8fc7 OIDC \u534f\u8bae\uff0c\u5b9e\u73b0\u540c kubebb \u7684\u7edf\u4e00\u8d26\u53f7\u3001\u8ba4\u8bc1\u53ca\u5355\u70b9\u767b\u5f55\u529f\u80fd\u3002",source:"@site/docs/building-base/configuration/oidc-integration.md",sourceDirName:"building-base/configuration",slug:"/building-base/configuration/oidc-integration",permalink:"/website/docs/building-base/configuration/oidc-integration",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"\u914d\u7f6e\u5ba1\u8ba1\u80fd\u529b",permalink:"/website/docs/building-base/configuration/audit-config"},next:{title:"\u751f\u6210 oidc-proxy \u7684\u8bc1\u4e66",permalink:"/website/docs/building-base/configuration/issue-oidc-proxy-certs"}},p={},c=[{value:"1. \u5728 kubebb \u670d\u52a1\u7aef\u6ce8\u518c OIDC \u5ba2\u6237\u7aef",id:"1-\u5728-kubebb-\u670d\u52a1\u7aef\u6ce8\u518c-oidc-\u5ba2\u6237\u7aef",level:2},{value:"2. \u63a5\u5165 OIDC \u767b\u5f55",id:"2--\u63a5\u5165-oidc-\u767b\u5f55",level:2}],u={toc:c},d="wrapper";function k(t){let{components:e,...n}=t;return(0,r.kt)(d,(0,a.Z)({},u,n,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u96c6\u6210\u5355\u70b9\u767b\u5f55"},"\u96c6\u6210\u5355\u70b9\u767b\u5f55"),(0,r.kt)("p",null,"\u901a\u8fc7 OIDC \u534f\u8bae\uff0c\u5b9e\u73b0\u540c kubebb \u7684\u7edf\u4e00\u8d26\u53f7\u3001\u8ba4\u8bc1\u53ca\u5355\u70b9\u767b\u5f55\u529f\u80fd\u3002"),(0,r.kt)("h2",{id:"1-\u5728-kubebb-\u670d\u52a1\u7aef\u6ce8\u518c-oidc-\u5ba2\u6237\u7aef"},"1. \u5728 kubebb \u670d\u52a1\u7aef\u6ce8\u518c OIDC \u5ba2\u6237\u7aef"),(0,r.kt)("p",null,"\u901a\u8fc7\u4fee\u6539 dex-server \u4f7f\u7528\u7684 ConfigMap \u6765\u6dfb\u52a0 client\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"kubectl edit cm oidc-server -n u4a-system\n")),(0,r.kt)("p",null,"\u5728 staticClients \u5904\u6dfb\u52a0\u4e00\u4e2a\u65b0\u7684\u5ba2\u6237\u7aef\uff0c\u53c2\u8003\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},' staticClients:\n - id: my-oidc-client\n name: my-oidc-client\n secret: ZXhhbXBsZS1hcHAtc2VjcmV0 # \u8fd9\u91cc\u586b\u5199\u968f\u673a\u5bc6\u94a5\uff0c\u6ce8\u610f\u4e0d\u8981\u6cc4\u6f0f\u5bc6\u94a5\n redirectURIs: # \u8fd9\u91cc\u53ef\u4ee5\u914d\u7f6e\u591a\u4e2a\u56de\u8c03\u5730\u5740\n - "" # \u8fd9\u91cc\u586b\u5199\u767b\u5f55\u6210\u529f\u540e\u7684\u56de\u8c03\u5730\u5740\uff0c\u4f8b\u5982 "http://192.168.1.32:8022"\n')),(0,r.kt)("p",null,"\u91cd\u542f oidc-server"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"kubectl delete -n u4a-system\n")),(0,r.kt)("h2",{id:"2--\u63a5\u5165-oidc-\u767b\u5f55"},"2. \u63a5\u5165 OIDC \u767b\u5f55"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"\u73af\u5883\u4fe1\u606f\u793a\u4f8b")),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"\u5e94\u7528\u5730\u5740\uff1a",(0,r.kt)("a",{parentName:"li",href:"http://192.168.1.32:8022"},"http://192.168.1.32:8022")),(0,r.kt)("li",{parentName:"ul"},"kubebb \u8ba4\u8bc1\u670d\u52a1\u5730\u5740\uff08issuer\uff09\uff1a",(0,r.kt)("a",{parentName:"li",href:"https://192.168.2.216/oidc"},"https://192.168.2.216/oidc")))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"\u5e94\u7528\u6ce8\u518c\u4fe1\u606f")),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"\u5e94\u7528\u540d\u79f0\uff1amy-oidc-client"),(0,r.kt)("li",{parentName:"ul"},"\u56de\u8c03\u5730\u5740\uff1a",(0,r.kt)("a",{parentName:"li",href:"http://192.168.1.32:8022/auth/callback"},"http://192.168.1.32:8022/auth/callback")),(0,r.kt)("li",{parentName:"ul"},"client_id\uff1amy-oidc-client"),(0,r.kt)("li",{parentName:"ul"},"client_secret\uff1aZXhhbXBsZS1hcHAtc2VjcmV0"))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"\u7528\u6237\u767b\u5f55")))),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u5728\u5e94\u7528\u4fa7\uff0c\u4e00\u822c\u4f1a\u5f15\u7528\u76f8\u5173\u7684 OIDC SDK \u6765\u5904\u7406 OIDC \u76f8\u5173\u7684\u5904\u7406\u6d41\u7a0b\uff0c\u6765\u5e2e\u52a9\u5f00\u53d1\u8005\u7b80\u5316\u4ea4\u4e92\u6d41\u7a0b\uff0c\u6bd4\u5982 golang \u53ef\u4ee5\u4f7f\u7528\uff1a",(0,r.kt)("a",{parentName:"li",href:"https://github.com/coreos/go-oidc"},"https://github.com/coreos/go-oidc"))),(0,r.kt)("p",null,"\u8fd9\u91cc\u4ecb\u7ecd\u5982\u4f55\u901a\u8fc7 API \u8c03\u7528\uff0c\u6765\u5b9e\u73b0 OIDC \u5355\u70b9\u767b\u5f55\u7684\u57fa\u672c\u6d41\u7a0b\uff1a"),(0,r.kt)("p",null,"1\uff09\u7528\u6237\u8bbf\u95ee\u5e94\u7528\u754c\u9762\uff0c\u5e94\u81ea\u52a8\u91cd\u5b9a\u5411\u5230 kubebb \u8ba4\u8bc1\u670d\u52a1\u767b\u9646 URL\uff0cURL \u793a\u4f8b\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"https://192.168.2.216/oidc/auth?client_id=my-oidc-client&redirect_uri=http://192.168.1.32:8022/auth/callback&response_type=code&scope=openid+profile+email+offline_access\n")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u53c2\u6570\u540d\u79f0"),(0,r.kt)("th",{parentName:"tr",align:null},"\u63cf\u8ff0"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"client_id"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5e94\u7528 ID\uff0c\u6ce8\u518c\u9636\u6bb5\u7531 kubebb \u63d0\u4f9b\uff0c\u5982\uff1amy-oidc-client")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"redirect_uri"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5e94\u7528\u56de\u8c03\u5730\u5740\uff0c\u6ce8\u518c\u9636\u6bb5\u7531\u5e94\u7528\u63d0\u4f9b\uff0c\u5982\uff1a",(0,r.kt)("a",{parentName:"td",href:"http://192.168.1.32:8022/auth/callback"},"http://192.168.1.32:8022/auth/callback"))),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"response_type"),(0,r.kt)("td",{parentName:"tr",align:null},"\u56fa\u5b9a\u503c\uff1acode")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"scope"),(0,r.kt)("td",{parentName:"tr",align:null},"\u56fa\u5b9a\u503c\uff1aopenid profile email")))),(0,r.kt)("p",null,"2\uff09\u5728 kubebb \u7684\u767b\u9646\u9875\u9762\uff0c\u7528\u6237\u8f93\u5165\u7528\u6237\u540d/\u5bc6\u7801\u767b\u9646\uff08\u5982\u679c\u7528\u6237\u5df2\u7ecf\u767b\u9646\uff0c\u8fd9\u6b65\u4f1a\u81ea\u52a8\u8df3\u8fc7\uff09"),(0,r.kt)("p",null,"3\uff09\u767b\u5f55\u6210\u529f\u540e\uff0c\u8df3\u8f6c\u56de\u5e94\u7528\u6ce8\u518c\u7684\u56de\u8c03\u5730\u5740\uff0c\u8df3\u8f6c\u793a\u4f8b\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"http://192.168.1.32:8022/auth/callback?code=kf7dmmvhdipdcjczydklwi6pu&state=\n")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u53c2\u6570\u540d\u79f0"),(0,r.kt)("th",{parentName:"tr",align:null},"\u63cf\u8ff0"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"code"),(0,r.kt)("td",{parentName:"tr",align:null},"\u6388\u6743\u7801\uff0c\u7531 kubebb \u8ba4\u8bc1\u670d\u52a1 \u751f\u6210\uff0c\u7528\u4e8e\u540e\u9762\u83b7\u53d6 token")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"state"),(0,r.kt)("td",{parentName:"tr",align:null},"\u4e0e\u5e94\u7528\u8df3\u8f6c\u5230 kubebb \u8ba4\u8bc1\u670d\u52a1\u767b\u9646 URL \u65f6\u4f20\u9012\u7684 state \u503c\u4e00\u6837\u3002")))),(0,r.kt)("p",null,"4\uff09\u5e94\u7528\u540e\u53f0\u8c03\u7528 kubebb token API \u83b7\u53d6 token \u4fe1\u606f\uff0c\u8c03\u7528\u793a\u4f8b\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"curl -XPOST 'https://192.168.2.216/oidc/token' \\\n -H 'Authorization: Basic c2FtcGxlLWFwcC0yMTg6WlhoaGJYQnNaUzFoY0hBdGMyVmpjbVYwJw==' \\\n -H 'Content-Type: application/x-www-form-urlencoded' \\\n --data-urlencode 'code=kf7dmmvhdipdcjczydklwi6pu' \\\n --data-urlencode 'grant_type=authorization_code' \\\n --data-urlencode 'redirect_uri=http://192.168.1.32:8022/auth/callback'\n")),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u53c2\u6570\u540d\u79f0"),(0,r.kt)("th",{parentName:"tr",align:null},"\u63cf\u8ff0"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Authorization"),(0,r.kt)("td",{parentName:"tr",align:null},"\u683c\u5f0f Basic XXXX\uff0c\u5176\u4e2d XXXX \u662f client_id:client_secret \u7684 base64 \u7f16\u7801")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"Content-Type"),(0,r.kt)("td",{parentName:"tr",align:null},"\u56fa\u5b9a\u503c\uff1aapplication/x-www-form-urlencoded")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"code"),(0,r.kt)("td",{parentName:"tr",align:null},"\u6388\u6743\u7801")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"grant_type"),(0,r.kt)("td",{parentName:"tr",align:null},"\u56fa\u5b9a\u503c\uff1aauthorization_code")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"redirect_uri"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5e94\u7528\u56de\u8c03\u5730\u5740\uff0ckubebb \u8ba4\u8bc1\u670d\u52a1\u4f1a\u9a8c\u8bc1\u8be5\u5730\u5740\u662f\u5426\u4e0e\u5e94\u7528\u6ce8\u518c\u7684\u56de\u8c03\u5730\u5740\u4e00\u81f4")))),(0,r.kt)("p",null,"\u8be5\u8bf7\u6c42\u4f1a\u8fd4\u56detoken\u4fe1\u606f"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"ID Token: eyJhbGciOiJSUzI1NiIsImtpZCI6ImQxY2Y2MzA3YmQ5Yzk3OTJiMzdmMGJiM2M1Njk1ZDQ0MWJlZTMzNjcifQ.eyJpc3MiOiJodHRwczovLzE5Mi4xNjguMi4yMTYiLCJzdWIiOiJDZ0V4RWdsMFpXNTRZMnh2ZFdRIiwiYXVkIjoic2FtcGxlLWFwcC0yMTgiLCJleHAiOjE2MzAwMzA0ODEsImlhdCI6MTYyOTk0NDA4MSwiYXRfaGFzaCI6Ik1PUjk0enktTUZNcU5zZUZTM1ZzRXciLCJjX2hhc2giOiJpbkoteDVKUEFCRXhaaEpRaEx3T3pBIiwiZW1haWwiOiJhZG1pbkBleGFtcGxlLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiYWRtaW4iLCJwaG9uZSI6IjE3MzQzMTM1MDUxIiwidXNlcmlkIjoiMSJ9.FrC6oKRsManuP9opqugknJmOE78uKmxX6uteM1flCDVRqRv-riG0C5AOX4K9BTnT9GIlu3H24jydT4ybSissz_wL_mLzoTQWoQ9uMMmd4w1aiGqgO6mIaEh3XvTqtoQv1ltONSkp49bykpdIXbDJxy0PScU0k-0XFNJIMSBwn8SEubgH7NO3xwFzsjaLqBfolxC5YXBuWS8n-FEOqNTg-mx-n_Fu2oemJCT-8qWMqY6FNjRSC3D-2ABkCbl4g76vPLgJ-I6dU6eaJvaBW6S4BzhCX0SitxYrxcXjOGviX1HKOXXSUC1n1HfQpOpNW-FA2G3F-kON94rYr1AEdIwSVw\n\nAccess Token: eyJhbGciOiJSUzI1NiIsImtpZCI6ImQxY2Y2MzA3YmQ5Yzk3OTJiMzdmMGJiM2M1Njk1ZDQ0MWJlZTMzNjcifQ.eyJpc3MiOiJodHRwczovLzE5Mi4xNjguMi4yMTYiLCJzdWIiOiJDZ0V4RWdsMFpXNTRZMnh2ZFdRIiwiYXVkIjoic2FtcGxlLWFwcC0yMTgiLCJleHAiOjE2MzAwMzA0ODEsImlhdCI6MTYyOTk0NDA4MSwiYXRfaGFzaCI6IlhYS3RzUkhZS043WnZGOUFxcXVSd3ciLCJlbWFpbCI6ImFkbWluQGV4YW1wbGUuY29tIiwiZW1haWxfdmVyaWZpZWQiOnRydWUsIm5hbWUiOiJhZG1pbiIsInBob25lIjoiMTczNDMxMzUwNTEiLCJ1c2VyaWQiOiIxIn0.VXUxba9cy4S3ZUtyfbF6A3Xg5fZYL-m6nqR09qiJgJmNUCEkHr_b4xKXXvDJwsgoC0zdUxShd1BpOgN4vi8A7zZ676-PybB2dVT6x3EPpwCVC8_NVYwXijeELWJJ0nU9aAq6p_m-XdXOuPzutbmMLSWVfrY-CS2WSdQISuKxb28slTptzCF4OY3dZugOHZ_v10KAxsMo0Aul4d3C_EXOaiUKzw0OTD7xyYOm8MmJvhzQEYSodHAkbJWnOusKEBtFKJ5hhAqPLCymY2VleN-7Jbqr-DYrDSDtd7FF1vCbDL0-rTwQ5_79FIAu_fusOcVc26M7GlvOtGcniaweNtm1dg\n")),(0,r.kt)("p",null,"\u8fd4\u56de\u7684 ID Token \u662f\u6807\u51c6 JWT Token\uff0c\u5e94\u7528\u53ef\u4ee5\u4ece ID Token \u4e2d\u89e3\u6790\u51fa\u7528\u6237\u4fe1\u606f\uff0c\u4f8b\u5982\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},' {\n "iss": "https://192.168.2.216/oidc",\n "sub": "CgExEgl0ZW54Y2xvdWQ",\n "aud": "sample-app",\n "exp": 1630030481,\n "iat": 1629944081,\n "at_hash": "MOR94zy-MFMqNseFS3VsEw",\n "c_hash": "inJ-x5JPABExZhJQhLwOzA",\n "email": "admin@example.com",\n "email_verified": true,\n "name": "admin",\n "phone": "17343135051",\n "userid": "1"\n }\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u57fa\u4e8e\u8be5 JWT Token\uff0c\u5e94\u7528\u53ef\u4ee5\u5c06\u7528\u6237\u57fa\u7840\u4fe1\u606f\u540c\u6b65\u5230\u81ea\u5df1\u7684\u7cfb\u7edf\u5185\uff0c\u5728\u57fa\u4e8e\u7edf\u4e00\u8d26\u53f7\u3001\u8ba4\u8bc1\u7684\u524d\u63d0\u4e0b\uff0c\u5b9e\u73b0\u540c\u81ea\u8eab\u8d26\u53f7\u3001\u6743\u9650\u4f53\u7cfb\u7684\u878d\u5408\u3002"),(0,r.kt)("li",{parentName:"ul"},"Access Token \u4e00\u822c\u7528\u4e8e\u8bbf\u95ee kubebb \u8ba4\u8bc1\u670d\u52a1\u83b7\u53d6\u7528\u6237\u8be6\u7ec6\u4fe1\u606f\uff0c\u53ef\u4ee5\u6309\u9700\u4f7f\u7528\u3002")))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ad895e75.03c0dfb3.js b/assets/js/ad895e75.03c0dfb3.js deleted file mode 100644 index af723d50a..000000000 --- a/assets/js/ad895e75.03c0dfb3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4288],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var o=a.createContext({}),u=function(e){var n=a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=u(e.components);return a.createElement(o.Provider,{value:n},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=u(t),d=r,f=p["".concat(o,".").concat(d)]||p[d]||m[d]||l;return t?a.createElement(f,i(i({ref:n},c),{},{components:t})):a.createElement(f,i({ref:n},c))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,i=new Array(l);i[0]=d;var s={};for(var o in n)hasOwnProperty.call(n,o)&&(s[o]=n[o]);s.originalType=e,s[p]="string"==typeof e?e:r,i[1]=s;for(var u=2;u{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>s,toc:()=>u});var a=t(7462),r=(t(7294),t(3905));const l={sidebar_position:13,title:"\u5e38\u89c1\u95ee\u9898",sidebar_label:"\u5e38\u89c1\u95ee\u9898"},i="\u5e38\u89c1\u95ee\u9898",s={unversionedId:"FAQ",id:"FAQ",title:"\u5e38\u89c1\u95ee\u9898",description:"BuildingBase\u76f8\u5173",source:"@site/docs/FAQ.md",sourceDirName:".",slug:"/FAQ",permalink:"/website/docs/FAQ",draft:!1,tags:[],version:"current",sidebarPosition:13,frontMatter:{sidebar_position:13,title:"\u5e38\u89c1\u95ee\u9898",sidebar_label:"\u5e38\u89c1\u95ee\u9898"},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406",permalink:"/website/docs/user-guid/repository_anagement"},next:{title:"\u8d21\u732e\u6307\u5357",permalink:"/website/docs/contribute"}},o={},u=[{value:"BuildingBase\u76f8\u5173",id:"buildingbase\u76f8\u5173",level:2},{value:"\u90e8\u7f72\u95ee\u9898",id:"\u90e8\u7f72\u95ee\u9898",level:3},{value:"1. \u79df\u6237\u7ba1\u7406\u63a7\u5236\u5668probe liveness\u6821\u9a8c\u5931\u8d25\uff0c\u5bfc\u81f4\u65e0\u6cd5\u542f\u52a8",id:"1-\u79df\u6237\u7ba1\u7406\u63a7\u5236\u5668probe-liveness\u6821\u9a8c\u5931\u8d25\u5bfc\u81f4\u65e0\u6cd5\u542f\u52a8",level:4},{value:"\u95ee\u9898\u91cd\u73b0",id:"\u95ee\u9898\u91cd\u73b0",level:4},{value:"\u95ee\u9898\u539f\u56e0",id:"\u95ee\u9898\u539f\u56e0",level:4},{value:"\u89e3\u51b3\u65b9\u6848",id:"\u89e3\u51b3\u65b9\u6848",level:4}],c={toc:u},p="wrapper";function m(e){let{components:n,...t}=e;return(0,r.kt)(p,(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u5e38\u89c1\u95ee\u9898"},"\u5e38\u89c1\u95ee\u9898"),(0,r.kt)("h2",{id:"buildingbase\u76f8\u5173"},"BuildingBase\u76f8\u5173"),(0,r.kt)("h3",{id:"\u90e8\u7f72\u95ee\u9898"},"\u90e8\u7f72\u95ee\u9898"),(0,r.kt)("h4",{id:"1-\u79df\u6237\u7ba1\u7406\u63a7\u5236\u5668probe-liveness\u6821\u9a8c\u5931\u8d25\u5bfc\u81f4\u65e0\u6cd5\u542f\u52a8"},"1. \u79df\u6237\u7ba1\u7406\u63a7\u5236\u5668probe liveness\u6821\u9a8c\u5931\u8d25\uff0c\u5bfc\u81f4\u65e0\u6cd5\u542f\u52a8"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u73af\u5883",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Azure VM (Ubuntu 22.04)")))),(0,r.kt)("h4",{id:"\u95ee\u9898\u91cd\u73b0"},"\u95ee\u9898\u91cd\u73b0"),(0,r.kt)("p",null,"\u8fd0\u884c",(0,r.kt)("inlineCode",{parentName:"p"},"helm install --wait -n u4a-system u4a-component ."),"\u540e\uff0c\u53d1\u73b0\u79df\u6237\u7ba1\u7406\u63a7\u5236\u5668\u4e00\u76f4\u5904\u4e8e",(0,r.kt)("inlineCode",{parentName:"p"},"CrashLoopBackOff"),"\u72b6\u6001:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"\u279c ~ k get pods -nu4a-system\nNAME READY STATUS RESTARTS AGE\nbff-server-9cc54cbc5-gcp6x 1/1 Running 0 17m\ncapsule-controller-manager-5b9864f9bf-7mkhb 0/1 CrashLoopBackOff 8 (27s ago) 17m\ncert-manager-79d7998d9-c7q8n 1/1 Running 0 33m\ncert-manager-cainjector-57bb7f44dd-c9sj6 1/1 Running 0 33m\ncert-manager-webhook-65b494ccf4-4blzx 1/1 Running 0 33m\ncluster-component-ingress-nginx-controller-86d6bfdbf6-qj6hf 1/1 Running 0 33m\nkube-oidc-proxy-fc6b54b8c-ddc2s 1/1 Running 0 17m\noidc-server-84cbfcc9f5-bmmf9 2/2 Running 0 17m\nresource-view-controller-94645667-ttvst 1/1 Running 0 17m\n")),(0,r.kt)("p",null,"\u67e5\u770b\u65e5\u5fd7\u53d1\u73b0\u5982\u4e0b\u9519\u8bef\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},'Events:\n Type Reason Age From Message\n ---- ------ ---- ---- -------\n Normal Scheduled 4m35s default-scheduler Successfully assigned u4a-system/capsule-controller-manager-5b9864f9bf-7mkhb to kubebb-core-worker\n Normal Pulling 4m34s kubelet Pulling image "hub.tenxcloud.com/u4a-component/capsule:v0.1.2-20221122"\n Normal Pulled 3m57s kubelet Successfully pulled image "hub.tenxcloud.com/u4a-component/capsule:v0.1.2-20221122" in 36.616134797s\n Warning Unhealthy 3m53s kubelet Liveness probe failed: Get "http://10.244.1.6:10080/healthz": context deadline exceeded (Client.Timeout exceeded while awaiting headers)\n Warning Unhealthy 3m44s kubelet Readiness probe failed: Get "http://10.244.1.6:10080/readyz": dial tcp 10.244.1.6:10080: connect: connection refused\n Warning Unhealthy 3m44s kubelet Liveness probe failed: Get "http://10.244.1.6:10080/healthz": dial tcp 10.244.1.6:10080: connect: connection refused\n Normal Created 3m34s (x3 over 3m57s) kubelet Created container manager\n Normal Started 3m34s (x3 over 3m57s) kubelet Started container manager\n Warning Unhealthy 3m31s (x7 over 3m55s) kubelet Readiness probe failed: Get "http://10.244.1.6:10080/readyz": context deadline exceeded (Client.Timeout exceeded while awaiting headers)\n Warning BackOff 3m13s (x4 over 3m42s) kubelet Back-off restarting failed container\n Normal Pulled 3m1s (x3 over 3m50s) kubelet Container image "hub.tenxcloud.com/u4a-component/capsule:v0.1.2-20221122" already present on machine\n')),(0,r.kt)("h4",{id:"\u95ee\u9898\u539f\u56e0"},"\u95ee\u9898\u539f\u56e0"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"\u611f\u8c22 @0xff-dev \u63d0\u4f9b\u7684\u89e3\u51b3\u65b9\u6848")),(0,r.kt)("p",null,"\u53bb\u9664liveness probe\u540e\uff0c\u80fd\u770b\u5230\u5bb9\u5668\u62a5\u9519\uff0c\u53d1\u73b0\u662f\u7531\u4e8ecapsule\u521d\u59cb\u5316\u8fc7\u7a0b\u4e2d\u8d85\u51fa\u4e86\u64cd\u4f5c\u7cfb\u7edf\u5141\u8bb8\u7684\u6700\u5927\u6587\u4ef6\u6253\u5f00\u6570\uff0c\u5bfc\u81f4capsule\u65e0\u6cd5\u542f\u52a8\u3002"),(0,r.kt)("h4",{id:"\u89e3\u51b3\u65b9\u6848"},"\u89e3\u51b3\u65b9\u6848"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"\u611f\u8c22 @0xff-dev \u63d0\u4f9b\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u9700\u8bbe\u7f6e fs.inotify.max_user_instances=81920")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u7531\u5fae\u8f6f\u7684New Bing\u89e3\u7b54\u5f97\u5230\u7684\u7b54\u6848\uff1a")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"fs.inotify.max_user_instances")," \u662f\u4e00\u4e2a\u5185\u6838\u53c2\u6570\uff0c\u5b83\u8868\u793a\u6bcf\u4e2a\u7528\u6237\u53ef\u4ee5\u521b\u5efa\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"inotify")," \u5b9e\u4f8b\u7684\u6700\u5927\u6570\u91cf\u3002",(0,r.kt)("inlineCode",{parentName:"p"},"inotify")," \u662f\u4e00\u4e2a\u7528\u6765\u76d1\u89c6\u6587\u4ef6\u7cfb\u7edf\u53d8\u5316\u7684\u673a\u5236\u3002\u5982\u679c\u4f60\u60f3\u8981\u4fee\u6539\u8fd9\u4e2a\u53c2\u6570\uff0c\u4f60\u6709\u4e24\u79cd\u65b9\u6cd5\uff1a"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u4e34\u65f6\u4fee\u6539\uff1a\u4f60\u53ef\u4ee5\u4f7f\u7528 sysctl -w \u547d\u4ee4\u6765\u4e34\u65f6\u4fee\u6539\u8fd9\u4e2a\u53c2\u6570\uff0c\u4f8b\u5982\uff1a")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-sh"},"sudo sysctl -w fs.inotify.max_user_instances=81920\n")),(0,r.kt)("p",null,"\u8fd9\u4e2a\u547d\u4ee4\u4f1a\u628a ",(0,r.kt)("inlineCode",{parentName:"p"},"fs.inotify.max_user_instances")," \u7684\u503c\u8bbe\u7f6e\u4e3a 81920\uff0c\u5e76\u5199\u5165",(0,r.kt)("inlineCode",{parentName:"p"},"/proc/sys/fs/inotify/max_user_instances")," \u6587\u4ef6\u3002\u4f46\u662f\u8fd9\u4e2a\u4fee\u6539\u53ea\u5728\u91cd\u542f\u4e4b\u524d\u6709\u6548\uff0c\u91cd\u542f\u540e\u4f1a\u6062\u590d\u9ed8\u8ba4\u503c\u3002"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u6c38\u4e45\u4fee\u6539\uff1a\u4f60\u53ef\u4ee5\u5728 /etc/sysctl.conf \u6587\u4ef6\u4e2d\u6dfb\u52a0\u4e00\u884c\uff1a")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-sh"},"fs.inotify.max_user_instances=81920\n")),(0,r.kt)("p",null,"\u7136\u540e\u8fd0\u884c ",(0,r.kt)("inlineCode",{parentName:"p"},"sudo sysctl -p"),"\u547d\u4ee4\u6765\u52a0\u8f7d\u8fd9\u4e2a\u6587\u4ef6\u4e2d\u7684\u8bbe\u7f6e\u3002\u8fd9\u6837\uff0c\u8fd9\u4e2a\u4fee\u6539\u5c31\u4f1a\u5728\u6bcf\u6b21\u91cd\u542f\u540e\u751f\u6548\u3002"),(0,r.kt)("p",null,"\u5982\u679c\u4f60\u60f3\u4e86\u89e3\u66f4\u591a\u5173\u4e8e sysctl \u548c fs.inotify.max_user_instances \u7684\u4fe1\u606f\uff0c\u8bf7\u53c2\u8003\u4ee5\u4e0b\u94fe\u63a5\uff1a"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://www.suse.com/support/kb/doc/?id=000020048"},"How to increase the inotify.max_user_watches and inotify.max_user_instances sysctls on a Linux host | Support | SUSE")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://unix.stackexchange.com/questions/444998/how-to-set-and-understand-fs-notify-max-user-watches"},"How to set and understand fs.notify.max_user_watches - Unix & Linux Stack Exchange")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://askubuntu.com/questions/1068168/sysctl-permission-denied-on-key-fs-inotify-max-user-watches"},"sysctl: permission denied on key 'fs.inotify.max_user_watches' - Ask Ubuntu"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ad895e75.057c6fff.js b/assets/js/ad895e75.057c6fff.js new file mode 100644 index 000000000..1172c541e --- /dev/null +++ b/assets/js/ad895e75.057c6fff.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4288],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>f});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function i(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var o=a.createContext({}),u=function(e){var n=a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):i(i({},n),e)),t},c=function(e){var n=u(e.components);return a.createElement(o.Provider,{value:n},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),p=u(t),d=r,f=p["".concat(o,".").concat(d)]||p[d]||m[d]||l;return t?a.createElement(f,i(i({ref:n},c),{},{components:t})):a.createElement(f,i({ref:n},c))}));function f(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var l=t.length,i=new Array(l);i[0]=d;var s={};for(var o in n)hasOwnProperty.call(n,o)&&(s[o]=n[o]);s.originalType=e,s[p]="string"==typeof e?e:r,i[1]=s;for(var u=2;u{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>i,default:()=>m,frontMatter:()=>l,metadata:()=>s,toc:()=>u});var a=t(7462),r=(t(7294),t(3905));const l={sidebar_position:13,title:"\u5e38\u89c1\u95ee\u9898",sidebar_label:"\u5e38\u89c1\u95ee\u9898"},i="\u5e38\u89c1\u95ee\u9898",s={unversionedId:"FAQ",id:"FAQ",title:"\u5e38\u89c1\u95ee\u9898",description:"BuildingBase\u76f8\u5173",source:"@site/docs/FAQ.md",sourceDirName:".",slug:"/FAQ",permalink:"/website/docs/FAQ",draft:!1,tags:[],version:"current",sidebarPosition:13,frontMatter:{sidebar_position:13,title:"\u5e38\u89c1\u95ee\u9898",sidebar_label:"\u5e38\u89c1\u95ee\u9898"},sidebar:"tutorialSidebar",previous:{title:"\u4f7f\u7528 kubelogin \u5de5\u5177",permalink:"/website/docs/develop-guid/component-market/kubelogin"},next:{title:"\u8d21\u732e\u6307\u5357",permalink:"/website/docs/contribute"}},o={},u=[{value:"BuildingBase\u76f8\u5173",id:"buildingbase\u76f8\u5173",level:2},{value:"\u90e8\u7f72\u95ee\u9898",id:"\u90e8\u7f72\u95ee\u9898",level:3},{value:"1. \u79df\u6237\u7ba1\u7406\u63a7\u5236\u5668probe liveness\u6821\u9a8c\u5931\u8d25\uff0c\u5bfc\u81f4\u65e0\u6cd5\u542f\u52a8",id:"1-\u79df\u6237\u7ba1\u7406\u63a7\u5236\u5668probe-liveness\u6821\u9a8c\u5931\u8d25\u5bfc\u81f4\u65e0\u6cd5\u542f\u52a8",level:4},{value:"\u95ee\u9898\u91cd\u73b0",id:"\u95ee\u9898\u91cd\u73b0",level:4},{value:"\u95ee\u9898\u539f\u56e0",id:"\u95ee\u9898\u539f\u56e0",level:4},{value:"\u89e3\u51b3\u65b9\u6848",id:"\u89e3\u51b3\u65b9\u6848",level:4}],c={toc:u},p="wrapper";function m(e){let{components:n,...t}=e;return(0,r.kt)(p,(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u5e38\u89c1\u95ee\u9898"},"\u5e38\u89c1\u95ee\u9898"),(0,r.kt)("h2",{id:"buildingbase\u76f8\u5173"},"BuildingBase\u76f8\u5173"),(0,r.kt)("h3",{id:"\u90e8\u7f72\u95ee\u9898"},"\u90e8\u7f72\u95ee\u9898"),(0,r.kt)("h4",{id:"1-\u79df\u6237\u7ba1\u7406\u63a7\u5236\u5668probe-liveness\u6821\u9a8c\u5931\u8d25\u5bfc\u81f4\u65e0\u6cd5\u542f\u52a8"},"1. \u79df\u6237\u7ba1\u7406\u63a7\u5236\u5668probe liveness\u6821\u9a8c\u5931\u8d25\uff0c\u5bfc\u81f4\u65e0\u6cd5\u542f\u52a8"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u73af\u5883",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"Azure VM (Ubuntu 22.04)")))),(0,r.kt)("h4",{id:"\u95ee\u9898\u91cd\u73b0"},"\u95ee\u9898\u91cd\u73b0"),(0,r.kt)("p",null,"\u8fd0\u884c",(0,r.kt)("inlineCode",{parentName:"p"},"helm install --wait -n u4a-system u4a-component ."),"\u540e\uff0c\u53d1\u73b0\u79df\u6237\u7ba1\u7406\u63a7\u5236\u5668\u4e00\u76f4\u5904\u4e8e",(0,r.kt)("inlineCode",{parentName:"p"},"CrashLoopBackOff"),"\u72b6\u6001:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"\u279c ~ k get pods -nu4a-system\nNAME READY STATUS RESTARTS AGE\nbff-server-9cc54cbc5-gcp6x 1/1 Running 0 17m\ncapsule-controller-manager-5b9864f9bf-7mkhb 0/1 CrashLoopBackOff 8 (27s ago) 17m\ncert-manager-79d7998d9-c7q8n 1/1 Running 0 33m\ncert-manager-cainjector-57bb7f44dd-c9sj6 1/1 Running 0 33m\ncert-manager-webhook-65b494ccf4-4blzx 1/1 Running 0 33m\ncluster-component-ingress-nginx-controller-86d6bfdbf6-qj6hf 1/1 Running 0 33m\nkube-oidc-proxy-fc6b54b8c-ddc2s 1/1 Running 0 17m\noidc-server-84cbfcc9f5-bmmf9 2/2 Running 0 17m\nresource-view-controller-94645667-ttvst 1/1 Running 0 17m\n")),(0,r.kt)("p",null,"\u67e5\u770b\u65e5\u5fd7\u53d1\u73b0\u5982\u4e0b\u9519\u8bef\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},'Events:\n Type Reason Age From Message\n ---- ------ ---- ---- -------\n Normal Scheduled 4m35s default-scheduler Successfully assigned u4a-system/capsule-controller-manager-5b9864f9bf-7mkhb to kubebb-core-worker\n Normal Pulling 4m34s kubelet Pulling image "hub.tenxcloud.com/u4a-component/capsule:v0.1.2-20221122"\n Normal Pulled 3m57s kubelet Successfully pulled image "hub.tenxcloud.com/u4a-component/capsule:v0.1.2-20221122" in 36.616134797s\n Warning Unhealthy 3m53s kubelet Liveness probe failed: Get "http://10.244.1.6:10080/healthz": context deadline exceeded (Client.Timeout exceeded while awaiting headers)\n Warning Unhealthy 3m44s kubelet Readiness probe failed: Get "http://10.244.1.6:10080/readyz": dial tcp 10.244.1.6:10080: connect: connection refused\n Warning Unhealthy 3m44s kubelet Liveness probe failed: Get "http://10.244.1.6:10080/healthz": dial tcp 10.244.1.6:10080: connect: connection refused\n Normal Created 3m34s (x3 over 3m57s) kubelet Created container manager\n Normal Started 3m34s (x3 over 3m57s) kubelet Started container manager\n Warning Unhealthy 3m31s (x7 over 3m55s) kubelet Readiness probe failed: Get "http://10.244.1.6:10080/readyz": context deadline exceeded (Client.Timeout exceeded while awaiting headers)\n Warning BackOff 3m13s (x4 over 3m42s) kubelet Back-off restarting failed container\n Normal Pulled 3m1s (x3 over 3m50s) kubelet Container image "hub.tenxcloud.com/u4a-component/capsule:v0.1.2-20221122" already present on machine\n')),(0,r.kt)("h4",{id:"\u95ee\u9898\u539f\u56e0"},"\u95ee\u9898\u539f\u56e0"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"\u611f\u8c22 @0xff-dev \u63d0\u4f9b\u7684\u89e3\u51b3\u65b9\u6848")),(0,r.kt)("p",null,"\u53bb\u9664liveness probe\u540e\uff0c\u80fd\u770b\u5230\u5bb9\u5668\u62a5\u9519\uff0c\u53d1\u73b0\u662f\u7531\u4e8ecapsule\u521d\u59cb\u5316\u8fc7\u7a0b\u4e2d\u8d85\u51fa\u4e86\u64cd\u4f5c\u7cfb\u7edf\u5141\u8bb8\u7684\u6700\u5927\u6587\u4ef6\u6253\u5f00\u6570\uff0c\u5bfc\u81f4capsule\u65e0\u6cd5\u542f\u52a8\u3002"),(0,r.kt)("h4",{id:"\u89e3\u51b3\u65b9\u6848"},"\u89e3\u51b3\u65b9\u6848"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"\u611f\u8c22 @0xff-dev \u63d0\u4f9b\u7684\u89e3\u51b3\u65b9\u6848\uff0c\u9700\u8bbe\u7f6e fs.inotify.max_user_instances=81920")),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"\u7531\u5fae\u8f6f\u7684New Bing\u89e3\u7b54\u5f97\u5230\u7684\u7b54\u6848\uff1a")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"fs.inotify.max_user_instances")," \u662f\u4e00\u4e2a\u5185\u6838\u53c2\u6570\uff0c\u5b83\u8868\u793a\u6bcf\u4e2a\u7528\u6237\u53ef\u4ee5\u521b\u5efa\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"inotify")," \u5b9e\u4f8b\u7684\u6700\u5927\u6570\u91cf\u3002",(0,r.kt)("inlineCode",{parentName:"p"},"inotify")," \u662f\u4e00\u4e2a\u7528\u6765\u76d1\u89c6\u6587\u4ef6\u7cfb\u7edf\u53d8\u5316\u7684\u673a\u5236\u3002\u5982\u679c\u4f60\u60f3\u8981\u4fee\u6539\u8fd9\u4e2a\u53c2\u6570\uff0c\u4f60\u6709\u4e24\u79cd\u65b9\u6cd5\uff1a"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u4e34\u65f6\u4fee\u6539\uff1a\u4f60\u53ef\u4ee5\u4f7f\u7528 sysctl -w \u547d\u4ee4\u6765\u4e34\u65f6\u4fee\u6539\u8fd9\u4e2a\u53c2\u6570\uff0c\u4f8b\u5982\uff1a")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-sh"},"sudo sysctl -w fs.inotify.max_user_instances=81920\n")),(0,r.kt)("p",null,"\u8fd9\u4e2a\u547d\u4ee4\u4f1a\u628a ",(0,r.kt)("inlineCode",{parentName:"p"},"fs.inotify.max_user_instances")," \u7684\u503c\u8bbe\u7f6e\u4e3a 81920\uff0c\u5e76\u5199\u5165",(0,r.kt)("inlineCode",{parentName:"p"},"/proc/sys/fs/inotify/max_user_instances")," \u6587\u4ef6\u3002\u4f46\u662f\u8fd9\u4e2a\u4fee\u6539\u53ea\u5728\u91cd\u542f\u4e4b\u524d\u6709\u6548\uff0c\u91cd\u542f\u540e\u4f1a\u6062\u590d\u9ed8\u8ba4\u503c\u3002"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u6c38\u4e45\u4fee\u6539\uff1a\u4f60\u53ef\u4ee5\u5728 /etc/sysctl.conf \u6587\u4ef6\u4e2d\u6dfb\u52a0\u4e00\u884c\uff1a")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-sh"},"fs.inotify.max_user_instances=81920\n")),(0,r.kt)("p",null,"\u7136\u540e\u8fd0\u884c ",(0,r.kt)("inlineCode",{parentName:"p"},"sudo sysctl -p"),"\u547d\u4ee4\u6765\u52a0\u8f7d\u8fd9\u4e2a\u6587\u4ef6\u4e2d\u7684\u8bbe\u7f6e\u3002\u8fd9\u6837\uff0c\u8fd9\u4e2a\u4fee\u6539\u5c31\u4f1a\u5728\u6bcf\u6b21\u91cd\u542f\u540e\u751f\u6548\u3002"),(0,r.kt)("p",null,"\u5982\u679c\u4f60\u60f3\u4e86\u89e3\u66f4\u591a\u5173\u4e8e sysctl \u548c fs.inotify.max_user_instances \u7684\u4fe1\u606f\uff0c\u8bf7\u53c2\u8003\u4ee5\u4e0b\u94fe\u63a5\uff1a"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://www.suse.com/support/kb/doc/?id=000020048"},"How to increase the inotify.max_user_watches and inotify.max_user_instances sysctls on a Linux host | Support | SUSE")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://unix.stackexchange.com/questions/444998/how-to-set-and-understand-fs-notify-max-user-watches"},"How to set and understand fs.notify.max_user_watches - Unix & Linux Stack Exchange")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"https://askubuntu.com/questions/1068168/sysctl-permission-denied-on-key-fs-inotify-max-user-watches"},"sysctl: permission denied on key 'fs.inotify.max_user_watches' - Ask Ubuntu"))))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b09d49d3.b64dab44.js b/assets/js/b09d49d3.b64dab44.js new file mode 100644 index 000000000..5eac81c25 --- /dev/null +++ b/assets/js/b09d49d3.b64dab44.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3549],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>y});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,y=p["".concat(c,".").concat(b)]||p[b]||d[b]||i;return r?n.createElement(y,a(a({ref:t},u),{},{components:r})):n.createElement(y,a({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=b;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[p]="string"==typeof e?e:o,a[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const i={sidebar_position:5},a="\u751f\u6210 oidc-proxy \u7684\u8bc1\u4e66",s={unversionedId:"develop-guid/building-base/configuration/issue-oidc-proxy-certs",id:"develop-guid/building-base/configuration/issue-oidc-proxy-certs",title:"\u751f\u6210 oidc-proxy \u7684\u8bc1\u4e66",description:"\u4f7f\u7528\u573a\u666f\uff1a",source:"@site/docs/develop-guid/building-base/configuration/issue-oidc-proxy-certs.md",sourceDirName:"develop-guid/building-base/configuration",slug:"/develop-guid/building-base/configuration/issue-oidc-proxy-certs",permalink:"/website/docs/develop-guid/building-base/configuration/issue-oidc-proxy-certs",draft:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"\u96c6\u6210\u5355\u70b9\u767b\u5f55",permalink:"/website/docs/develop-guid/building-base/configuration/oidc-integration"},next:{title:"\u4f4e\u7801 Kit",permalink:"/website/docs/category/\u4f4e\u7801-kit"}},c={},l=[{value:"\u4f7f\u7528\u573a\u666f\uff1a",id:"\u4f7f\u7528\u573a\u666f",level:4},{value:"\u524d\u63d0\u6761\u4ef6\uff1a",id:"\u524d\u63d0\u6761\u4ef6",level:4},{value:"\u5177\u4f53\u6b65\u9aa4",id:"\u5177\u4f53\u6b65\u9aa4",level:4}],u={toc:l},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"\u751f\u6210-oidc-proxy-\u7684\u8bc1\u4e66"},"\u751f\u6210 oidc-proxy \u7684\u8bc1\u4e66"),(0,o.kt)("h4",{id:"\u4f7f\u7528\u573a\u666f"},"\u4f7f\u7528\u573a\u666f\uff1a"),(0,o.kt)("p",null,"\u5982\u679c\u65e0\u6cd5\u83b7\u53d6\u5230 Kubernetes \u7684 ca \u8bc1\u4e66\uff0c\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u9881\u53d1 kube-oidc-proxy \u7684\u8bc1\u4e66"),(0,o.kt)("h4",{id:"\u524d\u63d0\u6761\u4ef6"},"\u524d\u63d0\u6761\u4ef6\uff1a"),(0,o.kt)("p",null,"OpenSSL tools\nKubernetes cluster"),(0,o.kt)("h4",{id:"\u5177\u4f53\u6b65\u9aa4"},"\u5177\u4f53\u6b65\u9aa4"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"save the openssl.cnf")),(0,o.kt)("p",null,"[ req ]","\ndistinguished_name = dn\n","[ dn ]","\nCN = kube-oidc-proxy\n","[ req_ext ]","\nsubjectAltName = @alt_names\n","[ alt_names ]","\nDNS.2 = kube-oidc-proxy\nDNS.3 = kube-oidc-proxy.addon-system\nDNS.4 = kube-oidc-proxy.addon-system.svc\nIP.1 = 172.22.99.227 # need update"),(0,o.kt)("ol",{start:2},(0,o.kt)("li",{parentName:"ol"},"generate the private key of oidc-proxy")),(0,o.kt)("p",null,"openssl genrsa -out server.key 2048"),(0,o.kt)("ol",{start:3},(0,o.kt)("li",{parentName:"ol"},"generate the sever.csr of oidc-proxy")),(0,o.kt)("p",null,"openssl req -new \\",(0,o.kt)("br",{parentName:"p"}),"\n",'-sha256 \\\n-key server.key \\\n-subj "/CN=kube-oidc-proxy" \\\n-reqexts req_ext \\\n-config openssl.cnf \\\n-out server.csr'),(0,o.kt)("ol",{start:4},(0,o.kt)("li",{parentName:"ol"},"generate the base64 content of server.csr")),(0,o.kt)("p",null,'cat server.csr | base64 | tr -d "\\n"'),(0,o.kt)("ol",{start:5},(0,o.kt)("li",{parentName:"ol"},"create certificateSigningRequest in kubernetes cluster for oidc-proxy")),(0,o.kt)("p",null,"the request value need to replace the output content generated by Step 4 "),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"cat <\n signerName: kubernetes.io/kube-apiserver-client\n usages:\n - client auth\nEOF\n")),(0,o.kt)("p",null,"6 approval the certificatesigningRequest"),(0,o.kt)("p",null,"kubectl certificate approve myuser"),(0,o.kt)("ol",{start:7},(0,o.kt)("li",{parentName:"ol"},"get the certifcate of oidc-proxy issuer by kubernetes cluster")),(0,o.kt)("p",null,"kubectl get csr myuser -oyaml | grep certificate: | awk '{print $2}' |base64 -d > ./server.cert"),(0,o.kt)("ol",{start:8},(0,o.kt)("li",{parentName:"ol"},"after the step above, you get the server.key and server.cert and can rename the server.key and server.cert that you want. you can create secret for oidc-proxy by command:")),(0,o.kt)("p",null,"kubectl create secret"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b0d91792.76e5a73a.js b/assets/js/b0d91792.76e5a73a.js new file mode 100644 index 000000000..1142c893d --- /dev/null +++ b/assets/js/b0d91792.76e5a73a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3222],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>b});var a=t(7294);function l(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n=0||(l[t]=e[t]);return l}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(l[t]=e[t])}return l}var s=a.createContext({}),i=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},u=function(e){var n=i(e.components);return a.createElement(s.Provider,{value:n},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},k=a.forwardRef((function(e,n){var t=e.components,l=e.mdxType,r=e.originalType,s=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),c=i(t),k=l,b=c["".concat(s,".").concat(k)]||c[k]||m[k]||r;return t?a.createElement(b,o(o({ref:n},u),{},{components:t})):a.createElement(b,o({ref:n},u))}));function b(e,n){var t=arguments,l=n&&n.mdxType;if("string"==typeof e||l){var r=t.length,o=new Array(r);o[0]=k;var p={};for(var s in n)hasOwnProperty.call(n,s)&&(p[s]=n[s]);p.originalType=e,p[c]="string"==typeof e?e:l,o[1]=p;for(var i=2;i{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>o,default:()=>m,frontMatter:()=>r,metadata:()=>p,toc:()=>i});var a=t(7462),l=(t(7294),t(3905));const r={sidebar_position:1},o="\u5b89\u88c5 Kubebb",p={unversionedId:"quick-start/quick-install",id:"quick-start/quick-install",title:"\u5b89\u88c5 Kubebb",description:"\u51c6\u5907\u73af\u5883",source:"@site/docs/quick-start/quick-install.md",sourceDirName:"quick-start",slug:"/quick-start/quick-install",permalink:"/website/docs/quick-start/quick-install",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"\u5feb\u901f\u5f00\u59cb",permalink:"/website/docs/category/\u5feb\u901f\u5f00\u59cb"},next:{title:"\u53d1\u5e03 HelloWorld \u7ec4\u4ef6",permalink:"/website/docs/quick-start/quick-experience"}},s={},i=[{value:"\u51c6\u5907\u73af\u5883",id:"\u51c6\u5907\u73af\u5883",level:2},{value:"\u5b89\u88c5\u5185\u6838",id:"\u5b89\u88c5\u5185\u6838",level:2},{value:"\u5b89\u88c5\u5e95\u5ea7",id:"\u5b89\u88c5\u5e95\u5ea7",level:2},{value:"1. \u521b\u5efa\u5b98\u65b9\u7ec4\u4ef6\u4ed3\u5e93",id:"1-\u521b\u5efa\u5b98\u65b9\u7ec4\u4ef6\u4ed3\u5e93",level:3},{value:"2. \u521b\u5efa\u5e95\u5ea7\u7ec4\u4ef6\u7a7a\u95f4",id:"2-\u521b\u5efa\u5e95\u5ea7\u7ec4\u4ef6\u7a7a\u95f4",level:3},{value:"3. \u90e8\u7f72Cluster Component",id:"3-\u90e8\u7f72cluster-component",level:3},{value:"4. \u90e8\u7f72U4A Component",id:"4-\u90e8\u7f72u4a-component",level:3},{value:"5. \u8bbf\u95ee\u5e95\u5ea7\u670d\u52a1\u95e8\u6237",id:"5-\u8bbf\u95ee\u5e95\u5ea7\u670d\u52a1\u95e8\u6237",level:3},{value:"\u5378\u8f7d",id:"\u5378\u8f7d",level:2},{value:"1. \u5378\u8f7dU4A Component",id:"1-\u5378\u8f7du4a-component",level:3},{value:"2. \u5378\u8f7dCluster Component",id:"2-\u5378\u8f7dcluster-component",level:3}],u={toc:i},c="wrapper";function m(e){let{components:n,...t}=e;return(0,l.kt)(c,(0,a.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"\u5b89\u88c5-kubebb"},"\u5b89\u88c5 Kubebb"),(0,l.kt)("h2",{id:"\u51c6\u5907\u73af\u5883"},"\u51c6\u5907\u73af\u5883"),(0,l.kt)("p",null,"\u51c6\u5907\u57fa\u7840\u73af\u5883"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://helm.sh/docs/intro/install/"},"Helm")," +3.0 \u5ba2\u6237\u7aef"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://kubernetes.io/docs/tasks/tools/#kubectl"},"Kubectl")," \u5ba2\u6237\u7aef")),(0,l.kt)("p",null,"\u51c6\u5907Kubernetes\u96c6\u7fa4"),(0,l.kt)("admonition",{type:"tip"},(0,l.kt)("p",{parentName:"admonition"},"\u5982\u679c\u6ca1\u6709kubernets\u96c6\u7fa4\uff0c\u53ef\u6309\u7167\u4e0b\u8ff0\u6559\u7a0b\u901a\u8fc7",(0,l.kt)("a",{parentName:"p",href:"https://kind.sigs.k8s.io/docs/user/quick-start/#installation"},"kind"),"\u90e8\u7f72\u4e00\u4e2a\u5f00\u53d1\u96c6\u7fa4\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u4e3a\u9002\u914d",(0,l.kt)("inlineCode",{parentName:"p"},"building base"),",\u96c6\u7fa4\u81f3\u5c11\u6709\u4e00\u4e2a\u8282\u70b9\u9700\u8981\u4e3a",(0,l.kt)("inlineCode",{parentName:"p"},"Ingress Controller"),"\u670d\u52a1\u8282\u70b9\uff0c\u5e76\u66b4\u9732",(0,l.kt)("inlineCode",{parentName:"p"},"80"),"\u548c",(0,l.kt)("inlineCode",{parentName:"p"},"443"),"\u7aef\u53e3\u3002")),(0,l.kt)("ol",null,(0,l.kt)("li",{parentName:"ol"},"\u5b89\u88c5kind")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"\u53c2\u8003: ",(0,l.kt)("a",{parentName:"p",href:"https://kind.sigs.k8s.io/docs/user/quick-start/#installation"},"https://kind.sigs.k8s.io/docs/user/quick-start/#installation"))),(0,l.kt)("p",null,"Linux\u73af\u5883\u4e3a\u4f8b:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-shell"},"# For AMD64 / x86_64\n[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-amd64\n# For ARM64\n[ $(uname -m) = aarch64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.20.0/kind-linux-arm64\nchmod +x ./kind\nsudo mv ./kind /usr/local/bin/kind\n")),(0,l.kt)("ol",{start:2},(0,l.kt)("li",{parentName:"ol"},"\u51c6\u5907\u5355\u8282\u70b9\u96c6\u7fa4",(0,l.kt)("a",{parentName:"li",href:"https://github.com/kubebb/core/blob/main/tests/kind-config.yaml"},"\u914d\u7f6e\u6587\u4ef6"),(0,l.kt)("inlineCode",{parentName:"li"},"kind-config.yaml"))),(0,l.kt)("admonition",{type:"tip"},(0,l.kt)("ul",{parentName:"admonition"},(0,l.kt)("li",{parentName:"ul"},"\u6b64\u5904\u91c7\u7528v1.24.13\u7248\u672c\uff0c\u5176\u4ed6\u7248\u672c\u8bf7\u81ea\u884c\u66ff\u6362. ",(0,l.kt)("a",{parentName:"li",href:"https://hub.docker.com/r/kindest/node/tags?page=1&ordering=last_updated"},"\u7248\u672c\u5217\u8868"),"\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u5982\u9700\u521b\u5efa\u591a\u8282\u70b9\u96c6\u7fa4\uff0c\u53ef\u53c2\u8003",(0,l.kt)("a",{parentName:"li",href:"https://github.com/kubebb/core/blob/main/tests/kind-config-3nodes.yaml"},"3\u8282\u70b9\u914d\u7f6e\u6587\u4ef6")))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},'kind: Cluster\napiVersion: kind.x-k8s.io/v1alpha4\nname: kubebb-core\nnodes:\n - role: control-plane\n image: kindest/node:v1.24.13\n kubeadmConfigPatches:\n - |\n kind: InitConfiguration\n nodeRegistration:\n kubeletExtraArgs:\n node-labels: "ingress-ready=true"\n extraPortMappings:\n - containerPort: 80\n hostPort: 80\n protocol: TCP\n - containerPort: 443\n hostPort: 443\n protocol: TCP\n')),(0,l.kt)("ol",{start:3},(0,l.kt)("li",{parentName:"ol"},"\u521b\u5efa\u96c6\u7fa4")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-shell"},"kind create cluster --config=kind-config.yaml\n")),(0,l.kt)("ol",{start:4},(0,l.kt)("li",{parentName:"ol"},"\u67e5\u770b\u96c6\u7fa4\u72b6\u6001")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl cluster-info --context kind-kubebb-core\n")),(0,l.kt)("p",null,"\u5982\u679c\u4e00\u5207\u6b63\u5e38\uff0c\u8f93\u51fa\u5982\u4e0b:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-shell"},"Kubernetes control plane is running at https://127.0.0.1:42607\nCoreDNS is running at https://127.0.0.1:42607/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy\n\nTo further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.\n")),(0,l.kt)("ol",{start:5},(0,l.kt)("li",{parentName:"ol"},"\u67e5\u770b\u96c6\u7fa4\u8282\u70b9")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get nodes\n")),(0,l.kt)("p",null,"\u5982\u679c\u4e00\u5207\u6b63\u5e38\uff0c\u8f93\u51fa\u5982\u4e0b:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-shell"},"NAME STATUS ROLES AGE VERSION\nkubebb-core-control-plane Ready control-plane 21m v1.24.13\n")),(0,l.kt)("p",null,"\u901a\u8fc7",(0,l.kt)("inlineCode",{parentName:"p"},"docker ps"),"\u53ef\u53d1\u73b0\u8be5\u8282\u70b9\u5df2\u7ecf\u66b4\u9732\u4e86",(0,l.kt)("inlineCode",{parentName:"p"},"80"),"\u548c",(0,l.kt)("inlineCode",{parentName:"p"},"443"),"\u7aef\u53e3:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-shell"},'(base) \u279c building-base git:(azure) docker ps\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\ne4e3820cdb5a kindest/node:v1.24.13 "/usr/local/bin/entr\u2026" 22 minutes ago Up 22 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 127.0.0.1:33611->6443/tcp kubebb-core-control-plane\n')),(0,l.kt)("h2",{id:"\u5b89\u88c5\u5185\u6838"},"\u5b89\u88c5\u5185\u6838"),(0,l.kt)("admonition",{type:"tip"},(0,l.kt)("p",{parentName:"admonition"},"Kubebb\u5b98\u65b9\u63d0\u4f9b\u4e86helm\u4ed3\u5e93\uff0c\u65b9\u4fbf\u7528\u6237\u5b89\u88c5: ",(0,l.kt)("a",{parentName:"p",href:"https://kubebb.github.io/components/"},"https://kubebb.github.io/components/"))),(0,l.kt)("ol",null,(0,l.kt)("li",{parentName:"ol"},"\u6dfb\u52a0helm\u4ed3\u5e93")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-shell"},"helm repo add kubebb https://kubebb.github.io/components/\nhelm repo update\n")),(0,l.kt)("ol",{start:2},(0,l.kt)("li",{parentName:"ol"},"\u521b\u5efa\u547d\u540d\u7a7a\u95f4")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"\u8bf7\u6839\u636e\u5b9e\u9645\u60c5\u51b5\u4fee\u6539\u547d\u540d\u7a7a\u95f4\u540d\u79f0")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl create namespace kubebb-system\n")),(0,l.kt)("ol",{start:3},(0,l.kt)("li",{parentName:"ol"},"\u5b89\u88c5")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-shell"},"helm install -nkubebb-system kubebb-core kubebb/kubebb-core\n")),(0,l.kt)("ol",{start:4},(0,l.kt)("li",{parentName:"ol"},"\u67e5\u770b\u5b89\u88c5\u72b6\u6001")),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get pods -nkubebb-system \n")),(0,l.kt)("p",null,"\u5982\u679c\u4e00\u5207\u6b63\u5e38\uff0c\u8f93\u5165\u5982\u4e0b:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-shell"},"NAME READY STATUS RESTARTS AGE\nkubebb-core-6bd7c5f679-742mq 1/1 Running 0 21h\n")),(0,l.kt)("h2",{id:"\u5b89\u88c5\u5e95\u5ea7"},"\u5b89\u88c5\u5e95\u5ea7"),(0,l.kt)("h3",{id:"1-\u521b\u5efa\u5b98\u65b9\u7ec4\u4ef6\u4ed3\u5e93"},"1. \u521b\u5efa\u5b98\u65b9\u7ec4\u4ef6\u4ed3\u5e93"),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"\u53ef\u53c2\u8003",(0,l.kt)("a",{parentName:"p",href:"#%E5%AE%89%E8%A3%85%E5%86%85%E6%A0%B8"},"\u4f7f\u7528\u5b98\u65b9\u7ec4\u4ef6\u4ed3\u5e93"))),(0,l.kt)("h3",{id:"2-\u521b\u5efa\u5e95\u5ea7\u7ec4\u4ef6\u7a7a\u95f4"},"2. \u521b\u5efa\u5e95\u5ea7\u7ec4\u4ef6\u7a7a\u95f4"),(0,l.kt)("admonition",{type:"tip"},(0,l.kt)("p",{parentName:"admonition"},"\u76ee\u524d\u4ec5\u652f\u6301\u4f7f\u7528\u547d\u540d\u7a7a\u95f4",(0,l.kt)("inlineCode",{parentName:"p"},"u4a-system"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-shell"}," kubectl create namespace u4a-system\n")),(0,l.kt)("h3",{id:"3-\u90e8\u7f72cluster-component"},"3. \u90e8\u7f72Cluster Component"),(0,l.kt)("p",null,"\u7ec4\u4ef6\u90e8\u7f72\u4fe1\u606f",(0,l.kt)("inlineCode",{parentName:"p"},"cluster_componentplan.yaml"),"\u5982\u4e0b:"),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"\u8be6\u7ec6\u53ef",(0,l.kt)("a",{parentName:"p",href:"https://github.com/kubebb/components/tree/main/examples/cluster-component"},"\u53c2\u8003"))),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},"apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: ComponentPlan\nmetadata:\n name: cluster-component\n namespace: u4a-system\nspec:\n approved: true\n name: cluster-component\n version: 0.1.3\n override:\n set:\n - ingress-nginx.controller.nodeSelector.kubernetes\\.io/hostname=kubebb-core-control-plane\n component:\n name: kubebb.cluster-component\n namespace: kubebb-system\n")),(0,l.kt)("p",null,"\u9700\u8c03\u6574\u53c2\u6570:"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"override.set.ingress-nginx.controller.nodeSelector.kubernetes\\.io/hostname")," \u5c06\u4f5c\u4e3a",(0,l.kt)("a",{parentName:"li",href:"https://github.com/kubebb/components/tree/main/charts/cluster-component/charts/ingress-nginx"},"ingress-nginx"),"\u670d\u52a1\u8282\u70b9")),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"\u6b64\u5904\u57fa\u4e8e",(0,l.kt)("a",{parentName:"p",href:"#%E5%87%86%E5%A4%87%E7%8E%AF%E5%A2%83"},"kind\u5f00\u53d1\u96c6\u7fa4"),"\u7684",(0,l.kt)("inlineCode",{parentName:"p"},"kubebb-core-control-plane"),"\u8282\u70b9\u3002")),(0,l.kt)("p",null,"\u901a\u8fc7\u4e00\u4e0b\u547d\u4ee4\u90e8\u7f72:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-shell"}," kubectl apply -nu4a-system -f cluster_componentplan.yaml\n")),(0,l.kt)("p",null,(0,l.kt)("inlineCode",{parentName:"p"},"Cluster Component"),"\u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u53ef\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u67e5\u770b\u7ec4\u4ef6\u90e8\u7f72\u72b6\u6001:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-shell"}," kubectl get componentplan -nu4a-system cluster-component -oyaml\n")),(0,l.kt)("p",null,"\u5f53\u7ec4\u4ef6\u90e8\u7f72\u72b6\u6001\u5982\u4e0b\u65f6\uff0c\u8868\u793a\u7ec4\u4ef6\u90e8\u7f72\u6210\u529f:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},'status:\n conditions:\n - lastTransitionTime: "2023-07-25T08:15:41Z"\n reason: ""\n status: "True"\n type: Approved\n - lastTransitionTime: "2023-07-25T08:15:44Z"\n reason: InstallSuccess\n status: "True"\n type: Actioned\n - lastTransitionTime: "2023-07-25T08:15:44Z"\n reason: ""\n status: "True"\n type: Succeeded\n')),(0,l.kt)("h3",{id:"4-\u90e8\u7f72u4a-component"},"4. \u90e8\u7f72U4A Component"),(0,l.kt)("p",null,"\u7ec4\u4ef6\u90e8\u7f72\u4fe1\u606f",(0,l.kt)("inlineCode",{parentName:"p"},"u4a_componentplan.yaml"),"\u5982\u4e0b:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: ComponentPlan\nmetadata:\n name: u4a-component\n namespace: u4a-system\nspec:\n approved: true\n name: u4a-component\n version: 0.1.5\n wait: true\n override:\n valuesFrom:\n - kind: ConfigMap\n name: u4acm\n valuesKey: "values.yaml"\n component:\n name: kubebb.u4a-component\n namespace: kubebb-system\n')),(0,l.kt)("p",null,"\u5176\u4e2d,\u7ec4\u4ef6",(0,l.kt)("inlineCode",{parentName:"p"},"U4A-Component"),"\u7684\u53c2\u6570\u901a\u8fc7",(0,l.kt)("inlineCode",{parentName:"p"},"ConfigMap"),"\u65b9\u5f0f\u6ce8\u5165\uff0c",(0,l.kt)("inlineCode",{parentName:"p"},"ConfigMap"),"\u7684\u521b\u5efa\u6d41\u7a0b\u53ef\u53c2\u8003",(0,l.kt)("a",{parentName:"p",href:"https://github.com/kubebb/components/tree/main/examples/u4a-component#install-u4a-component"},"U4A\u7ec4\u4ef6\u90e8\u7f72\u6d41\u7a0b")),(0,l.kt)("p",null,"\u901a\u8fc7\u4e00\u4e0b\u547d\u4ee4\u90e8\u7f72:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-shell"}," kubectl apply -nu4a-system -f u4a_componentplan.yaml\n")),(0,l.kt)("p",null,(0,l.kt)("inlineCode",{parentName:"p"},"U4A Component"),"\u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u53ef\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u67e5\u770b\u7ec4\u4ef6\u90e8\u7f72\u72b6\u6001:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-shell"}," kubectl get componentplan -nu4a-system u4a-component -oyaml\n")),(0,l.kt)("h3",{id:"5-\u8bbf\u95ee\u5e95\u5ea7\u670d\u52a1\u95e8\u6237"},"5. \u8bbf\u95ee\u5e95\u5ea7\u670d\u52a1\u95e8\u6237"),(0,l.kt)("p",null,"\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u83b7\u53d6\u95e8\u6237\u670d\u52a1\u7684\u8bbf\u95ee\u5730\u5740:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-shell"},"(base) \u279c ~ kubectl get ingress -nu4a-system\nNAME CLASS HOSTS ADDRESS PORTS AGE\nbff-server-ingress portal.172.18.0.2.nip.io 80, 443 4h55m\nbff-server-ingress-socket portal.172.18.0.2.nip.io 80, 443 4h55m\nkube-oidc-proxy-server-ingress k8s.172.18.0.2.nip.io 80, 443 4h55m\n")),(0,l.kt)("p",null,"\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee",(0,l.kt)("inlineCode",{parentName:"p"},"https://portal.172.18.0.2.nip.io"),"\u5373\u53ef\u8fdb\u5165\u670d\u52a1\u95e8\u6237\u3002\u9ed8\u8ba4\u7684\u7528\u6237\u540d\u5bc6\u7801\u4e3a"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"\u7528\u6237\u540d: ",(0,l.kt)("inlineCode",{parentName:"li"},"admin")),(0,l.kt)("li",{parentName:"ul"},"\u5bc6\u7801: ",(0,l.kt)("inlineCode",{parentName:"li"},"kubebb-admin"))),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"\u6ce8\u610f: \u7531\u4e8e\u4f7f\u7528\u4e86",(0,l.kt)("a",{parentName:"p",href:"https://nip.io/"},"nip.io"),"\u4f5c\u4e3a\u57df\u540d\u89e3\u6790\u670d\u52a1\uff0c\u56e0\u6b64\u9700\u8981\u5c06",(0,l.kt)("inlineCode",{parentName:"p"},"HOSTS"),"\u4e2d\u7684\u57df\u540d\u89e3\u6790\u5230",(0,l.kt)("inlineCode",{parentName:"p"},"ADDRESS"),"\u5bf9\u5e94\u7684IP\u5730\u5740\u4e0a\u3002")),(0,l.kt)("h2",{id:"\u5378\u8f7d"},"\u5378\u8f7d"),(0,l.kt)("h3",{id:"1-\u5378\u8f7du4a-component"},"1. \u5378\u8f7dU4A Component"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-shell"}," kubectl delete componentplan -nu4a-system u4a-component\n")),(0,l.kt)("h3",{id:"2-\u5378\u8f7dcluster-component"},"2. \u5378\u8f7dCluster Component"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-shell"}," kubectl delete componentplan -nu4a-system cluster-component\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b0dde2ea.81aa7886.js b/assets/js/b0dde2ea.81aa7886.js deleted file mode 100644 index 78dcfbd04..000000000 --- a/assets/js/b0dde2ea.81aa7886.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5093],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>b});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),m=s(r),d=a,b=m["".concat(c,".").concat(d)]||m[d]||p[d]||l;return r?n.createElement(b,o(o({ref:t},u),{},{components:r})):n.createElement(b,o({ref:t},u))}));function b(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[m]="string"==typeof e?e:a,o[1]=i;for(var s=2;s{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const l={sidebar_position:3},o="\u76d1\u63a7\u7ec4\u4ef6",i={unversionedId:"component-market/monitoring",id:"component-market/monitoring",title:"\u76d1\u63a7\u7ec4\u4ef6",description:"\u7b80\u4ecb",source:"@site/docs/component-market/monitoring.md",sourceDirName:"component-market",slug:"/component-market/monitoring",permalink:"/website/docs/component-market/monitoring",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"\u65e5\u5fd7\u7ec4\u4ef6",permalink:"/website/docs/component-market/logging"},next:{title:"\u533a\u5757\u94fe - \u8054\u76df\u94fe",permalink:"/website/docs/component-market/blockchain"}},c={},s=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u5b89\u88c5\u6b65\u9aa4",id:"\u5b89\u88c5\u6b65\u9aa4",level:3},{value:"\u524d\u7f6e\u6761\u4ef6",id:"\u524d\u7f6e\u6761\u4ef6",level:4},{value:"1.\u51c6\u5907\u955c\u50cf,push \u5230\u5bf9\u5e94\u73af\u5883\u7684 harbor \u4ed3\u5e93",id:"1\u51c6\u5907\u955c\u50cfpush-\u5230\u5bf9\u5e94\u73af\u5883\u7684-harbor-\u4ed3\u5e93",level:4},{value:"2.\u83b7\u53d6 helm \u5305\uff0c\u5e76\u89e3\u538b",id:"2\u83b7\u53d6-helm-\u5305\u5e76\u89e3\u538b",level:4},{value:"3.\u4fee\u6539 charts \u5305\u7684 values.yaml",id:"3\u4fee\u6539-charts-\u5305\u7684-valuesyaml",level:4},{value:"4.\u521b\u5efa namesapce",id:"4\u521b\u5efa-namesapce",level:4},{value:"5.\u751f\u6210 ca \u8bc1\u4e66(\u53ea\u6709 vmselect \u5f00\u542f\u4e86 sidecar\uff0c\u652f\u6301 oidc \u53c2\u6570\u65f6\u9700\u8981)",id:"5\u751f\u6210-ca-\u8bc1\u4e66\u53ea\u6709-vmselect-\u5f00\u542f\u4e86-sidecar\u652f\u6301-oidc-\u53c2\u6570\u65f6\u9700\u8981",level:4},{value:"6.helm install",id:"6helm-install",level:4},{value:"7.\u68c0\u67e5\u7ec4\u4ef6\u662f\u5426\u8fd0\u884c\u6210\u529f",id:"7\u68c0\u67e5\u7ec4\u4ef6\u662f\u5426\u8fd0\u884c\u6210\u529f",level:4},{value:"8.\u529f\u80fd\u9a8c\u8bc1",id:"8\u529f\u80fd\u9a8c\u8bc1",level:4}],u={toc:s},m="wrapper";function p(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u76d1\u63a7\u7ec4\u4ef6"},"\u76d1\u63a7\u7ec4\u4ef6"),(0,a.kt)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.kt)("p",null,"\u8be5\u76d1\u63a7\u90e8\u7f72\u5305\u7528\u4e8e\u5b89\u88c5\u76d1\u63a7\u7cfb\u7edf\u7cfb\u7edf\u7684\u7ec4\u4ef6\uff0c\u9ed8\u8ba4\u5b89\u88c5 monitoring-operator\u3001victoriametrics,\u9009\u88c5 node-exporter\u3001metrics-server\u3001kube-state-metrics\u3001grafana,\u96c6\u7fa4\u5df2\u6709\u7684\u7ec4\u4ef6\u4e0d\u9700\u8981\u5b89\u88c5;\n\u5404\u4e2a\u7ec4\u4ef6\u7684\u4f5c\u7528\u5982\u4e0b\uff1a"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"node-exporter\uff1a\u91c7\u96c6\u5230\u4e3b\u673a\u7684\u8fd0\u884c\u6307\u6807\u5982 CPU\u3001\u5185\u5b58\u3001\u78c1\u76d8\u7b49\u4fe1\u606f\uff1b"),(0,a.kt)("li",{parentName:"ul"},"victoriametrics\uff1a\u4e00\u4e2a\u5feb\u901f\u9ad8\u6548\u3001\u7ecf\u6d4e\u5e76\u4e14\u53ef\u6269\u5c55\u7684\u76d1\u63a7\u89e3\u51b3\u65b9\u6848\u548c\u65f6\u5e8f\u6570\u636e\u5e93,\u8d1f\u8d23\u76d1\u63a7\u6570\u636e\u7684\u6293\u53d6\u3001\u5b58\u50a8\u3001\u67e5\u8be2\uff0c\u5e76\u53ef\u4ee5\u6839\u636e\u544a\u8b66\u89c4\u5219\u89e6\u53d1\u544a\u8b66\uff1b"),(0,a.kt)("li",{parentName:"ul"},"metrics-server\uff1a Kubernetes \u96c6\u7fa4\u6838\u5fc3\u76d1\u63a7\u6570\u636e\u7684\u805a\u5408\u5668\uff0c\u5b9a\u65f6\u4ece Kubelet \u7684 Summary API \u91c7\u96c6\u6307\u6807\u4fe1\u606f\uff09\uff0c\u53ef\u4ee5\u901a\u8fc7 Metrics API \u7684\u5f62\u5f0f\u83b7\u53d6 Metrics \u6570\u636e\uff1b"),(0,a.kt)("li",{parentName:"ul"},"kube-state-metrics\uff1a\u91c7\u96c6 deployment\uff0cPod\u3001daemonset\u3001cronjob \u7b49 k8s \u8d44\u6e90\u5bf9\u8c61\u7684\u76d1\u63a7\u6570\u636e\uff0c\u63d0\u4f9b\u76d1\u63a7\u6307\u6807\uff1b"),(0,a.kt)("li",{parentName:"ul"},"grafana:\u4e00\u4e2a\u53ef\u89c6\u5316\u5de5\u5177\uff0c\u5b83\u63d0\u4f9b\u4e86\u5f3a\u5927\u548c\u4f18\u96c5\u7684\u65b9\u5f0f\u53bb\u521b\u5efa\u3001\u5171\u4eab\u3001\u6d4f\u89c8\u6570\u636e\uff0c\u5e76\u63d0\u4f9b\u4e86\u5f88\u591a\u6f02\u4eae\u7684\u6a21\u677f\uff0c\u5f53\u9700\u8981\u76f4\u63a5\u67e5\u770b\u76d1\u63a7\u6570\u636e\u65f6\u5019\uff0c\u53ef\u4ee5\u88c5\u4e0a\uff1b"),(0,a.kt)("li",{parentName:"ul"},"monitoring-operator: \u8d1f\u8d23\u7ba1\u7406\u4e0a\u8ff0\u76d1\u63a7\u7ec4\u4ef6.")),(0,a.kt)("h3",{id:"\u5b89\u88c5\u6b65\u9aa4"},"\u5b89\u88c5\u6b65\u9aa4"),(0,a.kt)("h4",{id:"\u524d\u7f6e\u6761\u4ef6"},"\u524d\u7f6e\u6761\u4ef6"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u5982\u679c\u76d1\u63a7\u7ec4\u4ef6 vmselect \u5982\u679c\u5f00\u542f\u4e86 sidecar\uff0ckube-rbac-proxy \u652f\u6301 OIDC\uff0c\u5219\u9700\u8981\u63d0\u524d\u90e8\u7f72\u597d OIDC \u76f8\u5173\u7684\u5185\u5bb9\uff0c\u53ef\u4ee5\u901a\u8fc7\u6267\u884c"),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre"},"kubectl get pod -n u4a-system\n")),(0,a.kt)("p",{parentName:"li"},"\u67e5\u770b\u662f\u5426\u6709 oidc-server\uff0c\u68c0\u67e5\u76f8\u5173\u7ec4\u4ef6\u662f\u5426\u5df2\u7ecf\u5b89\u88c5\u597d\uff1b")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u5982\u679c\u9700\u8981\u4f7f\u7528 ingress\uff0c\u5219\u9700\u8981\u63d0\u524d\u90e8\u7f72\u597d ingress-controller\uff1b")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"vmstorage \u9700\u8981\u8fdb\u884c\u6570\u636e\u6301\u4e45\u5316\uff0c\u9700\u8981\u63d0\u524d\u51c6\u5907\u597d StorageClass\uff1b")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u521b\u5efa\u597d Group observability\uff0c\u8be5\u7ec4\u5177\u6709\u8bbf\u95ee\u76d1\u63a7\u6570\u636e\u7684\u6743\u9650\uff1b"))),(0,a.kt)("h4",{id:"1\u51c6\u5907\u955c\u50cfpush-\u5230\u5bf9\u5e94\u73af\u5883\u7684-harbor-\u4ed3\u5e93"},"1.\u51c6\u5907\u955c\u50cf,push \u5230\u5bf9\u5e94\u73af\u5883\u7684 harbor \u4ed3\u5e93"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u9700\u8981\u4ee5\u4e0b\u955c\u50cf")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"# \u4e3b\u8981\u5165\u53e3 operator\nhub.tenxcloud.com/kubebb/monitoring-operator:v0.1.2\n\n# vm \u793e\u533a\u76f8\u5173\u955c\u50cf\nhub.tenxcloud.com/kubebb/vm-operator:v0.35.1\nhub.tenxcloud.com/kubebb/vminsert:v1.91.3-cluster\nhub.tenxcloud.com/kubebb/vmstorage:v1.91.3-cluster\nhub.tenxcloud.com/kubebb/vmselect:v1.91.3-cluster\nhub.tenxcloud.com/kubebb/vmagent:v1.91.3\nhub.tenxcloud.com/kubebb/vmalert:v1.91.3\n\n# \u5176\u4ed6\u4f9d\u8d56\u955c\u50cf\nhub.tenxcloud.com/kubebb/kube-rbac-proxy:v0.13.0-32f11472\nhub.tenxcloud.com/kubebb/node-exporter:v2.5.0\nhub.tenxcloud.com/kubebb/configmap-reload:v0.3.0\nhub.tenxcloud.com/kubebb/prometheus-config-reloader:v0.58.0\nhub.tenxcloud.com/kubebb/prom-rule-reloader:v0.1.2\nhub.tenxcloud.com/kubebb/alertmanager:v0.20.0\nhub.tenxcloud.com/kubebb/kube-state-metrics:v1.9.7 (\u9009\u88c5)\nhub.tenxcloud.com/kubebb/metrics-server:v0.4.1 (\u9009\u88c5)\nhub.tenxcloud.com/kubebb/grafana:10.0.2\uff08\u9009\u88c5\uff09\n")),(0,a.kt)("h4",{id:"2\u83b7\u53d6-helm-\u5305\u5e76\u89e3\u538b"},"2.\u83b7\u53d6 helm \u5305\uff0c\u5e76\u89e3\u538b"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"tar zxvf monitoring-operator-0.1.0.tgz\ncd monitoring-operator\n")),(0,a.kt)("h4",{id:"3\u4fee\u6539-charts-\u5305\u7684-valuesyaml"},"3.\u4fee\u6539 charts \u5305\u7684 values.yaml"),(0,a.kt)("p",null,"\u53c2\u7167 values.yaml \u91cc\u9762\u7684\u6ce8\u91ca\uff0c\u4e3b\u8981\u6709\u4ee5\u4e0b\u5185\u5bb9\u9700\u8981\u4fee\u6539\uff1a"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u6839\u636e\u5b9e\u9645\u73af\u5883\uff0c\u4fee\u6539\u955c\u50cf\u5730\u5740\uff1b"),(0,a.kt)("li",{parentName:"ul"},"\u5e26\u6709 enabled \u7684\u662f\u53ef\u4ee5\u63a7\u5236\u6539\u7ec4\u4ef6\u662f\u5426\u53ef\u4ee5\u542f\u7528\uff0cfalse \u5219\u4e0d\u5b89\u88c5\uff0ctrue \u4f1a\u5b89\u88c5\uff0c\u6ca1\u6709 enabled \u53c2\u6570\u4f1a\u9ed8\u8ba4\u88c5\u4e0a\uff1b"),(0,a.kt)("li",{parentName:"ul"},"\u5982\u679c\u5f00\u542f nodePort\uff0c\u5148\u68c0\u67e5\u7aef\u53e3\u662f\u5426\u88ab\u5360\u7528\uff0c\u4e0d\u4f7f\u7528\u8bbe\u7f6e\u4e3a 0 \u5373\u53ef\uff1b"),(0,a.kt)("li",{parentName:"ul"},"\u5982\u679c\u5f00\u542f ingress\uff0c\u9700\u8981\u4fee\u6539 ingress \u8d44\u6e90\u7684\u6ce8\u89e3\uff0c\u6ce8\u89e3 key \u662f kubernetes.io/ingress.class\u3002\u6ce8\u89e3\u7684\u503c\u53ef\u4ee5\u67e5\u770b ingress-controller \u7684 deploy \u91cc\u9762\u7684 args \u53c2\u6570\uff0c\u5982",(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre"},"kubeclt edit deploy -n kube-system ingress-urygcdmyts\n")),"\u53d6 args \u91cc\u9762\u7684\u503c- --ingress-class=nginx-ingress-urygcdmyts\uff0cnginx-ingress-urygcdmyts \u5c31\u662f\u8981\u586b\u5165\u6ce8\u89e3\u7684\u503c\uff1b ")),(0,a.kt)("h4",{id:"4\u521b\u5efa-namesapce"},"4.\u521b\u5efa namesapce"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"kubectl --as=admin --as-group=iam.tenxcloud.com create -f - < oidc-sidecar-secret.yaml\n\n\u4fee\u6539 yaml \u7684 namesapce \u4e3a addon-system\uff0c\u521b\u5efa\u4e00\u4e2a\u65b0\u7684 secret\n\nkubectl create -f oidc-sidecar-secret.yaml\n")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"oidcIssuer,oidcClientID \u53c2\u6570\u7684\u83b7\u53d6")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"kubectl get cm -n u4a-system oidc-server -o yaml\n")),(0,a.kt)("p",null,"oidcIssuer \u53d6\u5176\u4e2d\u7684 issuer \u7684\u5185\u5bb9\u5373\u53ef\uff0c\u6bd4\u5982\uff1a",(0,a.kt)("a",{parentName:"p",href:"https://oidc.192.168.90.217.nip.io"},"https://oidc.192.168.90.217.nip.io")),(0,a.kt)("p",null,"oidcClientID \u53d6\u5176\u4e2d\u7684 staticClients \u4e0b\u7684 id \u5185\u5bb9\u5373\u53ef\uff0c\u6bd4\u5982 bff-client"),(0,a.kt)("h4",{id:"6helm-install"},"6.helm install"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u6267\u884c helm \u547d\u4ee4\uff0cmonitoring-operator \u662f\u5e94\u7528\u7684\u540d\u79f0\uff0c\u6839\u636e\u5b9e\u9645\u9700\u8981\u4fee\u6539")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"helm install monitoring-operator -n addon-system ./\n")),(0,a.kt)("h4",{id:"7\u68c0\u67e5\u7ec4\u4ef6\u662f\u5426\u8fd0\u884c\u6210\u529f"},"7.\u68c0\u67e5\u7ec4\u4ef6\u662f\u5426\u8fd0\u884c\u6210\u529f"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"kubectl get po -n addon-system\n")),(0,a.kt)("p",null,"\u68c0\u67e5\u7684 Pod \u662f\u5426\u6b63\u5e38\u8fd0\u884c\uff1b"),(0,a.kt)("h4",{id:"8\u529f\u80fd\u9a8c\u8bc1"},"8.\u529f\u80fd\u9a8c\u8bc1"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u90e8\u7f72\u6210\u529f\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7 ingress \u5730\u5740\u53bb\u65b9\u5f0f\u8bbf\u95ee\u6570\u636e,\u67e5\u770b ingress \u7684 hosts \u5730\u5740\u547d\u4ee4\u5982\u4e0b\uff1a"),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre"},"kubectl -n addon-system get ingress\n")),(0,a.kt)("p",{parentName:"li"}," \u5982\u679c vmselect \u5f00\u542f\u4e86 nodePort\uff0c\u90a3\u4e48\u4e5f\u53ef\u4ee5\u901a\u8fc7\u4e3b\u673a IP\uff1anodePort \u7684\u65b9\u5f0f\u53bb\u8bbf\u95ee\u76d1\u63a7\u6570\u636e")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u5c06\u7528\u6237\u52a0\u5165\u7ec4 observability\uff0c\u8be5\u7ec4\u5177\u6709\u8bbf\u95ee\u76d1\u63a7\u6570\u636e\u7684\u6743\u9650\uff0c\u83b7\u53d6\u7528\u6237 token\uff0c\u8bbf\u95ee\u76d1\u63a7\u6570\u636e\u5e26\u4e0a token\uff0c\u9a8c\u8bc1\u6743\u9650\uff0c\u6ca1\u6709\u6743\u9650\u5219\u51fa\u73b0 Unauthorized;\n\u8bf7\u6c42\u547d\u4ee4\u53c2\u8003\uff1a"),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre"},'curl -k "monitoring.192.168.90.217.nip.io/select/0/prometheus/api/v1/query" -d "query=up" -H"Authorization: bearer eyJhbGciOi..."\n')))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b42f4d8b.15dce42f.js b/assets/js/b42f4d8b.15dce42f.js deleted file mode 100644 index 58a5e64b5..000000000 --- a/assets/js/b42f4d8b.15dce42f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4456],{9037:e=>{e.exports=JSON.parse('{"title":"\u7528\u6237\u6307\u5357","description":"\u7528\u6237\u6307\u5357","slug":"/category/\u7528\u6237\u6307\u5357","permalink":"/website/docs/category/\u7528\u6237\u6307\u5357","navigation":{"previous":{"title":"\u7ec4\u4ef6\u8bc4\u6d4b","permalink":"/website/docs/core/concepts/rating"},"next":{"title":"\u542f\u7528Rating","permalink":"/website/docs/core/userguide/enablerating"}}}')}}]); \ No newline at end of file diff --git a/assets/js/b46b210f.08354fdf.js b/assets/js/b46b210f.08354fdf.js deleted file mode 100644 index 0a187255f..000000000 --- a/assets/js/b46b210f.08354fdf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8841],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var o=r.createContext({}),c=function(e){var t=r.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(o.Provider,{value:t},e.children)},s="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,o=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),s=c(n),d=a,k=s["".concat(o,".").concat(d)]||s[d]||m[d]||i;return n?r.createElement(k,l(l({ref:t},u),{},{components:n})):r.createElement(k,l({ref:t},u))}));function k(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,l=new Array(i);l[0]=d;var p={};for(var o in t)hasOwnProperty.call(t,o)&&(p[o]=t[o]);p.originalType=e,p[s]="string"==typeof e?e:a,l[1]=p;for(var c=2;c{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>l,default:()=>m,frontMatter:()=>i,metadata:()=>p,toc:()=>c});var r=n(7462),a=(n(7294),n(3905));const i={sidebar_position:5},l="\u6269\u5c55\u8d44\u6e90(\u5e95\u5ea7)",p={unversionedId:"core/concepts/buildingbase_resources",id:"core/concepts/buildingbase_resources",title:"\u6269\u5c55\u8d44\u6e90(\u5e95\u5ea7)",description:"\u5e95\u5ea7\u6269\u5c55\u8d44\u6e90\u7528\u4e8e\u9002\u914d\u5e95\u5ea7\u7684\u95e8\u6237\u670d\u52a1,\u4e0d\u6d89\u53ca\u6838\u5fc3\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u3002\u76ee\u524d\u4e3b\u8981\u6709\u4e24\u79cd:",source:"@site/docs/core/concepts/buildingbase_resources.md",sourceDirName:"core/concepts",slug:"/core/concepts/buildingbase_resources",permalink:"/website/docs/core/concepts/buildingbase_resources",draft:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6\u8ba2\u9605",permalink:"/website/docs/core/concepts/subscription"},next:{title:"\u7ec4\u4ef6\u8bc4\u6d4b",permalink:"/website/docs/core/concepts/rating"}},o={},c=[{value:"Menu",id:"menu",level:2},{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49",level:3},{value:"\u95e8\u6237\u8def\u7531",id:"\u95e8\u6237\u8def\u7531",level:2},{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49-1",level:3}],u={toc:c},s="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(s,(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u6269\u5c55\u8d44\u6e90\u5e95\u5ea7"},"\u6269\u5c55\u8d44\u6e90(\u5e95\u5ea7)"),(0,a.kt)("p",null,"\u5e95\u5ea7\u6269\u5c55\u8d44\u6e90\u7528\u4e8e\u9002\u914d\u5e95\u5ea7\u7684\u95e8\u6237\u670d\u52a1,\u4e0d\u6d89\u53ca\u6838\u5fc3\u7684",(0,a.kt)("strong",{parentName:"p"},"\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406"),"\u3002\u76ee\u524d\u4e3b\u8981\u6709\u4e24\u79cd:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"Menu"),": \u95e8\u6237\u83dc\u5355"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"Portal"),": \u95e8\u6237\u8def\u7531")),(0,a.kt)("h2",{id:"menu"},"Menu"),(0,a.kt)("p",null,"\u83dc\u5355\u662f",(0,a.kt)("a",{parentName:"p",href:"../../building-base/configuration/customize-menu"},"\u5e95\u5ea7\u95e8\u6237"),"\u8d44\u6e90\uff0c\u7528\u4e8e\u4e0e\u5fae\u524d\u7aef\u9875\u9762\u7ed3\u5408\uff0c\u5b9e\u73b0\u53ef\u5b9a\u5236\u5316\u7684\u95e8\u6237\u83dc\u5355\u3002"),(0,a.kt)("h3",{id:"\u5b9a\u4e49"},"\u5b9a\u4e49"),(0,a.kt)("p",null,"\u4ee3\u7801\u5b9a\u4e49\u4f4d\u4e8e ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/kubebb/core/blob/main/api/v1alpha1/menu_types.go"},"Menus"),",\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4e0b:"),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u8bf4\u660e \u5bf9\u4e8e\u4e0b\u9762\u7684 yaml\uff0c\u6211\u4eec\u60f3\u8981\u8bbf\u95ee bar \u5b57\u6bb5\uff0c\u4e66\u5199\u683c\u5f0f\u4e3a ",(0,a.kt)("inlineCode",{parentName:"p"},"spec.foo.bar")),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"spec:\n foo:\n bar: xx\n"))),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.id"),": \u83dc\u5355\u7ec4ID"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.text"),": \u83dc\u5355\u4e2d\u6587\u540d\u79f0"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.textEn"),": \u83dc\u5355\u82f1\u6587\u540d\u79f0"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.column"),": \u83dc\u5355\u7ec4\u6240\u5728\u5217\u5e8f\u53f7"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.rankingInColumn"),": \u83dc\u5355\u5728\u5f53\u524d\u7ec4\u4e2d\u7684\u6392\u5e8f\uff0c\u6570\u5b57\u8d8a\u5c0f\u8d8a\u9760\u524d"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.icon"),": \u83dc\u5355\u56fe\u6807"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.replaceSiderBackNextPathnamePattern"),": \u7ed9\u66ff\u6362\u83dc\u5355\u7684\u8fd4\u56de\u6309\u94ae\u4f7f\u7528\uff0c\u5f53\u65b0\u7684 pathname \u662f\u66ff\u6362\u83dc\u5355\uff0c\u4e14\u66ff\u6362\u83dc\u5355\u7684\u8fd4\u56de\u6309\u94ae\u9700\u8981\u8fd4\u56de\u5230\u5f53\u524d pathname \u65f6\uff0c\u914d\u7f6e\u6b64\u5c5e\u6027"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.pathname"),": \u83dc\u5355\u8def\u7531"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.redirect"),": \u8df3\u8f6c\u83dc\u5355\u8def\u7531\uff0c\u4f18\u5148\u7ea7\u9ad8\u4e8e pathname\uff0c\u6307\u5b9a\u540e\u70b9\u51fb\u83dc\u5355\u4f1a\u8df3\u8f6c\u5230 redirect \u76f8\u5e94\u8def\u7531"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.target"),": \u540c a \u6807\u7b7e\u7684 target \u5c5e\u6027"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.requiredRoles"),": \u83dc\u5355\u53ef\u89c1\u9700\u8981\u7684\u89d2\u8272"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.requiredModuleBits"),": \u83dc\u5355\u53ef\u5bf9\u5e94\u7684 module \u4e8c\u8fdb\u5236\u4f4d (\u6709\u4e00\u4e2a\u6ee1\u8db3\u5373\u53ef\u89c1)"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.tenant"),": \u83dc\u5355\u5bf9\u5e94\u8def\u7531\u662f\u5426\u53ef\u4ee5\u5207\u6362\u79df\u6237"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.project"),": \u83dc\u5355\u5bf9\u5e94\u8def\u7531\u662f\u5426\u53ef\u4ee5\u5207\u6362\u9879\u76ee"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.cluster"),": \u83dc\u5355\u5bf9\u5e94\u8def\u7531\u662f\u5426\u53ef\u4ee5\u5207\u6362\u96c6\u7fa4"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.isRenderSelectCurrent"),": \u662f\u5426\u6e32\u67d3\u9009\u62e9\u9879\u76ee\u3001\u96c6\u7fa4"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.useChildrenReplaceSider"),": \u662f\u5426\u5728\u8fdb\u5165\u5b50\u9875\u9762\u540e\u5c06 sider \u66ff\u6362"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.getTitleForReplaceSider"),": \u83b7\u53d6 title \u7684\u51fd\u6570"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.parent"),": \u7236\u83dc\u5355 ID"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.parentOwnerReferences"),": \u7236\u83dc\u5355\u4f9d\u8d56"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.disabled"),": menu \u663e\u793a\u63a7\u5236")),(0,a.kt)("h2",{id:"\u95e8\u6237\u8def\u7531"},"\u95e8\u6237\u8def\u7531"),(0,a.kt)("p",null,"\u95e8\u6237\u8def\u7531\u662f",(0,a.kt)("a",{parentName:"p",href:"../../building-base/configuration/customize-menu"},"\u5e95\u5ea7\u95e8\u6237"),"\u8d44\u6e90,\u7528\u4e8e\u914d\u7f6e\u8bbf\u95ee\u8def\u5f84\u3002"),(0,a.kt)("h3",{id:"\u5b9a\u4e49-1"},"\u5b9a\u4e49"),(0,a.kt)("p",null,"\u4ee3\u7801\u5b9a\u4e49\u4f4d\u4e8e ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/kubebb/core/blob/main/api/v1alpha1/portal_types.go"},"Menus"),",\u8be6\u7ec6\u4ecb\u7ecd\u5982\u4e0b:"),(0,a.kt)("admonition",{type:"tip"},(0,a.kt)("p",{parentName:"admonition"},"\u8bf4\u660e \u5bf9\u4e8e\u4e0b\u9762\u7684 yaml\uff0c\u6211\u4eec\u60f3\u8981\u8bbf\u95ee bar \u5b57\u6bb5\uff0c\u4e66\u5199\u683c\u5f0f\u4e3a ",(0,a.kt)("inlineCode",{parentName:"p"},"spec.foo.bar")),(0,a.kt)("pre",{parentName:"admonition"},(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"spec:\n foo:\n bar: xx\n"))),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.path"),": \u8bf7\u6c42\u7684\u8bbf\u95ee\u8def\u5f84"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"spec.entry"),": \u9759\u6001\u8d44\u6e90\u7684\u8bbf\u95ee\u8def\u5f84")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b4e8507e.26631dc4.js b/assets/js/b4e8507e.26631dc4.js new file mode 100644 index 000000000..41b1a511c --- /dev/null +++ b/assets/js/b4e8507e.26631dc4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6355],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=a.createContext({}),c=function(e){var t=a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(o.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},d=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,o=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),m=c(n),d=r,k=m["".concat(o,".").concat(d)]||m[d]||p[d]||s;return n?a.createElement(k,l(l({ref:t},u),{},{components:n})):a.createElement(k,l({ref:t},u))}));function k(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,l=new Array(s);l[0]=d;var i={};for(var o in t)hasOwnProperty.call(t,o)&&(i[o]=t[o]);i.originalType=e,i[m]="string"==typeof e?e:r,l[1]=i;for(var c=2;c{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>l,default:()=>p,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var a=n(7462),r=(n(7294),n(3905));const s={sidebar_position:2},l="\u65e5\u5fd7\u7ec4\u4ef6",i={unversionedId:"develop-guid/component-market/logging",id:"develop-guid/component-market/logging",title:"\u65e5\u5fd7\u7ec4\u4ef6",description:"* ingress+rbac(\u63a8\u8350\u6a21\u5f0f)",source:"@site/docs/develop-guid/component-market/logging.md",sourceDirName:"develop-guid/component-market",slug:"/develop-guid/component-market/logging",permalink:"/website/docs/develop-guid/component-market/logging",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"kubedashboard \u7ba1\u7406\u5de5\u5177",permalink:"/website/docs/develop-guid/component-market/kubedashboard"},next:{title:"\u76d1\u63a7\u7ec4\u4ef6",permalink:"/website/docs/develop-guid/component-market/monitoring"}},o={},c=[{value:"\u529f\u80fd\u63cf\u8ff0",id:"\u529f\u80fd\u63cf\u8ff0",level:3},{value:"values \u5b57\u6bb5\u89e3\u91ca",id:"values-\u5b57\u6bb5\u89e3\u91ca",level:3},{value:"\u5b89\u88c5\u6d4b\u8bd5",id:"\u5b89\u88c5\u6d4b\u8bd5",level:2},{value:'1. \u4f7f\u7528 ingress \u4e0e RBAC \u8ba4\u8bc1\u65b9\u5f0f',id:"1-\u4f7f\u7528-ingress-\u4e0e-rbac-\u8ba4\u8bc1\u65b9\u5f0f",level:3},{value:"\u4f9d\u8d56\u955c\u50cf",id:"\u4f9d\u8d56\u955c\u50cf",level:4},{value:"\u8c03\u6574values.yml",id:"\u8c03\u6574valuesyml",level:4},{value:"\u90e8\u7f72 elasticsearch",id:"\u90e8\u7f72-elasticsearch",level:4},{value:"\u8bbf\u95ee elasticsearch",id:"\u8bbf\u95ee-elasticsearch",level:4},{value:'2. ingress \u4e0b\u4e0d\u5f00\u542f RBAC \u8ba4\u8bc1',id:"2-ingress-\u4e0b\u4e0d\u5f00\u542f-rbac-\u8ba4\u8bc1",level:3},{value:"\u51c6\u5907\u955c\u50cf(\u53c2\u8003\u4e4b\u524d\u7684\u955c\u50cf)",id:"\u51c6\u5907\u955c\u50cf\u53c2\u8003\u4e4b\u524d\u7684\u955c\u50cf",level:4},{value:"\u8c03\u6574values.yml",id:"\u8c03\u6574valuesyml-1",level:4},{value:"\u8bbf\u95ee elasticsearch",id:"\u8bbf\u95ee-elasticsearch-1",level:4}],u={toc:c},m="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(m,(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u65e5\u5fd7\u7ec4\u4ef6"},"\u65e5\u5fd7\u7ec4\u4ef6"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#1-%E4%BD%BF%E7%94%A8-ingress-%E4%B8%8E-rbac-%E8%AE%A4%E8%AF%81%E6%96%B9%E5%BC%8F"},"ingress+rbac(\u63a8\u8350\u6a21\u5f0f)")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("a",{parentName:"li",href:"#2-ingress-%E4%B8%8B%E4%B8%8D%E5%BC%80%E5%90%AF-rbac-%E8%AE%A4%E8%AF%81"},"ingress-without-auth"))),(0,r.kt)("h3",{id:"\u529f\u80fd\u63cf\u8ff0"},"\u529f\u80fd\u63cf\u8ff0"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"helm package\u5305\u542b\u4e86\u5b89\u88c5elasticsearch\u548c\u5bf9\u5916\u66b4\u9732elasticsearch\u670d\u52a1\u7684ingress\u8d44\u6e90\u6587\u4ef6;")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"\u652f\u6301\u914d\u7f6e\u7684\u7ec4\u4ef6\u5305\u62ec\u4ee5\u4e0b\u51e0\u4e2a:"),(0,r.kt)("blockquote",{parentName:"li"},(0,r.kt)("ul",{parentName:"blockquote"},(0,r.kt)("li",{parentName:"ul"},"rbacSidecar(.Values.rbacSidecar.enabled)\uff1a\u5728elasticsearch client \u8282\u70b9\u4e0a\u5b89\u88c5 kube-rbac-proxy sidecar \u7528\u6765\u8ba4\u8bc1\u7528\u6237 token"),(0,r.kt)("li",{parentName:"ul"},"ingress(.Values.ingress.enabled)\uff1a\u901a\u8fc7 ingress \u66b4\u9732 elasticsearch \u670d\u52a1\uff0c\u6309\u9700\u5f00\u542f\uff0c\u9ed8\u8ba4\u4e3a true")))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"rbacSidecar \u548c elasticsearch.secure \u4ec5\u80fd\u4f7f\u7528\u5176\u4e2d\u4e00\u79cd\uff0c\u6bd4\u5982:"),(0,r.kt)("blockquote",{parentName:"li"},(0,r.kt)("ul",{parentName:"blockquote"},(0,r.kt)("li",{parentName:"ul"},".Values.rbacSidecar.enabled: true, .Values.elasticsearch.secure: false"),(0,r.kt)("li",{parentName:"ul"},".Values.rbacSidecar.enabled: false, .Values.elasticsearch.secure: true"))))),(0,r.kt)("h3",{id:"values-\u5b57\u6bb5\u89e3\u91ca"},"values \u5b57\u6bb5\u89e3\u91ca"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'operatorName: elasticsearch-operator # operator\u540d\u79f0\nnamespace: addon-system #operator\u90e8\u7f72\u7684ns,\u9700\u8981\u6839\u636e\u5177\u4f53\u60c5\u51b5\u8bbe\u7f6e \nwatchNamespace: addon-system #operator watch\u7684ns(\u76ee\u524d\u5e94\u8be5\u662fcluster scope)\uff0c\u9700\u8981\u6839\u636e\u5177\u4f53\u60c5\u51b5\u8bbe\u7f6e\nreplicaCount: 1\n\nkubectlImage: hub.tenxcloud.com/system_containers/kubectl:v1.20.8 #kubectl\u955c\u50cf, \u7528\u6765\u6267\u884c\u4e00\u4e9b\u547d\u4ee4\n\nimage:\n repository: hub.tenxcloud.com/system_containers/elasticsearch-operator:v5.4.1 #operator\u955c\u50cf\u5730\u5740\n pullPolicy: IfNotPresent\n\nserviceAccount: #\u4e0d\u7528\u5904\u7406\n create: true\n annotations: {}\n name: "elasticsearch-operator" #\u4e0d\u7528\u5904\u7406\n\nelasticsearch: #\u90e8\u7f72elasticsearch\u7684\u65f6\u5019\u7684\u914d\u7f6e\n name: es #\u8d44\u6e90\u540d\u79f0\n namespace: addon-system #\u90e8\u7f72\u5728\u54ea\u4e2anamespace\n affinity: #\u4e0d\u7528\u5904\u7406\n allInOne: true #\u5982\u679c\u662f\u5355\u673a\u90e8\u7f72 \u914d\u7f6e\u4e3atrue \u96c6\u7fa4\u914d\u7f6e\u4e3afalse\n clientNodeReplicas: 1 #\u5982\u679c\u96c6\u7fa4\u6a21\u5f0f es client\u7684\u4e2a\u6570\n masterNodeReplicas: 1 #\u5982\u679c\u96c6\u7fa4\u6a21\u5f0f es master\u7684\u4e2a\u6570\n dataNodeReplicas: 1 #\u5982\u679c\u96c6\u7fa4\u6a21\u5f0f es data\u7684\u4e2a\u6570\n dataDiskSize: 50Gi #elasticsearch data pod\u78c1\u76d8\u5927\u5c0f\n elasticSearchImage: hub.tenxcloud.com/system_containers/elasticsearch:7.10.1-ik #elasticsearch\u955c\u50cf\u5730\u5740\n enabled: true\n secure: true\n javaOptions: -Xms1g -Xmx1g #JVM \u5806\u6808\u914d\u7f6e\uff0c\u6839\u636e\u9700\u8981\u8c03\u6574\n masterDiskSize: 1Gi #elasticsearch master pod\u78c1\u76d8\u5927\u5c0f\n resources:\n limits:\n cpu: "1"\n memory: 2Gi\n requests:\n cpu: "1"\n memory: 2Gi\n storage:\n storageClass: openebs-hostpath # \u914d\u7f6e\u96c6\u7fa4\u5185\u53ef\u7528\u7684 storageclass\n\nrbacSidecar: #kube-rbac-proxy\u914d\u7f6e\n enabled: false \n image: hub.tenxcloud.com/system_containers/kube-rbac-proxy:v0.13.0-32f11472 #kube-rbac-proxy\u955c\u50cf\u5730\u5740\n imagePullPolicy: IfNotPresent\n args: #kube-rbac-proxy\u542f\u52a8\u53c2\u6570\n - "--secure-listen-address=0.0.0.0:8443"\n - "--upstream=http://127.0.0.1:9200"\n - "--logtostderr=true"\n - "--oidc-issuer=https://oidc.172.22.96.16.nip.io" #\u8fd9\u91cc\u662foidc-server\u7684\u5730\u5740,\u9700\u8981\u6839\u636e\u5177\u4f53\u73af\u5883\u914d\u7f6e\n - "--oidc-clientID=bff-client" #\u9700\u8981\u6839\u636e\u5177\u4f53\u73af\u5883\u914d\u7f6e,\u4fdd\u6301\u4e0d\u53d8\u5373\u53ef\n - "--oidc-ca-file=/etc/oidc-server/tls/ca.crt" #\u9700\u8981\u6839\u636e\u5177\u4f53\u73af\u5883\u914d\u7f6e,\u4fdd\u6301\u4e0d\u53d8\u5373\u53ef\n - "--token-passthrough"\n - "--v=1"\n resources:\n limits:\n cpu: "1"\n memory: 1Gi\n requests:\n cpu: 500m\n memory: 512Mi\n\nfluentd: #fluentd\u914d\u7f6e\n enabled: true #\u662f\u5426\u5f00\u542ffluentd\n withAuditLog: true #fluend\u662f\u5426\u6536\u96c6audit\u65e5\u5fd7\n affinity:\n nodeAffinity:\n requiredDuringSchedulingIgnoredDuringExecution:\n nodeSelectorTerms:\n - matchExpressions:\n - key: node-role.kubernetes.io/agent\n operator: DoesNotExist\n image: hub.tenxcloud.com/system_containers/fluentd-elk:v5.0-kfk\n imagePullPolicy: IfNotPresent\n resources:\n limits:\n cpu: "1"\n memory: 2Gi\n requests:\n cpu: 100m\n memory: 256Mi\n tolerations:\n - effect: NoSchedule\n operator: Exists\n - effect: NoExecute\n operator: Exists\n\ningress: \n enabled: true\n className: "" # 1.33\u7248\u672c\u7684ingress,\u4f7f\u7528className\uff0cannotations\u9700\u8981\u53bb\u6389kubernetes.io/ingress.class\u6ce8\u89e3\n ingressName: "ingress-es"\n annotations:\n # 0.44\u7248\u672c\u7684ingress\uff0c\u4f7f\u7528\u6ce8\u89e3\u7684\u65b9\u5f0f\uff0c\u8fd9\u4e2a\u6ce8\u89e3\u7684\u503c\u6839\u636eingress-controller\u91cc\u9762\u914d\u7f6e\u7684\u503c\u6765\u786e\u5b9a\n ingressClass: nginx-ingress-wwixjqtizm #\u9700\u8981\u6839\u636e\u5177\u4f53\u73af\u5883\u914d\u7f6e\n # kubernetes.io/tls-acme: "true"\n labels: {}\n hosts:\n - host: logging.nip.io #\u8fd9\u91cc\u662felasticsearch\u901a\u8fc7ingress\u66b4\u9732\u51fa\u6765\u7684host,\u547d\u540d\u89c4\u8303logging..nip.io,\u8fd9\u91ccingress_controller_ip\u9700\u8981\u6839\u636e\u5177\u4f53\u7684\u73af\u5883\u83b7\u53d6\n paths:\n - path: /\n pathType: ImplementationSpecific\n tls: []\n #- secretName: chart-example-tls\n # hosts:\n # - chart-example.local\n\n')),(0,r.kt)("h2",{id:"\u5b89\u88c5\u6d4b\u8bd5"},"\u5b89\u88c5\u6d4b\u8bd5"),(0,r.kt)("h3",{id:"1-\u4f7f\u7528-ingress-\u4e0e-rbac-\u8ba4\u8bc1\u65b9\u5f0f"},(0,r.kt)("a",{name:"test-with-ingress-and-rbac"},"1. \u4f7f\u7528 ingress \u4e0e RBAC \u8ba4\u8bc1\u65b9\u5f0f")),(0,r.kt)("blockquote",null,(0,r.kt)("ul",{parentName:"blockquote"},(0,r.kt)("li",{parentName:"ul"},".Values.rbacSidecar.enabled: true"),(0,r.kt)("li",{parentName:"ul"},".Values.elasticsearch.secure: false"),(0,r.kt)("li",{parentName:"ul"},".Values.ingress.enabled false"))),(0,r.kt)("h4",{id:"\u4f9d\u8d56\u955c\u50cf"},"\u4f9d\u8d56\u955c\u50cf"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"hub.tenxcloud.com/system_containers/elasticsearch-operator v5.4.1 89aeaffad933 2 hours ago 30.8MB\nhub.tenxcloud.com/system_containers/elasticsearch 7.10.1-ik 3bf941c09b95 8 months ago 963MB\nhub.tenxcloud.com/system_containers/kubectl v1.20.8 403754878e80 3 months ago 112MB\nhub.tenxcloud.com/system_containers/fluentd-elk v5.0-kfk 63cd90e77b9c 18 months ago 347MB\nhub.tenxcloud.com/system_containers/kube-rbac-proxy v0.13.0-32f11472 d00c78c0989a 30 minutes ago 54.2MB")),(0,r.kt)("h4",{id:"\u8c03\u6574valuesyml"},(0,r.kt)("a",{parentName:"h4",href:"#value"},"\u8c03\u6574values.yml")),(0,r.kt)("blockquote",null,(0,r.kt)("ul",{parentName:"blockquote"},(0,r.kt)("li",{parentName:"ul"},".Values.rbacSidecar.enabled: true"),(0,r.kt)("li",{parentName:"ul"},".Values.elasticsearch.secure: false"),(0,r.kt)("li",{parentName:"ul"},".Values.ingress.enabled true"))),(0,r.kt)("p",null,"kube-rbac-proxy\u7684\u914d\u7f6e\u5728rbacSidercar\u8fd9\u4e00\u6bb5"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'rbacSidecar:\n enabled: true\n image: hub.tenxcloud.com/system_containers/kube-rbac-proxy:v0.13.0-32f11472\n imagePullPolicy: IfNotPresent\n certSecretName: oidc-server-root-secret #\u770b\u4e0b\u9762\u83b7\u53d6\u53c2\u6570\u63cf\u8ff0\n args:\n - "--insecure-listen-address=0.0.0.0:8443"\n - "--upstream=http://127.0.0.1:9200"\n - "--oidc-issuer=https://oidc.172.22.96.16.nip.io" #\u770b\u4e0b\u9762\u83b7\u53d6\u53c2\u6570\u63cf\u8ff0\n - "--oidc-clientID=bff-client"\n - "--oidc-ca-file=/etc/oidc-server/tls/ca.crt"\n - "--token-passthrough"\n - "--logtostderr=true"\n - "--v=1"\n resources:\n limits:\n cpu: "1"\n memory: 1Gi\n requests:\n cpu: 500m\n memory: 512Mi\n')),(0,r.kt)("p",null,"\u83b7\u53d6\u53c2\u6570 --oidc-issuer\uff0c\u8bbe\u7f6e\u4e3a oidc \u670d\u52a1\u7684\u5730\u5740\uff0c\u4e00\u822c\u7531 u4a-component \u63d0\u4f9b"),(0,r.kt)("p",null,"\u83b7\u53d6\u53c2\u6570 certSecretName: \u8fd9\u4e2asecret\u9700\u8981\u4eceu4a-system\u8fd9\u4e2anamespace\u4e2d\u83b7\u53d6, kubectl get secret oidc-server-root-secret -n u4a-system -o yaml > oidc-server-root-secret.yaml, \u5c06yaml\u91cc\u8fb9\u7684namespace\u4fe1\u606f\u6539\u4e3a addon-system\uff0c\u5e76\u901a\u8fc7 kubectl apply -f oidc-server-root-secret.yaml \u521b\u5efa\u5230 addon-system \u4e2d\u3002"),(0,r.kt)("h4",{id:"\u90e8\u7f72-elasticsearch"},"\u90e8\u7f72 elasticsearch"),(0,r.kt)("p",null,"\u5f00\u59cb\u5b89\u88c5:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u8fdb\u5165 es-logging/helm-chart \u76ee\u5f55\uff0c\u6267\u884c helm install es . -n addon-system"),(0,r.kt)("li",{parentName:"ul"},"helm list -n addon-system,\u53ef\u4ee5\u770b\u5230release\u6570\u636e")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"# kubectl get pod -n addon-system\u67e5\u770bpod\u72b6\u6001(\u8fd9\u91cc\u6709\u4e00\u4e2ajob\u4f9d\u8d56es\u7684\u72b6\u6001\uff0c\u53ef\u80fd\u9700\u8981\u4e00\u70b9\u65f6\u95f4)\n# wait es-sgadmin-es job completed\n# kubectl get pod -n addon-system\nNAME READY STATUS RESTARTS AGE\nes-allinone-es-0 1/1 Running 0 5m40s\nes-elasticsearch-operator-88c7cccf6-5scjt 1/1 Running 0 5m51s\nes-sgadmin-es-mmnc4 0/1 Completed 0 28s\n\n")),(0,r.kt)("h4",{id:"\u8bbf\u95ee-elasticsearch"},"\u8bbf\u95ee elasticsearch"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u83b7\u53d6fluentd sa secret")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"SECRET_NAME=$(kubectl get secret -n addon-system | grep fluentd | awk '{print $1}')\n")),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"\u83b7\u53d6\u8bbf\u95eeelasticsearch\u7684token")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'TOKEN=$(kubectl get secret $SECRET_NAME -n addon-system -o yaml | grep "token:" | awk -F": " \'{print $2}\' | base64 -d)\n')),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},"\u83b7\u53d6ingress\u4fe1\u606f")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"ES_HOST=$(kubectl get ingress ingress-es -n addon-system | grep ingress-es | awk '{print $3}')\nINGRESS_IP=$(kubectl get ingress ingress-es -n addon-system | grep ingress-es | awk '{print $4}')\n")),(0,r.kt)("ol",{start:4},(0,r.kt)("li",{parentName:"ol"},"\u8bbf\u95eeelasticsearch")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},'curl -H "Authorization: Bearer $TOKEN" http://$INGRESS_IP -H "Host: $ES_HOST"\n')),(0,r.kt)("p",null,"\u4f1a\u8fd4\u56de\u5982\u4e0b\u63d0\u793a\u4fe1\u606f\uff0c\u8bf4\u660e\u65e5\u5fd7\u670d\u52a1\u6b63\u5e38\u542f\u52a8\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-json"},'{\n "name": "es-allinone-es-0",\n "cluster_name": "es",\n "cluster_uuid": "ATBDAzVHQeSDb7gaKdgNUw",\n "version": {\n "number": "7.10.1",\n "build_flavor": "default",\n "build_type": "tar",\n "build_hash": "7a15d2a",\n "build_date": "2020-08-12T07:27:20.804867Z",\n "build_snapshot": false,\n "lucene_version": "7.7.3",\n "minimum_wire_compatibility_version": "5.6.0",\n "minimum_index_compatibility_version": "5.0.0"\n },\n "tagline": "You Know, for Search"\n}\n')),(0,r.kt)("h3",{id:"2-ingress-\u4e0b\u4e0d\u5f00\u542f-rbac-\u8ba4\u8bc1"},(0,r.kt)("a",{name:"test-with-ingress-without-auth"},"2. ingress \u4e0b\u4e0d\u5f00\u542f RBAC \u8ba4\u8bc1")),(0,r.kt)("blockquote",null,(0,r.kt)("ul",{parentName:"blockquote"},(0,r.kt)("li",{parentName:"ul"},".Values.rbacSidecar.enabled: false"),(0,r.kt)("li",{parentName:"ul"},".Values.elasticsearch.secure: false"),(0,r.kt)("li",{parentName:"ul"},".Values.ingress.enabled true"))),(0,r.kt)("h4",{id:"\u51c6\u5907\u955c\u50cf\u53c2\u8003\u4e4b\u524d\u7684\u955c\u50cf"},(0,r.kt)("a",{parentName:"h4",href:"#image"},"\u51c6\u5907\u955c\u50cf(\u53c2\u8003\u4e4b\u524d\u7684\u955c\u50cf)")),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"hub.tenxcloud.com/system_containers/elasticsearch-operator v5.4.1 89aeaffad933 2 hours ago 30.8MB\nhub.tenxcloud.com/system_containers/elasticsearch 7.10.1-ik 3bf941c09b95 8 months ago 963MB\nhub.tenxcloud.com/system_containers/kubectl v1.20.8 403754878e80 3 months ago 112MB\nhub.tenxcloud.com/system_containers/fluentd-elk v5.0-kfk 63cd90e77b9c 18 months ago 347MB")),(0,r.kt)("h4",{id:"\u8c03\u6574valuesyml-1"},(0,r.kt)("a",{parentName:"h4",href:"#value"},"\u8c03\u6574values.yml")),(0,r.kt)("blockquote",null,(0,r.kt)("ul",{parentName:"blockquote"},(0,r.kt)("li",{parentName:"ul"},".Values.rbacSidecar.enabled: false"),(0,r.kt)("li",{parentName:"ul"},".Values.elasticsearch.secure: false"),(0,r.kt)("li",{parentName:"ul"},".Values.ingress.enabled true"))),(0,r.kt)("h4",{id:"\u8bbf\u95ee-elasticsearch-1"},"\u8bbf\u95ee elasticsearch"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u83b7\u53d6ingress\u4fe1\u606f")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"ES_HOST=$(kubectl get ingress ingress-es -n addon-system | grep ingress-es | awk '{print $3}')\nINGRESS_IP=$(kubectl get ingress ingress-es -n addon-system | grep ingress-es | awk '{print $4}')\n")),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},"\u8bbf\u95eeelasticsearch")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},'curl http://$INGRESS_IP -H "Host: $ES_HOST"\n')),(0,r.kt)("p",null,"\u4f1a\u8fd4\u56de\u5982\u4e0b\u63d0\u793a\u4fe1\u606f\uff0c\u8bf4\u660e\u65e5\u5fd7\u670d\u52a1\u6b63\u5e38\u542f\u52a8\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'{\n "name": "es-allinone-es-0",\n "cluster_name": "es",\n "cluster_uuid": "ATBDAzVHQeSDb7gaKdgNUw",\n "version": {\n "number": "7.10.1",\n "build_flavor": "default",\n "build_type": "tar",\n "build_hash": "7a15d2a",\n "build_date": "2020-08-12T07:27:20.804867Z",\n "build_snapshot": false,\n "lucene_version": "7.7.3",\n "minimum_wire_compatibility_version": "5.6.0",\n "minimum_index_compatibility_version": "5.0.0"\n },\n "tagline": "You Know, for Search"\n}\n')))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b72c5fb1.5506aedd.js b/assets/js/b72c5fb1.5506aedd.js deleted file mode 100644 index 2e2010fbf..000000000 --- a/assets/js/b72c5fb1.5506aedd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1520],{3905:(t,e,a)=>{a.d(e,{Zo:()=>m,kt:()=>c});var n=a(7294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function i(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function l(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var d=n.createContext({}),o=function(t){var e=n.useContext(d),a=e;return t&&(a="function"==typeof t?t(e):l(l({},e),t)),a},m=function(t){var e=o(t.components);return n.createElement(d.Provider,{value:e},t.children)},k="mdxType",s={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},g=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,i=t.originalType,d=t.parentName,m=p(t,["components","mdxType","originalType","parentName"]),k=o(a),g=r,c=k["".concat(d,".").concat(g)]||k[g]||s[g]||i;return a?n.createElement(c,l(l({ref:e},m),{},{components:a})):n.createElement(c,l({ref:e},m))}));function c(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var i=a.length,l=new Array(i);l[0]=g;var p={};for(var d in e)hasOwnProperty.call(e,d)&&(p[d]=e[d]);p.originalType=t,p[k]="string"==typeof t?t:r,l[1]=p;for(var o=2;o{a.r(e),a.d(e,{assets:()=>d,contentTitle:()=>l,default:()=>s,frontMatter:()=>i,metadata:()=>p,toc:()=>o});var n=a(7462),r=(a(7294),a(3905));const i={sidebar_position:2},l="\u524d\u7aef\u5c42\u57fa\u4e8e\u4f4e\u7801 Kit \u7684\u5f00\u53d1",p={unversionedId:"lowcode-development/development/frontend-low-code",id:"lowcode-development/development/frontend-low-code",title:"\u524d\u7aef\u5c42\u57fa\u4e8e\u4f4e\u7801 Kit \u7684\u5f00\u53d1",description:"\u672c\u7ae0\u8282\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528\u4f4e\u7801 Kit \u5f00\u53d1\u524d\u7aef\u5e94\u7528\u3002",source:"@site/docs/lowcode-development/development/frontend-low-code.md",sourceDirName:"lowcode-development/development",slug:"/lowcode-development/development/frontend-low-code",permalink:"/website/docs/lowcode-development/development/frontend-low-code",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"\u524d\u7aef\u5c42\u5f00\u53d1",permalink:"/website/docs/lowcode-development/development/frontend"},next:{title:"BFF \u5c42 API \u5f00\u53d1",permalink:"/website/docs/lowcode-development/development/bff-apis"}},d={},o=[{value:"1. \u65b0\u589e\u5e94\u7528",id:"1-\u65b0\u589e\u5e94\u7528",level:2},{value:"2. \u6dfb\u52a0\u6210\u5458",id:"2-\u6dfb\u52a0\u6210\u5458",level:2},{value:"3. \u521b\u5efa\u5206\u652f",id:"3-\u521b\u5efa\u5206\u652f",level:2},{value:"4. \u65b0\u589e\u9875\u9762",id:"4-\u65b0\u589e\u9875\u9762",level:2},{value:"5. \u8bbe\u8ba1\u9875\u9762",id:"5-\u8bbe\u8ba1\u9875\u9762",level:2},{value:"5.1 \u6dfb\u52a0\u8d44\u4ea7",id:"51-\u6dfb\u52a0\u8d44\u4ea7",level:3},{value:"5.2 \u5168\u5c40\u8bbe\u7f6e",id:"52-\u5168\u5c40\u8bbe\u7f6e",level:3},{value:"5.3 \u62d6\u5165\u7ec4\u4ef6\u5e76\u914d\u7f6e\u5c5e\u6027",id:"53-\u62d6\u5165\u7ec4\u4ef6\u5e76\u914d\u7f6e\u5c5e\u6027",level:3},{value:"5.4 \u6dfb\u52a0\u6570\u636e\u6e90&\u7ed1\u5b9a\u6570\u636e",id:"54-\u6dfb\u52a0\u6570\u636e\u6e90\u7ed1\u5b9a\u6570\u636e",level:3},{value:"5.5 \u6dfb\u52a0\u53d8\u91cf/\u65b9\u6cd5",id:"55-\u6dfb\u52a0\u53d8\u91cf\u65b9\u6cd5",level:3},{value:"5.6 \u7ed1\u5b9a\u4e8b\u4ef6",id:"56-\u7ed1\u5b9a\u4e8b\u4ef6",level:3},{value:"5.7 \u4fdd\u5b58&\u9884\u89c8",id:"57-\u4fdd\u5b58\u9884\u89c8",level:3},{value:"5.8 git \u63d0\u4ea4",id:"58-git-\u63d0\u4ea4",level:3},{value:"5.9 \u53d1\u5e03&\u51fa\u7801",id:"59-\u53d1\u5e03\u51fa\u7801",level:3}],m={toc:o},k="wrapper";function s(t){let{components:e,...i}=t;return(0,r.kt)(k,(0,n.Z)({},m,i,{components:e,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u524d\u7aef\u5c42\u57fa\u4e8e\u4f4e\u7801-kit-\u7684\u5f00\u53d1"},"\u524d\u7aef\u5c42\u57fa\u4e8e\u4f4e\u7801 Kit \u7684\u5f00\u53d1"),(0,r.kt)("p",null,"\u672c\u7ae0\u8282\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528\u4f4e\u7801 Kit \u5f00\u53d1\u524d\u7aef\u5e94\u7528\u3002"),(0,r.kt)("h2",{id:"1-\u65b0\u589e\u5e94\u7528"},"1. \u65b0\u589e\u5e94\u7528"),(0,r.kt)("p",null,"\u9996\u5148\u6211\u4eec\u9700\u8981\u5728\u4e91\u68af\u5de5\u4f5c\u53f0\u3010\u5e94\u7528\u7ba1\u7406\u3011-\u3010\u65b0\u589e\u5e94\u7528\u3011\u4e0b\u521b\u5efa\u4e00\u4e2a\u5e94\u7528\uff0c\u5982\u679c\u60a8\u5df2\u6709\u53ef\u7528\u7684\u5e94\u7528\u5219\u53ef\u4ee5\u8df3\u8fc7\u672c\u6b65\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff0c\u6211\u4eec\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"Hello World")," \u7684\u7a7a\u767d\u5e94\u7528\uff1a\n",(0,r.kt)("img",{alt:"\u65b0\u589e\u5e94\u7528",src:a(5443).Z,width:"1346",height:"813"})),(0,r.kt)("h2",{id:"2-\u6dfb\u52a0\u6210\u5458"},"2. \u6dfb\u52a0\u6210\u5458"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("ol",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ol"},"\u7cfb\u7edf\u7ba1\u7406\u5458\u62e5\u6709\u6240\u6709\u6743\u9650"),(0,r.kt)("li",{parentName:"ol"},"\u5168\u5c40\u7528\u6237\u6743\u9650\uff1a\u6240\u6709\u7528\u6237\u90fd\u53ef\u4ee5\u968f\u610f\u521b\u5efa\u5e94\u7528\u548c\u7ec4\u4ef6\uff0c\u53ea\u80fd\u770b\u5230\u81ea\u5df1\u6709\u6743\u9650\u7684\u5e94\u7528\u6216\u7ec4\u4ef6"),(0,r.kt)("li",{parentName:"ol"},"\u5e94\u7528&\u7ec4\u4ef6\u5185\u6210\u5458\u6743\u9650")),(0,r.kt)("table",{parentName:"admonition"},(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"-"),(0,r.kt)("th",{parentName:"tr",align:"center"},"\u62e5\u6709\u8005"),(0,r.kt)("th",{parentName:"tr",align:"right"},"\u7ef4\u62a4\u8005"),(0,r.kt)("th",{parentName:"tr",align:"right"},"\u5f00\u53d1\u8005"),(0,r.kt)("th",{parentName:"tr",align:"right"},"\u6d4b\u8bd5"),(0,r.kt)("th",{parentName:"tr",align:"right"},"\u8bbf\u5ba2"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"\u5e94\u7528 - \u9875\u9762\u7ba1\u7406"),(0,r.kt)("td",{parentName:"tr",align:"center"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u67e5\u770b\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u67e5\u770b\u6743\u9650")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"\u5e94\u7528 - \u53d1\u5e03\u7ba1\u7406"),(0,r.kt)("td",{parentName:"tr",align:"center"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u67e5\u770b\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u67e5\u770b\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"\u5e94\u7528 - \u6210\u5458\u7ba1\u7406"),(0,r.kt)("td",{parentName:"tr",align:"center"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"\u5e94\u7528 - \u5206\u652f\u7ba1\u7406"),(0,r.kt)("td",{parentName:"tr",align:"center"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"\u7ec4\u4ef6 - \u7248\u672c\u7ba1\u7406"),(0,r.kt)("td",{parentName:"tr",align:"center"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u67e5\u770b\u53ca\u8bbe\u8ba1\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u67e5\u770b\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u67e5\u770b\u6743\u9650")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"\u7ec4\u4ef6 - \u6210\u5458\u7ba1\u7406"),(0,r.kt)("td",{parentName:"tr",align:"center"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"\u7ec4\u4ef6 - \u5206\u652f\u7ba1\u7406"),(0,r.kt)("td",{parentName:"tr",align:"center"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"\u6240\u6709\u6743\u9650"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x"),(0,r.kt)("td",{parentName:"tr",align:"right"},"x"))))),(0,r.kt)("p",null,"\u5982\u679c\u60a8\u6ca1\u6709\u76f8\u5173\u5e94\u7528\u6743\u9650\uff0c\u53ef\u4ee5\u8054\u7cfb\u5e94\u7528\u62e5\u6709\u8005\u5728\u3010\u6210\u5458\u7ba1\u7406\u3011-\u3010\u6dfb\u52a0\u6210\u5458\u3011\u6dfb\u52a0\u5f00\u53d1\u8005\u6743\u9650\uff0c\u5982\u679c\u60a8\u5df2\u6709\u5f00\u53d1\u8005\u6743\u9650\u53ef\u4ee5\u8df3\u8fc7\u672c\u6b65\uff1a"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"\u6dfb\u52a0\u6210\u5458",src:a(6814).Z,width:"1346",height:"813"})),(0,r.kt)("h2",{id:"3-\u521b\u5efa\u5206\u652f"},"3. \u521b\u5efa\u5206\u652f"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("ol",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ol"},"\u9ed8\u8ba4\u4e3b\u5206\u652f\uff1a\u521b\u5efa\u5e94\u7528\u65f6\uff0c\u4f1a\u9ed8\u8ba4\u57fa\u4e8e main \u5206\u652f\u521b\u5efa\u4e00\u4e2a\u5e94\u7528\u7684\u9ed8\u8ba4\u5206\u652f <\u5e94\u7528 ID>/main"),(0,r.kt)("li",{parentName:"ol"},"\u53d1\u7248\u5206\u652f\uff1a\u4ee5 'release-' \u5f00\u5934\u7684\u5206\u652f\u6bd4\u8f83\u7279\u6b8a\uff0c\u4ec5 Owner \u53ca Maintainer \u53ef\u521b\u5efa\u7f16\u8f91\uff0c\u4e0d\u8fc7\u6240\u6709\u5e94\u7528\u6210\u5458\u5747\u62e5\u6709\u8bfb\u53d6\u6743\u9650\uff0c\u53d1\u7248\u5206\u652f\u7684\u547d\u540d\u5f62\u5f0f\u4e3a\uff1a<\u5e94\u7528 ID>/release-<\u7248\u672c>"),(0,r.kt)("li",{parentName:"ol"},"\u5f00\u53d1\u5206\u652f\uff1a\u7528\u6237\u5404\u81ea\u521b\u5efa\u7684\u975e\u53d1\u7248\u5206\u652f\u90fd\u5c5e\u4e8e\u5f00\u53d1\u5206\u652f\uff0c\u8fd9\u4e9b\u5206\u652f\u4ec5\u521b\u5efa\u4eba\u53ef\u89c1\uff0c\u5f53\u5f00\u5b8c\u5b8c\u6210\u4e00\u4e2a\u529f\u80fd\u540e\uff0c\u53ef\u4ee5\u5c06\u5f00\u53d1\u5206\u652f\u7684\u66f4\u6539\u63d0\u4ea4 merge \u5230\u53d1\u7248\u5206\u652f\uff0c\u5f00\u53d1\u5206\u652f\u7684\u547d\u540d\u5f62\u5f0f\u4e3a\uff1a<\u5e94\u7528 ID>/<\u7528\u6237 ID>/\u5206\u652f\u5c55\u793a\u540d"))),(0,r.kt)("p",null,"\u63a5\u4e0b\u6765\u6211\u4eec\u9700\u8981\u5728\u4e91\u68af\u5de5\u4f5c\u53f0\u3010\u5206\u652f\u7ba1\u7406\u3011-\u3010\u521b\u5efa\u5206\u652f\u3011\u521b\u5efa\u4e00\u4e2a\u5f00\u53d1\u5206\u652f\uff0c\u5982\u679c\u60a8\u5df2\u6709\u76f8\u5173\u5206\u652f\u53ef\u4ee5\u8df3\u8fc7\u672c\u6b65\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff0c\u6211\u4eec\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"dev")," \u7684\u5206\u652f\uff1a"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"\u53ef\u5728\u3010\u9875\u9762\u7ba1\u7406\u3011- \u70b9\u51fb\u53f3\u4e0a\u89d2\u5207\u6362\u5230 ",(0,r.kt)("inlineCode",{parentName:"p"},"dev")," \u5206\u652f")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"\u521b\u5efa\u5206\u652f",src:a(9662).Z,width:"1346",height:"813"})),(0,r.kt)("h2",{id:"4-\u65b0\u589e\u9875\u9762"},"4. \u65b0\u589e\u9875\u9762"),(0,r.kt)("p",null,"\u70b9\u51fb\u3010\u9875\u9762\u7ba1\u7406\u3011\uff0c\u70b9\u51fb\u3010\u53f3\u4e0a\u89d2\u9009\u62e9\u5206\u652f\u3011\u5207\u6362\u5230 ",(0,r.kt)("inlineCode",{parentName:"p"},"dev")," \u5206\u652f\uff0c\u5982\u56fe\u6240\u793a\uff0c"),(0,r.kt)("p",null,"\u63a5\u4e0b\u6765\u6211\u4eec\u9700\u8981\u521b\u5efa\u4e00\u4e2a\u9875\u9762\u6765\u5b9e\u73b0 ",(0,r.kt)("inlineCode",{parentName:"p"},"Hello World")," \u7684\u529f\u80fd\uff0c\u5982\u4e0b\u6240\u793a\uff0c\u5f53\u524d\u6211\u4eec\u8fd8\u6ca1\u6709\u9875\u9762\u6a21\u677f\uff08\u5df2\u6709\u7684\u9875\u9762\uff09\uff0c\u53ef\u4ee5\u4e0d\u9009\u62e9\uff1a"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"\u521b\u5efa\u9875\u9762",src:a(1040).Z,width:"1346",height:"813"})),(0,r.kt)("p",null,"\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u3010\u53f3\u4e0a\u89d2\u6309\u94ae\u3011\u8fdb\u884c\u7f16\u8f91\u9875\u9762\u4fe1\u606f\u548c\u5220\u9664\u9875\u9762\u64cd\u4f5c\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1a"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"\u7f16\u8f91\u9875\u9762",src:a(1165).Z,width:"1447",height:"915"})),(0,r.kt)("h2",{id:"5-\u8bbe\u8ba1\u9875\u9762"},"5. \u8bbe\u8ba1\u9875\u9762"),(0,r.kt)("p",null," \u70b9\u51fb\u3010\u9009\u62e9\u9875\u9762\u3011-\u3010\u8bbe\u8ba1\u9875\u9762\u3011 \u76f4\u63a5\u8fdb\u5165\u9875\u9762\u8bbe\u8ba1\u5668\uff1a"),(0,r.kt)("p",null," ",(0,r.kt)("img",{alt:"\u8bbe\u8ba1\u9875\u9762\u5165\u53e3",src:a(9619).Z,width:"1346",height:"813"})),(0,r.kt)("h3",{id:"51-\u6dfb\u52a0\u8d44\u4ea7"},"5.1 \u6dfb\u52a0\u8d44\u4ea7"),(0,r.kt)("p",null," \u9996\u5148\u6211\u4eec\u9700\u8981\u6dfb\u52a0\u8bbe\u8ba1\u9875\u9762\u6240\u9700\u8981\u7684\u8d44\u4ea7\uff0c\u8d44\u4ea7\u5206\u4e3a\u7ec4\u4ef6\u548c\u975e\u7ec4\u4ef6\u4e24\u79cd\u7c7b\u578b\uff0c\u5982\u7ec4\u4ef6\u8d44\u4ea7\u5305\u3001bff \u63a5\u53e3\u7684 npm \u5305\u3002\u6b64\u5904\u6211\u4eec\u5df2\u6709\u5185\u7f6e\u7684\u7ec4\u4ef6\u8d44\u4ea7\u5305\uff0c\u53ef\u4ee5\u5148\u8df3\u8fc7\u3002"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("ol",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"\u5185\u7f6e\u524d\u7aef\u8d44\u4ea7\u5305\u5982\u4e0b\uff1a"),(0,r.kt)("table",{parentName:"li"},(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:"left"},"\u5305\u540d"),(0,r.kt)("th",{parentName:"tr",align:"center"},"\u529f\u80fd"),(0,r.kt)("th",{parentName:"tr",align:"right"},"\u7c7b\u578b"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"@tenx-ui/materials"),(0,r.kt)("td",{parentName:"tr",align:"center"},"\u57fa\u4e8e antd \u7684\u7ec4\u4ef6\u8d44\u4ea7\u5305"),(0,r.kt)("td",{parentName:"tr",align:"right"},"npm \u7ec4\u4ef6")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"@tenx-ui/charts"),(0,r.kt)("td",{parentName:"tr",align:"center"},"\u57fa\u4e8e bizcharts \u7684\u56fe\u8868\u7ec4\u4ef6\u8d44\u4ea7\u5305"),(0,r.kt)("td",{parentName:"tr",align:"right"},"npm \u56fe\u6807\u7ec4\u4ef6")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:"left"},"@tenx-ui/icon-materials"),(0,r.kt)("td",{parentName:"tr",align:"center"},"\u57fa\u4e8e @ant-design/icons, @tenx-ui/icon \u7684\u56fe\u6807\u7ec4\u4ef6\u8d44\u4ea7\u5305"),(0,r.kt)("td",{parentName:"tr",align:"right"},"npm \u56fe\u6807\u7ec4\u4ef6"))))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"\u624b\u52a8\u6dfb\u52a0 npm \u5305\u65f6\u4f1a\u901a\u8fc7\u89e3\u6790 package \u6587\u4ef6\u4e2d\u7684 yunti \u5b57\u6bb5\uff0c\u5224\u65ad\u5f53\u524d npm \u5305\u7c7b\u578b\u5e76\u6dfb\u52a0\u5230\u7ec4\u4ef6\u7ba1\u7406\u4e2d\u3002"),(0,r.kt)("p",{parentName:"li"},"package.json \u793a\u4f8b\uff1a"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre"},' "yunti": {\n "umd": { // UMD \u4ea7\u7269 CDN \u5730\u5740\n "library": "TenxUiMaterials",\n "entry": [\n "/dist/TenxUiMaterials.js",\n "/dist/TenxUiMaterials.css"\n ],\n "externals": { // \u4f9d\u8d56\u7684\u5916\u90e8\u5305\uff08\u81ea\u52a8\u6dfb\u52a0\uff09\n "antd": ">=5.4.0",\n "dayjs": ">=1.8.27",\n "@ant-design/icons": ">=4.7.0",\n "react": ">=16.9.0",\n "lodash": ">=4.17.21"\n }\n },\n "lowCode": { // \u7f16\u8f91\u6001 UMD \u4ea7\u7269 CDN \u5730\u5740\n "meta": "/build/lowcode/meta.js",\n "editEntry": [\n "/build/lowcode/view.css",\n "/build/lowcode/view.js"\n ]\n }\n}\n')),(0,r.kt)("p",{parentName:"li"},"\u6dfb\u52a0 npm \u8d44\u4ea7\u5305\u64cd\u4f5c\u5982\u4e0b\u56fe\u6240\u793a\uff1a\n",(0,r.kt)("img",{alt:"\u6dfb\u52a0 npm \u8d44\u4ea7\u5305",src:a(4098).Z,width:"1920",height:"937"}))))),(0,r.kt)("h3",{id:"52-\u5168\u5c40\u8bbe\u7f6e"},"5.2 \u5168\u5c40\u8bbe\u7f6e"),(0,r.kt)("p",null," \u3010\u5168\u5c40\u8bbe\u7f6e\u9762\u677f\u3011\u4e3b\u8981\u5305\u62ec ",(0,r.kt)("inlineCode",{parentName:"p"},"antd")," \u5168\u5c40\u6837\u5f0f\u8bbe\u7f6e\uff0c\u5e94\u7528\u7248\u672c\u8bbe\u7f6e \u7b49\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1a"),(0,r.kt)("p",null," ",(0,r.kt)("img",{alt:"\u5168\u5c40\u8bbe\u7f6e",src:a(312).Z,width:"1920",height:"937"})),(0,r.kt)("h3",{id:"53-\u62d6\u5165\u7ec4\u4ef6\u5e76\u914d\u7f6e\u5c5e\u6027"},"5.3 \u62d6\u5165\u7ec4\u4ef6\u5e76\u914d\u7f6e\u5c5e\u6027"),(0,r.kt)("p",null," \u6211\u4eec\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"Hello World")," \u793a\u4f8b\u975e\u5e38\u7b80\u5355\uff0c\u603b\u5171\u5305\u542b\u4e24\u4e2a\u7ec4\u4ef6\uff0c\u5f00\u53d1\u8005\u53ef\u4ee5\u4ece\u3010\u7ec4\u4ef6\u5e93\u9762\u677f\u3011\u4e2d\u5c06\u7ec4\u4ef6\u5148\u62d6\u5165\u753b\u5e03\uff0c\u7136\u540e\u901a\u8fc7\u53f3\u4fa7\u3010\u8bbe\u7f6e\u5668\u9762\u677f\u3011\u914d\u7f6e\u76f8\u5173\u5c5e\u6027\uff1a"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"\u5237\u65b0\u6309\u94ae")," - \u7528\u4e8e\u5237\u65b0\u9875\u9762\u6570\u636e\uff0c\u6211\u4eec\u5c06\u7ec4\u4ef6\u7684",(0,r.kt)("inlineCode",{parentName:"p"},"\u56fe\u6807"),"\u5c5e\u6027\u8bbe\u7f6e\u4e3a\u5173\u95ed\uff0c\u4e3a\u4e86\u7f8e\u89c2\u6211\u4eec\u5728\u3010\u6837\u5f0f\u9762\u677f\u3011\u4e2d\u8bbe\u7f6e\u4e0b\u8fb9\u8ddd\uff1a",(0,r.kt)("inlineCode",{parentName:"p"},"20px"),"\uff1b")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("strong",{parentName:"p"},"\u8868\u683c")," - \u7528\u4e8e\u5c55\u793a\u5217\u8868\u6570\u636e\uff0c\u6211\u4eec\u5c06\u8868\u683c\u7684",(0,r.kt)("inlineCode",{parentName:"p"},"\u5217\u6807\u9898"),'\u5c5e\u6027\u8bbe\u7f6e\u4e3a "\u5e94\u7528\u540d\u79f0"\u3001 \u5e94\u7528id\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1b'),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{alt:"\u62d6\u5165\u7ec4\u4ef6",src:a(1531).Z,width:"1817",height:"919"}),"\n"))),(0,r.kt)("h3",{id:"54-\u6dfb\u52a0\u6570\u636e\u6e90\u7ed1\u5b9a\u6570\u636e"},"5.4 \u6dfb\u52a0\u6570\u636e\u6e90&\u7ed1\u5b9a\u6570\u636e"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"}," \u6dfb\u52a0\u6570\u636e\u6e90\u6709\u4e24\u79cd\u65b9\u5f0f\uff1a"),(0,r.kt)("ol",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ol"},"\u901a\u8fc7\u6570\u636e\u6e90\u9762\u677f\u586b\u52a0\uff0c\u5185\u7f6e\u4e86 ",(0,r.kt)("inlineCode",{parentName:"li"},"axios")," \u548c ",(0,r.kt)("inlineCode",{parentName:"li"},"jsonp")," \u4e24\u79cd\u7c7b\u578b\uff1b"),(0,r.kt)("li",{parentName:"ol"},"\u901a\u8fc7\u8d44\u4ea7\u914d\u7f6e\u7684\u65b9\u5f0f\u5f15\u5165 ",(0,r.kt)("inlineCode",{parentName:"li"},"bff sdk"),"\uff08\u6b64\u65b9\u5f0f\u57fa\u4e8e ",(0,r.kt)("inlineCode",{parentName:"li"},"swr"),"\uff09\uff1b"))),(0,r.kt)("p",null," \u4ece\u8fd9\u4e00\u6b65\u6211\u4eec\u8981\u5f00\u59cb\u5b9e\u73b0\u903b\u8f91\u90e8\u5206\u4e86\uff0c\u6211\u4eec\u73b0\u5728\u7528\u7b2c\u4e8c\u79cd\u65b9\u5f0f"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"\u9996\u5148\u70b9\u51fb\u8fdb\u5165\u3010\u8d44\u4ea7\u914d\u7f6e\u3011\u9762\u677f\uff0c\u6dfb\u52a0 ",(0,r.kt)("inlineCode",{parentName:"p"},"sdk")," \u8d44\u4ea7\u5305 ",(0,r.kt)("inlineCode",{parentName:"p"},"@tenx-ui/yunti-bff-client"),"\uff0c \u5982\u4e0b\u56fe\u6240\u793a:"),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{alt:"\u6dfb\u52a0\u6570\u636e\u6e90 npm \u5305",src:a(5116).Z,width:"1920",height:"937"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"\u70b9\u51fb\u8fdb\u5165\u3010\u5168\u5c40\u4e0a\u4e0b\u6587\u7ba1\u7406\u3011\u9762\u677f\uff0c\u6dfb\u52a0\u5168\u5c40\u51fd\u6570 ",(0,r.kt)("inlineCode",{parentName:"p"},"bff")," \u6765\u5f15\u7528\u521a\u521a\u6dfb\u52a0\u7684 sdk \u8d44\u4ea7\u5305 ",(0,r.kt)("inlineCode",{parentName:"p"},"@tenx-ui/yunti-bff-client")," \u5982\u4e0b\u56fe\u6240\u793a:"),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{alt:"\u6dfb\u52a0\u5168\u5c40\u51fd\u6570",src:a(7727).Z,width:"1920",height:"937"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"\u7ed1\u5b9a sdk \u4e2d\u7684\u8bf7\u6c42\u65b9\u6cd5\uff1a"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"\u65b9\u5f0f\u4e00\uff1a\u53ef\u4ee5\u901a\u8fc7 ",(0,r.kt)("inlineCode",{parentName:"p"},"this.utils.bff.getXXX")," \u5728 \u3010\u6e90\u7801\u9762\u677f\u3011\u4e2d\u6765\u8c03\u7528 ",(0,r.kt)("inlineCode",{parentName:"p"},"sdk")," \u4e2d\u7684\u8bf7\u6c42\u65b9\u6cd5")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"\u65b9\u5f0f\u4e8c\uff1a\u3010\u5c5e\u6027\u8bbe\u7f6e\u9762\u677f\u3011-\u3010\u8c03\u7528\u51fd\u6570\u3011\uff08\u76ee\u524d\u4ec5\u652f\u6301\u89e3\u6790\u5168\u5c40\u51fd\u6570 ",(0,r.kt)("inlineCode",{parentName:"p"},"bff")," \u6240\u7ed1\u5b9a\u7684 npm \u8d44\u4ea7\u7684\u65b9\u6cd5 \uff09\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff1a"))),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{alt:"\u6dfb\u52a0\u9875\u9762\u6570\u636e",src:a(2650).Z,width:"1920",height:"937"}))),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"\u6700\u540e\u4e00\u6b65"))),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"\u6211\u4eec\u9700\u8981\u5c06\u63a5\u53e3\u8fd4\u56de\u7684\u6570\u636e\u53d8\u91cf ",(0,r.kt)("inlineCode",{parentName:"p"},"this.props.useGetCurrentUserApps?.data?.currentUser?.apps")," \u7ed1\u5b9a\u5230",(0,r.kt)("strong",{parentName:"p"},"\u8868\u683c"),"\u7ec4\u4ef6\u7684",(0,r.kt)("inlineCode",{parentName:"p"},"\u8868\u683c\u6570\u636e"),"\u5c5e\u6027\u4e0a\u8fdb\u884c\u5c55\u793a\uff1b")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"\u5c06\u53d8\u91cf ",(0,r.kt)("inlineCode",{parentName:"p"},"this.props.useGetCurrentUserApps?.loading")," \u7ed1\u5b9a\u5230",(0,r.kt)("strong",{parentName:"p"},"\u8868\u683c"),"\u7ec4\u4ef6\u7684",(0,r.kt)("inlineCode",{parentName:"p"},"\u52a0\u8f7d\u4e2d")," \u5c5e\u6027\u4e0a\u8fdb\u884c\u5c55\u793a\uff0c")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},"\u5c06\u53d8\u91cf ",(0,r.kt)("inlineCode",{parentName:"p"},"this.props.useGetCurrentUserApps?.data?.currentUser?.apps?.length")," \u7ed1\u5b9a\u5230",(0,r.kt)("strong",{parentName:"p"},"\u8868\u683c"),"\u7ec4\u4ef6\u7684",(0,r.kt)("inlineCode",{parentName:"p"},"\u6570\u636e\u603b\u6570"),"\u5c5e\u6027\u4e0a\u8fdb\u884c\u5c55\u793a"),(0,r.kt)("p",{parentName:"li"}," \u5982\u4e0b\u56fe\u6240\u793a\uff1a"),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("img",{alt:"\u9875\u9762\u7ed1\u5b9a\u6570\u636e",src:a(3203).Z,width:"1920",height:"937"})))),(0,r.kt)("h3",{id:"55-\u6dfb\u52a0\u53d8\u91cf\u65b9\u6cd5"},"5.5 \u6dfb\u52a0\u53d8\u91cf/\u65b9\u6cd5"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"}," \u6dfb\u52a0\u53d8\u91cf/\u65b9\u6cd5\u6839\u636e\u4f5c\u7528\u57df\u4e0d\u540c\u6709\u4e24\u79cd\uff1a"),(0,r.kt)("ol",{parentName:"admonition"},(0,r.kt)("li",{parentName:"ol"},"\u5e94\u7528\u7ea7\u522b\uff1a\u6240\u6709\u9875\u9762\u90fd\u53ef\u4ee5\u4f7f\u7528\uff0c\u5728\u3010\u5168\u5c40\u4e0a\u4e0b\u6587\u7ba1\u7406\u3011\u5904\u6dfb\u52a0\uff1b"),(0,r.kt)("li",{parentName:"ol"},"\u9875\u9762\u7ea7\u522b\uff1a\u53ea\u6709\u5f53\u524d\u9875\u9762\u53ef\u4ee5\u4f7f\u7528\uff0c\u5728\u3010\u6e90\u7801\u9762\u677f\u3011\u5185\u6dfb\u52a0\uff1b"))),(0,r.kt)("p",null," \u6253\u5f00\u3010\u6e90\u7801\u9762\u677f\u3011\uff0c\u521b\u5efa\u4e00\u4e2a ",(0,r.kt)("inlineCode",{parentName:"p"},"refresh")," \u65b9\u6cd5\uff0c\u7528\u6765\u5237\u65b0\u6570\u636e\uff0c\u5982\u4e0b\u6240\u793a\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"refresh() {\n this.props.useGetCurrentUserApps.mutate()\n}\n")),(0,r.kt)("p",null," ",(0,r.kt)("img",{alt:"\u6dfb\u52a0\u9875\u9762\u51fd\u6570",src:a(3714).Z,width:"1920",height:"937"})),(0,r.kt)("h3",{id:"56-\u7ed1\u5b9a\u4e8b\u4ef6"},"5.6 \u7ed1\u5b9a\u4e8b\u4ef6"),(0,r.kt)("p",null,"\u7ed9\u6309\u94ae\u7ed1\u5b9a\u70b9\u51fb\u4e8b\u4ef6\uff0c\u5982\u4e0b\u56fe\u6240\u793a\uff0c\u6253\u5f00\u3010\u4e8b\u4ef6\u7ed1\u5b9a\u9762\u677f\u3011\uff0c\u9009\u62e9\u6e90\u7801\u9762\u677f\u4e2d\u5df2\u7ecf\u521b\u5efa\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"refresh")," \u65b9\u6cd5\uff0c\u5982\u679c\u4e0d\u9009\u62e9\uff0c\u70b9\u51fb\u786e\u5b9a\u540e\u6211\u4eec\u4f1a\u6839\u636e\u4f4e\u7801\u8bbe\u7f6e\u7684\u4e8b\u4ef6\u6a21\u677f\u81ea\u52a8\u6253\u5f00\u3010\u6e90\u7801\u9762\u677f\u3011\u5e76\u751f\u6210\u4e00\u4e2a JS \u51fd\u6570\uff1a"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"\u7ed1\u5b9a\u4e8b\u4ef6",src:a(2600).Z,width:"1920",height:"937"})),(0,r.kt)("h3",{id:"57-\u4fdd\u5b58\u9884\u89c8"},"5.7 \u4fdd\u5b58&\u9884\u89c8"),(0,r.kt)("p",null,"\u5230\u76ee\u524d\u4e3a\u6b62\uff0c\u6211\u4eec\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"Hello Word")," \u793a\u4f8b\u5c31\u5df2\u7ecf\u5f00\u53d1\u5b8c\u6210\u4e86\uff0c\u7528\u6237\u53ef\u4ee5\u70b9\u51fb\u8bbe\u8ba1\u5668\u53f3\u4e0a\u89d2\u7684\u3010\u4fdd\u5b58\u3011/\u3010\u9884\u89c8\u3011 \u6309\u94ae\u8fdb\u884c \u4fdd\u5b58/\u9884\u89c8, \u9884\u89c8\u64cd\u4f5c\u9ed8\u8ba4\u4f1a\u4fdd\u5b58\u6570\u636e\uff1a"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"\u4fdd\u5b58&\u9884\u89c8",src:a(462).Z,width:"1920",height:"937"})),(0,r.kt)("h3",{id:"58-git-\u63d0\u4ea4"},"5.8 git \u63d0\u4ea4"),(0,r.kt)("p",null,"\u5f00\u53d1\u5b8c\u6210\u540e\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7 \u3010git \u63d0\u4ea4\u9762\u677f\u3011\u6765\u63d0\u4ea4\u6240\u6709\u4fee\u6539\uff1a"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"\u4fdd\u5b58&\u9884\u89c8",src:a(9501).Z,width:"1920",height:"937"})),(0,r.kt)("h3",{id:"59-\u53d1\u5e03\u51fa\u7801"},"5.9 \u53d1\u5e03&\u51fa\u7801"),(0,r.kt)("p",null,"\u6700\u540e\u53ef\u4ee5\u901a\u8fc7\u3010\u5e94\u7528\u53d1\u5e03\u3011\u6a21\u5757\u6765\u53d1\u5e03\u5e94\u7528\uff0c\u8be6\u89c1 ",(0,r.kt)("a",{parentName:"p",href:"/website/docs/lowcode-development/development/develop-hello-world"},"\u53d1\u5e03\u4e00\u4e2a Hello World \u7ec4\u4ef6")," \uff0c\u6216\u8005\u70b9\u51fb\u3010\u51fa\u7801\u3011\u6309\u94ae\u8fdb\u884c ",(0,r.kt)("inlineCode",{parentName:"p"},"ProCode")," \u51fa\u7801\uff0c\u5982\u4e0b\u56fe\u6240\u793a"),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"\u51fa\u7801",src:a(4430).Z,width:"1920",height:"937"})))}s.isMDXComponent=!0},5443:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/app_create-051dd20b6e77e6bd5d1e999e0bbf9d12.png"},4098:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/assets_npm_add-0121b8cdf6a27acfaba58988c4037561.png"},5116:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/assets_npm_bff-ee5e007a629757a7d8fd532995962898.png"},9662:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/branches_create-51a2b5fbaf7881ec726a10f3ea7dea66.png"},7727:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/global_add_func-6117c10563e0d4225a54a2d64acec34a.png"},312:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/global_config-e5575bf2b560170ee104f976352b7a53.png"},6814:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/members_create-28345c05b121fc953d0668c20a16628e.png"},2650:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_add_api-398f83d92187f7623fc3bd8f2cb9a811.png"},3714:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_add_func-7c956a4e75b2e1265297adebf84455e0.png"},3203:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_bind_data-43d20f889acfc1801f7904472f3368f7.png"},2600:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_bind_func-6c3ba1d420df48b4ab7011263eab7f74.png"},4430:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_code-73902d0eec78916a9a105e0894ea03af.png"},9501:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_commit-e6cb6c03ce7c4699a1e229eb4cc7d9a4.png"},1040:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_create-582d5677202f15c0c6124f2dc1503501.png"},1165:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_edit-de0089afadde64e209a272050cba0764.png"},1531:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_edit_props-4d476b11e959acd3818d3a4cf44164e6.png"},9619:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_entry-6073242a2bae6e2aab50cdfd7823c8a2.png"},462:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/page_preview-e9da425c71c6168a46544d25db5bebf4.png"}}]); \ No newline at end of file diff --git a/assets/js/c2c9b4b3.89c59f08.js b/assets/js/c2c9b4b3.3b7c4a87.js similarity index 69% rename from assets/js/c2c9b4b3.89c59f08.js rename to assets/js/c2c9b4b3.3b7c4a87.js index fa386164d..d0be1e2bc 100644 --- a/assets/js/c2c9b4b3.89c59f08.js +++ b/assets/js/c2c9b4b3.3b7c4a87.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1129],{3601:e=>{e.exports=JSON.parse('{"title":"\u5feb\u901f\u5f00\u59cb","description":"5 \u5206\u949f\u5feb\u901f\u4f53\u9a8c\u670d\u52a1\u95e8\u6237\u7684\u4f7f\u7528","slug":"/category/\u5feb\u901f\u5f00\u59cb","permalink":"/website/docs/category/\u5feb\u901f\u5f00\u59cb","navigation":{"previous":{"title":"\u603b\u89c8","permalink":"/website/docs/intro"},"next":{"title":"\u9884\u5148\u51c6\u5907","permalink":"/website/docs/quick-start/prerequisite"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1129],{3601:e=>{e.exports=JSON.parse('{"title":"\u5feb\u901f\u5f00\u59cb","description":"5 \u5206\u949f\u5feb\u901f\u4f53\u9a8c\u670d\u52a1\u95e8\u6237\u7684\u4f7f\u7528","slug":"/category/\u5feb\u901f\u5f00\u59cb","permalink":"/website/docs/category/\u5feb\u901f\u5f00\u59cb","navigation":{"previous":{"title":"\u6700\u65b0\u52a8\u6001","permalink":"/website/docs/version"},"next":{"title":"\u5b89\u88c5 Kubebb","permalink":"/website/docs/quick-start/quick-install"}}}')}}]); \ No newline at end of file diff --git a/assets/js/c4afd168.24f026b9.js b/assets/js/c4afd168.24f026b9.js deleted file mode 100644 index c1d2b9d06..000000000 --- a/assets/js/c4afd168.24f026b9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9067],{3905:(e,t,r)=>{r.d(t,{Zo:()=>m,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var p=n.createContext({}),s=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},m=function(e){var t=s(e.components);return n.createElement(p.Provider,{value:t},e.children)},c="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},k=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,p=e.parentName,m=l(e,["components","mdxType","originalType","parentName"]),c=s(r),k=a,f=c["".concat(p,".").concat(k)]||c[k]||u[k]||o;return r?n.createElement(f,i(i({ref:t},m),{},{components:r})):n.createElement(f,i({ref:t},m))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=k;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:a,i[1]=l;for(var s=2;s{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var n=r(7462),a=(r(7294),r(3905));const o={sidebar_position:5},i="\u8def\u7ebf\u56fe",l={unversionedId:"core/roadmap",id:"core/roadmap",title:"\u8def\u7ebf\u56fe",description:"v0.1.0",source:"@site/docs/core/roadmap.md",sourceDirName:"core",slug:"/core/roadmap",permalink:"/website/docs/core/roadmap",draft:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6\u8bc4\u6d4b",permalink:"/website/docs/core/rating"},next:{title:"\u5e95\u5ea7Kit",permalink:"/website/docs/category/\u5e95\u5ea7kit"}},p={},s=[{value:"v0.1.0",id:"v010",level:2},{value:"v0.2.0",id:"v020",level:2}],m={toc:s},c="wrapper";function u(e){let{components:t,...r}=e;return(0,a.kt)(c,(0,n.Z)({},m,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u8def\u7ebf\u56fe"},"\u8def\u7ebf\u56fe"),(0,a.kt)("h2",{id:"v010"},"v0.1.0"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u652f\u6301\u7ba1\u7406\u7ec4\u4ef6\u4ed3\u5e93 ",(0,a.kt)("strong",{parentName:"li"},"Repository"),(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u652f\u6301\u4e0e Helm \u4ed3\u5e93\u517c\u5bb9\u7684 ",(0,a.kt)("strong",{parentName:"li"},"Repository Server")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Watcher")," \u76d1\u89c6 ",(0,a.kt)("strong",{parentName:"li"},"Repository")))),(0,a.kt)("li",{parentName:"ul"},"\u5b9e\u73b0 ",(0,a.kt)("strong",{parentName:"li"},"Component")," \u7ba1\u7406",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Watcher")," \u5b9e\u73b0 ",(0,a.kt)("strong",{parentName:"li"},"Components")," \u7684 CRUD \u64cd\u4f5c"))),(0,a.kt)("li",{parentName:"ul"},"\u652f\u6301 ",(0,a.kt)("strong",{parentName:"li"},"ComponentPlan")," \u548c ",(0,a.kt)("strong",{parentName:"li"},"Subscription"),(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"\u5141\u8bb8\u7528\u6237\u8ba2\u9605 ",(0,a.kt)("strong",{parentName:"li"},"Component")," \u7684\u6700\u65b0\u7248\u672c\u66f4\u6539"),(0,a.kt)("li",{parentName:"ul"},"\u4f7f\u7528\u4e0e Helm Chart \u517c\u5bb9\u7684 ",(0,a.kt)("strong",{parentName:"li"},"ComponentPlan")," \u8ba1\u5212\u7ec4\u4ef6\u90e8\u7f72")))),(0,a.kt)("h2",{id:"v020"},"v0.2.0"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u652f\u6301\u5185\u6838\u5404\u63a7\u5236\u5668\u7684",(0,a.kt)("strong",{parentName:"li"},"Events"),"\u8bb0\u5f55"),(0,a.kt)("li",{parentName:"ul"},"\u9002\u914d Kubebb \u5e95\u5ea7\u670d\u52a1"),(0,a.kt)("li",{parentName:"ul"},"\u57fa\u4e8e",(0,a.kt)("a",{parentName:"li",href:"https://tekton.dev/"},"Tekton Pipeline")," \u4ece ",(0,a.kt)("strong",{parentName:"li"},"\u5b89\u5168\u6027"),"\u3001",(0,a.kt)("strong",{parentName:"li"},"\u53ef\u9760\u6027")," \u548c ",(0,a.kt)("strong",{parentName:"li"},"\u53ef\u7528\u6027")," \u4e09\u4e2a\u7ef4\u5ea6\u5bf9 ",(0,a.kt)("strong",{parentName:"li"},"Component")," \u8fdb\u884c\u8bc4\u7ea7",(0,a.kt)("strong",{parentName:"li"},"Rating")),(0,a.kt)("li",{parentName:"ul"},"\u57fa\u4e8e",(0,a.kt)("a",{parentName:"li",href:"https://tekton.dev/"},"Tekton Pipeline"),"\u5b9e\u73b0",(0,a.kt)("strong",{parentName:"li"},"ComponentPlan"),"\u7ec4\u4ef6\u90e8\u7f72\u524d\u7684\u9884\u5148\u6821\u9a8c",(0,a.kt)("strong",{parentName:"li"},"Check")),(0,a.kt)("li",{parentName:"ul"},"\u7ec4\u4ef6\u4ed3\u5e93",(0,a.kt)("strong",{parentName:"li"},"Repository")," \u4e2d\u542f\u7528 ",(0,a.kt)("strong",{parentName:"li"},"auth")," \u548c ",(0,a.kt)("strong",{parentName:"li"},"OCI")),(0,a.kt)("li",{parentName:"ul"},"\u5b9e\u73b0\u4e0e\u4f4e\u4ee3\u7801\u5e73\u53f0\u96c6\u6210")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.a6367de7.js b/assets/js/c4f5d8e4.ba3c1e12.js similarity index 97% rename from assets/js/c4f5d8e4.a6367de7.js rename to assets/js/c4f5d8e4.ba3c1e12.js index f6695ee41..22c758155 100644 --- a/assets/js/c4f5d8e4.a6367de7.js +++ b/assets/js/c4f5d8e4.ba3c1e12.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4193],{8506:(e,t,a)=>{a.r(t),a.d(t,{default:()=>tm});var s=a(7294),l=a(6010),c=a(9960),m=a(2263),r=a(7961),n=a(7462);const h={features:"features_t9lD",bg:"bg_sexP",bg1:"bg1_JcTR",bg2:"bg2_NiFc",vgJgjBFw:"vgJgjBFw_Dj_n",bg3:"bg3_kGex",title:"title_iMVk",desc:"desc_yhLo"},i=[{title:"\u63d0\u4f9b\u5e95\u5ea7\u670d\u52a1\uff0c\u5feb\u901f\u5f00\u542f\u642d\u5efa",description:s.createElement(s.Fragment,null,"\u63d0\u4f9b\u8d26\u53f7\u3001\u8ba4\u8bc1(OIDC)\u3001\u6743\u9650(RBAC)\u3001\u5ba1\u8ba1(Audit)\u7684\u57fa\u7840\u529f\u80fd\uff0c\u91c7\u7528\u66f4\u52a0\u6807\u51c6\u7684\u6280\u672f\u65b9\u5f0f\u63d0\u4f9b\u6784\u5efa\u7684\u5e95\u5ea7\u670d\u52a1")},{title:"\u5185\u6838\u9a71\u52a8\u7684\u58f0\u660e\u5f0f\u7ec4\u4ef6\u7ba1\u7406",description:s.createElement(s.Fragment,null,"\u63d0\u4f9b\u58f0\u660e\u5f0f\u7684\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406\u3001\u7ec4\u4ef6\u540c\u6b65\u3001\u7ec4\u4ef6\u8ba2\u9605\u90e8\u7f72\u4ee5\u53ca\u591a\u7ef4\u5ea6\u7684\u7ec4\u4ef6\u8bc4\u7ea7,\u5b8c\u6574\u9002\u914dHelm\u751f\u6001,\u96c6\u6210\u5fae\u524d\u7aef\u6846\u67b6")},{title:"\u7075\u6d3b\u7684\u7ec4\u4ef6\u5f00\u53d1\u6a21\u5f0f",description:s.createElement(s.Fragment,null,"\u57fa\u4e8e\u5fae\u524d\u7aef\u6846\u67b6\u548c\u4f4e\u4ee3\u7801\u5f00\u53d1\uff0c\u5b9a\u4e49\u4e86\u6807\u51c6\u7684\u7ec4\u4ef6\u5c01\u88c5\u53ca\u53d1\u5e03\u6a21\u5f0f\uff0c\u8ba9\u5f00\u53d1\u8005\u53ef\u4ee5\u5728\u5e95\u5ea7\u4e4b\u4e0a\u6309\u7167\u5f00\u53d1\u89c4\u8303\u8fdb\u884c\u7ec4\u4ef6\u7684\u5feb\u901f\u5f00\u53d1\u548c\u53d1\u5e03\uff0c\u5e76\u5728\u7edf\u4e00\u7684\u670d\u52a1\u95e8\u6237\u4e0a\u5bf9\u5916\u63d0\u4f9b\u670d\u52a1")}];function d(e){let{idx:t,title:a,description:c}=e;return s.createElement("div",{className:(0,l.Z)("col col--4")},s.createElement("div",{className:"text--center"},s.createElement("div",{className:(0,l.Z)(h.bg,h["bg"+t])})),s.createElement("div",{className:"text--center padding-horiz--md"},s.createElement("div",{className:h.title},a),s.createElement("div",{className:h.desc},c)))}function E(){return s.createElement("section",{className:(0,l.Z)(h.features)},s.createElement("div",{className:"container"},s.createElement("div",{className:"row"},i.map(((e,t)=>s.createElement(d,(0,n.Z)({key:t,idx:t+1},e)))))))}const o={frames:"frames_jZGb",title:"title_xEGb",tabs:"tabs_cBYP",content:"content_fmdQ",tabBg:"tabBg_bq5e",contentTitle:"contentTitle_HnzL",contentDesc:"contentDesc_MErp",tab:"tab_FEFo",active:"active_PTVm",desc:"desc_AWx6"};var v,p,_,f,z,N,M,I,D,y,x,g,u,b,V,S,L,X,G,H,C,w,k,P,U,O,T,B,F,Z,j,K,A,q,W,R,J,Y,Q,$,ee,te,ae,se,le,ce,me,re,ne,he,ie,de,Ee,oe,ve,pe,_e,fe,ze,Ne,Me,Ie,De,ye,xe,ge,ue,be,Ve,Se,Le,Xe,Ge,He,Ce,we,ke,Pe,Ue,Oe,Te,Be,Fe,Ze,je,Ke,Ae,qe,We,Re,Je,Ye,Qe,$e,et,tt,at,st,lt,ct;function mt(){return mt=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:a,...l}=e;return s.createElement("svg",mt({id:"\\u56FE\\u5C42_1",xmlns:"http://www.w3.org/2000/svg",x:0,y:0,viewBox:"0 0 1220 650",style:{enableBackground:"new 0 0 1220 650"},xmlSpace:"preserve","aria-labelledby":a},l),t?s.createElement("title",{id:a},t):null,v||(v=s.createElement("style",null,".st0{fill:#f5f7fc}.st1{fill:#fff}.st2{opacity:.8}.st3{font-family:'PingFang-SC-Medium'}.st4{font-size:24px}.st5{opacity:.1;fill:#faad14}.st6{font-size:20px}.st12{font-family:'PingFang-SC-Bold'}.st13{opacity:.7}.st14{font-family:'PingFang-SC-Regular'}.st15{font-size:16px}.st24{fill:#231f20}.st25{fill:#67cfe3}.st26{fill:#dfcaa3}.st28{fill-opacity:.75}.st28,.st29{fill:#ff7c00}.st32{fill:#4461eb}.st33{fill:#29dd90}.st40{opacity:.8}.st40,.st42{fill:#4461eb}.st42,.st44{opacity:.6}.st46{opacity:.8;fill:#29dd90}")),p||(p=s.createElement("path",{className:"st0",d:"M0 0h1220v650H0z"})),_||(_=s.createElement("path",{className:"st1",d:"M19.2 570.1h1180v60H19.2zM1139.2 20h60v530h-60zM19.2 500.1h354v50h-354zM392.2 500.1h354v50h-354zM765.2 500.1h354v50h-354z"})),f||(f=s.createElement("g",{className:"st2"},s.createElement("text",{transform:"translate(100.188 532.235)",className:"st3 st4"},"\u591a\u96c6\u7fa4\u591a\u79df\u6237\u7ba1\u7406"))),z||(z=s.createElement("g",{className:"st2"},s.createElement("text",{transform:"translate(521.188 532.236)",className:"st3 st4"},"\u83dc\u5355\u7ba1\u7406"))),N||(N=s.createElement("g",{className:"st2"},s.createElement("text",{transform:"translate(858.188 532.236)",className:"st3 st4"},"\u89d2\u8272\u548c\u6210\u5458\u7ba1\u7406"))),M||(M=s.createElement("path",{className:"st1",d:"M19.2 20h1100v270H19.2z"})),I||(I=s.createElement("path",{className:"st5",d:"M237.5 120h513.6v70H237.5zM237.5 40h513.6v70H237.5z"})),D||(D=s.createElement("g",{id:"XMLID_16_",className:"st2"},s.createElement("text",{transform:"translate(257.54 162.128)",className:"st3 st6"},"\u5b58\u50a8"))),y||(y=s.createElement("path",{className:"st1",d:"M518.2 180H323c-1.3 0-2.4-1.1-2.4-2.4v-45.2c0-1.3 1.1-2.4 2.4-2.4h195.2c1.3 0 2.4 1.1 2.4 2.4v45.2c0 1.3-1.1 2.4-2.4 2.4zM518.2 100H323c-1.3 0-2.4-1.1-2.4-2.4V52.4c0-1.3 1.1-2.4 2.4-2.4h195.2c1.3 0 2.4 1.1 2.4 2.4v45.2c0 1.3-1.1 2.4-2.4 2.4zM728.7 100H533.5c-1.3 0-2.4-1.1-2.4-2.4V52.4c0-1.3 1.1-2.4 2.4-2.4h195.2c1.3 0 2.4 1.1 2.4 2.4v45.2c0 1.3-1.1 2.4-2.4 2.4z"})),x||(x=s.createElement("path",{className:"st5",d:"M237.5 200h513.6v70H237.5z"})),g||(g=s.createElement("g",{id:"XMLID_25_",className:"st2"},s.createElement("text",{transform:"translate(257.54 242.128)",className:"st3 st6"},"\u89c2\u6d4b"))),u||(u=s.createElement("path",{className:"st1",d:"M518.2 259.8H323c-1.3 0-2.4-1.1-2.4-2.4v-44.9c0-1.3 1.1-2.4 2.4-2.4h195.2c1.3 0 2.4 1.1 2.4 2.4v44.9c0 1.3-1.1 2.4-2.4 2.4zM728.7 259.5H533.5c-1.3 0-2.4-1.1-2.4-2.4v-44.9c0-1.3 1.1-2.4 2.4-2.4h195.2c1.3 0 2.4 1.1 2.4 2.4v44.9c0 1.3-1.1 2.4-2.4 2.4z"})),s.createElement("text",{transform:"translate(1169.188 227.748)",className:"st2",style:{writingMode:"tb"}},s.createElement("tspan",{x:0,y:0,className:"st3",style:{fontSize:24,glyphOrientationVertical:1}},"OIDC "),s.createElement("tspan",{x:0,y:66.5,className:"st3",style:{fontSize:24,glyphOrientationVertical:0}},"\u8ba4\u8bc1")),s.createElement("path",{style:{opacity:.1,fill:"#faad14",stroke:"#fff",strokeMiterlimit:10},d:"M40.5 39.9h180.2v230H40.5z"}),s.createElement("text",{id:"XMLID_37_",transform:"translate(57.54 89.69)",className:"st12 st4",style:{fill:"#faad14"}},"\u81ea\u5b9a\u4e49\u4ed3\u5e93"),b||(b=s.createElement("text",{transform:"translate(58.478 122.226)",id:"XMLID_15_",className:"st13"},s.createElement("tspan",{x:0,y:0,className:"st14 st15"},"\u81ea\u5b9a\u4e49\u7ec4\u4ef6\uff0c\u5feb"),s.createElement("tspan",{x:0,y:23.2,className:"st14 st15"},"\u901f\u53d1\u5e03\u3001\u5b89\u88c5\u3001"),s.createElement("tspan",{x:0,y:46.4,className:"st14 st15"},"\u5e94\u7528"))),V||(V=s.createElement("g",{id:"XMLID_22_",className:"st2"},s.createElement("text",{transform:"translate(257.54 82.128)",className:"st3 st6"},"AI"))),S||(S=s.createElement("path",{className:"st5",d:"M762.1 40h336.4v70H762.1zM761.1 120h336.4v70H761.1zM761.1 200h336.4v70H761.1z"})),L||(L=s.createElement("g",{id:"XMLID_31_",className:"st2"},s.createElement("text",{transform:"translate(781.57 82.128)",className:"st3 st6"},"CI/CD"))),X||(X=s.createElement("path",{className:"st1",d:"M728.7 180H533.5c-1.3 0-2.4-1.1-2.4-2.4v-45.2c0-1.3 1.1-2.4 2.4-2.4h195.2c1.3 0 2.4 1.1 2.4 2.4v45.2c0 1.3-1.1 2.4-2.4 2.4z"})),G||(G=s.createElement("g",{id:"XMLID_21_",className:"st13"},s.createElement("text",{transform:"translate(399.397 242.584)",className:"st3 st6"},"skywalking"))),s.createElement("path",{d:"M382.3 224.2h-.3c-.3 0-.6.1-.9.2-1.1.3-2 .9-2.8 1.6-.2.2-.7.7-.7.8h.2c.6-.1 1.7-.1 2.3 0h.2c.8.1 1.8.6 2.5 1 1.2.8 2.2 2 2.7 3.3.2.4.3 1 .4 1.3v.2c.1.6.1 1.4 0 2.1-.1.7-.5 1.9-.7 2.3-.1.2-.1.2.6-.1 1.3-.6 2.4-1.8 3.1-3.1.2-.5.5-1.2.5-1.6v-.2c.1-.1.1-1.5 0-2-.3-2.8-2.4-5.1-5-5.7-.2-.1-.5-.1-.8-.1h-1.3z",style:{fill:"#d8d8d8"}}),s.createElement("path",{d:"M355.1 226.1h-1.4c-.5.1-1.2.3-1.7.5-1.3.6-2.1 1.6-2.3 2.9-.1.7-.1 1.6 0 2.3.2 1 .8 2 1.9 2.8.2.1 1 .7 1 .7l.4.2c.2.1.3.2.4.2l3.6 2.1.2.2c.1.1.3.3.5.4.3.3.5.6.6 1 .1.5 0 1.2-.2 1.6-.2.5-.8.8-1.5.9-.5.1-2 .1-3.5 0h-2.2c-.3 0-.4 0-.5.2-.1.1-.1.2-.1 1.1v1.1c.1.2.3.4.7.4.4.1.4.1.9.2.4.1.8.1 1.1.1h.4c.6.1 2.1.1 2.8 0 .4 0 .6 0 1.2-.1.3-.1 1.2-.3 1.5-.4.6-.3.9-.4 1.3-.7.5-.3.9-.8 1.2-1.3l.3-.6v-.1c.1-.2.2-.4.2-.8.3-1.3.1-2.6-.5-3.7-.3-.4-.8-1.1-1.2-1.4 0 0-.2-.1-.3-.2-.4-.3-1.1-.7-1.9-1.2-.1 0-.4-.2-.8-.4l-.8-.4c-.1-.1-.3-.2-.5-.3-.2-.1-.3-.2-.3-.2s-1-.6-1.3-.8c-.4-.3-.8-.6-.9-.9-.2-.4-.3-.9-.1-1.4.2-.5.6-.9 1.3-1.1.2-.1.4-.1.8-.1h1.9c.9 0 2.4.1 2.9.2h1c.2-.1.2-.2.2-1.3s0-1.1-.2-1.3c-.1-.1-.6-.2-.9-.2l-.5-.1c-.3 0-.6-.1-.9-.1-.3 0-.6-.1-.8-.1h-.5c-.4.1-2.5 0-2.5.1zm8.6 4.8c-.2 0-.3.2-.4.4 0 .1 0 .3.1.7v.4s.1.3.1.6c.1.3.1.7.2.9 0 .2.1.4.1.5 0 .1.1.5.2 1.1l.2 1c0 .1 0 .2.1.3 0 .1.1.3.1.3 0 .1.1.4.2.8s.1.7.2.8V239c.1.6.2 1 .4 1.9.1.6.2 1.2.3 1.4.2 1.1.3 1.4.5 1.8.2.5.6.7 1.2.9h1c.9 0 1.1 0 1.4-.2.2-.1.5-.3.6-.4.3-.3.5-.7.6-1.2.2-.8.5-1.7.7-2.6 0-.1.1-.4.2-.7.1-.3.2-.6.2-.7 0 0 .1-.3.2-.7.3-1 .5-2.1.7-2.7.2-.6.2-.8.3-.7 0 0 .2.8.3 1 0 .1.3 1.3.4 1.7 0 .1.2.6.3 1.1.1.5.3 1.1.4 1.5.1.3.3 1 .4 1.6.3 1.2.4 1.4.5 1.7.2.5.6.8 1 1 .4.1.5.2 1.4.2.8 0 1.1 0 1.4-.2.5-.2.8-.7 1-1.5.1-.3.1-.3.1-.5 0-.1.1-.3.1-.5l.1-.4v-.4c0-.1.1-.3.1-.5s.1-.4.1-.4v-.3c0-.1 0-.2.1-.3 0 0 .1-.4.1-.8.1-.4.1-.7.1-.8l.2-1.2.2-1.2s0-.2.1-.2c0-.1 0-.2.1-.3v-.4c0-.1.1-.7.2-.9 0 0 0-.2.1-.4 0-.2.1-.4.1-.4s0-.2.1-.4c0-.2.1-.4.1-.4 0-.1.1-.4.1-.7.1-.3.1-.7.1-.7 0-.2-.1-.3-.2-.4-.1-.1-.1-.1-1.5-.1-1.2 0-1.3 0-1.4.1-.1.1-.2.2-.2.4v.4c0 .1 0 .2-.1.3 0 .1 0 .3-.1.3s0 .2-.1.3c0 .1 0 .3-.1.4v1s0 .2-.1.4c0 .2-.1.8-.1.9 0 .1-.1.5-.1.7l-.1.6c0 .2 0 .3-.1.3V237.3c0 .1-.1.5-.1.7v.2c0 .2 0 .3-.1.4v.2c0 .3-.1.6-.1.9V240.8c0 .3-.1.4-.1.5 0 0-.1 0-.1-.1s-.2-.8-.3-1.2c0 0-.2-.9-.5-1.9-.3-1-.5-1.9-.5-2-.1-.3-.1-.6-.2-.8l-.2-.8v-.1c0-.1-.1-.3-.1-.4-.1-.2-.1-.4-.1-.4 0-.2-.3-1.2-.4-1.3-.2-.4-.4-.6-.8-.7h-2.7c-.4.1-.6.2-.7.6-.1.2-.3.8-.3 1.1l-.2.8c-.1.4-.2.7-.2.8-.2.9-.5 1.9-.7 2.8v.1l-.2.8-.2.8s0 .2-.1.4l-.1.3s-.1.4-.1.5c0 0 0 .2-.1.3-.1.4-.1.5-.2.5s-.1-.2-.2-.6v-.4c0-.2 0-.3-.1-.5 0-.2-.1-.4-.1-.5V238.5c0-.1 0-.3-.1-.4 0-.2-.1-.4-.1-.5v-.4c0-.2 0-.3-.1-.5-.1-.3-.1-.8-.1-.9v-.4c0-.1 0-.2-.1-.8 0-.3-.1-.5-.1-.5v-.3c0-.1 0-.3-.1-.4 0-.1 0-.2-.1-.3 0-.1 0-.3-.1-.4v-.4c0-.1 0-.2-.1-.4-.1-.4-.1-.7-.2-1.1 0-.3-.1-.4-.3-.5-.1-.1-.2-.1-1.4-.1-1.1.7-1.7.7-1.8.7z",style:{fill:"#1890ff"}}),H||(H=s.createElement("g",{id:"XMLID_20_",className:"st13"},s.createElement("text",{transform:"translate(399.697 82.527)",className:"st3 st6"},"jupyter"))),s.createElement("path",{d:"M353.9 75.9c0 1.3-.1 1.7-.3 1.9-.3.2-.6.4-1 .4l.1.7c.6 0 1.2-.2 1.6-.6.2-.3.4-.6.6-1 .1-.4.2-.7.1-1.1v-4.7h-1v4.4zm7.1-.6c0 .6 0 1 .1 1.4h-.9l-.1-.9c-.2.3-.4.6-.7.7-.3.2-.6.2-1 .2-.8 0-1.8-.5-1.8-2.2v-3h1v2.9c0 1 .3 1.7 1.2 1.7.2 0 .3 0 .5-.1s.3-.2.4-.3c.2-.2.2-.2.3-.4.1-.2.1-.3.1-.5v-3.2h1v3.7zm4.5-3.8c-.4 0-.7.1-1 .2-.3.2-.6.5-.8.8l-.1-.9h-.9c.1.5.1 1 .1 1.7v5.6h1V76c.2.2.4.5.7.6.3.2.6.2.9.2 1.2 0 2.4-1 2.4-2.8-.1-1.5-1.1-2.5-2.3-2.5zm-.3 4.6c-.3 0-.6-.1-.9-.3-.2-.2-.5-.5-.6-.8 0-.2-.1-.2-.1-.4v-.9c0-.4.2-.8.5-1 .2-.3.6-.5 1-.5 1 0 1.5.9 1.5 1.9.1 1.2-.4 2-1.4 2zm4.2-4.6 1.1 3c.2.3.2.7.3 1 .1-.3.2-.7.3-1.1l1-3h1l-1.4 3.7c-.7 1.8-1.1 2.7-1.8 3.3-.3.3-.7.5-1.2.6l-.2-.8c.3-.1.6-.2.8-.5.3-.3.6-.6.8-1 0-.1.1-.2.1-.2 0-.1 0-.2-.1-.2l-1.9-4.8h1.2zm6.4-1.5v1.5h1.4v.7h-1.4V75c0 .6.2 1 .7 1 .2 0 .4 0 .6-.1l.1.7c-.2.1-.6.2-.9.2-.2 0-.4 0-.6-.1s-.3-.2-.5-.3c-.3-.4-.4-.9-.4-1.4v-2.9h-.8v-.7h.8v-1.3l1-.1zm6.8 3.9c0-1-.4-2.5-2.2-2.5-1.5 0-2.5 1.2-2.5 2.8 0 .3 0 .7.2 1s.3.6.6.9c.2.2.6.5.9.6.3.2.6.2 1 .2.6 0 1.2-.1 1.8-.3l-.2-.7c-.5.2-1 .3-1.4.2-.2 0-.5 0-.7-.1-.2-.1-.4-.2-.6-.4-.2-.2-.3-.4-.4-.6-.1-.2-.1-.5-.1-.7h3.7v-.4zm-.9-.3h-2.8c0-.4.2-.8.4-1 .2-.3.6-.5 1-.5.2 0 .4.1.6.2s.3.2.5.3c.2.2.2.3.2.5.2.1.2.3.1.5zm2.3-.5c0-.6 0-1.1-.1-1.6h.9v1h.1c.1-.3.2-.6.6-.8.2-.2.6-.3.9-.3h.2v.9h-.3c-.3 0-.6.2-.9.4-.2.2-.4.6-.4.9 0 .2-.1.3-.1.5v2.8h-1l.1-3.8z",style:{fill:"#4e4e4e"}}),s.createElement("path",{d:"M383.6 57.2c0 .5-.1 1-.3 1.4-.2.4-.6.7-1 1-.4.2-.9.3-1.4.2-.5-.1-.9-.2-1.3-.6s-.6-.7-.7-1.2c-.1-.5-.1-1 .1-1.4.2-.5.5-.9.9-1.1.4-.3.9-.5 1.4-.5.3 0 .6 0 1 .2.3.2.6.2.8.5.2.2.4.5.6.7-.2.2-.1.5-.1.8z",style:{fill:"#767677"}}),s.createElement("path",{d:"M369.5 85.1c-6.4 0-12.1-2.3-14.9-5.7 1.1 3 3.2 5.7 5.8 7.5 2.6 1.8 5.8 2.9 9.1 2.9s6.4-1 9.1-2.9c2.6-1.8 4.7-4.5 5.8-7.5-2.8 3.4-8.4 5.7-14.9 5.7zm0-22c6.4 0 12.1 2.3 14.9 5.7-1.1-3-3.2-5.7-5.8-7.5-2.6-1.8-5.8-2.9-9.1-2.9s-6.4 1-9.1 2.9c-2.6 1.8-4.7 4.5-5.8 7.5 3-3.5 8.6-5.7 14.9-5.7z",style:{fill:"#f37726"}}),s.createElement("path",{d:"M355.3 62.3c-.3 0-.7-.1-1-.2-.3-.2-.6-.5-.6-.8-.2-.3-.2-.6-.2-1 .1-.3.2-.6.5-.9.2-.2.6-.4.9-.5s.7-.1 1 .1c.3.2.6.3.8.6s.3.6.3 1c0 .5-.2 1-.5 1.3-.2.1-.7.4-1.2.4z",style:{fill:"#616262"}}),s.createElement("path",{d:"M360.8 91.8c0 .6-.1 1.2-.4 1.8-.3.6-.7 1-1.3 1.2s-1.1.2-1.8.2c-.6-.1-1.1-.3-1.6-.7-.5-.4-.8-1-.9-1.5-.2-.6-.1-1.2.1-1.8.2-.6.6-1 1-1.4.5-.3 1-.6 1.7-.6.4 0 .8 0 1.2.2.4.2.7.3 1 .6.3.2.6.6.7 1 .1.2.2.6.3 1z",style:{fill:"#9e9e9e"}}),C||(C=s.createElement("g",{id:"XMLID_14_",className:"st13"},s.createElement("text",{transform:"translate(399.397 160.94)",className:"st3 st6"},"minio"))),s.createElement("path",{d:"m384.5 145.9-14.6 7.8c-.2.1-.5.1-.7 0l-14.6-7.8c-.3-.2-.7-.3-1-.3-1-.1-1.9.7-2 1.8v16.9h7.2v-8c0-.4.4-.7.8-.6.1 0 .2 0 .3.1l8.2 4.4c.8.4 1.8.4 2.6 0l8.6-4.4c.3-.2.8-.1 1 .3.1.1.1.2.1.3v8.1h7.2v-16.9c-.1-1-1-1.8-2-1.8-.4-.1-.8 0-1.1.1z",style:{fill:"#c72c48"}}),w||(w=s.createElement("g",{id:"XMLID_18_",className:"st13"},s.createElement("text",{transform:"translate(627.118 241.297)",className:"st3 st6"},"jaeger"))),k||(k=s.createElement("path",{className:"st24",d:"M587.8 251.1c-.6.1-2.3 1.1-3.8 1.4-1.5.3-2.8.4-3.2.6-.5.2-.8.5.1.8.9.3 5.2.5 5.6 0 .4-.5-.3-.6-1.2-.6-.7 0-.6-.2-.6-.3 0 0 0-.3 1.1-.4 1-.1 5.6-.6 5.5-1.1-.2-.5-2.9-.5-3.5-.4zM584 254.9c0 .1.4.2.9.1s.8-.3.8-.4c0-.1-.4-.2-.9-.1-.5 0-.8.2-.8.4zM581.9 254.6c0 .1.4.2 1 .2.5 0 .9-.2.9-.3 0-.1-.4-.2-.9-.2s-1 .2-1 .3z"})),P||(P=s.createElement("path",{className:"st24",d:"M580.6 254.4c0 .1.3.2.6.1s.6-.2.6-.3c0-.1-.3-.2-.6-.1s-.7.2-.6.3zM579.4 254.3c0 .1.3.1.6.1s.6-.2.6-.2c0-.1-.3-.1-.6-.1-.4 0-.6.1-.6.2zM579.1 253.9c0 .1.3.1.6.1s.6-.2.6-.2c0-.1-.3-.1-.6-.1s-.6.1-.6.2zM579.1 253.5c0 .1.3.1.5.1.3 0 .5-.1.5-.2s-.3-.1-.5-.1-.5.1-.5.2zM596.7 251.6c-1 .1-3.3-.1-3.6.5-.3.5.9.7 2.9.6 2-.2 4.8-.4 4.9-1 .1-.6-.5-.5-.6-.9-.1-.4.7-.4.9-1 .2-.6-1-.5-2.1-.5s-2.8.1-3 .7c-.2.6.8.6 1.5.7.7.1.5.4.5.4-.1.3-.4.4-1.4.5z"})),U||(U=s.createElement("path",{className:"st24",d:"M593.1 253c0 .2.4.3.9.3s.9-.1.9-.3c0-.2-.4-.3-.9-.3-.5.1-.9.2-.9.3zM595.7 253c0 .1.3.3.6.3s.6-.1.6-.3c0-.1-.3-.3-.6-.3s-.6.1-.6.3zM597.5 252.8c0 .1.3.2.6.2.4 0 .6-.1.6-.2s-.3-.2-.6-.2-.6.1-.6.2zM599.1 252.6c0 .1.2.2.5.2s.5-.1.5-.2-.2-.2-.5-.2-.5 0-.5.2zM600.3 252.3c0 .1.2.2.5.2s.5-.1.5-.2-.2-.2-.5-.2-.5.1-.5.2zM580 246.1c0 .3.6.6 1.7.8-.1-.6 0-1.1 0-1.6-1.1.3-1.7.6-1.7.8zm32.5-.7s0 .1-.1.1c-.1.3-.3.6-.6.8-.5.5-.9.8-1.3.9 2.2-.3 3.4-.7 3.4-1.1.1-.2-.4-.5-1.4-.7z"})),O||(O=s.createElement("path",{className:"st25",d:"M608.8 244.8c-.1-1-.6-1.5-.9-1.9-.4-.4-.7-.7-.6-1.4.1-.6.6-1 1.3-1.1-.5-3.2-1.2-7.2-2-10.6-.4-1.7-1.1-2.9-2.1-3.7-1.1.5-2.4 1.1-3.8 1.8-1 .4-2.1.9-3.1 1.3-.8.9-1.7 1.7-2.3 2-.4.2-.7.2-1 .2-.7 0-1.1-.3-1.3-.6-.2.1-.4.1-.6.1-.2 0-.4 0-.7.1.1.3.1.6-.1.9-.2.3-.6.4-1.2.4-.8 0-1.9-.3-3.4-.9-.2-.1-.4-.2-.6-.2h-.3c-1.4 0-2.6 0-3.4-.1-1 2-.5 4.2-.2 6 .3 1.8 1.5 4.9 2.6 7.6.4.9.7 1.8 1.1 2.7 2.9.3 6.7.4 10.8.4 4.9 0 9.3-.2 12.4-.6-.2-.7-.5-2-.6-2.4zm-24.2-8.5c0-1.9 1.5-3.4 3.4-3.4s3.4 1.5 3.4 3.4c0 .9-.4 1.8-1 2.4-.2.2-.4.4-.7.5-.5.3-1.1.5-1.7.5-1.9 0-3.4-1.5-3.4-3.4zm9.1 7.2c-.7.2-1-.6-1.1-1 .3-.2.7-.4 1.2-.6.1.1.1.4.2.6 0 .4 0 .9-.3 1zm1.1-.3c-.2-.1-.3-.4-.4-.7-.1-.3-.1-.6-.2-.8h1.4c0 .2 0 .4.1.7v.1c0 .8-.7.8-.9.7zm3.1-2.1c-.3.2-.9.2-1.7.2h-1.9c-.8.1-1.5.5-2 .9-.2.1-.3.2-.4.3-.2.1-.5.2-.8.2-.5 0-1-.2-1.4-.6-.3-.3-.4-.7-.3-1.1.2-1.2 1.9-1.8 2.1-1.9l.3-.1v-.1c-.1-.6.6-1.2 1.6-1.3h.1c.8-.1 1.6.1 1.8.5h.4c.9 0 1.6.1 2.2.4.6.2.9.6 1 .9.1.8-.3 1.4-1 1.7zm.6-3.9c-1.9 0-3.4-1.5-3.4-3.4s1.5-3.4 3.4-3.4 3.4 1.5 3.4 3.4-1.5 3.4-3.4 3.4z"})),T||(T=s.createElement("path",{d:"m602.9 222.3-.2-.2H602.1c-.2 0-.4.1-.5.3-.1.1-.3.3-.3.4-.2.3-.3.5-.3.8-.1.2-.1.4-.1.6V224.5l.1-.2c.1-.1.2-.3.3-.5.1-.2.3-.4.4-.6l.3-.3c.1-.1.2-.1.3-.1h.4v.5c0 .1 0 .2-.1.4s-.1.4-.1.6c0 .1-.1.2-.1.2s.1-.1.1-.2c.1-.2.2-.3.3-.5.1-.1.1-.2.2-.4.1-.1.1-.3.1-.5-.1-.3-.1-.4-.2-.6 0 .1 0 .1 0 0zM602.5 222.6z"})),B||(B=s.createElement("path",{className:"st24",d:"M581.7 228.8c.1 0 .1 0 0 0zm.5-1.3c.1.2.2.3.3.5 0 .1.1.1.1.1v-.2c0-.1-.1-.3-.1-.5v-.7s.1 0 .1.1l.3.3c.1.1.2.2.2.3.2.2.3.4.4.6.1.1.2.3.3.4 0 .1.1.1.1.2v-.2c0-.2-.1-.3-.1-.5-.1-.2-.2-.5-.3-.7-.1-.1-.1-.2-.2-.4-.1-.1-.2-.2-.3-.4-.1-.1-.2-.1-.3-.1H582.4c-.1 0-.2.1-.3.2-.1.1-.1.2-.1.3 0 .2 0 .3.1.5 0 0 0 .1.1.2z"})),F||(F=s.createElement("path",{className:"st26",d:"M583.7 248.5c.8 0 1.4-.4 1.8-1-.5-1-1.2-2.8-1.9-4.7-.2.2-.4.4-.7.8-.6.9-1.1 3.1-.5 4.2.3.5.7.7 1.3.7zm28.3-5.3c-.5-1.2-1.5-2.1-2.4-2.1h-.4c-.5 0-1.2.1-1.3.6-.1.4.1.6.4.9.4.4.9 1 1.1 2.1.2 1.3.5 2 1 2 .2 0 .6-.1 1.3-.7.7-.7.6-2 .3-2.8z"})),Z||(Z=s.createElement("path",{className:"st24",d:"M586.6 237.5c0 .6.5 1.1 1.1 1.1s1.1-.5 1.1-1.1-.5-1.1-1.1-1.1-1.1.5-1.1 1.1zM597 235c0 .6.5 1.1 1.1 1.1s1.1-.5 1.1-1.1-.5-1.1-1.1-1.1-1.1.5-1.1 1.1z"})),s.createElement("path",{d:"M584.7 225.5c.8.2 1.8.3 2.8.3 1.7 0 5.2-.3 10.1-2.5h.1c0-.3 0-.5.1-.8.1-.5.3-.9.6-1.2-.1-.2-.1-.3-.1-.4-.6-.3-5.3-2.1-7.7-2.1-.2 0-.5 0-.6.1-2.2.4-5.5 4.2-5.6 4.8v1.7l.3.1zm0 5.3h-.2c-.5 0-.9-.3-1-.7v-.1c-.2.1-.5.3-.7.5l-.4.3-.3-.4c-.1-.1-.5-.7-.9-1.4-.7.3-1.3.7-1.4 1.1v.1c.1 0 .8.5 4.9.6zm8.6-1.1c.4-.2.8-.2 1.1.1 0 0 .1 0 .2-.1.5-.2 2.1-2 3.3-3.4 0-.1.1-.1.1-.1-2.8 1.2-6.8 2.6-10.5 2.6-.6 0-1.2 0-1.7-.1l.1.2-.5.2s-.1 0-.2.1c.6.1 1.4.4 2.4.8 1.9.8 2.6.8 2.8.8.3-.1.6-.1.8 0 .5 0 .9-.1 1.1-.1.1 0 .3 0 .5-.1 0-.4.2-.8.5-.9zm10.9-5.6c-.1.8-.4 1.7-.6 2l-.2.2c.7-.4 1.4-.7 2-1 2-1.1 2.2-1.6 2.2-1.7v-.1s-.2-.2-.8-.2c-.7 0-1.6.2-2.6.4v.4zm-.8 2.2h-1.5c-.7 0-1.7 0-2.5.2.2.3.1.7-.1 1-.3.4-.6.7-.9 1.1l2.1-.9c1.1-.6 2.1-1 2.9-1.4z",style:{fill:"#648c1a"}}),j||(j=s.createElement("path",{className:"st26",d:"M597.9 223.8c-2 .9-6.3 2.5-10.3 2.5-1 0-2-.1-3-.4.1.2.2.3.3.5.3.6.6 1.2.7 1.6.5.1 1.1.1 1.9.1 2.3 0 5.9-.5 10.9-2.8.1-.2.2-.6.3-.9h-.2c-.2 0-.5-.2-.6-.6z"})),K||(K=s.createElement("path",{className:"st25",d:"M581.8 228.8c.4.6.7 1.1.7 1.1 1.2-.8 2.8-1.4 2.8-1.4s0-.1-.1-.3c0-.1-.1-.2-.1-.3-.1-.1-.1-.2-.2-.4 0-.1-.1-.1-.1-.2-.1-.1-.1-.3-.2-.4-.1-.2-.3-.5-.4-.7-.5-.7-1.1-1.3-1.8-1.3-.2 0-.4.1-.7.2-1.2.8-.6 2.5.1 3.7zm.2-2.1c0-.1 0-.2.1-.3.1-.1.2-.2.3-.2H582.7c.1 0 .2.1.3.1.1.1.2.2.3.4.1.1.2.2.2.4.1.2.2.5.3.7.1.2.1.3.1.5v.2s0-.1-.1-.2-.2-.3-.3-.4c-.1-.2-.3-.4-.4-.6-.1-.1-.2-.2-.2-.3l-.3-.3-.1-.1v.7c0 .2.1.4.1.5v.2l-.1-.1c-.1-.1-.2-.3-.3-.5-.1-.1-.1-.2-.1-.3-.1-.1-.1-.2-.1-.4zm.4-2.1v.3-.3z"})),A||(A=s.createElement("path",{className:"st26",d:"M599.2 220.9h.2c.4.1.6.5.7 1 .7-1 1.5-1.5 2.4-1.5.4 0 .7.1.9.2.4-.5.7-.9.7-.9-.3.1-1 .2-1 .2 2.7-1 2.5-3.7 2.5-3.7 0 .5-1.4 1.6-1.4 1.6.1-.4-.2-.9-.2-.9.1.5-1.6 1.9-1.6 1.9.1-.2 0-.7 0-.7-.1.5-.8.7-.8.7.5-.6 1.3-3.5.7-3.7-.6-.2-1.5 1.9-1.5 1.9 0-.5-.3-.5-.3-.5.1 1.5-1.1 2.8-1.1 2.8-.1-.3-.6-.5-.6-.5.2.3 0 1.9-.1 2.3.1-.1.3-.2.5-.2z"})),q||(q=s.createElement("path",{d:"M598.5 223.9s.1 0 0 0c.1 0 .1 0 0 0 .1 0 .1 0 0 0l.1.1h.1c.1 0 .2-.1.3-.1l.3-.6c.1-.2.2-.3.3-.5.1-.7 0-1.3-.3-1.3s-.7.5-.8 1.2c-.1.5-.1.9.1 1.2-.1-.1-.1 0-.1 0z"})),W||(W=s.createElement("path",{className:"st25",d:"M602.5 222.6zm0 0zM602.5 220.9c-1.5 0-2.6 2.3-3.2 3.8-.1.3-.2.5-.3.8 0 .1-.1.3-.1.4.1 0 .1 0 .2.1.9-.3 2-.3 2.9-.3h1.3c.1-.3 1.5-4.8-.8-4.8zm.5 1.8c0 .2-.1.3-.1.5 0 .1-.1.2-.2.4s-.2.3-.3.5c-.1.1-.1.2-.1.2s0-.1.1-.2c0-.1.1-.3.1-.6 0-.1.1-.2.1-.4v-.5h-.4c-.1 0-.2.1-.3.1l-.3.3c-.2.2-.3.4-.4.6-.1.2-.2.4-.3.5l-.1.2V224c0-.2 0-.4.1-.6.1-.2.2-.5.3-.8.1-.1.2-.3.3-.4.1-.1.3-.2.5-.3h.6s.1.1.2.1v.1c.2.4.2.5.2.6z"})),R||(R=s.createElement("path",{d:"M594.3 231.1c.2 0 .5-.1.8-.2.6-.3 2.1-1.8 3.8-3.8.1-.1.1-.2.1-.3 0-.1-.1-.2-.1-.2-.1-.1-.1-.1-.2-.1s-.2 0-.3.1c-.7.9-2.8 3.2-3.5 3.6-.1.1-.3.1-.4.1h-.3l-.2-.2c-.1-.1-.2-.1-.2-.1-.1 0-.1 0-.2.1l-.2.2v.3c.1.1.3.5.9.5zm-3.4 0h-.2l-.1.1h-.2c-.3 0-1.2-.1-2.9-.8-1.9-.8-2.7-.9-3-.9h-.1c-.1 0-.2.1-.2.1-.1.1-.1.2-.1.3 0 .2.2.3.4.3s.9.1 2.7.8c1.4.6 2.5.9 3.2.9.4 0 .6-.1.8-.2.1-.1.1-.2.1-.3 0-.1-.1-.2-.1-.2-.1 0-.2-.1-.3-.1z"})),J||(J=s.createElement("path",{className:"st26",d:"M595.8 238.7s-.1 1.2-1.8 1.4c-.3 0-.6.1-.8.1-.9 0-1.2-.3-1.5-.5 0 0-1.6.5-1.7 1.5-.1.7.6 1 1.2 1 .2 0 .4 0 .5-.1.6-.3 1.5-1 2.6-1.2h1.9c.6 0 1.2 0 1.5-.2.7-.3.7-.9.7-1.2-.1-.3-.8-.8-2.6-.8z"})),Y||(Y=s.createElement("path",{className:"st24",d:"M593.8 239.6s.1 0 0 0h.1c.9-.2 1.5-.7 1.5-1.2 0-.1 0-.2-.1-.3-.2-.4-1-.7-1.8-.5h-.1c-1 .2-1.7.8-1.6 1.3v.1c.2.5 1.1.8 2 .6z"})),Q||(Q=s.createElement("g",{id:"XMLID_4_",className:"st13"},s.createElement("text",{transform:"translate(626.818 80.94)",className:"st3 st6"},"gradio"))),$||($=s.createElement("path",{className:"st28",d:"m596.6 56 19.9 10.6v6.2l-19.9-10.6V56z"})),ee||(ee=s.createElement("path",{className:"st29",d:"m616.5 66.6-20 10.6v6.2l20-10.6v-6.2z"})),te||(te=s.createElement("path",{className:"st28",d:"m576.5 66.6 20 10.6v6.2l-20-10.6v-6.2z"})),ae||(ae=s.createElement("path",{className:"st29",d:"m596.6 56-20.1 10.6v6.2l20.1-10.6V56z"})),se||(se=s.createElement("path",{className:"st28",d:"m596.6 66.7 19.9 10.6v6.1l-19.9-10.6v-6.1z"})),le||(le=s.createElement("path",{className:"st29",d:"m616.5 77.2-20 10.6V94l20-10.6v-6.2z"})),ce||(ce=s.createElement("path",{className:"st28",d:"m576.5 77.2 20 10.6V94l-20-10.6v-6.2z"})),me||(me=s.createElement("path",{className:"st29",d:"m596.6 66.6-20.1 10.6v6.2l20.1-10.6v-6.2z"})),re||(re=s.createElement("g",{id:"XMLID_2_",className:"st13"},s.createElement("text",{transform:"translate(626.818 160.94)",className:"st3 st6"},"mysql"))),s.createElement("path",{d:"M580.3 136.5c.3 0 .5.1.8.1.4.1.8.2 1.2.4.7.3 1.4.6 2.1 1.1.3.2.6.5.9.7.1 0 .2.1.2.1 1.2.1 2.4.2 3.6.5.7.2 1.4.6 2.1 1 1.9 1.1 3.6 2.4 5.2 3.9.8.8 1.5 1.6 2.2 2.5.8 1 1.5 2 2.1 3.1.4.8.7 1.7 1.1 2.5.8 1.7 1.6 3.3 2.4 5 .2.5.5.9.7 1.4.1.3.3.5.6.5 2.2.7 4.1 1.9 5.8 3.3.4.4.9.7 1.4 1.1l.9.9c.2.3.4.5.6.8.1.1.1.2-.1.3-.7.2-1.4.5-2.1.6-.8.1-1.7.3-2.5.4-.2 0-.5.1-.8.1.1.1.1.3.2.4.4.5.9.9 1.5 1.2 1.2.6 2.2 1.5 3.2 2.4.3.4.7.7 1 1.1.1.2.3.3.4.4.3.3.5.6.5 1h-.1c-.4-.2-.9-.5-1.3-.7-1.8-.8-3.6-1.7-5.3-2.5-1.1-.6-2.2-1.2-3.4-1.7-1.8-.9-3.7-1.7-5.5-2.5-1.5-.7-3-1.5-4.2-2.5-1.4-1.1-2.5-2.4-3.5-3.9-1.2-1.7-2.3-3.6-3.3-5.4-.8-1.5-1.6-2.9-2.6-4.3-.8-1-1.7-2-2.5-3-.1-.2-.3-.3-.5-.5v.2c.4 1.2 1 2.3 1.9 3.3.5.5.6 1 .4 1.6-.2.4-.3.9-.4 1.3-.3.6-.3 1.3-.5 2-.2.9-.1 1.8 0 2.8.1.8.1 1.5.4 2.2.2.5.5 1.1.7 1.6.1.2.3.4.6.5.2.1.3.1.3-.2 0-.3.1-.5.1-.8.1-.6.1-1.3.3-1.9.2-.8.5-1.5 1-2 .2-.2.4-.5.6-.7 0 .1.1.1.1.2.6 1.9 1.5 3.6 2.5 5.3.8 1.3 1.5 2.6 2.6 3.7.3.3.7.6 1.1 1 0 0 .1 0 .1.1l-.1.1c-.1 0-.2-.1-.3-.2-.4-.3-.7-.6-1.1-.9-.8-.7-1.5-1.4-2.3-2.1-.6-.6-1.1-1.2-1.6-1.9-.2-.4-.4-.9-.6-1.3-.1-.2-.2-.4-.3-.5 0-.1-.1-.1-.1-.1 0 .1-.1.1-.1.2 0 .2 0 .5-.1.7l-.3 1.8c-.1.3-.2.7-.5.9-.3.4-.7.4-1.2.4-.6-.1-1-.4-1.4-.9-1-1.2-1.5-2.6-1.7-4.1-.2-1.3-.2-2.6 0-3.9.1-.5.2-1 .4-1.5.1-.4.2-.8.4-1.3.1-.2.1-.3.2-.5.1-.1.1-.3-.1-.4-.5-.3-.7-.9-1.1-1.3-.8-1.3-1.3-2.8-1.8-4.2l-.3-.9c-.1-.4-.3-.7-.5-1-.6-.9-1.2-1.8-1.9-2.6-.4-.5-.7-1-.8-1.6l-.1-.3v-.6c0-.1 0-.2.1-.3.2-.7.6-1.2 1.4-1.4.1 0 .3 0 .4-.1h.6zm4.7 6.5c.1.1.2.2.2.4.4.6.8 1.3 1.2 1.9 0 .1.1.1.1.1.6-.1 1-.6.9-1.1-.1-.5-.5-.9-.8-1.3-.3-.4-.7-.4-1.2-.2-.1 0-.2.1-.4.2z",style:{fill:"#00758f"}}),ne||(ne=s.createElement("path",{className:"st1",d:"M1075.6 100H880.4c-1.3 0-2.4-1.1-2.4-2.4V52.4c0-1.3 1.1-2.4 2.4-2.4h195.2c1.3 0 2.4 1.1 2.4 2.4v45.2c0 1.3-1.1 2.4-2.4 2.4z"})),he||(he=s.createElement("g",{id:"XMLID_28_",className:"st13"},s.createElement("text",{transform:"translate(972.341 80.94)",className:"st3 st6"},"tekton"))),ie||(ie=s.createElement("path",{d:"M926.7 55c-.7 0-1.3.5-1.5 1.1-.4 1.3-.5 2.7-.3 4.1.2 1.4.6 2.7 1.3 3.9.4.8.9 1.5 1.5 2.2-.1.4-.2.9-.2 1.3-.1.8-.1 1.5-.1 2.3 0 .3 0 .6.1.9.1.9.9 2 1.5 2.7.9 1.2 2.1 2.1 3.4 2.9 0 0 0 .1.1.1.1.3.3.6.5.8-.4.9-.7 1.8-.8 2.8-.2.7-.3 1.4-.3 2.2-.3.1-.5.3-.8.5-.7.5-1.1 1.2-1.4 2.1-.1.2-.1.5-.2.7l-.4-.1v.3c-.2 1.2-.1 2.3.4 3.3-.4.1-.8.2-1.2.5-.3.2-.5.5-.6.8-.2.6-.5 1.2-.5 1.8 0 .5.1.9.5 1.2.2.2.5.3.7.3h3.9c.2.6.7 1.2 1.3 1.4.2 0 .4.1.6.1h4.5c.5 0 .9-.3 1.1-.7.2.4.6.7 1.1.7h4.5c.2 0 .4 0 .6-.1.7-.2 1.1-.7 1.3-1.4h4c.3 0 .5-.1.7-.3.4-.3.5-.7.5-1.2 0-.6-.2-1.3-.5-1.8-.4-.8-1-1.1-1.8-1.3.5-1.1.6-2.1.4-3.3v-.3l-.3.1v-.2c.2-.5.5-1 .8-1.5l1.2-1.8c.2-.3.5-.6.8-.8.5-.5 1.1-.9 1.8-.9.5 0 1 .1 1.3.4.3.2.4.5.6.8.2.6.4 1 .8 1.5.8.8 2 .8 3 .3.8-.4 1.4-1 1.6-1.8.1-.2.1-.5.1-.8-.2-1.5-1.1-2.9-2.3-3.9-1.1-.9-2.4-1.5-3.8-1.6-1.3 0-2.6.4-3.7 1-1.9 1.1-3.5 2.8-4.6 4.8 0-.3-.1-.6-.2-.9-.1-.6-.2-1.1-.4-1.7-.1-.3-.2-.5-.3-.8.2-.2.3-.3.4-.5.1-.2.3-.4.4-.7l.1-.1c1.3-.7 2.4-1.7 3.4-2.9.6-.7 1.4-1.7 1.5-2.7 0-.3 0-.6.1-1 0-.8 0-1.5-.1-2.3-.1-.4-.1-.8-.2-1.2.6-.7 1.1-1.4 1.5-2.2.7-1.2 1.1-2.6 1.3-3.9.2-1.4.1-2.8-.3-4.1-.2-.7-.8-1.1-1.5-1.1-2.6 0-4.9 1.1-6.9 2.4-3.9-2.4-8.9-2.4-12.8 0-2.3-1.3-4.5-2.4-7.2-2.4zm.1 1.5h.1c1.4.8 2.7 2.4 3.7 4-.2.3-.4.5-.6.8-.7 1.1-1.2 2.2-1.6 3.4-1.2-1.5-2.6-4.4-1.6-8.2 0 .1 0 0 0 0zm26.5 0h.1c1 3.7-.5 6.6-1.7 8.2-.4-1.3-1-2.5-1.7-3.6-.1-.2-.3-.4-.5-.6 1.1-1.6 2.3-3.2 3.8-4zm-24.4.3c1.3.3 2.5 1 3.7 1.7-.5.4-.9.8-1.3 1.2-.2-.4-.5-.7-.7-1.1-.5-.6-1.1-1.2-1.7-1.8zm22.4 0c-.6.6-1.1 1.2-1.6 1.9-.3.3-.5.7-.7 1.1-.4-.4-.8-.9-1.3-1.2 1.1-.8 2.3-1.4 3.6-1.8zm-11.5.3v4.3c-2.3 0-4.6.7-6 1.9-1.6 1.4-2.7 3.9-2.6 5.2.1 1.2 2 1.9 4.4 2.4-.1.2-.2.5-.3.7-.1.4-.1.7 0 1.1-.8-.1-1.7-.2-2.5-.4-1.3-.3-2.6-.7-3.9-1.2 0-.1-.1-.2-.1-.4 0 0-.5-4.8 2.1-8.7 2.3-3.2 5.6-4.8 8.9-4.9zm.6 0c3.3.1 6.5 1.7 8.6 4.8 2.8 4 2.2 8.9 2.2 8.9 0 .1 0 .2-.1.4-1.3.5-2.6.9-3.9 1.2-.7.2-1.6.3-2.5.4.1-.4.1-.7 0-1.1 0-.3-.1-.5-.3-.7 2.5-.4 4.3-1.2 4.4-2.4.1-1.3-1-3.8-2.6-5.2-1.4-1.2-3.7-1.9-6-1.9v-4.4zm-1.4 1.2c-.2 0-.4.2-.4.4 0 .3.4.5.6.3.1-.1.1-.4 0-.5 0-.2-.1-.2-.2-.2zm2.2 0c-.2 0-.4.2-.4.4 0 .3.4.5.6.3.1-.1.1-.4 0-.5 0-.2-.1-.2-.2-.2zm-2.2 1.6c-.2 0-.4.2-.4.4 0 .3.4.5.6.3.3-.3.1-.7-.2-.7zm2.2 0c-.2 0-.4.2-.4.4.3 0 .4-.2.4-.4zm-5.8 6.3c.5 0 1.1.3 1.4.7.4.4.6 1 .6 1.6 0 .2-.2.4-.4.4s-.4-.2-.4-.4c0-.4-.1-.8-.4-1.1-.2-.3-.5-.4-.9-.4-.2 0-.4.1-.6.2-.2.1-.4.3-.5.6-.1.2-.3.3-.5.2-.2-.1-.3-.3-.2-.5.2-.3.4-.6.7-.9.4-.3.8-.4 1.2-.4zm9.4 0c.4 0 .7.1 1 .3.3.2.6.5.7.9.1.2 0 .4-.2.5-.2.1-.4 0-.5-.2-.1-.2-.3-.4-.5-.6-.2-.1-.4-.2-.6-.2-.3 0-.7.2-.9.4-.3.3-.4.7-.4 1.1 0 .2-.2.4-.4.4s-.4-.2-.4-.4c0-.6.2-1.1.6-1.6.6-.4 1.1-.6 1.6-.6zm-4.7 3.6c1.6 0 3.6.7 3.8 1.9.2 1.1-.4 1.9-1.4 2.4-1.4.5-1.9-.2-2.2-.6-.1-.2-.2-.3-.2-.3s-.1.1-.2.3c-.2.4-.7 1-1.7.8-1.2-.4-2.1-1.2-1.9-2.5.2-1.3 2.2-2 3.8-2zm0 .6c-1 0-2.2.3-2.3.9-.2 1 1.3 1.5 2.3 1.5 1 0 2.5-.5 2.3-1.5-.1-.6-1.3-.9-2.3-.9zm-10.6 1.5c1.1.4 2.2.7 3.3 1 .9.2 1.9.3 2.8.4 0 .1.1.2.1.3.5.8 1.2 1.3 2.1 1.5-.5.2-.8.5-.9 1 0 .2 0 .4.1.6-.7-.1-1.3-.3-2-.5-2-.7-3.7-1.8-5-3.5-.2-.3-.4-.5-.5-.8zm21.2 0c-.1.2-.3.4-.4.5-.8.9-1.6 1.8-2.6 2.4-1.4.9-2.9 1.5-4.6 1.8.1-.2.1-.4.1-.6-.1-.5-.4-.7-.9-.9.9-.3 1.6-.8 2.1-1.5 0-.1.1-.2.1-.3 1-.1 1.9-.2 2.8-.4 1.2-.3 2.3-.6 3.4-1zm-10.6 3.7c1.3 0 2.5.2 2.2.7-.1.2-.4.4-.8.5-.5.1-1 .1-1.5.1s-1-.1-1.5-.1c-.4-.1-.7-.3-.8-.6-.1-.4 1.2-.6 2.4-.6zm16.1.9c.8 0 1.6.3 2.3.7-.8.2-1.4.8-1.7 1.6-.1.2-.2.5-.2.7-.4-.2-.9-.3-1.3-.4 0 0 0-.1-.1-.1-.4-.6-.5-1.7 0-2.3l.1-.1c.1 0 .1-.1.2-.1h.7zm-1.8.2c-.2.4-.2.8-.2 1.2 0 .5.1.9.3 1.3-.4.1-.8.2-1.2.5 0 0-.1 0-.1-.1-.3-.1-.5-.4-.7-.7-.2-.3-.4-.9-.2-1.2.2-.2.5-.3.7-.5.5-.1.9-.3 1.4-.5zm-20 .4.9.3c1.7.9 3.5 1.3 5.4 1.2.8-.1 1.6-.2 2.4-.5.6-.2 1.2-.4 1.8-.7l.9-.3c-.8 1.1-2 1.9-3.3 2.3 1.2-.2 2.4-.5 3.4-1 .5 1.3.9 3.1.6 5.5-.1.5-.2 1.1-.3 1.6-1.2-.7-2.9-.1-4.2.6-.2-2.4-.7-4.1-.9-4.7-.2-.6-.9-.5-.9.1.1.3.2.6.2.9.1.5.2 1 .2 1.4l.3 2.4v.5c-.8.1-1.5.1-2.3 0v-.5c0-.3.1-.7.1-1 .1-.5.1-1 .2-1.5s.1-1 .2-1.5c0-.2.1-.4.1-.7 0-.5-.3-.6-.5-.5-.2 0-.3.2-.4.4-.5 1.5-.7 3-.9 4.6-1.4-.9-2.6-1.2-4.2-.5-.1-.6-.2-1.1-.3-1.7-.3-2.6.1-4.5.7-5.8 1 .7 2.2 1.1 3.5 1.3-.9-.4-2-1.2-2.7-2.2zm24.8.8c.2 0 .3.1.4.2.8.8 1.4 1.8 1.5 2.8.1 1.2-1.8 2.1-2.6 1.3-.5-.5-.4-1.3-1.2-2.1V80c.1-1.1.9-2.2 1.9-2.1zm-7.6.5.3.9c.2.3.4.6.8.8-.1.1-.2.1-.2.2-.3.3-.5.5-.7.8h-.2c-.3 0-.6-.1-.8-.3-.2-.2-.6-.6-.6-.9.4-.5.8-1 1.4-1.5zm-2 2.3c.2.3.4.6.7.8.3.2.6.4.9.4-.5.7-1 1.5-1.4 2.3-.3-.5-.6-.9-1-1.2-.1-.1-.2-.2-.4-.3.3-.7.7-1.4 1.2-2zm-2 2.7c1 .5 1.6 1.5 1.7 2.7-.8.2-1.7.7-2.4 1 .3-1 .5-2.1.6-3.1.1-.2.1-.4.1-.6zm-15.4 0c0 .2 0 .4.1.6.1 1 .3 2.1.6 3.1-.7-.4-1.6-.8-2.4-1 .1-1.2.7-2.3 1.7-2.7zm3.1 2.8c.9 0 1.7.5 2.4 1 0 2.5.5 4.8.9 5.2.3.4.2 1.3.2 1.3s-4.3.1-4.8 0c-.4-.1-.9-1.4-.2-2.1.3-.3.8-.4 1.2-.4.8.2 1.4.7 2 1.4-.1-1.3-.8-1.6-1.3-1.9-.2-.1-.2-.1-.3-.3-.6-1.2-1.1-2.5-1.5-3.8.4-.3.9-.5 1.4-.4zm9.1 0c.5 0 1.1.1 1.5.4-.3 1.3-.8 2.6-1.5 3.8l-.3.3c-.5.3-1.2.6-1.3 1.9.6-.7 1.1-1.3 2-1.4.4 0 .9.1 1.2.4.7.7.2 2-.2 2.1-.4.1-4.8 0-4.8 0s-.2-.8.2-1.3c.3-.5.9-2.8.9-5.2.6-.6 1.5-1 2.3-1zm-14.4.6c.8.2 2.1.8 3.2 1.4.2.7.5 1.4.8 2.1-.4.1-.7.3-1 .6-.4.4-.6.9-.6 1.5h-4c-.4-.3 0-3.4 4-1.6-1-.7-2.4-1.6-2.4-4zm19.7 0c0 2.3-1.4 3.3-2.3 4 3.9-1.8 4.4 1.3 4 1.6h-4.1c0-1-.7-1.8-1.7-2.1.3-.7.6-1.3.8-2 1.2-.7 2.6-1.3 3.3-1.5zm-8.6.7c0 1-.1 1.9-.3 2.9-.1.3-.2 1.1-.4 1.4 0 .1-.1.1-.1.2h-.7c0-.1-.1-.2-.2-.3-.1-.1-.1-.3-.2-.5-.1-.4-.2-.9-.3-1.3-.1-.8-.2-1.7-.2-2.5.8.2 1.6.2 2.4.1z"})),s.createElement("path",{d:"m166.9 180.2 53.6 35.4h-10.7v53.9h-16.9v-40.3H141v40.3h-16.9v-53.9h-10.7l53.5-35.4zm-15.6 57h31.3v10.5h-31.3v-10.5zm0 21.8h31.3v10.5h-31.3V259z",style:{opacity:.2,fill:"#faad14"}}),de||(de=s.createElement("path",{className:"st1",d:"M19.2 310.1h1100v170H19.2z"})),Ee||(Ee=s.createElement("path",{className:"st0",d:"M236.5 330.3h280v59.8h-280zM39.5 329.8h180v130.1h-180zM526.5 330.1h280v59.8h-280zM816.5 330.1h280v59.8h-280zM236.5 400.1h280V460h-280zM526.5 400.1h280V460h-280zM816.5 400.1h280V460h-280z"})),oe||(oe=s.createElement("g",{id:"XMLID_1_",className:"st13"},s.createElement("text",{transform:"translate(622.437 365.966)",className:"st3 st6"},"\u4e91\u68af\u4f4e\u4ee3\u7801"))),ve||(ve=s.createElement("g",{id:"XMLID_32_"},s.createElement("path",{id:"XMLID_10_",className:"st32",d:"M583.2 376"}),s.createElement("path",{id:"XMLID_136_",className:"st32",d:"M602.9 353.5c-.9-5.4-5.6-9.5-11.2-9.5s-10.3 4.1-11.2 9.5c-5.4.8-9.6 5.5-9.6 11.2 0 5.9 4.6 10.8 10.4 11.3l.5-3.8c-4-.2-7.1-3.5-7.1-7.5 0-4.1 3.4-7.5 7.5-7.5h1.9v-1.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.4 7.5 7.5v1.9h1.9c4.1 0 7.5 3.4 7.5 7.5 0 4-3.2 7.3-7.1 7.5l.5 3.8c5.8-.5 10.4-5.4 10.4-11.3.1-5.6-4-10.3-9.4-11.2z"}))),pe||(pe=s.createElement("g",{id:"XMLID_6_"},s.createElement("path",{id:"XMLID_36_",className:"st33",d:"M596.4 376h3.8l-2.4-17.9h-3.3l.4 3.8h-6.5l.4-3.8h-3.3l-2.4 17.9h3.8l.4-3.8h8.6l.5 3.8zm-8.6-7.5.4-3.8h7.1l.4 3.8h-7.9z"}))),s.createElement("text",{transform:"translate(622.438 435.966)",id:"XMLID_53_",className:"st13"},_e||(_e=s.createElement("tspan",{x:0,y:0,className:"st3 st6"},"AP")),s.createElement("tspan",{x:26,y:0,className:"st3 st6",style:{letterSpacing:1}},"I"),fe||(fe=s.createElement("tspan",{x:32.3,y:0,className:"st3 st6"},"\u7f51")),s.createElement("tspan",{x:52.3,y:0,className:"st3 st6",style:{letterSpacing:-1}},"\u5173"),ze||(ze=s.createElement("tspan",{x:70.7,y:0,className:"st3 st6"}," TAMP "))),s.createElement("path",{id:"XMLID_169_",d:"m587.3 413.8-16.7 32.5h6.6l16.6-32.4-.1-.1h-6.4z",style:{opacity:.6,fill:"#4461eb",enableBackground:"new"}}),Ne||(Ne=s.createElement("path",{id:"XMLID_168_",className:"st32",d:"m593.9 413.8 16.7 32.5H604l-16.6-32.4.1-.1h6.4z"})),s.createElement("path",{id:"XMLID_166_",d:"m590.6 427.1-9.9 19.2h9.9v-19.2z",style:{opacity:.6,fill:"#29dd90"}}),Me||(Me=s.createElement("path",{id:"XMLID_165_",className:"st33",d:"m590.6 427.1 9.9 19.2h-9.9v-19.2z"})),Ie||(Ie=s.createElement("g",{id:"XMLID_44_",className:"st13"},s.createElement("text",{transform:"translate(326.226 366.13)",className:"st3 st6"},"\u670d\u52a1\u7f51\u683c TDSF"))),s.createElement("path",{id:"XMLID_300_",style:{opacity:.5,fill:"#4461eb"},d:"M297.3 346.4v-6.2l-14.8 8.7 5.3 3.1z"}),De||(De=s.createElement("path",{id:"XMLID_301_",className:"st32",d:"m309.8 352.3 5.3-3.1-15.2-8.9v6.2z"})),s.createElement("path",{id:"XMLID_302_",style:{opacity:.9,fill:"#4461eb"},d:"M310.9 354.6v10.8l5.3 3.1v-16.9z"}),ye||(ye=s.createElement("path",{id:"XMLID_303_",className:"st40",d:"m310 367.9-10.1 5.9v6.3l15.5-9.1z"})),s.createElement("path",{id:"XMLID_304_",style:{opacity:.7,fill:"#4461eb"},d:"m287.6 368.1-5.4 3.2 15.1 8.9v-6.3z"}),xe||(xe=s.createElement("path",{id:"XMLID_305_",className:"st42",d:"m286.3 354.1-5.3-3v17.8l5.3-3z"})),s.createElement("g",{id:"XMLID_306_",style:{opacity:.5}},ge||(ge=s.createElement("path",{id:"XMLID_67_",className:"st33",d:"M297.3 355.8v-6.3l-6.9 4 5.4 3.2z"}))),ue||(ue=s.createElement("g",{id:"XMLID_308_",className:"st44"},s.createElement("path",{id:"XMLID_65_",className:"st33",d:"m294.2 358.7-5.3-3.1v8.8l5.3-3.1z"}))),be||(be=s.createElement("g",{id:"XMLID_310_",className:"st13"},s.createElement("path",{id:"XMLID_63_",className:"st33",d:"m295.5 363.5-5.4 3.1 7.2 4.3v-6.3z"}))),Ve||(Ve=s.createElement("g",{id:"XMLID_312_",className:"st2"},s.createElement("path",{id:"XMLID_60_",className:"st33",d:"m302.1 363.3-2.2 1.3v6.2l7.6-4.4z"}))),s.createElement("g",{id:"XMLID_314_",style:{opacity:.9}},Se||(Se=s.createElement("path",{id:"XMLID_57_",className:"st33",d:"M303 359.2v1.6l5.3 3.1v-7.8z"}))),Le||(Le=s.createElement("g",{id:"XMLID_316_"},s.createElement("path",{id:"XMLID_56_",className:"st33",d:"m301.8 356.9 5.4-3.1-7.3-4.3v6.3z"}))),Xe||(Xe=s.createElement("g",{id:"XMLID_62_",className:"st13"},s.createElement("text",{transform:"translate(326.226 435.978)",className:"st3 st6"},"\u5fae\u670d\u52a1\u6846\u67b6 TMF"))),Ge||(Ge=s.createElement("path",{id:"XMLID_734_",className:"st33",d:"m298.6 436 2.6-1.5 7.4-4.3v9.6l-10 5.8z"})),He||(He=s.createElement("path",{id:"XMLID_732_",className:"st32",d:"m288.6 430 2.9 1.7 7.1 4.3v9.4l-10-5.7V430z"})),Ce||(Ce=s.createElement("path",{id:"XMLID_729_",className:"st46",d:"m308.6 420.4 2.6-1.5 7.4-4.2v9.6l-10 5.7z"})),we||(we=s.createElement("path",{id:"XMLID_728_",className:"st40",d:"m298.6 414.7 2.9 1.6 7.1 4.3v9.5l-10-5.8v-9.6z"})),ke||(ke=s.createElement("path",{id:"XMLID_725_",className:"st46",d:"m288.6 420.4 2.6-1.5 7.4-4.3v9.6l-10 5.8z"})),Pe||(Pe=s.createElement("path",{id:"XMLID_721_",className:"st40",d:"m278.6 414.5 2.9 1.6 7.1 4.3v9.5l-10-5.8v-9.6z"})),Ue||(Ue=s.createElement("g",{id:"XMLID_80_",className:"st13"},s.createElement("text",{transform:"translate(889.391 371.378)",className:"st3 st6"},"\u5e94\u7528\u6027\u80fd\u76d1\u63a7 TAPM"))),Oe||(Oe=s.createElement("path",{id:"XMLID_86_",className:"st42",d:"M841.7 362.1h5v18.6h-5z"})),Te||(Te=s.createElement("path",{id:"XMLID_92_",className:"st32",d:"M851.6 357.1h5v23.6h-5z"})),Be||(Be=s.createElement("path",{id:"XMLID_95_",className:"st42",d:"M861.5 362.1h5v18.6h-5z"})),Fe||(Fe=s.createElement("path",{id:"XMLID_93_",className:"st32",d:"M871.4 357.1h5v23.6h-5z"})),Ze||(Ze=s.createElement("circle",{id:"XMLID_114_",className:"st46",cx:864,cy:354,r:3.1})),je||(je=s.createElement("circle",{id:"XMLID_115_",className:"st33",cx:873.9,cy:349,r:3.1})),Ke||(Ke=s.createElement("circle",{id:"XMLID_108_",className:"st46",cx:844.1,cy:354,r:3.1})),Ae||(Ae=s.createElement("circle",{id:"XMLID_106_",className:"st33",cx:854.1,cy:349,r:3.1})),qe||(qe=s.createElement("g",{id:"XMLID_121_"},s.createElement("path",{id:"XMLID_42_",className:"st33",d:"m851 349.3-4.8 2.4c.6.5.9 1.2 1 2l4.8-2.4c-.6-.5-.9-1.2-1-2z"}))),We||(We=s.createElement("g",{id:"XMLID_463_"},s.createElement("path",{id:"XMLID_40_",className:"st33",d:"m857.1 349.3 4.8 2.4c-.6.5-.9 1.2-1 2l-4.8-2.4c.6-.5.9-1.2 1-2z"}))),Re||(Re=s.createElement("g",{id:"XMLID_457_"},s.createElement("path",{id:"XMLID_35_",className:"st33",d:"m870.9 349.3-4.8 2.4c.6.5.9 1.2 1 2l4.8-2.4c-.6-.5-1-1.2-1-2z"}))),Je||(Je=s.createElement("text",{transform:"translate(56.54 386.834)",className:"st32 st12 st4",id:"XMLID_150_"},"\u5b98\u65b9\u4ed3\u5e93")),Ye||(Ye=s.createElement("g",{id:"XMLID_201_",className:"st13"},s.createElement("text",{transform:"translate(56.54 419.625)",className:"st14 st15"},"\u63d0\u4f9b\u5f00\u6e90\u7ec4\u4ef6"))),s.createElement("path",{d:"m165.9 369.8 53.6 35.4h-10.7v53.9h-16.9v-40.3H140v40.3h-16.9v-53.9h-10.7l53.5-35.4zm-15.6 57h31.3v10.5h-31.3v-10.5zm0 21.8h31.3v10.5h-31.3v-10.5z",style:{opacity:.2,fill:"#4461eb"}}),Qe||(Qe=s.createElement("g",{id:"XMLID_7_",className:"st13"},s.createElement("text",{transform:"translate(894.919 243.106)",className:"st3 st6"},"\u66f4\u591a"))),$e||($e=s.createElement("g",{id:"XMLID_209_",className:"st13"},s.createElement("text",{transform:"translate(944.725 238.214)",className:"st3 st4"},"..."))),et||(et=s.createElement("g",{id:"XMLID_58_",className:"st13"},s.createElement("text",{transform:"translate(922.133 440.144)",className:"st3 st6"},"\u66f4\u591a"))),tt||(tt=s.createElement("g",{id:"XMLID_17_",className:"st13"},s.createElement("text",{transform:"translate(971.94 435.253)",className:"st3 st4"},"..."))),at||(at=s.createElement("g",{id:"XMLID_5_",className:"st13"},s.createElement("text",{transform:"translate(917.308 162.128)",className:"st3 st6"},"\u81ea\u5b9a\u4e49"))),st||(st=s.createElement("path",{className:"st44",d:"M902.5 153.4h-1.7v-4.6c0-1.3-1-2.3-2.3-2.3h-4.6v-1.7c0-1.6-1.3-2.9-2.9-2.9s-2.9 1.3-2.9 2.9v1.7h-4.6c-1.3 0-2.3 1-2.3 2.3v4.4h1.7c1.7 0 3.1 1.4 3.1 3.1 0 1.7-1.4 3.1-3.1 3.1h-1.7v4.4c0 1.3 1 2.3 2.3 2.3h4.4v-1.7c0-1.7 1.4-3.1 3.1-3.1s3.1 1.4 3.1 3.1v1.7h4.4c1.3 0 2.3-1 2.3-2.3v-4.6h1.7c1.6 0 2.9-1.3 2.9-2.9-.1-1.6-1.3-2.9-2.9-2.9z"})),lt||(lt=s.createElement("g",{className:"st2"},s.createElement("text",{transform:"translate(550.86 610.243)",className:"st3 st4"},"kubernetes"))),ct||(ct=s.createElement("path",{className:"st32",d:"m516.8 604-1.7 4c-1.6-1-2.8-2.5-3.5-4.3l4.3-.7c.4-.1.8.2.9.6.1.1 0 .3 0 .4zm-1.4-3.5c.4-.1.6-.5.5-.9 0-.1-.1-.3-.2-.4l-3.3-2.9c-1 1.6-1.4 3.5-1.2 5.4l4.2-1.2zm1.9-3.3c.3.2.8.2 1-.2.1-.1.1-.3.1-.4l.3-4.4c-1.9.2-3.7 1.1-5 2.4l3.6 2.6zm1.3 4.6 1.2.6 1.2-.6.3-1.3-.8-1h-1.3l-.8 1 .2 1.3zm2.5-5.2c0 .4.4.7.8.7.1 0 .3-.1.4-.1l3.6-2.5c-1.4-1.3-3.1-2.2-5-2.4l.2 4.3zm18.1 10-9.6 12c-.5.6-1.3 1-2.1 1h-15.4c-.8 0-1.6-.4-2.1-1l-9.6-12c-.5-.6-.7-1.4-.5-2.2l3.4-14.9c.2-.8.7-1.4 1.4-1.8l13.9-6.6c.7-.3 1.6-.3 2.3 0l13.9 6.6c.7.3 1.3 1 1.4 1.8l3.4 14.9c.3.7.1 1.5-.4 2.2zm-5.5-3.5c-.1 0-.2 0-.2-.1-.3-.1-.5 0-.8-.1-.6-.1-1.1-.1-1.5-.2-.2-.1-.3-.3-.4-.4l-.3-.1c.2-1.3.1-2.6-.2-3.9-.3-1.3-.8-2.5-1.6-3.6.1-.1.3-.2.3-.3 0-.2 0-.3.2-.5.3-.3.7-.6 1.2-.9.2-.1.5-.2.7-.4.1 0 .1-.1.2-.1.4-.3.5-.9.2-1.2-.3-.4-.8-.4-1.2-.1-.1 0-.1.1-.2.1-.2.2-.4.4-.5.6-.4.4-.8.8-1.1 1-.2.1-.4.1-.5.1l-.3.2c-1.8-1.9-4.3-3.1-6.9-3.3v-.4c-.1-.1-.2-.2-.3-.4 0-.4 0-.9.1-1.5 0-.3.1-.5.1-.8v-.2c0-.5-.4-.9-.8-.9-.5 0-.8.4-.8.9v.2c0 .3.1.5.1.8.1.6.1 1.1.1 1.5 0 .2-.1.3-.3.4v.4c-2.6.2-5.1 1.4-6.9 3.3-.1-.1-.2-.1-.3-.2-.2 0-.3.1-.5 0-.4-.3-.7-.6-1.1-1-.2-.2-.3-.4-.5-.6-.1-.1-.1-.1-.2-.1-.2-.1-.4-.2-.6-.2-.3 0-.5.1-.7.3-.3.4-.2.9.2 1.2l.2.1c.2.2.5.3.7.4.5.3.9.6 1.2.9.1.1.1.4.2.5l.3.2c-1.5 2.2-2.1 4.9-1.7 7.5l-.3.1c-.1.1-.2.3-.4.4-.4.1-.9.2-1.5.2-.3 0-.5 0-.8.1-.1 0-.1 0-.2.1-.5.1-.8.6-.7 1 .1.4.6.7 1.1.6h.2c.3-.1.5-.2.7-.3.6-.2 1-.4 1.5-.4.2 0 .4.1.5.2l.4-.1c.8 2.5 2.5 4.6 4.8 6l-.1.4c.1.1.1.3.1.5-.2.4-.4.9-.8 1.4-.2.2-.3.4-.4.7 0 .1-.1.2-.1.2-.2.5-.1 1 .4 1.2.4.2.9 0 1.2-.5 0-.1.1-.2.1-.2.1-.3.2-.5.2-.8.2-.6.3-1.1.6-1.5.1-.1.2-.1.4-.2l.2-.3c2.5 1 5.2 1 7.7 0l.2.3c.1 0 .3.1.4.3.2.4.4.8.6 1.4.1.3.1.5.2.8 0 .1.1.2.1.2.2.5.7.7 1.2.5.4-.2.6-.7.4-1.2 0-.1-.1-.2-.1-.2-.1-.3-.3-.4-.4-.7-.3-.5-.6-.9-.7-1.3-.1-.2 0-.4.1-.5 0 0-.1-.2-.1-.3 2.3-1.4 4-3.5 4.8-6 .1 0 .3 0 .4.1.1-.1.2-.2.5-.2.4.1.9.2 1.5.4.3.1.5.2.7.3h.2c.5.1 1-.2 1.1-.6-.7-.6-1-1.1-1.5-1.2zm-6.6-6.8-3.3 2.9c-.3.3-.3.7-.1 1 .1.1.2.2.4.2l4.2 1.2c.1-.9 0-1.9-.2-2.8-.1-.8-.5-1.7-1-2.5zm-6.7 8.9c-.1-.2-.4-.4-.7-.4-.3 0-.5.2-.6.4L517 609c1.8.6 3.7.6 5.5 0l-2.1-3.8zm3.2-2.2c-.2 0-.3 0-.5.1-.4.2-.5.6-.4 1l1.7 4.1c1.6-1 2.8-2.6 3.5-4.4l-4.3-.8z"})))};var nt,ht,it,dt,Et,ot,vt,pt,_t,ft,zt,Nt,Mt,It,Dt,yt,xt,gt,ut,bt,Vt,St,Lt,Xt,Gt,Ht,Ct,wt,kt,Pt,Ut,Ot,Tt,Bt,Ft,Zt,jt,Kt,At,qt,Wt,Rt,Jt,Yt,Qt,$t,ea,ta,aa,sa,la,ca,ma,ra,na,ha,ia,da,Ea,oa,va,pa,_a,fa,za,Na,Ma,Ia,Da,ya,xa,ga,ua,ba,Va,Sa,La,Xa,Ga,Ha,Ca,wa,ka,Pa,Ua,Oa,Ta,Ba,Fa,Za,ja,Ka,Aa,qa,Wa,Ra,Ja,Ya,Qa,$a,es,ts,as,ss,ls,cs,ms,rs,ns,hs,is,ds,Es;function os(){return os=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:a,...l}=e;return s.createElement("svg",os({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 1220 660",style:{enableBackground:"new 0 0 1220 660"},xmlSpace:"preserve","aria-labelledby":a},l),t?s.createElement("title",{id:a},t):null,nt||(nt=s.createElement("style",null,".st0{fill:#f5f7fc}.st1{fill:#fff}.st2{opacity:.8}.st3{font-family:'PingFang-SC-Bold'}.st4{font-size:24px}.st5{opacity:.7}.st6{font-family:'PingFang-SC-Medium'}.st7{font-size:20px}.st14{fill:#326ce6}.st19{fill:#4461eb}.st29{opacity:.1}.st29,.st31{fill:#29dd90}.st33{fill:#3e9fd8}.st37{fill:none;stroke:#fff;stroke-miterlimit:10}.st48{fill:#274872}.st49{fill:#5783ab}.st50{fill:#eaecec}.st52{opacity:.4;fill:#f4ea2a;enable-background:new}")),s.createElement("g",{id:"\\u56FE\\u5C42_1"},ht||(ht=s.createElement("path",{className:"st0",d:"M0 0h1220v660H0z"})),it||(it=s.createElement("path",{className:"st1",d:"M20.2 20.1h639.9v230H20.2z"})),dt||(dt=s.createElement("path",{className:"st0",d:"M40.3 40.1h600v190h-600z"})),Et||(Et=s.createElement("path",{className:"st1",d:"M377.2 160.1H142.4c-1.4 0-2.6-1.2-2.6-2.6v-44.8c0-1.4 1.2-2.6 2.6-2.6h234.8c1.4 0 2.6 1.2 2.6 2.6v44.8c0 1.4-1.2 2.6-2.6 2.6zM377.2 100.1H142.4c-1.4 0-2.6-1.2-2.6-2.6V52.7c0-1.4 1.2-2.6 2.6-2.6h234.8c1.4 0 2.6 1.2 2.6 2.6v44.8c0 1.4-1.2 2.6-2.6 2.6zM627.2 100.1H392.4c-1.4 0-2.6-1.2-2.6-2.6V52.7c0-1.4 1.2-2.6 2.6-2.6h234.8c1.4 0 2.6 1.2 2.6 2.6v44.8c0 1.4-1.2 2.6-2.6 2.6z"})),ot||(ot=s.createElement("text",{transform:"translate(65.793 127.546)",id:"XMLID_140_",className:"st2"},s.createElement("tspan",{x:0,y:0,className:"st3 st4"},"\u539f\u751f"),s.createElement("tspan",{x:0,y:28.8,className:"st3 st4"},"\u7ec4\u4ef6"))),vt||(vt=s.createElement("g",{id:"XMLID_134_",className:"st5"},s.createElement("text",{transform:"translate(250.343 81.035)",className:"st6 st7"},"jupyter"))),s.createElement("path",{d:"M206.9 76c0 1.3-.1 1.7-.3 1.9-.3.2-.6.4-1 .4l.1.7c.6 0 1.2-.2 1.6-.6.2-.3.4-.6.6-1 .1-.4.2-.7.1-1.1v-4.7h-1V76zm7.1-.6c0 .6 0 1 .1 1.4h-.9l-.1-.9c-.2.3-.4.6-.7.7-.3.2-.6.2-1 .2-.8 0-1.8-.5-1.8-2.2v-3h1v2.9c0 1 .3 1.7 1.2 1.7.2 0 .3 0 .5-.1s.3-.2.4-.3c.2-.2.2-.2.3-.4s.1-.3.1-.5v-3.2h1v3.7zm4.5-3.8c-.4 0-.7.1-1 .2-.3.2-.6.5-.8.8l-.1-.9h-.9c.1.5.1 1 .1 1.7V79h1v-2.9c.2.2.4.5.7.6.3.2.6.2.9.2 1.2 0 2.4-1 2.4-2.8 0-1.5-1-2.5-2.3-2.5zm-.2 4.6c-.3 0-.6-.1-.9-.3-.2-.2-.5-.5-.6-.8 0-.2-.1-.2-.1-.4v-.9c0-.4.2-.8.5-1 .2-.3.6-.5 1-.5 1 0 1.5.9 1.5 1.9.1 1.2-.5 2-1.4 2zm4.1-4.6 1.1 3c.2.3.2.7.3 1 .1-.3.2-.7.3-1.1l1-3h1l-1.4 3.7c-.7 1.8-1.1 2.7-1.8 3.3-.3.3-.7.5-1.2.6l-.2-.8c.3-.1.6-.2.8-.5.3-.3.6-.6.8-1 0-.1.1-.2.1-.2s0-.2-.1-.2l-1.9-4.8h1.2zm6.4-1.5v1.5h1.4v.7h-1.4v2.8c0 .6.2 1 .7 1 .2 0 .4 0 .6-.1l.1.7c-.2.1-.6.2-.9.2-.2 0-.4 0-.6-.1-.2-.1-.3-.2-.5-.3-.3-.4-.4-.9-.4-1.4v-2.9h-.8v-.7h.8v-1.3l1-.1zm6.8 3.9c0-1-.4-2.5-2.2-2.5-1.5 0-2.5 1.2-2.5 2.8 0 .3 0 .7.2 1 .2.3.3.6.6.9.2.2.6.5.9.6.3.2.6.2 1 .2.6 0 1.2-.1 1.8-.3l-.2-.7c-.5.2-1 .3-1.4.2-.2 0-.5 0-.7-.1s-.4-.2-.6-.4c-.2-.2-.3-.4-.4-.6-.1-.2-.1-.5-.1-.7h3.7V74zm-.9-.3h-2.8c0-.4.2-.8.4-1 .2-.3.6-.5 1-.5.2 0 .4.1.6.2.2.1.3.2.5.3s.2.3.2.5c.2.1.2.3.1.5zm2.4-.5c0-.6 0-1.1-.1-1.6h.9v1h.1c.1-.3.2-.6.6-.8.2-.2.6-.3.9-.3h.2v.9h-.3c-.3 0-.6.2-.9.4s-.4.6-.4.9c0 .2-.1.3-.1.5V77h-1l.1-3.8z",style:{fill:"#4e4e4e"}}),s.createElement("path",{d:"M236.7 57.3c0 .5-.1 1-.3 1.4s-.6.7-1 1c-.4.2-.9.3-1.4.2-.5-.1-.9-.2-1.3-.6s-.6-.7-.7-1.2c-.1-.5-.1-1 .1-1.4.2-.5.5-.9.9-1.1.4-.3.9-.5 1.4-.5.3 0 .6 0 1 .2.3.2.6.2.8.5.2.2.4.5.6.7-.2.2-.1.5-.1.8z",style:{fill:"#767677"}}),s.createElement("path",{d:"M222.6 85.2c-6.4 0-12.1-2.3-14.9-5.7 1.1 3 3.2 5.7 5.8 7.5 2.6 1.8 5.8 2.9 9.1 2.9s6.4-1 9.1-2.9c2.6-1.8 4.7-4.5 5.8-7.5-2.8 3.4-8.4 5.7-14.9 5.7zm0-22c6.4 0 12.1 2.3 14.9 5.7-1.1-3-3.2-5.7-5.8-7.5-2.6-1.8-5.8-2.9-9.1-2.9s-6.4 1-9.1 2.9c-2.6 1.8-4.7 4.5-5.8 7.5 2.9-3.5 8.5-5.7 14.9-5.7z",style:{fill:"#f37726"}}),s.createElement("path",{d:"M208.4 62.4c-.3 0-.7-.1-1-.2-.3-.2-.6-.5-.6-.8-.2-.3-.2-.6-.2-1 .1-.3.2-.6.5-.9s.6-.4.9-.5.7-.1 1 .1c.3.2.6.3.8.6.2.3.3.6.3 1 0 .5-.2 1-.5 1.3-.3.1-.8.4-1.2.4z",style:{fill:"#616262"}}),s.createElement("path",{d:"M213.8 91.9c0 .6-.1 1.2-.4 1.8s-.7 1-1.3 1.2c-.6.2-1.1.3-1.8.2-.6-.1-1.1-.3-1.6-.7-.5-.4-.8-1-.9-1.5-.2-.6-.1-1.2.1-1.8s.6-1 1-1.4c.5-.3 1-.6 1.7-.6.4 0 .8 0 1.2.2.4.2.7.3 1 .6.3.2.6.6.7 1 .1.2.2.6.3 1z",style:{fill:"#9e9e9e"}}),pt||(pt=s.createElement("path",{className:"st1",d:"M626.1 220.1H143.5c-2.1 0-3.7-1.7-3.7-3.7v-42.5c0-2.1 1.7-3.7 3.7-3.7H626c2.1 0 3.7 1.7 3.7 3.7v42.5c.1 2-1.6 3.7-3.6 3.7z"})),_t||(_t=s.createElement("g",{id:"XMLID_142_",className:"st5"},s.createElement("text",{transform:"translate(259.216 141.035)",className:"st6 st7"},"minio"))),s.createElement("path",{d:"m246.7 125-16.2 8.7c-.2.1-.5.1-.8 0l-16.2-8.7c-.4-.2-.8-.3-1.2-.3-1.2-.1-2.1.8-2.2 2v18.8h8v-8.9c.1-.4.5-.8.9-.7.1 0 .2.1.3.1l9.1 4.9c.9.5 2 .5 2.9 0l9.6-4.9c.4-.2.9-.1 1.1.3.1.1.1.2.1.3v9h8v-18.8c-.1-1.1-1.1-2-2.2-2-.4-.1-.8 0-1.2.2z",style:{fill:"#c72c48"}}),ft||(ft=s.createElement("path",{className:"st1",d:"m448.9 166.5-.5.4h-.6l-.4-.4v-.7l.4-.4h.7l.4.4zM466.4 165.8l.4-.4h.6l.5.4v.7l-.5.4h-.6l-.4-.4z"})),zt||(zt=s.createElement("g",{id:"XMLID_125_",className:"st5"},s.createElement("text",{transform:"translate(338.902 202.222)",className:"st6 st7"},"chartmuseum"))),Nt||(Nt=s.createElement("path",{className:"st14",d:"M306.8 187.3h-3.5c-.5 0-.9.4-.9.9s.4.9.9.9h3.5c.5 0 .9-.4.9-.9s-.4-.9-.9-.9zM301.8 182h3.5c.3 0 .6-.2.8-.4.2-.3.2-.6 0-.9-.2-.3-.5-.5-.8-.4h-3.5c-.3 0-.6.2-.8.4-.2.3-.2.6 0 .9.1.3.4.5.8.4zM301.8 185.6h5c.5 0 .9-.4.9-.9s-.4-.9-.9-.9h-5c-.3 0-.6.2-.8.4-.2.3-.2.6 0 .9.1.3.4.5.8.5zM312.9 195.2h-19.5c-.4 0-.7.1-1.1.3-.9.5-1.5 1.6-1.2 2.6.2 1.1 1.1 1.8 2.2 1.9 1.1.1 2-.6 2.4-1.6v6.1c.8.7 1.6 1.2 2.5 1.7v-8.5h2.5v10.7c.8.3 1.6.4 2.5.5v-11.3h2.5V209c.8-.1 1.7-.3 2.5-.5v-10.7h2.5v8.5c.9-.5 1.7-1 2.5-1.7v-6.8c.1 1.2 1 2.2 2.2 2.3 1.2.1 2.3-.8 2.5-2 .2-1.2-.5-2.4-1.6-2.7-.2-.1-.3-.1-.5-.1h-2.9z"})),Mt||(Mt=s.createElement("path",{className:"st14",d:"M323.8 195.1c-.7 0-1.5.1-2.2.2-.2-2.8-1-5.6-2.5-8 .7-.3 1.3-.7 1.9-1.2 1.9-1.5 3-3.3 2.4-4-.5-.7-2.5-.1-4.4 1.4-.6.4-1.1.9-1.5 1.5-.7-.9-1.6-1.7-2.5-2.4-1.2-.9-2.4-1.7-3.8-2.3 0 0-.1 0-.1-.1-.7-2.5-2.9-4.2-5.5-4.2h-6.3c-1.2 0-2.1 1-2.1 2.1v2.1c-1.3.6-2.6 1.4-3.7 2.3-.9.7-1.8 1.6-2.6 2.5-.5-.6-1-1.1-1.6-1.6-1.9-1.5-3.9-2.1-4.4-1.4-.5.7.5 2.5 2.5 4 .6.5 1.3.9 2 1.3-1.4 2.4-2.3 5.1-2.4 7.9-.8-.2-1.6-.3-2.4-.3-2.4 0-4.4.7-4.4 1.6 0 .9 2 1.6 4.4 1.6.8 0 1.7-.1 2.5-.3.2 2.6 1.1 5.2 2.4 7.4-.7.3-1.4.8-2.1 1.3-1.9 1.5-3 3.3-2.4 4 .5.7 2.5.1 4.4-1.4.6-.5 1.2-1 1.7-1.6.3.3.5.6.8.9 3.2 3.4 7.6 5.3 12.2 5.4h.2c4.6 0 8.9-1.8 12.2-5 .3-.3.7-.7 1-1.1.5.5 1 1 1.6 1.5 1.9 1.5 3.9 2.1 4.4 1.4.5-.7-.5-2.5-2.4-4-.6-.5-1.2-.9-1.9-1.2 1.4-2.3 2.2-4.8 2.5-7.5.7.2 1.5.2 2.3.2 2.4 0 4.4-.7 4.4-1.6-.2-.6-2.2-1.4-4.6-1.4zm-24.1-16.4h5.9c1.8 0 3.2 1.5 3.2 3.3v8.8h-5.9c-1.8 0-3.2-1.5-3.2-3.3v-8.8zm15 28.5c-4.2 4.1-10.3 5.4-15.7 3.3-5.4-2.1-9.2-7.2-9.5-13.1-.4-5.9 2.7-11.4 7.8-14.2v4.3c0 3.2 2.6 5.8 5.7 5.8h6.3c1.2 0 2.1-1 2.1-2.1v-8c4.8 2.6 7.8 7.7 7.8 13.3 0 4-1.6 7.9-4.5 10.7z"})),It||(It=s.createElement("path",{className:"st1",d:"M627.2 160.1H392.4c-1.4 0-2.6-1.2-2.6-2.6v-44.8c0-1.4 1.2-2.6 2.6-2.6h234.8c1.4 0 2.6 1.2 2.6 2.6v44.8c0 1.4-1.2 2.6-2.6 2.6z"})),Dt||(Dt=s.createElement("g",{id:"XMLID_132_",className:"st5"},s.createElement("text",{transform:"translate(501.942 82.223)",className:"st6 st7"},"harbor"))),yt||(yt=s.createElement("path",{className:"st1",d:"M460.9 76.3c0 8 6.4 14.4 14.4 14.4s14.4-6.4 14.4-14.4-6.4-14.4-14.4-14.4-14.4 6.4-14.4 14.4z"})),s.createElement("linearGradient",{id:"SVGID_1_",gradientUnits:"userSpaceOnUse",x1:467.204,y1:80.639,x2:475.027,y2:80.639},s.createElement("stop",{offset:.002,style:{stopColor:"#9fe576"}}),s.createElement("stop",{offset:1,style:{stopColor:"#3d8634"}})),s.createElement("path",{d:"M467.5 71.7v-1l3.1-3.1v-.3c0-.2.2-.4.4-.4s.4.2.4.4v.3l3.1 3.1v1h-.5v3.5h.5v1.7h-.5l1 17.4c-1.6-.1-3-.3-4.2-.6-1.2-.3-2.4-.7-3.6-1.4l1.2-15.5h-.8v-1.7h.6v-3.5h-.7z",style:{fill:"url(#SVGID_1_)"}}),xt||(xt=s.createElement("path",{className:"st1",d:"m468.2 79.1 6.1 2.7.1.9-6.2-2.8v-.8zm-.2 2.1 6.4 2.9.1 1-6.5-2.9v-1zm-.1 2.4 6.7 3.1.1 1-6.9-3.1.1-1zm-.2 2.5 7 3.2.1 1-7.2-3.2.1-1zm1.3-14.4h4.1v3.5h-1v-1.5c0-.6-.5-1-1-1-.6 0-1 .5-1 1v1.5h-1v-3.5z"})),s.createElement("path",{d:"M475.3 58.3c-9.9 0-18 8.1-18 18s8.1 18 18 18 18-8.1 18-18c0-10-8.1-18-18-18zm14.4 18c0 8-6.4 14.4-14.4 14.4s-14.4-6.4-14.4-14.4 6.4-14.4 14.4-14.4 14.4 6.4 14.4 14.4z",style:{fill:"#696566"}}),s.createElement("linearGradient",{id:"SVGID_2_",gradientUnits:"userSpaceOnUse",x1:474.697,y1:70.945,x2:493.304,y2:70.945},s.createElement("stop",{offset:.002,style:{stopColor:"#4596d8"}}),s.createElement("stop",{offset:1,style:{stopColor:"#fff"}})),s.createElement("path",{d:"m474.7 72.6 10.8-11.1c.8.6 1.5 1.1 2.1 1.7.6.6 1.2 1.2 1.8 1.9l-14.7 7.5zm.6.7 16.1-5c.4.8.8 1.6 1 2.3.2.7.4 1.5.5 2.2l-17.6.5zm-.3.9 18.3 1.4c0 .6 0 1.4-.1 2.3-.1.9-.2 1.8-.4 2.5L475 74.2z",style:{fill:"url(#SVGID_2_)"}}),gt||(gt=s.createElement("g",{id:"XMLID_110_",className:"st5"},s.createElement("text",{transform:"translate(497.044 142.222)",className:"st6 st7"},"grafana"))),s.createElement("path",{d:"M488 132.8c-.1-.7-.2-1.5-.4-2.3-.2-.9-.6-1.8-1-2.8-.5-1-1.1-2-1.9-2.9-.3-.4-.7-.7-1-1.1.6-2.2-.7-4.2-.7-4.2-2.2-.1-3.5.7-4 1-.1 0-.2-.1-.2-.1-.4-.1-.7-.3-1.1-.4l-1.2-.3c-.4-.1-.8-.2-1.2-.2h-.2c-.9-3-3.6-4.3-3.6-4.3-3.1 2-3.7 4.6-3.7 4.6v.1c-.2 0-.3.1-.5.1-.2.1-.5.1-.7.2-.2.1-.5.2-.7.3-.5.2-.9.4-1.3.7-.4.2-.8.5-1.2.8-.1 0-.1-.1-.1-.1-4.2-1.6-7.8.3-7.8.3-.3 4.4 1.7 7.2 2.1 7.7-.1.3-.2.5-.3.8-.3 1-.5 2-.7 3.1 0 .1 0 .3-.1.5-3.8 1.9-5 5.8-5 5.8 3.2 3.7 7 3.9 7 3.9.5.9 1 1.7 1.6 2.4.2.3.5.6.8.9-1.2 3.3.2 6.1.2 6.1 3.6.1 5.9-1.6 6.4-2l1.1.3c1.1.3 2.2.5 3.3.5h1.5c1.7 2.4 4.6 2.7 4.6 2.7 2.1-2.2 2.2-4.4 2.2-4.9.4-.3.9-.6 1.3-1 .9-.7 1.6-1.6 2.2-2.6.1-.1.1-.2.2-.2 2.4.1 4-1.5 4-1.5-.4-2.5-1.8-3.7-2.1-3.9v-2.5l-.1-.4c0-.3-.1-.5-.1-.8-.2-1-.7-2.1-1.2-3-.6-.9-1.2-1.7-2-2.4s-1.6-1.2-2.6-1.6c-.9-.4-1.8-.7-2.8-.8-.5-.1-1-.1-1.4-.1h-.7c-.2 0-.5.1-.7.1-1 .2-1.8.5-2.6 1s-1.5 1.1-2 1.7c-.6.6-1 1.4-1.3 2.2-.3.7-.5 1.6-.5 2.3v1.2c.1 1.1.5 2.1 1.2 3 .4.6.9 1 1.4 1.3.5.4 1.1.6 1.6.8.6.2 1.1.2 1.6.2H474.7c.1 0 .2-.1.4-.1.2-.1.4-.2.6-.2.2-.1.4-.2.5-.3l.1-.1c.2-.1.2-.4.1-.6-.1-.1-.3-.2-.5-.1 0 0-.1 0-.1.1-.1.1-.3.1-.5.2-.2 0-.4.1-.5.1H473.7c-.4-.1-.8-.2-1.2-.4-.4-.2-.8-.4-1.1-.7-.4-.3-.6-.7-.9-1.1-.2-.4-.4-.9-.5-1.3 0-.2-.1-.5 0-.7v-.8c0-.1 0-.2.1-.4.2-1.1.7-2.1 1.5-2.9.2-.2.4-.4.7-.5.2-.2.5-.3.7-.4s.5-.2.8-.3c.3-.1.6-.1.9-.1H475.5c.9.1 1.9.4 2.7.8 1.1.6 2.1 1.6 2.7 2.8.3.6.5 1.2.6 1.9 0 .2 0 .3.1.5v1.4c0 .2 0 .4-.1.5l-.1.5c0 .2-.2.7-.3 1-.1.4-.6 1.3-1 1.9-.9 1.2-2 2.1-3.3 2.7-.7.3-1.3.5-2.1.6-.4.1-.7.1-1.1.1h-1.1c-.8-.1-1.5-.2-2.3-.4s-1.5-.5-2.1-.9c-1.4-.7-2.5-1.7-3.5-2.9-.5-.6-.9-1.2-1.2-1.9-.4-.7-.6-1.4-.8-2.1-.2-.7-.3-1.5-.4-2.2v-1.1c0-.4 0-.7.1-1.1 0-.4.1-.7.2-1.1.1-.4.2-.7.3-1.1s.5-1.5.8-2.1c.6-1.3 1.5-2.6 2.4-3.5.2-.2.5-.5.8-.7.1-.1.4-.3.6-.5.3-.2.6-.4.9-.5.1-.1.3-.1.5-.2.1 0 .1-.1.2-.1s.1-.1.2-.1c.3-.1.6-.2 1-.4.1 0 .2 0 .2-.1.1 0 .2 0 .2-.1.1 0 .3-.1.5-.1.1 0 .2 0 .2-.1h.4l.3-.1H474.9c.6 0 1.3.1 1.9.2 1.2.2 2.3.6 3.4 1.1 1 .5 1.9 1.1 2.8 1.8l.1.1.1.1c.1.1.2.2.3.2s.2.2.3.2c.1.1.2.2.2.3.9 1 1.7 2.1 2.3 3.3 0 0 0 .1.1.1 0 0 0 .1.1.1 0 .1.1.2.1.2 0 .1.1.2.1.2 0 .1.1.2.1.2.1.3.2.6.4 1 .2.5.3.9.4 1.3 0 .1.2.2.3.2.2 0 .3-.1.3-.3-.2-.2-.2-.7-.2-1.2z",style:{fill:"#f07f0e"}}),ut||(ut=s.createElement("path",{className:"st1",d:"M570.4 290.1h280v270h-280z"})),bt||(bt=s.createElement("path",{className:"st0",d:"M591.2 310.1h240v110h-240zM591.2 430.6h240v110h-240z"})),Vt||(Vt=s.createElement("g",{id:"XMLID_163_",className:"st5"},s.createElement("text",{transform:"translate(675.948 518.244)",className:"st6 st4"},"tekton"))),St||(St=s.createElement("path",{d:"M692.7 446.6c-.8 0-1.4.5-1.6 1.2-.4 1.5-.5 3-.3 4.5s.7 3 1.4 4.3c.5.9 1 1.7 1.7 2.4-.1.5-.2 1-.2 1.4-.1.8-.1 1.7-.1 2.5 0 .3 0 .7.1 1 .1 1 1 2.2 1.6 2.9 1 1.3 2.3 2.3 3.7 3.1 0 .1 0 .1.1.2.2.3.3.6.6.9-.5 1-.8 2-.9 3.1-.2.8-.3 1.6-.3 2.4-.3.1-.6.3-.8.5-.7.6-1.3 1.4-1.6 2.3-.1.2-.2.5-.2.8l-.4-.1v.3c-.2 1.3-.1 2.5.4 3.7-.5.1-.9.2-1.3.5-.3.2-.5.5-.6.8-.3.6-.5 1.3-.5 2 0 .5.2 1 .5 1.3.2.2.5.3.8.3h4.3c.3.7.8 1.3 1.5 1.5.2 0 .4.1.6.1h5.1c.5 0 1-.3 1.2-.8.2.5.7.8 1.3.8H713.9c.2 0 .4 0 .6-.1.7-.2 1.2-.8 1.5-1.5h4.4c.3 0 .6-.1.8-.3.4-.3.6-.8.6-1.3 0-.7-.3-1.4-.5-2-.4-.9-1.1-1.3-2-1.4.5-1.2.6-2.3.4-3.7v-.3l-.4.1v-.2c.2-.6.5-1.1.8-1.6.4-.7.9-1.3 1.4-2 .3-.3.5-.6.8-.9.5-.5 1.2-.9 2-1 .5 0 1.1.1 1.5.4.3.2.5.5.6.9.3.6.4 1.1.9 1.6.9.8 2.2.9 3.3.4.8-.4 1.5-1.1 1.7-2 .1-.3.1-.5.1-.8-.2-1.7-1.2-3.2-2.5-4.3-1.2-1-2.7-1.7-4.2-1.7-1.4 0-2.9.4-4.1 1.1-2.1 1.2-3.8 3.1-5.1 5.2 0-.3-.1-.6-.2-1-.1-.6-.2-1.2-.4-1.8-.1-.3-.2-.6-.3-.8.2-.2.3-.4.5-.6.1-.2.3-.5.4-.7l.1-.2c1.4-.8 2.7-1.9 3.7-3.1.6-.8 1.5-1.9 1.6-2.9 0-.3.1-.7.1-1 0-.8 0-1.7-.1-2.5-.1-.5-.1-.9-.2-1.4.6-.7 1.2-1.5 1.7-2.4.7-1.3 1.2-2.8 1.4-4.3.2-1.5.1-3-.3-4.5-.2-.7-.9-1.3-1.6-1.3-2.9 0-5.3 1.2-7.6 2.7-4.3-2.6-9.8-2.6-14.1 0-3.2-1.5-5.7-2.7-8.5-2.7zm0 1.7h.1c1.6.9 3 2.6 4.1 4.4-.2.3-.4.6-.6.8-.8 1.2-1.4 2.4-1.8 3.8-1.3-1.7-2.9-4.9-1.8-9zm29.2 0h.1c1.1 4.1-.5 7.3-1.8 9-.4-1.4-1.1-2.7-1.9-3.9-.2-.2-.3-.5-.5-.7 1.1-1.8 2.5-3.6 4.1-4.4zm-26.8.3c1.4.4 2.8 1.1 4 1.9-.5.4-1 .9-1.5 1.4-.2-.4-.5-.8-.8-1.2-.5-.8-1.1-1.5-1.7-2.1zm24.5 0c-.7.6-1.3 1.3-1.8 2.1-.3.4-.5.8-.8 1.2-.4-.5-.9-.9-1.5-1.4 1.4-.8 2.7-1.5 4.1-1.9zm-12.6.3v4.8c-2.5.1-5 .8-6.6 2.1-1.8 1.6-2.9 4.3-2.8 5.7.1 1.3 2.2 2.1 4.9 2.6-.1.2-.2.5-.3.8-.1.4-.1.8 0 1.2-.9-.1-1.9-.3-2.8-.4-1.5-.3-2.9-.7-4.3-1.3-.1-.1-.1-.3-.1-.4 0 0-.6-5.2 2.3-9.6 2.4-3.6 6.1-5.4 9.7-5.5zm.7 0c3.6.1 7.2 1.8 9.5 5.2 3 4.4 2.4 9.7 2.4 9.7 0 .1 0 .3-.1.4-1.4.5-2.8 1-4.3 1.3-.8.2-1.7.3-2.8.4.1-.4.1-.8 0-1.2 0-.3-.1-.5-.3-.8 2.7-.4 4.8-1.3 4.9-2.6.1-1.4-1.1-4.1-2.8-5.7-1.5-1.3-4-2.1-6.6-2.1v-4.6zm-1.6 1.3c-.2 0-.4.2-.4.4 0 .4.4.5.7.3.2-.2.2-.4 0-.6-.1 0-.2-.1-.3-.1zm2.5 0c-.2 0-.4.2-.4.4 0 .4.4.5.7.3.2-.2.2-.4 0-.6-.1 0-.2-.1-.3-.1zm-2.5 1.8c-.2 0-.4.2-.4.4 0 .4.4.5.7.3.3-.3.1-.7-.3-.7zm2.5 0c-.2 0-.4.2-.4.4.2 0 .4-.2.4-.4zm-6.5 6.9c.6 0 1.2.3 1.6.7.4.5.6 1.1.6 1.7 0 .2-.2.4-.4.4s-.4-.2-.4-.4c0-.4-.1-.9-.4-1.2-.2-.3-.6-.5-1-.5-.2 0-.5.1-.7.2-.2.2-.4.4-.5.6-.1.2-.3.3-.5.2-.2-.1-.3-.3-.2-.5.2-.4.5-.7.8-1 .3-.1.7-.2 1.1-.2zm10.5 0c.4 0 .8.1 1.1.4.3.2.6.6.8 1 .1.2 0 .4-.2.5-.2.1-.4 0-.5-.2-.1-.3-.3-.5-.5-.6-.2-.1-.4-.2-.7-.2-.4 0-.7.2-1 .5-.3.3-.4.8-.4 1.2 0 .2-.2.4-.4.4s-.4-.2-.4-.4c0-.6.2-1.2.6-1.7.4-.7 1-.9 1.6-.9zm-5.3 4c1.8 0 4 .8 4.2 2.1.2 1.3-.5 2.1-1.6 2.6-1.6.6-2.1-.2-2.4-.7l-.2-.4s-.1.1-.2.4c-.3.4-.8 1.1-1.9.9-1.3-.4-2.3-1.3-2.1-2.8.3-1.3 2.5-2.1 4.2-2.1zm0 .6c-1.1 0-2.4.3-2.5 1-.2 1.1 1.4 1.7 2.5 1.6 1.1 0 2.7-.5 2.5-1.7-.1-.6-1.4-.9-2.5-.9zm-11.7 1.7c1.2.4 2.4.8 3.7 1 1 .2 2.1.4 3.1.5 0 .1.1.2.2.3.5.8 1.3 1.4 2.3 1.7-.5.2-.9.5-1 1 0 .2 0 .4.1.6-.7-.1-1.5-.3-2.2-.6-2.2-.8-4.1-2-5.5-3.8-.3-.2-.5-.4-.7-.7zm23.4 0c-.1.2-.3.4-.5.6-.8 1-1.7 1.9-2.8 2.6-1.5 1-3.2 1.6-5 2 .1-.2.1-.4.1-.7-.1-.5-.5-.8-1-1 .9-.3 1.8-.9 2.3-1.7.1-.1.1-.2.1-.3 1.1-.1 2.1-.3 3.1-.5 1.3-.2 2.6-.6 3.7-1zm-11.6 4.1c1.4 0 2.7.3 2.5.8-.1.3-.5.4-.9.6-.5.1-1.1.1-1.6.1s-1.1-.1-1.6-.1c-.4-.1-.8-.4-.9-.6-.3-.6 1.1-.8 2.5-.8zm17.7.9c.9 0 1.7.3 2.6.8-.8.2-1.5.9-1.9 1.7-.1.3-.2.5-.2.8-.4-.2-.9-.4-1.4-.4 0 0 0-.1-.1-.1-.5-.7-.6-1.9 0-2.5l.1-.1c.1-.1.1-.1.2-.1.2-.1.5-.1.7-.1zm-2 .3c-.2.4-.3.9-.2 1.3 0 .5.1 1 .4 1.4-.4.1-.9.3-1.3.5 0 0-.1 0-.1-.1-.3-.1-.6-.4-.8-.7-.2-.3-.4-1-.2-1.3.3-.2.5-.3.8-.5.4-.2.9-.4 1.4-.6zm-22 .4c.3.1.7.2 1 .3 1.8 1 3.9 1.4 6 1.3.9-.1 1.8-.2 2.6-.5.7-.2 1.3-.5 1.9-.8.3-.1.7-.2 1-.3-.9 1.2-2.2 2.1-3.6 2.5 1.3-.2 2.7-.5 3.8-1.1.6 1.5.9 3.4.6 6l-.3 1.8c-1.3-.8-3.2-.2-4.6.7-.2-2.6-.7-4.5-1-5.2-.2-.6-1-.5-1 .1.1.3.2.7.2 1 .1.5.2 1.1.3 1.6.1.9.3 1.8.3 2.7v.6c-.8.1-1.7.1-2.5 0v-.6c0-.4.1-.7.1-1.1.1-.6.1-1.1.2-1.7.1-.6.2-1.1.3-1.7 0-.2.1-.5.2-.7 0-.6-.3-.6-.5-.6s-.3.2-.4.5c-.5 1.6-.8 3.3-.9 5.1-1.6-1-2.8-1.4-4.6-.5l-.3-1.8c-.3-2.8.1-4.9.8-6.4 1.1.7 2.4 1.2 3.8 1.4-1.4-.6-2.6-1.5-3.4-2.6zm27.3.9c.2 0 .3.1.5.2.9.9 1.5 2 1.7 3.1.1 1.3-2 2.3-2.9 1.4-.5-.5-.5-1.5-1.3-2.3v-.1c0-1.2.8-2.4 2-2.3zm-8.4.5c.1.4.2.7.4 1 .2.4.5.7.8.9-.1.1-.2.2-.3.2-.3.3-.5.6-.8.9h-.2c-.3 0-.6-.1-.9-.3-.3-.2-.6-.7-.6-1 .5-.6 1-1.2 1.6-1.7zm-2.2 2.5c.2.3.4.6.7.9.3.2.6.4 1 .5-.6.8-1.1 1.6-1.6 2.5-.3-.5-.7-1-1.1-1.3-.1-.1-.3-.2-.4-.3.4-.8.8-1.6 1.4-2.3zm-2.2 3c1.1.5 1.8 1.7 1.9 2.9-.9.3-1.8.7-2.7 1.1.3-1.1.5-2.3.7-3.4.1-.2.1-.4.1-.6zm-17 0c0 .2 0 .4.1.6.1 1.2.4 2.3.7 3.4-.8-.4-1.7-.8-2.6-1.1.1-1.2.7-2.4 1.8-2.9zm3.5 3.1c1 0 1.9.5 2.6 1.1 0 2.7.6 5.2 1 5.7s.2 1.4.2 1.4-4.8.1-5.2 0c-.5-.1-1-1.5-.2-2.3.4-.4.9-.5 1.3-.5.9.2 1.5.8 2.2 1.6-.1-1.4-.9-1.7-1.5-2.1-.2-.1-.2-.2-.3-.3-.7-1.3-1.2-2.7-1.6-4.2.3-.3.9-.5 1.5-.4zm10 0c.6 0 1.2.1 1.7.5-.4 1.5-.9 2.9-1.6 4.2-.1.1-.2.3-.3.3-.6.3-1.3.7-1.5 2.1.6-.8 1.2-1.4 2.2-1.6.5 0 1 .1 1.3.5.8.8.2 2.2-.3 2.3-.5.1-5.2 0-5.2 0s-.2-.9.2-1.4c.4-.5.9-3 1-5.7.6-.7 1.6-1.2 2.5-1.2zm-15.9.7c.9.2 2.3.9 3.5 1.5.3.8.6 1.5.9 2.3-.4.1-.8.4-1.1.7-.4.4-.7 1-.7 1.7h-4.4c-.4-.4.1-3.7 4.4-1.8-1-.8-2.6-1.8-2.6-4.4zm21.8 0c0 2.6-1.6 3.6-2.5 4.4 4.3-2 4.8 1.4 4.4 1.7h-4.5c0-1.1-.8-2-1.9-2.3.3-.7.6-1.5.9-2.2 1.2-.7 2.7-1.4 3.6-1.6zm-9.5.7c0 1.1-.1 2.1-.3 3.2-.1.4-.3 1.3-.4 1.6-.1.1-.1.2-.1.2h-.8c-.1-.1-.1-.2-.2-.3-.1-.2-.1-.3-.2-.5l-.3-1.5c-.2-.9-.2-1.8-.3-2.8.8.3 1.7.3 2.6.1z"})),Lt||(Lt=s.createElement("g",{id:"XMLID_161_",className:"st5"},s.createElement("text",{transform:"translate(657.196 401.568)",className:"st6 st7"},"kubebb\u5185\u6838"))),Xt||(Xt=s.createElement("path",{className:"st19",d:"M734.9 360.2v-20.6c0-2.1-1.1-4-2.9-5.1l-17.9-10.3c-1.8-1-4-1-5.9 0l-17.9 10.3c-1.8 1-2.9 3-2.9 5.1v20.6c0 2.1 1.1 4 2.9 5.1l17.9 10.3c1.8 1 4 1 5.9 0l17.9-10.3c1.8-1.1 2.9-3 2.9-5.1"})),Gt||(Gt=s.createElement("defs",null,s.createElement("path",{id:"SVGID_3_",d:"m698.8 358.5 22.9 12.7 10.3-5.9c1.8-1 2.9-3 2.9-5.1v-15.5l-11.4-7.4-24.7 21.2z"}))),s.createElement("clipPath",{id:"SVGID_4_"},s.createElement("use",{xlinkHref:"#SVGID_3_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_5_",gradientUnits:"userSpaceOnUse",x1:328.875,y1:751.873,x2:329.403,y2:751.873,gradientTransform:"scale(-42.5478 42.5478) rotate(-25.046 -1517.61 1159)"},s.createElement("stop",{offset:0,style:{stopColor:"#4461eb"}}),s.createElement("stop",{offset:.597,style:{stopColor:"#222dc3"}}),s.createElement("stop",{offset:.999,style:{stopColor:"#0908a6"}}),s.createElement("stop",{offset:1,style:{stopColor:"#0908a6"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_4_)",fill:"url(#SVGID_5_)"},d:"m728.5 385.1-42.7-20 19.5-41.7 42.7 19.9z"}),Ht||(Ht=s.createElement("path",{className:"st1",d:"m711.3 337.3-6.2-3.7-6.1 3.8 6 3.5z"})),Ct||(Ct=s.createElement("defs",null,s.createElement("path",{id:"SVGID_6_",d:"m698.8 358.5 6.4 3.7-.3-21.4-6-3.4c.1 0-.1 21-.1 21.1"}))),s.createElement("clipPath",{id:"SVGID_7_"},s.createElement("use",{xlinkHref:"#SVGID_6_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_8_",gradientUnits:"userSpaceOnUse",x1:338.358,y1:753.794,x2:338.886,y2:753.794,gradientTransform:"matrix(0 48.9282 48.9282 0 -36179.727 -16214.867)"},s.createElement("stop",{offset:0,style:{stopColor:"#d4e4ff"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4478ff"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_7_)",fill:"url(#SVGID_8_)"},d:"M698.8 337.4h6.4v24.8h-6.4z"}),wt||(wt=s.createElement("defs",null,s.createElement("path",{id:"SVGID_9_",d:"m705 340.9.3 21.3 6-3.7v-21.2z"}))),s.createElement("clipPath",{id:"SVGID_10_"},s.createElement("use",{xlinkHref:"#SVGID_9_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_11_",gradientUnits:"userSpaceOnUse",x1:350.806,y1:734.008,x2:351.334,y2:734.008,gradientTransform:"matrix(11.8752 0 0 -11.8752 -3460.895 9066.252)"},s.createElement("stop",{offset:0,style:{stopColor:"#4461eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_10_)",fill:"url(#SVGID_11_)"},d:"M705 337.3h6.3v24.9H705z"}),kt||(kt=s.createElement("path",{className:"st1",d:"m717.4 333.5-6.1 3.8 6.1 3.6 6.2-3.7z"})),Pt||(Pt=s.createElement("defs",null,s.createElement("path",{id:"SVGID_12_",d:"M717.4 340.9s-.2 6.8-.1 6.9l6.3-3.4v-7.1l-6.2 3.6z"}))),s.createElement("clipPath",{id:"SVGID_13_"},s.createElement("use",{xlinkHref:"#SVGID_12_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_14_",gradientUnits:"userSpaceOnUse",x1:343.874,y1:758.506,x2:344.402,y2:758.506,gradientTransform:"matrix(0 20.7205 20.7205 0 -14996.247 -6786.748)"},s.createElement("stop",{offset:0,style:{stopColor:"#4461eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_13_)",fill:"url(#SVGID_14_)"},d:"M717.2 337.2h6.4v10.5h-6.4z"}),Ut||(Ut=s.createElement("defs",null,s.createElement("path",{id:"SVGID_15_",d:"m711.3 344.6 6 3.1v-6.9l-6-3.5z"}))),s.createElement("clipPath",{id:"SVGID_16_"},s.createElement("use",{xlinkHref:"#SVGID_15_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_17_",gradientUnits:"userSpaceOnUse",x1:343.951,y1:758.847,x2:344.479,y2:758.847,gradientTransform:"matrix(0 20.5463 20.5463 0 -14877.232 -6728.38)"},s.createElement("stop",{offset:0,style:{stopColor:"#d4e4ff"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4478ff"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_16_)",fill:"url(#SVGID_17_)"},d:"M711.3 337.3h6.1v10.4h-6.1z"}),Ot||(Ot=s.createElement("path",{className:"st1",d:"m711.2 344.6-6.3 3.3 6.1 3.6 6.3-3.8z"})),Tt||(Tt=s.createElement("defs",null,s.createElement("path",{id:"SVGID_18_",d:"M711 351.5s-.2 6.8-.1 6.9l6.3-3.9v-6.8l-6.2 3.8z"}))),s.createElement("clipPath",{id:"SVGID_19_"},s.createElement("use",{xlinkHref:"#SVGID_18_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_20_",gradientUnits:"userSpaceOnUse",x1:343.327,y1:758.685,x2:343.855,y2:758.685,gradientTransform:"matrix(0 20.9381 20.9381 0 -15171.385 -6839.636)"},s.createElement("stop",{offset:0,style:{stopColor:"#4461eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_19_)",fill:"url(#SVGID_20_)"},d:"M710.8 347.7h6.5v10.6h-6.5z"}),Bt||(Bt=s.createElement("defs",null,s.createElement("path",{id:"SVGID_21_",d:"m704.9 355.2 6 3.1.1-6.9-6.1-3.5z"}))),s.createElement("clipPath",{id:"SVGID_22_"},s.createElement("use",{xlinkHref:"#SVGID_21_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_23_",gradientUnits:"userSpaceOnUse",x1:343.49,y1:759.123,x2:344.019,y2:759.123,gradientTransform:"matrix(0 20.5463 20.5463 0 -14889.275 -6708.31)"},s.createElement("stop",{offset:0,style:{stopColor:"#d4e4ff"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4478ff"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_22_)",fill:"url(#SVGID_23_)"},d:"M704.9 347.9h6.1v10.4h-6.1z"}),Ft||(Ft=s.createElement("path",{className:"st1",d:"m717.2 354.4-6.3 3.9 6.1 3.5 6.2-3.6z"})),Zt||(Zt=s.createElement("defs",null,s.createElement("path",{id:"SVGID_24_",d:"m710.9 365.2 6 3.3.1-6.7-6.1-3.5z"}))),s.createElement("clipPath",{id:"SVGID_25_"},s.createElement("use",{xlinkHref:"#SVGID_24_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_26_",gradientUnits:"userSpaceOnUse",x1:343.223,y1:759.054,x2:343.752,y2:759.054,gradientTransform:"matrix(0 20.1226 20.1226 0 -14560.173 -6547.035)"},s.createElement("stop",{offset:0,style:{stopColor:"#d4e4ff"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4478ff"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_25_)",fill:"url(#SVGID_26_)"},d:"M710.9 358.3h6.1v10.2h-6.1z"}),jt||(jt=s.createElement("defs",null,s.createElement("path",{id:"SVGID_27_",d:"M717 361.8v6.7l5.9-3.8.3-6.5z"}))),s.createElement("clipPath",{id:"SVGID_28_"},s.createElement("use",{xlinkHref:"#SVGID_27_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_29_",gradientUnits:"userSpaceOnUse",x1:346.827,y1:763.578,x2:347.355,y2:763.578,gradientTransform:"scale(-13.7028 13.7028) rotate(87.489 532.351 186.233)"},s.createElement("stop",{offset:0,style:{stopColor:"#4461eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_28_)",fill:"url(#SVGID_29_)"},d:"m723.6 358.2-.4 10.6-6.7-.3.5-10.6z"}),Kt||(Kt=s.createElement("path",{className:"st1",d:"M890.2 290.1h310v270h-310z"})),At||(At=s.createElement("path",{className:"st29",d:"M910.1 310.1h270v230h-270z"})),s.createElement("g",{style:{opacity:.1}},qt||(qt=s.createElement("g",{id:"XMLID_173_"},s.createElement("path",{id:"XMLID_175_",className:"st19",d:"M1039.8 540.1"}),s.createElement("path",{id:"XMLID_174_",className:"st19",d:"M1127.4 439.8c-3.9-23.9-24.8-42.3-49.8-42.3-25 0-45.9 18.4-49.8 42.3-24.2 3.7-42.7 24.7-42.7 49.9 0 26.4 20.4 48.1 46.3 50.3l2.2-16.7c-17.6-1-31.7-15.7-31.7-33.5 0-18.5 14.9-33.5 33.4-33.6h8.6l.1-8.3c.1-18.4 15.2-33.4 33.6-33.4 18.4 0 33.5 15 33.6 33.4l.1 8.3h8.6c18.4.1 33.4 15.2 33.4 33.6 0 17.7-14.1 32.5-31.7 33.5l2.2 16.7c25.8-2.2 46.3-24.1 46.3-50.2 0-25.3-18.5-46.2-42.7-50z"}))),Wt||(Wt=s.createElement("g",{id:"XMLID_32_"},s.createElement("path",{id:"XMLID_170_",className:"st31",d:"M1098.7 540.1h16.8l-10.5-79.8h-14.7l1.8 16.8h-28.8l1.8-16.8h-14.7l-10.5 79.8h16.8l1.8-16.8h38.5l1.7 16.8zm-38.6-33.6 1.8-16.8h31.4l1.8 16.8h-35z"})))),Rt||(Rt=s.createElement("path",{className:"st1",d:"M20.2 290.1h510v270h-510z"})),Jt||(Jt=s.createElement("path",{className:"st0",d:"M40.2 310.1h470v230h-470z"})),Yt||(Yt=s.createElement("g",{id:"XMLID_147_",className:"st2"},s.createElement("text",{transform:"translate(231.186 523.327)",className:"st3 st4"},"\u5e95\u5ea7 Kit"))),Qt||(Qt=s.createElement("path",{className:"st1",d:"M267.6 371.1H53c-1.4 0-2.5-1.1-2.5-2.5v-45.9c0-1.4 1.1-2.5 2.5-2.5h214.6c1.4 0 2.5 1.1 2.5 2.5v45.9c0 1.4-1.1 2.5-2.5 2.5z"})),$t||($t=s.createElement("g",{id:"XMLID_128_",className:"st5"},s.createElement("text",{transform:"translate(145.645 351.553)",className:"st6 st7"},"nginx"))),s.createElement("path",{d:"m120.5 327.6-15.6 9v18l15.6 9 15.6-9v-18l-15.6-9zm9 24.9c0 1.1-1 1.9-2.3 1.9-.9 0-2-.4-2.7-1.2l-9-10.7v10c0 1.1-.9 1.9-1.9 1.9h-.1c-1.1 0-1.9-.9-1.9-1.9v-13.8c0-1.1.9-1.9 2.3-1.9 1 0 2.1.4 2.7 1.2l9 10.7v-10c0-1.1.9-1.9 1.9-1.9h.1c1.1 0 1.9.9 1.9 1.9v13.8z",style:{fill:"#269539"}}),ea||(ea=s.createElement("path",{className:"st1",d:"M497.8 371.3H282.9c-1.4 0-2.5-1.1-2.5-2.5v-45.9c0-1.4 1.1-2.5 2.5-2.5h214.9c1.4 0 2.5 1.1 2.5 2.5v45.9c.1 1.4-1.1 2.5-2.5 2.5z"})),ta||(ta=s.createElement("g",{id:"XMLID_126_",className:"st5"},s.createElement("text",{transform:"translate(396.822 352.741)",className:"st6 st7"},"dex"))),aa||(aa=s.createElement("path",{className:"st33",d:"M380.5 345s4.3-1.7 5.1-6.6c-.5-2.3-5.2-8.4-11.5-10 0 0 2.7 3.9 2.3 8.6.1-.1 3.8 2.9 4.1 8zM371.8 334.7s-.3-4.5-4.8-6.9c-2.2-.3-9.5 2.3-13 7.8 0 0 4.7-1.4 8.9.4.1.2 4.1-2.7 8.9-1.3zM359.4 339.8s-4.4-1.2-8 2.5c-.9 2.1-.6 9.7 3.5 14.8 0 0 .1-4.8 3.1-8.3-.1-.2-1.4-4.9 1.4-9zM360.3 353.1s-2.5 3.9-.1 8.3c1.8 1.6 9.1 3.8 15.2 1.3 0 0-4.5-1.6-7-5.6-.1.2-4.9.1-8.1-4zM373.4 356.5s3 3.5 7.9 2.7c2.1-1.2 6.4-7.5 6-14 0 0-2.9 3.9-7.4 4.9-.2-.1-1.7 4.6-6.5 6.4z"})),s.createElement("circle",{cx:369.1,cy:345.9,r:5.8,style:{fill:"#ef4c5c"}}),sa||(sa=s.createElement("path",{className:"st1",d:"M267.6 433H53c-1.4 0-2.5-1.1-2.5-2.5v-45.9c0-1.4 1.1-2.5 2.5-2.5h214.6c1.4 0 2.5 1.1 2.5 2.5v45.9c0 1.4-1.1 2.5-2.5 2.5zM267.9 494H53c-1.4 0-2.5-1.1-2.5-2.5v-45.9c0-1.4 1.1-2.5 2.5-2.5h214.9c1.4 0 2.5 1.1 2.5 2.5v45.9c.1 1.3-1.1 2.5-2.5 2.5zM497.8 494H282.9c-1.4 0-2.5-1.1-2.5-2.5v-45.9c0-1.4 1.1-2.5 2.5-2.5h214.9c1.4 0 2.5 1.1 2.5 2.5v45.9c.1 1.3-1.1 2.5-2.5 2.5zM497.8 433.2H282.9c-1.4 0-2.5-1.1-2.5-2.5v-45.9c0-1.4 1.1-2.5 2.5-2.5h214.9c1.4 0 2.5 1.1 2.5 2.5v45.9c.1 1.4-1.1 2.5-2.5 2.5z"})),la||(la=s.createElement("g",{id:"XMLID_90_",className:"st5"},s.createElement("text",{transform:"translate(108.501 475.61)",className:"st6 st7"},"cert-manager"))),ca||(ca=s.createElement("defs",null,s.createElement("path",{id:"SVGID_30_",d:"M62.5 451.1h36v34.8h-36z"}))),s.createElement("clipPath",{id:"SVGID_31_"},s.createElement("use",{xlinkHref:"#SVGID_30_",style:{overflow:"visible"}})),s.createElement("g",{style:{clipPath:"url(#SVGID_31_)"}},s.createElement("path",{d:"M98.5 468.5c0 1.9-1.2 3.6-1.7 5.3-.6 1.8-.6 3.8-1.7 5.3s-3 2.2-4.5 3.3c-1.5 1.1-2.7 2.7-4.5 3.3-1.7.6-3.7 0-5.6 0-1.9 0-3.9.6-5.6 0-1.8-.6-3-2.2-4.5-3.3-1.5-1.1-3.4-1.8-4.5-3.3-1.1-1.5-1.1-3.5-1.7-5.3-.6-1.7-1.7-3.4-1.7-5.3s1.2-3.6 1.7-5.3c.6-1.8.6-3.8 1.7-5.3s3-2.2 4.5-3.3c1.5-1.1 2.7-2.7 4.5-3.3 1.7-.6 3.7 0 5.6 0 1.9 0 3.9-.6 5.6 0 1.8.6 3 2.2 4.5 3.3 1.5 1.1 3.4 1.8 4.5 3.3 1.1 1.5 1.1 3.5 1.7 5.3.5 1.7 1.7 3.4 1.7 5.3z",style:{fill:"#326ce5"}}),ma||(ma=s.createElement("path",{className:"st37",d:"M66 466.5c2.1 0 2.1 1 4.2 1s2.1-1 4.2-1 2.1 1 4.2 1 2.1-1 4.2-1 2.1 1 4.2 1 2.1-1 4.2-1 2.1 1 4.2 1M66 468.4c2.1 0 2.1 1 4.2 1s2.1-1 4.2-1 2.1 1 4.2 1 2.1-1 4.2-1 2.1 1 4.2 1 2.1-1 4.2-1 2.1 1 4.2 1M66 470.8c2.1 0 2.1 1 4.2 1s2.1-1 4.2-1 2.1 1 4.2 1 2.1-1 4.2-1 2.1 1 4.2 1 2.1-1 4.2-1 2.1 1 4.2 1"})),ra||(ra=s.createElement("path",{className:"st1",d:"M80.5 453.2c-8.4 0-15.3 6.9-15.3 15.3 0 8.5 6.8 15.3 15.3 15.3 8.4 0 15.3-6.8 15.3-15.3s-6.9-15.3-15.3-15.3zm0 29.3c-7.7 0-14-6.3-14-14s6.3-14 14-14 14 6.3 13.9 14c.1 7.7-6.2 14-13.9 14z"})),na||(na=s.createElement("path",{className:"st1",d:"M73.4 475.4c0-.2-.3-.3-.5-.3-.3 0-.5.1-.8.1.1-.3.2-.6.3-.8.1-.2-.1-.3-.2-.5-.1-.1-.2 0-.3.1-.4.3-.8.7-1.2 1-.2.2 0 .2 0 .4.1.1.2.2.3.1.2-.2.4-.3.6-.5 0 .1-.1.2-.1.3-.1.2.1.4.3.4h.3c-.2.2-.4.3-.6.5-.2.1-.1.2 0 .3.1.1.1.3.3.1.5-.4.9-.7 1.3-1.1.3 0 .4 0 .3-.1zM81.6 458.9c.3.1.4.1.5-.3v-.2c0-.1 0-.2.1-.1.1 0 .2 0 .2.1s.1.2.1.4c.1.3.2.4.5.4.1 0 .2 0 .1-.2s-.1-.4-.2-.6c0-.1 0-.1.1-.2.3-.1.4-.4.4-.6 0-.3-.2-.6-.6-.7-.3-.1-.6-.1-.9-.2-.1 0-.2 0-.2.1l-.3 1.8c.1.2.1.3.2.3zm.9-1.5c.2 0 .5.1.5.3 0 .1-.1.2-.3.2-.1-.1-.3.1-.4-.2 0-.1 0-.3.2-.3zM78.4 478.1c-.1 0-.3-.1-.3.1-.1.3-.1.5-.2.8-.1-.4-.2-.7-.3-1-.1-.2-.3-.2-.4-.2-.2 0-.1.1-.2.2-.1.5-.3 1-.4 1.5-.1.2.1.2.2.3.1 0 .3.1.3-.1.1-.3.1-.5.2-.8 0 .1.1.1.1.2l.3.9c.1.2.3.2.4.2.2 0 .1-.1.1-.2.1-.5.3-1 .4-1.5.1-.4-.1-.4-.2-.4zM90.2 475c-.2 0-.3-.1-.5-.1-.1 0-.2-.1-.2-.2 0-.3-.3-.6-.7-.6-.2 0-.4.1-.6.3-.2.2-.3.4-.5.6-.1.1-.1.2 0 .3.4.3.9.7 1.3 1 .1.1.2.1.3 0 .2-.3.2-.3-.1-.5-.1 0-.1-.1-.2-.1l-.1-.1c0-.1.1-.2.2-.1.1 0 .2 0 .4.1.3.1.4 0 .6-.2.3-.3.3-.4.1-.4zm-1.5.3s-.3-.2-.3-.3c0-.1.3-.4.4-.4.1 0 .2.1.2.2s-.2.5-.3.5zM78 459c0 .1 0 .2.2.2.4-.1.9-.1 1.3-.2.2 0 .1-.2.1-.3 0-.1-.1-.2-.2-.1-.2 0-.5.1-.7.1-.1 0-.2 0-.2-.1s0-.2.1-.2c.2 0 .4-.1.6-.1.2 0 .2-.2.2-.3 0-.1-.1-.3-.2-.2-.2 0-.4.1-.6.1-.1 0-.2 0-.2-.1 0-.2.1-.2.2-.2.2 0 .4-.1.6-.1.1 0 .2-.1.2-.2s0-.3-.3-.3c-.4.1-.8.1-1.2.2-.2 0-.2.1-.2.3.1.3.2.9.3 1.5zM84.6 478.3c-.1.1-.3.1-.4.2-.1 0-.2.1-.1.2s0 .3.3.2c0 0 .1-.1.1 0v.2c-.1.1-.2.2-.3.2s-.3 0-.3-.2c-.1-.2-.2-.4-.2-.5 0-.3.2-.5.5-.4.2.1.4 0 .6 0 .1 0 .1-.1.1-.2-.2-.2-.4-.3-.6-.3-.3 0-.5.1-.7.3-.2.2-.3.5-.2.8.1.4.2.9.7 1 .4.1.7 0 1-.3.3-.3.2-.7.1-1-.4-.2-.5-.2-.6-.2zM87.6 477.4c-.2.1-.4.3-.6.4-.1.1-.1.1-.2 0s-.1-.1 0-.2c.2-.1.3-.2.5-.3.1 0 .1-.1.1-.2s-.1-.2-.2-.3c-.1-.1-.2 0-.2.1-.1.1-.3.2-.4.3-.1.1-.1 0-.2-.1s-.1-.1 0-.2c.2-.1.4-.3.5-.4.2-.1.1-.2 0-.3-.1-.1-.1-.2-.3-.1-.3.2-.6.5-1 .7-.1.1-.1.1 0 .2.3.5.7.9 1 1.4.1.1.1.1.2 0 .3-.2.7-.5 1-.7.2-.1.1-.2 0-.3 0 0 0-.1-.2 0zM75 476.6h-.2l-1.5 1.2c-.1 0-.1.1 0 .2.2.1.3.3.6.1h.1c.2.1.4.2.6.4v.1c0 .2.1.4.3.5.2 0 .1-.2.2-.3.1-.5.3-1 .4-1.6-.1-.4-.4-.5-.5-.6zm-.4 1.3c-.4-.2-.4-.2-.1-.5.1 0 .1-.1.2-.2.1.3 0 .5-.1.7zM74.3 460.1c.2.3.6.4 1 .3.4-.1.7-.6.7-.9 0-.1 0-.2-.1-.3v-.1h-.1c-.1 0-.4.3-.4.4 0 .2-.1.3-.3.4-.2.1-.3 0-.4-.1-.1-.2-.2-.3-.3-.5-.1-.1-.1-.3.1-.4.1-.1.3-.2.5-.1.1.1.5 0 .5-.2 0-.1 0-.1-.1-.2l-.2-.2c-.1 0-.2-.1-.3-.1-.7 0-1.2.5-1.1 1.1.2.4.3.6.5.9zM81.3 478.7c-.2-.4-.3-.5-.7-.4h-.1s0 .1-.1.1l-.6 1.8v.2c.1.1.5 0 .5-.2 0-.1 0-.1.1-.1h.6c.1 0 .1 0 .1.1 0 .2.2.3.3.2.3 0 .3 0 .2-.3 0-.5-.2-.9-.3-1.4zm-.5.9c-.1 0-.2 0-.1-.2s.1-.3.2-.5c.1.2.1.3.2.4 0 .3 0 .3-.3.3zM85.6 460.3c.1.1.2.2.4 0 .2-.3.4-.6.5-.9.2-.3.2-.4.6-.1.2.1.2 0 .3-.1.1-.1.1-.2 0-.3-.4-.2-.8-.5-1.2-.7-.2-.1-.2-.1-.3.1-.1.2-.1.3.1.4.1.1.2.1.3.2 0 .1-.1.1-.1.2-.2.4-.4.7-.7 1.1-.2 0 0 .1.1.1zM86 471c-.1-.5-.3-1-.4-1.5v-.1H85.3l-1.2 1.2V470.9h.2c.1 0 .1.1 0 .1-.3.4-.6.7-1 1-.3.2-.7.3-1.1.3-.4.1-.8.1-1.2.1V467h1.4c.1.1.3.1.4.1s.3-.1.4-.2c.1-.1.2-.3.2-.4 0-.2-.1-.3-.2-.4-.1-.1-.2-.2-.4-.2s-.3 0-.4.1l-.1.1H81v-.7l.1-.1c.6-.3 1-.9 1-1.6 0-1.1-1.1-1.9-2.2-1.6-.9.2-1.4 1.1-1.2 1.9.1.6.5 1.1 1.1 1.3h.1v.5h-1.3c-.1 0-.1 0-.2-.1s-.3-.1-.4-.1c-.2 0-.3.1-.4.2-.1.1-.2.3-.2.4 0 .2.1.3.2.4.1.1.2.2.4.2s.3 0 .4-.1c0 0 .1-.1.2-.1h1.3v5.4c-.5 0-1-.1-1.5-.2l-.9-.3c-.4-.3-.7-.6-1-1h.2V470.2l-1.1-1.2H75.3v.1c-.2.5-.3 1.1-.5 1.6v.2h.5c.1 0 .1.1.1.1.7 1.3 1.6 2.2 2.9 2.8.5.2.7.3 1.2.4l.7.7s.1.1.2.1.1 0 .2-.1l.7-.6h.1c.7-.1.9-.2 1.6-.5 1.1-.5 1.9-1.4 2.5-2.4 0-.1.1-.1.2-.1h.2s.1 0 .1-.1c0 0 0-.1.1-.1l-.1-.1zm-5.5-6.4c-.1 0-.2 0-.3-.1-.1 0-.2-.1-.3-.2-.1-.1-.1-.2-.2-.3 0-.1-.1-.2-.1-.3 0-.5.4-.9.9-.9s.9.4.8.9c.1.5-.4.9-.8.9z"}))),ha||(ha=s.createElement("g",{id:"XMLID_36_",className:"st5"},s.createElement("text",{transform:"translate(333.79 477.038)",className:"st6 st7"},"kube-oidc-proxy"))),ia||(ia=s.createElement("path",{className:"st31",d:"M314.1 468c-2.1 0-3.9 1.8-3.9 3.9s1.8 3.9 3.9 3.9c2.1 0 3.9-1.8 3.9-3.9 0-2.2-1.7-3.9-3.9-3.9zm0 5.9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm8.6.7V469c.7-.4 1.1-1.1 1.1-2 0-1.2-1-2.2-2.2-2.2-.6 0-1.1.2-1.6.6l-3.7-2.1v-.1c0-1.2-1-2.2-2.2-2.2s-2.2 1-2.2 2.2v.1l-3.8 2.1c-.4-.4-1-.6-1.6-.6-1.2 0-2.2 1-2.2 2.2 0 .9.5 1.6 1.2 2v5.5c-.7.4-1.2 1.1-1.2 2 0 1.2 1 2.2 2.2 2.2.6 0 1.1-.2 1.5-.6l3.8 2.2v.1c0 1.2 1 2.2 2.2 2.2 1.2 0 2.2-1 2.2-2.2v-.1l3.8-2.2c.4.4.9.6 1.5.6 1.2 0 2.2-1 2.2-2.2.1-.8-.3-1.5-1-1.9zm-3.3 1.8-4 2.3c-.4-.2-.8-.4-1.2-.4s-.9.1-1.2.4l-4-2.3c-.1-.8-.6-1.5-1.2-1.8V469c.6-.3 1.1-.9 1.2-1.6l4.1-2.3c.4.2.8.4 1.2.4s.9-.1 1.2-.4l4 2.3c.1.8.6 1.4 1.3 1.8v5.5c-.8.2-1.4.9-1.4 1.7z"})),da||(da=s.createElement("path",{className:"st19",d:"M302.5 476.5c0-1.1.4-2.2 1.2-2.9v-3.7c-.8-.8-1.2-1.8-1.2-2.9 0-1.1.4-2.1 1.2-2.9.8-.8 1.8-1.2 2.9-1.2.5 0 1 .1 1.5.3h.1l2-1.1c.2-.7.5-1.3 1.1-1.9.8-.8 1.8-1.2 2.9-1.2h.6c-2.1-2.9-5.5-4.8-9.3-4.8-6.3 0-11.4 5.1-11.4 11.4v.2c-3.5.5-6.2 3.5-6.2 7.1 0 4 3.2 7.2 7.2 7.2h9.9c-.4-.2-.8-.5-1.2-.8-.9-.7-1.3-1.7-1.3-2.8zM850.4 421.1h30v8h-30z"})),Ea||(Ea=s.createElement("path",{className:"st19",d:"m878.5 415.1 12 10-12 10z"})),oa||(oa=s.createElement("path",{className:"st31",d:"M1041.2 260.1h8v30h-8z"})),va||(va=s.createElement("path",{className:"st31",d:"m1035.2 261.9 10-12 10 12z"})),pa||(pa=s.createElement("path",{transform:"rotate(-134.999 789.78 273.586)",className:"st19",d:"M785.8 258.6h8v30h-8z"})),_a||(_a=s.createElement("path",{className:"st19",d:"m792 257.2 15.5-1.4-1.4 15.6z"})),fa||(fa=s.createElement("path",{transform:"rotate(134.999 630.953 273.583)",className:"st19",d:"M626.9 258.6h8v30h-8z"})),za||(za=s.createElement("path",{className:"st19",d:"m614.6 271.4-1.4-15.6 15.5 1.4zM540.8 421.1h30v8h-30z"})),Na||(Na=s.createElement("path",{className:"st19",d:"m542.6 415.1-12 10 12 10z"})),Ma||(Ma=s.createElement("path",{className:"st1",d:"M700.1 20.1h500v230h-500z"})),Ia||(Ia=s.createElement("path",{className:"st29",d:"M720.1 40.1h460v190h-460z"})),Da||(Da=s.createElement("text",{id:"XMLID_109_",transform:"translate(749.92 113.147)"},s.createElement("tspan",{x:0,y:0,className:"st31 st3 st4"},"\u57fa\u4e8e\u4f4e\u7801"),s.createElement("tspan",{x:0,y:28.8,className:"st31 st3 st4"},"\u5f00\u53d1\u7684\u7ec4"),s.createElement("tspan",{x:0,y:57.6,className:"st31 st3 st4"},"\u4ef6"))),ya||(ya=s.createElement("path",{className:"st1",d:"m1119.4 201.8-.4.5h-.6l-.5-.5v-.6l.5-.4h.6l.4.4zM1136.9 201.2l.4-.4h.7l.4.4v.6l-.4.5h-.7l-.4-.5zM1157.2 130.1H883.3c-1.7 0-3.1-1.4-3.1-3.1V73.2c0-1.7 1.4-3.1 3.1-3.1h273.8c1.7 0 3.1 1.4 3.1 3.1V127c.1 1.7-1.3 3.1-3 3.1z"})),xa||(xa=s.createElement("g",{id:"XMLID_98_",className:"st5"},s.createElement("text",{transform:"translate(998.112 108.131)",className:"st6 st7"},"bestchain"))),ga||(ga=s.createElement("defs",null,s.createElement("path",{id:"SVGID_32_",d:"m969.8 105 4.2 3.2c.3.2.6.3.9.3 2.1 0 4.1-.5 5.9-1.3-.4 2.7-2.7 4.9-5.6 4.9h-15.1l9.7-7.1zm-14 10h19.5c4.7 0 8.6-3.8 8.6-8.6 0-.3 0-.7-.1-1 .8-.6 1.5-1.3 2.2-2.1.2.8.3 1.7.3 2.6 0 6.2-5.1 11.3-11.3 11.3h-19.2V115zm0-5.6 19.6-14.8c1.8.1 3.5.6 5 1.4-.4 1-1.2 1.8-2 2.4-1-.4-2-.6-3.1-.6-.3 0-.6.1-.9.3l-18.6 13.5v-2.2zm0-18.6v-2.3l11.6 8.4-1.7 1.3-9.9-7.4zm13.7 4.2-9.5-6.9h15.1c2.9 0 5.2 2.1 5.6 4.9-1.8-.8-3.9-1.3-5.9-1.3-.3 0-.6.1-.9.3l-4.3 3.2c.1-.1 0-.2-.1-.2m-13.7-12H975c6.2 0 11.3 5.1 11.3 11.3 0 6.1-4.8 11-10.8 11.3l-3.1-2.3 1.9-1.4c.3.3.6.4 1 .4 4.7 0 8.6-3.8 8.6-8.6 0-4.7-3.8-8.6-8.6-8.6h-19.5V83zm-1.5-2.9c-.8 0-1.5.7-1.5 1.5v10c0 .5.2.9.6 1.2l9.8 7.4-9.8 7.4c-.4.3-.6.7-.6 1.2v10c0 .8.7 1.5 1.5 1.5h20.6c7.8 0 14.2-6.4 14.2-14.2 0-2-.4-4-1.2-5.8.8-1.8 1.2-3.7 1.2-5.8 0-7.8-6.4-14.2-14.2-14.2h-20.6z"}))),s.createElement("clipPath",{id:"SVGID_33_"},s.createElement("use",{xlinkHref:"#SVGID_32_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_34_",gradientUnits:"userSpaceOnUse",x1:-327.122,y1:872.694,x2:-326.929,y2:872.694,gradientTransform:"scale(245.608 -245.608) rotate(-52.098 -1054.645 97.589)"},s.createElement("stop",{offset:0,style:{stopColor:"#ff2c68"}}),s.createElement("stop",{offset:1,style:{stopColor:"#fdd500"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_33_)",fill:"url(#SVGID_34_)"},d:"m975.4 62.5 33.1 42.5-42 32.7-33.1-42.5z"}),ua||(ua=s.createElement("path",{className:"st1",d:"M1157.2 200.1H883.3c-1.7 0-3.1-1.4-3.1-3.1v-53.8c0-1.7 1.4-3.1 3.1-3.1h273.8c1.7 0 3.1 1.4 3.1 3.1V197c.1 1.7-1.3 3.1-3 3.1z"})),ba||(ba=s.createElement("g",{id:"XMLID_100_",className:"st5"},s.createElement("text",{transform:"translate(965.19 176.035)",className:"st6 st7"},"component store"))),Va||(Va=s.createElement("path",{className:"st19",d:"M955.2 178.3v-16.4c0-1.7-.9-3.2-2.3-4l-14.2-8.2c-1.4-.8-3.2-.8-4.6 0l-14.2 8.2c-1.4.8-2.3 2.4-2.3 4v16.4c0 1.7.9 3.2 2.3 4l14.2 8.2c1.4.8 3.2.8 4.6 0l14.2-8.2c1.4-.8 2.3-2.4 2.3-4"})),Sa||(Sa=s.createElement("defs",null,s.createElement("path",{id:"SVGID_35_",d:"m926.5 177 18.2 10 8.1-4.7c1.4-.8 2.3-2.4 2.3-4V166l-9-5.9-19.6 16.9z"}))),s.createElement("clipPath",{id:"SVGID_36_"},s.createElement("use",{xlinkHref:"#SVGID_35_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_37_",gradientUnits:"userSpaceOnUse",x1:325.964,y1:745.797,x2:326.383,y2:745.797,gradientTransform:"scale(-42.5478 42.5478) rotate(-25.046 -1517.61 1159)"},s.createElement("stop",{offset:0,style:{stopColor:"#4461eb"}}),s.createElement("stop",{offset:.597,style:{stopColor:"#222dc3"}}),s.createElement("stop",{offset:.999,style:{stopColor:"#0908a6"}}),s.createElement("stop",{offset:1,style:{stopColor:"#0908a6"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_36_)",fill:"url(#SVGID_37_)"},d:"m950.1 198-33.9-15.8 15.5-33.1 33.8 15.8z"}),La||(La=s.createElement("path",{className:"st1",d:"m936.4 160.1-4.9-2.9-4.8 3 4.7 2.8z"})),Xa||(Xa=s.createElement("defs",null,s.createElement("path",{id:"SVGID_38_",d:"m926.5 177 5.1 2.9-.2-16.9-4.8-2.7c.1-.1-.1 16.6-.1 16.7"}))),s.createElement("clipPath",{id:"SVGID_39_"},s.createElement("use",{xlinkHref:"#SVGID_38_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_40_",gradientUnits:"userSpaceOnUse",x1:334.724,y1:758.435,x2:335.143,y2:758.435,gradientTransform:"matrix(0 48.9282 48.9282 0 -36179.727 -16214.867)"},s.createElement("stop",{offset:0,style:{stopColor:"#d4e4ff"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4478ff"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_39_)",fill:"url(#SVGID_40_)"},d:"M926.5 160.2h5.1v19.7h-5.1z"}),Ga||(Ga=s.createElement("defs",null,s.createElement("path",{id:"SVGID_41_",d:"m931.4 163 .3 16.9 4.7-2.9v-16.9z"}))),s.createElement("clipPath",{id:"SVGID_42_"},s.createElement("use",{xlinkHref:"#SVGID_41_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_43_",gradientUnits:"userSpaceOnUse",x1:369.876,y1:749.145,x2:370.294,y2:749.145,gradientTransform:"matrix(11.8752 0 0 -11.8752 -3460.895 9066.252)"},s.createElement("stop",{offset:0,style:{stopColor:"#4461eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_42_)",fill:"url(#SVGID_43_)"},d:"M931.4 160.1h5v19.7h-5z"}),Ha||(Ha=s.createElement("path",{className:"st1",d:"m941.3 157.1-4.9 3 4.8 2.9 5-2.9z"})),Ca||(Ca=s.createElement("defs",null,s.createElement("path",{id:"SVGID_44_",d:"M941.2 163s-.1 5.4-.1 5.5l5-2.7v-5.6l-4.9 2.8z"}))),s.createElement("clipPath",{id:"SVGID_45_"},s.createElement("use",{xlinkHref:"#SVGID_44_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_46_",gradientUnits:"userSpaceOnUse",x1:335.312,y1:769.282,x2:335.731,y2:769.282,gradientTransform:"matrix(0 20.7205 20.7205 0 -14996.247 -6786.748)"},s.createElement("stop",{offset:0,style:{stopColor:"#4461eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_45_)",fill:"url(#SVGID_46_)"},d:"M941.1 160.1h5v8.3h-5z"}),wa||(wa=s.createElement("defs",null,s.createElement("path",{id:"SVGID_47_",d:"m936.4 165.9 4.8 2.5v-5.5l-4.8-2.8z"}))),s.createElement("clipPath",{id:"SVGID_48_"},s.createElement("use",{xlinkHref:"#SVGID_47_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_49_",gradientUnits:"userSpaceOnUse",x1:335.316,y1:769.775,x2:335.735,y2:769.775,gradientTransform:"matrix(0 20.5463 20.5463 0 -14877.232 -6728.38)"},s.createElement("stop",{offset:0,style:{stopColor:"#d4e4ff"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4478ff"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_48_)",fill:"url(#SVGID_49_)"},d:"M936.4 160.1h4.8v8.3h-4.8z"}),ka||(ka=s.createElement("path",{className:"st1",d:"m936.4 165.9-5 2.7 4.8 2.8 5-3z"})),Pa||(Pa=s.createElement("defs",null,s.createElement("path",{id:"SVGID_50_",d:"M936.2 171.4s-.1 5.4-.1 5.5l5-3.1v-5.4l-4.9 3z"}))),s.createElement("clipPath",{id:"SVGID_51_"},s.createElement("use",{xlinkHref:"#SVGID_50_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_52_",gradientUnits:"userSpaceOnUse",x1:334.75,y1:769.41,x2:335.169,y2:769.41,gradientTransform:"matrix(0 20.9381 20.9381 0 -15171.385 -6839.636)"},s.createElement("stop",{offset:0,style:{stopColor:"#4461eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_51_)",fill:"url(#SVGID_52_)"},d:"M936.1 168.4h5.1v8.4h-5.1z"}),Ua||(Ua=s.createElement("defs",null,s.createElement("path",{id:"SVGID_53_",d:"m931.4 174.3 4.7 2.5.1-5.5-4.8-2.7z"}))),s.createElement("clipPath",{id:"SVGID_54_"},s.createElement("use",{xlinkHref:"#SVGID_53_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_55_",gradientUnits:"userSpaceOnUse",x1:334.748,y1:770.115,x2:335.167,y2:770.115,gradientTransform:"matrix(0 20.5463 20.5463 0 -14889.275 -6708.31)"},s.createElement("stop",{offset:0,style:{stopColor:"#d4e4ff"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4478ff"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_54_)",fill:"url(#SVGID_55_)"},d:"M931.4 168.6h4.8v8.3h-4.8z"}),Oa||(Oa=s.createElement("path",{className:"st1",d:"m941.2 173.7-5.1 3.1 4.9 2.8 4.9-2.9z"})),Ta||(Ta=s.createElement("defs",null,s.createElement("path",{id:"SVGID_56_",d:"m936.1 182.3 4.8 2.6.1-5.3-4.9-2.8z"}))),s.createElement("clipPath",{id:"SVGID_57_"},s.createElement("use",{xlinkHref:"#SVGID_56_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_58_",gradientUnits:"userSpaceOnUse",x1:334.19,y1:770.215,x2:334.609,y2:770.215,gradientTransform:"matrix(0 20.1226 20.1226 0 -14560.173 -6547.035)"},s.createElement("stop",{offset:0,style:{stopColor:"#d4e4ff"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4478ff"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_57_)",fill:"url(#SVGID_58_)"},d:"M936.1 176.8h4.8v8.1h-4.8z"}),Ba||(Ba=s.createElement("defs",null,s.createElement("path",{id:"SVGID_59_",d:"M941 179.6v5.3l4.7-3.1.2-5.1z"}))),s.createElement("clipPath",{id:"SVGID_60_"},s.createElement("use",{xlinkHref:"#SVGID_59_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_61_",gradientUnits:"userSpaceOnUse",x1:332.872,y1:779.276,x2:333.29,y2:779.276,gradientTransform:"scale(-13.7028 13.7028) rotate(87.489 532.351 186.233)"},s.createElement("stop",{offset:0,style:{stopColor:"#4461eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_60_)",fill:"url(#SVGID_61_)"},d:"m946.2 176.7-.3 8.4-5.3-.2.4-8.4z"}),Fa||(Fa=s.createElement("text",{id:"XMLID_159_",transform:"translate(950.976 471.817)",className:"st31 st3 st4"},"\u4f4e\u7801\u7ec4\u4ef6\u5f00\u53d1 Kit")),Za||(Za=s.createElement("path",{className:"st1",d:"M1162.3 431.5H928c-1.6 0-2.9-1.3-2.9-2.9v-54.3c0-1.6 1.3-2.9 2.9-2.9h234.3c1.6 0 2.9 1.3 2.9 2.9v54.3c-.1 1.6-1.4 2.9-2.9 2.9z"})),ja||(ja=s.createElement("g",{id:"XMLID_157_",className:"st5"},s.createElement("text",{transform:"translate(1023.806 410.163)",className:"st6 st7"},"\u4e91\u68af\u4f4e\u4ee3\u7801"))),Ka||(Ka=s.createElement("g",{id:"XMLID_154_"},s.createElement("path",{id:"XMLID_156_",className:"st19",d:"M980.7 420"}),s.createElement("path",{id:"XMLID_155_",className:"st19",d:"M1003.4 394c-1-6.2-6.4-11-12.9-11s-11.9 4.8-12.9 11c-6.3 1-11.1 6.4-11.1 12.9 0 6.9 5.3 12.5 12 13l.6-4.3c-4.6-.3-8.2-4.1-8.2-8.7 0-4.8 3.9-8.7 8.7-8.7h2.2V396c0-4.8 3.9-8.7 8.7-8.7 4.8 0 8.7 3.9 8.7 8.7v2.2h2.2c4.8 0 8.7 3.9 8.7 8.7 0 4.6-3.7 8.4-8.2 8.7l.6 4.3c6.7-.6 12-6.2 12-13 0-6.5-4.8-12-11.1-12.9z"}))),Aa||(Aa=s.createElement("g",{id:"XMLID_149_"},s.createElement("path",{id:"XMLID_151_",className:"st31",d:"M995.9 420h4.4l-2.7-20.7h-3.8l.5 4.4h-7.5l.5-4.4h-3.8l-2.7 20.7h4.4l.5-4.4h10l.2 4.4zm-10-8.7.5-4.4h8.2l.5 4.4h-9.2z"}))),qa||(qa=s.createElement("g",{id:"XMLID_99_",className:"st5"},s.createElement("text",{transform:"translate(139.052 413.452)",className:"st6 st7"},"capsule"))),Wa||(Wa=s.createElement("path",{className:"st48",d:"M114.8 397.9h-9.3c-.2 0-.3-.1-.3-.3v-2.2c0-.2.1-.3.3-.3h9.3c.2 0 .3.1.3.3v2.2c0 .2-.1.3-.3.3z"})),Ra||(Ra=s.createElement("circle",{className:"st48",cx:110.1,cy:391.4,r:1.1})),Ja||(Ja=s.createElement("path",{className:"st48",d:"M116.2 400.5H104c-.2 0-.4-.2-.4-.4v-.9c0-.2.2-.4.4-.4h12.2c.2 0 .4.2.4.4v.9c0 .2-.2.4-.4.4z"})),Ya||(Ya=s.createElement("path",{className:"st49",d:"m105.1 396.8 5-.4v2.4h-5z"})),Qa||(Qa=s.createElement("path",{className:"st50",d:"m115.1 396.8-5-.4v2.4h5z"})),$a||($a=s.createElement("path",{className:"st48",d:"M110.2 392h-.4s-.1 2-1.3 3.3h1.7V392z"})),es||(es=s.createElement("path",{className:"st48",d:"M110.1 392h.4s.1 2 1.3 3.3h-1.7V392zM129.1 419.4c.6-.6 1-1.3 1-1.9 0-3.5-9-6.3-20-6.3s-20 2.8-20 6.3c0 .7.3 1.3 1 1.9 0 .2 0 .4-.1.6-.4.8 3.2 2.2 3.4 1.8.1-.2.2-.3.3-.3 1 .4 2.1.7 3.3 1 0 .2 0 .3-.1.5-.2.3.2.6 1.6.9 1.4.3 3 .4 3.1-.1 0-.1 0-.3.1-.4 1.3.2 2.7.3 4.2.4 0 .1-.1.2-.1.4-.1.4-.3.8 3.3.8 3.5 0 3.6-.3 3.5-.8 0-.1-.1-.3-.1-.4 1.5-.1 2.9-.2 4.2-.4 0 .1.1.3.1.4.1.6 1.6.4 3.1.1 1.4-.3 1.8-.5 1.6-.9-.1-.1-.2-.3-.1-.5 1.2-.3 2.3-.6 3.3-1 .1 0 .3.2.3.3.2.4 3.8-1.1 3.4-1.8-.3-.3-.3-.5-.3-.6z"})),ts||(ts=s.createElement("path",{className:"st49",d:"M110.1 419.2v-19.4l-6.5.3L92.1 415s.1.6-.2.8c0 .3 1 3.1 18.2 3.4z"})),as||(as=s.createElement("path",{className:"st50",d:"M101.8 402.5h2.3s.6 0 .4.5-5.2 10.8-5.2 10.8-.2.4-.9.2c-.7-.1-4.7-1.1-4.7-1.1l8.1-10.4zM110.1 419.2v-19.4l6.5.3 11.5 14.9s-.1.6.2.8c0 .3-1.1 3.1-18.2 3.4z"})),ss||(ss=s.createElement("path",{className:"st49",d:"M118.4 402.5h-2.3s-.6 0-.4.5 5.2 10.8 5.2 10.8.2.4.9.2 4.7-1.1 4.7-1.1l-8.1-10.4z"})),ls||(ls=s.createElement("g",{id:"XMLID_94_",className:"st5"},s.createElement("text",{transform:"translate(363.965 413.681)",className:"st6 st7"},"bff-server"))),cs||(cs=s.createElement("path",{className:"st31",d:"M352.7 393.7h-28c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h28c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zm-7 5.5c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm4 0c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5z"})),s.createElement("path",{d:"M352.7 403.7h-28c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h28c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zm-7 5.5c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm4 0c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5z",style:{opacity:.8,fill:"#4461eb"}}),ms||(ms=s.createElement("path",{className:"st19",d:"M352.8 413.7h-28c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h28c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zm-7 5.5c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm4 0c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5z"})),rs||(rs=s.createElement("circle",{className:"st52",cx:349.8,cy:407.7,r:1.5})),ns||(ns=s.createElement("circle",{className:"st52",cx:349.8,cy:417.7,r:1.5})),hs||(hs=s.createElement("circle",{className:"st52",cx:349.8,cy:397.7,r:1.5})),is||(is=s.createElement("path",{className:"st1",d:"M20.1 580.1h1180v60H20.1z"})),ds||(ds=s.createElement("g",{className:"st2"},s.createElement("text",{transform:"translate(551.807 620.264)",className:"st6 st4"},"kubernetes"))),Es||(Es=s.createElement("path",{className:"st19",d:"m517.7 614-1.7 4c-1.6-1-2.8-2.5-3.5-4.3l4.3-.7c.4-.1.8.2.9.6.1.2.1.3 0 .4zm-1.4-3.5c.4-.1.6-.5.5-.9 0-.1-.1-.3-.2-.4l-3.3-2.9c-1 1.6-1.4 3.5-1.2 5.4l4.2-1.2zm1.9-3.3c.3.2.8.2 1-.2.1-.1.1-.3.1-.4l.3-4.4c-1.9.2-3.7 1.1-5 2.4l3.6 2.6zm1.3 4.6 1.2.6 1.2-.6.3-1.3-.8-1H520l-.8 1 .3 1.3zm2.5-5.2c0 .4.4.7.8.7.1 0 .3-.1.4-.1l3.6-2.5c-1.4-1.3-3.1-2.2-5-2.4l.2 4.3zm18.1 10-9.6 12c-.5.6-1.3 1-2.1 1H513c-.8 0-1.6-.4-2.1-1l-9.6-12c-.5-.6-.7-1.4-.5-2.2l3.4-14.9c.2-.8.7-1.4 1.4-1.8l13.9-6.6c.7-.3 1.6-.3 2.3 0l13.9 6.6c.7.3 1.3 1 1.4 1.8l3.4 14.9c.3.7.1 1.5-.4 2.2zm-5.4-3.5c-.1 0-.2 0-.2-.1-.3-.1-.5 0-.8-.1-.6-.1-1.1-.1-1.5-.2-.2-.1-.3-.3-.4-.4l-.3-.1c.2-1.3.1-2.6-.2-3.9-.3-1.3-.8-2.5-1.6-3.6.1-.1.3-.2.3-.3 0-.2 0-.3.2-.5.3-.3.7-.6 1.2-.9.2-.1.5-.2.7-.4.1 0 .1-.1.2-.1.4-.3.5-.9.2-1.2-.3-.4-.8-.4-1.2-.1-.1 0-.1.1-.2.1-.2.2-.4.4-.5.6-.4.4-.8.8-1.1 1-.2.1-.4.1-.5.1l-.3.2c-1.8-1.9-4.3-3.1-6.9-3.3v-.4c-.1-.1-.2-.2-.3-.4 0-.4 0-.9.1-1.5 0-.3.1-.5.1-.8v-.2c0-.5-.4-.9-.8-.9-.5 0-.8.4-.8.9v.2c0 .3.1.5.1.8.1.6.1 1.1.1 1.5 0 .2-.1.3-.3.4v.4c-2.6.2-5.1 1.4-6.9 3.3-.1-.1-.2-.1-.3-.2-.2 0-.3.1-.5 0-.4-.3-.7-.6-1.1-1-.2-.2-.3-.4-.5-.6-.1-.1-.1-.1-.2-.1-.2-.1-.4-.2-.6-.2-.3 0-.5.1-.7.3-.3.4-.2.9.2 1.2l.2.1c.2.2.5.3.7.4.5.3.9.6 1.2.9.1.1.1.4.2.5l.3.2c-1.5 2.2-2.1 4.9-1.7 7.5l-.3.1c-.1.1-.2.3-.4.4-.4.1-.9.2-1.5.2-.3 0-.5 0-.8.1h-.2c-.5.1-.8.6-.7 1 .1.4.6.7 1.1.6h.2c.3-.1.5-.2.7-.3.6-.2 1-.4 1.5-.4.2 0 .4.1.5.2l.4-.1c.8 2.5 2.5 4.6 4.8 6l-.1.4c.1.1.1.3.1.5-.2.4-.4.9-.8 1.4-.2.2-.3.4-.4.7 0 .1-.1.2-.1.2-.2.5-.1 1 .4 1.2.4.2.9 0 1.2-.5 0-.1.1-.1.1-.2.1-.3.2-.5.2-.8.2-.6.3-1.1.6-1.5.1-.1.2-.1.4-.2l.2-.3c2.5 1 5.2 1 7.7 0l.2.3c.1 0 .3.1.4.3.2.4.4.8.6 1.4.1.3.1.5.2.8 0 .1.1.1.1.2.2.5.7.7 1.2.5.4-.2.6-.7.4-1.2 0-.1-.1-.2-.1-.2-.1-.3-.3-.4-.4-.7-.3-.5-.6-.9-.7-1.3-.1-.2 0-.4.1-.5 0 0-.1-.2-.1-.3 2.3-1.4 4-3.5 4.8-6 .1 0 .3 0 .4.1.1-.1.2-.2.5-.2.4.1.9.2 1.5.4.3.1.5.2.7.3h.2c.5.1 1-.2 1.1-.6-.7-.5-1-.9-1.5-1.1zm-6.6-6.8-3.3 2.9c-.3.3-.3.7-.1 1 .1.1.2.2.4.2l4.2 1.2c.1-.9 0-1.9-.2-2.8-.2-.8-.5-1.7-1-2.5zm-6.7 8.9c-.1-.2-.4-.4-.7-.4-.3 0-.5.2-.6.4L518 619c1.8.6 3.7.6 5.5 0l-2.1-3.8zm3.1-2.2c-.2 0-.3 0-.5.1-.4.2-.5.6-.4 1l1.7 4.1c1.6-1 2.8-2.6 3.5-4.4l-4.3-.8z"}))))};var ps,_s,fs,zs,Ns,Ms,Is,Ds,ys,xs,gs,us,bs,Vs,Ss,Ls,Xs,Gs,Hs,Cs,ws,ks,Ps,Us,Os,Ts,Bs,Fs,Zs,js,Ks,As,qs,Ws,Rs,Js,Ys,Qs,$s,el,tl,al,sl,ll,cl,ml,rl,nl,hl,il,dl,El,ol,vl,pl,_l,fl,zl,Nl,Ml,Il,Dl,yl,xl,gl,ul,bl,Vl,Sl,Ll,Xl,Gl,Hl,Cl,wl,kl,Pl,Ul,Ol,Tl,Bl,Fl,Zl,jl,Kl,Al,ql,Wl,Rl,Jl,Yl,Ql,$l,ec,tc,ac,sc,lc,cc,mc,rc,nc,hc,ic,dc,Ec,oc,vc,pc,_c,fc,zc,Nc,Mc,Ic,Dc,yc,xc,gc,uc,bc;function Vc(){return Vc=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:a,...l}=e;return s.createElement("svg",Vc({id:"\\u56FE\\u5C42_1",xmlns:"http://www.w3.org/2000/svg",x:0,y:0,viewBox:"312 -320 1220 670",style:{enableBackground:"new 312 -320 1220 670"},xmlSpace:"preserve","aria-labelledby":a},l),t?s.createElement("title",{id:a},t):null,ps||(ps=s.createElement("style",null,".st0{fill:#fff}.st1{fill:#edf0fd}.st2{fill:#4461eb}.st3{font-family:'PingFang-SC-Medium'}.st4{font-size:20px}.st5{opacity:.93}.st6{font-family:'PingFang-SC-Bold'}.st7{font-size:24px}.st8{opacity:.8}.st9{opacity:.7}")),_s||(_s=s.createElement("path",{className:"st0",d:"M312-320h1220v670H312z"})),fs||(fs=s.createElement("path",{className:"st1",d:"M332-230.3h1180v210H332zM332 .2h1180v260H332z"})),zs||(zs=s.createElement("path",{className:"st0",d:"M352.5 50.4h219v39h-219z"})),Ns||(Ns=s.createElement("path",{className:"st2",d:"M571 50.9v38H353v-38h218m1-1H352v40h220v-40z"})),Ms||(Ms=s.createElement("text",{transform:"translate(421.964 77.068)",className:"st2 st3 st4",id:"XMLID_218_"},"\u7528\u6237\u7ba1\u7406")),Is||(Is=s.createElement("path",{className:"st0",d:"M582.5 50.4h219v39h-219z"})),Ds||(Ds=s.createElement("path",{className:"st2",d:"M801 50.9v38H583v-38h218m1-1H582v40h220v-40z"})),ys||(ys=s.createElement("text",{transform:"translate(661.964 75.88)",className:"st2 st3 st4",id:"XMLID_6_"},"\u7ec4\u7ba1\u7406")),xs||(xs=s.createElement("path",{className:"st0",d:"M812.5 50.4h219v39h-219z"})),gs||(gs=s.createElement("path",{className:"st2",d:"M1031 50.9v38H813v-38h218m1-1H812v40h220v-40z"})),us||(us=s.createElement("path",{className:"st0",d:"M812.5 100.4h219v39h-219z"})),bs||(bs=s.createElement("path",{className:"st2",d:"M1031 100.9v38H813v-38h218m1-1H812v40h220v-40z"})),Vs||(Vs=s.createElement("text",{transform:"translate(881.964 75.88)",className:"st2 st3 st4",id:"XMLID_1_"},"\u670d\u52a1\u8d26\u53f7")),Ss||(Ss=s.createElement("path",{className:"st0",d:"M352.5 100.4h219v39h-219z"})),Ls||(Ls=s.createElement("path",{className:"st2",d:"M571 100.9v38H353v-38h218m1-1H352v40h220v-40z"})),Xs||(Xs=s.createElement("text",{transform:"translate(411.964 127.068)",className:"st2 st3 st4",id:"XMLID_45_"},"\u81ea\u5b9a\u4e49\u83dc\u5355")),Gs||(Gs=s.createElement("text",{transform:"translate(874.29 125.88)",className:"st2 st3 st4",id:"XMLID_65_"},"OIDC \u8ba4\u8bc1")),Hs||(Hs=s.createElement("path",{className:"st0",d:"M1042.5 50.4h219v39h-219z"})),Cs||(Cs=s.createElement("path",{className:"st2",d:"M1261 50.9v38h-218v-38h218m1-1h-220v40h220v-40z"})),ws||(ws=s.createElement("text",{transform:"translate(1111.964 75.88)",className:"st2 st3 st4",id:"XMLID_82_"},"\u8d26\u53f7\u96c6\u6210")),ks||(ks=s.createElement("path",{className:"st0",d:"M1272.5 50.4h219v39h-219z"})),Ps||(Ps=s.createElement("path",{className:"st2",d:"M1491 50.9v38h-218v-38h218m1-1h-220v40h220v-40z"})),Us||(Us=s.createElement("path",{className:"st0",d:"M452.4-179.7h199v39h-199z"})),Os||(Os=s.createElement("path",{className:"st2",d:"M650.9-179.2v38h-198v-38h198m1-1h-200v40h200v-40z"})),Ts||(Ts=s.createElement("path",{className:"st0",d:"M662.5-179.7h199v39h-199z"})),Bs||(Bs=s.createElement("path",{className:"st2",d:"M861-179.2v38H663v-38h198m1-1H662v40h200v-40z"})),Fs||(Fs=s.createElement("path",{className:"st0",d:"M872.5-179.7h199v39h-199z"})),Zs||(Zs=s.createElement("path",{className:"st2",d:"M1071-179.2v38H873v-38h198m1-1H872v40h200v-40z"})),js||(js=s.createElement("path",{className:"st0",d:"M1082.5-179.7h199v39h-199z"})),Ks||(Ks=s.createElement("path",{className:"st2",d:"M1281-179.2v38h-198v-38h198m1-1h-200v40h200v-40z"})),As||(As=s.createElement("path",{className:"st0",d:"M1292.5-179.7h199v39h-199z"})),qs||(qs=s.createElement("path",{className:"st2",d:"M1491-179.2v38h-198v-38h198m1-1h-200v40h200v-40z"})),Ws||(Ws=s.createElement("path",{className:"st0",d:"M582.5 100.4h219v39h-219z"})),Rs||(Rs=s.createElement("path",{className:"st2",d:"M801 100.9v38H583v-38h218m1-1H582v40h220v-40z"})),Js||(Js=s.createElement("path",{className:"st0",d:"M1042.5 100.4h219v39h-219z"})),Ys||(Ys=s.createElement("path",{className:"st2",d:"M1261 100.9v38h-218v-38h218m1-1h-220v40h220v-40z"})),Qs||(Qs=s.createElement("path",{className:"st0",d:"M1272.5 100.4h219v39h-219z"})),$s||($s=s.createElement("path",{className:"st2",d:"M1491 100.9v38h-218v-38h218m1-1h-220v40h220v-40z"})),el||(el=s.createElement("path",{className:"st0",d:"M812.5 150.4h219v39h-219z"})),tl||(tl=s.createElement("path",{className:"st2",d:"M1031 150.9v38H813v-38h218m1-1H812v40h220v-40z"})),al||(al=s.createElement("path",{className:"st0",d:"M582.5 150.4h219v39h-219z"})),sl||(sl=s.createElement("path",{className:"st2",d:"M801 150.9v38H583v-38h218m1-1H582v40h220v-40z"})),ll||(ll=s.createElement("path",{className:"st0",d:"M1042.5 150.4h219v39h-219z"})),cl||(cl=s.createElement("path",{className:"st2",d:"M1261 150.9v38h-218v-38h218m1-1h-220v40h220v-40z"})),ml||(ml=s.createElement("path",{className:"st0",d:"M1272.5 150.4h219v39h-219z"})),rl||(rl=s.createElement("path",{className:"st2",d:"M1491 150.9v38h-218v-38h218m1-1h-220v40h220v-40z"})),nl||(nl=s.createElement("text",{transform:"translate(1341.964 75.88)",className:"st2 st3 st4",id:"XMLID_84_"},"\u5355\u70b9\u767b\u5f55")),hl||(hl=s.createElement("path",{className:"st0",d:"M352.5 150.4h219v39h-219z"})),il||(il=s.createElement("path",{className:"st2",d:"M571 150.9v38H353v-38h218m1-1H352v40h220v-40z"})),dl||(dl=s.createElement("text",{transform:"translate(421.964 177.068)",className:"st2 st3 st4",id:"XMLID_95_"},"\u79df\u6237\u7ba1\u7406")),El||(El=s.createElement("path",{className:"st0",d:"M352.5 200.5h372v39h-372z"})),ol||(ol=s.createElement("path",{className:"st2",d:"M724 201v38H353v-38h371m1-1H352v40h373v-40z"})),vl||(vl=s.createElement("path",{className:"st0",d:"M735.5 200.5h372v39h-372z"})),pl||(pl=s.createElement("path",{className:"st2",d:"M1107 201v38H736v-38h371m1-1H735v40h373v-40z"})),_l||(_l=s.createElement("path",{className:"st0",d:"M1119.5 200.5h372v39h-372z"})),fl||(fl=s.createElement("path",{className:"st2",d:"M1491 201v38h-371v-38h371m1-1h-373v40h373v-40z"})),zl||(zl=s.createElement("text",{transform:"translate(488.464 227.089)",className:"st2 st3 st4",id:"XMLID_105_"},"\u591a\u96c6\u7fa4\u7eb3\u7ba1")),Nl||(Nl=s.createElement("text",{transform:"translate(860.184 225.9)",className:"st2 st3 st4",id:"XMLID_103_"},"K8s \u8d44\u6e90\u7ba1\u7406")),Ml||(Ml=s.createElement("text",{transform:"translate(1265.464 225.9)",className:"st2 st3 st4",id:"XMLID_101_"},"\u8282\u70b9\u7ba1\u7406")),Il||(Il=s.createElement("text",{transform:"translate(1111.964 175.88)",className:"st2 st3 st4",id:"XMLID_99_"},"\u89d2\u8272\u6a21\u677f")),Dl||(Dl=s.createElement("text",{transform:"translate(1341.964 175.88)",className:"st2 st3 st4",id:"XMLID_88_"},"\u64cd\u4f5c\u5ba1\u8ba1")),yl||(yl=s.createElement("g",{id:"XMLID_293_",className:"st5"},s.createElement("text",{transform:"translate(511.9 -154.297)",className:"st2 st3 st4"},"\u5f00\u653e\u5171\u4eab"))),xl||(xl=s.createElement("g",{id:"XMLID_3_",className:"st5"},s.createElement("text",{transform:"translate(721.964 -154.296)",className:"st2 st3 st4"},"\u8ba2\u9605\u7ec4\u4ef6"))),gl||(gl=s.createElement("g",{id:"XMLID_14_",className:"st5"},s.createElement("text",{transform:"translate(931.964 -154.296)",className:"st2 st3 st4"},"\u66f4\u65b0\u63a8\u9001"))),ul||(ul=s.createElement("g",{id:"XMLID_16_",className:"st5"},s.createElement("text",{transform:"translate(1149.694 -154.296)",className:"st2 st3 st4"},"AI \u8bc4\u6d4b"))),bl||(bl=s.createElement("g",{id:"XMLID_18_",className:"st5"},s.createElement("text",{transform:"translate(1331.254 -154.296)",className:"st2 st3 st4"},"RBAC \u53ef\u89c6\u5316"))),Vl||(Vl=s.createElement("g",{id:"XMLID_2_",className:"st5"},s.createElement("text",{transform:"translate(351.964 -154.296)",className:"st2 st3 st4"},"\u7ec4\u4ef6\u5e02\u573a"))),Sl||(Sl=s.createElement("path",{className:"st0",d:"M452.4-129.8h199v39h-199z"})),Ll||(Ll=s.createElement("path",{className:"st2",d:"M650.9-129.3v38h-198v-38h198m1-1h-200v40h200v-40z"})),Xl||(Xl=s.createElement("path",{className:"st0",d:"M662.5-129.8h199v39h-199z"})),Gl||(Gl=s.createElement("path",{className:"st2",d:"M861-129.3v38H663v-38h198m1-1H662v40h200v-40z"})),Hl||(Hl=s.createElement("path",{className:"st0",d:"M872.5-129.8h199v39h-199z"})),Cl||(Cl=s.createElement("path",{className:"st2",d:"M1071-129.3v38H873v-38h198m1-1H872v40h200v-40z"})),wl||(wl=s.createElement("path",{className:"st0",d:"M1082.5-129.8h199v39h-199z"})),kl||(kl=s.createElement("path",{className:"st2",d:"M1281-129.3v38h-198v-38h198m1-1h-200v40h200v-40z"})),Pl||(Pl=s.createElement("path",{className:"st0",d:"M1292.5-129.8h199v39h-199z"})),Ul||(Ul=s.createElement("path",{className:"st2",d:"M1491-129.3v38h-198v-38h198m1-1h-200v40h200v-40z"})),Ol||(Ol=s.createElement("g",{id:"XMLID_79_",className:"st5"},s.createElement("text",{transform:"translate(511.9 -104.38)",className:"st2 st3 st4"},"\u53d1\u5e03\u7ec4\u4ef6"))),Tl||(Tl=s.createElement("g",{id:"XMLID_77_",className:"st5"},s.createElement("text",{transform:"translate(721.964 -104.38)",className:"st2 st3 st4"},"\u5b89\u88c5\u7ec4\u4ef6"))),Bl||(Bl=s.createElement("g",{id:"XMLID_75_",className:"st5"},s.createElement("text",{transform:"translate(931.964 -104.38)",className:"st2 st3 st4"},"\u7248\u672c\u7ba1\u7406"))),Fl||(Fl=s.createElement("g",{id:"XMLID_73_",className:"st5"},s.createElement("text",{transform:"translate(1141.964 -104.38)",className:"st2 st3 st4"},"\u4e00\u952e\u56de\u6eda"))),Zl||(Zl=s.createElement("g",{id:"XMLID_71_",className:"st5"},s.createElement("text",{transform:"translate(1341.964 -104.38)",className:"st2 st3 st4"},"\u4f4e\u4ee3\u7801\u5e73\u53f0"))),jl||(jl=s.createElement("g",{id:"XMLID_9_",className:"st5"},s.createElement("text",{transform:"translate(351.964 -104.38)",className:"st2 st3 st4"},"\u7ec4\u4ef6\u7ba1\u7406"))),Kl||(Kl=s.createElement("path",{className:"st0",d:"M452.4-79.8h199v39h-199z"})),Al||(Al=s.createElement("path",{className:"st2",d:"M650.9-79.3v38h-198v-38h198m1-1h-200v40h200v-40z"})),ql||(ql=s.createElement("path",{className:"st0",d:"M662.5-79.8h199v39h-199z"})),Wl||(Wl=s.createElement("path",{className:"st2",d:"M861-79.3v38H663v-38h198m1-1H662v40h200v-40z"})),Rl||(Rl=s.createElement("path",{className:"st0",d:"M872.5-79.8h199v39h-199z"})),Jl||(Jl=s.createElement("path",{className:"st2",d:"M1071-79.3v38H873v-38h198m1-1H872v40h200v-40z"})),Yl||(Yl=s.createElement("path",{className:"st0",d:"M1082.5-79.8h199v39h-199z"})),Ql||(Ql=s.createElement("path",{className:"st2",d:"M1281-79.3v38h-198v-38h198m1-1h-200v40h200v-40z"})),$l||($l=s.createElement("path",{className:"st0",d:"M1292.5-79.8h199v39h-199z"})),ec||(ec=s.createElement("path",{className:"st2",d:"M1491-79.3v38h-198v-38h198m1-1h-200v40h200v-40z"})),tc||(tc=s.createElement("g",{id:"XMLID_195_",className:"st5"},s.createElement("text",{transform:"translate(511.9 -54.38)",className:"st2 st3 st4"},"\u5b98\u65b9\u4ed3\u5e93"))),ac||(ac=s.createElement("g",{id:"XMLID_193_",className:"st5"},s.createElement("text",{transform:"translate(711.964 -54.38)",className:"st2 st3 st4"},"\u81ea\u5b9a\u4e49\u4ed3\u5e93"))),sc||(sc=s.createElement("g",{id:"XMLID_191_",className:"st5"},s.createElement("text",{transform:"translate(931.964 -54.38)",className:"st2 st3 st4"},"\u5b89\u5168\u8ba4\u8bc1"))),lc||(lc=s.createElement("g",{id:"XMLID_189_",className:"st5"},s.createElement("text",{transform:"translate(1141.964 -54.38)",className:"st2 st3 st4"},"\u4ed3\u5e93\u540c\u6b65"))),cc||(cc=s.createElement("g",{id:"XMLID_187_",className:"st5"},s.createElement("text",{transform:"translate(1351.964 -54.38)",className:"st2 st3 st4"},"\u7ec4\u4ef6\u8fc7\u6ee4"))),mc||(mc=s.createElement("g",{id:"XMLID_69_",className:"st5"},s.createElement("text",{transform:"translate(351.964 -54.38)",className:"st2 st3 st4"},"\u4ed3\u5e93\u7ba1\u7406"))),rc||(rc=s.createElement("g",{id:"XMLID_5_",className:"st5"},s.createElement("text",{transform:"translate(873.964 -197.442)",className:"st2 st6 st7"},"\u7ec4\u4ef6\u5e02\u573a"))),nc||(nc=s.createElement("g",{id:"XMLID_7_",className:"st5"},s.createElement("text",{transform:"translate(861.964 33.2)",className:"st2 st6 st7"},"\u7ba1\u7406\u5de5\u4f5c\u53f0"))),hc||(hc=s.createElement("g",{className:"st8"},s.createElement("path",{className:"st2",d:"M332-300.3h380v50H332z"}))),ic||(ic=s.createElement("g",{className:"st8"},s.createElement("path",{className:"st2",d:"M732-300.3h380v50H732z"}))),dc||(dc=s.createElement("g",{className:"st8"},s.createElement("path",{className:"st2",d:"M1132-300.3h380v50h-380z"}))),Ec||(Ec=s.createElement("text",{transform:"translate(485.964 -268.474)",className:"st0 st6 st7"},"\u5f00\u53d1\u8005")),oc||(oc=s.createElement("g",{className:"st9"},s.createElement("path",{className:"st2",d:"M332 280.3h280v50H332z"}))),vc||(vc=s.createElement("g",{className:"st9"},s.createElement("path",{className:"st2",d:"M632 280.3h280v50H632z"}))),pc||(pc=s.createElement("g",{className:"st9"},s.createElement("path",{className:"st2",d:"M932 280.3h280v50H932z"}))),_c||(_c=s.createElement("g",{className:"st9"},s.createElement("path",{className:"st2",d:"M1232 280.3h280v50h-280z"}))),fc||(fc=s.createElement("text",{transform:"translate(422.032 312.15)",className:"st0 st6 st7"},"\u539f\u751f K8s")),zc||(zc=s.createElement("text",{transform:"translate(682.036 312.15)",className:"st0 st6 st7"},"\u516c\u6709\u4e91 K8s \u670d\u52a1")),Nc||(Nc=s.createElement("text",{transform:"translate(1282.036 312.15)",className:"st0 st6 st7"},"\u5176\u4ed6 K8s \u53d1\u884c\u7248")),Mc||(Mc=s.createElement("text",{transform:"translate(849.964 -268.474)",className:"st0 st6 st7"},"\u751f\u6001\u5408\u4f5c\u4f19\u4f34")),Ic||(Ic=s.createElement("text",{transform:"translate(1273.964 -268.474)",className:"st0 st6 st7"},"\u4f01\u4e1a\u7528\u6237")),Dc||(Dc=s.createElement("text",{transform:"translate(659 125.88)",className:"st2 st3 st4",id:"XMLID_49_"},"\u81ea\u5b9a\u4e49\u95e8\u6237")),yc||(yc=s.createElement("text",{transform:"translate(651.964 175.88)",className:"st2 st3 st4",id:"XMLID_93_"},"\u9879\u76ee\u7ba1\u7406")),xc||(xc=s.createElement("text",{transform:"translate(871.254 175.88)",className:"st2 st3 st4",id:"XMLID_91_"},"RBAC \u6743\u9650")),gc||(gc=s.createElement("text",{transform:"translate(1111.964 125.88)",className:"st2 st3 st4",id:"XMLID_89_"},"\u89d2\u8272\u7ba1\u7406")),uc||(uc=s.createElement("text",{transform:"translate(1329.145 125.88)",className:"st2 st3 st4",id:"XMLID_86_"},"Kubeconfig")),bc||(bc=s.createElement("text",{transform:"translate(1016.633 312.15)",className:"st0 st6 st7"},"Openshift")))};var Lc,Xc,Gc,Hc,Cc,wc,kc,Pc,Uc,Oc,Tc,Bc,Fc,Zc,jc,Kc,Ac;function qc(){return qc=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:a,...l}=e;return s.createElement("svg",qc({id:"\\u56FE\\u5C42_1",xmlns:"http://www.w3.org/2000/svg",x:0,y:0,viewBox:"0 0 1220 240",style:{enableBackground:"new 0 0 1220 240"},xmlSpace:"preserve","aria-labelledby":a},l),t?s.createElement("title",{id:a},t):null,Lc||(Lc=s.createElement("style",null,".st1{fill:#4461eb}.st2{fill:#fff}.st3{opacity:.9}.st4{font-family:'PingFang-SC-Medium'}.st5{font-size:20px}.st6{opacity:.7}.st7{font-family:'PingFang-SC-Regular'}.st8{font-size:16px}")),s.createElement("path",{style:{fill:"#f5f7fc"},d:"M0 0h1220v240H0z"}),Xc||(Xc=s.createElement("path",{id:"XMLID_84_",className:"st1",d:"M752 118.8h100v1H752z"})),Gc||(Gc=s.createElement("path",{id:"XMLID_83_",className:"st1",d:"m852 114.8 6 4.5-6 4.5z"})),Hc||(Hc=s.createElement("path",{id:"XMLID_64_",className:"st1",d:"M362 118.8h100v1H362z"})),Cc||(Cc=s.createElement("path",{id:"XMLID_23_",className:"st1",d:"m462 114.8 6 4.5-6 4.5z"})),wc||(wc=s.createElement("path",{className:"st2",d:"M80 39.3h280v160H80z"})),kc||(kc=s.createElement("g",{id:"XMLID_293_",className:"st3"},s.createElement("text",{transform:"translate(157.81 141.928)",className:"st4 st5"},"\u4e0b\u8f7d CLI \u5de5\u5177"))),Pc||(Pc=s.createElement("g",{id:"XMLID_59_",className:"st6"},s.createElement("text",{transform:"translate(120.217 169.428)",className:"st7 st8"},"https://github.com/kubebb"))),Uc||(Uc=s.createElement("path",{className:"st1",d:"M238.7 77.5h-12.5V65h-12.5v12.5h-12.5L220 95l18.7-17.5zM201.2 100v5h37.5v-5h-37.5z"})),Oc||(Oc=s.createElement("path",{className:"st2",d:"M470 39.3h280v160H470z"})),Tc||(Tc=s.createElement("g",{id:"XMLID_2_",className:"st3"},s.createElement("text",{transform:"translate(551.04 141.928)",className:"st4 st5"},"\u542f\u52a8 Kubebb"))),Bc||(Bc=s.createElement("g",{id:"XMLID_20_",className:"st6"},s.createElement("text",{transform:"translate(523.337 169.428)",className:"st7 st8"},"\u4e00\u952e\u90e8\u7f72\u3001\u542f\u52a8 Kubebb"))),Fc||(Fc=s.createElement("path",{className:"st1",d:"M610 65c-11.1 0-20 9-20 20s9 20 20 20c11.1 0 20-9 20-20 0-11.1-8.9-20-20-20zm9.8 21.1L606.3 94c-.9.5-2.1-.1-2.1-1.2V77.2c0-1.1 1.1-1.7 2.1-1.2l13.5 7.8c.9.5.9 1.8 0 2.3z"})),Zc||(Zc=s.createElement("path",{className:"st2",d:"M860 39.3h280v160H860z"})),jc||(jc=s.createElement("g",{id:"XMLID_74_",className:"st3"},s.createElement("text",{transform:"translate(930 141.928)",className:"st4 st5"},"\u5b89\u88c5\u3001\u4f53\u9a8c\u7ec4\u4ef6"))),Kc||(Kc=s.createElement("g",{id:"XMLID_29_",className:"st6"},s.createElement("text",{transform:"translate(872 169.428)",className:"st7 st8"},"\u8fdb\u5165\u7ec4\u4ef6\u5e02\u573a\uff0c\u5b89\u88c5\u5e76\u4f53\u9a8c\u5185\u7f6e\u7ec4\u4ef6"))),Ac||(Ac=s.createElement("path",{className:"st1",d:"M1000.8 89.8c-3.2 1.5-7.1 1-9.8-1.6-2.4-2.4-3-5.7-2.1-8.6.5-.1.7-.1 1.2-.3l2.7 2.9h2.5l1.8-1.8v-2.5l-2.9-2.7c.1-.5.1-.7.3-1.2 3-1 6.3-.3 8.7 2.1 2.6 2.6 3.2 6.6 1.7 9.8L1016 97c2.5-3.3 4-7.5 4-12 0-11-9-20-20-20s-20 9-20 20 9 20 20 20c4.5 0 8.6-1.5 12-4l-11.2-11.2z"})))},Rc=[{tab:"\u5e94\u7528\u573a\u666f",title:"\u5feb\u901f\u642d\u5efa\u60a8\u7684\u4e91\u539f\u751f\u5e73\u53f0",svg:s.createElement(rt,null),description:s.createElement(s.Fragment,null,"Kubebb \u63d0\u4f9b\u4e86\u591a\u96c6\u7fa4\u591a\u79df\u6237\u7ba1\u7406\u3001\u83dc\u5355\u7ba1\u7406\u3001\u89d2\u8272\u548c\u6210\u5458\u7ba1\u7406\u3001OIDC \u8ba4\u8bc1\u7b49\u5b8c\u5584\u7684\u5e73\u53f0\u57fa\u7840\u80fd\u529b\u3002\u5185\u7f6e\u5b98\u65b9\u7ec4\u4ef6\uff0c\u901a\u8fc7\u4e91\u68af\u4f4e\u4ee3\u7801\u7ec4\u4ef6\u53ef\u5feb\u901f\u53d1\u5e03\u60a8\u7684\u5e94\u7528\uff1b\u901a\u8fc7\u5fae\u670d\u52a1\u6846\u67b6\u6216\u670d\u52a1\u7f51\u683c\u7edf\u4e00\u7ba1\u7406\u548c\u6cbb\u7406\u60a8\u7684\u5e94\u7528\uff1b\u901a\u8fc7\u5e94\u7528\u6027\u80fd\u76d1\u63a7\u7edf\u4e00\u89c2\u6d4b\u670d\u52a1\u8c03\u7528\uff0c\u8bbe\u7f6e\u94fe\u8def\u544a\u8b66\u3002\u540c\u65f6\u60a8\u53ef\u53d1\u5e03\u81ea\u5b9a\u4e49\u7ec4\u4ef6\uff0c\u4f8b\u5982\u5bb9\u5668\u670d\u52a1\u7ec4\u4ef6\uff0c\u5f62\u6210\u5e94\u7528\u7684\u5168\u751f\u547d\u5468\u671f\u7684\u7ba1\u7406\u548c\u6cbb\u7406\u3002")},{tab:"\u9762\u5411\u4e91\u539f\u751f\u7684\u67b6\u6784",title:"\u9762\u5411\u4e91\u539f\u751f\u7684\u67b6\u6784",svg:s.createElement(vs,null),description:s.createElement(s.Fragment,null,"Kubebb(Kubernetes Building Blocks)\u662f\u4e00\u79cd\u7531\u5185\u6838\u9a71\u52a8\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u5e73\u53f0\uff0c\u96c6\u6210\u5f00\u7bb1\u5373\u7528\u7684\u4e91\u539f\u751f\u5e95\u5ea7\u548c\u4f4e\u7801\u7ec4\u4ef6\u5f00\u53d1\u80fd\u529b\uff0c\u6574\u5408\u5b9e\u73b0\u4e91\u539f\u751f\u4e09\u5c42\u7ec4\u4ef6\u6a21\u5f0f\u3002")},{tab:"\u529f\u80fd\u67b6\u6784",title:"Kubebb \u529f\u80fd\u67b6\u6784",svg:s.createElement(Sc,null),description:s.createElement(s.Fragment,null,"kubebb\u90e8\u7f72\u540e\u63d0\u4f9b\u4e86\u591a\u96c6\u7fa4\u591a\u79df\u6237\u7ba1\u7406\u3001\u83dc\u5355\u7ba1\u7406\u3001\u89d2\u8272\u548c\u6210\u5458\u7ba1\u7406\u3001OIDC\u8ba4\u8bc1\u7b49\u5b8c\u5584\u7684\u5e73\u53f0\u57fa\u7840\u80fd\u529b\u3002\u540c\u65f6\u8fd8\u63d0\u4f9b\u7ec4\u4ef6\u5e02\u573a\u6a21\u5757\uff0c\u5305\u62ec\u5b98\u65b9\u4ed3\u5e93\u548c\u7528\u6237\u81ea\u5b9a\u4e49\u4ed3\u5e93\uff0c\u53d1\u5e03\u5f00\u6e90\u7ec4\u4ef6\u548c\u81ea\u5b9a\u4e49\u7ec4\u4ef6\uff0c\u5b9e\u73b0\u7ec4\u4ef6\u5171\u4eab\u3002")},{tab:"\u4f7f\u7528\u6d41\u7a0b",title:"Kubebb \u4f7f\u7528\u6d41\u7a0b",svg:s.createElement(Wc,null),description:s.createElement(s.Fragment,null,"Kubebb\u5feb\u901f\u5b89\u88c5\u4f7f\u7528\u6d41\u7a0b")}];function Jc(){const[e,t]=s.useState(0),a=Rc.find(((t,a)=>a===e));return s.createElement("section",{className:(0,l.Z)(o.frames)},s.createElement("div",{className:(0,l.Z)("container",o.title)},"Kubebb \u7ec4\u4ef6\u5168\u751f\u547d\u5468\u671f\u7ba1\u7406\u5e73\u53f0"),s.createElement("div",{className:"container"},s.createElement("div",{className:"row"},s.createElement("div",{className:(0,l.Z)("col col--4",o.tabs)},Rc.map(((a,c)=>s.createElement("div",{onClick:()=>{t(c)},className:(0,l.Z)(o.tab,c===e?o.active:void 0),key:c},a.tab))),s.createElement("div",{className:o.tabBg})),s.createElement("div",{className:(0,l.Z)("col col--8",o.content)},s.createElement("div",{className:o.contentTitle},a.title),s.createElement("div",{className:o.contentDesc},a.description),s.createElement("div",{className:o.contentSvg},a.svg)))))}const Yc={footerBanner:"footerBanner_xUpp",title:"title_lYU7"};function Qc(){return s.createElement("section",{className:Yc.footerBanner},s.createElement("div",{className:"container"},s.createElement("div",{className:Yc.title},"\u5728 Kubernetes \u4e0a\u4ee5\u642d\u79ef\u6728\u7684\u65b9\u5f0f\u6784\u5efa\u81ea\u5df1\u7684\u670d\u52a1\u95e8\u6237")))}const $c={heroBanner:"heroBanner_qdFl",circle1:"circle1_uIWk",circle2:"circle2_nWlH",buttons:"buttons_AeoN","banner-button":"banner-button_TZem",title:"title_GqtP",subtitle:"subtitle_RlPM",videoWrapper:"videoWrapper_XWWU",clickcards:"clickcards_JTg8",cardItem:"cardItem_rcou",cardjoin:"cardjoin_U3Ur",cardtitle:"cardtitle_fuGn",carddesc:"carddesc_HpeO"};function em(){const{siteConfig:e}=(0,m.Z)();return s.createElement("header",null,s.createElement("div",{className:(0,l.Z)($c.heroBanner)},s.createElement("div",{className:"container"},s.createElement("div",{className:"row"},s.createElement("div",{className:(0,l.Z)("col col--8")},s.createElement("div",{className:$c.title},e.title),s.createElement("div",{className:$c.subtitle},e.tagline),s.createElement("div",{className:$c.buttons},s.createElement(c.Z,{className:$c["banner-button"],to:"/docs/quick-start/prerequisite"},"\u6559\u7a0b-5min \u2192"))),s.createElement("div",{className:(0,l.Z)("col col--4")},s.createElement("div",{className:$c.videoWrapper,onClick:()=>{window.open("https://cdn.tenxcloud.com/kubebb/kubebb_intro.mp4")}}))),s.createElement("div",{className:$c.circle1}),s.createElement("div",{className:$c.circle2}))),s.createElement("div",{className:(0,l.Z)("container",$c.clickcards)},s.createElement("div",{className:"row"},s.createElement(c.Z,{to:"/docs/intro",className:(0,l.Z)("col col--4",$c.cardItem)},s.createElement("div",{className:$c.cardtitle},"\u6838\u5fc3\u6280\u672f"),s.createElement("div",{className:$c.carddesc},"\u7531\u5185\u6838\u9a71\u52a8\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\uff0c\u96c6\u6210\u4e91\u539f\u751f\u5e95\u5ea7\u548c\u4f4e\u7801\u7ec4\u4ef6\uff0c\u6574\u5408\u5b9e\u73b0\u4e91\u539f\u751f\u4e09\u5c42\u7ec4\u4ef6\u6a21\u5f0f"),s.createElement("div",{className:(0,l.Z)($c.carddesc,$c.cardjoin)},"\u4e86\u89e3\u66f4\u591a \u2192")),s.createElement(c.Z,{to:"/docs/quick-start/prerequisite",className:(0,l.Z)("col col--4",$c.cardItem)},s.createElement("div",{className:$c.cardtitle},"\u4f7f\u7528\u6559\u7a0b"),s.createElement("div",{className:$c.carddesc},"\u901a\u8fc7\u672c\u6559\u7a0b\uff0c\u53ef\u4ee5\u5feb\u901f\u642d\u5efa\u4e00\u4e2a\u57fa\u4e8e Kubebb \u7684\u95e8\u6237\u5e95\u5ea7\uff0c\u5e76\u5f00\u53d1\u4e00\u4e2a\u81ea\u5df1\u7684 Hello world \u7ec4\u4ef6\uff0c\u90e8\u7f72\u5230\u95e8\u6237\u4e0a\u8fdb\u884c\u4f53\u9a8c"),s.createElement("div",{className:(0,l.Z)($c.carddesc,$c.cardjoin)},"\u4e86\u89e3\u66f4\u591a \u2192")),s.createElement(c.Z,{href:"https://github.com/kubebb/core/issues",target:"_blank",className:(0,l.Z)("col col--4",$c.cardItem)},s.createElement("div",{className:$c.cardtitle},"\u5f00\u6e90\u793e\u533a"),s.createElement("div",{className:$c.carddesc},"\u52a0\u5165\u793e\u533a\u83b7\u5f97\u5e2e\u52a9\uff0c\u53c2\u4e0e\u4e92\u52a8\u5e76\u83b7\u53d6 Kubebb \u7684\u6700\u65b0\u6d88\u606f\uff01"),s.createElement("div",{className:(0,l.Z)($c.carddesc,$c.cardjoin)},"\u52a0\u5165\u6211\u4eec \u2192")))))}function tm(){const{siteConfig:e}=(0,m.Z)();return s.createElement(r.Z,{title:`Homepage of ${e.title}`,description:"Description will go into a meta tag in "},s.createElement(em,null),s.createElement("main",null,s.createElement(E,null),s.createElement(Jc,null),s.createElement(Qc,null)))}}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4195],{8506:(e,t,a)=>{a.r(t),a.d(t,{default:()=>tm});var s=a(7294),l=a(6010),c=a(9960),m=a(2263),r=a(7961),n=a(7462);const h={features:"features_t9lD",bg:"bg_sexP",bg1:"bg1_JcTR",bg2:"bg2_NiFc",vgJgjBFw:"vgJgjBFw_Dj_n",bg3:"bg3_kGex",title:"title_iMVk",desc:"desc_yhLo"},i=[{title:"\u63d0\u4f9b\u5e95\u5ea7\u670d\u52a1\uff0c\u5feb\u901f\u5f00\u542f\u642d\u5efa",description:s.createElement(s.Fragment,null,"\u63d0\u4f9b\u8d26\u53f7\u3001\u8ba4\u8bc1(OIDC)\u3001\u6743\u9650(RBAC)\u3001\u5ba1\u8ba1(Audit)\u7684\u57fa\u7840\u529f\u80fd\uff0c\u91c7\u7528\u66f4\u52a0\u6807\u51c6\u7684\u6280\u672f\u65b9\u5f0f\u63d0\u4f9b\u6784\u5efa\u7684\u5e95\u5ea7\u670d\u52a1")},{title:"\u5185\u6838\u9a71\u52a8\u7684\u58f0\u660e\u5f0f\u7ec4\u4ef6\u7ba1\u7406",description:s.createElement(s.Fragment,null,"\u63d0\u4f9b\u58f0\u660e\u5f0f\u7684\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406\u3001\u7ec4\u4ef6\u540c\u6b65\u3001\u7ec4\u4ef6\u8ba2\u9605\u90e8\u7f72\u4ee5\u53ca\u591a\u7ef4\u5ea6\u7684\u7ec4\u4ef6\u8bc4\u7ea7,\u5b8c\u6574\u9002\u914dHelm\u751f\u6001,\u96c6\u6210\u5fae\u524d\u7aef\u6846\u67b6")},{title:"\u7075\u6d3b\u7684\u7ec4\u4ef6\u5f00\u53d1\u6a21\u5f0f",description:s.createElement(s.Fragment,null,"\u57fa\u4e8e\u5fae\u524d\u7aef\u6846\u67b6\u548c\u4f4e\u4ee3\u7801\u5f00\u53d1\uff0c\u5b9a\u4e49\u4e86\u6807\u51c6\u7684\u7ec4\u4ef6\u5c01\u88c5\u53ca\u53d1\u5e03\u6a21\u5f0f\uff0c\u8ba9\u5f00\u53d1\u8005\u53ef\u4ee5\u5728\u5e95\u5ea7\u4e4b\u4e0a\u6309\u7167\u5f00\u53d1\u89c4\u8303\u8fdb\u884c\u7ec4\u4ef6\u7684\u5feb\u901f\u5f00\u53d1\u548c\u53d1\u5e03\uff0c\u5e76\u5728\u7edf\u4e00\u7684\u670d\u52a1\u95e8\u6237\u4e0a\u5bf9\u5916\u63d0\u4f9b\u670d\u52a1")}];function d(e){let{idx:t,title:a,description:c}=e;return s.createElement("div",{className:(0,l.Z)("col col--4")},s.createElement("div",{className:"text--center"},s.createElement("div",{className:(0,l.Z)(h.bg,h["bg"+t])})),s.createElement("div",{className:"text--center padding-horiz--md"},s.createElement("div",{className:h.title},a),s.createElement("div",{className:h.desc},c)))}function E(){return s.createElement("section",{className:(0,l.Z)(h.features)},s.createElement("div",{className:"container"},s.createElement("div",{className:"row"},i.map(((e,t)=>s.createElement(d,(0,n.Z)({key:t,idx:t+1},e)))))))}const o={frames:"frames_jZGb",title:"title_xEGb",tabs:"tabs_cBYP",content:"content_fmdQ",tabBg:"tabBg_bq5e",contentTitle:"contentTitle_HnzL",contentDesc:"contentDesc_MErp",tab:"tab_FEFo",active:"active_PTVm",desc:"desc_AWx6"};var v,p,_,f,z,N,M,I,D,y,x,g,u,b,V,S,L,X,G,H,C,w,k,P,U,O,T,B,F,Z,j,K,A,q,W,R,J,Y,Q,$,ee,te,ae,se,le,ce,me,re,ne,he,ie,de,Ee,oe,ve,pe,_e,fe,ze,Ne,Me,Ie,De,ye,xe,ge,ue,be,Ve,Se,Le,Xe,Ge,He,Ce,we,ke,Pe,Ue,Oe,Te,Be,Fe,Ze,je,Ke,Ae,qe,We,Re,Je,Ye,Qe,$e,et,tt,at,st,lt,ct;function mt(){return mt=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:a,...l}=e;return s.createElement("svg",mt({id:"\\u56FE\\u5C42_1",xmlns:"http://www.w3.org/2000/svg",x:0,y:0,viewBox:"0 0 1220 650",style:{enableBackground:"new 0 0 1220 650"},xmlSpace:"preserve","aria-labelledby":a},l),t?s.createElement("title",{id:a},t):null,v||(v=s.createElement("style",null,".st0{fill:#f5f7fc}.st1{fill:#fff}.st2{opacity:.8}.st3{font-family:'PingFang-SC-Medium'}.st4{font-size:24px}.st5{opacity:.1;fill:#faad14}.st6{font-size:20px}.st12{font-family:'PingFang-SC-Bold'}.st13{opacity:.7}.st14{font-family:'PingFang-SC-Regular'}.st15{font-size:16px}.st24{fill:#231f20}.st25{fill:#67cfe3}.st26{fill:#dfcaa3}.st28{fill-opacity:.75}.st28,.st29{fill:#ff7c00}.st32{fill:#4461eb}.st33{fill:#29dd90}.st40{opacity:.8}.st40,.st42{fill:#4461eb}.st42,.st44{opacity:.6}.st46{opacity:.8;fill:#29dd90}")),p||(p=s.createElement("path",{className:"st0",d:"M0 0h1220v650H0z"})),_||(_=s.createElement("path",{className:"st1",d:"M19.2 570.1h1180v60H19.2zM1139.2 20h60v530h-60zM19.2 500.1h354v50h-354zM392.2 500.1h354v50h-354zM765.2 500.1h354v50h-354z"})),f||(f=s.createElement("g",{className:"st2"},s.createElement("text",{transform:"translate(100.188 532.235)",className:"st3 st4"},"\u591a\u96c6\u7fa4\u591a\u79df\u6237\u7ba1\u7406"))),z||(z=s.createElement("g",{className:"st2"},s.createElement("text",{transform:"translate(521.188 532.236)",className:"st3 st4"},"\u83dc\u5355\u7ba1\u7406"))),N||(N=s.createElement("g",{className:"st2"},s.createElement("text",{transform:"translate(858.188 532.236)",className:"st3 st4"},"\u89d2\u8272\u548c\u6210\u5458\u7ba1\u7406"))),M||(M=s.createElement("path",{className:"st1",d:"M19.2 20h1100v270H19.2z"})),I||(I=s.createElement("path",{className:"st5",d:"M237.5 120h513.6v70H237.5zM237.5 40h513.6v70H237.5z"})),D||(D=s.createElement("g",{id:"XMLID_16_",className:"st2"},s.createElement("text",{transform:"translate(257.54 162.128)",className:"st3 st6"},"\u5b58\u50a8"))),y||(y=s.createElement("path",{className:"st1",d:"M518.2 180H323c-1.3 0-2.4-1.1-2.4-2.4v-45.2c0-1.3 1.1-2.4 2.4-2.4h195.2c1.3 0 2.4 1.1 2.4 2.4v45.2c0 1.3-1.1 2.4-2.4 2.4zM518.2 100H323c-1.3 0-2.4-1.1-2.4-2.4V52.4c0-1.3 1.1-2.4 2.4-2.4h195.2c1.3 0 2.4 1.1 2.4 2.4v45.2c0 1.3-1.1 2.4-2.4 2.4zM728.7 100H533.5c-1.3 0-2.4-1.1-2.4-2.4V52.4c0-1.3 1.1-2.4 2.4-2.4h195.2c1.3 0 2.4 1.1 2.4 2.4v45.2c0 1.3-1.1 2.4-2.4 2.4z"})),x||(x=s.createElement("path",{className:"st5",d:"M237.5 200h513.6v70H237.5z"})),g||(g=s.createElement("g",{id:"XMLID_25_",className:"st2"},s.createElement("text",{transform:"translate(257.54 242.128)",className:"st3 st6"},"\u89c2\u6d4b"))),u||(u=s.createElement("path",{className:"st1",d:"M518.2 259.8H323c-1.3 0-2.4-1.1-2.4-2.4v-44.9c0-1.3 1.1-2.4 2.4-2.4h195.2c1.3 0 2.4 1.1 2.4 2.4v44.9c0 1.3-1.1 2.4-2.4 2.4zM728.7 259.5H533.5c-1.3 0-2.4-1.1-2.4-2.4v-44.9c0-1.3 1.1-2.4 2.4-2.4h195.2c1.3 0 2.4 1.1 2.4 2.4v44.9c0 1.3-1.1 2.4-2.4 2.4z"})),s.createElement("text",{transform:"translate(1169.188 227.748)",className:"st2",style:{writingMode:"tb"}},s.createElement("tspan",{x:0,y:0,className:"st3",style:{fontSize:24,glyphOrientationVertical:1}},"OIDC "),s.createElement("tspan",{x:0,y:66.5,className:"st3",style:{fontSize:24,glyphOrientationVertical:0}},"\u8ba4\u8bc1")),s.createElement("path",{style:{opacity:.1,fill:"#faad14",stroke:"#fff",strokeMiterlimit:10},d:"M40.5 39.9h180.2v230H40.5z"}),s.createElement("text",{id:"XMLID_37_",transform:"translate(57.54 89.69)",className:"st12 st4",style:{fill:"#faad14"}},"\u81ea\u5b9a\u4e49\u4ed3\u5e93"),b||(b=s.createElement("text",{transform:"translate(58.478 122.226)",id:"XMLID_15_",className:"st13"},s.createElement("tspan",{x:0,y:0,className:"st14 st15"},"\u81ea\u5b9a\u4e49\u7ec4\u4ef6\uff0c\u5feb"),s.createElement("tspan",{x:0,y:23.2,className:"st14 st15"},"\u901f\u53d1\u5e03\u3001\u5b89\u88c5\u3001"),s.createElement("tspan",{x:0,y:46.4,className:"st14 st15"},"\u5e94\u7528"))),V||(V=s.createElement("g",{id:"XMLID_22_",className:"st2"},s.createElement("text",{transform:"translate(257.54 82.128)",className:"st3 st6"},"AI"))),S||(S=s.createElement("path",{className:"st5",d:"M762.1 40h336.4v70H762.1zM761.1 120h336.4v70H761.1zM761.1 200h336.4v70H761.1z"})),L||(L=s.createElement("g",{id:"XMLID_31_",className:"st2"},s.createElement("text",{transform:"translate(781.57 82.128)",className:"st3 st6"},"CI/CD"))),X||(X=s.createElement("path",{className:"st1",d:"M728.7 180H533.5c-1.3 0-2.4-1.1-2.4-2.4v-45.2c0-1.3 1.1-2.4 2.4-2.4h195.2c1.3 0 2.4 1.1 2.4 2.4v45.2c0 1.3-1.1 2.4-2.4 2.4z"})),G||(G=s.createElement("g",{id:"XMLID_21_",className:"st13"},s.createElement("text",{transform:"translate(399.397 242.584)",className:"st3 st6"},"skywalking"))),s.createElement("path",{d:"M382.3 224.2h-.3c-.3 0-.6.1-.9.2-1.1.3-2 .9-2.8 1.6-.2.2-.7.7-.7.8h.2c.6-.1 1.7-.1 2.3 0h.2c.8.1 1.8.6 2.5 1 1.2.8 2.2 2 2.7 3.3.2.4.3 1 .4 1.3v.2c.1.6.1 1.4 0 2.1-.1.7-.5 1.9-.7 2.3-.1.2-.1.2.6-.1 1.3-.6 2.4-1.8 3.1-3.1.2-.5.5-1.2.5-1.6v-.2c.1-.1.1-1.5 0-2-.3-2.8-2.4-5.1-5-5.7-.2-.1-.5-.1-.8-.1h-1.3z",style:{fill:"#d8d8d8"}}),s.createElement("path",{d:"M355.1 226.1h-1.4c-.5.1-1.2.3-1.7.5-1.3.6-2.1 1.6-2.3 2.9-.1.7-.1 1.6 0 2.3.2 1 .8 2 1.9 2.8.2.1 1 .7 1 .7l.4.2c.2.1.3.2.4.2l3.6 2.1.2.2c.1.1.3.3.5.4.3.3.5.6.6 1 .1.5 0 1.2-.2 1.6-.2.5-.8.8-1.5.9-.5.1-2 .1-3.5 0h-2.2c-.3 0-.4 0-.5.2-.1.1-.1.2-.1 1.1v1.1c.1.2.3.4.7.4.4.1.4.1.9.2.4.1.8.1 1.1.1h.4c.6.1 2.1.1 2.8 0 .4 0 .6 0 1.2-.1.3-.1 1.2-.3 1.5-.4.6-.3.9-.4 1.3-.7.5-.3.9-.8 1.2-1.3l.3-.6v-.1c.1-.2.2-.4.2-.8.3-1.3.1-2.6-.5-3.7-.3-.4-.8-1.1-1.2-1.4 0 0-.2-.1-.3-.2-.4-.3-1.1-.7-1.9-1.2-.1 0-.4-.2-.8-.4l-.8-.4c-.1-.1-.3-.2-.5-.3-.2-.1-.3-.2-.3-.2s-1-.6-1.3-.8c-.4-.3-.8-.6-.9-.9-.2-.4-.3-.9-.1-1.4.2-.5.6-.9 1.3-1.1.2-.1.4-.1.8-.1h1.9c.9 0 2.4.1 2.9.2h1c.2-.1.2-.2.2-1.3s0-1.1-.2-1.3c-.1-.1-.6-.2-.9-.2l-.5-.1c-.3 0-.6-.1-.9-.1-.3 0-.6-.1-.8-.1h-.5c-.4.1-2.5 0-2.5.1zm8.6 4.8c-.2 0-.3.2-.4.4 0 .1 0 .3.1.7v.4s.1.3.1.6c.1.3.1.7.2.9 0 .2.1.4.1.5 0 .1.1.5.2 1.1l.2 1c0 .1 0 .2.1.3 0 .1.1.3.1.3 0 .1.1.4.2.8s.1.7.2.8V239c.1.6.2 1 .4 1.9.1.6.2 1.2.3 1.4.2 1.1.3 1.4.5 1.8.2.5.6.7 1.2.9h1c.9 0 1.1 0 1.4-.2.2-.1.5-.3.6-.4.3-.3.5-.7.6-1.2.2-.8.5-1.7.7-2.6 0-.1.1-.4.2-.7.1-.3.2-.6.2-.7 0 0 .1-.3.2-.7.3-1 .5-2.1.7-2.7.2-.6.2-.8.3-.7 0 0 .2.8.3 1 0 .1.3 1.3.4 1.7 0 .1.2.6.3 1.1.1.5.3 1.1.4 1.5.1.3.3 1 .4 1.6.3 1.2.4 1.4.5 1.7.2.5.6.8 1 1 .4.1.5.2 1.4.2.8 0 1.1 0 1.4-.2.5-.2.8-.7 1-1.5.1-.3.1-.3.1-.5 0-.1.1-.3.1-.5l.1-.4v-.4c0-.1.1-.3.1-.5s.1-.4.1-.4v-.3c0-.1 0-.2.1-.3 0 0 .1-.4.1-.8.1-.4.1-.7.1-.8l.2-1.2.2-1.2s0-.2.1-.2c0-.1 0-.2.1-.3v-.4c0-.1.1-.7.2-.9 0 0 0-.2.1-.4 0-.2.1-.4.1-.4s0-.2.1-.4c0-.2.1-.4.1-.4 0-.1.1-.4.1-.7.1-.3.1-.7.1-.7 0-.2-.1-.3-.2-.4-.1-.1-.1-.1-1.5-.1-1.2 0-1.3 0-1.4.1-.1.1-.2.2-.2.4v.4c0 .1 0 .2-.1.3 0 .1 0 .3-.1.3s0 .2-.1.3c0 .1 0 .3-.1.4v1s0 .2-.1.4c0 .2-.1.8-.1.9 0 .1-.1.5-.1.7l-.1.6c0 .2 0 .3-.1.3V237.3c0 .1-.1.5-.1.7v.2c0 .2 0 .3-.1.4v.2c0 .3-.1.6-.1.9V240.8c0 .3-.1.4-.1.5 0 0-.1 0-.1-.1s-.2-.8-.3-1.2c0 0-.2-.9-.5-1.9-.3-1-.5-1.9-.5-2-.1-.3-.1-.6-.2-.8l-.2-.8v-.1c0-.1-.1-.3-.1-.4-.1-.2-.1-.4-.1-.4 0-.2-.3-1.2-.4-1.3-.2-.4-.4-.6-.8-.7h-2.7c-.4.1-.6.2-.7.6-.1.2-.3.8-.3 1.1l-.2.8c-.1.4-.2.7-.2.8-.2.9-.5 1.9-.7 2.8v.1l-.2.8-.2.8s0 .2-.1.4l-.1.3s-.1.4-.1.5c0 0 0 .2-.1.3-.1.4-.1.5-.2.5s-.1-.2-.2-.6v-.4c0-.2 0-.3-.1-.5 0-.2-.1-.4-.1-.5V238.5c0-.1 0-.3-.1-.4 0-.2-.1-.4-.1-.5v-.4c0-.2 0-.3-.1-.5-.1-.3-.1-.8-.1-.9v-.4c0-.1 0-.2-.1-.8 0-.3-.1-.5-.1-.5v-.3c0-.1 0-.3-.1-.4 0-.1 0-.2-.1-.3 0-.1 0-.3-.1-.4v-.4c0-.1 0-.2-.1-.4-.1-.4-.1-.7-.2-1.1 0-.3-.1-.4-.3-.5-.1-.1-.2-.1-1.4-.1-1.1.7-1.7.7-1.8.7z",style:{fill:"#1890ff"}}),H||(H=s.createElement("g",{id:"XMLID_20_",className:"st13"},s.createElement("text",{transform:"translate(399.697 82.527)",className:"st3 st6"},"jupyter"))),s.createElement("path",{d:"M353.9 75.9c0 1.3-.1 1.7-.3 1.9-.3.2-.6.4-1 .4l.1.7c.6 0 1.2-.2 1.6-.6.2-.3.4-.6.6-1 .1-.4.2-.7.1-1.1v-4.7h-1v4.4zm7.1-.6c0 .6 0 1 .1 1.4h-.9l-.1-.9c-.2.3-.4.6-.7.7-.3.2-.6.2-1 .2-.8 0-1.8-.5-1.8-2.2v-3h1v2.9c0 1 .3 1.7 1.2 1.7.2 0 .3 0 .5-.1s.3-.2.4-.3c.2-.2.2-.2.3-.4.1-.2.1-.3.1-.5v-3.2h1v3.7zm4.5-3.8c-.4 0-.7.1-1 .2-.3.2-.6.5-.8.8l-.1-.9h-.9c.1.5.1 1 .1 1.7v5.6h1V76c.2.2.4.5.7.6.3.2.6.2.9.2 1.2 0 2.4-1 2.4-2.8-.1-1.5-1.1-2.5-2.3-2.5zm-.3 4.6c-.3 0-.6-.1-.9-.3-.2-.2-.5-.5-.6-.8 0-.2-.1-.2-.1-.4v-.9c0-.4.2-.8.5-1 .2-.3.6-.5 1-.5 1 0 1.5.9 1.5 1.9.1 1.2-.4 2-1.4 2zm4.2-4.6 1.1 3c.2.3.2.7.3 1 .1-.3.2-.7.3-1.1l1-3h1l-1.4 3.7c-.7 1.8-1.1 2.7-1.8 3.3-.3.3-.7.5-1.2.6l-.2-.8c.3-.1.6-.2.8-.5.3-.3.6-.6.8-1 0-.1.1-.2.1-.2 0-.1 0-.2-.1-.2l-1.9-4.8h1.2zm6.4-1.5v1.5h1.4v.7h-1.4V75c0 .6.2 1 .7 1 .2 0 .4 0 .6-.1l.1.7c-.2.1-.6.2-.9.2-.2 0-.4 0-.6-.1s-.3-.2-.5-.3c-.3-.4-.4-.9-.4-1.4v-2.9h-.8v-.7h.8v-1.3l1-.1zm6.8 3.9c0-1-.4-2.5-2.2-2.5-1.5 0-2.5 1.2-2.5 2.8 0 .3 0 .7.2 1s.3.6.6.9c.2.2.6.5.9.6.3.2.6.2 1 .2.6 0 1.2-.1 1.8-.3l-.2-.7c-.5.2-1 .3-1.4.2-.2 0-.5 0-.7-.1-.2-.1-.4-.2-.6-.4-.2-.2-.3-.4-.4-.6-.1-.2-.1-.5-.1-.7h3.7v-.4zm-.9-.3h-2.8c0-.4.2-.8.4-1 .2-.3.6-.5 1-.5.2 0 .4.1.6.2s.3.2.5.3c.2.2.2.3.2.5.2.1.2.3.1.5zm2.3-.5c0-.6 0-1.1-.1-1.6h.9v1h.1c.1-.3.2-.6.6-.8.2-.2.6-.3.9-.3h.2v.9h-.3c-.3 0-.6.2-.9.4-.2.2-.4.6-.4.9 0 .2-.1.3-.1.5v2.8h-1l.1-3.8z",style:{fill:"#4e4e4e"}}),s.createElement("path",{d:"M383.6 57.2c0 .5-.1 1-.3 1.4-.2.4-.6.7-1 1-.4.2-.9.3-1.4.2-.5-.1-.9-.2-1.3-.6s-.6-.7-.7-1.2c-.1-.5-.1-1 .1-1.4.2-.5.5-.9.9-1.1.4-.3.9-.5 1.4-.5.3 0 .6 0 1 .2.3.2.6.2.8.5.2.2.4.5.6.7-.2.2-.1.5-.1.8z",style:{fill:"#767677"}}),s.createElement("path",{d:"M369.5 85.1c-6.4 0-12.1-2.3-14.9-5.7 1.1 3 3.2 5.7 5.8 7.5 2.6 1.8 5.8 2.9 9.1 2.9s6.4-1 9.1-2.9c2.6-1.8 4.7-4.5 5.8-7.5-2.8 3.4-8.4 5.7-14.9 5.7zm0-22c6.4 0 12.1 2.3 14.9 5.7-1.1-3-3.2-5.7-5.8-7.5-2.6-1.8-5.8-2.9-9.1-2.9s-6.4 1-9.1 2.9c-2.6 1.8-4.7 4.5-5.8 7.5 3-3.5 8.6-5.7 14.9-5.7z",style:{fill:"#f37726"}}),s.createElement("path",{d:"M355.3 62.3c-.3 0-.7-.1-1-.2-.3-.2-.6-.5-.6-.8-.2-.3-.2-.6-.2-1 .1-.3.2-.6.5-.9.2-.2.6-.4.9-.5s.7-.1 1 .1c.3.2.6.3.8.6s.3.6.3 1c0 .5-.2 1-.5 1.3-.2.1-.7.4-1.2.4z",style:{fill:"#616262"}}),s.createElement("path",{d:"M360.8 91.8c0 .6-.1 1.2-.4 1.8-.3.6-.7 1-1.3 1.2s-1.1.2-1.8.2c-.6-.1-1.1-.3-1.6-.7-.5-.4-.8-1-.9-1.5-.2-.6-.1-1.2.1-1.8.2-.6.6-1 1-1.4.5-.3 1-.6 1.7-.6.4 0 .8 0 1.2.2.4.2.7.3 1 .6.3.2.6.6.7 1 .1.2.2.6.3 1z",style:{fill:"#9e9e9e"}}),C||(C=s.createElement("g",{id:"XMLID_14_",className:"st13"},s.createElement("text",{transform:"translate(399.397 160.94)",className:"st3 st6"},"minio"))),s.createElement("path",{d:"m384.5 145.9-14.6 7.8c-.2.1-.5.1-.7 0l-14.6-7.8c-.3-.2-.7-.3-1-.3-1-.1-1.9.7-2 1.8v16.9h7.2v-8c0-.4.4-.7.8-.6.1 0 .2 0 .3.1l8.2 4.4c.8.4 1.8.4 2.6 0l8.6-4.4c.3-.2.8-.1 1 .3.1.1.1.2.1.3v8.1h7.2v-16.9c-.1-1-1-1.8-2-1.8-.4-.1-.8 0-1.1.1z",style:{fill:"#c72c48"}}),w||(w=s.createElement("g",{id:"XMLID_18_",className:"st13"},s.createElement("text",{transform:"translate(627.118 241.297)",className:"st3 st6"},"jaeger"))),k||(k=s.createElement("path",{className:"st24",d:"M587.8 251.1c-.6.1-2.3 1.1-3.8 1.4-1.5.3-2.8.4-3.2.6-.5.2-.8.5.1.8.9.3 5.2.5 5.6 0 .4-.5-.3-.6-1.2-.6-.7 0-.6-.2-.6-.3 0 0 0-.3 1.1-.4 1-.1 5.6-.6 5.5-1.1-.2-.5-2.9-.5-3.5-.4zM584 254.9c0 .1.4.2.9.1s.8-.3.8-.4c0-.1-.4-.2-.9-.1-.5 0-.8.2-.8.4zM581.9 254.6c0 .1.4.2 1 .2.5 0 .9-.2.9-.3 0-.1-.4-.2-.9-.2s-1 .2-1 .3z"})),P||(P=s.createElement("path",{className:"st24",d:"M580.6 254.4c0 .1.3.2.6.1s.6-.2.6-.3c0-.1-.3-.2-.6-.1s-.7.2-.6.3zM579.4 254.3c0 .1.3.1.6.1s.6-.2.6-.2c0-.1-.3-.1-.6-.1-.4 0-.6.1-.6.2zM579.1 253.9c0 .1.3.1.6.1s.6-.2.6-.2c0-.1-.3-.1-.6-.1s-.6.1-.6.2zM579.1 253.5c0 .1.3.1.5.1.3 0 .5-.1.5-.2s-.3-.1-.5-.1-.5.1-.5.2zM596.7 251.6c-1 .1-3.3-.1-3.6.5-.3.5.9.7 2.9.6 2-.2 4.8-.4 4.9-1 .1-.6-.5-.5-.6-.9-.1-.4.7-.4.9-1 .2-.6-1-.5-2.1-.5s-2.8.1-3 .7c-.2.6.8.6 1.5.7.7.1.5.4.5.4-.1.3-.4.4-1.4.5z"})),U||(U=s.createElement("path",{className:"st24",d:"M593.1 253c0 .2.4.3.9.3s.9-.1.9-.3c0-.2-.4-.3-.9-.3-.5.1-.9.2-.9.3zM595.7 253c0 .1.3.3.6.3s.6-.1.6-.3c0-.1-.3-.3-.6-.3s-.6.1-.6.3zM597.5 252.8c0 .1.3.2.6.2.4 0 .6-.1.6-.2s-.3-.2-.6-.2-.6.1-.6.2zM599.1 252.6c0 .1.2.2.5.2s.5-.1.5-.2-.2-.2-.5-.2-.5 0-.5.2zM600.3 252.3c0 .1.2.2.5.2s.5-.1.5-.2-.2-.2-.5-.2-.5.1-.5.2zM580 246.1c0 .3.6.6 1.7.8-.1-.6 0-1.1 0-1.6-1.1.3-1.7.6-1.7.8zm32.5-.7s0 .1-.1.1c-.1.3-.3.6-.6.8-.5.5-.9.8-1.3.9 2.2-.3 3.4-.7 3.4-1.1.1-.2-.4-.5-1.4-.7z"})),O||(O=s.createElement("path",{className:"st25",d:"M608.8 244.8c-.1-1-.6-1.5-.9-1.9-.4-.4-.7-.7-.6-1.4.1-.6.6-1 1.3-1.1-.5-3.2-1.2-7.2-2-10.6-.4-1.7-1.1-2.9-2.1-3.7-1.1.5-2.4 1.1-3.8 1.8-1 .4-2.1.9-3.1 1.3-.8.9-1.7 1.7-2.3 2-.4.2-.7.2-1 .2-.7 0-1.1-.3-1.3-.6-.2.1-.4.1-.6.1-.2 0-.4 0-.7.1.1.3.1.6-.1.9-.2.3-.6.4-1.2.4-.8 0-1.9-.3-3.4-.9-.2-.1-.4-.2-.6-.2h-.3c-1.4 0-2.6 0-3.4-.1-1 2-.5 4.2-.2 6 .3 1.8 1.5 4.9 2.6 7.6.4.9.7 1.8 1.1 2.7 2.9.3 6.7.4 10.8.4 4.9 0 9.3-.2 12.4-.6-.2-.7-.5-2-.6-2.4zm-24.2-8.5c0-1.9 1.5-3.4 3.4-3.4s3.4 1.5 3.4 3.4c0 .9-.4 1.8-1 2.4-.2.2-.4.4-.7.5-.5.3-1.1.5-1.7.5-1.9 0-3.4-1.5-3.4-3.4zm9.1 7.2c-.7.2-1-.6-1.1-1 .3-.2.7-.4 1.2-.6.1.1.1.4.2.6 0 .4 0 .9-.3 1zm1.1-.3c-.2-.1-.3-.4-.4-.7-.1-.3-.1-.6-.2-.8h1.4c0 .2 0 .4.1.7v.1c0 .8-.7.8-.9.7zm3.1-2.1c-.3.2-.9.2-1.7.2h-1.9c-.8.1-1.5.5-2 .9-.2.1-.3.2-.4.3-.2.1-.5.2-.8.2-.5 0-1-.2-1.4-.6-.3-.3-.4-.7-.3-1.1.2-1.2 1.9-1.8 2.1-1.9l.3-.1v-.1c-.1-.6.6-1.2 1.6-1.3h.1c.8-.1 1.6.1 1.8.5h.4c.9 0 1.6.1 2.2.4.6.2.9.6 1 .9.1.8-.3 1.4-1 1.7zm.6-3.9c-1.9 0-3.4-1.5-3.4-3.4s1.5-3.4 3.4-3.4 3.4 1.5 3.4 3.4-1.5 3.4-3.4 3.4z"})),T||(T=s.createElement("path",{d:"m602.9 222.3-.2-.2H602.1c-.2 0-.4.1-.5.3-.1.1-.3.3-.3.4-.2.3-.3.5-.3.8-.1.2-.1.4-.1.6V224.5l.1-.2c.1-.1.2-.3.3-.5.1-.2.3-.4.4-.6l.3-.3c.1-.1.2-.1.3-.1h.4v.5c0 .1 0 .2-.1.4s-.1.4-.1.6c0 .1-.1.2-.1.2s.1-.1.1-.2c.1-.2.2-.3.3-.5.1-.1.1-.2.2-.4.1-.1.1-.3.1-.5-.1-.3-.1-.4-.2-.6 0 .1 0 .1 0 0zM602.5 222.6z"})),B||(B=s.createElement("path",{className:"st24",d:"M581.7 228.8c.1 0 .1 0 0 0zm.5-1.3c.1.2.2.3.3.5 0 .1.1.1.1.1v-.2c0-.1-.1-.3-.1-.5v-.7s.1 0 .1.1l.3.3c.1.1.2.2.2.3.2.2.3.4.4.6.1.1.2.3.3.4 0 .1.1.1.1.2v-.2c0-.2-.1-.3-.1-.5-.1-.2-.2-.5-.3-.7-.1-.1-.1-.2-.2-.4-.1-.1-.2-.2-.3-.4-.1-.1-.2-.1-.3-.1H582.4c-.1 0-.2.1-.3.2-.1.1-.1.2-.1.3 0 .2 0 .3.1.5 0 0 0 .1.1.2z"})),F||(F=s.createElement("path",{className:"st26",d:"M583.7 248.5c.8 0 1.4-.4 1.8-1-.5-1-1.2-2.8-1.9-4.7-.2.2-.4.4-.7.8-.6.9-1.1 3.1-.5 4.2.3.5.7.7 1.3.7zm28.3-5.3c-.5-1.2-1.5-2.1-2.4-2.1h-.4c-.5 0-1.2.1-1.3.6-.1.4.1.6.4.9.4.4.9 1 1.1 2.1.2 1.3.5 2 1 2 .2 0 .6-.1 1.3-.7.7-.7.6-2 .3-2.8z"})),Z||(Z=s.createElement("path",{className:"st24",d:"M586.6 237.5c0 .6.5 1.1 1.1 1.1s1.1-.5 1.1-1.1-.5-1.1-1.1-1.1-1.1.5-1.1 1.1zM597 235c0 .6.5 1.1 1.1 1.1s1.1-.5 1.1-1.1-.5-1.1-1.1-1.1-1.1.5-1.1 1.1z"})),s.createElement("path",{d:"M584.7 225.5c.8.2 1.8.3 2.8.3 1.7 0 5.2-.3 10.1-2.5h.1c0-.3 0-.5.1-.8.1-.5.3-.9.6-1.2-.1-.2-.1-.3-.1-.4-.6-.3-5.3-2.1-7.7-2.1-.2 0-.5 0-.6.1-2.2.4-5.5 4.2-5.6 4.8v1.7l.3.1zm0 5.3h-.2c-.5 0-.9-.3-1-.7v-.1c-.2.1-.5.3-.7.5l-.4.3-.3-.4c-.1-.1-.5-.7-.9-1.4-.7.3-1.3.7-1.4 1.1v.1c.1 0 .8.5 4.9.6zm8.6-1.1c.4-.2.8-.2 1.1.1 0 0 .1 0 .2-.1.5-.2 2.1-2 3.3-3.4 0-.1.1-.1.1-.1-2.8 1.2-6.8 2.6-10.5 2.6-.6 0-1.2 0-1.7-.1l.1.2-.5.2s-.1 0-.2.1c.6.1 1.4.4 2.4.8 1.9.8 2.6.8 2.8.8.3-.1.6-.1.8 0 .5 0 .9-.1 1.1-.1.1 0 .3 0 .5-.1 0-.4.2-.8.5-.9zm10.9-5.6c-.1.8-.4 1.7-.6 2l-.2.2c.7-.4 1.4-.7 2-1 2-1.1 2.2-1.6 2.2-1.7v-.1s-.2-.2-.8-.2c-.7 0-1.6.2-2.6.4v.4zm-.8 2.2h-1.5c-.7 0-1.7 0-2.5.2.2.3.1.7-.1 1-.3.4-.6.7-.9 1.1l2.1-.9c1.1-.6 2.1-1 2.9-1.4z",style:{fill:"#648c1a"}}),j||(j=s.createElement("path",{className:"st26",d:"M597.9 223.8c-2 .9-6.3 2.5-10.3 2.5-1 0-2-.1-3-.4.1.2.2.3.3.5.3.6.6 1.2.7 1.6.5.1 1.1.1 1.9.1 2.3 0 5.9-.5 10.9-2.8.1-.2.2-.6.3-.9h-.2c-.2 0-.5-.2-.6-.6z"})),K||(K=s.createElement("path",{className:"st25",d:"M581.8 228.8c.4.6.7 1.1.7 1.1 1.2-.8 2.8-1.4 2.8-1.4s0-.1-.1-.3c0-.1-.1-.2-.1-.3-.1-.1-.1-.2-.2-.4 0-.1-.1-.1-.1-.2-.1-.1-.1-.3-.2-.4-.1-.2-.3-.5-.4-.7-.5-.7-1.1-1.3-1.8-1.3-.2 0-.4.1-.7.2-1.2.8-.6 2.5.1 3.7zm.2-2.1c0-.1 0-.2.1-.3.1-.1.2-.2.3-.2H582.7c.1 0 .2.1.3.1.1.1.2.2.3.4.1.1.2.2.2.4.1.2.2.5.3.7.1.2.1.3.1.5v.2s0-.1-.1-.2-.2-.3-.3-.4c-.1-.2-.3-.4-.4-.6-.1-.1-.2-.2-.2-.3l-.3-.3-.1-.1v.7c0 .2.1.4.1.5v.2l-.1-.1c-.1-.1-.2-.3-.3-.5-.1-.1-.1-.2-.1-.3-.1-.1-.1-.2-.1-.4zm.4-2.1v.3-.3z"})),A||(A=s.createElement("path",{className:"st26",d:"M599.2 220.9h.2c.4.1.6.5.7 1 .7-1 1.5-1.5 2.4-1.5.4 0 .7.1.9.2.4-.5.7-.9.7-.9-.3.1-1 .2-1 .2 2.7-1 2.5-3.7 2.5-3.7 0 .5-1.4 1.6-1.4 1.6.1-.4-.2-.9-.2-.9.1.5-1.6 1.9-1.6 1.9.1-.2 0-.7 0-.7-.1.5-.8.7-.8.7.5-.6 1.3-3.5.7-3.7-.6-.2-1.5 1.9-1.5 1.9 0-.5-.3-.5-.3-.5.1 1.5-1.1 2.8-1.1 2.8-.1-.3-.6-.5-.6-.5.2.3 0 1.9-.1 2.3.1-.1.3-.2.5-.2z"})),q||(q=s.createElement("path",{d:"M598.5 223.9s.1 0 0 0c.1 0 .1 0 0 0 .1 0 .1 0 0 0l.1.1h.1c.1 0 .2-.1.3-.1l.3-.6c.1-.2.2-.3.3-.5.1-.7 0-1.3-.3-1.3s-.7.5-.8 1.2c-.1.5-.1.9.1 1.2-.1-.1-.1 0-.1 0z"})),W||(W=s.createElement("path",{className:"st25",d:"M602.5 222.6zm0 0zM602.5 220.9c-1.5 0-2.6 2.3-3.2 3.8-.1.3-.2.5-.3.8 0 .1-.1.3-.1.4.1 0 .1 0 .2.1.9-.3 2-.3 2.9-.3h1.3c.1-.3 1.5-4.8-.8-4.8zm.5 1.8c0 .2-.1.3-.1.5 0 .1-.1.2-.2.4s-.2.3-.3.5c-.1.1-.1.2-.1.2s0-.1.1-.2c0-.1.1-.3.1-.6 0-.1.1-.2.1-.4v-.5h-.4c-.1 0-.2.1-.3.1l-.3.3c-.2.2-.3.4-.4.6-.1.2-.2.4-.3.5l-.1.2V224c0-.2 0-.4.1-.6.1-.2.2-.5.3-.8.1-.1.2-.3.3-.4.1-.1.3-.2.5-.3h.6s.1.1.2.1v.1c.2.4.2.5.2.6z"})),R||(R=s.createElement("path",{d:"M594.3 231.1c.2 0 .5-.1.8-.2.6-.3 2.1-1.8 3.8-3.8.1-.1.1-.2.1-.3 0-.1-.1-.2-.1-.2-.1-.1-.1-.1-.2-.1s-.2 0-.3.1c-.7.9-2.8 3.2-3.5 3.6-.1.1-.3.1-.4.1h-.3l-.2-.2c-.1-.1-.2-.1-.2-.1-.1 0-.1 0-.2.1l-.2.2v.3c.1.1.3.5.9.5zm-3.4 0h-.2l-.1.1h-.2c-.3 0-1.2-.1-2.9-.8-1.9-.8-2.7-.9-3-.9h-.1c-.1 0-.2.1-.2.1-.1.1-.1.2-.1.3 0 .2.2.3.4.3s.9.1 2.7.8c1.4.6 2.5.9 3.2.9.4 0 .6-.1.8-.2.1-.1.1-.2.1-.3 0-.1-.1-.2-.1-.2-.1 0-.2-.1-.3-.1z"})),J||(J=s.createElement("path",{className:"st26",d:"M595.8 238.7s-.1 1.2-1.8 1.4c-.3 0-.6.1-.8.1-.9 0-1.2-.3-1.5-.5 0 0-1.6.5-1.7 1.5-.1.7.6 1 1.2 1 .2 0 .4 0 .5-.1.6-.3 1.5-1 2.6-1.2h1.9c.6 0 1.2 0 1.5-.2.7-.3.7-.9.7-1.2-.1-.3-.8-.8-2.6-.8z"})),Y||(Y=s.createElement("path",{className:"st24",d:"M593.8 239.6s.1 0 0 0h.1c.9-.2 1.5-.7 1.5-1.2 0-.1 0-.2-.1-.3-.2-.4-1-.7-1.8-.5h-.1c-1 .2-1.7.8-1.6 1.3v.1c.2.5 1.1.8 2 .6z"})),Q||(Q=s.createElement("g",{id:"XMLID_4_",className:"st13"},s.createElement("text",{transform:"translate(626.818 80.94)",className:"st3 st6"},"gradio"))),$||($=s.createElement("path",{className:"st28",d:"m596.6 56 19.9 10.6v6.2l-19.9-10.6V56z"})),ee||(ee=s.createElement("path",{className:"st29",d:"m616.5 66.6-20 10.6v6.2l20-10.6v-6.2z"})),te||(te=s.createElement("path",{className:"st28",d:"m576.5 66.6 20 10.6v6.2l-20-10.6v-6.2z"})),ae||(ae=s.createElement("path",{className:"st29",d:"m596.6 56-20.1 10.6v6.2l20.1-10.6V56z"})),se||(se=s.createElement("path",{className:"st28",d:"m596.6 66.7 19.9 10.6v6.1l-19.9-10.6v-6.1z"})),le||(le=s.createElement("path",{className:"st29",d:"m616.5 77.2-20 10.6V94l20-10.6v-6.2z"})),ce||(ce=s.createElement("path",{className:"st28",d:"m576.5 77.2 20 10.6V94l-20-10.6v-6.2z"})),me||(me=s.createElement("path",{className:"st29",d:"m596.6 66.6-20.1 10.6v6.2l20.1-10.6v-6.2z"})),re||(re=s.createElement("g",{id:"XMLID_2_",className:"st13"},s.createElement("text",{transform:"translate(626.818 160.94)",className:"st3 st6"},"mysql"))),s.createElement("path",{d:"M580.3 136.5c.3 0 .5.1.8.1.4.1.8.2 1.2.4.7.3 1.4.6 2.1 1.1.3.2.6.5.9.7.1 0 .2.1.2.1 1.2.1 2.4.2 3.6.5.7.2 1.4.6 2.1 1 1.9 1.1 3.6 2.4 5.2 3.9.8.8 1.5 1.6 2.2 2.5.8 1 1.5 2 2.1 3.1.4.8.7 1.7 1.1 2.5.8 1.7 1.6 3.3 2.4 5 .2.5.5.9.7 1.4.1.3.3.5.6.5 2.2.7 4.1 1.9 5.8 3.3.4.4.9.7 1.4 1.1l.9.9c.2.3.4.5.6.8.1.1.1.2-.1.3-.7.2-1.4.5-2.1.6-.8.1-1.7.3-2.5.4-.2 0-.5.1-.8.1.1.1.1.3.2.4.4.5.9.9 1.5 1.2 1.2.6 2.2 1.5 3.2 2.4.3.4.7.7 1 1.1.1.2.3.3.4.4.3.3.5.6.5 1h-.1c-.4-.2-.9-.5-1.3-.7-1.8-.8-3.6-1.7-5.3-2.5-1.1-.6-2.2-1.2-3.4-1.7-1.8-.9-3.7-1.7-5.5-2.5-1.5-.7-3-1.5-4.2-2.5-1.4-1.1-2.5-2.4-3.5-3.9-1.2-1.7-2.3-3.6-3.3-5.4-.8-1.5-1.6-2.9-2.6-4.3-.8-1-1.7-2-2.5-3-.1-.2-.3-.3-.5-.5v.2c.4 1.2 1 2.3 1.9 3.3.5.5.6 1 .4 1.6-.2.4-.3.9-.4 1.3-.3.6-.3 1.3-.5 2-.2.9-.1 1.8 0 2.8.1.8.1 1.5.4 2.2.2.5.5 1.1.7 1.6.1.2.3.4.6.5.2.1.3.1.3-.2 0-.3.1-.5.1-.8.1-.6.1-1.3.3-1.9.2-.8.5-1.5 1-2 .2-.2.4-.5.6-.7 0 .1.1.1.1.2.6 1.9 1.5 3.6 2.5 5.3.8 1.3 1.5 2.6 2.6 3.7.3.3.7.6 1.1 1 0 0 .1 0 .1.1l-.1.1c-.1 0-.2-.1-.3-.2-.4-.3-.7-.6-1.1-.9-.8-.7-1.5-1.4-2.3-2.1-.6-.6-1.1-1.2-1.6-1.9-.2-.4-.4-.9-.6-1.3-.1-.2-.2-.4-.3-.5 0-.1-.1-.1-.1-.1 0 .1-.1.1-.1.2 0 .2 0 .5-.1.7l-.3 1.8c-.1.3-.2.7-.5.9-.3.4-.7.4-1.2.4-.6-.1-1-.4-1.4-.9-1-1.2-1.5-2.6-1.7-4.1-.2-1.3-.2-2.6 0-3.9.1-.5.2-1 .4-1.5.1-.4.2-.8.4-1.3.1-.2.1-.3.2-.5.1-.1.1-.3-.1-.4-.5-.3-.7-.9-1.1-1.3-.8-1.3-1.3-2.8-1.8-4.2l-.3-.9c-.1-.4-.3-.7-.5-1-.6-.9-1.2-1.8-1.9-2.6-.4-.5-.7-1-.8-1.6l-.1-.3v-.6c0-.1 0-.2.1-.3.2-.7.6-1.2 1.4-1.4.1 0 .3 0 .4-.1h.6zm4.7 6.5c.1.1.2.2.2.4.4.6.8 1.3 1.2 1.9 0 .1.1.1.1.1.6-.1 1-.6.9-1.1-.1-.5-.5-.9-.8-1.3-.3-.4-.7-.4-1.2-.2-.1 0-.2.1-.4.2z",style:{fill:"#00758f"}}),ne||(ne=s.createElement("path",{className:"st1",d:"M1075.6 100H880.4c-1.3 0-2.4-1.1-2.4-2.4V52.4c0-1.3 1.1-2.4 2.4-2.4h195.2c1.3 0 2.4 1.1 2.4 2.4v45.2c0 1.3-1.1 2.4-2.4 2.4z"})),he||(he=s.createElement("g",{id:"XMLID_28_",className:"st13"},s.createElement("text",{transform:"translate(972.341 80.94)",className:"st3 st6"},"tekton"))),ie||(ie=s.createElement("path",{d:"M926.7 55c-.7 0-1.3.5-1.5 1.1-.4 1.3-.5 2.7-.3 4.1.2 1.4.6 2.7 1.3 3.9.4.8.9 1.5 1.5 2.2-.1.4-.2.9-.2 1.3-.1.8-.1 1.5-.1 2.3 0 .3 0 .6.1.9.1.9.9 2 1.5 2.7.9 1.2 2.1 2.1 3.4 2.9 0 0 0 .1.1.1.1.3.3.6.5.8-.4.9-.7 1.8-.8 2.8-.2.7-.3 1.4-.3 2.2-.3.1-.5.3-.8.5-.7.5-1.1 1.2-1.4 2.1-.1.2-.1.5-.2.7l-.4-.1v.3c-.2 1.2-.1 2.3.4 3.3-.4.1-.8.2-1.2.5-.3.2-.5.5-.6.8-.2.6-.5 1.2-.5 1.8 0 .5.1.9.5 1.2.2.2.5.3.7.3h3.9c.2.6.7 1.2 1.3 1.4.2 0 .4.1.6.1h4.5c.5 0 .9-.3 1.1-.7.2.4.6.7 1.1.7h4.5c.2 0 .4 0 .6-.1.7-.2 1.1-.7 1.3-1.4h4c.3 0 .5-.1.7-.3.4-.3.5-.7.5-1.2 0-.6-.2-1.3-.5-1.8-.4-.8-1-1.1-1.8-1.3.5-1.1.6-2.1.4-3.3v-.3l-.3.1v-.2c.2-.5.5-1 .8-1.5l1.2-1.8c.2-.3.5-.6.8-.8.5-.5 1.1-.9 1.8-.9.5 0 1 .1 1.3.4.3.2.4.5.6.8.2.6.4 1 .8 1.5.8.8 2 .8 3 .3.8-.4 1.4-1 1.6-1.8.1-.2.1-.5.1-.8-.2-1.5-1.1-2.9-2.3-3.9-1.1-.9-2.4-1.5-3.8-1.6-1.3 0-2.6.4-3.7 1-1.9 1.1-3.5 2.8-4.6 4.8 0-.3-.1-.6-.2-.9-.1-.6-.2-1.1-.4-1.7-.1-.3-.2-.5-.3-.8.2-.2.3-.3.4-.5.1-.2.3-.4.4-.7l.1-.1c1.3-.7 2.4-1.7 3.4-2.9.6-.7 1.4-1.7 1.5-2.7 0-.3 0-.6.1-1 0-.8 0-1.5-.1-2.3-.1-.4-.1-.8-.2-1.2.6-.7 1.1-1.4 1.5-2.2.7-1.2 1.1-2.6 1.3-3.9.2-1.4.1-2.8-.3-4.1-.2-.7-.8-1.1-1.5-1.1-2.6 0-4.9 1.1-6.9 2.4-3.9-2.4-8.9-2.4-12.8 0-2.3-1.3-4.5-2.4-7.2-2.4zm.1 1.5h.1c1.4.8 2.7 2.4 3.7 4-.2.3-.4.5-.6.8-.7 1.1-1.2 2.2-1.6 3.4-1.2-1.5-2.6-4.4-1.6-8.2 0 .1 0 0 0 0zm26.5 0h.1c1 3.7-.5 6.6-1.7 8.2-.4-1.3-1-2.5-1.7-3.6-.1-.2-.3-.4-.5-.6 1.1-1.6 2.3-3.2 3.8-4zm-24.4.3c1.3.3 2.5 1 3.7 1.7-.5.4-.9.8-1.3 1.2-.2-.4-.5-.7-.7-1.1-.5-.6-1.1-1.2-1.7-1.8zm22.4 0c-.6.6-1.1 1.2-1.6 1.9-.3.3-.5.7-.7 1.1-.4-.4-.8-.9-1.3-1.2 1.1-.8 2.3-1.4 3.6-1.8zm-11.5.3v4.3c-2.3 0-4.6.7-6 1.9-1.6 1.4-2.7 3.9-2.6 5.2.1 1.2 2 1.9 4.4 2.4-.1.2-.2.5-.3.7-.1.4-.1.7 0 1.1-.8-.1-1.7-.2-2.5-.4-1.3-.3-2.6-.7-3.9-1.2 0-.1-.1-.2-.1-.4 0 0-.5-4.8 2.1-8.7 2.3-3.2 5.6-4.8 8.9-4.9zm.6 0c3.3.1 6.5 1.7 8.6 4.8 2.8 4 2.2 8.9 2.2 8.9 0 .1 0 .2-.1.4-1.3.5-2.6.9-3.9 1.2-.7.2-1.6.3-2.5.4.1-.4.1-.7 0-1.1 0-.3-.1-.5-.3-.7 2.5-.4 4.3-1.2 4.4-2.4.1-1.3-1-3.8-2.6-5.2-1.4-1.2-3.7-1.9-6-1.9v-4.4zm-1.4 1.2c-.2 0-.4.2-.4.4 0 .3.4.5.6.3.1-.1.1-.4 0-.5 0-.2-.1-.2-.2-.2zm2.2 0c-.2 0-.4.2-.4.4 0 .3.4.5.6.3.1-.1.1-.4 0-.5 0-.2-.1-.2-.2-.2zm-2.2 1.6c-.2 0-.4.2-.4.4 0 .3.4.5.6.3.3-.3.1-.7-.2-.7zm2.2 0c-.2 0-.4.2-.4.4.3 0 .4-.2.4-.4zm-5.8 6.3c.5 0 1.1.3 1.4.7.4.4.6 1 .6 1.6 0 .2-.2.4-.4.4s-.4-.2-.4-.4c0-.4-.1-.8-.4-1.1-.2-.3-.5-.4-.9-.4-.2 0-.4.1-.6.2-.2.1-.4.3-.5.6-.1.2-.3.3-.5.2-.2-.1-.3-.3-.2-.5.2-.3.4-.6.7-.9.4-.3.8-.4 1.2-.4zm9.4 0c.4 0 .7.1 1 .3.3.2.6.5.7.9.1.2 0 .4-.2.5-.2.1-.4 0-.5-.2-.1-.2-.3-.4-.5-.6-.2-.1-.4-.2-.6-.2-.3 0-.7.2-.9.4-.3.3-.4.7-.4 1.1 0 .2-.2.4-.4.4s-.4-.2-.4-.4c0-.6.2-1.1.6-1.6.6-.4 1.1-.6 1.6-.6zm-4.7 3.6c1.6 0 3.6.7 3.8 1.9.2 1.1-.4 1.9-1.4 2.4-1.4.5-1.9-.2-2.2-.6-.1-.2-.2-.3-.2-.3s-.1.1-.2.3c-.2.4-.7 1-1.7.8-1.2-.4-2.1-1.2-1.9-2.5.2-1.3 2.2-2 3.8-2zm0 .6c-1 0-2.2.3-2.3.9-.2 1 1.3 1.5 2.3 1.5 1 0 2.5-.5 2.3-1.5-.1-.6-1.3-.9-2.3-.9zm-10.6 1.5c1.1.4 2.2.7 3.3 1 .9.2 1.9.3 2.8.4 0 .1.1.2.1.3.5.8 1.2 1.3 2.1 1.5-.5.2-.8.5-.9 1 0 .2 0 .4.1.6-.7-.1-1.3-.3-2-.5-2-.7-3.7-1.8-5-3.5-.2-.3-.4-.5-.5-.8zm21.2 0c-.1.2-.3.4-.4.5-.8.9-1.6 1.8-2.6 2.4-1.4.9-2.9 1.5-4.6 1.8.1-.2.1-.4.1-.6-.1-.5-.4-.7-.9-.9.9-.3 1.6-.8 2.1-1.5 0-.1.1-.2.1-.3 1-.1 1.9-.2 2.8-.4 1.2-.3 2.3-.6 3.4-1zm-10.6 3.7c1.3 0 2.5.2 2.2.7-.1.2-.4.4-.8.5-.5.1-1 .1-1.5.1s-1-.1-1.5-.1c-.4-.1-.7-.3-.8-.6-.1-.4 1.2-.6 2.4-.6zm16.1.9c.8 0 1.6.3 2.3.7-.8.2-1.4.8-1.7 1.6-.1.2-.2.5-.2.7-.4-.2-.9-.3-1.3-.4 0 0 0-.1-.1-.1-.4-.6-.5-1.7 0-2.3l.1-.1c.1 0 .1-.1.2-.1h.7zm-1.8.2c-.2.4-.2.8-.2 1.2 0 .5.1.9.3 1.3-.4.1-.8.2-1.2.5 0 0-.1 0-.1-.1-.3-.1-.5-.4-.7-.7-.2-.3-.4-.9-.2-1.2.2-.2.5-.3.7-.5.5-.1.9-.3 1.4-.5zm-20 .4.9.3c1.7.9 3.5 1.3 5.4 1.2.8-.1 1.6-.2 2.4-.5.6-.2 1.2-.4 1.8-.7l.9-.3c-.8 1.1-2 1.9-3.3 2.3 1.2-.2 2.4-.5 3.4-1 .5 1.3.9 3.1.6 5.5-.1.5-.2 1.1-.3 1.6-1.2-.7-2.9-.1-4.2.6-.2-2.4-.7-4.1-.9-4.7-.2-.6-.9-.5-.9.1.1.3.2.6.2.9.1.5.2 1 .2 1.4l.3 2.4v.5c-.8.1-1.5.1-2.3 0v-.5c0-.3.1-.7.1-1 .1-.5.1-1 .2-1.5s.1-1 .2-1.5c0-.2.1-.4.1-.7 0-.5-.3-.6-.5-.5-.2 0-.3.2-.4.4-.5 1.5-.7 3-.9 4.6-1.4-.9-2.6-1.2-4.2-.5-.1-.6-.2-1.1-.3-1.7-.3-2.6.1-4.5.7-5.8 1 .7 2.2 1.1 3.5 1.3-.9-.4-2-1.2-2.7-2.2zm24.8.8c.2 0 .3.1.4.2.8.8 1.4 1.8 1.5 2.8.1 1.2-1.8 2.1-2.6 1.3-.5-.5-.4-1.3-1.2-2.1V80c.1-1.1.9-2.2 1.9-2.1zm-7.6.5.3.9c.2.3.4.6.8.8-.1.1-.2.1-.2.2-.3.3-.5.5-.7.8h-.2c-.3 0-.6-.1-.8-.3-.2-.2-.6-.6-.6-.9.4-.5.8-1 1.4-1.5zm-2 2.3c.2.3.4.6.7.8.3.2.6.4.9.4-.5.7-1 1.5-1.4 2.3-.3-.5-.6-.9-1-1.2-.1-.1-.2-.2-.4-.3.3-.7.7-1.4 1.2-2zm-2 2.7c1 .5 1.6 1.5 1.7 2.7-.8.2-1.7.7-2.4 1 .3-1 .5-2.1.6-3.1.1-.2.1-.4.1-.6zm-15.4 0c0 .2 0 .4.1.6.1 1 .3 2.1.6 3.1-.7-.4-1.6-.8-2.4-1 .1-1.2.7-2.3 1.7-2.7zm3.1 2.8c.9 0 1.7.5 2.4 1 0 2.5.5 4.8.9 5.2.3.4.2 1.3.2 1.3s-4.3.1-4.8 0c-.4-.1-.9-1.4-.2-2.1.3-.3.8-.4 1.2-.4.8.2 1.4.7 2 1.4-.1-1.3-.8-1.6-1.3-1.9-.2-.1-.2-.1-.3-.3-.6-1.2-1.1-2.5-1.5-3.8.4-.3.9-.5 1.4-.4zm9.1 0c.5 0 1.1.1 1.5.4-.3 1.3-.8 2.6-1.5 3.8l-.3.3c-.5.3-1.2.6-1.3 1.9.6-.7 1.1-1.3 2-1.4.4 0 .9.1 1.2.4.7.7.2 2-.2 2.1-.4.1-4.8 0-4.8 0s-.2-.8.2-1.3c.3-.5.9-2.8.9-5.2.6-.6 1.5-1 2.3-1zm-14.4.6c.8.2 2.1.8 3.2 1.4.2.7.5 1.4.8 2.1-.4.1-.7.3-1 .6-.4.4-.6.9-.6 1.5h-4c-.4-.3 0-3.4 4-1.6-1-.7-2.4-1.6-2.4-4zm19.7 0c0 2.3-1.4 3.3-2.3 4 3.9-1.8 4.4 1.3 4 1.6h-4.1c0-1-.7-1.8-1.7-2.1.3-.7.6-1.3.8-2 1.2-.7 2.6-1.3 3.3-1.5zm-8.6.7c0 1-.1 1.9-.3 2.9-.1.3-.2 1.1-.4 1.4 0 .1-.1.1-.1.2h-.7c0-.1-.1-.2-.2-.3-.1-.1-.1-.3-.2-.5-.1-.4-.2-.9-.3-1.3-.1-.8-.2-1.7-.2-2.5.8.2 1.6.2 2.4.1z"})),s.createElement("path",{d:"m166.9 180.2 53.6 35.4h-10.7v53.9h-16.9v-40.3H141v40.3h-16.9v-53.9h-10.7l53.5-35.4zm-15.6 57h31.3v10.5h-31.3v-10.5zm0 21.8h31.3v10.5h-31.3V259z",style:{opacity:.2,fill:"#faad14"}}),de||(de=s.createElement("path",{className:"st1",d:"M19.2 310.1h1100v170H19.2z"})),Ee||(Ee=s.createElement("path",{className:"st0",d:"M236.5 330.3h280v59.8h-280zM39.5 329.8h180v130.1h-180zM526.5 330.1h280v59.8h-280zM816.5 330.1h280v59.8h-280zM236.5 400.1h280V460h-280zM526.5 400.1h280V460h-280zM816.5 400.1h280V460h-280z"})),oe||(oe=s.createElement("g",{id:"XMLID_1_",className:"st13"},s.createElement("text",{transform:"translate(622.437 365.966)",className:"st3 st6"},"\u4e91\u68af\u4f4e\u4ee3\u7801"))),ve||(ve=s.createElement("g",{id:"XMLID_32_"},s.createElement("path",{id:"XMLID_10_",className:"st32",d:"M583.2 376"}),s.createElement("path",{id:"XMLID_136_",className:"st32",d:"M602.9 353.5c-.9-5.4-5.6-9.5-11.2-9.5s-10.3 4.1-11.2 9.5c-5.4.8-9.6 5.5-9.6 11.2 0 5.9 4.6 10.8 10.4 11.3l.5-3.8c-4-.2-7.1-3.5-7.1-7.5 0-4.1 3.4-7.5 7.5-7.5h1.9v-1.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.4 7.5 7.5v1.9h1.9c4.1 0 7.5 3.4 7.5 7.5 0 4-3.2 7.3-7.1 7.5l.5 3.8c5.8-.5 10.4-5.4 10.4-11.3.1-5.6-4-10.3-9.4-11.2z"}))),pe||(pe=s.createElement("g",{id:"XMLID_6_"},s.createElement("path",{id:"XMLID_36_",className:"st33",d:"M596.4 376h3.8l-2.4-17.9h-3.3l.4 3.8h-6.5l.4-3.8h-3.3l-2.4 17.9h3.8l.4-3.8h8.6l.5 3.8zm-8.6-7.5.4-3.8h7.1l.4 3.8h-7.9z"}))),s.createElement("text",{transform:"translate(622.438 435.966)",id:"XMLID_53_",className:"st13"},_e||(_e=s.createElement("tspan",{x:0,y:0,className:"st3 st6"},"AP")),s.createElement("tspan",{x:26,y:0,className:"st3 st6",style:{letterSpacing:1}},"I"),fe||(fe=s.createElement("tspan",{x:32.3,y:0,className:"st3 st6"},"\u7f51")),s.createElement("tspan",{x:52.3,y:0,className:"st3 st6",style:{letterSpacing:-1}},"\u5173"),ze||(ze=s.createElement("tspan",{x:70.7,y:0,className:"st3 st6"}," TAMP "))),s.createElement("path",{id:"XMLID_169_",d:"m587.3 413.8-16.7 32.5h6.6l16.6-32.4-.1-.1h-6.4z",style:{opacity:.6,fill:"#4461eb",enableBackground:"new"}}),Ne||(Ne=s.createElement("path",{id:"XMLID_168_",className:"st32",d:"m593.9 413.8 16.7 32.5H604l-16.6-32.4.1-.1h6.4z"})),s.createElement("path",{id:"XMLID_166_",d:"m590.6 427.1-9.9 19.2h9.9v-19.2z",style:{opacity:.6,fill:"#29dd90"}}),Me||(Me=s.createElement("path",{id:"XMLID_165_",className:"st33",d:"m590.6 427.1 9.9 19.2h-9.9v-19.2z"})),Ie||(Ie=s.createElement("g",{id:"XMLID_44_",className:"st13"},s.createElement("text",{transform:"translate(326.226 366.13)",className:"st3 st6"},"\u670d\u52a1\u7f51\u683c TDSF"))),s.createElement("path",{id:"XMLID_300_",style:{opacity:.5,fill:"#4461eb"},d:"M297.3 346.4v-6.2l-14.8 8.7 5.3 3.1z"}),De||(De=s.createElement("path",{id:"XMLID_301_",className:"st32",d:"m309.8 352.3 5.3-3.1-15.2-8.9v6.2z"})),s.createElement("path",{id:"XMLID_302_",style:{opacity:.9,fill:"#4461eb"},d:"M310.9 354.6v10.8l5.3 3.1v-16.9z"}),ye||(ye=s.createElement("path",{id:"XMLID_303_",className:"st40",d:"m310 367.9-10.1 5.9v6.3l15.5-9.1z"})),s.createElement("path",{id:"XMLID_304_",style:{opacity:.7,fill:"#4461eb"},d:"m287.6 368.1-5.4 3.2 15.1 8.9v-6.3z"}),xe||(xe=s.createElement("path",{id:"XMLID_305_",className:"st42",d:"m286.3 354.1-5.3-3v17.8l5.3-3z"})),s.createElement("g",{id:"XMLID_306_",style:{opacity:.5}},ge||(ge=s.createElement("path",{id:"XMLID_67_",className:"st33",d:"M297.3 355.8v-6.3l-6.9 4 5.4 3.2z"}))),ue||(ue=s.createElement("g",{id:"XMLID_308_",className:"st44"},s.createElement("path",{id:"XMLID_65_",className:"st33",d:"m294.2 358.7-5.3-3.1v8.8l5.3-3.1z"}))),be||(be=s.createElement("g",{id:"XMLID_310_",className:"st13"},s.createElement("path",{id:"XMLID_63_",className:"st33",d:"m295.5 363.5-5.4 3.1 7.2 4.3v-6.3z"}))),Ve||(Ve=s.createElement("g",{id:"XMLID_312_",className:"st2"},s.createElement("path",{id:"XMLID_60_",className:"st33",d:"m302.1 363.3-2.2 1.3v6.2l7.6-4.4z"}))),s.createElement("g",{id:"XMLID_314_",style:{opacity:.9}},Se||(Se=s.createElement("path",{id:"XMLID_57_",className:"st33",d:"M303 359.2v1.6l5.3 3.1v-7.8z"}))),Le||(Le=s.createElement("g",{id:"XMLID_316_"},s.createElement("path",{id:"XMLID_56_",className:"st33",d:"m301.8 356.9 5.4-3.1-7.3-4.3v6.3z"}))),Xe||(Xe=s.createElement("g",{id:"XMLID_62_",className:"st13"},s.createElement("text",{transform:"translate(326.226 435.978)",className:"st3 st6"},"\u5fae\u670d\u52a1\u6846\u67b6 TMF"))),Ge||(Ge=s.createElement("path",{id:"XMLID_734_",className:"st33",d:"m298.6 436 2.6-1.5 7.4-4.3v9.6l-10 5.8z"})),He||(He=s.createElement("path",{id:"XMLID_732_",className:"st32",d:"m288.6 430 2.9 1.7 7.1 4.3v9.4l-10-5.7V430z"})),Ce||(Ce=s.createElement("path",{id:"XMLID_729_",className:"st46",d:"m308.6 420.4 2.6-1.5 7.4-4.2v9.6l-10 5.7z"})),we||(we=s.createElement("path",{id:"XMLID_728_",className:"st40",d:"m298.6 414.7 2.9 1.6 7.1 4.3v9.5l-10-5.8v-9.6z"})),ke||(ke=s.createElement("path",{id:"XMLID_725_",className:"st46",d:"m288.6 420.4 2.6-1.5 7.4-4.3v9.6l-10 5.8z"})),Pe||(Pe=s.createElement("path",{id:"XMLID_721_",className:"st40",d:"m278.6 414.5 2.9 1.6 7.1 4.3v9.5l-10-5.8v-9.6z"})),Ue||(Ue=s.createElement("g",{id:"XMLID_80_",className:"st13"},s.createElement("text",{transform:"translate(889.391 371.378)",className:"st3 st6"},"\u5e94\u7528\u6027\u80fd\u76d1\u63a7 TAPM"))),Oe||(Oe=s.createElement("path",{id:"XMLID_86_",className:"st42",d:"M841.7 362.1h5v18.6h-5z"})),Te||(Te=s.createElement("path",{id:"XMLID_92_",className:"st32",d:"M851.6 357.1h5v23.6h-5z"})),Be||(Be=s.createElement("path",{id:"XMLID_95_",className:"st42",d:"M861.5 362.1h5v18.6h-5z"})),Fe||(Fe=s.createElement("path",{id:"XMLID_93_",className:"st32",d:"M871.4 357.1h5v23.6h-5z"})),Ze||(Ze=s.createElement("circle",{id:"XMLID_114_",className:"st46",cx:864,cy:354,r:3.1})),je||(je=s.createElement("circle",{id:"XMLID_115_",className:"st33",cx:873.9,cy:349,r:3.1})),Ke||(Ke=s.createElement("circle",{id:"XMLID_108_",className:"st46",cx:844.1,cy:354,r:3.1})),Ae||(Ae=s.createElement("circle",{id:"XMLID_106_",className:"st33",cx:854.1,cy:349,r:3.1})),qe||(qe=s.createElement("g",{id:"XMLID_121_"},s.createElement("path",{id:"XMLID_42_",className:"st33",d:"m851 349.3-4.8 2.4c.6.5.9 1.2 1 2l4.8-2.4c-.6-.5-.9-1.2-1-2z"}))),We||(We=s.createElement("g",{id:"XMLID_463_"},s.createElement("path",{id:"XMLID_40_",className:"st33",d:"m857.1 349.3 4.8 2.4c-.6.5-.9 1.2-1 2l-4.8-2.4c.6-.5.9-1.2 1-2z"}))),Re||(Re=s.createElement("g",{id:"XMLID_457_"},s.createElement("path",{id:"XMLID_35_",className:"st33",d:"m870.9 349.3-4.8 2.4c.6.5.9 1.2 1 2l4.8-2.4c-.6-.5-1-1.2-1-2z"}))),Je||(Je=s.createElement("text",{transform:"translate(56.54 386.834)",className:"st32 st12 st4",id:"XMLID_150_"},"\u5b98\u65b9\u4ed3\u5e93")),Ye||(Ye=s.createElement("g",{id:"XMLID_201_",className:"st13"},s.createElement("text",{transform:"translate(56.54 419.625)",className:"st14 st15"},"\u63d0\u4f9b\u5f00\u6e90\u7ec4\u4ef6"))),s.createElement("path",{d:"m165.9 369.8 53.6 35.4h-10.7v53.9h-16.9v-40.3H140v40.3h-16.9v-53.9h-10.7l53.5-35.4zm-15.6 57h31.3v10.5h-31.3v-10.5zm0 21.8h31.3v10.5h-31.3v-10.5z",style:{opacity:.2,fill:"#4461eb"}}),Qe||(Qe=s.createElement("g",{id:"XMLID_7_",className:"st13"},s.createElement("text",{transform:"translate(894.919 243.106)",className:"st3 st6"},"\u66f4\u591a"))),$e||($e=s.createElement("g",{id:"XMLID_209_",className:"st13"},s.createElement("text",{transform:"translate(944.725 238.214)",className:"st3 st4"},"..."))),et||(et=s.createElement("g",{id:"XMLID_58_",className:"st13"},s.createElement("text",{transform:"translate(922.133 440.144)",className:"st3 st6"},"\u66f4\u591a"))),tt||(tt=s.createElement("g",{id:"XMLID_17_",className:"st13"},s.createElement("text",{transform:"translate(971.94 435.253)",className:"st3 st4"},"..."))),at||(at=s.createElement("g",{id:"XMLID_5_",className:"st13"},s.createElement("text",{transform:"translate(917.308 162.128)",className:"st3 st6"},"\u81ea\u5b9a\u4e49"))),st||(st=s.createElement("path",{className:"st44",d:"M902.5 153.4h-1.7v-4.6c0-1.3-1-2.3-2.3-2.3h-4.6v-1.7c0-1.6-1.3-2.9-2.9-2.9s-2.9 1.3-2.9 2.9v1.7h-4.6c-1.3 0-2.3 1-2.3 2.3v4.4h1.7c1.7 0 3.1 1.4 3.1 3.1 0 1.7-1.4 3.1-3.1 3.1h-1.7v4.4c0 1.3 1 2.3 2.3 2.3h4.4v-1.7c0-1.7 1.4-3.1 3.1-3.1s3.1 1.4 3.1 3.1v1.7h4.4c1.3 0 2.3-1 2.3-2.3v-4.6h1.7c1.6 0 2.9-1.3 2.9-2.9-.1-1.6-1.3-2.9-2.9-2.9z"})),lt||(lt=s.createElement("g",{className:"st2"},s.createElement("text",{transform:"translate(550.86 610.243)",className:"st3 st4"},"kubernetes"))),ct||(ct=s.createElement("path",{className:"st32",d:"m516.8 604-1.7 4c-1.6-1-2.8-2.5-3.5-4.3l4.3-.7c.4-.1.8.2.9.6.1.1 0 .3 0 .4zm-1.4-3.5c.4-.1.6-.5.5-.9 0-.1-.1-.3-.2-.4l-3.3-2.9c-1 1.6-1.4 3.5-1.2 5.4l4.2-1.2zm1.9-3.3c.3.2.8.2 1-.2.1-.1.1-.3.1-.4l.3-4.4c-1.9.2-3.7 1.1-5 2.4l3.6 2.6zm1.3 4.6 1.2.6 1.2-.6.3-1.3-.8-1h-1.3l-.8 1 .2 1.3zm2.5-5.2c0 .4.4.7.8.7.1 0 .3-.1.4-.1l3.6-2.5c-1.4-1.3-3.1-2.2-5-2.4l.2 4.3zm18.1 10-9.6 12c-.5.6-1.3 1-2.1 1h-15.4c-.8 0-1.6-.4-2.1-1l-9.6-12c-.5-.6-.7-1.4-.5-2.2l3.4-14.9c.2-.8.7-1.4 1.4-1.8l13.9-6.6c.7-.3 1.6-.3 2.3 0l13.9 6.6c.7.3 1.3 1 1.4 1.8l3.4 14.9c.3.7.1 1.5-.4 2.2zm-5.5-3.5c-.1 0-.2 0-.2-.1-.3-.1-.5 0-.8-.1-.6-.1-1.1-.1-1.5-.2-.2-.1-.3-.3-.4-.4l-.3-.1c.2-1.3.1-2.6-.2-3.9-.3-1.3-.8-2.5-1.6-3.6.1-.1.3-.2.3-.3 0-.2 0-.3.2-.5.3-.3.7-.6 1.2-.9.2-.1.5-.2.7-.4.1 0 .1-.1.2-.1.4-.3.5-.9.2-1.2-.3-.4-.8-.4-1.2-.1-.1 0-.1.1-.2.1-.2.2-.4.4-.5.6-.4.4-.8.8-1.1 1-.2.1-.4.1-.5.1l-.3.2c-1.8-1.9-4.3-3.1-6.9-3.3v-.4c-.1-.1-.2-.2-.3-.4 0-.4 0-.9.1-1.5 0-.3.1-.5.1-.8v-.2c0-.5-.4-.9-.8-.9-.5 0-.8.4-.8.9v.2c0 .3.1.5.1.8.1.6.1 1.1.1 1.5 0 .2-.1.3-.3.4v.4c-2.6.2-5.1 1.4-6.9 3.3-.1-.1-.2-.1-.3-.2-.2 0-.3.1-.5 0-.4-.3-.7-.6-1.1-1-.2-.2-.3-.4-.5-.6-.1-.1-.1-.1-.2-.1-.2-.1-.4-.2-.6-.2-.3 0-.5.1-.7.3-.3.4-.2.9.2 1.2l.2.1c.2.2.5.3.7.4.5.3.9.6 1.2.9.1.1.1.4.2.5l.3.2c-1.5 2.2-2.1 4.9-1.7 7.5l-.3.1c-.1.1-.2.3-.4.4-.4.1-.9.2-1.5.2-.3 0-.5 0-.8.1-.1 0-.1 0-.2.1-.5.1-.8.6-.7 1 .1.4.6.7 1.1.6h.2c.3-.1.5-.2.7-.3.6-.2 1-.4 1.5-.4.2 0 .4.1.5.2l.4-.1c.8 2.5 2.5 4.6 4.8 6l-.1.4c.1.1.1.3.1.5-.2.4-.4.9-.8 1.4-.2.2-.3.4-.4.7 0 .1-.1.2-.1.2-.2.5-.1 1 .4 1.2.4.2.9 0 1.2-.5 0-.1.1-.2.1-.2.1-.3.2-.5.2-.8.2-.6.3-1.1.6-1.5.1-.1.2-.1.4-.2l.2-.3c2.5 1 5.2 1 7.7 0l.2.3c.1 0 .3.1.4.3.2.4.4.8.6 1.4.1.3.1.5.2.8 0 .1.1.2.1.2.2.5.7.7 1.2.5.4-.2.6-.7.4-1.2 0-.1-.1-.2-.1-.2-.1-.3-.3-.4-.4-.7-.3-.5-.6-.9-.7-1.3-.1-.2 0-.4.1-.5 0 0-.1-.2-.1-.3 2.3-1.4 4-3.5 4.8-6 .1 0 .3 0 .4.1.1-.1.2-.2.5-.2.4.1.9.2 1.5.4.3.1.5.2.7.3h.2c.5.1 1-.2 1.1-.6-.7-.6-1-1.1-1.5-1.2zm-6.6-6.8-3.3 2.9c-.3.3-.3.7-.1 1 .1.1.2.2.4.2l4.2 1.2c.1-.9 0-1.9-.2-2.8-.1-.8-.5-1.7-1-2.5zm-6.7 8.9c-.1-.2-.4-.4-.7-.4-.3 0-.5.2-.6.4L517 609c1.8.6 3.7.6 5.5 0l-2.1-3.8zm3.2-2.2c-.2 0-.3 0-.5.1-.4.2-.5.6-.4 1l1.7 4.1c1.6-1 2.8-2.6 3.5-4.4l-4.3-.8z"})))};var nt,ht,it,dt,Et,ot,vt,pt,_t,ft,zt,Nt,Mt,It,Dt,yt,xt,gt,ut,bt,Vt,St,Lt,Xt,Gt,Ht,Ct,wt,kt,Pt,Ut,Ot,Tt,Bt,Ft,Zt,jt,Kt,At,qt,Wt,Rt,Jt,Yt,Qt,$t,ea,ta,aa,sa,la,ca,ma,ra,na,ha,ia,da,Ea,oa,va,pa,_a,fa,za,Na,Ma,Ia,Da,ya,xa,ga,ua,ba,Va,Sa,La,Xa,Ga,Ha,Ca,wa,ka,Pa,Ua,Oa,Ta,Ba,Fa,Za,ja,Ka,Aa,qa,Wa,Ra,Ja,Ya,Qa,$a,es,ts,as,ss,ls,cs,ms,rs,ns,hs,is,ds,Es;function os(){return os=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:a,...l}=e;return s.createElement("svg",os({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 1220 660",style:{enableBackground:"new 0 0 1220 660"},xmlSpace:"preserve","aria-labelledby":a},l),t?s.createElement("title",{id:a},t):null,nt||(nt=s.createElement("style",null,".st0{fill:#f5f7fc}.st1{fill:#fff}.st2{opacity:.8}.st3{font-family:'PingFang-SC-Bold'}.st4{font-size:24px}.st5{opacity:.7}.st6{font-family:'PingFang-SC-Medium'}.st7{font-size:20px}.st14{fill:#326ce6}.st19{fill:#4461eb}.st29{opacity:.1}.st29,.st31{fill:#29dd90}.st33{fill:#3e9fd8}.st37{fill:none;stroke:#fff;stroke-miterlimit:10}.st48{fill:#274872}.st49{fill:#5783ab}.st50{fill:#eaecec}.st52{opacity:.4;fill:#f4ea2a;enable-background:new}")),s.createElement("g",{id:"\\u56FE\\u5C42_1"},ht||(ht=s.createElement("path",{className:"st0",d:"M0 0h1220v660H0z"})),it||(it=s.createElement("path",{className:"st1",d:"M20.2 20.1h639.9v230H20.2z"})),dt||(dt=s.createElement("path",{className:"st0",d:"M40.3 40.1h600v190h-600z"})),Et||(Et=s.createElement("path",{className:"st1",d:"M377.2 160.1H142.4c-1.4 0-2.6-1.2-2.6-2.6v-44.8c0-1.4 1.2-2.6 2.6-2.6h234.8c1.4 0 2.6 1.2 2.6 2.6v44.8c0 1.4-1.2 2.6-2.6 2.6zM377.2 100.1H142.4c-1.4 0-2.6-1.2-2.6-2.6V52.7c0-1.4 1.2-2.6 2.6-2.6h234.8c1.4 0 2.6 1.2 2.6 2.6v44.8c0 1.4-1.2 2.6-2.6 2.6zM627.2 100.1H392.4c-1.4 0-2.6-1.2-2.6-2.6V52.7c0-1.4 1.2-2.6 2.6-2.6h234.8c1.4 0 2.6 1.2 2.6 2.6v44.8c0 1.4-1.2 2.6-2.6 2.6z"})),ot||(ot=s.createElement("text",{transform:"translate(65.793 127.546)",id:"XMLID_140_",className:"st2"},s.createElement("tspan",{x:0,y:0,className:"st3 st4"},"\u539f\u751f"),s.createElement("tspan",{x:0,y:28.8,className:"st3 st4"},"\u7ec4\u4ef6"))),vt||(vt=s.createElement("g",{id:"XMLID_134_",className:"st5"},s.createElement("text",{transform:"translate(250.343 81.035)",className:"st6 st7"},"jupyter"))),s.createElement("path",{d:"M206.9 76c0 1.3-.1 1.7-.3 1.9-.3.2-.6.4-1 .4l.1.7c.6 0 1.2-.2 1.6-.6.2-.3.4-.6.6-1 .1-.4.2-.7.1-1.1v-4.7h-1V76zm7.1-.6c0 .6 0 1 .1 1.4h-.9l-.1-.9c-.2.3-.4.6-.7.7-.3.2-.6.2-1 .2-.8 0-1.8-.5-1.8-2.2v-3h1v2.9c0 1 .3 1.7 1.2 1.7.2 0 .3 0 .5-.1s.3-.2.4-.3c.2-.2.2-.2.3-.4s.1-.3.1-.5v-3.2h1v3.7zm4.5-3.8c-.4 0-.7.1-1 .2-.3.2-.6.5-.8.8l-.1-.9h-.9c.1.5.1 1 .1 1.7V79h1v-2.9c.2.2.4.5.7.6.3.2.6.2.9.2 1.2 0 2.4-1 2.4-2.8 0-1.5-1-2.5-2.3-2.5zm-.2 4.6c-.3 0-.6-.1-.9-.3-.2-.2-.5-.5-.6-.8 0-.2-.1-.2-.1-.4v-.9c0-.4.2-.8.5-1 .2-.3.6-.5 1-.5 1 0 1.5.9 1.5 1.9.1 1.2-.5 2-1.4 2zm4.1-4.6 1.1 3c.2.3.2.7.3 1 .1-.3.2-.7.3-1.1l1-3h1l-1.4 3.7c-.7 1.8-1.1 2.7-1.8 3.3-.3.3-.7.5-1.2.6l-.2-.8c.3-.1.6-.2.8-.5.3-.3.6-.6.8-1 0-.1.1-.2.1-.2s0-.2-.1-.2l-1.9-4.8h1.2zm6.4-1.5v1.5h1.4v.7h-1.4v2.8c0 .6.2 1 .7 1 .2 0 .4 0 .6-.1l.1.7c-.2.1-.6.2-.9.2-.2 0-.4 0-.6-.1-.2-.1-.3-.2-.5-.3-.3-.4-.4-.9-.4-1.4v-2.9h-.8v-.7h.8v-1.3l1-.1zm6.8 3.9c0-1-.4-2.5-2.2-2.5-1.5 0-2.5 1.2-2.5 2.8 0 .3 0 .7.2 1 .2.3.3.6.6.9.2.2.6.5.9.6.3.2.6.2 1 .2.6 0 1.2-.1 1.8-.3l-.2-.7c-.5.2-1 .3-1.4.2-.2 0-.5 0-.7-.1s-.4-.2-.6-.4c-.2-.2-.3-.4-.4-.6-.1-.2-.1-.5-.1-.7h3.7V74zm-.9-.3h-2.8c0-.4.2-.8.4-1 .2-.3.6-.5 1-.5.2 0 .4.1.6.2.2.1.3.2.5.3s.2.3.2.5c.2.1.2.3.1.5zm2.4-.5c0-.6 0-1.1-.1-1.6h.9v1h.1c.1-.3.2-.6.6-.8.2-.2.6-.3.9-.3h.2v.9h-.3c-.3 0-.6.2-.9.4s-.4.6-.4.9c0 .2-.1.3-.1.5V77h-1l.1-3.8z",style:{fill:"#4e4e4e"}}),s.createElement("path",{d:"M236.7 57.3c0 .5-.1 1-.3 1.4s-.6.7-1 1c-.4.2-.9.3-1.4.2-.5-.1-.9-.2-1.3-.6s-.6-.7-.7-1.2c-.1-.5-.1-1 .1-1.4.2-.5.5-.9.9-1.1.4-.3.9-.5 1.4-.5.3 0 .6 0 1 .2.3.2.6.2.8.5.2.2.4.5.6.7-.2.2-.1.5-.1.8z",style:{fill:"#767677"}}),s.createElement("path",{d:"M222.6 85.2c-6.4 0-12.1-2.3-14.9-5.7 1.1 3 3.2 5.7 5.8 7.5 2.6 1.8 5.8 2.9 9.1 2.9s6.4-1 9.1-2.9c2.6-1.8 4.7-4.5 5.8-7.5-2.8 3.4-8.4 5.7-14.9 5.7zm0-22c6.4 0 12.1 2.3 14.9 5.7-1.1-3-3.2-5.7-5.8-7.5-2.6-1.8-5.8-2.9-9.1-2.9s-6.4 1-9.1 2.9c-2.6 1.8-4.7 4.5-5.8 7.5 2.9-3.5 8.5-5.7 14.9-5.7z",style:{fill:"#f37726"}}),s.createElement("path",{d:"M208.4 62.4c-.3 0-.7-.1-1-.2-.3-.2-.6-.5-.6-.8-.2-.3-.2-.6-.2-1 .1-.3.2-.6.5-.9s.6-.4.9-.5.7-.1 1 .1c.3.2.6.3.8.6.2.3.3.6.3 1 0 .5-.2 1-.5 1.3-.3.1-.8.4-1.2.4z",style:{fill:"#616262"}}),s.createElement("path",{d:"M213.8 91.9c0 .6-.1 1.2-.4 1.8s-.7 1-1.3 1.2c-.6.2-1.1.3-1.8.2-.6-.1-1.1-.3-1.6-.7-.5-.4-.8-1-.9-1.5-.2-.6-.1-1.2.1-1.8s.6-1 1-1.4c.5-.3 1-.6 1.7-.6.4 0 .8 0 1.2.2.4.2.7.3 1 .6.3.2.6.6.7 1 .1.2.2.6.3 1z",style:{fill:"#9e9e9e"}}),pt||(pt=s.createElement("path",{className:"st1",d:"M626.1 220.1H143.5c-2.1 0-3.7-1.7-3.7-3.7v-42.5c0-2.1 1.7-3.7 3.7-3.7H626c2.1 0 3.7 1.7 3.7 3.7v42.5c.1 2-1.6 3.7-3.6 3.7z"})),_t||(_t=s.createElement("g",{id:"XMLID_142_",className:"st5"},s.createElement("text",{transform:"translate(259.216 141.035)",className:"st6 st7"},"minio"))),s.createElement("path",{d:"m246.7 125-16.2 8.7c-.2.1-.5.1-.8 0l-16.2-8.7c-.4-.2-.8-.3-1.2-.3-1.2-.1-2.1.8-2.2 2v18.8h8v-8.9c.1-.4.5-.8.9-.7.1 0 .2.1.3.1l9.1 4.9c.9.5 2 .5 2.9 0l9.6-4.9c.4-.2.9-.1 1.1.3.1.1.1.2.1.3v9h8v-18.8c-.1-1.1-1.1-2-2.2-2-.4-.1-.8 0-1.2.2z",style:{fill:"#c72c48"}}),ft||(ft=s.createElement("path",{className:"st1",d:"m448.9 166.5-.5.4h-.6l-.4-.4v-.7l.4-.4h.7l.4.4zM466.4 165.8l.4-.4h.6l.5.4v.7l-.5.4h-.6l-.4-.4z"})),zt||(zt=s.createElement("g",{id:"XMLID_125_",className:"st5"},s.createElement("text",{transform:"translate(338.902 202.222)",className:"st6 st7"},"chartmuseum"))),Nt||(Nt=s.createElement("path",{className:"st14",d:"M306.8 187.3h-3.5c-.5 0-.9.4-.9.9s.4.9.9.9h3.5c.5 0 .9-.4.9-.9s-.4-.9-.9-.9zM301.8 182h3.5c.3 0 .6-.2.8-.4.2-.3.2-.6 0-.9-.2-.3-.5-.5-.8-.4h-3.5c-.3 0-.6.2-.8.4-.2.3-.2.6 0 .9.1.3.4.5.8.4zM301.8 185.6h5c.5 0 .9-.4.9-.9s-.4-.9-.9-.9h-5c-.3 0-.6.2-.8.4-.2.3-.2.6 0 .9.1.3.4.5.8.5zM312.9 195.2h-19.5c-.4 0-.7.1-1.1.3-.9.5-1.5 1.6-1.2 2.6.2 1.1 1.1 1.8 2.2 1.9 1.1.1 2-.6 2.4-1.6v6.1c.8.7 1.6 1.2 2.5 1.7v-8.5h2.5v10.7c.8.3 1.6.4 2.5.5v-11.3h2.5V209c.8-.1 1.7-.3 2.5-.5v-10.7h2.5v8.5c.9-.5 1.7-1 2.5-1.7v-6.8c.1 1.2 1 2.2 2.2 2.3 1.2.1 2.3-.8 2.5-2 .2-1.2-.5-2.4-1.6-2.7-.2-.1-.3-.1-.5-.1h-2.9z"})),Mt||(Mt=s.createElement("path",{className:"st14",d:"M323.8 195.1c-.7 0-1.5.1-2.2.2-.2-2.8-1-5.6-2.5-8 .7-.3 1.3-.7 1.9-1.2 1.9-1.5 3-3.3 2.4-4-.5-.7-2.5-.1-4.4 1.4-.6.4-1.1.9-1.5 1.5-.7-.9-1.6-1.7-2.5-2.4-1.2-.9-2.4-1.7-3.8-2.3 0 0-.1 0-.1-.1-.7-2.5-2.9-4.2-5.5-4.2h-6.3c-1.2 0-2.1 1-2.1 2.1v2.1c-1.3.6-2.6 1.4-3.7 2.3-.9.7-1.8 1.6-2.6 2.5-.5-.6-1-1.1-1.6-1.6-1.9-1.5-3.9-2.1-4.4-1.4-.5.7.5 2.5 2.5 4 .6.5 1.3.9 2 1.3-1.4 2.4-2.3 5.1-2.4 7.9-.8-.2-1.6-.3-2.4-.3-2.4 0-4.4.7-4.4 1.6 0 .9 2 1.6 4.4 1.6.8 0 1.7-.1 2.5-.3.2 2.6 1.1 5.2 2.4 7.4-.7.3-1.4.8-2.1 1.3-1.9 1.5-3 3.3-2.4 4 .5.7 2.5.1 4.4-1.4.6-.5 1.2-1 1.7-1.6.3.3.5.6.8.9 3.2 3.4 7.6 5.3 12.2 5.4h.2c4.6 0 8.9-1.8 12.2-5 .3-.3.7-.7 1-1.1.5.5 1 1 1.6 1.5 1.9 1.5 3.9 2.1 4.4 1.4.5-.7-.5-2.5-2.4-4-.6-.5-1.2-.9-1.9-1.2 1.4-2.3 2.2-4.8 2.5-7.5.7.2 1.5.2 2.3.2 2.4 0 4.4-.7 4.4-1.6-.2-.6-2.2-1.4-4.6-1.4zm-24.1-16.4h5.9c1.8 0 3.2 1.5 3.2 3.3v8.8h-5.9c-1.8 0-3.2-1.5-3.2-3.3v-8.8zm15 28.5c-4.2 4.1-10.3 5.4-15.7 3.3-5.4-2.1-9.2-7.2-9.5-13.1-.4-5.9 2.7-11.4 7.8-14.2v4.3c0 3.2 2.6 5.8 5.7 5.8h6.3c1.2 0 2.1-1 2.1-2.1v-8c4.8 2.6 7.8 7.7 7.8 13.3 0 4-1.6 7.9-4.5 10.7z"})),It||(It=s.createElement("path",{className:"st1",d:"M627.2 160.1H392.4c-1.4 0-2.6-1.2-2.6-2.6v-44.8c0-1.4 1.2-2.6 2.6-2.6h234.8c1.4 0 2.6 1.2 2.6 2.6v44.8c0 1.4-1.2 2.6-2.6 2.6z"})),Dt||(Dt=s.createElement("g",{id:"XMLID_132_",className:"st5"},s.createElement("text",{transform:"translate(501.942 82.223)",className:"st6 st7"},"harbor"))),yt||(yt=s.createElement("path",{className:"st1",d:"M460.9 76.3c0 8 6.4 14.4 14.4 14.4s14.4-6.4 14.4-14.4-6.4-14.4-14.4-14.4-14.4 6.4-14.4 14.4z"})),s.createElement("linearGradient",{id:"SVGID_1_",gradientUnits:"userSpaceOnUse",x1:467.204,y1:80.639,x2:475.027,y2:80.639},s.createElement("stop",{offset:.002,style:{stopColor:"#9fe576"}}),s.createElement("stop",{offset:1,style:{stopColor:"#3d8634"}})),s.createElement("path",{d:"M467.5 71.7v-1l3.1-3.1v-.3c0-.2.2-.4.4-.4s.4.2.4.4v.3l3.1 3.1v1h-.5v3.5h.5v1.7h-.5l1 17.4c-1.6-.1-3-.3-4.2-.6-1.2-.3-2.4-.7-3.6-1.4l1.2-15.5h-.8v-1.7h.6v-3.5h-.7z",style:{fill:"url(#SVGID_1_)"}}),xt||(xt=s.createElement("path",{className:"st1",d:"m468.2 79.1 6.1 2.7.1.9-6.2-2.8v-.8zm-.2 2.1 6.4 2.9.1 1-6.5-2.9v-1zm-.1 2.4 6.7 3.1.1 1-6.9-3.1.1-1zm-.2 2.5 7 3.2.1 1-7.2-3.2.1-1zm1.3-14.4h4.1v3.5h-1v-1.5c0-.6-.5-1-1-1-.6 0-1 .5-1 1v1.5h-1v-3.5z"})),s.createElement("path",{d:"M475.3 58.3c-9.9 0-18 8.1-18 18s8.1 18 18 18 18-8.1 18-18c0-10-8.1-18-18-18zm14.4 18c0 8-6.4 14.4-14.4 14.4s-14.4-6.4-14.4-14.4 6.4-14.4 14.4-14.4 14.4 6.4 14.4 14.4z",style:{fill:"#696566"}}),s.createElement("linearGradient",{id:"SVGID_2_",gradientUnits:"userSpaceOnUse",x1:474.697,y1:70.945,x2:493.304,y2:70.945},s.createElement("stop",{offset:.002,style:{stopColor:"#4596d8"}}),s.createElement("stop",{offset:1,style:{stopColor:"#fff"}})),s.createElement("path",{d:"m474.7 72.6 10.8-11.1c.8.6 1.5 1.1 2.1 1.7.6.6 1.2 1.2 1.8 1.9l-14.7 7.5zm.6.7 16.1-5c.4.8.8 1.6 1 2.3.2.7.4 1.5.5 2.2l-17.6.5zm-.3.9 18.3 1.4c0 .6 0 1.4-.1 2.3-.1.9-.2 1.8-.4 2.5L475 74.2z",style:{fill:"url(#SVGID_2_)"}}),gt||(gt=s.createElement("g",{id:"XMLID_110_",className:"st5"},s.createElement("text",{transform:"translate(497.044 142.222)",className:"st6 st7"},"grafana"))),s.createElement("path",{d:"M488 132.8c-.1-.7-.2-1.5-.4-2.3-.2-.9-.6-1.8-1-2.8-.5-1-1.1-2-1.9-2.9-.3-.4-.7-.7-1-1.1.6-2.2-.7-4.2-.7-4.2-2.2-.1-3.5.7-4 1-.1 0-.2-.1-.2-.1-.4-.1-.7-.3-1.1-.4l-1.2-.3c-.4-.1-.8-.2-1.2-.2h-.2c-.9-3-3.6-4.3-3.6-4.3-3.1 2-3.7 4.6-3.7 4.6v.1c-.2 0-.3.1-.5.1-.2.1-.5.1-.7.2-.2.1-.5.2-.7.3-.5.2-.9.4-1.3.7-.4.2-.8.5-1.2.8-.1 0-.1-.1-.1-.1-4.2-1.6-7.8.3-7.8.3-.3 4.4 1.7 7.2 2.1 7.7-.1.3-.2.5-.3.8-.3 1-.5 2-.7 3.1 0 .1 0 .3-.1.5-3.8 1.9-5 5.8-5 5.8 3.2 3.7 7 3.9 7 3.9.5.9 1 1.7 1.6 2.4.2.3.5.6.8.9-1.2 3.3.2 6.1.2 6.1 3.6.1 5.9-1.6 6.4-2l1.1.3c1.1.3 2.2.5 3.3.5h1.5c1.7 2.4 4.6 2.7 4.6 2.7 2.1-2.2 2.2-4.4 2.2-4.9.4-.3.9-.6 1.3-1 .9-.7 1.6-1.6 2.2-2.6.1-.1.1-.2.2-.2 2.4.1 4-1.5 4-1.5-.4-2.5-1.8-3.7-2.1-3.9v-2.5l-.1-.4c0-.3-.1-.5-.1-.8-.2-1-.7-2.1-1.2-3-.6-.9-1.2-1.7-2-2.4s-1.6-1.2-2.6-1.6c-.9-.4-1.8-.7-2.8-.8-.5-.1-1-.1-1.4-.1h-.7c-.2 0-.5.1-.7.1-1 .2-1.8.5-2.6 1s-1.5 1.1-2 1.7c-.6.6-1 1.4-1.3 2.2-.3.7-.5 1.6-.5 2.3v1.2c.1 1.1.5 2.1 1.2 3 .4.6.9 1 1.4 1.3.5.4 1.1.6 1.6.8.6.2 1.1.2 1.6.2H474.7c.1 0 .2-.1.4-.1.2-.1.4-.2.6-.2.2-.1.4-.2.5-.3l.1-.1c.2-.1.2-.4.1-.6-.1-.1-.3-.2-.5-.1 0 0-.1 0-.1.1-.1.1-.3.1-.5.2-.2 0-.4.1-.5.1H473.7c-.4-.1-.8-.2-1.2-.4-.4-.2-.8-.4-1.1-.7-.4-.3-.6-.7-.9-1.1-.2-.4-.4-.9-.5-1.3 0-.2-.1-.5 0-.7v-.8c0-.1 0-.2.1-.4.2-1.1.7-2.1 1.5-2.9.2-.2.4-.4.7-.5.2-.2.5-.3.7-.4s.5-.2.8-.3c.3-.1.6-.1.9-.1H475.5c.9.1 1.9.4 2.7.8 1.1.6 2.1 1.6 2.7 2.8.3.6.5 1.2.6 1.9 0 .2 0 .3.1.5v1.4c0 .2 0 .4-.1.5l-.1.5c0 .2-.2.7-.3 1-.1.4-.6 1.3-1 1.9-.9 1.2-2 2.1-3.3 2.7-.7.3-1.3.5-2.1.6-.4.1-.7.1-1.1.1h-1.1c-.8-.1-1.5-.2-2.3-.4s-1.5-.5-2.1-.9c-1.4-.7-2.5-1.7-3.5-2.9-.5-.6-.9-1.2-1.2-1.9-.4-.7-.6-1.4-.8-2.1-.2-.7-.3-1.5-.4-2.2v-1.1c0-.4 0-.7.1-1.1 0-.4.1-.7.2-1.1.1-.4.2-.7.3-1.1s.5-1.5.8-2.1c.6-1.3 1.5-2.6 2.4-3.5.2-.2.5-.5.8-.7.1-.1.4-.3.6-.5.3-.2.6-.4.9-.5.1-.1.3-.1.5-.2.1 0 .1-.1.2-.1s.1-.1.2-.1c.3-.1.6-.2 1-.4.1 0 .2 0 .2-.1.1 0 .2 0 .2-.1.1 0 .3-.1.5-.1.1 0 .2 0 .2-.1h.4l.3-.1H474.9c.6 0 1.3.1 1.9.2 1.2.2 2.3.6 3.4 1.1 1 .5 1.9 1.1 2.8 1.8l.1.1.1.1c.1.1.2.2.3.2s.2.2.3.2c.1.1.2.2.2.3.9 1 1.7 2.1 2.3 3.3 0 0 0 .1.1.1 0 0 0 .1.1.1 0 .1.1.2.1.2 0 .1.1.2.1.2 0 .1.1.2.1.2.1.3.2.6.4 1 .2.5.3.9.4 1.3 0 .1.2.2.3.2.2 0 .3-.1.3-.3-.2-.2-.2-.7-.2-1.2z",style:{fill:"#f07f0e"}}),ut||(ut=s.createElement("path",{className:"st1",d:"M570.4 290.1h280v270h-280z"})),bt||(bt=s.createElement("path",{className:"st0",d:"M591.2 310.1h240v110h-240zM591.2 430.6h240v110h-240z"})),Vt||(Vt=s.createElement("g",{id:"XMLID_163_",className:"st5"},s.createElement("text",{transform:"translate(675.948 518.244)",className:"st6 st4"},"tekton"))),St||(St=s.createElement("path",{d:"M692.7 446.6c-.8 0-1.4.5-1.6 1.2-.4 1.5-.5 3-.3 4.5s.7 3 1.4 4.3c.5.9 1 1.7 1.7 2.4-.1.5-.2 1-.2 1.4-.1.8-.1 1.7-.1 2.5 0 .3 0 .7.1 1 .1 1 1 2.2 1.6 2.9 1 1.3 2.3 2.3 3.7 3.1 0 .1 0 .1.1.2.2.3.3.6.6.9-.5 1-.8 2-.9 3.1-.2.8-.3 1.6-.3 2.4-.3.1-.6.3-.8.5-.7.6-1.3 1.4-1.6 2.3-.1.2-.2.5-.2.8l-.4-.1v.3c-.2 1.3-.1 2.5.4 3.7-.5.1-.9.2-1.3.5-.3.2-.5.5-.6.8-.3.6-.5 1.3-.5 2 0 .5.2 1 .5 1.3.2.2.5.3.8.3h4.3c.3.7.8 1.3 1.5 1.5.2 0 .4.1.6.1h5.1c.5 0 1-.3 1.2-.8.2.5.7.8 1.3.8H713.9c.2 0 .4 0 .6-.1.7-.2 1.2-.8 1.5-1.5h4.4c.3 0 .6-.1.8-.3.4-.3.6-.8.6-1.3 0-.7-.3-1.4-.5-2-.4-.9-1.1-1.3-2-1.4.5-1.2.6-2.3.4-3.7v-.3l-.4.1v-.2c.2-.6.5-1.1.8-1.6.4-.7.9-1.3 1.4-2 .3-.3.5-.6.8-.9.5-.5 1.2-.9 2-1 .5 0 1.1.1 1.5.4.3.2.5.5.6.9.3.6.4 1.1.9 1.6.9.8 2.2.9 3.3.4.8-.4 1.5-1.1 1.7-2 .1-.3.1-.5.1-.8-.2-1.7-1.2-3.2-2.5-4.3-1.2-1-2.7-1.7-4.2-1.7-1.4 0-2.9.4-4.1 1.1-2.1 1.2-3.8 3.1-5.1 5.2 0-.3-.1-.6-.2-1-.1-.6-.2-1.2-.4-1.8-.1-.3-.2-.6-.3-.8.2-.2.3-.4.5-.6.1-.2.3-.5.4-.7l.1-.2c1.4-.8 2.7-1.9 3.7-3.1.6-.8 1.5-1.9 1.6-2.9 0-.3.1-.7.1-1 0-.8 0-1.7-.1-2.5-.1-.5-.1-.9-.2-1.4.6-.7 1.2-1.5 1.7-2.4.7-1.3 1.2-2.8 1.4-4.3.2-1.5.1-3-.3-4.5-.2-.7-.9-1.3-1.6-1.3-2.9 0-5.3 1.2-7.6 2.7-4.3-2.6-9.8-2.6-14.1 0-3.2-1.5-5.7-2.7-8.5-2.7zm0 1.7h.1c1.6.9 3 2.6 4.1 4.4-.2.3-.4.6-.6.8-.8 1.2-1.4 2.4-1.8 3.8-1.3-1.7-2.9-4.9-1.8-9zm29.2 0h.1c1.1 4.1-.5 7.3-1.8 9-.4-1.4-1.1-2.7-1.9-3.9-.2-.2-.3-.5-.5-.7 1.1-1.8 2.5-3.6 4.1-4.4zm-26.8.3c1.4.4 2.8 1.1 4 1.9-.5.4-1 .9-1.5 1.4-.2-.4-.5-.8-.8-1.2-.5-.8-1.1-1.5-1.7-2.1zm24.5 0c-.7.6-1.3 1.3-1.8 2.1-.3.4-.5.8-.8 1.2-.4-.5-.9-.9-1.5-1.4 1.4-.8 2.7-1.5 4.1-1.9zm-12.6.3v4.8c-2.5.1-5 .8-6.6 2.1-1.8 1.6-2.9 4.3-2.8 5.7.1 1.3 2.2 2.1 4.9 2.6-.1.2-.2.5-.3.8-.1.4-.1.8 0 1.2-.9-.1-1.9-.3-2.8-.4-1.5-.3-2.9-.7-4.3-1.3-.1-.1-.1-.3-.1-.4 0 0-.6-5.2 2.3-9.6 2.4-3.6 6.1-5.4 9.7-5.5zm.7 0c3.6.1 7.2 1.8 9.5 5.2 3 4.4 2.4 9.7 2.4 9.7 0 .1 0 .3-.1.4-1.4.5-2.8 1-4.3 1.3-.8.2-1.7.3-2.8.4.1-.4.1-.8 0-1.2 0-.3-.1-.5-.3-.8 2.7-.4 4.8-1.3 4.9-2.6.1-1.4-1.1-4.1-2.8-5.7-1.5-1.3-4-2.1-6.6-2.1v-4.6zm-1.6 1.3c-.2 0-.4.2-.4.4 0 .4.4.5.7.3.2-.2.2-.4 0-.6-.1 0-.2-.1-.3-.1zm2.5 0c-.2 0-.4.2-.4.4 0 .4.4.5.7.3.2-.2.2-.4 0-.6-.1 0-.2-.1-.3-.1zm-2.5 1.8c-.2 0-.4.2-.4.4 0 .4.4.5.7.3.3-.3.1-.7-.3-.7zm2.5 0c-.2 0-.4.2-.4.4.2 0 .4-.2.4-.4zm-6.5 6.9c.6 0 1.2.3 1.6.7.4.5.6 1.1.6 1.7 0 .2-.2.4-.4.4s-.4-.2-.4-.4c0-.4-.1-.9-.4-1.2-.2-.3-.6-.5-1-.5-.2 0-.5.1-.7.2-.2.2-.4.4-.5.6-.1.2-.3.3-.5.2-.2-.1-.3-.3-.2-.5.2-.4.5-.7.8-1 .3-.1.7-.2 1.1-.2zm10.5 0c.4 0 .8.1 1.1.4.3.2.6.6.8 1 .1.2 0 .4-.2.5-.2.1-.4 0-.5-.2-.1-.3-.3-.5-.5-.6-.2-.1-.4-.2-.7-.2-.4 0-.7.2-1 .5-.3.3-.4.8-.4 1.2 0 .2-.2.4-.4.4s-.4-.2-.4-.4c0-.6.2-1.2.6-1.7.4-.7 1-.9 1.6-.9zm-5.3 4c1.8 0 4 .8 4.2 2.1.2 1.3-.5 2.1-1.6 2.6-1.6.6-2.1-.2-2.4-.7l-.2-.4s-.1.1-.2.4c-.3.4-.8 1.1-1.9.9-1.3-.4-2.3-1.3-2.1-2.8.3-1.3 2.5-2.1 4.2-2.1zm0 .6c-1.1 0-2.4.3-2.5 1-.2 1.1 1.4 1.7 2.5 1.6 1.1 0 2.7-.5 2.5-1.7-.1-.6-1.4-.9-2.5-.9zm-11.7 1.7c1.2.4 2.4.8 3.7 1 1 .2 2.1.4 3.1.5 0 .1.1.2.2.3.5.8 1.3 1.4 2.3 1.7-.5.2-.9.5-1 1 0 .2 0 .4.1.6-.7-.1-1.5-.3-2.2-.6-2.2-.8-4.1-2-5.5-3.8-.3-.2-.5-.4-.7-.7zm23.4 0c-.1.2-.3.4-.5.6-.8 1-1.7 1.9-2.8 2.6-1.5 1-3.2 1.6-5 2 .1-.2.1-.4.1-.7-.1-.5-.5-.8-1-1 .9-.3 1.8-.9 2.3-1.7.1-.1.1-.2.1-.3 1.1-.1 2.1-.3 3.1-.5 1.3-.2 2.6-.6 3.7-1zm-11.6 4.1c1.4 0 2.7.3 2.5.8-.1.3-.5.4-.9.6-.5.1-1.1.1-1.6.1s-1.1-.1-1.6-.1c-.4-.1-.8-.4-.9-.6-.3-.6 1.1-.8 2.5-.8zm17.7.9c.9 0 1.7.3 2.6.8-.8.2-1.5.9-1.9 1.7-.1.3-.2.5-.2.8-.4-.2-.9-.4-1.4-.4 0 0 0-.1-.1-.1-.5-.7-.6-1.9 0-2.5l.1-.1c.1-.1.1-.1.2-.1.2-.1.5-.1.7-.1zm-2 .3c-.2.4-.3.9-.2 1.3 0 .5.1 1 .4 1.4-.4.1-.9.3-1.3.5 0 0-.1 0-.1-.1-.3-.1-.6-.4-.8-.7-.2-.3-.4-1-.2-1.3.3-.2.5-.3.8-.5.4-.2.9-.4 1.4-.6zm-22 .4c.3.1.7.2 1 .3 1.8 1 3.9 1.4 6 1.3.9-.1 1.8-.2 2.6-.5.7-.2 1.3-.5 1.9-.8.3-.1.7-.2 1-.3-.9 1.2-2.2 2.1-3.6 2.5 1.3-.2 2.7-.5 3.8-1.1.6 1.5.9 3.4.6 6l-.3 1.8c-1.3-.8-3.2-.2-4.6.7-.2-2.6-.7-4.5-1-5.2-.2-.6-1-.5-1 .1.1.3.2.7.2 1 .1.5.2 1.1.3 1.6.1.9.3 1.8.3 2.7v.6c-.8.1-1.7.1-2.5 0v-.6c0-.4.1-.7.1-1.1.1-.6.1-1.1.2-1.7.1-.6.2-1.1.3-1.7 0-.2.1-.5.2-.7 0-.6-.3-.6-.5-.6s-.3.2-.4.5c-.5 1.6-.8 3.3-.9 5.1-1.6-1-2.8-1.4-4.6-.5l-.3-1.8c-.3-2.8.1-4.9.8-6.4 1.1.7 2.4 1.2 3.8 1.4-1.4-.6-2.6-1.5-3.4-2.6zm27.3.9c.2 0 .3.1.5.2.9.9 1.5 2 1.7 3.1.1 1.3-2 2.3-2.9 1.4-.5-.5-.5-1.5-1.3-2.3v-.1c0-1.2.8-2.4 2-2.3zm-8.4.5c.1.4.2.7.4 1 .2.4.5.7.8.9-.1.1-.2.2-.3.2-.3.3-.5.6-.8.9h-.2c-.3 0-.6-.1-.9-.3-.3-.2-.6-.7-.6-1 .5-.6 1-1.2 1.6-1.7zm-2.2 2.5c.2.3.4.6.7.9.3.2.6.4 1 .5-.6.8-1.1 1.6-1.6 2.5-.3-.5-.7-1-1.1-1.3-.1-.1-.3-.2-.4-.3.4-.8.8-1.6 1.4-2.3zm-2.2 3c1.1.5 1.8 1.7 1.9 2.9-.9.3-1.8.7-2.7 1.1.3-1.1.5-2.3.7-3.4.1-.2.1-.4.1-.6zm-17 0c0 .2 0 .4.1.6.1 1.2.4 2.3.7 3.4-.8-.4-1.7-.8-2.6-1.1.1-1.2.7-2.4 1.8-2.9zm3.5 3.1c1 0 1.9.5 2.6 1.1 0 2.7.6 5.2 1 5.7s.2 1.4.2 1.4-4.8.1-5.2 0c-.5-.1-1-1.5-.2-2.3.4-.4.9-.5 1.3-.5.9.2 1.5.8 2.2 1.6-.1-1.4-.9-1.7-1.5-2.1-.2-.1-.2-.2-.3-.3-.7-1.3-1.2-2.7-1.6-4.2.3-.3.9-.5 1.5-.4zm10 0c.6 0 1.2.1 1.7.5-.4 1.5-.9 2.9-1.6 4.2-.1.1-.2.3-.3.3-.6.3-1.3.7-1.5 2.1.6-.8 1.2-1.4 2.2-1.6.5 0 1 .1 1.3.5.8.8.2 2.2-.3 2.3-.5.1-5.2 0-5.2 0s-.2-.9.2-1.4c.4-.5.9-3 1-5.7.6-.7 1.6-1.2 2.5-1.2zm-15.9.7c.9.2 2.3.9 3.5 1.5.3.8.6 1.5.9 2.3-.4.1-.8.4-1.1.7-.4.4-.7 1-.7 1.7h-4.4c-.4-.4.1-3.7 4.4-1.8-1-.8-2.6-1.8-2.6-4.4zm21.8 0c0 2.6-1.6 3.6-2.5 4.4 4.3-2 4.8 1.4 4.4 1.7h-4.5c0-1.1-.8-2-1.9-2.3.3-.7.6-1.5.9-2.2 1.2-.7 2.7-1.4 3.6-1.6zm-9.5.7c0 1.1-.1 2.1-.3 3.2-.1.4-.3 1.3-.4 1.6-.1.1-.1.2-.1.2h-.8c-.1-.1-.1-.2-.2-.3-.1-.2-.1-.3-.2-.5l-.3-1.5c-.2-.9-.2-1.8-.3-2.8.8.3 1.7.3 2.6.1z"})),Lt||(Lt=s.createElement("g",{id:"XMLID_161_",className:"st5"},s.createElement("text",{transform:"translate(657.196 401.568)",className:"st6 st7"},"kubebb\u5185\u6838"))),Xt||(Xt=s.createElement("path",{className:"st19",d:"M734.9 360.2v-20.6c0-2.1-1.1-4-2.9-5.1l-17.9-10.3c-1.8-1-4-1-5.9 0l-17.9 10.3c-1.8 1-2.9 3-2.9 5.1v20.6c0 2.1 1.1 4 2.9 5.1l17.9 10.3c1.8 1 4 1 5.9 0l17.9-10.3c1.8-1.1 2.9-3 2.9-5.1"})),Gt||(Gt=s.createElement("defs",null,s.createElement("path",{id:"SVGID_3_",d:"m698.8 358.5 22.9 12.7 10.3-5.9c1.8-1 2.9-3 2.9-5.1v-15.5l-11.4-7.4-24.7 21.2z"}))),s.createElement("clipPath",{id:"SVGID_4_"},s.createElement("use",{xlinkHref:"#SVGID_3_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_5_",gradientUnits:"userSpaceOnUse",x1:328.875,y1:751.873,x2:329.403,y2:751.873,gradientTransform:"scale(-42.5478 42.5478) rotate(-25.046 -1517.61 1159)"},s.createElement("stop",{offset:0,style:{stopColor:"#4461eb"}}),s.createElement("stop",{offset:.597,style:{stopColor:"#222dc3"}}),s.createElement("stop",{offset:.999,style:{stopColor:"#0908a6"}}),s.createElement("stop",{offset:1,style:{stopColor:"#0908a6"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_4_)",fill:"url(#SVGID_5_)"},d:"m728.5 385.1-42.7-20 19.5-41.7 42.7 19.9z"}),Ht||(Ht=s.createElement("path",{className:"st1",d:"m711.3 337.3-6.2-3.7-6.1 3.8 6 3.5z"})),Ct||(Ct=s.createElement("defs",null,s.createElement("path",{id:"SVGID_6_",d:"m698.8 358.5 6.4 3.7-.3-21.4-6-3.4c.1 0-.1 21-.1 21.1"}))),s.createElement("clipPath",{id:"SVGID_7_"},s.createElement("use",{xlinkHref:"#SVGID_6_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_8_",gradientUnits:"userSpaceOnUse",x1:338.358,y1:753.794,x2:338.886,y2:753.794,gradientTransform:"matrix(0 48.9282 48.9282 0 -36179.727 -16214.867)"},s.createElement("stop",{offset:0,style:{stopColor:"#d4e4ff"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4478ff"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_7_)",fill:"url(#SVGID_8_)"},d:"M698.8 337.4h6.4v24.8h-6.4z"}),wt||(wt=s.createElement("defs",null,s.createElement("path",{id:"SVGID_9_",d:"m705 340.9.3 21.3 6-3.7v-21.2z"}))),s.createElement("clipPath",{id:"SVGID_10_"},s.createElement("use",{xlinkHref:"#SVGID_9_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_11_",gradientUnits:"userSpaceOnUse",x1:350.806,y1:734.008,x2:351.334,y2:734.008,gradientTransform:"matrix(11.8752 0 0 -11.8752 -3460.895 9066.252)"},s.createElement("stop",{offset:0,style:{stopColor:"#4461eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_10_)",fill:"url(#SVGID_11_)"},d:"M705 337.3h6.3v24.9H705z"}),kt||(kt=s.createElement("path",{className:"st1",d:"m717.4 333.5-6.1 3.8 6.1 3.6 6.2-3.7z"})),Pt||(Pt=s.createElement("defs",null,s.createElement("path",{id:"SVGID_12_",d:"M717.4 340.9s-.2 6.8-.1 6.9l6.3-3.4v-7.1l-6.2 3.6z"}))),s.createElement("clipPath",{id:"SVGID_13_"},s.createElement("use",{xlinkHref:"#SVGID_12_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_14_",gradientUnits:"userSpaceOnUse",x1:343.874,y1:758.506,x2:344.402,y2:758.506,gradientTransform:"matrix(0 20.7205 20.7205 0 -14996.247 -6786.748)"},s.createElement("stop",{offset:0,style:{stopColor:"#4461eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_13_)",fill:"url(#SVGID_14_)"},d:"M717.2 337.2h6.4v10.5h-6.4z"}),Ut||(Ut=s.createElement("defs",null,s.createElement("path",{id:"SVGID_15_",d:"m711.3 344.6 6 3.1v-6.9l-6-3.5z"}))),s.createElement("clipPath",{id:"SVGID_16_"},s.createElement("use",{xlinkHref:"#SVGID_15_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_17_",gradientUnits:"userSpaceOnUse",x1:343.951,y1:758.847,x2:344.479,y2:758.847,gradientTransform:"matrix(0 20.5463 20.5463 0 -14877.232 -6728.38)"},s.createElement("stop",{offset:0,style:{stopColor:"#d4e4ff"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4478ff"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_16_)",fill:"url(#SVGID_17_)"},d:"M711.3 337.3h6.1v10.4h-6.1z"}),Ot||(Ot=s.createElement("path",{className:"st1",d:"m711.2 344.6-6.3 3.3 6.1 3.6 6.3-3.8z"})),Tt||(Tt=s.createElement("defs",null,s.createElement("path",{id:"SVGID_18_",d:"M711 351.5s-.2 6.8-.1 6.9l6.3-3.9v-6.8l-6.2 3.8z"}))),s.createElement("clipPath",{id:"SVGID_19_"},s.createElement("use",{xlinkHref:"#SVGID_18_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_20_",gradientUnits:"userSpaceOnUse",x1:343.327,y1:758.685,x2:343.855,y2:758.685,gradientTransform:"matrix(0 20.9381 20.9381 0 -15171.385 -6839.636)"},s.createElement("stop",{offset:0,style:{stopColor:"#4461eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_19_)",fill:"url(#SVGID_20_)"},d:"M710.8 347.7h6.5v10.6h-6.5z"}),Bt||(Bt=s.createElement("defs",null,s.createElement("path",{id:"SVGID_21_",d:"m704.9 355.2 6 3.1.1-6.9-6.1-3.5z"}))),s.createElement("clipPath",{id:"SVGID_22_"},s.createElement("use",{xlinkHref:"#SVGID_21_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_23_",gradientUnits:"userSpaceOnUse",x1:343.49,y1:759.123,x2:344.019,y2:759.123,gradientTransform:"matrix(0 20.5463 20.5463 0 -14889.275 -6708.31)"},s.createElement("stop",{offset:0,style:{stopColor:"#d4e4ff"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4478ff"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_22_)",fill:"url(#SVGID_23_)"},d:"M704.9 347.9h6.1v10.4h-6.1z"}),Ft||(Ft=s.createElement("path",{className:"st1",d:"m717.2 354.4-6.3 3.9 6.1 3.5 6.2-3.6z"})),Zt||(Zt=s.createElement("defs",null,s.createElement("path",{id:"SVGID_24_",d:"m710.9 365.2 6 3.3.1-6.7-6.1-3.5z"}))),s.createElement("clipPath",{id:"SVGID_25_"},s.createElement("use",{xlinkHref:"#SVGID_24_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_26_",gradientUnits:"userSpaceOnUse",x1:343.223,y1:759.054,x2:343.752,y2:759.054,gradientTransform:"matrix(0 20.1226 20.1226 0 -14560.173 -6547.035)"},s.createElement("stop",{offset:0,style:{stopColor:"#d4e4ff"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4478ff"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_25_)",fill:"url(#SVGID_26_)"},d:"M710.9 358.3h6.1v10.2h-6.1z"}),jt||(jt=s.createElement("defs",null,s.createElement("path",{id:"SVGID_27_",d:"M717 361.8v6.7l5.9-3.8.3-6.5z"}))),s.createElement("clipPath",{id:"SVGID_28_"},s.createElement("use",{xlinkHref:"#SVGID_27_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_29_",gradientUnits:"userSpaceOnUse",x1:346.827,y1:763.578,x2:347.355,y2:763.578,gradientTransform:"scale(-13.7028 13.7028) rotate(87.489 532.351 186.233)"},s.createElement("stop",{offset:0,style:{stopColor:"#4461eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_28_)",fill:"url(#SVGID_29_)"},d:"m723.6 358.2-.4 10.6-6.7-.3.5-10.6z"}),Kt||(Kt=s.createElement("path",{className:"st1",d:"M890.2 290.1h310v270h-310z"})),At||(At=s.createElement("path",{className:"st29",d:"M910.1 310.1h270v230h-270z"})),s.createElement("g",{style:{opacity:.1}},qt||(qt=s.createElement("g",{id:"XMLID_173_"},s.createElement("path",{id:"XMLID_175_",className:"st19",d:"M1039.8 540.1"}),s.createElement("path",{id:"XMLID_174_",className:"st19",d:"M1127.4 439.8c-3.9-23.9-24.8-42.3-49.8-42.3-25 0-45.9 18.4-49.8 42.3-24.2 3.7-42.7 24.7-42.7 49.9 0 26.4 20.4 48.1 46.3 50.3l2.2-16.7c-17.6-1-31.7-15.7-31.7-33.5 0-18.5 14.9-33.5 33.4-33.6h8.6l.1-8.3c.1-18.4 15.2-33.4 33.6-33.4 18.4 0 33.5 15 33.6 33.4l.1 8.3h8.6c18.4.1 33.4 15.2 33.4 33.6 0 17.7-14.1 32.5-31.7 33.5l2.2 16.7c25.8-2.2 46.3-24.1 46.3-50.2 0-25.3-18.5-46.2-42.7-50z"}))),Wt||(Wt=s.createElement("g",{id:"XMLID_32_"},s.createElement("path",{id:"XMLID_170_",className:"st31",d:"M1098.7 540.1h16.8l-10.5-79.8h-14.7l1.8 16.8h-28.8l1.8-16.8h-14.7l-10.5 79.8h16.8l1.8-16.8h38.5l1.7 16.8zm-38.6-33.6 1.8-16.8h31.4l1.8 16.8h-35z"})))),Rt||(Rt=s.createElement("path",{className:"st1",d:"M20.2 290.1h510v270h-510z"})),Jt||(Jt=s.createElement("path",{className:"st0",d:"M40.2 310.1h470v230h-470z"})),Yt||(Yt=s.createElement("g",{id:"XMLID_147_",className:"st2"},s.createElement("text",{transform:"translate(231.186 523.327)",className:"st3 st4"},"\u5e95\u5ea7 Kit"))),Qt||(Qt=s.createElement("path",{className:"st1",d:"M267.6 371.1H53c-1.4 0-2.5-1.1-2.5-2.5v-45.9c0-1.4 1.1-2.5 2.5-2.5h214.6c1.4 0 2.5 1.1 2.5 2.5v45.9c0 1.4-1.1 2.5-2.5 2.5z"})),$t||($t=s.createElement("g",{id:"XMLID_128_",className:"st5"},s.createElement("text",{transform:"translate(145.645 351.553)",className:"st6 st7"},"nginx"))),s.createElement("path",{d:"m120.5 327.6-15.6 9v18l15.6 9 15.6-9v-18l-15.6-9zm9 24.9c0 1.1-1 1.9-2.3 1.9-.9 0-2-.4-2.7-1.2l-9-10.7v10c0 1.1-.9 1.9-1.9 1.9h-.1c-1.1 0-1.9-.9-1.9-1.9v-13.8c0-1.1.9-1.9 2.3-1.9 1 0 2.1.4 2.7 1.2l9 10.7v-10c0-1.1.9-1.9 1.9-1.9h.1c1.1 0 1.9.9 1.9 1.9v13.8z",style:{fill:"#269539"}}),ea||(ea=s.createElement("path",{className:"st1",d:"M497.8 371.3H282.9c-1.4 0-2.5-1.1-2.5-2.5v-45.9c0-1.4 1.1-2.5 2.5-2.5h214.9c1.4 0 2.5 1.1 2.5 2.5v45.9c.1 1.4-1.1 2.5-2.5 2.5z"})),ta||(ta=s.createElement("g",{id:"XMLID_126_",className:"st5"},s.createElement("text",{transform:"translate(396.822 352.741)",className:"st6 st7"},"dex"))),aa||(aa=s.createElement("path",{className:"st33",d:"M380.5 345s4.3-1.7 5.1-6.6c-.5-2.3-5.2-8.4-11.5-10 0 0 2.7 3.9 2.3 8.6.1-.1 3.8 2.9 4.1 8zM371.8 334.7s-.3-4.5-4.8-6.9c-2.2-.3-9.5 2.3-13 7.8 0 0 4.7-1.4 8.9.4.1.2 4.1-2.7 8.9-1.3zM359.4 339.8s-4.4-1.2-8 2.5c-.9 2.1-.6 9.7 3.5 14.8 0 0 .1-4.8 3.1-8.3-.1-.2-1.4-4.9 1.4-9zM360.3 353.1s-2.5 3.9-.1 8.3c1.8 1.6 9.1 3.8 15.2 1.3 0 0-4.5-1.6-7-5.6-.1.2-4.9.1-8.1-4zM373.4 356.5s3 3.5 7.9 2.7c2.1-1.2 6.4-7.5 6-14 0 0-2.9 3.9-7.4 4.9-.2-.1-1.7 4.6-6.5 6.4z"})),s.createElement("circle",{cx:369.1,cy:345.9,r:5.8,style:{fill:"#ef4c5c"}}),sa||(sa=s.createElement("path",{className:"st1",d:"M267.6 433H53c-1.4 0-2.5-1.1-2.5-2.5v-45.9c0-1.4 1.1-2.5 2.5-2.5h214.6c1.4 0 2.5 1.1 2.5 2.5v45.9c0 1.4-1.1 2.5-2.5 2.5zM267.9 494H53c-1.4 0-2.5-1.1-2.5-2.5v-45.9c0-1.4 1.1-2.5 2.5-2.5h214.9c1.4 0 2.5 1.1 2.5 2.5v45.9c.1 1.3-1.1 2.5-2.5 2.5zM497.8 494H282.9c-1.4 0-2.5-1.1-2.5-2.5v-45.9c0-1.4 1.1-2.5 2.5-2.5h214.9c1.4 0 2.5 1.1 2.5 2.5v45.9c.1 1.3-1.1 2.5-2.5 2.5zM497.8 433.2H282.9c-1.4 0-2.5-1.1-2.5-2.5v-45.9c0-1.4 1.1-2.5 2.5-2.5h214.9c1.4 0 2.5 1.1 2.5 2.5v45.9c.1 1.4-1.1 2.5-2.5 2.5z"})),la||(la=s.createElement("g",{id:"XMLID_90_",className:"st5"},s.createElement("text",{transform:"translate(108.501 475.61)",className:"st6 st7"},"cert-manager"))),ca||(ca=s.createElement("defs",null,s.createElement("path",{id:"SVGID_30_",d:"M62.5 451.1h36v34.8h-36z"}))),s.createElement("clipPath",{id:"SVGID_31_"},s.createElement("use",{xlinkHref:"#SVGID_30_",style:{overflow:"visible"}})),s.createElement("g",{style:{clipPath:"url(#SVGID_31_)"}},s.createElement("path",{d:"M98.5 468.5c0 1.9-1.2 3.6-1.7 5.3-.6 1.8-.6 3.8-1.7 5.3s-3 2.2-4.5 3.3c-1.5 1.1-2.7 2.7-4.5 3.3-1.7.6-3.7 0-5.6 0-1.9 0-3.9.6-5.6 0-1.8-.6-3-2.2-4.5-3.3-1.5-1.1-3.4-1.8-4.5-3.3-1.1-1.5-1.1-3.5-1.7-5.3-.6-1.7-1.7-3.4-1.7-5.3s1.2-3.6 1.7-5.3c.6-1.8.6-3.8 1.7-5.3s3-2.2 4.5-3.3c1.5-1.1 2.7-2.7 4.5-3.3 1.7-.6 3.7 0 5.6 0 1.9 0 3.9-.6 5.6 0 1.8.6 3 2.2 4.5 3.3 1.5 1.1 3.4 1.8 4.5 3.3 1.1 1.5 1.1 3.5 1.7 5.3.5 1.7 1.7 3.4 1.7 5.3z",style:{fill:"#326ce5"}}),ma||(ma=s.createElement("path",{className:"st37",d:"M66 466.5c2.1 0 2.1 1 4.2 1s2.1-1 4.2-1 2.1 1 4.2 1 2.1-1 4.2-1 2.1 1 4.2 1 2.1-1 4.2-1 2.1 1 4.2 1M66 468.4c2.1 0 2.1 1 4.2 1s2.1-1 4.2-1 2.1 1 4.2 1 2.1-1 4.2-1 2.1 1 4.2 1 2.1-1 4.2-1 2.1 1 4.2 1M66 470.8c2.1 0 2.1 1 4.2 1s2.1-1 4.2-1 2.1 1 4.2 1 2.1-1 4.2-1 2.1 1 4.2 1 2.1-1 4.2-1 2.1 1 4.2 1"})),ra||(ra=s.createElement("path",{className:"st1",d:"M80.5 453.2c-8.4 0-15.3 6.9-15.3 15.3 0 8.5 6.8 15.3 15.3 15.3 8.4 0 15.3-6.8 15.3-15.3s-6.9-15.3-15.3-15.3zm0 29.3c-7.7 0-14-6.3-14-14s6.3-14 14-14 14 6.3 13.9 14c.1 7.7-6.2 14-13.9 14z"})),na||(na=s.createElement("path",{className:"st1",d:"M73.4 475.4c0-.2-.3-.3-.5-.3-.3 0-.5.1-.8.1.1-.3.2-.6.3-.8.1-.2-.1-.3-.2-.5-.1-.1-.2 0-.3.1-.4.3-.8.7-1.2 1-.2.2 0 .2 0 .4.1.1.2.2.3.1.2-.2.4-.3.6-.5 0 .1-.1.2-.1.3-.1.2.1.4.3.4h.3c-.2.2-.4.3-.6.5-.2.1-.1.2 0 .3.1.1.1.3.3.1.5-.4.9-.7 1.3-1.1.3 0 .4 0 .3-.1zM81.6 458.9c.3.1.4.1.5-.3v-.2c0-.1 0-.2.1-.1.1 0 .2 0 .2.1s.1.2.1.4c.1.3.2.4.5.4.1 0 .2 0 .1-.2s-.1-.4-.2-.6c0-.1 0-.1.1-.2.3-.1.4-.4.4-.6 0-.3-.2-.6-.6-.7-.3-.1-.6-.1-.9-.2-.1 0-.2 0-.2.1l-.3 1.8c.1.2.1.3.2.3zm.9-1.5c.2 0 .5.1.5.3 0 .1-.1.2-.3.2-.1-.1-.3.1-.4-.2 0-.1 0-.3.2-.3zM78.4 478.1c-.1 0-.3-.1-.3.1-.1.3-.1.5-.2.8-.1-.4-.2-.7-.3-1-.1-.2-.3-.2-.4-.2-.2 0-.1.1-.2.2-.1.5-.3 1-.4 1.5-.1.2.1.2.2.3.1 0 .3.1.3-.1.1-.3.1-.5.2-.8 0 .1.1.1.1.2l.3.9c.1.2.3.2.4.2.2 0 .1-.1.1-.2.1-.5.3-1 .4-1.5.1-.4-.1-.4-.2-.4zM90.2 475c-.2 0-.3-.1-.5-.1-.1 0-.2-.1-.2-.2 0-.3-.3-.6-.7-.6-.2 0-.4.1-.6.3-.2.2-.3.4-.5.6-.1.1-.1.2 0 .3.4.3.9.7 1.3 1 .1.1.2.1.3 0 .2-.3.2-.3-.1-.5-.1 0-.1-.1-.2-.1l-.1-.1c0-.1.1-.2.2-.1.1 0 .2 0 .4.1.3.1.4 0 .6-.2.3-.3.3-.4.1-.4zm-1.5.3s-.3-.2-.3-.3c0-.1.3-.4.4-.4.1 0 .2.1.2.2s-.2.5-.3.5zM78 459c0 .1 0 .2.2.2.4-.1.9-.1 1.3-.2.2 0 .1-.2.1-.3 0-.1-.1-.2-.2-.1-.2 0-.5.1-.7.1-.1 0-.2 0-.2-.1s0-.2.1-.2c.2 0 .4-.1.6-.1.2 0 .2-.2.2-.3 0-.1-.1-.3-.2-.2-.2 0-.4.1-.6.1-.1 0-.2 0-.2-.1 0-.2.1-.2.2-.2.2 0 .4-.1.6-.1.1 0 .2-.1.2-.2s0-.3-.3-.3c-.4.1-.8.1-1.2.2-.2 0-.2.1-.2.3.1.3.2.9.3 1.5zM84.6 478.3c-.1.1-.3.1-.4.2-.1 0-.2.1-.1.2s0 .3.3.2c0 0 .1-.1.1 0v.2c-.1.1-.2.2-.3.2s-.3 0-.3-.2c-.1-.2-.2-.4-.2-.5 0-.3.2-.5.5-.4.2.1.4 0 .6 0 .1 0 .1-.1.1-.2-.2-.2-.4-.3-.6-.3-.3 0-.5.1-.7.3-.2.2-.3.5-.2.8.1.4.2.9.7 1 .4.1.7 0 1-.3.3-.3.2-.7.1-1-.4-.2-.5-.2-.6-.2zM87.6 477.4c-.2.1-.4.3-.6.4-.1.1-.1.1-.2 0s-.1-.1 0-.2c.2-.1.3-.2.5-.3.1 0 .1-.1.1-.2s-.1-.2-.2-.3c-.1-.1-.2 0-.2.1-.1.1-.3.2-.4.3-.1.1-.1 0-.2-.1s-.1-.1 0-.2c.2-.1.4-.3.5-.4.2-.1.1-.2 0-.3-.1-.1-.1-.2-.3-.1-.3.2-.6.5-1 .7-.1.1-.1.1 0 .2.3.5.7.9 1 1.4.1.1.1.1.2 0 .3-.2.7-.5 1-.7.2-.1.1-.2 0-.3 0 0 0-.1-.2 0zM75 476.6h-.2l-1.5 1.2c-.1 0-.1.1 0 .2.2.1.3.3.6.1h.1c.2.1.4.2.6.4v.1c0 .2.1.4.3.5.2 0 .1-.2.2-.3.1-.5.3-1 .4-1.6-.1-.4-.4-.5-.5-.6zm-.4 1.3c-.4-.2-.4-.2-.1-.5.1 0 .1-.1.2-.2.1.3 0 .5-.1.7zM74.3 460.1c.2.3.6.4 1 .3.4-.1.7-.6.7-.9 0-.1 0-.2-.1-.3v-.1h-.1c-.1 0-.4.3-.4.4 0 .2-.1.3-.3.4-.2.1-.3 0-.4-.1-.1-.2-.2-.3-.3-.5-.1-.1-.1-.3.1-.4.1-.1.3-.2.5-.1.1.1.5 0 .5-.2 0-.1 0-.1-.1-.2l-.2-.2c-.1 0-.2-.1-.3-.1-.7 0-1.2.5-1.1 1.1.2.4.3.6.5.9zM81.3 478.7c-.2-.4-.3-.5-.7-.4h-.1s0 .1-.1.1l-.6 1.8v.2c.1.1.5 0 .5-.2 0-.1 0-.1.1-.1h.6c.1 0 .1 0 .1.1 0 .2.2.3.3.2.3 0 .3 0 .2-.3 0-.5-.2-.9-.3-1.4zm-.5.9c-.1 0-.2 0-.1-.2s.1-.3.2-.5c.1.2.1.3.2.4 0 .3 0 .3-.3.3zM85.6 460.3c.1.1.2.2.4 0 .2-.3.4-.6.5-.9.2-.3.2-.4.6-.1.2.1.2 0 .3-.1.1-.1.1-.2 0-.3-.4-.2-.8-.5-1.2-.7-.2-.1-.2-.1-.3.1-.1.2-.1.3.1.4.1.1.2.1.3.2 0 .1-.1.1-.1.2-.2.4-.4.7-.7 1.1-.2 0 0 .1.1.1zM86 471c-.1-.5-.3-1-.4-1.5v-.1H85.3l-1.2 1.2V470.9h.2c.1 0 .1.1 0 .1-.3.4-.6.7-1 1-.3.2-.7.3-1.1.3-.4.1-.8.1-1.2.1V467h1.4c.1.1.3.1.4.1s.3-.1.4-.2c.1-.1.2-.3.2-.4 0-.2-.1-.3-.2-.4-.1-.1-.2-.2-.4-.2s-.3 0-.4.1l-.1.1H81v-.7l.1-.1c.6-.3 1-.9 1-1.6 0-1.1-1.1-1.9-2.2-1.6-.9.2-1.4 1.1-1.2 1.9.1.6.5 1.1 1.1 1.3h.1v.5h-1.3c-.1 0-.1 0-.2-.1s-.3-.1-.4-.1c-.2 0-.3.1-.4.2-.1.1-.2.3-.2.4 0 .2.1.3.2.4.1.1.2.2.4.2s.3 0 .4-.1c0 0 .1-.1.2-.1h1.3v5.4c-.5 0-1-.1-1.5-.2l-.9-.3c-.4-.3-.7-.6-1-1h.2V470.2l-1.1-1.2H75.3v.1c-.2.5-.3 1.1-.5 1.6v.2h.5c.1 0 .1.1.1.1.7 1.3 1.6 2.2 2.9 2.8.5.2.7.3 1.2.4l.7.7s.1.1.2.1.1 0 .2-.1l.7-.6h.1c.7-.1.9-.2 1.6-.5 1.1-.5 1.9-1.4 2.5-2.4 0-.1.1-.1.2-.1h.2s.1 0 .1-.1c0 0 0-.1.1-.1l-.1-.1zm-5.5-6.4c-.1 0-.2 0-.3-.1-.1 0-.2-.1-.3-.2-.1-.1-.1-.2-.2-.3 0-.1-.1-.2-.1-.3 0-.5.4-.9.9-.9s.9.4.8.9c.1.5-.4.9-.8.9z"}))),ha||(ha=s.createElement("g",{id:"XMLID_36_",className:"st5"},s.createElement("text",{transform:"translate(333.79 477.038)",className:"st6 st7"},"kube-oidc-proxy"))),ia||(ia=s.createElement("path",{className:"st31",d:"M314.1 468c-2.1 0-3.9 1.8-3.9 3.9s1.8 3.9 3.9 3.9c2.1 0 3.9-1.8 3.9-3.9 0-2.2-1.7-3.9-3.9-3.9zm0 5.9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm8.6.7V469c.7-.4 1.1-1.1 1.1-2 0-1.2-1-2.2-2.2-2.2-.6 0-1.1.2-1.6.6l-3.7-2.1v-.1c0-1.2-1-2.2-2.2-2.2s-2.2 1-2.2 2.2v.1l-3.8 2.1c-.4-.4-1-.6-1.6-.6-1.2 0-2.2 1-2.2 2.2 0 .9.5 1.6 1.2 2v5.5c-.7.4-1.2 1.1-1.2 2 0 1.2 1 2.2 2.2 2.2.6 0 1.1-.2 1.5-.6l3.8 2.2v.1c0 1.2 1 2.2 2.2 2.2 1.2 0 2.2-1 2.2-2.2v-.1l3.8-2.2c.4.4.9.6 1.5.6 1.2 0 2.2-1 2.2-2.2.1-.8-.3-1.5-1-1.9zm-3.3 1.8-4 2.3c-.4-.2-.8-.4-1.2-.4s-.9.1-1.2.4l-4-2.3c-.1-.8-.6-1.5-1.2-1.8V469c.6-.3 1.1-.9 1.2-1.6l4.1-2.3c.4.2.8.4 1.2.4s.9-.1 1.2-.4l4 2.3c.1.8.6 1.4 1.3 1.8v5.5c-.8.2-1.4.9-1.4 1.7z"})),da||(da=s.createElement("path",{className:"st19",d:"M302.5 476.5c0-1.1.4-2.2 1.2-2.9v-3.7c-.8-.8-1.2-1.8-1.2-2.9 0-1.1.4-2.1 1.2-2.9.8-.8 1.8-1.2 2.9-1.2.5 0 1 .1 1.5.3h.1l2-1.1c.2-.7.5-1.3 1.1-1.9.8-.8 1.8-1.2 2.9-1.2h.6c-2.1-2.9-5.5-4.8-9.3-4.8-6.3 0-11.4 5.1-11.4 11.4v.2c-3.5.5-6.2 3.5-6.2 7.1 0 4 3.2 7.2 7.2 7.2h9.9c-.4-.2-.8-.5-1.2-.8-.9-.7-1.3-1.7-1.3-2.8zM850.4 421.1h30v8h-30z"})),Ea||(Ea=s.createElement("path",{className:"st19",d:"m878.5 415.1 12 10-12 10z"})),oa||(oa=s.createElement("path",{className:"st31",d:"M1041.2 260.1h8v30h-8z"})),va||(va=s.createElement("path",{className:"st31",d:"m1035.2 261.9 10-12 10 12z"})),pa||(pa=s.createElement("path",{transform:"rotate(-134.999 789.78 273.586)",className:"st19",d:"M785.8 258.6h8v30h-8z"})),_a||(_a=s.createElement("path",{className:"st19",d:"m792 257.2 15.5-1.4-1.4 15.6z"})),fa||(fa=s.createElement("path",{transform:"rotate(134.999 630.953 273.583)",className:"st19",d:"M626.9 258.6h8v30h-8z"})),za||(za=s.createElement("path",{className:"st19",d:"m614.6 271.4-1.4-15.6 15.5 1.4zM540.8 421.1h30v8h-30z"})),Na||(Na=s.createElement("path",{className:"st19",d:"m542.6 415.1-12 10 12 10z"})),Ma||(Ma=s.createElement("path",{className:"st1",d:"M700.1 20.1h500v230h-500z"})),Ia||(Ia=s.createElement("path",{className:"st29",d:"M720.1 40.1h460v190h-460z"})),Da||(Da=s.createElement("text",{id:"XMLID_109_",transform:"translate(749.92 113.147)"},s.createElement("tspan",{x:0,y:0,className:"st31 st3 st4"},"\u57fa\u4e8e\u4f4e\u7801"),s.createElement("tspan",{x:0,y:28.8,className:"st31 st3 st4"},"\u5f00\u53d1\u7684\u7ec4"),s.createElement("tspan",{x:0,y:57.6,className:"st31 st3 st4"},"\u4ef6"))),ya||(ya=s.createElement("path",{className:"st1",d:"m1119.4 201.8-.4.5h-.6l-.5-.5v-.6l.5-.4h.6l.4.4zM1136.9 201.2l.4-.4h.7l.4.4v.6l-.4.5h-.7l-.4-.5zM1157.2 130.1H883.3c-1.7 0-3.1-1.4-3.1-3.1V73.2c0-1.7 1.4-3.1 3.1-3.1h273.8c1.7 0 3.1 1.4 3.1 3.1V127c.1 1.7-1.3 3.1-3 3.1z"})),xa||(xa=s.createElement("g",{id:"XMLID_98_",className:"st5"},s.createElement("text",{transform:"translate(998.112 108.131)",className:"st6 st7"},"bestchain"))),ga||(ga=s.createElement("defs",null,s.createElement("path",{id:"SVGID_32_",d:"m969.8 105 4.2 3.2c.3.2.6.3.9.3 2.1 0 4.1-.5 5.9-1.3-.4 2.7-2.7 4.9-5.6 4.9h-15.1l9.7-7.1zm-14 10h19.5c4.7 0 8.6-3.8 8.6-8.6 0-.3 0-.7-.1-1 .8-.6 1.5-1.3 2.2-2.1.2.8.3 1.7.3 2.6 0 6.2-5.1 11.3-11.3 11.3h-19.2V115zm0-5.6 19.6-14.8c1.8.1 3.5.6 5 1.4-.4 1-1.2 1.8-2 2.4-1-.4-2-.6-3.1-.6-.3 0-.6.1-.9.3l-18.6 13.5v-2.2zm0-18.6v-2.3l11.6 8.4-1.7 1.3-9.9-7.4zm13.7 4.2-9.5-6.9h15.1c2.9 0 5.2 2.1 5.6 4.9-1.8-.8-3.9-1.3-5.9-1.3-.3 0-.6.1-.9.3l-4.3 3.2c.1-.1 0-.2-.1-.2m-13.7-12H975c6.2 0 11.3 5.1 11.3 11.3 0 6.1-4.8 11-10.8 11.3l-3.1-2.3 1.9-1.4c.3.3.6.4 1 .4 4.7 0 8.6-3.8 8.6-8.6 0-4.7-3.8-8.6-8.6-8.6h-19.5V83zm-1.5-2.9c-.8 0-1.5.7-1.5 1.5v10c0 .5.2.9.6 1.2l9.8 7.4-9.8 7.4c-.4.3-.6.7-.6 1.2v10c0 .8.7 1.5 1.5 1.5h20.6c7.8 0 14.2-6.4 14.2-14.2 0-2-.4-4-1.2-5.8.8-1.8 1.2-3.7 1.2-5.8 0-7.8-6.4-14.2-14.2-14.2h-20.6z"}))),s.createElement("clipPath",{id:"SVGID_33_"},s.createElement("use",{xlinkHref:"#SVGID_32_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_34_",gradientUnits:"userSpaceOnUse",x1:-327.122,y1:872.694,x2:-326.929,y2:872.694,gradientTransform:"scale(245.608 -245.608) rotate(-52.098 -1054.645 97.589)"},s.createElement("stop",{offset:0,style:{stopColor:"#ff2c68"}}),s.createElement("stop",{offset:1,style:{stopColor:"#fdd500"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_33_)",fill:"url(#SVGID_34_)"},d:"m975.4 62.5 33.1 42.5-42 32.7-33.1-42.5z"}),ua||(ua=s.createElement("path",{className:"st1",d:"M1157.2 200.1H883.3c-1.7 0-3.1-1.4-3.1-3.1v-53.8c0-1.7 1.4-3.1 3.1-3.1h273.8c1.7 0 3.1 1.4 3.1 3.1V197c.1 1.7-1.3 3.1-3 3.1z"})),ba||(ba=s.createElement("g",{id:"XMLID_100_",className:"st5"},s.createElement("text",{transform:"translate(965.19 176.035)",className:"st6 st7"},"component store"))),Va||(Va=s.createElement("path",{className:"st19",d:"M955.2 178.3v-16.4c0-1.7-.9-3.2-2.3-4l-14.2-8.2c-1.4-.8-3.2-.8-4.6 0l-14.2 8.2c-1.4.8-2.3 2.4-2.3 4v16.4c0 1.7.9 3.2 2.3 4l14.2 8.2c1.4.8 3.2.8 4.6 0l14.2-8.2c1.4-.8 2.3-2.4 2.3-4"})),Sa||(Sa=s.createElement("defs",null,s.createElement("path",{id:"SVGID_35_",d:"m926.5 177 18.2 10 8.1-4.7c1.4-.8 2.3-2.4 2.3-4V166l-9-5.9-19.6 16.9z"}))),s.createElement("clipPath",{id:"SVGID_36_"},s.createElement("use",{xlinkHref:"#SVGID_35_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_37_",gradientUnits:"userSpaceOnUse",x1:325.964,y1:745.797,x2:326.383,y2:745.797,gradientTransform:"scale(-42.5478 42.5478) rotate(-25.046 -1517.61 1159)"},s.createElement("stop",{offset:0,style:{stopColor:"#4461eb"}}),s.createElement("stop",{offset:.597,style:{stopColor:"#222dc3"}}),s.createElement("stop",{offset:.999,style:{stopColor:"#0908a6"}}),s.createElement("stop",{offset:1,style:{stopColor:"#0908a6"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_36_)",fill:"url(#SVGID_37_)"},d:"m950.1 198-33.9-15.8 15.5-33.1 33.8 15.8z"}),La||(La=s.createElement("path",{className:"st1",d:"m936.4 160.1-4.9-2.9-4.8 3 4.7 2.8z"})),Xa||(Xa=s.createElement("defs",null,s.createElement("path",{id:"SVGID_38_",d:"m926.5 177 5.1 2.9-.2-16.9-4.8-2.7c.1-.1-.1 16.6-.1 16.7"}))),s.createElement("clipPath",{id:"SVGID_39_"},s.createElement("use",{xlinkHref:"#SVGID_38_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_40_",gradientUnits:"userSpaceOnUse",x1:334.724,y1:758.435,x2:335.143,y2:758.435,gradientTransform:"matrix(0 48.9282 48.9282 0 -36179.727 -16214.867)"},s.createElement("stop",{offset:0,style:{stopColor:"#d4e4ff"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4478ff"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_39_)",fill:"url(#SVGID_40_)"},d:"M926.5 160.2h5.1v19.7h-5.1z"}),Ga||(Ga=s.createElement("defs",null,s.createElement("path",{id:"SVGID_41_",d:"m931.4 163 .3 16.9 4.7-2.9v-16.9z"}))),s.createElement("clipPath",{id:"SVGID_42_"},s.createElement("use",{xlinkHref:"#SVGID_41_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_43_",gradientUnits:"userSpaceOnUse",x1:369.876,y1:749.145,x2:370.294,y2:749.145,gradientTransform:"matrix(11.8752 0 0 -11.8752 -3460.895 9066.252)"},s.createElement("stop",{offset:0,style:{stopColor:"#4461eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_42_)",fill:"url(#SVGID_43_)"},d:"M931.4 160.1h5v19.7h-5z"}),Ha||(Ha=s.createElement("path",{className:"st1",d:"m941.3 157.1-4.9 3 4.8 2.9 5-2.9z"})),Ca||(Ca=s.createElement("defs",null,s.createElement("path",{id:"SVGID_44_",d:"M941.2 163s-.1 5.4-.1 5.5l5-2.7v-5.6l-4.9 2.8z"}))),s.createElement("clipPath",{id:"SVGID_45_"},s.createElement("use",{xlinkHref:"#SVGID_44_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_46_",gradientUnits:"userSpaceOnUse",x1:335.312,y1:769.282,x2:335.731,y2:769.282,gradientTransform:"matrix(0 20.7205 20.7205 0 -14996.247 -6786.748)"},s.createElement("stop",{offset:0,style:{stopColor:"#4461eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_45_)",fill:"url(#SVGID_46_)"},d:"M941.1 160.1h5v8.3h-5z"}),wa||(wa=s.createElement("defs",null,s.createElement("path",{id:"SVGID_47_",d:"m936.4 165.9 4.8 2.5v-5.5l-4.8-2.8z"}))),s.createElement("clipPath",{id:"SVGID_48_"},s.createElement("use",{xlinkHref:"#SVGID_47_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_49_",gradientUnits:"userSpaceOnUse",x1:335.316,y1:769.775,x2:335.735,y2:769.775,gradientTransform:"matrix(0 20.5463 20.5463 0 -14877.232 -6728.38)"},s.createElement("stop",{offset:0,style:{stopColor:"#d4e4ff"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4478ff"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_48_)",fill:"url(#SVGID_49_)"},d:"M936.4 160.1h4.8v8.3h-4.8z"}),ka||(ka=s.createElement("path",{className:"st1",d:"m936.4 165.9-5 2.7 4.8 2.8 5-3z"})),Pa||(Pa=s.createElement("defs",null,s.createElement("path",{id:"SVGID_50_",d:"M936.2 171.4s-.1 5.4-.1 5.5l5-3.1v-5.4l-4.9 3z"}))),s.createElement("clipPath",{id:"SVGID_51_"},s.createElement("use",{xlinkHref:"#SVGID_50_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_52_",gradientUnits:"userSpaceOnUse",x1:334.75,y1:769.41,x2:335.169,y2:769.41,gradientTransform:"matrix(0 20.9381 20.9381 0 -15171.385 -6839.636)"},s.createElement("stop",{offset:0,style:{stopColor:"#4461eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_51_)",fill:"url(#SVGID_52_)"},d:"M936.1 168.4h5.1v8.4h-5.1z"}),Ua||(Ua=s.createElement("defs",null,s.createElement("path",{id:"SVGID_53_",d:"m931.4 174.3 4.7 2.5.1-5.5-4.8-2.7z"}))),s.createElement("clipPath",{id:"SVGID_54_"},s.createElement("use",{xlinkHref:"#SVGID_53_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_55_",gradientUnits:"userSpaceOnUse",x1:334.748,y1:770.115,x2:335.167,y2:770.115,gradientTransform:"matrix(0 20.5463 20.5463 0 -14889.275 -6708.31)"},s.createElement("stop",{offset:0,style:{stopColor:"#d4e4ff"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4478ff"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_54_)",fill:"url(#SVGID_55_)"},d:"M931.4 168.6h4.8v8.3h-4.8z"}),Oa||(Oa=s.createElement("path",{className:"st1",d:"m941.2 173.7-5.1 3.1 4.9 2.8 4.9-2.9z"})),Ta||(Ta=s.createElement("defs",null,s.createElement("path",{id:"SVGID_56_",d:"m936.1 182.3 4.8 2.6.1-5.3-4.9-2.8z"}))),s.createElement("clipPath",{id:"SVGID_57_"},s.createElement("use",{xlinkHref:"#SVGID_56_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_58_",gradientUnits:"userSpaceOnUse",x1:334.19,y1:770.215,x2:334.609,y2:770.215,gradientTransform:"matrix(0 20.1226 20.1226 0 -14560.173 -6547.035)"},s.createElement("stop",{offset:0,style:{stopColor:"#d4e4ff"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4478ff"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_57_)",fill:"url(#SVGID_58_)"},d:"M936.1 176.8h4.8v8.1h-4.8z"}),Ba||(Ba=s.createElement("defs",null,s.createElement("path",{id:"SVGID_59_",d:"M941 179.6v5.3l4.7-3.1.2-5.1z"}))),s.createElement("clipPath",{id:"SVGID_60_"},s.createElement("use",{xlinkHref:"#SVGID_59_",style:{overflow:"visible"}})),s.createElement("linearGradient",{id:"SVGID_61_",gradientUnits:"userSpaceOnUse",x1:332.872,y1:779.276,x2:333.29,y2:779.276,gradientTransform:"scale(-13.7028 13.7028) rotate(87.489 532.351 186.233)"},s.createElement("stop",{offset:0,style:{stopColor:"#4461eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}}),s.createElement("stop",{offset:1,style:{stopColor:"#4424eb"}})),s.createElement("path",{style:{clipPath:"url(#SVGID_60_)",fill:"url(#SVGID_61_)"},d:"m946.2 176.7-.3 8.4-5.3-.2.4-8.4z"}),Fa||(Fa=s.createElement("text",{id:"XMLID_159_",transform:"translate(950.976 471.817)",className:"st31 st3 st4"},"\u4f4e\u7801\u7ec4\u4ef6\u5f00\u53d1 Kit")),Za||(Za=s.createElement("path",{className:"st1",d:"M1162.3 431.5H928c-1.6 0-2.9-1.3-2.9-2.9v-54.3c0-1.6 1.3-2.9 2.9-2.9h234.3c1.6 0 2.9 1.3 2.9 2.9v54.3c-.1 1.6-1.4 2.9-2.9 2.9z"})),ja||(ja=s.createElement("g",{id:"XMLID_157_",className:"st5"},s.createElement("text",{transform:"translate(1023.806 410.163)",className:"st6 st7"},"\u4e91\u68af\u4f4e\u4ee3\u7801"))),Ka||(Ka=s.createElement("g",{id:"XMLID_154_"},s.createElement("path",{id:"XMLID_156_",className:"st19",d:"M980.7 420"}),s.createElement("path",{id:"XMLID_155_",className:"st19",d:"M1003.4 394c-1-6.2-6.4-11-12.9-11s-11.9 4.8-12.9 11c-6.3 1-11.1 6.4-11.1 12.9 0 6.9 5.3 12.5 12 13l.6-4.3c-4.6-.3-8.2-4.1-8.2-8.7 0-4.8 3.9-8.7 8.7-8.7h2.2V396c0-4.8 3.9-8.7 8.7-8.7 4.8 0 8.7 3.9 8.7 8.7v2.2h2.2c4.8 0 8.7 3.9 8.7 8.7 0 4.6-3.7 8.4-8.2 8.7l.6 4.3c6.7-.6 12-6.2 12-13 0-6.5-4.8-12-11.1-12.9z"}))),Aa||(Aa=s.createElement("g",{id:"XMLID_149_"},s.createElement("path",{id:"XMLID_151_",className:"st31",d:"M995.9 420h4.4l-2.7-20.7h-3.8l.5 4.4h-7.5l.5-4.4h-3.8l-2.7 20.7h4.4l.5-4.4h10l.2 4.4zm-10-8.7.5-4.4h8.2l.5 4.4h-9.2z"}))),qa||(qa=s.createElement("g",{id:"XMLID_99_",className:"st5"},s.createElement("text",{transform:"translate(139.052 413.452)",className:"st6 st7"},"capsule"))),Wa||(Wa=s.createElement("path",{className:"st48",d:"M114.8 397.9h-9.3c-.2 0-.3-.1-.3-.3v-2.2c0-.2.1-.3.3-.3h9.3c.2 0 .3.1.3.3v2.2c0 .2-.1.3-.3.3z"})),Ra||(Ra=s.createElement("circle",{className:"st48",cx:110.1,cy:391.4,r:1.1})),Ja||(Ja=s.createElement("path",{className:"st48",d:"M116.2 400.5H104c-.2 0-.4-.2-.4-.4v-.9c0-.2.2-.4.4-.4h12.2c.2 0 .4.2.4.4v.9c0 .2-.2.4-.4.4z"})),Ya||(Ya=s.createElement("path",{className:"st49",d:"m105.1 396.8 5-.4v2.4h-5z"})),Qa||(Qa=s.createElement("path",{className:"st50",d:"m115.1 396.8-5-.4v2.4h5z"})),$a||($a=s.createElement("path",{className:"st48",d:"M110.2 392h-.4s-.1 2-1.3 3.3h1.7V392z"})),es||(es=s.createElement("path",{className:"st48",d:"M110.1 392h.4s.1 2 1.3 3.3h-1.7V392zM129.1 419.4c.6-.6 1-1.3 1-1.9 0-3.5-9-6.3-20-6.3s-20 2.8-20 6.3c0 .7.3 1.3 1 1.9 0 .2 0 .4-.1.6-.4.8 3.2 2.2 3.4 1.8.1-.2.2-.3.3-.3 1 .4 2.1.7 3.3 1 0 .2 0 .3-.1.5-.2.3.2.6 1.6.9 1.4.3 3 .4 3.1-.1 0-.1 0-.3.1-.4 1.3.2 2.7.3 4.2.4 0 .1-.1.2-.1.4-.1.4-.3.8 3.3.8 3.5 0 3.6-.3 3.5-.8 0-.1-.1-.3-.1-.4 1.5-.1 2.9-.2 4.2-.4 0 .1.1.3.1.4.1.6 1.6.4 3.1.1 1.4-.3 1.8-.5 1.6-.9-.1-.1-.2-.3-.1-.5 1.2-.3 2.3-.6 3.3-1 .1 0 .3.2.3.3.2.4 3.8-1.1 3.4-1.8-.3-.3-.3-.5-.3-.6z"})),ts||(ts=s.createElement("path",{className:"st49",d:"M110.1 419.2v-19.4l-6.5.3L92.1 415s.1.6-.2.8c0 .3 1 3.1 18.2 3.4z"})),as||(as=s.createElement("path",{className:"st50",d:"M101.8 402.5h2.3s.6 0 .4.5-5.2 10.8-5.2 10.8-.2.4-.9.2c-.7-.1-4.7-1.1-4.7-1.1l8.1-10.4zM110.1 419.2v-19.4l6.5.3 11.5 14.9s-.1.6.2.8c0 .3-1.1 3.1-18.2 3.4z"})),ss||(ss=s.createElement("path",{className:"st49",d:"M118.4 402.5h-2.3s-.6 0-.4.5 5.2 10.8 5.2 10.8.2.4.9.2 4.7-1.1 4.7-1.1l-8.1-10.4z"})),ls||(ls=s.createElement("g",{id:"XMLID_94_",className:"st5"},s.createElement("text",{transform:"translate(363.965 413.681)",className:"st6 st7"},"bff-server"))),cs||(cs=s.createElement("path",{className:"st31",d:"M352.7 393.7h-28c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h28c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zm-7 5.5c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm4 0c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5z"})),s.createElement("path",{d:"M352.7 403.7h-28c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h28c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zm-7 5.5c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm4 0c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5z",style:{opacity:.8,fill:"#4461eb"}}),ms||(ms=s.createElement("path",{className:"st19",d:"M352.8 413.7h-28c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h28c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zm-7 5.5c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zm4 0c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5z"})),rs||(rs=s.createElement("circle",{className:"st52",cx:349.8,cy:407.7,r:1.5})),ns||(ns=s.createElement("circle",{className:"st52",cx:349.8,cy:417.7,r:1.5})),hs||(hs=s.createElement("circle",{className:"st52",cx:349.8,cy:397.7,r:1.5})),is||(is=s.createElement("path",{className:"st1",d:"M20.1 580.1h1180v60H20.1z"})),ds||(ds=s.createElement("g",{className:"st2"},s.createElement("text",{transform:"translate(551.807 620.264)",className:"st6 st4"},"kubernetes"))),Es||(Es=s.createElement("path",{className:"st19",d:"m517.7 614-1.7 4c-1.6-1-2.8-2.5-3.5-4.3l4.3-.7c.4-.1.8.2.9.6.1.2.1.3 0 .4zm-1.4-3.5c.4-.1.6-.5.5-.9 0-.1-.1-.3-.2-.4l-3.3-2.9c-1 1.6-1.4 3.5-1.2 5.4l4.2-1.2zm1.9-3.3c.3.2.8.2 1-.2.1-.1.1-.3.1-.4l.3-4.4c-1.9.2-3.7 1.1-5 2.4l3.6 2.6zm1.3 4.6 1.2.6 1.2-.6.3-1.3-.8-1H520l-.8 1 .3 1.3zm2.5-5.2c0 .4.4.7.8.7.1 0 .3-.1.4-.1l3.6-2.5c-1.4-1.3-3.1-2.2-5-2.4l.2 4.3zm18.1 10-9.6 12c-.5.6-1.3 1-2.1 1H513c-.8 0-1.6-.4-2.1-1l-9.6-12c-.5-.6-.7-1.4-.5-2.2l3.4-14.9c.2-.8.7-1.4 1.4-1.8l13.9-6.6c.7-.3 1.6-.3 2.3 0l13.9 6.6c.7.3 1.3 1 1.4 1.8l3.4 14.9c.3.7.1 1.5-.4 2.2zm-5.4-3.5c-.1 0-.2 0-.2-.1-.3-.1-.5 0-.8-.1-.6-.1-1.1-.1-1.5-.2-.2-.1-.3-.3-.4-.4l-.3-.1c.2-1.3.1-2.6-.2-3.9-.3-1.3-.8-2.5-1.6-3.6.1-.1.3-.2.3-.3 0-.2 0-.3.2-.5.3-.3.7-.6 1.2-.9.2-.1.5-.2.7-.4.1 0 .1-.1.2-.1.4-.3.5-.9.2-1.2-.3-.4-.8-.4-1.2-.1-.1 0-.1.1-.2.1-.2.2-.4.4-.5.6-.4.4-.8.8-1.1 1-.2.1-.4.1-.5.1l-.3.2c-1.8-1.9-4.3-3.1-6.9-3.3v-.4c-.1-.1-.2-.2-.3-.4 0-.4 0-.9.1-1.5 0-.3.1-.5.1-.8v-.2c0-.5-.4-.9-.8-.9-.5 0-.8.4-.8.9v.2c0 .3.1.5.1.8.1.6.1 1.1.1 1.5 0 .2-.1.3-.3.4v.4c-2.6.2-5.1 1.4-6.9 3.3-.1-.1-.2-.1-.3-.2-.2 0-.3.1-.5 0-.4-.3-.7-.6-1.1-1-.2-.2-.3-.4-.5-.6-.1-.1-.1-.1-.2-.1-.2-.1-.4-.2-.6-.2-.3 0-.5.1-.7.3-.3.4-.2.9.2 1.2l.2.1c.2.2.5.3.7.4.5.3.9.6 1.2.9.1.1.1.4.2.5l.3.2c-1.5 2.2-2.1 4.9-1.7 7.5l-.3.1c-.1.1-.2.3-.4.4-.4.1-.9.2-1.5.2-.3 0-.5 0-.8.1h-.2c-.5.1-.8.6-.7 1 .1.4.6.7 1.1.6h.2c.3-.1.5-.2.7-.3.6-.2 1-.4 1.5-.4.2 0 .4.1.5.2l.4-.1c.8 2.5 2.5 4.6 4.8 6l-.1.4c.1.1.1.3.1.5-.2.4-.4.9-.8 1.4-.2.2-.3.4-.4.7 0 .1-.1.2-.1.2-.2.5-.1 1 .4 1.2.4.2.9 0 1.2-.5 0-.1.1-.1.1-.2.1-.3.2-.5.2-.8.2-.6.3-1.1.6-1.5.1-.1.2-.1.4-.2l.2-.3c2.5 1 5.2 1 7.7 0l.2.3c.1 0 .3.1.4.3.2.4.4.8.6 1.4.1.3.1.5.2.8 0 .1.1.1.1.2.2.5.7.7 1.2.5.4-.2.6-.7.4-1.2 0-.1-.1-.2-.1-.2-.1-.3-.3-.4-.4-.7-.3-.5-.6-.9-.7-1.3-.1-.2 0-.4.1-.5 0 0-.1-.2-.1-.3 2.3-1.4 4-3.5 4.8-6 .1 0 .3 0 .4.1.1-.1.2-.2.5-.2.4.1.9.2 1.5.4.3.1.5.2.7.3h.2c.5.1 1-.2 1.1-.6-.7-.5-1-.9-1.5-1.1zm-6.6-6.8-3.3 2.9c-.3.3-.3.7-.1 1 .1.1.2.2.4.2l4.2 1.2c.1-.9 0-1.9-.2-2.8-.2-.8-.5-1.7-1-2.5zm-6.7 8.9c-.1-.2-.4-.4-.7-.4-.3 0-.5.2-.6.4L518 619c1.8.6 3.7.6 5.5 0l-2.1-3.8zm3.1-2.2c-.2 0-.3 0-.5.1-.4.2-.5.6-.4 1l1.7 4.1c1.6-1 2.8-2.6 3.5-4.4l-4.3-.8z"}))))};var ps,_s,fs,zs,Ns,Ms,Is,Ds,ys,xs,gs,us,bs,Vs,Ss,Ls,Xs,Gs,Hs,Cs,ws,ks,Ps,Us,Os,Ts,Bs,Fs,Zs,js,Ks,As,qs,Ws,Rs,Js,Ys,Qs,$s,el,tl,al,sl,ll,cl,ml,rl,nl,hl,il,dl,El,ol,vl,pl,_l,fl,zl,Nl,Ml,Il,Dl,yl,xl,gl,ul,bl,Vl,Sl,Ll,Xl,Gl,Hl,Cl,wl,kl,Pl,Ul,Ol,Tl,Bl,Fl,Zl,jl,Kl,Al,ql,Wl,Rl,Jl,Yl,Ql,$l,ec,tc,ac,sc,lc,cc,mc,rc,nc,hc,ic,dc,Ec,oc,vc,pc,_c,fc,zc,Nc,Mc,Ic,Dc,yc,xc,gc,uc,bc;function Vc(){return Vc=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:a,...l}=e;return s.createElement("svg",Vc({id:"\\u56FE\\u5C42_1",xmlns:"http://www.w3.org/2000/svg",x:0,y:0,viewBox:"312 -320 1220 670",style:{enableBackground:"new 312 -320 1220 670"},xmlSpace:"preserve","aria-labelledby":a},l),t?s.createElement("title",{id:a},t):null,ps||(ps=s.createElement("style",null,".st0{fill:#fff}.st1{fill:#edf0fd}.st2{fill:#4461eb}.st3{font-family:'PingFang-SC-Medium'}.st4{font-size:20px}.st5{opacity:.93}.st6{font-family:'PingFang-SC-Bold'}.st7{font-size:24px}.st8{opacity:.8}.st9{opacity:.7}")),_s||(_s=s.createElement("path",{className:"st0",d:"M312-320h1220v670H312z"})),fs||(fs=s.createElement("path",{className:"st1",d:"M332-230.3h1180v210H332zM332 .2h1180v260H332z"})),zs||(zs=s.createElement("path",{className:"st0",d:"M352.5 50.4h219v39h-219z"})),Ns||(Ns=s.createElement("path",{className:"st2",d:"M571 50.9v38H353v-38h218m1-1H352v40h220v-40z"})),Ms||(Ms=s.createElement("text",{transform:"translate(421.964 77.068)",className:"st2 st3 st4",id:"XMLID_218_"},"\u7528\u6237\u7ba1\u7406")),Is||(Is=s.createElement("path",{className:"st0",d:"M582.5 50.4h219v39h-219z"})),Ds||(Ds=s.createElement("path",{className:"st2",d:"M801 50.9v38H583v-38h218m1-1H582v40h220v-40z"})),ys||(ys=s.createElement("text",{transform:"translate(661.964 75.88)",className:"st2 st3 st4",id:"XMLID_6_"},"\u7ec4\u7ba1\u7406")),xs||(xs=s.createElement("path",{className:"st0",d:"M812.5 50.4h219v39h-219z"})),gs||(gs=s.createElement("path",{className:"st2",d:"M1031 50.9v38H813v-38h218m1-1H812v40h220v-40z"})),us||(us=s.createElement("path",{className:"st0",d:"M812.5 100.4h219v39h-219z"})),bs||(bs=s.createElement("path",{className:"st2",d:"M1031 100.9v38H813v-38h218m1-1H812v40h220v-40z"})),Vs||(Vs=s.createElement("text",{transform:"translate(881.964 75.88)",className:"st2 st3 st4",id:"XMLID_1_"},"\u670d\u52a1\u8d26\u53f7")),Ss||(Ss=s.createElement("path",{className:"st0",d:"M352.5 100.4h219v39h-219z"})),Ls||(Ls=s.createElement("path",{className:"st2",d:"M571 100.9v38H353v-38h218m1-1H352v40h220v-40z"})),Xs||(Xs=s.createElement("text",{transform:"translate(411.964 127.068)",className:"st2 st3 st4",id:"XMLID_45_"},"\u81ea\u5b9a\u4e49\u83dc\u5355")),Gs||(Gs=s.createElement("text",{transform:"translate(874.29 125.88)",className:"st2 st3 st4",id:"XMLID_65_"},"OIDC \u8ba4\u8bc1")),Hs||(Hs=s.createElement("path",{className:"st0",d:"M1042.5 50.4h219v39h-219z"})),Cs||(Cs=s.createElement("path",{className:"st2",d:"M1261 50.9v38h-218v-38h218m1-1h-220v40h220v-40z"})),ws||(ws=s.createElement("text",{transform:"translate(1111.964 75.88)",className:"st2 st3 st4",id:"XMLID_82_"},"\u8d26\u53f7\u96c6\u6210")),ks||(ks=s.createElement("path",{className:"st0",d:"M1272.5 50.4h219v39h-219z"})),Ps||(Ps=s.createElement("path",{className:"st2",d:"M1491 50.9v38h-218v-38h218m1-1h-220v40h220v-40z"})),Us||(Us=s.createElement("path",{className:"st0",d:"M452.4-179.7h199v39h-199z"})),Os||(Os=s.createElement("path",{className:"st2",d:"M650.9-179.2v38h-198v-38h198m1-1h-200v40h200v-40z"})),Ts||(Ts=s.createElement("path",{className:"st0",d:"M662.5-179.7h199v39h-199z"})),Bs||(Bs=s.createElement("path",{className:"st2",d:"M861-179.2v38H663v-38h198m1-1H662v40h200v-40z"})),Fs||(Fs=s.createElement("path",{className:"st0",d:"M872.5-179.7h199v39h-199z"})),Zs||(Zs=s.createElement("path",{className:"st2",d:"M1071-179.2v38H873v-38h198m1-1H872v40h200v-40z"})),js||(js=s.createElement("path",{className:"st0",d:"M1082.5-179.7h199v39h-199z"})),Ks||(Ks=s.createElement("path",{className:"st2",d:"M1281-179.2v38h-198v-38h198m1-1h-200v40h200v-40z"})),As||(As=s.createElement("path",{className:"st0",d:"M1292.5-179.7h199v39h-199z"})),qs||(qs=s.createElement("path",{className:"st2",d:"M1491-179.2v38h-198v-38h198m1-1h-200v40h200v-40z"})),Ws||(Ws=s.createElement("path",{className:"st0",d:"M582.5 100.4h219v39h-219z"})),Rs||(Rs=s.createElement("path",{className:"st2",d:"M801 100.9v38H583v-38h218m1-1H582v40h220v-40z"})),Js||(Js=s.createElement("path",{className:"st0",d:"M1042.5 100.4h219v39h-219z"})),Ys||(Ys=s.createElement("path",{className:"st2",d:"M1261 100.9v38h-218v-38h218m1-1h-220v40h220v-40z"})),Qs||(Qs=s.createElement("path",{className:"st0",d:"M1272.5 100.4h219v39h-219z"})),$s||($s=s.createElement("path",{className:"st2",d:"M1491 100.9v38h-218v-38h218m1-1h-220v40h220v-40z"})),el||(el=s.createElement("path",{className:"st0",d:"M812.5 150.4h219v39h-219z"})),tl||(tl=s.createElement("path",{className:"st2",d:"M1031 150.9v38H813v-38h218m1-1H812v40h220v-40z"})),al||(al=s.createElement("path",{className:"st0",d:"M582.5 150.4h219v39h-219z"})),sl||(sl=s.createElement("path",{className:"st2",d:"M801 150.9v38H583v-38h218m1-1H582v40h220v-40z"})),ll||(ll=s.createElement("path",{className:"st0",d:"M1042.5 150.4h219v39h-219z"})),cl||(cl=s.createElement("path",{className:"st2",d:"M1261 150.9v38h-218v-38h218m1-1h-220v40h220v-40z"})),ml||(ml=s.createElement("path",{className:"st0",d:"M1272.5 150.4h219v39h-219z"})),rl||(rl=s.createElement("path",{className:"st2",d:"M1491 150.9v38h-218v-38h218m1-1h-220v40h220v-40z"})),nl||(nl=s.createElement("text",{transform:"translate(1341.964 75.88)",className:"st2 st3 st4",id:"XMLID_84_"},"\u5355\u70b9\u767b\u5f55")),hl||(hl=s.createElement("path",{className:"st0",d:"M352.5 150.4h219v39h-219z"})),il||(il=s.createElement("path",{className:"st2",d:"M571 150.9v38H353v-38h218m1-1H352v40h220v-40z"})),dl||(dl=s.createElement("text",{transform:"translate(421.964 177.068)",className:"st2 st3 st4",id:"XMLID_95_"},"\u79df\u6237\u7ba1\u7406")),El||(El=s.createElement("path",{className:"st0",d:"M352.5 200.5h372v39h-372z"})),ol||(ol=s.createElement("path",{className:"st2",d:"M724 201v38H353v-38h371m1-1H352v40h373v-40z"})),vl||(vl=s.createElement("path",{className:"st0",d:"M735.5 200.5h372v39h-372z"})),pl||(pl=s.createElement("path",{className:"st2",d:"M1107 201v38H736v-38h371m1-1H735v40h373v-40z"})),_l||(_l=s.createElement("path",{className:"st0",d:"M1119.5 200.5h372v39h-372z"})),fl||(fl=s.createElement("path",{className:"st2",d:"M1491 201v38h-371v-38h371m1-1h-373v40h373v-40z"})),zl||(zl=s.createElement("text",{transform:"translate(488.464 227.089)",className:"st2 st3 st4",id:"XMLID_105_"},"\u591a\u96c6\u7fa4\u7eb3\u7ba1")),Nl||(Nl=s.createElement("text",{transform:"translate(860.184 225.9)",className:"st2 st3 st4",id:"XMLID_103_"},"K8s \u8d44\u6e90\u7ba1\u7406")),Ml||(Ml=s.createElement("text",{transform:"translate(1265.464 225.9)",className:"st2 st3 st4",id:"XMLID_101_"},"\u8282\u70b9\u7ba1\u7406")),Il||(Il=s.createElement("text",{transform:"translate(1111.964 175.88)",className:"st2 st3 st4",id:"XMLID_99_"},"\u89d2\u8272\u6a21\u677f")),Dl||(Dl=s.createElement("text",{transform:"translate(1341.964 175.88)",className:"st2 st3 st4",id:"XMLID_88_"},"\u64cd\u4f5c\u5ba1\u8ba1")),yl||(yl=s.createElement("g",{id:"XMLID_293_",className:"st5"},s.createElement("text",{transform:"translate(511.9 -154.297)",className:"st2 st3 st4"},"\u5f00\u653e\u5171\u4eab"))),xl||(xl=s.createElement("g",{id:"XMLID_3_",className:"st5"},s.createElement("text",{transform:"translate(721.964 -154.296)",className:"st2 st3 st4"},"\u8ba2\u9605\u7ec4\u4ef6"))),gl||(gl=s.createElement("g",{id:"XMLID_14_",className:"st5"},s.createElement("text",{transform:"translate(931.964 -154.296)",className:"st2 st3 st4"},"\u66f4\u65b0\u63a8\u9001"))),ul||(ul=s.createElement("g",{id:"XMLID_16_",className:"st5"},s.createElement("text",{transform:"translate(1149.694 -154.296)",className:"st2 st3 st4"},"AI \u8bc4\u6d4b"))),bl||(bl=s.createElement("g",{id:"XMLID_18_",className:"st5"},s.createElement("text",{transform:"translate(1331.254 -154.296)",className:"st2 st3 st4"},"RBAC \u53ef\u89c6\u5316"))),Vl||(Vl=s.createElement("g",{id:"XMLID_2_",className:"st5"},s.createElement("text",{transform:"translate(351.964 -154.296)",className:"st2 st3 st4"},"\u7ec4\u4ef6\u5e02\u573a"))),Sl||(Sl=s.createElement("path",{className:"st0",d:"M452.4-129.8h199v39h-199z"})),Ll||(Ll=s.createElement("path",{className:"st2",d:"M650.9-129.3v38h-198v-38h198m1-1h-200v40h200v-40z"})),Xl||(Xl=s.createElement("path",{className:"st0",d:"M662.5-129.8h199v39h-199z"})),Gl||(Gl=s.createElement("path",{className:"st2",d:"M861-129.3v38H663v-38h198m1-1H662v40h200v-40z"})),Hl||(Hl=s.createElement("path",{className:"st0",d:"M872.5-129.8h199v39h-199z"})),Cl||(Cl=s.createElement("path",{className:"st2",d:"M1071-129.3v38H873v-38h198m1-1H872v40h200v-40z"})),wl||(wl=s.createElement("path",{className:"st0",d:"M1082.5-129.8h199v39h-199z"})),kl||(kl=s.createElement("path",{className:"st2",d:"M1281-129.3v38h-198v-38h198m1-1h-200v40h200v-40z"})),Pl||(Pl=s.createElement("path",{className:"st0",d:"M1292.5-129.8h199v39h-199z"})),Ul||(Ul=s.createElement("path",{className:"st2",d:"M1491-129.3v38h-198v-38h198m1-1h-200v40h200v-40z"})),Ol||(Ol=s.createElement("g",{id:"XMLID_79_",className:"st5"},s.createElement("text",{transform:"translate(511.9 -104.38)",className:"st2 st3 st4"},"\u53d1\u5e03\u7ec4\u4ef6"))),Tl||(Tl=s.createElement("g",{id:"XMLID_77_",className:"st5"},s.createElement("text",{transform:"translate(721.964 -104.38)",className:"st2 st3 st4"},"\u5b89\u88c5\u7ec4\u4ef6"))),Bl||(Bl=s.createElement("g",{id:"XMLID_75_",className:"st5"},s.createElement("text",{transform:"translate(931.964 -104.38)",className:"st2 st3 st4"},"\u7248\u672c\u7ba1\u7406"))),Fl||(Fl=s.createElement("g",{id:"XMLID_73_",className:"st5"},s.createElement("text",{transform:"translate(1141.964 -104.38)",className:"st2 st3 st4"},"\u4e00\u952e\u56de\u6eda"))),Zl||(Zl=s.createElement("g",{id:"XMLID_71_",className:"st5"},s.createElement("text",{transform:"translate(1341.964 -104.38)",className:"st2 st3 st4"},"\u4f4e\u4ee3\u7801\u5e73\u53f0"))),jl||(jl=s.createElement("g",{id:"XMLID_9_",className:"st5"},s.createElement("text",{transform:"translate(351.964 -104.38)",className:"st2 st3 st4"},"\u7ec4\u4ef6\u7ba1\u7406"))),Kl||(Kl=s.createElement("path",{className:"st0",d:"M452.4-79.8h199v39h-199z"})),Al||(Al=s.createElement("path",{className:"st2",d:"M650.9-79.3v38h-198v-38h198m1-1h-200v40h200v-40z"})),ql||(ql=s.createElement("path",{className:"st0",d:"M662.5-79.8h199v39h-199z"})),Wl||(Wl=s.createElement("path",{className:"st2",d:"M861-79.3v38H663v-38h198m1-1H662v40h200v-40z"})),Rl||(Rl=s.createElement("path",{className:"st0",d:"M872.5-79.8h199v39h-199z"})),Jl||(Jl=s.createElement("path",{className:"st2",d:"M1071-79.3v38H873v-38h198m1-1H872v40h200v-40z"})),Yl||(Yl=s.createElement("path",{className:"st0",d:"M1082.5-79.8h199v39h-199z"})),Ql||(Ql=s.createElement("path",{className:"st2",d:"M1281-79.3v38h-198v-38h198m1-1h-200v40h200v-40z"})),$l||($l=s.createElement("path",{className:"st0",d:"M1292.5-79.8h199v39h-199z"})),ec||(ec=s.createElement("path",{className:"st2",d:"M1491-79.3v38h-198v-38h198m1-1h-200v40h200v-40z"})),tc||(tc=s.createElement("g",{id:"XMLID_195_",className:"st5"},s.createElement("text",{transform:"translate(511.9 -54.38)",className:"st2 st3 st4"},"\u5b98\u65b9\u4ed3\u5e93"))),ac||(ac=s.createElement("g",{id:"XMLID_193_",className:"st5"},s.createElement("text",{transform:"translate(711.964 -54.38)",className:"st2 st3 st4"},"\u81ea\u5b9a\u4e49\u4ed3\u5e93"))),sc||(sc=s.createElement("g",{id:"XMLID_191_",className:"st5"},s.createElement("text",{transform:"translate(931.964 -54.38)",className:"st2 st3 st4"},"\u5b89\u5168\u8ba4\u8bc1"))),lc||(lc=s.createElement("g",{id:"XMLID_189_",className:"st5"},s.createElement("text",{transform:"translate(1141.964 -54.38)",className:"st2 st3 st4"},"\u4ed3\u5e93\u540c\u6b65"))),cc||(cc=s.createElement("g",{id:"XMLID_187_",className:"st5"},s.createElement("text",{transform:"translate(1351.964 -54.38)",className:"st2 st3 st4"},"\u7ec4\u4ef6\u8fc7\u6ee4"))),mc||(mc=s.createElement("g",{id:"XMLID_69_",className:"st5"},s.createElement("text",{transform:"translate(351.964 -54.38)",className:"st2 st3 st4"},"\u4ed3\u5e93\u7ba1\u7406"))),rc||(rc=s.createElement("g",{id:"XMLID_5_",className:"st5"},s.createElement("text",{transform:"translate(873.964 -197.442)",className:"st2 st6 st7"},"\u7ec4\u4ef6\u5e02\u573a"))),nc||(nc=s.createElement("g",{id:"XMLID_7_",className:"st5"},s.createElement("text",{transform:"translate(861.964 33.2)",className:"st2 st6 st7"},"\u7ba1\u7406\u5de5\u4f5c\u53f0"))),hc||(hc=s.createElement("g",{className:"st8"},s.createElement("path",{className:"st2",d:"M332-300.3h380v50H332z"}))),ic||(ic=s.createElement("g",{className:"st8"},s.createElement("path",{className:"st2",d:"M732-300.3h380v50H732z"}))),dc||(dc=s.createElement("g",{className:"st8"},s.createElement("path",{className:"st2",d:"M1132-300.3h380v50h-380z"}))),Ec||(Ec=s.createElement("text",{transform:"translate(485.964 -268.474)",className:"st0 st6 st7"},"\u5f00\u53d1\u8005")),oc||(oc=s.createElement("g",{className:"st9"},s.createElement("path",{className:"st2",d:"M332 280.3h280v50H332z"}))),vc||(vc=s.createElement("g",{className:"st9"},s.createElement("path",{className:"st2",d:"M632 280.3h280v50H632z"}))),pc||(pc=s.createElement("g",{className:"st9"},s.createElement("path",{className:"st2",d:"M932 280.3h280v50H932z"}))),_c||(_c=s.createElement("g",{className:"st9"},s.createElement("path",{className:"st2",d:"M1232 280.3h280v50h-280z"}))),fc||(fc=s.createElement("text",{transform:"translate(422.032 312.15)",className:"st0 st6 st7"},"\u539f\u751f K8s")),zc||(zc=s.createElement("text",{transform:"translate(682.036 312.15)",className:"st0 st6 st7"},"\u516c\u6709\u4e91 K8s \u670d\u52a1")),Nc||(Nc=s.createElement("text",{transform:"translate(1282.036 312.15)",className:"st0 st6 st7"},"\u5176\u4ed6 K8s \u53d1\u884c\u7248")),Mc||(Mc=s.createElement("text",{transform:"translate(849.964 -268.474)",className:"st0 st6 st7"},"\u751f\u6001\u5408\u4f5c\u4f19\u4f34")),Ic||(Ic=s.createElement("text",{transform:"translate(1273.964 -268.474)",className:"st0 st6 st7"},"\u4f01\u4e1a\u7528\u6237")),Dc||(Dc=s.createElement("text",{transform:"translate(659 125.88)",className:"st2 st3 st4",id:"XMLID_49_"},"\u81ea\u5b9a\u4e49\u95e8\u6237")),yc||(yc=s.createElement("text",{transform:"translate(651.964 175.88)",className:"st2 st3 st4",id:"XMLID_93_"},"\u9879\u76ee\u7ba1\u7406")),xc||(xc=s.createElement("text",{transform:"translate(871.254 175.88)",className:"st2 st3 st4",id:"XMLID_91_"},"RBAC \u6743\u9650")),gc||(gc=s.createElement("text",{transform:"translate(1111.964 125.88)",className:"st2 st3 st4",id:"XMLID_89_"},"\u89d2\u8272\u7ba1\u7406")),uc||(uc=s.createElement("text",{transform:"translate(1329.145 125.88)",className:"st2 st3 st4",id:"XMLID_86_"},"Kubeconfig")),bc||(bc=s.createElement("text",{transform:"translate(1016.633 312.15)",className:"st0 st6 st7"},"Openshift")))};var Lc,Xc,Gc,Hc,Cc,wc,kc,Pc,Uc,Oc,Tc,Bc,Fc,Zc,jc,Kc,Ac;function qc(){return qc=Object.assign?Object.assign.bind():function(e){for(var t=1;t{let{title:t,titleId:a,...l}=e;return s.createElement("svg",qc({id:"\\u56FE\\u5C42_1",xmlns:"http://www.w3.org/2000/svg",x:0,y:0,viewBox:"0 0 1220 240",style:{enableBackground:"new 0 0 1220 240"},xmlSpace:"preserve","aria-labelledby":a},l),t?s.createElement("title",{id:a},t):null,Lc||(Lc=s.createElement("style",null,".st1{fill:#4461eb}.st2{fill:#fff}.st3{opacity:.9}.st4{font-family:'PingFang-SC-Medium'}.st5{font-size:20px}.st6{opacity:.7}.st7{font-family:'PingFang-SC-Regular'}.st8{font-size:16px}")),s.createElement("path",{style:{fill:"#f5f7fc"},d:"M0 0h1220v240H0z"}),Xc||(Xc=s.createElement("path",{id:"XMLID_84_",className:"st1",d:"M752 118.8h100v1H752z"})),Gc||(Gc=s.createElement("path",{id:"XMLID_83_",className:"st1",d:"m852 114.8 6 4.5-6 4.5z"})),Hc||(Hc=s.createElement("path",{id:"XMLID_64_",className:"st1",d:"M362 118.8h100v1H362z"})),Cc||(Cc=s.createElement("path",{id:"XMLID_23_",className:"st1",d:"m462 114.8 6 4.5-6 4.5z"})),wc||(wc=s.createElement("path",{className:"st2",d:"M80 39.3h280v160H80z"})),kc||(kc=s.createElement("g",{id:"XMLID_293_",className:"st3"},s.createElement("text",{transform:"translate(157.81 141.928)",className:"st4 st5"},"\u4e0b\u8f7d CLI \u5de5\u5177"))),Pc||(Pc=s.createElement("g",{id:"XMLID_59_",className:"st6"},s.createElement("text",{transform:"translate(120.217 169.428)",className:"st7 st8"},"https://github.com/kubebb"))),Uc||(Uc=s.createElement("path",{className:"st1",d:"M238.7 77.5h-12.5V65h-12.5v12.5h-12.5L220 95l18.7-17.5zM201.2 100v5h37.5v-5h-37.5z"})),Oc||(Oc=s.createElement("path",{className:"st2",d:"M470 39.3h280v160H470z"})),Tc||(Tc=s.createElement("g",{id:"XMLID_2_",className:"st3"},s.createElement("text",{transform:"translate(551.04 141.928)",className:"st4 st5"},"\u542f\u52a8 Kubebb"))),Bc||(Bc=s.createElement("g",{id:"XMLID_20_",className:"st6"},s.createElement("text",{transform:"translate(523.337 169.428)",className:"st7 st8"},"\u4e00\u952e\u90e8\u7f72\u3001\u542f\u52a8 Kubebb"))),Fc||(Fc=s.createElement("path",{className:"st1",d:"M610 65c-11.1 0-20 9-20 20s9 20 20 20c11.1 0 20-9 20-20 0-11.1-8.9-20-20-20zm9.8 21.1L606.3 94c-.9.5-2.1-.1-2.1-1.2V77.2c0-1.1 1.1-1.7 2.1-1.2l13.5 7.8c.9.5.9 1.8 0 2.3z"})),Zc||(Zc=s.createElement("path",{className:"st2",d:"M860 39.3h280v160H860z"})),jc||(jc=s.createElement("g",{id:"XMLID_74_",className:"st3"},s.createElement("text",{transform:"translate(930 141.928)",className:"st4 st5"},"\u5b89\u88c5\u3001\u4f53\u9a8c\u7ec4\u4ef6"))),Kc||(Kc=s.createElement("g",{id:"XMLID_29_",className:"st6"},s.createElement("text",{transform:"translate(872 169.428)",className:"st7 st8"},"\u8fdb\u5165\u7ec4\u4ef6\u5e02\u573a\uff0c\u5b89\u88c5\u5e76\u4f53\u9a8c\u5185\u7f6e\u7ec4\u4ef6"))),Ac||(Ac=s.createElement("path",{className:"st1",d:"M1000.8 89.8c-3.2 1.5-7.1 1-9.8-1.6-2.4-2.4-3-5.7-2.1-8.6.5-.1.7-.1 1.2-.3l2.7 2.9h2.5l1.8-1.8v-2.5l-2.9-2.7c.1-.5.1-.7.3-1.2 3-1 6.3-.3 8.7 2.1 2.6 2.6 3.2 6.6 1.7 9.8L1016 97c2.5-3.3 4-7.5 4-12 0-11-9-20-20-20s-20 9-20 20 9 20 20 20c4.5 0 8.6-1.5 12-4l-11.2-11.2z"})))},Rc=[{tab:"\u5e94\u7528\u573a\u666f",title:"\u5feb\u901f\u642d\u5efa\u60a8\u7684\u4e91\u539f\u751f\u5e73\u53f0",svg:s.createElement(rt,null),description:s.createElement(s.Fragment,null,"Kubebb \u63d0\u4f9b\u4e86\u591a\u96c6\u7fa4\u591a\u79df\u6237\u7ba1\u7406\u3001\u83dc\u5355\u7ba1\u7406\u3001\u89d2\u8272\u548c\u6210\u5458\u7ba1\u7406\u3001OIDC \u8ba4\u8bc1\u7b49\u5b8c\u5584\u7684\u5e73\u53f0\u57fa\u7840\u80fd\u529b\u3002\u5185\u7f6e\u5b98\u65b9\u7ec4\u4ef6\uff0c\u901a\u8fc7\u4e91\u68af\u4f4e\u4ee3\u7801\u7ec4\u4ef6\u53ef\u5feb\u901f\u53d1\u5e03\u60a8\u7684\u5e94\u7528\uff1b\u901a\u8fc7\u5fae\u670d\u52a1\u6846\u67b6\u6216\u670d\u52a1\u7f51\u683c\u7edf\u4e00\u7ba1\u7406\u548c\u6cbb\u7406\u60a8\u7684\u5e94\u7528\uff1b\u901a\u8fc7\u5e94\u7528\u6027\u80fd\u76d1\u63a7\u7edf\u4e00\u89c2\u6d4b\u670d\u52a1\u8c03\u7528\uff0c\u8bbe\u7f6e\u94fe\u8def\u544a\u8b66\u3002\u540c\u65f6\u60a8\u53ef\u53d1\u5e03\u81ea\u5b9a\u4e49\u7ec4\u4ef6\uff0c\u4f8b\u5982\u5bb9\u5668\u670d\u52a1\u7ec4\u4ef6\uff0c\u5f62\u6210\u5e94\u7528\u7684\u5168\u751f\u547d\u5468\u671f\u7684\u7ba1\u7406\u548c\u6cbb\u7406\u3002")},{tab:"\u9762\u5411\u4e91\u539f\u751f\u7684\u67b6\u6784",title:"\u9762\u5411\u4e91\u539f\u751f\u7684\u67b6\u6784",svg:s.createElement(vs,null),description:s.createElement(s.Fragment,null,"Kubebb(Kubernetes Building Blocks)\u662f\u4e00\u79cd\u7531\u5185\u6838\u9a71\u52a8\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\u5e73\u53f0\uff0c\u96c6\u6210\u5f00\u7bb1\u5373\u7528\u7684\u4e91\u539f\u751f\u5e95\u5ea7\u548c\u4f4e\u7801\u7ec4\u4ef6\u5f00\u53d1\u80fd\u529b\uff0c\u6574\u5408\u5b9e\u73b0\u4e91\u539f\u751f\u4e09\u5c42\u7ec4\u4ef6\u6a21\u5f0f\u3002")},{tab:"\u529f\u80fd\u67b6\u6784",title:"Kubebb \u529f\u80fd\u67b6\u6784",svg:s.createElement(Sc,null),description:s.createElement(s.Fragment,null,"kubebb\u90e8\u7f72\u540e\u63d0\u4f9b\u4e86\u591a\u96c6\u7fa4\u591a\u79df\u6237\u7ba1\u7406\u3001\u83dc\u5355\u7ba1\u7406\u3001\u89d2\u8272\u548c\u6210\u5458\u7ba1\u7406\u3001OIDC\u8ba4\u8bc1\u7b49\u5b8c\u5584\u7684\u5e73\u53f0\u57fa\u7840\u80fd\u529b\u3002\u540c\u65f6\u8fd8\u63d0\u4f9b\u7ec4\u4ef6\u5e02\u573a\u6a21\u5757\uff0c\u5305\u62ec\u5b98\u65b9\u4ed3\u5e93\u548c\u7528\u6237\u81ea\u5b9a\u4e49\u4ed3\u5e93\uff0c\u53d1\u5e03\u5f00\u6e90\u7ec4\u4ef6\u548c\u81ea\u5b9a\u4e49\u7ec4\u4ef6\uff0c\u5b9e\u73b0\u7ec4\u4ef6\u5171\u4eab\u3002")},{tab:"\u4f7f\u7528\u6d41\u7a0b",title:"Kubebb \u4f7f\u7528\u6d41\u7a0b",svg:s.createElement(Wc,null),description:s.createElement(s.Fragment,null,"Kubebb\u5feb\u901f\u5b89\u88c5\u4f7f\u7528\u6d41\u7a0b")}];function Jc(){const[e,t]=s.useState(0),a=Rc.find(((t,a)=>a===e));return s.createElement("section",{className:(0,l.Z)(o.frames)},s.createElement("div",{className:(0,l.Z)("container",o.title)},"Kubebb \u7ec4\u4ef6\u5168\u751f\u547d\u5468\u671f\u7ba1\u7406\u5e73\u53f0"),s.createElement("div",{className:"container"},s.createElement("div",{className:"row"},s.createElement("div",{className:(0,l.Z)("col col--4",o.tabs)},Rc.map(((a,c)=>s.createElement("div",{onClick:()=>{t(c)},className:(0,l.Z)(o.tab,c===e?o.active:void 0),key:c},a.tab))),s.createElement("div",{className:o.tabBg})),s.createElement("div",{className:(0,l.Z)("col col--8",o.content)},s.createElement("div",{className:o.contentTitle},a.title),s.createElement("div",{className:o.contentDesc},a.description),s.createElement("div",{className:o.contentSvg},a.svg)))))}const Yc={footerBanner:"footerBanner_xUpp",title:"title_lYU7"};function Qc(){return s.createElement("section",{className:Yc.footerBanner},s.createElement("div",{className:"container"},s.createElement("div",{className:Yc.title},"\u5728 Kubernetes \u4e0a\u4ee5\u642d\u79ef\u6728\u7684\u65b9\u5f0f\u6784\u5efa\u81ea\u5df1\u7684\u670d\u52a1\u95e8\u6237")))}const $c={heroBanner:"heroBanner_qdFl",circle1:"circle1_uIWk",circle2:"circle2_nWlH",buttons:"buttons_AeoN","banner-button":"banner-button_TZem",title:"title_GqtP",subtitle:"subtitle_RlPM",videoWrapper:"videoWrapper_XWWU",clickcards:"clickcards_JTg8",cardItem:"cardItem_rcou",cardjoin:"cardjoin_U3Ur",cardtitle:"cardtitle_fuGn",carddesc:"carddesc_HpeO"};function em(){const{siteConfig:e}=(0,m.Z)();return s.createElement("header",null,s.createElement("div",{className:(0,l.Z)($c.heroBanner)},s.createElement("div",{className:"container"},s.createElement("div",{className:"row"},s.createElement("div",{className:(0,l.Z)("col col--8")},s.createElement("div",{className:$c.title},e.title),s.createElement("div",{className:$c.subtitle},e.tagline),s.createElement("div",{className:$c.buttons},s.createElement(c.Z,{className:$c["banner-button"],to:"/docs/quick-start/quick-install"},"\u6559\u7a0b-5min \u2192"))),s.createElement("div",{className:(0,l.Z)("col col--4")},s.createElement("div",{className:$c.videoWrapper,onClick:()=>{window.open("https://cdn.tenxcloud.com/kubebb/kubebb_intro.mp4")}}))),s.createElement("div",{className:$c.circle1}),s.createElement("div",{className:$c.circle2}))),s.createElement("div",{className:(0,l.Z)("container",$c.clickcards)},s.createElement("div",{className:"row"},s.createElement(c.Z,{to:"/docs/intro",className:(0,l.Z)("col col--4",$c.cardItem)},s.createElement("div",{className:$c.cardtitle},"\u6838\u5fc3\u6280\u672f"),s.createElement("div",{className:$c.carddesc},"\u7531\u5185\u6838\u9a71\u52a8\u7684\u7ec4\u4ef6\u751f\u547d\u5468\u671f\u7ba1\u7406\uff0c\u96c6\u6210\u4e91\u539f\u751f\u5e95\u5ea7\u548c\u4f4e\u7801\u7ec4\u4ef6\uff0c\u6574\u5408\u5b9e\u73b0\u4e91\u539f\u751f\u4e09\u5c42\u7ec4\u4ef6\u6a21\u5f0f"),s.createElement("div",{className:(0,l.Z)($c.carddesc,$c.cardjoin)},"\u4e86\u89e3\u66f4\u591a \u2192")),s.createElement(c.Z,{to:"/docs/quick-start/quick-install",className:(0,l.Z)("col col--4",$c.cardItem)},s.createElement("div",{className:$c.cardtitle},"\u4f7f\u7528\u6559\u7a0b"),s.createElement("div",{className:$c.carddesc},"\u901a\u8fc7\u672c\u6559\u7a0b\uff0c\u53ef\u4ee5\u5feb\u901f\u642d\u5efa\u4e00\u4e2a\u57fa\u4e8e Kubebb \u7684\u95e8\u6237\u5e95\u5ea7\uff0c\u5e76\u5f00\u53d1\u4e00\u4e2a\u81ea\u5df1\u7684 Hello world \u7ec4\u4ef6\uff0c\u90e8\u7f72\u5230\u95e8\u6237\u4e0a\u8fdb\u884c\u4f53\u9a8c"),s.createElement("div",{className:(0,l.Z)($c.carddesc,$c.cardjoin)},"\u4e86\u89e3\u66f4\u591a \u2192")),s.createElement(c.Z,{href:"https://github.com/kubebb/core/issues",target:"_blank",className:(0,l.Z)("col col--4",$c.cardItem)},s.createElement("div",{className:$c.cardtitle},"\u5f00\u6e90\u793e\u533a"),s.createElement("div",{className:$c.carddesc},"\u52a0\u5165\u793e\u533a\u83b7\u5f97\u5e2e\u52a9\uff0c\u53c2\u4e0e\u4e92\u52a8\u5e76\u83b7\u53d6 Kubebb \u7684\u6700\u65b0\u6d88\u606f\uff01"),s.createElement("div",{className:(0,l.Z)($c.carddesc,$c.cardjoin)},"\u52a0\u5165\u6211\u4eec \u2192")))))}function tm(){const{siteConfig:e}=(0,m.Z)();return s.createElement(r.Z,{title:`Homepage of ${e.title}`,description:"Description will go into a meta tag in "},s.createElement(em,null),s.createElement("main",null,s.createElement(E,null),s.createElement(Jc,null),s.createElement(Qc,null)))}}}]); \ No newline at end of file diff --git a/assets/js/c64e4644.78a6930d.js b/assets/js/c64e4644.40eecd43.js similarity index 62% rename from assets/js/c64e4644.78a6930d.js rename to assets/js/c64e4644.40eecd43.js index 1588d7244..3e129e8d9 100644 --- a/assets/js/c64e4644.78a6930d.js +++ b/assets/js/c64e4644.40eecd43.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1669],{1645:e=>{e.exports=JSON.parse('{"title":"\u5185\u6838Kit","description":"\u7ba1\u7406\u7ec4\u4ef6\u751f\u547d\u5468\u671f","slug":"/category/\u5185\u6838kit","permalink":"/website/docs/category/\u5185\u6838kit","navigation":{"previous":{"title":"\u4f53\u9a8c\u81ea\u5b9a\u4e49\u914d\u7f6e","permalink":"/website/docs/quick-start/try_customization"},"next":{"title":"\u4ecb\u7ecd","permalink":"/website/docs/core/intro"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1669],{1645:e=>{e.exports=JSON.parse('{"title":"\u5185\u6838Kit","description":"\u7ba1\u7406\u7ec4\u4ef6\u751f\u547d\u5468\u671f","slug":"/category/\u5185\u6838kit","permalink":"/website/docs/category/\u5185\u6838kit","navigation":{"previous":{"title":"\u603b\u89c8","permalink":"/website/docs/develop-guid/intro"},"next":{"title":"\u4ecb\u7ecd","permalink":"/website/docs/develop-guid/core/intro"}}}')}}]); \ No newline at end of file diff --git a/assets/js/c650a001.389e1bbe.js b/assets/js/c650a001.389e1bbe.js deleted file mode 100644 index 00a6c94b7..000000000 --- a/assets/js/c650a001.389e1bbe.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3497],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>y});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var c=n.createContext({}),l=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},u=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=l(r),b=o,y=p["".concat(c,".").concat(b)]||p[b]||d[b]||i;return r?n.createElement(y,a(a({ref:t},u),{},{components:r})):n.createElement(y,a({ref:t},u))}));function y(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=r.length,a=new Array(i);a[0]=b;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[p]="string"==typeof e?e:o,a[1]=s;for(var l=2;l{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>l});var n=r(7462),o=(r(7294),r(3905));const i={sidebar_position:5},a="\u751f\u6210 oidc-proxy \u7684\u8bc1\u4e66",s={unversionedId:"building-base/configuration/issue-oidc-proxy-certs",id:"building-base/configuration/issue-oidc-proxy-certs",title:"\u751f\u6210 oidc-proxy \u7684\u8bc1\u4e66",description:"\u4f7f\u7528\u573a\u666f\uff1a",source:"@site/docs/building-base/configuration/issue-oidc-proxy-certs.md",sourceDirName:"building-base/configuration",slug:"/building-base/configuration/issue-oidc-proxy-certs",permalink:"/website/docs/building-base/configuration/issue-oidc-proxy-certs",draft:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"\u96c6\u6210\u5355\u70b9\u767b\u5f55",permalink:"/website/docs/building-base/configuration/oidc-integration"},next:{title:"\u4f4e\u7801 Kit",permalink:"/website/docs/category/\u4f4e\u7801-kit"}},c={},l=[{value:"\u4f7f\u7528\u573a\u666f\uff1a",id:"\u4f7f\u7528\u573a\u666f",level:4},{value:"\u524d\u63d0\u6761\u4ef6\uff1a",id:"\u524d\u63d0\u6761\u4ef6",level:4},{value:"\u5177\u4f53\u6b65\u9aa4",id:"\u5177\u4f53\u6b65\u9aa4",level:4}],u={toc:l},p="wrapper";function d(e){let{components:t,...r}=e;return(0,o.kt)(p,(0,n.Z)({},u,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"\u751f\u6210-oidc-proxy-\u7684\u8bc1\u4e66"},"\u751f\u6210 oidc-proxy \u7684\u8bc1\u4e66"),(0,o.kt)("h4",{id:"\u4f7f\u7528\u573a\u666f"},"\u4f7f\u7528\u573a\u666f\uff1a"),(0,o.kt)("p",null,"\u5982\u679c\u65e0\u6cd5\u83b7\u53d6\u5230 Kubernetes \u7684 ca \u8bc1\u4e66\uff0c\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u9881\u53d1 kube-oidc-proxy \u7684\u8bc1\u4e66"),(0,o.kt)("h4",{id:"\u524d\u63d0\u6761\u4ef6"},"\u524d\u63d0\u6761\u4ef6\uff1a"),(0,o.kt)("p",null,"OpenSSL tools\nKubernetes cluster"),(0,o.kt)("h4",{id:"\u5177\u4f53\u6b65\u9aa4"},"\u5177\u4f53\u6b65\u9aa4"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"save the openssl.cnf")),(0,o.kt)("p",null,"[ req ]","\ndistinguished_name = dn\n","[ dn ]","\nCN = kube-oidc-proxy\n","[ req_ext ]","\nsubjectAltName = @alt_names\n","[ alt_names ]","\nDNS.2 = kube-oidc-proxy\nDNS.3 = kube-oidc-proxy.addon-system\nDNS.4 = kube-oidc-proxy.addon-system.svc\nIP.1 = 172.22.99.227 # need update"),(0,o.kt)("ol",{start:2},(0,o.kt)("li",{parentName:"ol"},"generate the private key of oidc-proxy")),(0,o.kt)("p",null,"openssl genrsa -out server.key 2048"),(0,o.kt)("ol",{start:3},(0,o.kt)("li",{parentName:"ol"},"generate the sever.csr of oidc-proxy")),(0,o.kt)("p",null,"openssl req -new \\",(0,o.kt)("br",{parentName:"p"}),"\n",'-sha256 \\\n-key server.key \\\n-subj "/CN=kube-oidc-proxy" \\\n-reqexts req_ext \\\n-config openssl.cnf \\\n-out server.csr'),(0,o.kt)("ol",{start:4},(0,o.kt)("li",{parentName:"ol"},"generate the base64 content of server.csr")),(0,o.kt)("p",null,'cat server.csr | base64 | tr -d "\\n"'),(0,o.kt)("ol",{start:5},(0,o.kt)("li",{parentName:"ol"},"create certificateSigningRequest in kubernetes cluster for oidc-proxy")),(0,o.kt)("p",null,"the request value need to replace the output content generated by Step 4 "),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"cat <\n signerName: kubernetes.io/kube-apiserver-client\n usages:\n - client auth\nEOF\n")),(0,o.kt)("p",null,"6 approval the certificatesigningRequest"),(0,o.kt)("p",null,"kubectl certificate approve myuser"),(0,o.kt)("ol",{start:7},(0,o.kt)("li",{parentName:"ol"},"get the certifcate of oidc-proxy issuer by kubernetes cluster")),(0,o.kt)("p",null,"kubectl get csr myuser -oyaml | grep certificate: | awk '{print $2}' |base64 -d > ./server.cert"),(0,o.kt)("ol",{start:8},(0,o.kt)("li",{parentName:"ol"},"after the step above, you get the server.key and server.cert and can rename the server.key and server.cert that you want. you can create secret for oidc-proxy by command:")),(0,o.kt)("p",null,"kubectl create secret"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cc6abd7b.fff0d3ef.js b/assets/js/cc6abd7b.fff0d3ef.js new file mode 100644 index 000000000..0d98e7023 --- /dev/null +++ b/assets/js/cc6abd7b.fff0d3ef.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[622],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>g});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var i=r.createContext({}),s=function(e){var t=r.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(i.Provider,{value:t},e.children)},d="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,p=e.originalType,i=e.parentName,c=o(e,["components","mdxType","originalType","parentName"]),d=s(n),u=a,g=d["".concat(i,".").concat(u)]||d[u]||m[u]||p;return n?r.createElement(g,l(l({ref:t},c),{},{components:n})):r.createElement(g,l({ref:t},c))}));function g(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var p=n.length,l=new Array(p);l[0]=u;var o={};for(var i in t)hasOwnProperty.call(t,i)&&(o[i]=t[i]);o.originalType=e,o[d]="string"==typeof e?e:a,l[1]=o;for(var s=2;s{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>l,default:()=>m,frontMatter:()=>p,metadata:()=>o,toc:()=>s});var r=n(7462),a=(n(7294),n(3905));const p={sidebar_position:3},l="BFF \u5c42 API \u5f00\u53d1",o={unversionedId:"develop-guid/lowcode-development/development/bff-apis",id:"develop-guid/lowcode-development/development/bff-apis",title:"BFF \u5c42 API \u5f00\u53d1",description:"\u672c\u7ae0\u8282\u5bf9 Kubebb \u7684 BFF \u5c42\u8fdb\u884c\u8be6\u7ec6\u4ecb\u7ecd\uff0c\u5305\u62ec\u5982\u4f55\u4f7f\u7528 GraphQL \u5feb\u901f\u5f00\u53d1 BFF \u5c42\u7684 API",source:"@site/docs/develop-guid/lowcode-development/development/bff-apis.md",sourceDirName:"develop-guid/lowcode-development/development",slug:"/develop-guid/lowcode-development/development/bff-apis",permalink:"/website/docs/develop-guid/lowcode-development/development/bff-apis",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"\u524d\u7aef\u5c42\u57fa\u4e8e\u4f4e\u7801 Kit \u7684\u5f00\u53d1",permalink:"/website/docs/develop-guid/lowcode-development/development/frontend-low-code"},next:{title:"\u53d1\u5e03\u7ec4\u4ef6",permalink:"/website/docs/develop-guid/lowcode-development/development/develop-hello-world"}},i={},s=[{value:"\u67b6\u6784\u6982\u8ff0",id:"\u67b6\u6784\u6982\u8ff0",level:3},{value:"\u5982\u4f55\u5de5\u4f5c\u7684",id:"\u5982\u4f55\u5de5\u4f5c\u7684",level:3},{value:"\u5feb\u901f\u5f00\u59cb",id:"\u5feb\u901f\u5f00\u59cb",level:3},{value:"\u63a8\u8350\u5de5\u5177",id:"\u63a8\u8350\u5de5\u5177",level:3}],c={toc:s},d="wrapper";function m(e){let{components:t,...p}=e;return(0,a.kt)(d,(0,r.Z)({},c,p,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"bff-\u5c42-api-\u5f00\u53d1"},"BFF \u5c42 API \u5f00\u53d1"),(0,a.kt)("p",null,"\u672c\u7ae0\u8282\u5bf9 Kubebb \u7684 BFF \u5c42\u8fdb\u884c\u8be6\u7ec6\u4ecb\u7ecd\uff0c\u5305\u62ec\u5982\u4f55\u4f7f\u7528 GraphQL \u5feb\u901f\u5f00\u53d1 BFF \u5c42\u7684 API"),(0,a.kt)("h3",{id:"\u67b6\u6784\u6982\u8ff0"},"\u67b6\u6784\u6982\u8ff0"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"BFF\u67b6\u6784\u56fe",src:n(8407).Z,width:"601",height:"531"})),(0,a.kt)("p",null,"BFF \u5c42\u662f\u91c7\u7528 ",(0,a.kt)("a",{parentName:"p",href:"https://docs.nestjs.com/"},"NestJS")," \u548c ",(0,a.kt)("a",{parentName:"p",href:"https://graphql.cn/"},"GraphQL"),"\u6784\u5efa\u7684\u4e00\u4e2a\u72ec\u7acb\u7684",(0,a.kt)("a",{parentName:"p",href:"https://nodejs.org/en/about"},"NodeJs"),"\u670d\u52a1\uff0c\u4e3b\u8981\u529f\u80fd\u4e3a\u805a\u5408K8S API\u540e\uff0c\u5bf9\u5916\u63d0\u4f9b\u4e00\u7cfb\u5217OpenAPI\uff0c\u6ee1\u8db3\u524d\u7aef\u9700\u8981\u7684\u3001\u65e0\u5197\u4f59\u3001\u53ef\u9884\u6d4b\u7684\u6570\u636e\u3002"),(0,a.kt)("h3",{id:"\u5982\u4f55\u5de5\u4f5c\u7684"},"\u5982\u4f55\u5de5\u4f5c\u7684"),(0,a.kt)("p",null,"\u5176\u901a\u8fc7 NestJS \u642d\u5efa\u4e86\u4e00\u4e2aNodeJs\u670d\u52a1\uff0c\u4ee5\u63d2\u4ef6\u7684\u5f62\u5f0f\u63a5\u5165 ",(0,a.kt)("a",{parentName:"p",href:"https://www.apollographql.com/docs/apollo-server/"},"Apollo Server")," \u4f5c\u4e3a GraphQL server\uff0c\u63d0\u4f9b\u5ba2\u6237\u7aef\u4f7f\u7528\u7684 GraphQL API\u3002BFF\u4f5c\u4e3a\u627f\u63a5\u524d\u540e\u7aef\u7684\u6865\u6881\uff0c\u901a\u8fc7\u7edf\u4e00\u767b\u5f55\u9875\u9762\uff0c\u4ece\u540e\u7aef\u83b7\u53d6id-token\uff0c\u7528\u6b64token\u8fde\u63a5 ",(0,a.kt)("a",{parentName:"p",href:"https://kubernetes.io/"},"K8s")," APIServer\uff0c\u4ece\u800c\u64cd\u4f5cK8s\u8d44\u6e90\uff08CRUD\uff09\uff1b\u53e6\u5916\u4e5f\u53ef\u6269\u5c55\u63a5\u5165\u5176\u4ed6\u670d\u52a1\uff08\u5982",(0,a.kt)("a",{parentName:"p",href:"https://minio.org.cn/"},"MinIO"),"\u3001",(0,a.kt)("a",{parentName:"p",href:"https://chartmuseum.com/"},"ChartMuseum"),"\u7b49\uff09\u3002"),(0,a.kt)("h3",{id:"\u5feb\u901f\u5f00\u59cb"},"\u5feb\u901f\u5f00\u59cb"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"\u65b0\u5efa NestJS \u9879\u76ee\uff08TypeScript & GraphQL\uff09"),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"npm i -g @nestjs/cli\n\nnest new hello-world --strict\n\npnpm add @nestjs/graphql @nestjs/apollo @apollo/server graphql\n"))),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"\u63a5\u5165 GraphQL"),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre"},"\x3c!-- src/app.module.ts --\x3e\n...\n@Module({\n imports: [\n GraphQLModule.forRoot({\n path: '/bff',\n introspection: true,\n driver: ApolloDriver,\n autoSchemaFile: join(process.cwd(), 'src/schema.gql'),\n sortSchema: true,\n playground: {\n settings: {\n 'request.credentials': 'same-origin',\n 'tracing.hideTracingResponse': true,\n 'queryPlan.hideQueryPlanResponse': true,\n 'schema.polling.interval': 1000 * 60,\n },\n },\n subscriptions: {\n 'graphql-ws': {\n path: '/bff',\n },\n },\n }),\n ExampleModule,\n ],\n controllers: [AppController],\n providers: [AppService],\n})\n...\n"))),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"\u5f00\u53d1\u4e00\u4e2a\u65b0\u7684GraphQL (code first)\u529f\u80fd\u6a21\u5757"),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"nest g res example\n")),(0,a.kt)("p",{parentName:"li"},"\u7565\u5fae\u4fee\u6539\u540e\u8fd0\u884c\u670d\u52a1\uff1ahttp://localhost:3000/bff"),(0,a.kt)("p",{parentName:"li"},(0,a.kt)("img",{alt:"\u8fd0\u884c\u540e\u53ef\u67e5\u770b\u8c03\u8bd5",src:n(805).Z,width:"3018",height:"1730"})))),(0,a.kt)("ol",{start:4},(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},"\u751f\u6210SDK"),(0,a.kt)("blockquote",{parentName:"li"},(0,a.kt)("p",{parentName:"blockquote"},"\u4f7f\u7528 ",(0,a.kt)("a",{parentName:"p",href:"https://the-guild.dev/blog/graphql-codegen-plugin-typescript-swr"},"graphql-codegen-plugin-typescript-swr")," \u751f\u6210\u53ef\u4f9bReact Hook\u76f4\u63a5\u8c03\u7528API\u7684SDK\u3002\u6b64\u5de5\u5177\u6574\u5408\u4e86",(0,a.kt)("a",{parentName:"p",href:"https://the-guild.dev/graphql/codegen"},"GraphQL Code Generator")," (\u5c06 GraphQL schema \u81ea\u52a8\u751f\u6210 GraphQL operations\uff08Typed Queries, Mutations and, Subscriptions\uff09)\u548c ",(0,a.kt)("a",{parentName:"p",href:"https://swr.vercel.app/"},"SWR"),"\u3002")),(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u5b89\u88c5\u4f9d\u8d56"),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"pnpm add -D @graphql-codegen/cli @graphql-codegen/typescript @graphql-codegen/typescript-operations @graphql-codegen/typescript-graphql-request graphql-codegen-plugin-typescript-swr\n"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u7f16\u5199\u914d\u7f6e\u6587\u4ef6",(0,a.kt)("inlineCode",{parentName:"p"},"codegen.yml")),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre"},"\x3c!-- codegen.yml --\x3e\noverwrite: true\ngenerates:\n static/client-sdk/sdk.ts:\n schema: 'http://localhost:3000/bff'\n documents: 'src/**/*.gql'\n plugins:\n - typescript\n - typescript-operations\n - typescript-graphql-request\n - plugin-typescript-swr\nconfig:\n autogenSWRKey: true\n"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u7f16\u5199",(0,a.kt)("inlineCode",{parentName:"p"},".gql"),"\uff0c\u5b9a\u4e49\u524d\u7aef\u53ef\u76f4\u63a5\u8c03\u7528"),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre"},"// src/example/example.gql\n# \u83b7\u53d6\u6837\u4f8b\u8be6\u60c5\nquery getExample($id:Int!) {\n example(id: $id) {\n id\n }\n}\n"))),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u6267\u884c"),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"npx graphql-codegen\n")))))),(0,a.kt)("h3",{id:"\u63a8\u8350\u5de5\u5177"},"\u63a8\u8350\u5de5\u5177"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("a",{parentName:"p",href:"https://github.com/dayuy/ast-auto-generate"},"generate-nest-module")),(0,a.kt)("blockquote",{parentName:"li"},(0,a.kt)("p",{parentName:"blockquote"},"\u53ef\u5feb\u901f\u751f\u6210\u4e00\u4e2aK8s \u8d44\u6e90\u7684 CRUD \u6a21\u5757\u4ee3\u7801\u3002\u5df2\u88ab\u5e94\u7528\u5728",(0,a.kt)("a",{parentName:"p",href:"https://github.com/kubebb/component-store/tree/main/packages/bff-server/src/subscription"},"component-store"),"\u7684\u5f00\u53d1\u4e2d\u3002")),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"# \u5b89\u88c5\nnpm install -g generate-nest-module\n\n# \u4f7f\u7528\ngennest g res subscription\n")))))}m.isMDXComponent=!0},8407:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/bff_lowcode-77e024bcaba385acbdd2199cdde51a3d.png"},805:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/playground_graphql-8d597629c7d99fd04d027528b00d343a.jpg"}}]); \ No newline at end of file diff --git a/assets/js/cd7e3398.f04af052.js b/assets/js/cd7e3398.f04af052.js deleted file mode 100644 index 9de4c39c7..000000000 --- a/assets/js/cd7e3398.f04af052.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4823],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>d});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function p(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=a.createContext({}),s=function(e){var t=a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):p(p({},t),e)),n},c=function(e){var t=s(e.components);return a.createElement(o.Provider,{value:t},e.children)},m="mdxType",k={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),m=s(n),u=r,d=m["".concat(o,".").concat(u)]||m[u]||k[u]||i;return n?a.createElement(d,p(p({ref:t},c),{},{components:n})):a.createElement(d,p({ref:t},c))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,p=new Array(i);p[0]=u;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[m]="string"==typeof e?e:r,p[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>p,default:()=>k,frontMatter:()=>i,metadata:()=>l,toc:()=>s});var a=n(7462),r=(n(7294),n(3905));const i={sidebar_position:2},p="\u7ec4\u4ef6",l={unversionedId:"core/concepts/component",id:"core/concepts/component",title:"\u7ec4\u4ef6",description:"\u7ec4\u4ef6\u662f\u5c06 chart package \u6620\u5c04\u4e3a\u96c6\u7fa4\u8d44\u6e90\u7684\u4e00\u4e2a\u6982\u5ff5\uff0c\u7ec4\u4ef6\u5b9a\u4e49\u4e86 chart package \u7684\u57fa\u7840\u63cf\u8ff0\u4fe1\u606f\uff0c\u7248\u672c\u4fe1\u606f\u7b49\u3002\u7ec4\u4ef6\u4e00\u822c\u7531\u4ed3\u5e93\u521b\u5efa\u51fa\u6765\uff0c\u65e0\u9700\u624b\u52a8\u521b\u5efa\u3002",source:"@site/docs/core/concepts/component.md",sourceDirName:"core/concepts",slug:"/core/concepts/component",permalink:"/website/docs/core/concepts/component",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6\u4ed3\u5e93",permalink:"/website/docs/core/concepts/repository"},next:{title:"\u7ec4\u4ef6\u90e8\u7f72",permalink:"/website/docs/core/concepts/componentplan"}},o={},s=[{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49",level:2},{value:"\u5de5\u4f5c\u539f\u7406",id:"\u5de5\u4f5c\u539f\u7406",level:2}],c={toc:s},m="wrapper";function k(e){let{components:t,...n}=e;return(0,r.kt)(m,(0,a.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u7ec4\u4ef6"},"\u7ec4\u4ef6"),(0,r.kt)("p",null,"\u7ec4\u4ef6\u662f\u5c06 ",(0,r.kt)("inlineCode",{parentName:"p"},"chart package")," \u6620\u5c04\u4e3a\u96c6\u7fa4\u8d44\u6e90\u7684\u4e00\u4e2a\u6982\u5ff5\uff0c\u7ec4\u4ef6\u5b9a\u4e49\u4e86 ",(0,r.kt)("inlineCode",{parentName:"p"},"chart package")," \u7684\u57fa\u7840\u63cf\u8ff0\u4fe1\u606f\uff0c\u7248\u672c\u4fe1\u606f\u7b49\u3002\u7ec4\u4ef6\u4e00\u822c\u7531\u4ed3\u5e93\u521b\u5efa\u51fa\u6765\uff0c\u65e0\u9700\u624b\u52a8\u521b\u5efa\u3002"),(0,r.kt)("h2",{id:"\u5b9a\u4e49"},"\u5b9a\u4e49"),(0,r.kt)("p",null,"CRD \u7684\u4ee3\u7801\u5b9a\u4e49\u4f4d\u4e8e ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/kubebb/core/blob/main/api/v1alpha1/component_types.go"},"ComponentTypes"),"\u3002\u7ec4\u4ef6\u7684\u4fe1\u606f\u90fd\u5b9a\u5728 ",(0,r.kt)("inlineCode",{parentName:"p"},"status")," \u4e2d\uff0c \u63a5\u4e0b\u6765\u4f1a\u8be6\u7ec6\u4ecb\u7ecd\u6bcf\u4e2a\u5b57\u6bb5\u7684\u542b\u4e49\u53ca\u5176\u4f5c\u7528\u3002"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"status.name")),(0,r.kt)("p",{parentName:"li"},"\u8be5\u5b57\u6bb5\u7528\u6765\u4fdd\u5b58 ",(0,r.kt)("inlineCode",{parentName:"p"},"chart package")," \u7684\u540d\u5b57,\u5fc5\u987b\u7b26\u5408kubernetes\u7684\u547d\u540d\u89c4\u8303\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"status.displayName")),(0,r.kt)("p",{parentName:"li"},"\u8be5\u5b57\u6bb5\u7528\u6765\u4fdd\u5b58 ",(0,r.kt)("inlineCode",{parentName:"p"},"chart package")," \u7684\u5c55\u793a\u540d\uff0c\u8be5\u5b57\u6bb5\u5185\u5bb9\u4e3a\u7ec4\u4ef6",(0,r.kt)("strong",{parentName:"p"},"\u6700\u65b0\u7248\u672c"),"\u7684\u6ce8\u89e3",(0,r.kt)("inlineCode",{parentName:"p"},"core.kubebb.k8s.com.cn/displayname"),",\u5141\u8bb8\u4e3a\u7a7a\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"status.versions")),(0,r.kt)("p",{parentName:"li"},"\u8be5\u5b57\u6bb5\u662f\u6570\u7ec4\uff0c\u7528\u6765\u4fdd\u5b58 ",(0,r.kt)("inlineCode",{parentName:"p"},"chart package")," \u7684\u591a\u4e2a\u7248\u672c\u3002\u6bcf\u4e2a\u7248\u672c\u5305\u542b\u7684\u4fe1\u606f\u5982\u4e0b"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"status.versions[index].appVersion")," \u5b9a\u4e49 ",(0,r.kt)("inlineCode",{parentName:"li"},"chart packge")," \u91cc\u9762\u7684\u5e94\u7528\u7684\u7248\u672c\u4fe1\u606f\u3002"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"status.versions[index].annotations")," \u5b9a\u4e49\u8be5\u7248\u672c\u7684\u6ce8\u89e3\u4fe1\u606f,\u5982\u7ec4\u4ef6\u7684\u5c55\u793a\u540d\u3002"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"status.versions[index].createdAt")," \u521b\u5efa\u65f6\u95f4"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"status.versions[index].updatedAt")," \u66f4\u65b0\u65f6\u95f4"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"status.versions[index].deprecated")," \u5f53\u524d\u7248\u672c\u662f\u5426\u5e9f\u5f03"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"status.versions[index].version")," ",(0,r.kt)("inlineCode",{parentName:"li"},"chart package")," \u7684\u7248\u672c\u4fe1\u606f"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"status.versions[index].digest")," \u6570\u5b57\u7b7e\u540d"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"status.description")),(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"chart package")," \u7684\u63cf\u8ff0\u4fe1\u606f")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"status.maintainers")),(0,r.kt)("p",{parentName:"li"},"\u8be5\u5b57\u6bb5\u662f\u6570\u7ec4\u7c7b\u578b\uff0c\u6bcf\u4e00\u9879\u90fd\u662f ",(0,r.kt)("inlineCode",{parentName:"p"},"chart package")," \u7684\u7ef4\u62a4\u8005\u3002\u6bcf\u4e00\u9879\u7684\u5305\u542b\u7684\u4fe1\u606f\u5982\u4e0b"),(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"status.maintainers[index].name")," \u7ef4\u62a4\u8005\u540d\u5b57"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"status.maintainers[index].email")," \u7ef4\u62a4\u8005\u7684\u90ae\u7bb1"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"status.maintainers[index].url")," \u7ef4\u62a4\u8005\u7684\u7f51\u7ad9"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"status.home")),(0,r.kt)("p",{parentName:"li"},"\u7ec4\u4ef6\u7684\u5b98\u7f51\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"status.soureces")),(0,r.kt)("p",{parentName:"li"},"\u8be5\u5b57\u6bb5\u662f\u5b57\u7b26\u4e32\u6570\u7ec4\u7c7b\u578b\uff0c\u5b9a\u4e49\u7ec4\u4ef6\u4ee3\u7801\u4ed3\u5e93\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"status.keywords")),(0,r.kt)("p",{parentName:"li"},"\u8be5\u5b57\u6bb5\u662f\u5b57\u7b26\u4e32\u6570\u7ec4\u7c7b\u578b\uff0c\u5b9a\u4e49\u4e0e\u8be5\u7ec4\u4ef6\u5173\u8054\u7684\u5173\u952e\u8bcd\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"status.icon")),(0,r.kt)("p",{parentName:"li"},"\u5b9a\u4e49\u8be5\u7ec4\u4ef6\u7684\u56fe\u6807")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"status.deprecated")),(0,r.kt)("p",{parentName:"li"},"\u5b9a\u4e49\u5f53\u524d\u7ec4\u4ef6\u662f\u5426\u5e9f\u5f03"))),(0,r.kt)("h2",{id:"\u5de5\u4f5c\u539f\u7406"},"\u5de5\u4f5c\u539f\u7406"),(0,r.kt)("p",null,"\u4ed3\u5e93",(0,r.kt)("inlineCode",{parentName:"p"},"Watcher"),"\u540c\u6b65\u4ed3\u5e93\u670d\u52a1\u7684\u7ec4\u4ef6\u5217\u8868\uff0c\u5e76",(0,r.kt)("inlineCode",{parentName:"p"},"\u521b\u5efa/\u66f4\u65b0"),"\u7ec4\u4ef6\u3002\u56e0\u6b64:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"\u7ec4\u4ef6"),"\u4e0d\u5efa\u8bae\u4e3b\u52a8\u521b\u5efa\uff0c\u5e94\u8be5\u90fd\u901a\u8fc7\u7ec4\u4ef6\u4ed3\u5e93\u5bf9\u5e94\u7684",(0,r.kt)("inlineCode",{parentName:"li"},"Watcher"),"\u81ea\u52a8\u540c\u6b65\u83b7\u5f97"),(0,r.kt)("li",{parentName:"ul"},"\u540c\u5c5e\u4e00\u4e2a\u4ed3\u5e93\u7684\u7ec4\u4ef6\u53ef\u901a\u8fc7",(0,r.kt)("inlineCode",{parentName:"li"},"kubebb.component.repository="),"\u68c0\u7d22")))}k.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/cd9d77a0.da677c4c.js b/assets/js/cd9d77a0.da677c4c.js new file mode 100644 index 000000000..4d87f401a --- /dev/null +++ b/assets/js/cd9d77a0.da677c4c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4011],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>c});var a=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var p=a.createContext({}),m=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=m(e.components);return a.createElement(p.Provider,{value:t},e.children)},u="mdxType",k={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},s=a.forwardRef((function(e,t){var n=e.components,l=e.mdxType,r=e.originalType,p=e.parentName,d=o(e,["components","mdxType","originalType","parentName"]),u=m(n),s=l,c=u["".concat(p,".").concat(s)]||u[s]||k[s]||r;return n?a.createElement(c,i(i({ref:t},d),{},{components:n})):a.createElement(c,i({ref:t},d))}));function c(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var r=n.length,i=new Array(r);i[0]=s;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[u]="string"==typeof e?e:l,i[1]=o;for(var m=2;m{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>k,frontMatter:()=>r,metadata:()=>o,toc:()=>m});var a=n(7462),l=(n(7294),n(3905));const r={sidebar_position:4},i="\u53d1\u5e03\u7ec4\u4ef6",o={unversionedId:"develop-guid/lowcode-development/development/develop-hello-world",id:"develop-guid/lowcode-development/development/develop-hello-world",title:"\u53d1\u5e03\u7ec4\u4ef6",description:"\u672c\u7ae0\u8282\u4e3b\u8981\u4ecb\u7ecd\u53d1\u5e03\u7ba1\u7406\uff0c\u5373\u5728\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\u53d1\u5e03\u4e00\u4e2a\u5e94\u7528\u5230 Kubebb \u7ec4\u4ef6\u4ed3\u5e93\u3002\u53d1\u5e03\u6210\u529f\u540e\uff0c\u53ef\u8fdb\u5165 Kubebb \u7ec4\u4ef6\u5e02\u573a\u9875\u9762\uff0c\u67e5\u770b\u5e94\u7528\u6216\u5b89\u88c5\u4f7f\u7528\u3002",source:"@site/docs/develop-guid/lowcode-development/development/develop-hello-world.md",sourceDirName:"develop-guid/lowcode-development/development",slug:"/develop-guid/lowcode-development/development/develop-hello-world",permalink:"/website/docs/develop-guid/lowcode-development/development/develop-hello-world",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"BFF \u5c42 API \u5f00\u53d1",permalink:"/website/docs/develop-guid/lowcode-development/development/bff-apis"},next:{title:"\u79c1\u6709\u96c6\u7fa4\u90e8\u7f72\u65b9\u6848",permalink:"/website/docs/develop-guid/privatecluster"}},p={},m=[{value:"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406",id:"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406",level:2},{value:"\u5e94\u7528\u53d1\u5e03",id:"\u5e94\u7528\u53d1\u5e03",level:2}],d={toc:m},u="wrapper";function k(e){let{components:t,...r}=e;return(0,l.kt)(u,(0,a.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"\u53d1\u5e03\u7ec4\u4ef6"},"\u53d1\u5e03\u7ec4\u4ef6"),(0,l.kt)("p",null,"\u672c\u7ae0\u8282\u4e3b\u8981\u4ecb\u7ecd\u53d1\u5e03\u7ba1\u7406\uff0c\u5373\u5728\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\u53d1\u5e03\u4e00\u4e2a\u5e94\u7528\u5230 Kubebb \u7ec4\u4ef6\u4ed3\u5e93\u3002\u53d1\u5e03\u6210\u529f\u540e\uff0c\u53ef\u8fdb\u5165 Kubebb \u7ec4\u4ef6\u5e02\u573a\u9875\u9762\uff0c\u67e5\u770b\u5e94\u7528\u6216\u5b89\u88c5\u4f7f\u7528\u3002"),(0,l.kt)("p",null,"\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\u53d1\u5e03\u4e00\u4e2a\u5e94\u7528\u7684\u5b8c\u6574\u6d41\u7a0b\uff1a\u65b0\u589e\u5e94\u7528 -> \u521b\u5efa\u5206\u652f -> \u65b0\u589e\u9875\u9762 -> \u8bbe\u8ba1\u9875\u9762 -> git \u63d0\u4ea4 -> \u53d1\u5e03\u5e94\u7528\u3002 \u53d1\u5e03\u4e4b\u524d\u5148\u8bbe\u8ba1\u4e00\u4e2a\u5e94\u7528\uff0c\u8bf7\u53c2\u89c1",(0,l.kt)("a",{parentName:"p",href:"/website/docs/develop-guid/lowcode-development/development/frontend-low-code"},"\u524d\u7aef\u5c42\u57fa\u4e8e\u4f4e\u7801 Kit \u7684\u5f00\u53d1"),"\u3002 \u53d1\u5e03\u7ba1\u7406\u5305\u62ec\u4e24\u90e8\u5206\uff0c\u5e94\u7528\u53d1\u5e03\u548c\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406\u3002"),(0,l.kt)("h2",{id:"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406"},"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406"),(0,l.kt)("admonition",{type:"tip"},(0,l.kt)("ul",{parentName:"admonition"},(0,l.kt)("li",{parentName:"ul"},"\u53d1\u5e03\u5e94\u7528\u7684\u524d\u63d0\uff0c\u81f3\u5c11\u6709\u4e00\u4e2a\u7ec4\u4ef6\u4ed3\u5e93\u3002\u90e8\u7f72\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\u540e\uff0c\u4f1a\u9ed8\u8ba4\u90e8\u7f72\u4e00\u4e2a\u7ec4\u4ef6\u4ed3\u5e93\uff0c\u6b64\u4ed3\u5e93\u9002\u7528\u4e8e\u5e73\u53f0\u6240\u6709\u5e94\u7528\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u540c\u65f6\u6b64\u4ed3\u5e93\u4e5f\u9ed8\u8ba4\u6dfb\u52a0\u5230 Kubebb \u7684",(0,l.kt)("inlineCode",{parentName:"li"},"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406"),"\u4e2d\uff0c\u4f4e\u7801\u5e94\u7528\u53d1\u5e03\u540e\uff0c\u76f4\u63a5\u53ef\u8fdb\u5165 Kubebb \u7684",(0,l.kt)("inlineCode",{parentName:"li"},"\u7ec4\u4ef6\u5e02\u573a"),"\u9875\u9762\uff0c\u67e5\u770b\u5e94\u7528\u6216\u5b89\u88c5\u4f7f\u7528\u3002\u8be6\u7ec6\u53c2\u89c1",(0,l.kt)("a",{parentName:"li",href:"/website/docs/user-guid/component_market"},(0,l.kt)("strong",{parentName:"a"},"\u7ec4\u4ef6\u5e02\u573a")),"\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u5e94\u7528\u7684\u7ef4\u62a4\u8005\u3001\u62e5\u6709\u8005\u6709\u6743\u9650\u7ba1\u7406\u4ed3\u5e93\u3002"))),(0,l.kt)("p",null,"\u7ba1\u7406\u7ec4\u4ef6\u4ed3\u5e93\u64cd\u4f5c\u5982\u4e0b:"),(0,l.kt)("ol",null,(0,l.kt)("li",{parentName:"ol"},"\u767b\u5f55\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\uff0c\u8fdb\u5165",(0,l.kt)("inlineCode",{parentName:"li"},"\u5e94\u7528\u7ba1\u7406"),"\u9875\u9762\uff0c\u627e\u5230\u76ee\u6807\u5e94\u7528\uff0c\u70b9\u51fb",(0,l.kt)("strong",{parentName:"li"},"\u5e94\u7528\u540d\u79f0"),"\u8fdb\u5165\u8be6\u60c5\u9875\u9762\u3002"),(0,l.kt)("li",{parentName:"ol"},"\u5207\u6362\u9876\u90e8\u5bfc\u822a\u5230",(0,l.kt)("strong",{parentName:"li"},"\u53d1\u5e03\u7ba1\u7406"),"\uff0c\u9ed8\u8ba4\u8fdb\u5165",(0,l.kt)("inlineCode",{parentName:"li"},"\u53d1\u5e03\u8bb0\u5f55"),"\u9875\u9762\uff0c\u5207\u6362\u5230",(0,l.kt)("strong",{parentName:"li"},"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406"),"\u9875\u9762\u3002\u70b9\u51fb",(0,l.kt)("strong",{parentName:"li"},"\u6dfb\u52a0\u7ec4\u4ef6\u4ed3\u5e93"),"\uff0c\u5f39\u6846\u914d\u7f6e\u53c2\u6570\u8bf4\u660e\u5982\u4e0b\uff1a")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"\u7ec4\u4ef6\u4ed3\u5e93\u540d\u79f0\uff1a",(0,l.kt)("inlineCode",{parentName:"li"},"\u75313~63\u4f4d\u5b57\u7b26\u3001\u4e0b\u5212\u7ebf\u201c_\u201d\u3001\u4e2d\u5212\u7ebf\u201c-\u201d\u6216\u70b9\u201c.\u201d\u7ec4\u6210\uff0c\u5e76\u4ee5\u5b57\u7b26\u5f00\u5934\u6216\u7ed3\u5c3e"),"\uff0c\u5e94\u7528\u5185\u552f\u4e00\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u52fe\u9009\u5185\u7f6e\u4ed3\u5e93\uff0c\u9ed8\u8ba4\u4e0d\u52fe\u9009\u3002\u4ec5\u7cfb\u7edf\u7ba1\u7406\u5458\u6709\u6743\u52fe\u9009\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u4ed3\u5e93\u5730\u5740\uff1a\u8f93\u5165http://ip(host):port/xxx\u3002 \u793a\u4f8b",(0,l.kt)("inlineCode",{parentName:"li"},"http://192.168.1.1:80/repository")),(0,l.kt)("li",{parentName:"ul"},"\u7528\u6237\u540d\u3001\u5bc6\u7801\uff1a\u975e\u5fc5\u586b\u3002\u9ed8\u8ba4\u662fBasic Auth\u8ba4\u8bc1\u65b9\u5f0f\u3002")),(0,l.kt)("ol",{start:3},(0,l.kt)("li",{parentName:"ol"},"\u70b9\u51fb",(0,l.kt)("strong",{parentName:"li"},"\u786e\u5b9a"),"\uff0c\u6dfb\u52a0\u4ed3\u5e93\u6210\u529f\u540e\uff0c\u5c55\u793a\u5df2\u6dfb\u52a0\u7684\u4ed3\u5e93\u4fe1\u606f\uff0c\u5305\u62ec\u7ec4\u4ef6\u4ed3\u5e93\u540d\u79f0\u3001\u5f53\u524d\u72b6\u6001\u3001\u7ec4\u4ef6\u4ed3\u5e93\u5730\u5740\u3001\u66f4\u65b0\u8005\u3001\u66f4\u65b0\u65f6\u95f4\u3002")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"\u4ed3\u5e93\u72b6\u6001\uff1a\u5065\u5eb7\u6216\u5f02\u5e38\uff0c\u5f02\u5e38\u4e00\u822c\u6307\u5f53\u4ed3\u5e93\u81ea\u8eab\u6570\u636e\u83b7\u53d6\u66f4\u65b0\u5931\u8d25\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u66f4\u65b0\u8005\uff1a\u6700\u8fd1\u4e00\u6b21\u4fee\u6539\u4ed3\u5e93\u4fe1\u606f\u8005")),(0,l.kt)("ol",{start:4},(0,l.kt)("li",{parentName:"ol"},"\u7f16\u8f91\u4ed3\u5e93\u65f6\uff0c\u4ed3\u5e93\u540d\u79f0\u3001\u662f\u5426\u5185\u7f6e\u4e0d\u5141\u8bb8\u4fee\u6539\uff0c\u5176\u4ed6\u53ef\u6309\u9700\u8c03\u6574\u3002"),(0,l.kt)("li",{parentName:"ol"},"\u5220\u9664\u4ed3\u5e93\u65f6\uff0c\u4e8c\u6b21\u5f39\u6846\u63d0\u793a\u662f\u5426\u201c\u540c\u6b65\u5220\u9664\u5f53\u524d\u4ed3\u5e93\u7684\u6240\u6709\u53d1\u5e03\u8bb0\u5f55\u201d\uff0c\u52fe\u9009\u540e\uff0c\u70b9\u51fb",(0,l.kt)("strong",{parentName:"li"},"\u786e\u5b9a"),"\uff0c\u5373\u5220\u9664\u4ed3\u5e93\u548c\u5176\u4e2d\u6240\u6709\u5e94\u7528\u7684\u53d1\u5e03\u8bb0\u5f55\uff1b\u53cd\u4e4b\uff0c\u5219\u4ec5\u5220\u9664\u4ed3\u5e93\u3002")),(0,l.kt)("admonition",{type:"note"},(0,l.kt)("ul",{parentName:"admonition"},(0,l.kt)("li",{parentName:"ul"},"\u7ec4\u4ef6\u4ed3\u5e93\u76ee\u524d\u652f\u6301\u6dfb\u52a0 Chart Museum \u7c7b\u578b\u7684 helm \u4ed3\u5e93\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u90e8\u7f72\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\u540e\uff0c\u9ed8\u8ba4\u90e8\u7f72\u7684\u7ec4\u4ef6\u4ed3\u5e93\u5373\u4e3a",(0,l.kt)("inlineCode",{parentName:"li"},"\u5185\u7f6e\u4ed3\u5e93"),"\u7c7b\u578b\uff0c\u6240\u6709\u5e94\u7528\u7684",(0,l.kt)("inlineCode",{parentName:"li"},"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406"),"\u4e2d\u53ef\u89c1\u53ef\u53d1\u5e03\u81f3\u6b64\u4ed3\u5e93\u3002"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"\u5185\u7f6e\u4ed3\u5e93"),"\u4ec5\u7cfb\u7edf\u7ba1\u7406\u5458\u6709\u6743\u521b\u5efa\u3001\u5220\u9664\u3002\u53ef\u521b\u5efa\u591a\u4e2a\u5185\u7f6e\u4ed3\u5e93\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u7528\u6237\u81ea\u884c\u6dfb\u52a0\u7684\u7ec4\u4ef6\u4ed3\u5e93\uff0c\u9700\u81ea\u884c\u5230 Kubebb \u7684",(0,l.kt)("inlineCode",{parentName:"li"},"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406"),"\u4e2d\u6dfb\u52a0\u3002\u540e\u7eed\u4f4e\u7801\u5e94\u7528\u53d1\u5e03\u81f3\u6b64\u4ed3\u5e93\u540e\uff0c\u624d\u652f\u6301\u67e5\u770b\u6216\u5b89\u88c5\u3002"))),(0,l.kt)("h2",{id:"\u5e94\u7528\u53d1\u5e03"},"\u5e94\u7528\u53d1\u5e03"),(0,l.kt)("admonition",{type:"tip"},(0,l.kt)("ul",{parentName:"admonition"},(0,l.kt)("li",{parentName:"ul"},"\u53d1\u5e03\u5e94\u7528\u7684\u524d\u63d0\uff0c\u81f3\u5c11\u6709\u4e00\u4e2a\u7ec4\u4ef6\u4ed3\u5e93\u3002\u53c2\u89c1",(0,l.kt)("a",{parentName:"li",href:"#%E7%BB%84%E4%BB%B6%E4%BB%93%E5%BA%93%E7%AE%A1%E7%90%86"},(0,l.kt)("strong",{parentName:"a"},"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406")),"\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u5e94\u7528\u7684\u7ef4\u62a4\u8005\u3001\u62e5\u6709\u8005\u624d\u6709\u53d1\u5e03\u5e94\u7528\u7684\u6743\u9650\u3002"))),(0,l.kt)("p",null,"\u672c\u7ae0\u8282\u4e3b\u8981\u4ecb\u7ecd\u5e94\u7528\u53d1\u5e03\u6d41\u7a0b\uff0c\u64cd\u4f5c\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,l.kt)("ol",null,(0,l.kt)("li",{parentName:"ol"},"\u767b\u5f55\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\uff0c\u8fdb\u5165",(0,l.kt)("inlineCode",{parentName:"li"},"\u5e94\u7528\u7ba1\u7406"),"\u9875\u9762\uff0c\u627e\u5230\u76ee\u6807\u5e94\u7528\uff0c\u70b9\u51fb",(0,l.kt)("strong",{parentName:"li"},"\u5e94\u7528\u540d\u79f0"),"\u8fdb\u5165\u8be6\u60c5\u9875\u9762\u3002"),(0,l.kt)("li",{parentName:"ol"},"\u53d1\u5e03\u524d\u68c0\u67e5\uff1a\u53d1\u5e03\u5e94\u7528\u65f6\u4e0d\u4f1a\u5305\u542b\u672a\u63d0\u4ea4\u7684\u4fee\u6539\uff0c\u8bf7\u5728",(0,l.kt)("inlineCode",{parentName:"li"},"Git \u9762\u677f"),"\u4e2d\u6309\u9700\u63d0\u4ea4\u4fee\u6539\u3002")),(0,l.kt)("p",null,(0,l.kt)("img",{alt:"overview",src:n(5476).Z,width:"1919",height:"895"})),(0,l.kt)("ol",{start:3},(0,l.kt)("li",{parentName:"ol"},"\u63d0\u4ea4\u5b8c\u6210\u540e\uff0c\u5207\u6362\u9876\u90e8\u5bfc\u822a\u5230",(0,l.kt)("strong",{parentName:"li"},"\u53d1\u5e03\u7ba1\u7406"),"\uff0c\u9ed8\u8ba4\u8fdb\u5165",(0,l.kt)("inlineCode",{parentName:"li"},"\u53d1\u5e03\u8bb0\u5f55"),"\u9875\u9762\uff0c\u70b9\u51fb",(0,l.kt)("strong",{parentName:"li"},"\u53d1\u5e03\u5e94\u7528"),"\u6309\u94ae\uff0c\u914d\u7f6e\u53c2\u6570\u8bf4\u660e\u5982\u4e0b\uff1a")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u53d1\u5e03\u540d\u79f0\uff1a\u53ea\u8bfb\u5c55\u793a\u5e94\u7528\u540d\u79f0\uff08\u547d\u540d\u7a7a\u95f4\uff09\uff0c\u5176\u4e2d\u5e94\u7528\u540d\u79f0\u5373\u53d1\u5e03\u5230\u7ec4\u4ef6\u4ed3\u5e93\u540e\u7684\u7ec4\u4ef6\u540d\u79f0")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u53d1\u5e03\u57fa\u7ebf\uff1a\u53ef\u9009Branch\uff08\u5373\u5206\u652f\u540d\u79f0\uff09\u3001CommitId\u3002"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"\u9ed8\u8ba4\u9009\u4e2dBranch\uff0c\u5148\u9009\u62e9\u5206\u652f\u540d\u79f0\uff0c\u518d\u7ea7\u8054\u9009\u62e9 CommitId\u3002\u9009\u62e9 CommitId \u65f6\uff0c\u540c\u6b65\u5c55\u793a\u63d0\u4ea4\u5185\u5bb9\u548c\u65f6\u95f4\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u9009\u62e9 CommitId\uff0c\u624b\u52a8\u8f93\u5165 CommitId\u3002"))),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u53d1\u5e03\u81f3\u4ed3\u5e93\uff1a\u9ed8\u8ba4\u586b\u5145\u5217\u8868\u4e2d\u7b2c\u4e00\u4e2a\u4ed3\u5e93\uff0c\u6309\u9700\u9009\u62e9\u3002")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u53d1\u5e03\u7248\u672c\uff1a\u586b\u5199\u7248\u672c\u53f7\uff0c\u4f8b0.0.1\u3002",(0,l.kt)("inlineCode",{parentName:"p"},'\u753150\u4f4d\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u70b9"."\u3001\u4e2d\u5212\u7ebf"-"\u6216\u52a0\u53f7"+" \u7ec4\u6210\uff0c\u4e14\u5fc5\u987b\u4ee5\u6570\u5b57\u5f00\u5934\uff0c\u4ee5\u6570\u5b57\u6216\u5b57\u6bcd\u7ed3\u5c3e'),"\u3002\u4ec5\u652f\u6301 a.b.c \u683c\u5f0f\u3002"))),(0,l.kt)("ol",{start:4},(0,l.kt)("li",{parentName:"ol"},"\u70b9\u51fb",(0,l.kt)("strong",{parentName:"li"},"\u786e\u5b9a"),"\uff0c\u5f00\u59cb\u53d1\u5e03\u3002\u5217\u8868\u4e2d\u5c55\u793a\u6b64\u6761\u53d1\u5e03\u8bb0\u5f55\u3002\u5305\u62ec\u53d1\u5e03\u540d\u79f0\u3001\u53d1\u5e03\u57fa\u7ebf\u3001\u53d1\u5e03\u72b6\u6001\u3001\u53d1\u5e03\u7248\u672c\u3001\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406\u3001\u7ec4\u4ef6\u4ed3\u5e93\u72b6\u6001\u3001\u7ec4\u4ef6\u4ed3\u5e93\u5730\u5740\u3001\u53d1\u5e03\u8005\u3001\u53d1\u5e03\u65f6\u95f4\u3001\u64cd\u4f5c\uff1a\u5220\u9664\u3002")),(0,l.kt)("p",null,(0,l.kt)("img",{alt:"overview",src:n(7466).Z,width:"1901",height:"542"})),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u53d1\u5e03\u540d\u79f0\uff1a\u5e94\u7528\u540d\u79f0\uff08\u547d\u540d\u7a7a\u95f4\u540d\u79f0\uff09\u3002")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u53d1\u5e03\u57fa\u7ebf\uff1a\u5c55\u793a\u5206\u652f\u540d\u79f0\uff08CommitId\uff09\u6216\u8005 CommitId\u3002hover\u5c55\u793a\u8be6\u7ec6\u4fe1\u606f\uff0c\u5305\u62ec\u63d0\u4ea4\u4eba\u3001\u63d0\u4ea4\u65f6\u95f4\u3001\u63d0\u4ea4\u4fe1\u606f\u3002")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u53d1\u5e03\u72b6\u6001\uff1a\u53d1\u5e03\u4e2d\u3001\u53d1\u5e03\u6210\u529f\u3001\u53d1\u5e03\u5931\u8d25\u3002"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"\u53d1\u5e03\u4e2d\uff1a\u5c55\u793a\u53d1\u5e03\u8fdb\u5ea6\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u53d1\u5e03\u6210\u529f\uff1a\u5373\u53ef\u8fdb\u5165 Kubebb ",(0,l.kt)("a",{parentName:"li",href:"/website/docs/user-guid/component_market"},(0,l.kt)("strong",{parentName:"a"},"\u7ec4\u4ef6\u5e02\u573a")),"\uff0c\u67e5\u770b\u5e94\u7528\u6216\u5b89\u88c5\u4f7f\u7528\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u53d1\u5e03\u5931\u8d25\uff1ahover\u53ef\u5c55\u793a\u6d41\u6c34\u7ebfID\u548c\u5931\u8d25\u539f\u56e0\uff0c\u4fbf\u4e8e\u7528\u6237\u5feb\u901f\u5b9a\u4f4d\u95ee\u9898\u3002"))),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u53d1\u5e03\u7248\u672c\uff1a\u672c\u6b21\u53d1\u5e03\u7684\u5e94\u7528\u7248\u672c\u3002")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u7ec4\u4ef6\u4ed3\u5e93\u540d\u79f0\u3001\u7ec4\u4ef6\u4ed3\u5e93\u72b6\u6001\u3001\u7ec4\u4ef6\u4ed3\u5e93\u5730\u5740\uff1a\u672c\u6b21\u53d1\u5e03\u6240\u9009\u4ed3\u5e93\u7684\u4fe1\u606f\u3002")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u53d1\u5e03\u8005\uff1a\u672c\u6b21\u53d1\u5e03\u7684\u53d1\u5e03\u4eba\u5458\u3002")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u53d1\u5e03\u65f6\u95f4\uff1a\u9ed8\u8ba4\u964d\u5e8f\u6392\u5217\u3002"))),(0,l.kt)("ol",{start:4},(0,l.kt)("li",{parentName:"ol"},"\u70b9\u51fb",(0,l.kt)("strong",{parentName:"li"},"\u5220\u9664"),"\uff0c\u4ec5\u5220\u9664\u4f4e\u7801\u5e73\u53f0\u4fa7\u7684\u76f8\u5173\u53d1\u5e03\u6570\u636e\uff0c\u4e0d\u5f71\u54cd\u5176\u5728 Kubebb ",(0,l.kt)("inlineCode",{parentName:"li"},"\u7ec4\u4ef6\u5e02\u573a"),"\u7684\u4f7f\u7528\u3002")),(0,l.kt)("admonition",{type:"note"},(0,l.kt)("p",{parentName:"admonition"},"\u540c\u4e00\u7ec4\u4ef6\u4ed3\u5e93\u4e2d\uff0c\u540c\u4e00\u5e94\u7528\u6bcf\u6b21\u53d1\u5e03\u65f6\uff0c\u7248\u672c\u53f7\u4e0d\u80fd\u76f8\u540c\u3002")))}k.isMDXComponent=!0},7466:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/app-publish-2ddf3fc037790e7694e7dba09a4638a5.png"},5476:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/git-commit-aced21892dc6997b555e3c1b13e28df6.png"}}]); \ No newline at end of file diff --git a/assets/js/d54d1d36.06b988da.js b/assets/js/d54d1d36.92d550d6.js similarity index 67% rename from assets/js/d54d1d36.06b988da.js rename to assets/js/d54d1d36.92d550d6.js index 9eaddbb0a..5b82b3f37 100644 --- a/assets/js/d54d1d36.06b988da.js +++ b/assets/js/d54d1d36.92d550d6.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4094],{8771:e=>{e.exports=JSON.parse('{"title":"\u5e95\u5ea7Kit","description":"\u63d0\u4f9b\u5e95\u5ea7\u670d\u52a1\uff0c\u5feb\u901f\u5f00\u59cb\u642d\u5efa\u670d\u52a1\u95e8\u6237","slug":"/category/\u5e95\u5ea7kit","permalink":"/website/docs/category/\u5e95\u5ea7kit","navigation":{"previous":{"title":"\u8def\u7ebf\u56fe","permalink":"/website/docs/core/roadmap"},"next":{"title":"\u4ecb\u7ecd","permalink":"/website/docs/building-base/intro"}}}')}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4094],{8771:e=>{e.exports=JSON.parse('{"title":"\u5e95\u5ea7Kit","description":"\u63d0\u4f9b\u5e95\u5ea7\u670d\u52a1\uff0c\u5feb\u901f\u5f00\u59cb\u642d\u5efa\u670d\u52a1\u95e8\u6237","slug":"/category/\u5e95\u5ea7kit","permalink":"/website/docs/category/\u5e95\u5ea7kit","navigation":{"previous":{"title":"\u529f\u80fd\u4ecb\u7ecd","permalink":"/website/docs/develop-guid/core/rating/"},"next":{"title":"\u4ecb\u7ecd","permalink":"/website/docs/develop-guid/building-base/intro"}}}')}}]); \ No newline at end of file diff --git a/assets/js/d5dd9a2d.ac01215d.js b/assets/js/d5dd9a2d.ac01215d.js new file mode 100644 index 000000000..b691201a3 --- /dev/null +++ b/assets/js/d5dd9a2d.ac01215d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5011],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>b});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),u=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):o(o({},t),e)),r},s=function(e){var t=u(e.components);return n.createElement(c.Provider,{value:t},e.children)},m="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,l=e.originalType,c=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),m=u(r),d=a,b=m["".concat(c,".").concat(d)]||m[d]||p[d]||l;return r?n.createElement(b,o(o({ref:t},s),{},{components:r})):n.createElement(b,o({ref:t},s))}));function b(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var l=r.length,o=new Array(l);o[0]=d;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[m]="string"==typeof e?e:a,o[1]=i;for(var u=2;u{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var n=r(7462),a=(r(7294),r(3905));const l={sidebar_position:3},o="\u76d1\u63a7\u7ec4\u4ef6",i={unversionedId:"develop-guid/component-market/monitoring",id:"develop-guid/component-market/monitoring",title:"\u76d1\u63a7\u7ec4\u4ef6",description:"\u7b80\u4ecb",source:"@site/docs/develop-guid/component-market/monitoring.md",sourceDirName:"develop-guid/component-market",slug:"/develop-guid/component-market/monitoring",permalink:"/website/docs/develop-guid/component-market/monitoring",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"\u65e5\u5fd7\u7ec4\u4ef6",permalink:"/website/docs/develop-guid/component-market/logging"},next:{title:"\u533a\u5757\u94fe - \u8054\u76df\u94fe",permalink:"/website/docs/develop-guid/component-market/blockchain"}},c={},u=[{value:"\u7b80\u4ecb",id:"\u7b80\u4ecb",level:3},{value:"\u5b89\u88c5\u6b65\u9aa4",id:"\u5b89\u88c5\u6b65\u9aa4",level:3},{value:"\u524d\u7f6e\u6761\u4ef6",id:"\u524d\u7f6e\u6761\u4ef6",level:4},{value:"1.\u51c6\u5907\u955c\u50cf,push \u5230\u5bf9\u5e94\u73af\u5883\u7684 harbor \u4ed3\u5e93",id:"1\u51c6\u5907\u955c\u50cfpush-\u5230\u5bf9\u5e94\u73af\u5883\u7684-harbor-\u4ed3\u5e93",level:4},{value:"2.\u83b7\u53d6 helm \u5305\uff0c\u5e76\u89e3\u538b",id:"2\u83b7\u53d6-helm-\u5305\u5e76\u89e3\u538b",level:4},{value:"3.\u4fee\u6539 charts \u5305\u7684 values.yaml",id:"3\u4fee\u6539-charts-\u5305\u7684-valuesyaml",level:4},{value:"4.\u521b\u5efa namesapce",id:"4\u521b\u5efa-namesapce",level:4},{value:"5.\u751f\u6210 ca \u8bc1\u4e66(\u53ea\u6709 vmselect \u5f00\u542f\u4e86 sidecar\uff0c\u652f\u6301 oidc \u53c2\u6570\u65f6\u9700\u8981)",id:"5\u751f\u6210-ca-\u8bc1\u4e66\u53ea\u6709-vmselect-\u5f00\u542f\u4e86-sidecar\u652f\u6301-oidc-\u53c2\u6570\u65f6\u9700\u8981",level:4},{value:"6.helm install",id:"6helm-install",level:4},{value:"7.\u68c0\u67e5\u7ec4\u4ef6\u662f\u5426\u8fd0\u884c\u6210\u529f",id:"7\u68c0\u67e5\u7ec4\u4ef6\u662f\u5426\u8fd0\u884c\u6210\u529f",level:4},{value:"8.\u529f\u80fd\u9a8c\u8bc1",id:"8\u529f\u80fd\u9a8c\u8bc1",level:4}],s={toc:u},m="wrapper";function p(e){let{components:t,...r}=e;return(0,a.kt)(m,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u76d1\u63a7\u7ec4\u4ef6"},"\u76d1\u63a7\u7ec4\u4ef6"),(0,a.kt)("h3",{id:"\u7b80\u4ecb"},"\u7b80\u4ecb"),(0,a.kt)("p",null,"\u8be5\u76d1\u63a7\u90e8\u7f72\u5305\u7528\u4e8e\u5b89\u88c5\u76d1\u63a7\u7cfb\u7edf\u7cfb\u7edf\u7684\u7ec4\u4ef6\uff0c\u9ed8\u8ba4\u5b89\u88c5 monitoring-operator\u3001victoriametrics,\u9009\u88c5 node-exporter\u3001metrics-server\u3001kube-state-metrics\u3001grafana,\u96c6\u7fa4\u5df2\u6709\u7684\u7ec4\u4ef6\u4e0d\u9700\u8981\u5b89\u88c5;\n\u5404\u4e2a\u7ec4\u4ef6\u7684\u4f5c\u7528\u5982\u4e0b\uff1a"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"node-exporter\uff1a\u91c7\u96c6\u5230\u4e3b\u673a\u7684\u8fd0\u884c\u6307\u6807\u5982 CPU\u3001\u5185\u5b58\u3001\u78c1\u76d8\u7b49\u4fe1\u606f\uff1b"),(0,a.kt)("li",{parentName:"ul"},"victoriametrics\uff1a\u4e00\u4e2a\u5feb\u901f\u9ad8\u6548\u3001\u7ecf\u6d4e\u5e76\u4e14\u53ef\u6269\u5c55\u7684\u76d1\u63a7\u89e3\u51b3\u65b9\u6848\u548c\u65f6\u5e8f\u6570\u636e\u5e93,\u8d1f\u8d23\u76d1\u63a7\u6570\u636e\u7684\u6293\u53d6\u3001\u5b58\u50a8\u3001\u67e5\u8be2\uff0c\u5e76\u53ef\u4ee5\u6839\u636e\u544a\u8b66\u89c4\u5219\u89e6\u53d1\u544a\u8b66\uff1b"),(0,a.kt)("li",{parentName:"ul"},"metrics-server\uff1a Kubernetes \u96c6\u7fa4\u6838\u5fc3\u76d1\u63a7\u6570\u636e\u7684\u805a\u5408\u5668\uff0c\u5b9a\u65f6\u4ece Kubelet \u7684 Summary API \u91c7\u96c6\u6307\u6807\u4fe1\u606f\uff09\uff0c\u53ef\u4ee5\u901a\u8fc7 Metrics API \u7684\u5f62\u5f0f\u83b7\u53d6 Metrics \u6570\u636e\uff1b"),(0,a.kt)("li",{parentName:"ul"},"kube-state-metrics\uff1a\u91c7\u96c6 deployment\uff0cPod\u3001daemonset\u3001cronjob \u7b49 k8s \u8d44\u6e90\u5bf9\u8c61\u7684\u76d1\u63a7\u6570\u636e\uff0c\u63d0\u4f9b\u76d1\u63a7\u6307\u6807\uff1b"),(0,a.kt)("li",{parentName:"ul"},"grafana:\u4e00\u4e2a\u53ef\u89c6\u5316\u5de5\u5177\uff0c\u5b83\u63d0\u4f9b\u4e86\u5f3a\u5927\u548c\u4f18\u96c5\u7684\u65b9\u5f0f\u53bb\u521b\u5efa\u3001\u5171\u4eab\u3001\u6d4f\u89c8\u6570\u636e\uff0c\u5e76\u63d0\u4f9b\u4e86\u5f88\u591a\u6f02\u4eae\u7684\u6a21\u677f\uff0c\u5f53\u9700\u8981\u76f4\u63a5\u67e5\u770b\u76d1\u63a7\u6570\u636e\u65f6\u5019\uff0c\u53ef\u4ee5\u88c5\u4e0a\uff1b"),(0,a.kt)("li",{parentName:"ul"},"monitoring-operator: \u8d1f\u8d23\u7ba1\u7406\u4e0a\u8ff0\u76d1\u63a7\u7ec4\u4ef6.")),(0,a.kt)("h3",{id:"\u5b89\u88c5\u6b65\u9aa4"},"\u5b89\u88c5\u6b65\u9aa4"),(0,a.kt)("h4",{id:"\u524d\u7f6e\u6761\u4ef6"},"\u524d\u7f6e\u6761\u4ef6"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u5982\u679c\u76d1\u63a7\u7ec4\u4ef6 vmselect \u5982\u679c\u5f00\u542f\u4e86 sidecar\uff0ckube-rbac-proxy \u652f\u6301 OIDC\uff0c\u5219\u9700\u8981\u63d0\u524d\u90e8\u7f72\u597d OIDC \u76f8\u5173\u7684\u5185\u5bb9\uff0c\u53ef\u4ee5\u901a\u8fc7\u6267\u884c"),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre"},"kubectl get pod -n u4a-system\n")),(0,a.kt)("p",{parentName:"li"},"\u67e5\u770b\u662f\u5426\u6709 oidc-server\uff0c\u68c0\u67e5\u76f8\u5173\u7ec4\u4ef6\u662f\u5426\u5df2\u7ecf\u5b89\u88c5\u597d\uff1b")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u5982\u679c\u9700\u8981\u4f7f\u7528 ingress\uff0c\u5219\u9700\u8981\u63d0\u524d\u90e8\u7f72\u597d ingress-controller\uff1b")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"vmstorage \u9700\u8981\u8fdb\u884c\u6570\u636e\u6301\u4e45\u5316\uff0c\u9700\u8981\u63d0\u524d\u51c6\u5907\u597d StorageClass\uff1b")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u521b\u5efa\u597d Group observability\uff0c\u8be5\u7ec4\u5177\u6709\u8bbf\u95ee\u76d1\u63a7\u6570\u636e\u7684\u6743\u9650\uff1b"))),(0,a.kt)("h4",{id:"1\u51c6\u5907\u955c\u50cfpush-\u5230\u5bf9\u5e94\u73af\u5883\u7684-harbor-\u4ed3\u5e93"},"1.\u51c6\u5907\u955c\u50cf,push \u5230\u5bf9\u5e94\u73af\u5883\u7684 harbor \u4ed3\u5e93"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u9700\u8981\u4ee5\u4e0b\u955c\u50cf")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"# \u4e3b\u8981\u5165\u53e3 operator\nhub.tenxcloud.com/kubebb/monitoring-operator:v0.1.2\n\n# vm \u793e\u533a\u76f8\u5173\u955c\u50cf\nhub.tenxcloud.com/kubebb/vm-operator:v0.35.1\nhub.tenxcloud.com/kubebb/vminsert:v1.91.3-cluster\nhub.tenxcloud.com/kubebb/vmstorage:v1.91.3-cluster\nhub.tenxcloud.com/kubebb/vmselect:v1.91.3-cluster\nhub.tenxcloud.com/kubebb/vmagent:v1.91.3\nhub.tenxcloud.com/kubebb/vmalert:v1.91.3\n\n# \u5176\u4ed6\u4f9d\u8d56\u955c\u50cf\nhub.tenxcloud.com/kubebb/kube-rbac-proxy:v0.13.0-32f11472\nhub.tenxcloud.com/kubebb/node-exporter:v2.5.0\nhub.tenxcloud.com/kubebb/configmap-reload:v0.3.0\nhub.tenxcloud.com/kubebb/prometheus-config-reloader:v0.58.0\nhub.tenxcloud.com/kubebb/prom-rule-reloader:v0.1.2\nhub.tenxcloud.com/kubebb/alertmanager:v0.20.0\nhub.tenxcloud.com/kubebb/kube-state-metrics:v1.9.7 (\u9009\u88c5)\nhub.tenxcloud.com/kubebb/metrics-server:v0.4.1 (\u9009\u88c5)\nhub.tenxcloud.com/kubebb/grafana:10.0.2\uff08\u9009\u88c5\uff09\n")),(0,a.kt)("h4",{id:"2\u83b7\u53d6-helm-\u5305\u5e76\u89e3\u538b"},"2.\u83b7\u53d6 helm \u5305\uff0c\u5e76\u89e3\u538b"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"tar zxvf monitoring-operator-0.1.0.tgz\ncd monitoring-operator\n")),(0,a.kt)("h4",{id:"3\u4fee\u6539-charts-\u5305\u7684-valuesyaml"},"3.\u4fee\u6539 charts \u5305\u7684 values.yaml"),(0,a.kt)("p",null,"\u53c2\u7167 values.yaml \u91cc\u9762\u7684\u6ce8\u91ca\uff0c\u4e3b\u8981\u6709\u4ee5\u4e0b\u5185\u5bb9\u9700\u8981\u4fee\u6539\uff1a"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u6839\u636e\u5b9e\u9645\u73af\u5883\uff0c\u4fee\u6539\u955c\u50cf\u5730\u5740\uff1b"),(0,a.kt)("li",{parentName:"ul"},"\u5e26\u6709 enabled \u7684\u662f\u53ef\u4ee5\u63a7\u5236\u6539\u7ec4\u4ef6\u662f\u5426\u53ef\u4ee5\u542f\u7528\uff0cfalse \u5219\u4e0d\u5b89\u88c5\uff0ctrue \u4f1a\u5b89\u88c5\uff0c\u6ca1\u6709 enabled \u53c2\u6570\u4f1a\u9ed8\u8ba4\u88c5\u4e0a\uff1b"),(0,a.kt)("li",{parentName:"ul"},"\u5982\u679c\u5f00\u542f nodePort\uff0c\u5148\u68c0\u67e5\u7aef\u53e3\u662f\u5426\u88ab\u5360\u7528\uff0c\u4e0d\u4f7f\u7528\u8bbe\u7f6e\u4e3a 0 \u5373\u53ef\uff1b"),(0,a.kt)("li",{parentName:"ul"},"\u5982\u679c\u5f00\u542f ingress\uff0c\u9700\u8981\u4fee\u6539 ingress \u8d44\u6e90\u7684\u6ce8\u89e3\uff0c\u6ce8\u89e3 key \u662f kubernetes.io/ingress.class\u3002\u6ce8\u89e3\u7684\u503c\u53ef\u4ee5\u67e5\u770b ingress-controller \u7684 deploy \u91cc\u9762\u7684 args \u53c2\u6570\uff0c\u5982",(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre"},"kubeclt edit deploy -n kube-system ingress-urygcdmyts\n")),"\u53d6 args \u91cc\u9762\u7684\u503c- --ingress-class=nginx-ingress-urygcdmyts\uff0cnginx-ingress-urygcdmyts \u5c31\u662f\u8981\u586b\u5165\u6ce8\u89e3\u7684\u503c\uff1b ")),(0,a.kt)("h4",{id:"4\u521b\u5efa-namesapce"},"4.\u521b\u5efa namesapce"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"kubectl --as=admin --as-group=iam.tenxcloud.com create -f - < oidc-sidecar-secret.yaml\n\n\u4fee\u6539 yaml \u7684 namesapce \u4e3a addon-system\uff0c\u521b\u5efa\u4e00\u4e2a\u65b0\u7684 secret\n\nkubectl create -f oidc-sidecar-secret.yaml\n")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"oidcIssuer,oidcClientID \u53c2\u6570\u7684\u83b7\u53d6")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"kubectl get cm -n u4a-system oidc-server -o yaml\n")),(0,a.kt)("p",null,"oidcIssuer \u53d6\u5176\u4e2d\u7684 issuer \u7684\u5185\u5bb9\u5373\u53ef\uff0c\u6bd4\u5982\uff1a",(0,a.kt)("a",{parentName:"p",href:"https://oidc.192.168.90.217.nip.io"},"https://oidc.192.168.90.217.nip.io")),(0,a.kt)("p",null,"oidcClientID \u53d6\u5176\u4e2d\u7684 staticClients \u4e0b\u7684 id \u5185\u5bb9\u5373\u53ef\uff0c\u6bd4\u5982 bff-client"),(0,a.kt)("h4",{id:"6helm-install"},"6.helm install"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"\u6267\u884c helm \u547d\u4ee4\uff0cmonitoring-operator \u662f\u5e94\u7528\u7684\u540d\u79f0\uff0c\u6839\u636e\u5b9e\u9645\u9700\u8981\u4fee\u6539")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"helm install monitoring-operator -n addon-system ./\n")),(0,a.kt)("h4",{id:"7\u68c0\u67e5\u7ec4\u4ef6\u662f\u5426\u8fd0\u884c\u6210\u529f"},"7.\u68c0\u67e5\u7ec4\u4ef6\u662f\u5426\u8fd0\u884c\u6210\u529f"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"kubectl get po -n addon-system\n")),(0,a.kt)("p",null,"\u68c0\u67e5\u7684 Pod \u662f\u5426\u6b63\u5e38\u8fd0\u884c\uff1b"),(0,a.kt)("h4",{id:"8\u529f\u80fd\u9a8c\u8bc1"},"8.\u529f\u80fd\u9a8c\u8bc1"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u90e8\u7f72\u6210\u529f\u540e\uff0c\u53ef\u4ee5\u901a\u8fc7 ingress \u5730\u5740\u53bb\u65b9\u5f0f\u8bbf\u95ee\u6570\u636e,\u67e5\u770b ingress \u7684 hosts \u5730\u5740\u547d\u4ee4\u5982\u4e0b\uff1a"),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre"},"kubectl -n addon-system get ingress\n")),(0,a.kt)("p",{parentName:"li"}," \u5982\u679c vmselect \u5f00\u542f\u4e86 nodePort\uff0c\u90a3\u4e48\u4e5f\u53ef\u4ee5\u901a\u8fc7\u4e3b\u673a IP\uff1anodePort \u7684\u65b9\u5f0f\u53bb\u8bbf\u95ee\u76d1\u63a7\u6570\u636e")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u5c06\u7528\u6237\u52a0\u5165\u7ec4 observability\uff0c\u8be5\u7ec4\u5177\u6709\u8bbf\u95ee\u76d1\u63a7\u6570\u636e\u7684\u6743\u9650\uff0c\u83b7\u53d6\u7528\u6237 token\uff0c\u8bbf\u95ee\u76d1\u63a7\u6570\u636e\u5e26\u4e0a token\uff0c\u9a8c\u8bc1\u6743\u9650\uff0c\u6ca1\u6709\u6743\u9650\u5219\u51fa\u73b0 Unauthorized;\n\u8bf7\u6c42\u547d\u4ee4\u53c2\u8003\uff1a"),(0,a.kt)("pre",{parentName:"li"},(0,a.kt)("code",{parentName:"pre"},'curl -k "monitoring.192.168.90.217.nip.io/select/0/prometheus/api/v1/query" -d "query=up" -H"Authorization: bearer eyJhbGciOi..."\n')))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/db569f15.a147d68c.js b/assets/js/db569f15.a147d68c.js new file mode 100644 index 000000000..604dd8a3c --- /dev/null +++ b/assets/js/db569f15.a147d68c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1341],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var p=n.createContext({}),c=function(e){var t=n.useContext(p),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},d=function(e){var t=c(e.components);return n.createElement(p.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var r=e.components,o=e.mdxType,l=e.originalType,p=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),u=c(r),m=o,f=u["".concat(p,".").concat(m)]||u[m]||s[m]||l;return r?n.createElement(f,a(a({ref:t},d),{},{components:r})):n.createElement(f,a({ref:t},d))}));function f(e,t){var r=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var l=r.length,a=new Array(l);a[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[u]="string"==typeof e?e:o,a[1]=i;for(var c=2;c{r.r(t),r.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>s,frontMatter:()=>l,metadata:()=>i,toc:()=>c});var n=r(7462),o=(r(7294),r(3905));const l={sidebar_position:2},a="\u5f00\u53d1\u6a21\u5f0f",i={unversionedId:"develop-guid/lowcode-development/development_pattern",id:"develop-guid/lowcode-development/development_pattern",title:"\u5f00\u53d1\u6a21\u5f0f",description:"KubeBB \u7ec4\u4ef6\u7684\u5f00\u53d1\u91c7\u53d6\u524d\u540e\u7aef\u5206\u79bb\uff0c\u4ee5 K8S \u4e3a\u6838\u5fc3\u7684\u5f00\u53d1\u6846\u67b6\uff0c\u9075\u5faa K8S \u7684\u6269\u5c55\u673a\u5236\u53ca API \u89c4\u8303\u3002\u6574\u4f53\u5f00\u53d1\u67b6\u6784\u7684\u57fa\u672c\u903b\u8f91\u5982\u4e0b\u56fe\u6240\u793a\uff1a",source:"@site/docs/develop-guid/lowcode-development/development_pattern.md",sourceDirName:"develop-guid/lowcode-development",slug:"/develop-guid/lowcode-development/development_pattern",permalink:"/website/docs/develop-guid/lowcode-development/development_pattern",draft:!1,tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"\u4ecb\u7ecd",permalink:"/website/docs/develop-guid/lowcode-development/intro"},next:{title:"\u7ec4\u4ef6\u5f00\u53d1",permalink:"/website/docs/category/\u7ec4\u4ef6\u5f00\u53d1"}},p={},c=[{value:"\u4e09\u5c42\u6a21\u5f0f",id:"\u4e09\u5c42\u6a21\u5f0f",level:2}],d={toc:c},u="wrapper";function s(e){let{components:t,...l}=e;return(0,o.kt)(u,(0,n.Z)({},d,l,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"\u5f00\u53d1\u6a21\u5f0f"},"\u5f00\u53d1\u6a21\u5f0f"),(0,o.kt)("p",null,"KubeBB \u7ec4\u4ef6\u7684\u5f00\u53d1\u91c7\u53d6\u524d\u540e\u7aef\u5206\u79bb\uff0c\u4ee5 K8S \u4e3a\u6838\u5fc3\u7684\u5f00\u53d1\u6846\u67b6\uff0c\u9075\u5faa K8S \u7684\u6269\u5c55\u673a\u5236\u53ca API \u89c4\u8303\u3002\u6574\u4f53\u5f00\u53d1\u67b6\u6784\u7684\u57fa\u672c\u903b\u8f91\u5982\u4e0b\u56fe\u6240\u793a\uff1a\n",(0,o.kt)("img",{alt:"dev_arch",src:r(1969).Z,width:"1089",height:"724"})),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"\u6240\u6709\u7ec4\u4ef6\u7684\u5f00\u53d1\u3001\u6269\u5c55\u7684\u8ba4\u8bc1\u90fd\u901a\u8fc7\u7edf\u4e00\u8ba4\u8bc1\u4e2d\u5fc3\u8fdb\u884c\u8ba4\u8bc1"),(0,o.kt)("li",{parentName:"ol"},"\u8ba4\u8bc1\u7531\u5fae\u524d\u7aef\u7684\u4e3b\u6846\u67b6 DockApp \u7edf\u4e00\u8fdb\u884c\uff0c\u5176\u4ed6\u5fae\u524d\u7aef\u7684\u6269\u5c55\u4e0d\u9700\u8981\u5355\u72ec\u652f\u6301\u540c\u8ba4\u8bc1\u4e2d\u5fc3\u7684\u5904\u7406")),(0,o.kt)("h2",{id:"\u4e09\u5c42\u6a21\u5f0f"},"\u4e09\u5c42\u6a21\u5f0f"),(0,o.kt)("p",null,"\u57fa\u4e8e\u4f4e\u7801\u5f00\u53d1\u7684\u7ec4\u4ef6\uff0c\u5c06\u91c7\u7528\u5982\u4e0b\u4e09\u5c42\u5f00\u53d1\u6a21\u5f0f:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"\u7b2c\u4e00\u5c42:")," \u524d\u7aef\u91c7\u7528\u5fae\u524d\u7aef\u67b6\u6784\uff0c\u63a8\u8350\u91c7\u7528\u4f4e\u4ee3\u7801\u65b9\u5f0f\u8fdb\u884c\u5f00\u53d1\uff0c\u63d0\u9ad8\u4ee3\u7801\u81ea\u52a8\u5316\u751f\u6210\u6bd4\u4f8b\uff0c\u4e5f\u53ef\u91c7\u7528\u624b\u52a8\u5f00\u53d1\u7684\u6a21\u5f0f\uff0c\u8be6\u89c1 ",(0,o.kt)("a",{parentName:"li",href:"/website/docs/develop-guid/lowcode-development/development/frontend"},"\u524d\u7aef\u5c42\u5f00\u53d1")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"\u7b2c\u4e8c\u5c42:")," \u6839\u636e\u4e1a\u52a1\u9700\u6c42\u589e\u52a0 OpenAPI\uff0c\u5f62\u6210\u7edf\u4e00\u7684 BFF \u5c42\uff0c\u5bf9 API \u8fdb\u884c\u805a\u5408\uff0c\u63d0\u4f9b\u524d\u7aef\u6240\u9700\u8981\u7684\u4e1a\u52a1\u573a\u666f\u6570\u636e\uff0c\u76ee\u524d K8s \u8d44\u6e90\u7684 sdk \u53ef\u5b9e\u73b0\u81ea\u52a8\u751f\u6210\uff0c\u540e\u7eed\u8fd9\u4e00\u5c42\u4e5f\u4f1a\u63a2\u7d22\u4f4e\u7801\u5316"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"\u7b2c\u4e09\u5c42:")," \u540e\u7aef\u91c7\u7528 CRD + controller \u7684 Operator \u6a21\u5f0f\u8fdb\u884c\u5f00\u53d1\uff0c\u5f62\u6210\u6570\u636e\u9a71\u52a8\u7684\u6d41\u7a0b\u5f00\u53d1\u6a21\u5f0f")))}s.isMDXComponent=!0},1969:(e,t,r)=>{r.d(t,{Z:()=>n});const n=r.p+"assets/images/dev_arch-8fbc2a4fd6aeaaa23274c226eb811799.png"}}]); \ No newline at end of file diff --git a/assets/js/e3b83f16.03f6f1d9.js b/assets/js/e3b83f16.03f6f1d9.js deleted file mode 100644 index 136d367c1..000000000 --- a/assets/js/e3b83f16.03f6f1d9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9377],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>f});var n=r(7294);function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}var a=n.createContext({}),c=function(e){var t=n.useContext(a),r=t;return e&&(r="function"==typeof e?e(t):l(l({},t),e)),r},s=function(e){var t=c(e.components);return n.createElement(a.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},b=n.forwardRef((function(e,t){var r=e.components,i=e.mdxType,o=e.originalType,a=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),d=c(r),b=i,f=d["".concat(a,".").concat(b)]||d[b]||p[b]||o;return r?n.createElement(f,l(l({ref:t},s),{},{components:r})):n.createElement(f,l({ref:t},s))}));function f(e,t){var r=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=r.length,l=new Array(o);l[0]=b;var u={};for(var a in t)hasOwnProperty.call(t,a)&&(u[a]=t[a]);u.originalType=e,u[d]="string"==typeof e?e:i,l[1]=u;for(var c=2;c{r.r(t),r.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>p,frontMatter:()=>o,metadata:()=>u,toc:()=>c});var n=r(7462),i=(r(7294),r(3905));const o={sidebar_position:1,title:"\u6700\u65b0\u52a8\u6001",sidebar_label:"\u6700\u65b0\u52a8\u6001"},l="\u529f\u80fd\u53d1\u5e03\u8bb0\u5f55",u={unversionedId:"user-guid/version",id:"user-guid/version",title:"\u6700\u65b0\u52a8\u6001",description:"\u672c\u6587\u4ecb\u7ecd\u4e86 Kubebb \u5404\u7248\u672c\u7684\u529f\u80fd\u53d1\u5e03\u548c\u5bf9\u5e94\u7684\u6587\u6863\u52a8\u6001\uff0c\u6b22\u8fce\u4f53\u9a8c\u3002",source:"@site/docs/user-guid/version.md",sourceDirName:"user-guid",slug:"/user-guid/version",permalink:"/website/docs/user-guid/version",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"\u6700\u65b0\u52a8\u6001",sidebar_label:"\u6700\u65b0\u52a8\u6001"},sidebar:"tutorialSidebar",previous:{title:"\u4f7f\u7528 kubelogin \u5de5\u5177",permalink:"/website/docs/component-market/kubelogin"},next:{title:"\u4ea7\u54c1\u4ecb\u7ecd",permalink:"/website/docs/user-guid/intro"}},a={},c=[{value:"2023\u5e7410\u6708",id:"2023\u5e7410\u6708",level:2}],s={toc:c},d="wrapper";function p(e){let{components:t,...r}=e;return(0,i.kt)(d,(0,n.Z)({},s,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"\u529f\u80fd\u53d1\u5e03\u8bb0\u5f55"},"\u529f\u80fd\u53d1\u5e03\u8bb0\u5f55"),(0,i.kt)("p",null,"\u672c\u6587\u4ecb\u7ecd\u4e86 Kubebb \u5404\u7248\u672c\u7684\u529f\u80fd\u53d1\u5e03\u548c\u5bf9\u5e94\u7684\u6587\u6863\u52a8\u6001\uff0c\u6b22\u8fce\u4f53\u9a8c\u3002"),(0,i.kt)("h2",{id:"2023\u5e7410\u6708"},"2023\u5e7410\u6708"),(0,i.kt)("p",null,"Kubebb v0.2.0\uff1a\u53ef\u89c6\u5316\u7ba1\u7406\u7ec4\u4ef6\u4ed3\u5e93\u3001\u7ec4\u4ef6\u5e02\u573a\u3001\u53d1\u5e03\u7ec4\u4ef6\u3001\u5b89\u88c5\u7ec4\u4ef6\u3001\u8ba2\u9605\u7ec4\u4ef6\u3001\u7ec4\u4ef6\u8bc4\u6d4b"),(0,i.kt)("table",null,(0,i.kt)("tr",null,(0,i.kt)("th",null,"\u529f\u80fd\u540d\u79f0"),(0,i.kt)("th",null,"\u529f\u80fd\u63cf\u8ff0"),(0,i.kt)("th",null,"\u53d1\u5e03\u7c7b\u578b")),(0,i.kt)("tr",null,(0,i.kt)("td",{width:"15%"},"\u7ec4\u4ef6\u5e02\u573a"),(0,i.kt)("td",null,"\u4e00\u4e2a\u5f00\u653e\u3001\u5171\u4eab\u7684\u7ec4\u4ef6\u5546\u5e97\uff0c\u652f\u6301\u6d4f\u89c8\u3001\u8ba2\u9605\u3001\u4e0b\u8f7d\u3001\u5b89\u88c5\u7ec4\u4ef6"),(0,i.kt)("td",{width:"15%"},"\u65b0\u589e")),(0,i.kt)("tr",null,(0,i.kt)("td",{width:"15%"},"\u7ec4\u4ef6\u7ba1\u7406"),(0,i.kt)("td",null,"\u53d1\u5e03\u7ec4\u4ef6\u3001\u8ba2\u9605\u7ec4\u4ef6\u3001\u5b89\u88c5\u7ec4\u4ef6"),(0,i.kt)("td",{width:"15%"},"\u65b0\u589e")),(0,i.kt)("tr",null,(0,i.kt)("td",{width:"15%"},"\u7ec4\u4ef6\u8bc4\u6d4b"),(0,i.kt)("td",null,"\u4f7f\u7528\u667a\u80fd AI \u5bf9\u7ec4\u4ef6\u4ece\u5b89\u5168\u6027\u3001\u53ef\u9760\u6027\u3001\u53ef\u7528\u6027\u4e09\u65b9\u9762\u8fdb\u884c\u7efc\u5408\u8bc4\u6d4b\uff0c\u4e3a\u60a8\u7684\u9009\u62e9\u63d0\u4f9b\u53c2\u8003\u6570\u636e"),(0,i.kt)("td",{width:"15%"},"\u65b0\u589e")),(0,i.kt)("tr",null,(0,i.kt)("td",{width:"15%"},"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406"),(0,i.kt)("td",null,"\u6dfb\u52a0\u3001\u7f16\u8f91\u3001\u5220\u9664\u4ed3\u5e93\uff0c\u4ed3\u5e93\u5c5e\u6027\u914d\u7f6e\u7b49"),(0,i.kt)("td",{width:"15%"},"\u65b0\u589e"))))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e61d63f6.fa42fc68.js b/assets/js/e61d63f6.fa42fc68.js new file mode 100644 index 000000000..59cc0f7c6 --- /dev/null +++ b/assets/js/e61d63f6.fa42fc68.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4385],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var a=r.createContext({}),d=function(e){var t=r.useContext(a),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},c=function(e){var t=d(e.components);return r.createElement(a.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,a=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),u=d(n),m=o,f=u["".concat(a,".").concat(m)]||u[m]||s[m]||i;return n?r.createElement(f,l(l({ref:t},c),{},{components:n})):r.createElement(f,l({ref:t},c))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,l=new Array(i);l[0]=m;var p={};for(var a in t)hasOwnProperty.call(t,a)&&(p[a]=t[a]);p.originalType=e,p[u]="string"==typeof e?e:o,l[1]=p;for(var d=2;d{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>s,frontMatter:()=>i,metadata:()=>p,toc:()=>d});var r=n(7462),o=(n(7294),n(3905));const i={sidebar_position:1},l="\u524d\u7aef\u5c42\u5f00\u53d1",p={unversionedId:"develop-guid/lowcode-development/development/frontend",id:"develop-guid/lowcode-development/development/frontend",title:"\u524d\u7aef\u5c42\u5f00\u53d1",description:"KubeBB \u524d\u7aef\u5c42\u7684\u5f00\u53d1\u6a21\u5f0f\u4ecb\u7ecd\u3002",source:"@site/docs/develop-guid/lowcode-development/development/frontend.md",sourceDirName:"develop-guid/lowcode-development/development",slug:"/develop-guid/lowcode-development/development/frontend",permalink:"/website/docs/develop-guid/lowcode-development/development/frontend",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6\u5f00\u53d1",permalink:"/website/docs/category/\u7ec4\u4ef6\u5f00\u53d1"},next:{title:"\u524d\u7aef\u5c42\u57fa\u4e8e\u4f4e\u7801 Kit \u7684\u5f00\u53d1",permalink:"/website/docs/develop-guid/lowcode-development/development/frontend-low-code"}},a={},d=[{value:"\u67b6\u6784\u6982\u8ff0",id:"\u67b6\u6784\u6982\u8ff0",level:2},{value:"\u4f4e\u7801 Kit \u5f00\u53d1\u7684\u5e94\u7528",id:"\u4f4e\u7801-kit-\u5f00\u53d1\u7684\u5e94\u7528",level:2},{value:"\u5e38\u89c4\u5e94\u7528",id:"\u5e38\u89c4\u5e94\u7528",level:2},{value:"\u63a5\u5165\u5fae\u524d\u7aef",id:"\u63a5\u5165\u5fae\u524d\u7aef",level:3},{value:"iframe \u5d4c\u5165\u6216\u83dc\u5355\u8df3\u8f6c",id:"iframe-\u5d4c\u5165\u6216\u83dc\u5355\u8df3\u8f6c",level:3}],c={toc:d},u="wrapper";function s(e){let{components:t,...i}=e;return(0,o.kt)(u,(0,r.Z)({},c,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"\u524d\u7aef\u5c42\u5f00\u53d1"},"\u524d\u7aef\u5c42\u5f00\u53d1"),(0,o.kt)("p",null,"KubeBB \u524d\u7aef\u5c42\u7684\u5f00\u53d1\u6a21\u5f0f\u4ecb\u7ecd\u3002"),(0,o.kt)("h2",{id:"\u67b6\u6784\u6982\u8ff0"},"\u67b6\u6784\u6982\u8ff0"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"\u524d\u7aef\u5c42\u67b6\u6784\u56fe",src:n(9508).Z,width:"1186",height:"410"})),(0,o.kt)("p",null,"KubeBB \u4e2d\u524d\u7aef\u5c42\u91c7\u7528\u5fae\u524d\u7aef\u67b6\u6784\uff0c\u7531\u57fa\u5ea7\u5e94\u7528 DockApp \u53ca\u5404\u4e2a\u5b50\u5e94\u7528\u7ec4\u6210\uff0c\u6b64\u5916\u4e5f\u652f\u6301\u5e38\u89c4\u5e94\u7528\u4ee5\u5fae\u524d\u7aef\u3001iframe \u5d4c\u5165\u3001\u83dc\u5355\u8df3\u8f6c\u7b49\u65b9\u5f0f\u63a5\u5165\u5230 DockApp \u4e2d\u3002"),(0,o.kt)("h2",{id:"\u4f4e\u7801-kit-\u5f00\u53d1\u7684\u5e94\u7528"},"\u4f4e\u7801 Kit \u5f00\u53d1\u7684\u5e94\u7528"),(0,o.kt)("p",null,"\u4f4e\u7801 Kit \u5373\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\u4e2d\u5f00\u53d1\u7684\u5e94\u7528\uff0c\u672c\u8eab\u5c31\u63a5\u5165\u4e86\u5fae\u524d\u7aef\uff0c\u53ef\u4ee5\u65e0\u7f1d\u63a5\u5165\u5230 DockApp \u4e2d\uff0c\u7528\u6237\u53ef\u4ee5\u5728\u5e94\u7528\u8be6\u60c5\u7684\u53d1\u5e03\u7ba1\u7406\u6a21\u5757\u4e2d\u5bf9\u5e94\u7528\u8fdb\u884c\u53d1\u5e03\uff0c\u5e94\u7528\u53d1\u5e03\u5b8c\u6210\u540e\u4f1a\u751f\u6210\u4e00\u4e2a helm \u5305\uff0c\u8fd9\u4e2a helm \u5305\u5c31\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u63a5\u5165\u4e86\u5fae\u524d\u7aef\u7684 KubeBB \u7ec4\u4ef6\u3002"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"\u53d1\u5e03\u7ba1\u7406",src:n(28).Z,width:"2705",height:"1763"})),(0,o.kt)("h2",{id:"\u5e38\u89c4\u5e94\u7528"},"\u5e38\u89c4\u5e94\u7528"),(0,o.kt)("p",null,"\u5e38\u89c4\u5e94\u7528\u5373\u6211\u4eec\u5e73\u5e38\u5f00\u53d1\u7684\u6e90\u7801\u5e94\u7528\u3002\u5e38\u89c4\u5e94\u7528\u53ef\u4ee5\u91c7\u7528\u63a5\u5165\u5fae\u524d\u7aef\u3001iframe \u5d4c\u5165\u6216\u83dc\u5355\u8df3\u8f6c\u7684\u5f62\u5f0f\u63a5\u5165\u5230 DockApp \u4e2d\u3002"),(0,o.kt)("h3",{id:"\u63a5\u5165\u5fae\u524d\u7aef"},"\u63a5\u5165\u5fae\u524d\u7aef"),(0,o.kt)("p",null,"DockApp \u91c7\u7528\u7684\u5fae\u524d\u7aef\u6280\u672f\u65b9\u6848\u662f",(0,o.kt)("a",{parentName:"p",href:"https://qiankun.umijs.org/"},"\u4e7e\u5764"),"\uff0c\u5e38\u89c4\u5e94\u7528\u9700\u8981\u6539\u9020\u6210\u4e7e\u5764\u7684\u5fae\u5e94\u7528\uff0c\u624d\u80fd\u63a5\u5165\u5230 DockApp \u4e2d\uff0c\u6559\u7a0b\u8be6\u89c1 ",(0,o.kt)("a",{parentName:"p",href:"https://qiankun.umijs.org/zh/guide/tutorial#%E5%BE%AE%E5%BA%94%E7%94%A8"},"\u9879\u76ee\u5b9e\u8df5 - \u5fae\u5e94\u7528"),"\uff0c\u5982\u679c\u5e38\u89c4\u5e94\u7528\u662f\u7528 Umi.js \u5f00\u53d1\u7684\uff0c\u63a5\u5165\u5fae\u524d\u7aef\u7279\u522b\u7b80\u5355\uff0c\u652f\u6301\u4e00\u952e\u542f\u7528\uff0c\u8be6\u89c1 ",(0,o.kt)("a",{parentName:"p",href:"https://umijs.org/docs/max/micro-frontend"},"UmiJS - \u5fae\u524d\u7aef"),"\u3002"),(0,o.kt)("p",null,"\u63a8\u8350\u5e38\u89c4\u5e94\u7528\u91c7\u7528\u5fae\u524d\u7aef\u7684\u65b9\u5f0f\u63a5\u5165\u5230 DockApp \u4e2d\uff0c\u4f7f\u7528\u4f53\u9a8c\u4f1a\u6bd4\u8f83\u597d\u3002"),(0,o.kt)("h3",{id:"iframe-\u5d4c\u5165\u6216\u83dc\u5355\u8df3\u8f6c"},"iframe \u5d4c\u5165\u6216\u83dc\u5355\u8df3\u8f6c"),(0,o.kt)("p",null,"\u8fd9\u79cd\u63a5\u5165\u65b9\u5f0f\u53ea\u9700\u8981\u5728 KubeBB \u7684 \u201c\u7ba1\u7406\u5de5\u4f5c\u53f0 > \u83dc\u5355\u7ba1\u7406\u201d \u4e2d\u65b0\u5efa\u5e38\u7528\u5e94\u7528\u7684\u5bf9\u5e94\u83dc\u5355\u5373\u53ef\uff0c\u7c7b\u578b\u9700\u8981\u9009\u62e9 iframe \u5d4c\u5165\u6216\u94fe\u63a5\u8df3\u8f6c\uff1a"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"\u83dc\u5355\u521b\u5efa",src:n(410).Z,width:"2705",height:"1911"})),(0,o.kt)("p",null,"\u8fd9\u79cd\u65b9\u5f0f\u63a5\u5165\u7684\u7b2c\u4e09\u65b9\u5e94\u7528\u4f7f\u7528\u4f53\u9a8c\u8981\u6bd4\u5fae\u524d\u7aef\u63a5\u5165\u7684\u5e94\u7528\u5dee\u4e00\u4e9b\u3002"))}s.isMDXComponent=!0},28:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/app_publish_tab-903bec47ad3cb07eafb1d667596b2a88.png"},9508:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/fe_arch-26eb7478dfaee6c57641f3fd1df63674.svg"},410:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/menu_create-6e3b032307de3690d86b0059f68becdd.png"}}]); \ No newline at end of file diff --git a/assets/js/e6809710.f4db3540.js b/assets/js/e6809710.f4db3540.js deleted file mode 100644 index 687f06e4c..000000000 --- a/assets/js/e6809710.f4db3540.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7331],{3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>d});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var i=a.createContext({}),s=function(e){var n=a.useContext(i),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},u=function(e){var n=s(e.components);return a.createElement(i.Provider,{value:n},e.children)},c="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},k=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,u=p(e,["components","mdxType","originalType","parentName"]),c=s(t),k=r,d=c["".concat(i,".").concat(k)]||c[k]||m[k]||o;return t?a.createElement(d,l(l({ref:n},u),{},{components:t})):a.createElement(d,l({ref:n},u))}));function d(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,l=new Array(o);l[0]=k;var p={};for(var i in n)hasOwnProperty.call(n,i)&&(p[i]=n[i]);p.originalType=e,p[c]="string"==typeof e?e:r,l[1]=p;for(var s=2;s{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>p,toc:()=>s});var a=t(7462),r=(t(7294),t(3905));const o={sidebar_position:3},l="\u5b89\u88c5\u5e95\u5ea7",p={unversionedId:"quick-start/buildingbase_quickstart",id:"quick-start/buildingbase_quickstart",title:"\u5b89\u88c5\u5e95\u5ea7",description:"\u672c\u7ae0\u8282\u4e3b\u8981\u4ecb\u7ecd\u5e95\u5ea7\u7ec4\u4ef6\u7684\u90e8\u7f72\u6b65\u9aa4\uff0c\u5305\u62ec\u76f8\u5173\u7684\u5f00\u6e90\u6280\u672f\u7ec4\u4ef6\u3001\u524d\u63d0\u6761\u4ef6\u4ee5\u53ca\u5feb\u901f\u90e8\u7f72\uff0c\u5e76\u5c06\u90e8\u7f72\u7684\u96c6\u7fa4\u6dfb\u52a0\u5230\u670d\u52a1\u95e8\u6237\u4e0a\u3002",source:"@site/docs/quick-start/buildingbase_quickstart.md",sourceDirName:"quick-start",slug:"/quick-start/buildingbase_quickstart",permalink:"/website/docs/quick-start/buildingbase_quickstart",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"\u5b89\u88c5\u5185\u6838",permalink:"/website/docs/quick-start/core_quickstart"},next:{title:"\u4f53\u9a8c\u81ea\u5b9a\u4e49\u914d\u7f6e",permalink:"/website/docs/quick-start/try_customization"}},i={},s=[{value:"\u90e8\u7f72",id:"\u90e8\u7f72",level:2},{value:"1. \u521b\u5efa\u5b98\u65b9\u7ec4\u4ef6\u4ed3\u5e93",id:"1-\u521b\u5efa\u5b98\u65b9\u7ec4\u4ef6\u4ed3\u5e93",level:3},{value:"2. \u521b\u5efa\u5e95\u5ea7\u7ec4\u4ef6\u7a7a\u95f4",id:"2-\u521b\u5efa\u5e95\u5ea7\u7ec4\u4ef6\u7a7a\u95f4",level:3},{value:"3. \u90e8\u7f72Cluster Component",id:"3-\u90e8\u7f72cluster-component",level:3},{value:"4. \u90e8\u7f72U4A Component",id:"4-\u90e8\u7f72u4a-component",level:3},{value:"5. \u8bbf\u95ee\u5e95\u5ea7\u670d\u52a1\u95e8\u6237",id:"5-\u8bbf\u95ee\u5e95\u5ea7\u670d\u52a1\u95e8\u6237",level:3},{value:"\u5378\u8f7d",id:"\u5378\u8f7d",level:2},{value:"1. \u5378\u8f7dU4A Component",id:"1-\u5378\u8f7du4a-component",level:3},{value:"2. \u5378\u8f7dCluster Component",id:"2-\u5378\u8f7dcluster-component",level:3}],u={toc:s},c="wrapper";function m(e){let{components:n,...t}=e;return(0,r.kt)(c,(0,a.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u5b89\u88c5\u5e95\u5ea7"},"\u5b89\u88c5\u5e95\u5ea7"),(0,r.kt)("p",null,"\u672c\u7ae0\u8282\u4e3b\u8981\u4ecb\u7ecd\u5e95\u5ea7\u7ec4\u4ef6\u7684\u90e8\u7f72\u6b65\u9aa4\uff0c\u5305\u62ec\u76f8\u5173\u7684\u5f00\u6e90\u6280\u672f\u7ec4\u4ef6\u3001\u524d\u63d0\u6761\u4ef6\u4ee5\u53ca\u5feb\u901f\u90e8\u7f72\uff0c\u5e76\u5c06\u90e8\u7f72\u7684\u96c6\u7fa4\u6dfb\u52a0\u5230\u670d\u52a1\u95e8\u6237\u4e0a\u3002"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"\u5b89\u88c5\u524d\u9700\u5b8c\u6210",(0,r.kt)("a",{parentName:"p",href:"./core_quickstart"},"\u5b89\u88c5\u5185\u6838"),"\u3002")),(0,r.kt)("h2",{id:"\u90e8\u7f72"},"\u90e8\u7f72"),(0,r.kt)("h3",{id:"1-\u521b\u5efa\u5b98\u65b9\u7ec4\u4ef6\u4ed3\u5e93"},"1. \u521b\u5efa\u5b98\u65b9\u7ec4\u4ef6\u4ed3\u5e93"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"\u53ef\u53c2\u8003",(0,r.kt)("a",{parentName:"p",href:"./core_quickstart#%E4%BD%BF%E7%94%A8%E5%AE%98%E6%96%B9%E7%BB%84%E4%BB%B6%E4%BB%93%E5%BA%93"},"\u4f7f\u7528\u5b98\u65b9\u7ec4\u4ef6\u4ed3\u5e93"))),(0,r.kt)("h3",{id:"2-\u521b\u5efa\u5e95\u5ea7\u7ec4\u4ef6\u7a7a\u95f4"},"2. \u521b\u5efa\u5e95\u5ea7\u7ec4\u4ef6\u7a7a\u95f4"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"\u76ee\u524d\u4ec5\u652f\u6301\u4f7f\u7528\u547d\u540d\u7a7a\u95f4",(0,r.kt)("inlineCode",{parentName:"p"},"u4a-system"))),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"}," kubectl create namespace u4a-system\n")),(0,r.kt)("h3",{id:"3-\u90e8\u7f72cluster-component"},"3. \u90e8\u7f72Cluster Component"),(0,r.kt)("p",null,"\u7ec4\u4ef6\u90e8\u7f72\u4fe1\u606f",(0,r.kt)("inlineCode",{parentName:"p"},"cluster_componentplan.yaml"),"\u5982\u4e0b:"),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"\u8be6\u7ec6\u53ef",(0,r.kt)("a",{parentName:"p",href:"https://github.com/kubebb/components/tree/main/examples/cluster-component"},"\u53c2\u8003"))),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: ComponentPlan\nmetadata:\n name: cluster-component\n namespace: u4a-system\nspec:\n approved: true\n name: cluster-component\n version: 0.1.3\n override:\n set:\n - ingress-nginx.controller.nodeSelector.kubernetes\\.io/hostname=kubebb-core-control-plane\n component:\n name: kubebb.cluster-component\n namespace: kubebb-system\n")),(0,r.kt)("p",null,"\u9700\u8c03\u6574\u53c2\u6570:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"override.set.ingress-nginx.controller.nodeSelector.kubernetes\\.io/hostname")," \u5c06\u4f5c\u4e3a",(0,r.kt)("a",{parentName:"li",href:"https://github.com/kubebb/components/tree/main/charts/cluster-component/charts/ingress-nginx"},"ingress-nginx"),"\u670d\u52a1\u8282\u70b9")),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"\u6b64\u5904\u57fa\u4e8e",(0,r.kt)("a",{parentName:"p",href:"./prerequisite#kind%E5%BC%80%E5%8F%91%E9%9B%86%E7%BE%A4"},"kind\u5f00\u53d1\u96c6\u7fa4"),"\u7684",(0,r.kt)("inlineCode",{parentName:"p"},"kubebb-core-control-plane"),"\u8282\u70b9\u3002")),(0,r.kt)("p",null,"\u901a\u8fc7\u4e00\u4e0b\u547d\u4ee4\u90e8\u7f72:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"}," kubectl apply -nu4a-system -f cluster_componentplan.yaml\n")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"Cluster Component"),"\u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u53ef\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u67e5\u770b\u7ec4\u4ef6\u90e8\u7f72\u72b6\u6001:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"}," kubectl get componentplan -nu4a-system cluster-component -oyaml\n")),(0,r.kt)("p",null,"\u5f53\u7ec4\u4ef6\u90e8\u7f72\u72b6\u6001\u5982\u4e0b\u65f6\uff0c\u8868\u793a\u7ec4\u4ef6\u90e8\u7f72\u6210\u529f:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'status:\n conditions:\n - lastTransitionTime: "2023-07-25T08:15:41Z"\n reason: ""\n status: "True"\n type: Approved\n - lastTransitionTime: "2023-07-25T08:15:44Z"\n reason: InstallSuccess\n status: "True"\n type: Actioned\n - lastTransitionTime: "2023-07-25T08:15:44Z"\n reason: ""\n status: "True"\n type: Succeeded\n')),(0,r.kt)("h3",{id:"4-\u90e8\u7f72u4a-component"},"4. \u90e8\u7f72U4A Component"),(0,r.kt)("p",null,"\u7ec4\u4ef6\u90e8\u7f72\u4fe1\u606f",(0,r.kt)("inlineCode",{parentName:"p"},"u4a_componentplan.yaml"),"\u5982\u4e0b:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: ComponentPlan\nmetadata:\n name: u4a-component\n namespace: u4a-system\nspec:\n approved: true\n name: u4a-component\n version: 0.1.5\n wait: true\n override:\n valuesFrom:\n - kind: ConfigMap\n name: u4acm\n valuesKey: "values.yaml"\n component:\n name: kubebb.u4a-component\n namespace: kubebb-system\n')),(0,r.kt)("p",null,"\u5176\u4e2d,\u7ec4\u4ef6",(0,r.kt)("inlineCode",{parentName:"p"},"U4A-Component"),"\u7684\u53c2\u6570\u901a\u8fc7",(0,r.kt)("inlineCode",{parentName:"p"},"ConfigMap"),"\u65b9\u5f0f\u6ce8\u5165\uff0c",(0,r.kt)("inlineCode",{parentName:"p"},"ConfigMap"),"\u7684\u521b\u5efa\u6d41\u7a0b\u53ef\u53c2\u8003",(0,r.kt)("a",{parentName:"p",href:"https://github.com/kubebb/components/tree/main/examples/u4a-component#install-u4a-component"},"U4A\u7ec4\u4ef6\u90e8\u7f72\u6d41\u7a0b")),(0,r.kt)("p",null,"\u901a\u8fc7\u4e00\u4e0b\u547d\u4ee4\u90e8\u7f72:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"}," kubectl apply -nu4a-system -f u4a_componentplan.yaml\n")),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"U4A Component"),"\u90e8\u7f72\u5b8c\u6210\u540e\uff0c\u53ef\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u67e5\u770b\u7ec4\u4ef6\u90e8\u7f72\u72b6\u6001:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"}," kubectl get componentplan -nu4a-system u4a-component -oyaml\n")),(0,r.kt)("h3",{id:"5-\u8bbf\u95ee\u5e95\u5ea7\u670d\u52a1\u95e8\u6237"},"5. \u8bbf\u95ee\u5e95\u5ea7\u670d\u52a1\u95e8\u6237"),(0,r.kt)("p",null,"\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u83b7\u53d6\u95e8\u6237\u670d\u52a1\u7684\u8bbf\u95ee\u5730\u5740:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"},"(base) \u279c ~ kubectl get ingress -nu4a-system\nNAME CLASS HOSTS ADDRESS PORTS AGE\nbff-server-ingress portal.172.18.0.2.nip.io 80, 443 4h55m\nbff-server-ingress-socket portal.172.18.0.2.nip.io 80, 443 4h55m\nkube-oidc-proxy-server-ingress k8s.172.18.0.2.nip.io 80, 443 4h55m\n")),(0,r.kt)("p",null,"\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee",(0,r.kt)("inlineCode",{parentName:"p"},"https://portal.172.18.0.2.nip.io"),"\u5373\u53ef\u8fdb\u5165\u670d\u52a1\u95e8\u6237\u3002\u9ed8\u8ba4\u7684\u7528\u6237\u540d\u5bc6\u7801\u4e3a"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\u7528\u6237\u540d: ",(0,r.kt)("inlineCode",{parentName:"li"},"admin")),(0,r.kt)("li",{parentName:"ul"},"\u5bc6\u7801: ",(0,r.kt)("inlineCode",{parentName:"li"},"kubebb-admin"))),(0,r.kt)("blockquote",null,(0,r.kt)("p",{parentName:"blockquote"},"\u6ce8\u610f: \u7531\u4e8e\u4f7f\u7528\u4e86",(0,r.kt)("a",{parentName:"p",href:"https://nip.io/"},"nip.io"),"\u4f5c\u4e3a\u57df\u540d\u89e3\u6790\u670d\u52a1\uff0c\u56e0\u6b64\u9700\u8981\u5c06",(0,r.kt)("inlineCode",{parentName:"p"},"HOSTS"),"\u4e2d\u7684\u57df\u540d\u89e3\u6790\u5230",(0,r.kt)("inlineCode",{parentName:"p"},"ADDRESS"),"\u5bf9\u5e94\u7684IP\u5730\u5740\u4e0a\u3002")),(0,r.kt)("h2",{id:"\u5378\u8f7d"},"\u5378\u8f7d"),(0,r.kt)("h3",{id:"1-\u5378\u8f7du4a-component"},"1. \u5378\u8f7dU4A Component"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"}," kubectl delete componentplan -nu4a-system u4a-component\n")),(0,r.kt)("h3",{id:"2-\u5378\u8f7dcluster-component"},"2. \u5378\u8f7dCluster Component"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-shell"}," kubectl delete componentplan -nu4a-system cluster-component\n")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e83fc973.a5d42404.js b/assets/js/e83fc973.a5d42404.js deleted file mode 100644 index cf9cc6869..000000000 --- a/assets/js/e83fc973.a5d42404.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3998],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>c});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var m=a.createContext({}),o=function(e){var t=a.useContext(m),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},d=function(e){var t=o(e.components);return a.createElement(m.Provider,{value:t},e.children)},k="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},g=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,m=e.parentName,d=p(e,["components","mdxType","originalType","parentName"]),k=o(n),g=r,c=k["".concat(m,".").concat(g)]||k[g]||u[g]||i;return n?a.createElement(c,l(l({ref:t},d),{},{components:n})):a.createElement(c,l({ref:t},d))}));function c(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,l=new Array(i);l[0]=g;var p={};for(var m in t)hasOwnProperty.call(t,m)&&(p[m]=t[m]);p.originalType=e,p[k]="string"==typeof e?e:r,l[1]=p;for(var o=2;o{n.r(t),n.d(t,{assets:()=>m,contentTitle:()=>l,default:()=>u,frontMatter:()=>i,metadata:()=>p,toc:()=>o});var a=n(7462),r=(n(7294),n(3905));const i={sidebar_position:3},l="\u201c\u955c\u50cf\u66ff\u6362\u201d\u529f\u80fd\u7684\u5b8c\u6574\u8bf4\u660e",p={unversionedId:"core/userguide/imageoverride",id:"core/userguide/imageoverride",title:"\u201c\u955c\u50cf\u66ff\u6362\u201d\u529f\u80fd\u7684\u5b8c\u6574\u8bf4\u660e",description:"\u4ecb\u7ecd",source:"@site/docs/core/userguide/imageoverride.md",sourceDirName:"core/userguide",slug:"/core/userguide/imageoverride",permalink:"/website/docs/core/userguide/imageoverride",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"\u79c1\u6709\u96c6\u7fa4\u90e8\u7f72\u65b9\u6848",permalink:"/website/docs/core/userguide/privatecluster"},next:{title:"\u4ece Helm \u547d\u4ee4\u8fc1\u79fb",permalink:"/website/docs/core/userguide/helmtofuture"}},m={},o=[{value:"\u4ecb\u7ecd",id:"\u4ecb\u7ecd",level:2},{value:"\u53c2\u6570\u8bf4\u660e",id:"\u53c2\u6570\u8bf4\u660e",level:2},{value:"Docker \u955c\u50cf\u683c\u5f0f\u8bf4\u660e",id:"docker-\u955c\u50cf\u683c\u5f0f\u8bf4\u660e",level:3},{value:"\u955c\u50cf\u66ff\u6362 \u914d\u7f6e\u8bf4\u660e",id:"\u955c\u50cf\u66ff\u6362-\u914d\u7f6e\u8bf4\u660e",level:3},{value:"\u4ed3\u5e93\u90e8\u5206",id:"\u4ed3\u5e93\u90e8\u5206",level:4},{value:"\u7ec4\u4ef6\u5b89\u88c5\u90e8\u5206",id:"\u7ec4\u4ef6\u5b89\u88c5\u90e8\u5206",level:4},{value:"\u5177\u4f53\u6848\u4f8b",id:"\u5177\u4f53\u6848\u4f8b",level:2},{value:"\u6279\u91cf\u590d\u5236\u4ed3\u5e93",id:"\u6279\u91cf\u590d\u5236\u4ed3\u5e93",level:3},{value:"\u4f7f\u7528\u81ea\u5b9a\u4e49\u955c\u50cf",id:"\u4f7f\u7528\u81ea\u5b9a\u4e49\u955c\u50cf",level:3},{value:"\u6279\u91cf\u590d\u5236\u4ed3\u5e93\uff0c\u4e14\u4f7f\u7528\u81ea\u5b9a\u4e49\u955c\u50cf",id:"\u6279\u91cf\u590d\u5236\u4ed3\u5e93\u4e14\u4f7f\u7528\u81ea\u5b9a\u4e49\u955c\u50cf",level:3},{value:"\u5bf9\u6bd4",id:"\u5bf9\u6bd4",level:2},{value:"\u548c helm \u5b89\u88c5\u547d\u4ee4\u4e2d\u7684 --set image=xxx \u5bf9\u6bd4",id:"\u548c-helm-\u5b89\u88c5\u547d\u4ee4\u4e2d\u7684---set-imagexxx-\u5bf9\u6bd4",level:3}],d={toc:o},k="wrapper";function u(e){let{components:t,...i}=e;return(0,r.kt)(k,(0,a.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u955c\u50cf\u66ff\u6362\u529f\u80fd\u7684\u5b8c\u6574\u8bf4\u660e"},"\u201c\u955c\u50cf\u66ff\u6362\u201d\u529f\u80fd\u7684\u5b8c\u6574\u8bf4\u660e"),(0,r.kt)("h2",{id:"\u4ecb\u7ecd"},"\u4ecb\u7ecd"),(0,r.kt)("p",null,"\u955c\u50cf\u66ff\u6362\u6307\u7684\u662f\u4f7f\u7528\u6307\u5b9a\u7684\u955c\u50cf\u540d\u79f0\u66ff\u6362 helm chart \u5305\u4e2d\u7684\u955c\u50cf\u4ece\u800c\u6b63\u5e38\u5b89\u88c5\u7684\u529f\u80fd\u3002\u5e38\u7528\u4e8e kubernetes \u79bb\u7ebf\u73af\u5883\uff0c\u65e0\u6cd5\u8bbf\u95ee\u539f\u59cb\u955c\u50cf\u4ed3\u5e93\u65f6\u4f7f\u7528\u3002"),(0,r.kt)("p",null,"\u8fd9\u65f6\u6211\u4eec\u901a\u5e38\u4f1a\u505a 2 \u4ef6\u4e8b\uff1a\u9996\u5148\u627e\u4e00\u4e2a\u53ef\u4ee5\u8bbf\u95ee\u539f\u59cb\u955c\u50cf\u4ed3\u5e93\u7684\u73af\u5883\u4e0b\u8f7d\u955c\u50cf\uff0c\u5e76\u5c06\u955c\u50cf\u6309\u4e00\u5b9a\u7684\u89c4\u5219\u4e0a\u4f20\u5230\u81ea\u5df1\u7684\u955c\u50cf\u4ed3\u5e93\u4e2d\uff0c\u7136\u540e\u5728\u5b89\u88c5\u65f6\u4fee\u6539\u955c\u50cf\u5730\u5740\u3002\u672c\u529f\u80fd\u5c31\u662f\u4e3a\u4e86\u65b9\u4fbf\u7684\u5b8c\u6210\u7b2c 2 \u6b65\u800c\u8bbe\u8ba1\u7684\u3002"),(0,r.kt)("p",null,"\u6709\u5982\u4e0b\u4f18\u52bf\uff1a"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"\u65e0\u9700\u66f4\u6539 helm chart \u5305\u3002"),(0,r.kt)("li",{parentName:"ol"},"\u6309\u9700\u66f4\u6539\uff0c\u9897\u7c92\u5ea6\u5c0f\u3002"),(0,r.kt)("li",{parentName:"ol"},"\u5206\u4e3a\u4ed3\u5e93\u7ec4\u4ef6\u66ff\u6362\u548c\u7ec4\u4ef6\u66ff\u6362\uff0c\u53ef\u5206\u522b\u914d\u7f6e\uff0c\u4e92\u76f8\u89e3\u8026\uff0c\u4e92\u4e0d\u5f71\u54cd\u3002")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"image-changed",src:n(2250).Z,width:"1180",height:"834"})),(0,r.kt)("p",null,"\u4ee5\u4e0a\u56fe\u4e3a\u4f8b\uff0chelm chart \u5305\u4e2d\u7684\u955c\u50cf\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"docker.com/library/nginx:1.25.1"),"\uff0c\u6211\u4eec\u5b9e\u9645\u5b89\u88c5 helm chart \u5305\u65f6\uff0c\u9700\u8981\u7684\u955c\u50cf\u5730\u5740\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"192.168.1.1/system-container/nginx:latest"),"\uff0c\u955c\u50cf\u66ff\u6362\u529f\u80fd\u786e\u4fdd\u4e86\u6211\u4eec\u5b89\u88c5\u65f6\u4f7f\u7528\u540e\u4e00\u4e2a\u5730\u5740\u8fdb\u884c\u5b89\u88c5\u3002"),(0,r.kt)("p",null,"\u955c\u50cf\u66ff\u6362\u529f\u80fd\u5b9e\u9645\u662f\u901a\u8fc7 ",(0,r.kt)("a",{parentName:"p",href:"https://helm.sh/docs/topics/advanced/#post-rendering"},"Helm:post-rendering")," \u6280\u672f\u5b9e\u73b0\u7684\u3002"),(0,r.kt)("h2",{id:"\u53c2\u6570\u8bf4\u660e"},"\u53c2\u6570\u8bf4\u660e"),(0,r.kt)("h3",{id:"docker-\u955c\u50cf\u683c\u5f0f\u8bf4\u660e"},"Docker \u955c\u50cf\u683c\u5f0f\u8bf4\u660e"),(0,r.kt)("p",null,"\u6211\u4eec\u4ecd\u7136\u4ee5 ",(0,r.kt)("inlineCode",{parentName:"p"},"docker.com/library/nginx:1.25.1")," \u4e3a\u4f8b\u6765\u8bf4\u660e\uff1a"),(0,r.kt)("p",null,"\u6839\u636e ",(0,r.kt)("a",{parentName:"p",href:"https://docs.docker.com/engine/reference/commandline/tag/#description"},"docker \u5b98\u65b9\u6587\u6863"),"\u57fa\u672c\u683c\u5f0f\u4e3a\uff1a",(0,r.kt)("inlineCode",{parentName:"p"},"[HOST[:PORT_NUMBER]/]PATH:TAG"),"\uff0c\u5176\u4e2d\uff1a"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"HOST: \u53ef\u9009\uff0c\u4e3b\u673a\u540d\u6307\u5b9a\u6620\u50cf\u6240\u5728\u7684\u4f4d\u7f6e\u3002\u4e3b\u673a\u540d\u5fc5\u987b\u7b26\u5408\u6807\u51c6 DNS \u89c4\u5219\uff0c\u4f46\u4e0d\u5f97\u5305\u542b\u4e0b\u5212\u7ebf\u3002\u5982\u679c\u672a\u6307\u5b9a\u4e3b\u673a\u540d\uff0c\u5219 Docker \u9ed8\u8ba4\u4f7f\u7528\u4f4d\u4e8e ",(0,r.kt)("inlineCode",{parentName:"li"},"registry-1.docker.io")," \u7684\u516c\u5171\u955c\u50cf\u4ed3\u5e93\u3002"),(0,r.kt)("li",{parentName:"ul"},"PORT_NUMBER: \u5982\u679c\u5b58\u5728\u4e3b\u673a\u540d\uff0c\u5219\u53ef\u4ee5\u9009\u62e9\u5728\u5176\u540e\u9762\u8ddf\u968f\u683c\u5f0f\u4e3a ",(0,r.kt)("inlineCode",{parentName:"li"},":8080")," \u7684\u955c\u50cf\u4ed3\u5e93\u7aef\u53e3\u53f7\u3002"),(0,r.kt)("li",{parentName:"ul"},"PATH: \u8def\u5f84\u7531\u659c\u6760\u5206\u9694\u7684\u90e8\u5206\u7ec4\u6210\u3002\u6bcf\u4e2a\u90e8\u5206\u53ef\u4ee5\u5305\u542b\u5c0f\u5199\u5b57\u6bcd\u3001\u6570\u5b57\u548c\u5206\u9694\u7b26\u3002\u5206\u9694\u7b26\u5b9a\u4e49\u4e3a\u4e00\u4e2a\u53e5\u70b9\u3001\u4e00\u4e2a\u6216\u4e24\u4e2a\u4e0b\u5212\u7ebf\u3001\u6216\u8005\u4e00\u4e2a\u6216\u591a\u4e2a\u8fde\u5b57\u7b26\u3002\u90e8\u5206\u4e0d\u80fd\u4ee5\u5206\u9694\u7b26\u5f00\u59cb\u6216\u7ed3\u675f\u3002\u867d\u7136 ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/opencontainers/distribution-spec"},"OCI \u89c4\u8303"),"\u652f\u6301\u4e24\u4e2a\u4ee5\u4e0a\u659c\u6760\u5206\u9694\u7684\u90e8\u5206\uff0c\u4f46\u5927\u591a\u6570\u955c\u50cf\u4ed3\u5e93\u4ec5\u652f\u6301\u4e24\u4e2a\u659c\u6760\u5206\u9694\u7684\u90e8\u5206\u3002\u5bf9\u4e8e Docker \u7684\u516c\u5171\u955c\u50cf\u4ed3\u5e93\uff0c\u8def\u5f84\u683c\u5f0f\u5982\u4e0b\uff1a",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"[NAMESPACE/]REPOSITORY"),": \u7b2c\u4e00\u4e2a\u53ef\u9009\u90e8\u5206\u901a\u5e38\u662f\u7528\u6237\u6216\u7ec4\u7ec7\u7684\u547d\u540d\u7a7a\u95f4\u3002\u7b2c\u4e8c\u4e2a\u5f3a\u5236\u90e8\u5206\u662f\u5b58\u50a8\u5e93\u540d\u79f0\u3002\u5f53\u547d\u540d\u7a7a\u95f4\u4e0d\u5b58\u5728\u65f6\uff0cDocker \u4f7f\u7528 ",(0,r.kt)("inlineCode",{parentName:"li"},"library")," \u4f5c\u4e3a\u9ed8\u8ba4\u547d\u540d\u7a7a\u95f4\u3002"))),(0,r.kt)("li",{parentName:"ul"},"\u5728\u955c\u50cf\u540d\u79f0\u4e4b\u540e\uff0c\u53ef\u9009\u7684 ",(0,r.kt)("inlineCode",{parentName:"li"},"TAG")," \u662f\u4e00\u4e2a\u81ea\u5b9a\u4e49\u7684\u3001\u4eba\u7c7b\u53ef\u8bfb\u7684\u6e05\u5355\u6807\u8bc6\u7b26\uff0c\u901a\u5e38\u662f\u955c\u50cf\u7684\u7279\u5b9a\u7248\u672c\u6216\u53d8\u4f53\u3002\u8be5\u6807\u7b7e\u5fc5\u987b\u662f\u6709\u6548\u7684 ASCII\uff0c\u5e76\u4e14\u53ef\u4ee5\u5305\u542b\u5c0f\u5199\u548c\u5927\u5199\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u4e0b\u5212\u7ebf\u3001\u53e5\u70b9\u548c\u8fde\u5b57\u7b26\u3002\u5b83\u4e0d\u80fd\u4ee5\u53e5\u70b9\u6216\u8fde\u5b57\u7b26\u5f00\u5934\uff0c\u4e14\u4e0d\u5f97\u8d85\u8fc7 128 \u4e2a\u5b57\u7b26\u3002\u5982\u679c\u672a\u6307\u5b9a\u6807\u8bb0\uff0c\u5219 Docker \u547d\u4ee4\u9ed8\u8ba4\u4f7f\u7528 ",(0,r.kt)("inlineCode",{parentName:"li"},"latest"),"\u3002")),(0,r.kt)("h3",{id:"\u955c\u50cf\u66ff\u6362-\u914d\u7f6e\u8bf4\u660e"},"\u955c\u50cf\u66ff\u6362 \u914d\u7f6e\u8bf4\u660e"),(0,r.kt)("h4",{id:"\u4ed3\u5e93\u90e8\u5206"},"\u4ed3\u5e93\u90e8\u5206"),(0,r.kt)("p",null,"\u4e00\u4e2a\u4ed3\u5e93\u7684\u4f8b\u5b50\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: Repository\nmetadata:\n name: repository-bitnami-special-version\n namespace: kubebb-system\nspec:\n # \u7701\u7565\u5176\u4ed6\u90e8\u5206\n imageOverride:\n - registry: docker.io\n newRegistry: 192.168.1.1\n pathOverride:\n path: library\n newPath: system-container\n")),(0,r.kt)("p",null,"\u6bcf\u9879\u53c2\u6570\u7684\u5177\u4f53\u8bf4\u660e\uff1a"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"spec.imageOverride")," \u975e\u5fc5\u9700\uff0c\u8be5\u5b57\u6bb5\u662f\u6570\u7ec4\uff0c\u5b9a\u4e49\u4e86\u4e00\u7cfb\u5217\u4ed3\u5e93\u7ea7\u522b\u7684\u955c\u50cf\u8986\u76d6\u7b56\u7565\u3002"),(0,r.kt)("p",null,"\u6bcf\u4e00\u9879\u5185\u5bb9\u5305\u62ec\uff1a"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"spec.imageOverride[].registry")," \u8be5\u955c\u50cf\u4ed3\u5e93\u57df\u540d\u5730\u5740\uff0c\u53ef\u4ee5\u5305\u542b\u7aef\u53e3\uff0c\u4f8b\u5982\uff1a",(0,r.kt)("inlineCode",{parentName:"li"},"docker.io"),"\uff0c",(0,r.kt)("inlineCode",{parentName:"li"},"192.168.1.1:5000")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"spec.imageOverride[].newRegistry")," \u8981\u5c06 ",(0,r.kt)("inlineCode",{parentName:"li"},"registry")," \u66ff\u6362\u540e\u7684\u955c\u50cf\u4ed3\u5e93\u57df\u540d\u5730\u5740\uff0c\u53ef\u4ee5\u5305\u542b\u7aef\u53e3\u3002"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"spec.imageOverride[].pathOverride")," \u975e\u5fc5\u9700\uff0c\u6570\u7ec4\u3002",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"spec.imageOverride[].pathOverride.path")," \u65e7\u7684\u955c\u50cf\u4ed3\u5e93\u8def\u5f84\uff0c\u6bd4\u5982\u955c\u50cf\u5730\u5740 ",(0,r.kt)("inlineCode",{parentName:"li"},"docker.io/library/nginx:latest")," \u4e2d\u7684 path \u4e3a ",(0,r.kt)("inlineCode",{parentName:"li"},"library")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"spec.imageOverride[].pathOverride.newPath")," \u8981\u5c06 ",(0,r.kt)("inlineCode",{parentName:"li"},"path")," \u66ff\u6362\u540e\u7684\u955c\u50cf\u4ed3\u5e93\u65b0\u8def\u5f84\uff0c\u53ef\u4ee5\u4e3a\u7a7a\u3002")))),(0,r.kt)("h4",{id:"\u7ec4\u4ef6\u5b89\u88c5\u90e8\u5206"},"\u7ec4\u4ef6\u5b89\u88c5\u90e8\u5206"),(0,r.kt)("p",null,"\u4e0b\u9762\u662f\u4e00\u4e2a ComponentPlan \u793a\u4f8b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: ComponentPlan\nmetadata:\n name: nginx-15.0.2\n namespace: kubebb-system\nspec:\n # \u7701\u7565\u5176\u4ed6\u90e8\u5206\n override:\n images:\n - name: docker.io/bitnami/nginx\n newTag: latest\n")),(0,r.kt)("p",null,"\u6bcf\u9879\u53c2\u6570\u7684\u5177\u4f53\u8bf4\u660e\uff1a"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"spec.override.images")," \u6570\u7ec4\u3002\u7c7b\u4f3c ",(0,r.kt)("a",{parentName:"p",href:"https://kubectl.docs.kubernetes.io/references/kustomize/builtins/#_imagetagtransformer_"},(0,r.kt)("inlineCode",{parentName:"a"},"kustomize")," \u7684\u955c\u50cf\u81ea\u5b9a\u4e49\u53c2\u6570")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"spec.override.images[].name")),(0,r.kt)("p",{parentName:"li"},"\u539f\u59cb\u955c\u50cf\u540d\u79f0\uff0c",(0,r.kt)("inlineCode",{parentName:"p"},"tag")," \u53ef\u9009\uff0c\u5982\u679c\u5305\u542b ",(0,r.kt)("inlineCode",{parentName:"p"},"tag"),"\uff0c\u5219\u5339\u914d\u7cbe\u786e\u5230 ",(0,r.kt)("inlineCode",{parentName:"p"},"tag")," \u4e00\u81f4\u624d\u66ff\u6362\uff0c\u6bd4\u5982\uff0c\u5982\u679c\u8be5\u9879\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"docker.io/bitnami/nginx:v1"),"\uff0c\u90a3\u4e48\u53ea\u5339\u914d tag \u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"v1")," \u7684 nginx \u955c\u50cf\uff0c\u5982\u679c\u6709 ",(0,r.kt)("inlineCode",{parentName:"p"},"docker.io/bitnami/nginx:v2")," \u4e0d\u4f1a\u88ab\u66ff\u6362\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"spec.override.images[].newName")),(0,r.kt)("p",{parentName:"li"},"\u66ff\u4ee3\u539f\u59cb\u955c\u50cf\u540d\u79f0\u7684\u540d\u79f0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"spec.override.images[].newTag")),(0,r.kt)("p",{parentName:"li"},"\u66ff\u4ee3\u539f\u59cb ",(0,r.kt)("inlineCode",{parentName:"p"},"tag")," \u7684\u65b0 ",(0,r.kt)("inlineCode",{parentName:"p"},"tag")," \u540d\u79f0")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"spec.override.images[].digest")),(0,r.kt)("p",{parentName:"li"},"\u66ff\u4ee3\u539f\u59cb ",(0,r.kt)("inlineCode",{parentName:"p"},"tag")," \u7684\u65b0 ",(0,r.kt)("inlineCode",{parentName:"p"},"digest"),"\uff0c\u5982\u679c ",(0,r.kt)("inlineCode",{parentName:"p"},"digest")," \u6709\u503c\uff0c\u4f1a\u5ffd\u7565 ",(0,r.kt)("inlineCode",{parentName:"p"},"newTag")," \u7684\u503c\u3002"))),(0,r.kt)("h2",{id:"\u5177\u4f53\u6848\u4f8b"},"\u5177\u4f53\u6848\u4f8b"),(0,r.kt)("h3",{id:"\u6279\u91cf\u590d\u5236\u4ed3\u5e93"},"\u6279\u91cf\u590d\u5236\u4ed3\u5e93"),(0,r.kt)("p",null,"\u5047\u8bbe\u6211\u4eec\u5e0c\u671b\u5c06 helm chart \u5305 ",(0,r.kt)("a",{parentName:"p",href:"https://artifacthub.io/packages/helm/bitnami/nginx/15.0.2"},"bitnami nginx chart version:15.0.2")," \u90e8\u7f72\u5230\u79bb\u7ebf kubernetes \u73af\u5883\uff0c\u8fd9\u91cc\u6d89\u53ca\u5230\u7684\u955c\u50cf\u4e3a\uff1a"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u539f\u59cb\u955c\u50cf"),(0,r.kt)("th",{parentName:"tr",align:null},"\u7528\u9014"),(0,r.kt)("th",{parentName:"tr",align:null},"\u5fc5\u9009"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx:1.25.1-debian-11-r0"),(0,r.kt)("td",{parentName:"tr",align:null},"nginx deployment \u4f7f\u7528"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5fc5\u9009")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/git:2.41.0-debian-11-r4"),(0,r.kt)("td",{parentName:"tr",align:null},"nginx deployment \u5bfc\u5165\u914d\u7f6e\u4f7f\u7528"),(0,r.kt)("td",{parentName:"tr",align:null},"\u53ef\u9009")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx-exporter\uff1a0.11.0-debian-11-r91"),(0,r.kt)("td",{parentName:"tr",align:null},"nginx deployment \u66b4\u9732 metric \u4f7f\u7528"),(0,r.kt)("td",{parentName:"tr",align:null},"\u53ef\u9009")))),(0,r.kt)("p",null,"\u5047\u8bbe\u6211\u4eec\u5c06 ",(0,r.kt)("inlineCode",{parentName:"p"},"docker.io/bitnami/")," \u955c\u50cf\u4ed3\u5e93\u6279\u91cf\u590d\u5236\u5230\u4e86\u6211\u4eec\u81ea\u5df1\u7684\u955c\u50cf\u4ed3\u5e93 ",(0,r.kt)("inlineCode",{parentName:"p"},"192.168.1.1:5000")," \u4e2d\uff0c\u90a3\u4e48\u4e0a\u9762\u955c\u50cf\u7684\u5730\u5740\u5c06\u53d8\u66f4\u5982\u4e0b\uff1a"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u539f\u59cb\u955c\u50cf"),(0,r.kt)("th",{parentName:"tr",align:null},"\u672c\u5730\u955c\u50cf"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx:1.25.1-debian-11-r0"),(0,r.kt)("td",{parentName:"tr",align:null},"192.168.1.1:5000/nginx:1.25.1-debian-11-r0")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/git:2.41.0-debian-11-r4"),(0,r.kt)("td",{parentName:"tr",align:null},"192.168.1.1:5000/git:2.41.0-debian-11-r4")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx-exporter:0.11.0-debian-11-r91"),(0,r.kt)("td",{parentName:"tr",align:null},"192.168.1.1:5000/nginx-exporter:0.11.0-debian-11-r91")))),(0,r.kt)("p",null,"\u90a3\u4e48\uff0c\u6211\u4eec\u53ea\u9700\u8981\u5728\u4ed3\u5e93\u4e2d\u4fee\u6539\u914d\u7f6e\u5982\u4e0b\u5373\u53ef"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: Repository\nmetadata:\n name: repository-bitnami-special-version\n namespace: kubebb-system\nspec:\n # \u7701\u7565\u5176\u4ed6\u90e8\u5206\n imageOverride:\n - registry: docker.io\n newRegistry: 192.168.1.1:5000\n pathOverride:\n path: bitnami\n newPath: ""\n')),(0,r.kt)("h3",{id:"\u4f7f\u7528\u81ea\u5b9a\u4e49\u955c\u50cf"},"\u4f7f\u7528\u81ea\u5b9a\u4e49\u955c\u50cf"),(0,r.kt)("p",null,"\u5047\u8bbe\u6211\u4eec\u5e0c\u671b\u5c06 helm chart \u5305 ",(0,r.kt)("a",{parentName:"p",href:"https://artifacthub.io/packages/helm/bitnami/nginx/15.0.2"},"bitnami nginx chart version:15.0.2")," \u90e8\u7f72\u5230\u53ef\u8bbf\u95ee docker.io \u7684 kubernetes \u73af\u5883\u4e2d\uff0c\u8fd9\u91cc\u6d89\u53ca\u5230\u7684\u955c\u50cf\u4e3a\uff1a"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u539f\u59cb\u955c\u50cf"),(0,r.kt)("th",{parentName:"tr",align:null},"\u7528\u9014"),(0,r.kt)("th",{parentName:"tr",align:null},"\u5fc5\u9009"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx:1.25.1-debian-11-r0"),(0,r.kt)("td",{parentName:"tr",align:null},"nginx deployment \u4f7f\u7528"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5fc5\u9009")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/git:2.41.0-debian-11-r4"),(0,r.kt)("td",{parentName:"tr",align:null},"nginx deployment \u5bfc\u5165\u914d\u7f6e\u4f7f\u7528"),(0,r.kt)("td",{parentName:"tr",align:null},"\u53ef\u9009")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx-exporter\uff1a0.11.0-debian-11-r91"),(0,r.kt)("td",{parentName:"tr",align:null},"nginx deployment \u66b4\u9732 metric \u4f7f\u7528"),(0,r.kt)("td",{parentName:"tr",align:null},"\u53ef\u9009")))),(0,r.kt)("p",null,"\u5047\u8bbe\u6211\u4eec\u5e0c\u671b\u4f7f\u7528\u81ea\u5df1\u7f16\u8bd1\u7684 nginx \u955c\u50cf ",(0,r.kt)("inlineCode",{parentName:"p"},"192.168.1.1:5000/tmp/nginx:2023"),"\uff0c\u90a3\u4e48\u4e0a\u9762\u955c\u50cf\u7684\u5730\u5740\u53d8\u66f4\u5982\u4e0b\uff1a"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u539f\u59cb\u955c\u50cf"),(0,r.kt)("th",{parentName:"tr",align:null},"\u672c\u5730\u955c\u50cf"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx:1.25.1-debian-11-r0"),(0,r.kt)("td",{parentName:"tr",align:null},"192.168.1.1:5000/tmp/nginx:2023")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/git:2.41.0-debian-11-r4"),(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/git:2.41.0-debian-11-r4")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx-exporter:0.11.0-debian-11-r91"),(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx-exporter:0.11.0-debian-11-r91")))),(0,r.kt)("p",null,"\u90a3\u4e48\uff0c\u6211\u4eec\u53ea\u9700\u8981\u5728\u5b89\u88c5\u65f6\u7684 ComponentPlan \u4e2d\u914d\u7f6e\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: ComponentPlan\nmetadata:\n name: nginx-15.0.2\n namespace: kubebb-system\nspec:\n # \u7701\u7565\u5176\u4ed6\u90e8\u5206\n override:\n images:\n - name: docker.io/bitnami/nginx\n newName: 192.168.1.1:5000/tmp/nginx \n newTag: "2023"\n')),(0,r.kt)("h3",{id:"\u6279\u91cf\u590d\u5236\u4ed3\u5e93\u4e14\u4f7f\u7528\u81ea\u5b9a\u4e49\u955c\u50cf"},"\u6279\u91cf\u590d\u5236\u4ed3\u5e93\uff0c\u4e14\u4f7f\u7528\u81ea\u5b9a\u4e49\u955c\u50cf"),(0,r.kt)("p",null,"\u5047\u8bbe\u6211\u4eec\u5e0c\u671b\u5c06 helm chart \u5305 ",(0,r.kt)("a",{parentName:"p",href:"https://artifacthub.io/packages/helm/bitnami/nginx/15.0.2"},"bitnami nginx chart version:15.0.2")," \u90e8\u7f72\u5230\u79bb\u7ebf kubernetes \u73af\u5883\uff0c\u8fd9\u91cc\u6d89\u53ca\u5230\u7684\u955c\u50cf\u4e3a\uff1a"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u539f\u59cb\u955c\u50cf"),(0,r.kt)("th",{parentName:"tr",align:null},"\u7528\u9014"),(0,r.kt)("th",{parentName:"tr",align:null},"\u5fc5\u9009"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx:1.25.1-debian-11-r0"),(0,r.kt)("td",{parentName:"tr",align:null},"nginx deployment \u4f7f\u7528"),(0,r.kt)("td",{parentName:"tr",align:null},"\u5fc5\u9009")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/git:2.41.0-debian-11-r4"),(0,r.kt)("td",{parentName:"tr",align:null},"nginx deployment \u5bfc\u5165\u914d\u7f6e\u4f7f\u7528"),(0,r.kt)("td",{parentName:"tr",align:null},"\u53ef\u9009")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx-exporter\uff1a0.11.0-debian-11-r91"),(0,r.kt)("td",{parentName:"tr",align:null},"nginx deployment \u66b4\u9732 metric \u4f7f\u7528"),(0,r.kt)("td",{parentName:"tr",align:null},"\u53ef\u9009")))),(0,r.kt)("p",null,"\u5047\u8bbe\u6211\u4eec\u5c06 ",(0,r.kt)("inlineCode",{parentName:"p"},"docker.io/bitnami/")," \u955c\u50cf\u4ed3\u5e93\u6279\u91cf\u590d\u5236\u5230\u4e86\u6211\u4eec\u81ea\u5df1\u7684\u955c\u50cf\u4ed3\u5e93 ",(0,r.kt)("inlineCode",{parentName:"p"},"192.168.1.1:5000/bitnami-mirror/")," \u4e2d\uff0c\u5e76\u4e14\u6211\u4eec\u5e0c\u671b\u4f7f\u7528\u81ea\u5df1\u7f16\u8bd1\u7684 nginx \u955c\u50cf ",(0,r.kt)("inlineCode",{parentName:"p"},"192.168.1.1:5000/tmp/nginx:2023"),"\uff0c\u90a3\u4e48\u4e0a\u9762\u955c\u50cf\u7684\u5730\u5740\u53d8\u66f4\u5982\u4e0b\uff1a"),(0,r.kt)("table",null,(0,r.kt)("thead",{parentName:"table"},(0,r.kt)("tr",{parentName:"thead"},(0,r.kt)("th",{parentName:"tr",align:null},"\u539f\u59cb\u955c\u50cf"),(0,r.kt)("th",{parentName:"tr",align:null},"\u672c\u5730\u955c\u50cf"))),(0,r.kt)("tbody",{parentName:"table"},(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx:1.25.1-debian-11-r0"),(0,r.kt)("td",{parentName:"tr",align:null},"192.168.1.1:5000/tmp/nginx:2023")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/git:2.41.0-debian-11-r4"),(0,r.kt)("td",{parentName:"tr",align:null},"192.168.1.1:5000/bitnami-mirror/git:2.41.0-debian-11-r4")),(0,r.kt)("tr",{parentName:"tbody"},(0,r.kt)("td",{parentName:"tr",align:null},"docker.io/bitnami/nginx-exporter\uff1a0.11.0-debian-11-r91"),(0,r.kt)("td",{parentName:"tr",align:null},"192.168.1.1:5000/bitnami-mirror/nginx-exporter\uff1a0.11.0-debian-11-r91")))),(0,r.kt)("p",null,"\u90a3\u4e48\uff0c\u6211\u4eec\u9996\u5148\u9700\u8981\u5728\u4ed3\u5e93\u4e2d\u914d\u7f6e\u5982\u4e0b"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: Repository\nmetadata:\n name: repository-bitnami-special-version\n namespace: kubebb-system\nspec:\n # \u7701\u7565\u5176\u4ed6\u90e8\u5206\n imageOverride:\n - registry: docker.io\n newRegistry: 192.168.1.1:5000\n pathOverride:\n path: bitnami\n newPath: bitnami-mirror\n")),(0,r.kt)("p",null,"\u7136\u540e\u5728\u5728\u5b89\u88c5\u65f6\u7684 ComponentPlan \u4e2d\u914d\u7f6e\u5982\u4e0b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: ComponentPlan\nmetadata:\n name: nginx-15.0.2\n namespace: kubebb-system\nspec:\n # \u7701\u7565\u5176\u4ed6\u90e8\u5206\n override:\n images:\n - name: docker.io/bitnami/nginx\n newName: 192.168.1.1:5000/tmp/nginx \n newTag: "2023"\n')),(0,r.kt)("h2",{id:"\u5bf9\u6bd4"},"\u5bf9\u6bd4"),(0,r.kt)("h3",{id:"\u548c-helm-\u5b89\u88c5\u547d\u4ee4\u4e2d\u7684---set-imagexxx-\u5bf9\u6bd4"},"\u548c helm \u5b89\u88c5\u547d\u4ee4\u4e2d\u7684 ",(0,r.kt)("inlineCode",{parentName:"h3"},"--set image=xxx")," \u5bf9\u6bd4"),(0,r.kt)("p",null,"\u5f88\u591a helm chart \u5305\u5728 ",(0,r.kt)("inlineCode",{parentName:"p"},"values.yaml")," \u4e2d\u63d0\u4f9b\u4e86\u53d8\u91cf\u6765\u5b58\u50a8\u955c\u50cf\u7684\u5730\u5740\u3002"),(0,r.kt)("p",null,"\u4e00\u4e9b\u8bbe\u8ba1\u7684\u66f4\u52a0\u7cbe\u5de7\u7684 helm chart \u5305\u8fd8\u8be6\u7ec6\u7684\u533a\u5206\u4e86\u955c\u50cf\u7684 registry \uff0crepository \u548c tag\u3002\uff08\u6bd4\u5982\u4e0a\u9762\u63d0\u5230\u7684 helm chart \u5305 ",(0,r.kt)("a",{parentName:"p",href:"https://artifacthub.io/packages/helm/bitnami/nginx/15.0.2"},"bitnami nginx chart version:15.0.2")," \u63d0\u4f9b\u4e86 ",(0,r.kt)("inlineCode",{parentName:"p"},"image.registry"),"(\u9ed8\u8ba4\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"docker.io"),") ",(0,r.kt)("inlineCode",{parentName:"p"},"image.repository"),"(\u9ed8\u8ba4\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"bitnami/nginx"),") ",(0,r.kt)("inlineCode",{parentName:"p"},"image.tag"),"(\u9ed8\u8ba4\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"1.25.1-debian-11-r0"),") \u548c ",(0,r.kt)("inlineCode",{parentName:"p"},"image.digest"),"(\u9ed8\u8ba4\u4e3a\u7a7a) \u56db\u4e2a\u53d8\u91cf\uff09"),(0,r.kt)("p",null,"\u4f7f\u7528\u8fd9\u4e9b\u53d8\u91cf\u6765\u4fee\u6539\u955c\u50cf\u5730\u5740\u662f\u53ef\u884c\u7684\u3002"),(0,r.kt)("p",null,"\u4f46\u662f\u4e0d\u662f\u6240\u6709\u7684 helm chart \u5305\u90fd\u9075\u5faa\u4e86\u8fd9\u4e9b\u5b9e\u8df5\uff0c\u53e6\u4e00\u65b9\u9762\uff0chelm chart \u5305\u4f7f\u7528\u54ea\u4e2a\u53d8\u91cf\u6765\u66ff\u6362\u955c\u50cf\u5e76\u6ca1\u6709\u7edf\u4e00\u7684\u89c4\u8303\u3002"),(0,r.kt)("p",null,"\u4f7f\u7528\u955c\u50cf\u66ff\u6362\u529f\u80fd\u53ef\u4ee5\u65e0\u89c6\u4e0a\u8ff0\u95ee\u9898\uff0c\u5b9e\u73b0\u7edf\u4e00\u955c\u50cf\u66ff\u6362\u3002"),(0,r.kt)("p",null,"\u53e6\u4e00\u4e2a\u573a\u666f\u662f\uff0c\u5f53\u6211\u4eec\u590d\u5236\u955c\u50cf\u4ed3\u5e93\u65f6\uff08\u6bd4\u5982\u4fee\u6539 harbor \u7684\u5bf9\u5916\u5730\u5740\uff0c\u6216\u8005\u5c06\u955c\u50cf\u79bb\u7ebf\u5b89\u88c5\u5230\u53e6\u4e00\u4e2a\u73af\u5883\uff09\uff0c\u5982\u679c\u4f7f\u7528 helm \u7684\u5b89\u88c5\u547d\u4ee4 ",(0,r.kt)("inlineCode",{parentName:"p"},"--set image=xxx")," \u6765\u5b89\u88c5\uff0c\u6211\u4eec\u9700\u8981\u4fee\u6539\u6bcf\u4e00\u4e2a\u547d\u4ee4\u4e3a\u65b0\u7684\u4ed3\u5e93\u5730\u5740\u3002\u800c\u4f7f\u7528\u955c\u50cf\u66ff\u6362\u529f\u80fd\uff0c\u6211\u4eec\u53ea\u9700\u8981\u4fee\u6539\u4ed3\u5e93\u7684\u914d\u7f6e\uff0c\u7ec4\u4ef6\u7684\u914d\u7f6e\u65e0\u9700\u4fee\u6539\u3002"))}u.isMDXComponent=!0},2250:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/image-changed-6cc1cd7373beaa44065302ebf7479fc7.png"}}]); \ No newline at end of file diff --git a/assets/js/e90a2c2a.5bd29202.js b/assets/js/e90a2c2a.5bd29202.js deleted file mode 100644 index 44f6c2d92..000000000 --- a/assets/js/e90a2c2a.5bd29202.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6287],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>u});var a=t(7294);function p(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function l(e){for(var n=1;n=0||(p[t]=e[t]);return p}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(p[t]=e[t])}return p}var m=a.createContext({}),o=function(e){var n=a.useContext(m),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},s=function(e){var n=o(e.components);return a.createElement(m.Provider,{value:n},e.children)},k="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},N=a.forwardRef((function(e,n){var t=e.components,p=e.mdxType,i=e.originalType,m=e.parentName,s=r(e,["components","mdxType","originalType","parentName"]),k=o(t),N=p,u=k["".concat(m,".").concat(N)]||k[N]||d[N]||i;return t?a.createElement(u,l(l({ref:n},s),{},{components:t})):a.createElement(u,l({ref:n},s))}));function u(e,n){var t=arguments,p=n&&n.mdxType;if("string"==typeof e||p){var i=t.length,l=new Array(i);l[0]=N;var r={};for(var m in n)hasOwnProperty.call(n,m)&&(r[m]=n[m]);r.originalType=e,r[k]="string"==typeof e?e:p,l[1]=r;for(var o=2;o{t.r(n),t.d(n,{assets:()=>m,contentTitle:()=>l,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>o});var a=t(7462),p=(t(7294),t(3905));const i={sidebar_position:3},l="\u7ec4\u4ef6\u90e8\u7f72",r={unversionedId:"core/concepts/componentplan",id:"core/concepts/componentplan",title:"\u7ec4\u4ef6\u90e8\u7f72",description:"ComponentPlan \u4f1a\u5b89\u88c5\u4e00\u4e2a\u7ec4\u4ef6\u5230\u96c6\u7fa4\uff0c\u7c7b\u4f3c\u6267\u884c\u4e00\u6b21 helm install/upgrade \u64cd\u4f5c\uff0c\u53ea\u4e0d\u8fc7\u5c06 helm install/upgrade \u547d\u4ee4\u4e2d\u7684\u53c2\u6570\u56fa\u5316\u5230 ComponentPlan \u7684 spec",source:"@site/docs/core/concepts/componentplan.md",sourceDirName:"core/concepts",slug:"/core/concepts/componentplan",permalink:"/website/docs/core/concepts/componentplan",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6",permalink:"/website/docs/core/concepts/component"},next:{title:"\u7ec4\u4ef6\u8ba2\u9605",permalink:"/website/docs/core/concepts/subscription"}},m={},o=[{value:"\u4f7f\u7528",id:"\u4f7f\u7528",level:2},{value:"CRD \u5b9a\u4e49\u8bf4\u660e",id:"crd-\u5b9a\u4e49\u8bf4\u660e",level:2},{value:"\u914d\u7f6e\u8bf4\u660e",id:"\u914d\u7f6e\u8bf4\u660e",level:3},{value:"\u72b6\u6001\u63cf\u8ff0",id:"\u72b6\u6001\u63cf\u8ff0",level:3},{value:"\u5de5\u4f5c\u539f\u7406",id:"\u5de5\u4f5c\u539f\u7406",level:2},{value:"\u955c\u50cf\u8986\u76d6\u7b56\u7565",id:"\u955c\u50cf\u8986\u76d6\u7b56\u7565",level:3},{value:"ComponentPlan \u548c Helm release \u7684\u5173\u7cfb",id:"componentplan-\u548c-helm-release-\u7684\u5173\u7cfb",level:3}],s={toc:o},k="wrapper";function d(e){let{components:n,...i}=e;return(0,p.kt)(k,(0,a.Z)({},s,i,{components:n,mdxType:"MDXLayout"}),(0,p.kt)("h1",{id:"\u7ec4\u4ef6\u90e8\u7f72"},"\u7ec4\u4ef6\u90e8\u7f72"),(0,p.kt)("p",null,"ComponentPlan \u4f1a\u5b89\u88c5\u4e00\u4e2a\u7ec4\u4ef6\u5230\u96c6\u7fa4\uff0c\u7c7b\u4f3c\u6267\u884c\u4e00\u6b21 ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade")," \u64cd\u4f5c\uff0c\u53ea\u4e0d\u8fc7\u5c06 ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade")," \u547d\u4ee4\u4e2d\u7684\u53c2\u6570\u56fa\u5316\u5230 ComponentPlan \u7684 spec\n\u5b57\u6bb5\u4e2d\uff0c\u5c06\u6d89\u53ca\u5230\u7684 docker \u955c\u50cf\u4ee5\u53ca\u5b89\u88c5\u540e\u96c6\u7fa4\u5bf9\u8c61\u548c\u73b0\u6709\u5bf9\u8c61\u7684 diff \u663e\u793a\u5728 status \u5b57\u6bb5\u4e2d\uff0c\u5e76\u4e14\u53ef\u4ee5\u8bbe\u7f6e\u5931\u8d25\u540e\u81ea\u52a8\u91cd\u8bd5\u7684\u6b21\u6570\u3002"),(0,p.kt)("h2",{id:"\u4f7f\u7528"},"\u4f7f\u7528"),(0,p.kt)("p",null,"\u4e0b\u9762\u662f\u4e00\u4e2a ComponentPlan \u793a\u4f8b\uff1a"),(0,p.kt)("pre",null,(0,p.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: ComponentPlan\nmetadata:\n# labels:\n# core.kubebb.k8s.com.cn/componentplan-release: nginx\n name: nginx-15.0.2\n namespace: kubebb-system\nspec:\n approved: true\n component:\n name: repository-bitnami-sample.nginx\n namespace: kubebb-system\n name: my-nginx\n override:\n images:\n - name: docker.io/bitnami/nginx\n newTag: latest # the default image is docker.io/bitnami/nginx:1.25.1-debian-11-r0, will be replaced by docker.io/bitnami/nginx:latest\n version: 15.0.2\n#status:\n# conditions:\n# - lastTransitionTime: "2023-06-21T03:44:31Z"\n# reason: ""\n# status: "True"\n# type: Approved\n# - lastTransitionTime: "2023-06-21T03:44:37Z"\n# reason: ""\n# status: "True"\n# type: Installed\n# - lastTransitionTime: "2023-06-21T03:44:37Z"\n# reason: ""\n# status: "True"\n# type: Succeeded\n# images:\n# - docker.io/bitnami/nginx:latest\n# installedRevision: 3\n# latest: true\n# observedGeneration: 5\n# resources:\n# - NewCreated: true\n# apiVersion: v1\n# kind: Service\n# name: my-nginx\n# - NewCreated: true\n# apiVersion: apps/v1\n# kind: Deployment\n# name: my-nginx\n')),(0,p.kt)("p",null,"\u4e0a\u8ff0 ComponentPlan \u5b9a\u4e49\u4e86\u5b89\u88c5\u7684\u7ec4\u4ef6\u662f ",(0,p.kt)("inlineCode",{parentName:"p"},"kubebb-system")," \u547d\u540d\u7a7a\u95f4\u7684 ",(0,p.kt)("inlineCode",{parentName:"p"},"repository-bitnami-sample.nginx"),"\u3002\n\u5b89\u88c5\u540d\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"my-nginx"),"\uff0c\u5b89\u88c5\u7248\u672c\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"15.0.2"),"\u3002\n\u540c\u65f6\u5728\u5b89\u88c5\u65f6\uff0c\u5c06\u955c\u50cf ",(0,p.kt)("inlineCode",{parentName:"p"},"docker.io/bitnami/nginx")," \u7684 ",(0,p.kt)("inlineCode",{parentName:"p"},"tag")," \u66ff\u6362\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"latest"),"\u3002"),(0,p.kt)("p",null,"\u901a\u8fc7 ",(0,p.kt)("inlineCode",{parentName:"p"},"status")," \u5b57\u6bb5\u53ef\u4ee5\u770b\u5230\uff0c\u5f53\u524d\u7ec4\u4ef6\u6d89\u53ca\u7684\u955c\u50cf\u4ee5\u53ca\u8d44\u6e90\u3002\u5176\u4e2d\u8d44\u6e90\u4f1a\u6807\u660e\u662f\u65b0\u521b\u5efa\u8fd8\u662f\u66f4\u65b0\u73b0\u6709\u8d44\u6e90\uff0c\u4e00\u4e2a\u66f4\u65b0\u73b0\u6709\u8d44\u6e90\u7684\u4f8b\u5b50\u4e3a\uff1a"),(0,p.kt)("pre",null,(0,p.kt)("code",{parentName:"pre",className:"language-yaml"},"- apiVersion: v1\n kind: Service\n name: my-wordpress\n specDiffwithExist: no spec diff, but some field like resourceVersion will update\n- apiVersion: apps/v1\n kind: Deployment\n name: my-wordpress\n specDiffwithExist: |\n metadata:\n annotations: map[deployment.kubernetes.io/revision:2] -> (REMOVED)\n spec:\n replicas: 3 -> 1\n template:\n spec:\n containers:\n '[#0]':\n image: docker.io/bitnami/wordpress:6.2.2-debian-11-r9 -> docker.io/bitnami/wordpress:6.2.2-debian-11-r11\n resources:\n requests:\n cpu: 400m -> 300m\n memory: 1Gi -> 512Mi\n")),(0,p.kt)("h2",{id:"crd-\u5b9a\u4e49\u8bf4\u660e"},"CRD \u5b9a\u4e49\u8bf4\u660e"),(0,p.kt)("p",null,"CRD \u7684\u4ee3\u7801\u5b9a\u4e49\u4f4d\u4e8e ",(0,p.kt)("a",{parentName:"p",href:"https://github.com/kubebb/core/blob/main/api/v1alpha1/componentplan_types.go"},"componentplan_types.go"),"\u3002\u63a5\u4e0b\u6765\u4f1a\u8be6\u7ec6\u4ecb\u7ecd\u6bcf\u4e2a\u5b57\u6bb5\u7684\u542b\u4e49\u53ca\u5176\u4f5c\u7528\u3002"),(0,p.kt)("admonition",{type:"tip"},(0,p.kt)("p",{parentName:"admonition"},"\u8bf4\u660e\uff1a\u5bf9\u4e8e\u4e0b\u9762\u7684 yaml\uff0c\u6211\u4eec\u60f3\u8981\u8bbf\u95ee bar \u5b57\u6bb5\uff0c\u4e66\u5199\u683c\u5f0f\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"spec.foo.bar")),(0,p.kt)("pre",{parentName:"admonition"},(0,p.kt)("code",{parentName:"pre",className:"language-yaml"},"spec:\n foo:\n bar: xx\n"))),(0,p.kt)("h3",{id:"\u914d\u7f6e\u8bf4\u660e"},"\u914d\u7f6e\u8bf4\u660e"),(0,p.kt)("p",null,"ComponentPlan \u7684\u53ef\u9009\u914d\u7f6e\u5339\u914d\u4e86 helm install / upgrade / uninstall \u7684\u53ef\u9009\u53c2\u6570\uff0c\u6709\u4e00\u4e9b\u53c2\u6570 ComponentPlan \u5e76\u4e0d\u652f\u6301:"),(0,p.kt)("ol",null,(0,p.kt)("li",{parentName:"ol"},(0,p.kt)("inlineCode",{parentName:"li"},"--create-namespace")," \u53c2\u6570\u4e0d\u652f\u6301\uff0chelm release \u4f1a\u521b\u5efa\u5728 ComponentPlan \u7684\u540c\u540d namespace \u4e2d\u3002"),(0,p.kt)("li",{parentName:"ol"},(0,p.kt)("inlineCode",{parentName:"li"},"--dry-run")," \u53c2\u6570\u4e0d\u652f\u6301\uff0c\u4e0d\u9700\u8981\u6a21\u62df\uff0c\u6a21\u62df\u8fd0\u884c\u7684\u7ed3\u679c\u4f1a\u51fa\u73b0\u5728 ComponentPlan \u7684 status \u5b57\u6bb5\u4e2d\u3002"),(0,p.kt)("li",{parentName:"ol"},(0,p.kt)("inlineCode",{parentName:"li"},"--replace")," \u53c2\u6570\u4e0d\u652f\u6301\uff0chelm \u6807\u8bb0\u8be5\u53c2\u6570\u4e0d\u5e94\u8be5\u7528\u4e8e\u751f\u4ea7\u73af\u5883\u3002"),(0,p.kt)("li",{parentName:"ol"},(0,p.kt)("inlineCode",{parentName:"li"},"--render-subchart-notes")," \u53c2\u6570\u4e0d\u652f\u6301\uff0c\u6211\u4eec\u4e0d\u5c55\u793a notes \u4fe1\u606f\u3002"),(0,p.kt)("li",{parentName:"ol"},(0,p.kt)("inlineCode",{parentName:"li"},"--devel")," \u53c2\u6570\u4e0d\u652f\u6301\uff0c\u5982\u679c\u9700\u8981\u4f7f\u7528 ",(0,p.kt)("inlineCode",{parentName:"li"},"devel")," \u7248\u672c\uff0c",(0,p.kt)("inlineCode",{parentName:"li"},"spec.version")," \u5b57\u6bb5\u6307\u5b9a ",(0,p.kt)("inlineCode",{parentName:"li"},">0.0.0-0")," \u5373\u53ef\u3002"),(0,p.kt)("li",{parentName:"ol"},(0,p.kt)("inlineCode",{parentName:"li"},"--nameTemplate")," \u548c ",(0,p.kt)("inlineCode",{parentName:"li"},"--generateName")," \u53c2\u6570\u4e0d\u652f\u6301\uff0c\u56e0\u4e3a\u8fd9\u4e24\u4e2a\u5b57\u6bb5\u5728\u591a\u6b21\u8fd0\u884c\u8fc7\u7a0b\u4e2d\u53ef\u80fd\u4f1a\u751f\u6210\u4e0d\u786e\u5b9a\u7684\u7ed3\u679c\uff0c\u6211\u4eec\u4f7f\u7528 ",(0,p.kt)("inlineCode",{parentName:"li"},"spec.name")," \u6765\u751f\u6210\u56fa\u5b9a\u7684\u540d\u79f0\u3002"),(0,p.kt)("li",{parentName:"ol"},(0,p.kt)("inlineCode",{parentName:"li"},"--reset-values")," \u548c ",(0,p.kt)("inlineCode",{parentName:"li"},"--reuse-values")," \u53c2\u6570\u4e0d\u652f\u6301\uff0c\u6211\u4eec\u4f7f\u7528 ",(0,p.kt)("inlineCode",{parentName:"li"},"spec.override.values")," \u548c ",(0,p.kt)("inlineCode",{parentName:"li"},"spec.override.valuesFrom")," \u6765\u91cd\u5199\u914d\u7f6e\u3002"),(0,p.kt)("li",{parentName:"ol"},"\u5176\u4ed6\u8ba4\u8bc1\u53c2\u6570\u6bd4\u5982 ",(0,p.kt)("inlineCode",{parentName:"li"},"--username"),"\uff0c\u9700\u8981\u5728 Repository \u4e2d\u6307\u5b9a\u3002")),(0,p.kt)("p",null,"\u5176\u4ed6\u914d\u7f6e\u4e3a\uff1a"),(0,p.kt)("ul",null,(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.componet")),(0,p.kt)("p",{parentName:"li"},"\u8be5\u5b57\u6bb5\u7528\u6765\u6307\u660e\u8981\u76d1\u63a7\u7684\u7ec4\u4ef6\u5b9e\u4f8b\uff0c\u4e00\u822c\u4f7f\u7528 ",(0,p.kt)("inlineCode",{parentName:"p"},"namespace")," \u548c ",(0,p.kt)("inlineCode",{parentName:"p"},"name")," \u6765\u552f\u4e00\u786e\u5b9a")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.version")),(0,p.kt)("p",{parentName:"li"},"\u9700\u8981\u5b89\u88c5\u7684\u7ec4\u4ef6\u7248\u672c\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.approved")),(0,p.kt)("p",{parentName:"li"},"\u662f\u5426\u540c\u610f\u5b89\u88c5\u3002",(0,p.kt)("inlineCode",{parentName:"p"},"bool")," \u7c7b\u578b\uff0c",(0,p.kt)("inlineCode",{parentName:"p"},"true")," \u6216 ",(0,p.kt)("inlineCode",{parentName:"p"},"false"),"\uff0c\u5f53\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"true")," \u65f6\uff0c\u81ea\u52a8\u89e6\u53d1\u5b89\u88c5\u6d41\u7a0b\u3002\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false")," \u65f6\uff0c\u53ea\u4f1a\u89e3\u6790\u8fd9\u4e2a\u7ec4\u4ef6\u7684 ",(0,p.kt)("inlineCode",{parentName:"p"},"manifest"),"\uff0c\u5e76\u586b\u5145 ",(0,p.kt)("inlineCode",{parentName:"p"},"status")," \u5b57\u6bb5\uff0c\u65b9\u4fbf\u7528\u6237\u5224\u65ad\u8fd9\u6b21\u5b89\u88c5\u4f1a\u5bf9\u96c6\u7fa4\u4e2d\u73b0\u6709\u8d44\u6e90\u5e26\u6765\u7684\u5f71\u54cd\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.name")),(0,p.kt)("p",{parentName:"li"},"\u7ec4\u4ef6\u5b89\u88c5\u5230\u96c6\u7fa4\u4e2d\u7684\u540d\u79f0\u3002\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm release")," \u7684\u540d\u79f0")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.force")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u66f4\u65b0\u65f6\u901a\u8fc7\u66ff\u6362\u7b56\u7565\u5f3a\u5236\u66f4\u65b0\u8d44\u6e90, \u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm upgrade --force")," \u53c2\u6570\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.timeoutSeconds")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u6574\u6570\u503c\uff0c\u521b\u5efa/\u66f4\u65b0/\u5220\u9664\u65f6\u7684\u8d85\u65f6\u65f6\u95f4\uff0c\u5355\u4f4d\u4e3a\u79d2\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"300"),"\uff0c\u5373 5 \u5206\u949f\u3002\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade --timeout")," \u53c2\u6570")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.wait")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u5982\u679c\u8bbe\u7f6e\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"true"),"\uff0c\u5c06\u7b49\u5f85\u6240\u6709\u7684 Pod\u3001PVC\u3001Service \u548c Deployment\u3001StatefulSet \u6216 ReplicaSet \u7684\u6700\u5c0f\u6570\u91cf\u7684 Pod \u5904\u4e8e\u5c31\u7eea\u72b6\u6001\u624d\u8ba4\u4e3a\u5b89\u88c5/\u66f4\u65b0\u6210\u529f\u3002\u7b49\u5f85\u7684\u65f6\u95f4\u5373\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"spec.timeoutSeconds")," \u7684\u503c\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"),"\uff0c\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade --wait")," \u53c2\u6570\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.waitForJobs")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u5982\u679c\u8bbe\u7f6e\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"true"),"\uff0c\u5c06\u7b49\u5f85\u6240\u6709\u7684 Job \u5b8c\u6210\u624d\u8ba4\u4e3a\u5b89\u88c5/\u66f4\u65b0\u6210\u529f\u3002\u7b49\u5f85\u7684\u65f6\u95f4\u5373\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"spec.timeoutSeconds")," \u7684\u503c\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"),"\uff0c\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade --wait-for-jobs")," \u53c2\u6570\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.description")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u7ed9\u5b89\u88c5/\u66f4\u65b0\u6dfb\u52a0\u4e00\u4e2a\u81ea\u5b9a\u4e49\u63cf\u8ff0\u3002\u9ed8\u8ba4\u4e3a\u7a7a\uff0c\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade --description")," \u53c2\u6570\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.dependencyUpdate")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u5728\u5b89\u88c5/\u66f4\u65b0\u7ec4\u4ef6\u524d\uff0c\u662f\u5426\u66f4\u65b0\u7f3a\u5c11\u7684\u4f9d\u8d56\u9879\u3002\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade --dependency-update")," \u53c2\u6570\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.disableHooks")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u5982\u679c\u8bbe\u7f6e\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"true"),"\uff0c\u5219\u963b\u6b62 Hook \u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\u8fd0\u884c\uff0c\u5e76\u7981\u7528\u5347\u7ea7\u524d/\u540e Hook\uff0c\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade --no-hooks")," \u53c2\u6570\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.disableOpenAPIValidation")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u5982\u679c\u8bbe\u7f6e\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"true"),"\uff0c\u5b89\u88c5\u8fc7\u7a0b\u5c06\u4e0d\u4f1a\u6839\u636e Kubernetes OpenAPI Schema \u9a8c\u8bc1\u6e32\u67d3\u7684\u6a21\u677f\u3002\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade --disable-openapi-validation")," \u53c2\u6570\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.atomic")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u5982\u679c\u8bbe\u7f6e\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"true"),"\uff0c\u5b89\u88c5/\u66f4\u65b0\u8fc7\u7a0b\u4f1a\u5728\u5b89\u88c5/\u66f4\u65b0\u5931\u8d25\u65f6\u5220\u9664\u5b89\u88c5\u3002\u5982\u679c ",(0,p.kt)("inlineCode",{parentName:"p"},"spec.atomic")," \u8bbe\u7f6e\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"true"),"\uff0c\u5c06\u81ea\u52a8\u8bbe\u7f6e ",(0,p.kt)("inlineCode",{parentName:"p"},"spec.wait")," \u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"true"),"\u3002\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade --atomic")," \u53c2\u6570\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.skipCRDs")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u5982\u679c\u8bbe\u7f6e\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"true"),"\uff0c\u5219\u8df3\u8fc7 CRD \u7684\u5b89\u88c5\u3002\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u5982\u679c\u5c1a\u672a\u5b89\u88c5 CRD\uff0c\u4f1a\u81ea\u52a8\u5b89\u88c5\u3002\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade --skip-crds")," \u53c2\u6570\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.enableDNS")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u5728\u6e32\u67d3\u6a21\u677f\u65f6\u662f\u5426\u542f\u7528 DNS \u67e5\u8be2\uff0c\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install/upgrade --enable-dns")," \u53c2\u6570 \u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.historyMax")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u6574\u6570\u503c\uff0c\u9650\u5236\u6bcf\u4e2a release \u4fdd\u5b58\u7684\u6700\u5927 revisions \u6570\u76ee\u3002\u4f7f\u7528 ",(0,p.kt)("inlineCode",{parentName:"p"},"0")," \u8868\u793a\u65e0\u9650\u5236\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"10"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.maxRetry")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u6574\u6570\u503c\uff0c\u521b\u5efa/\u66f4\u65b0\u6700\u5927\u91cd\u8bd5\u6b21\u6570\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"5"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.cleanupOnFail")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u5f53\u5347\u7ea7\u5931\u8d25\u65f6\uff0c\u5141\u8bb8\u5220\u9664\u5728\u6b64\u5347\u7ea7\u4e2d\u521b\u5efa\u7684\u65b0\u8d44\u6e90\uff0c\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm upgrade --cleanup-on-fail")," \u53c2\u6570\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"),"\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.keepHistory")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u5378\u8f7d\u65f6\uff0c\u5220\u9664\u6240\u6709\u76f8\u5173\u8d44\u6e90\uff0c\u5e76\u5c06\u53d1\u5e03\u6807\u8bb0\u4e3a\u5df2\u5220\u9664\uff0c\u4f46\u4fdd\u7559\u53d1\u5e03\u5386\u53f2\u3002\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm uninstall --keep-history")," \u53c2\u6570\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"false"),"\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override")," ",(0,p.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5")),(0,p.kt)("p",{parentName:"li"},"\u7528\u4e8e\u8986\u76d6\u539f\u7ec4\u4ef6\u914d\u7f6e\u7684\u5b57\u6bb5\u3002"),(0,p.kt)("ul",{parentName:"li"},(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.values")),(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"JSON")," \u683c\u5f0f\u7684 ",(0,p.kt)("inlineCode",{parentName:"p"},"values"),"\uff0c\u7528\u4e8e\u8986\u76d6\u9ed8\u8ba4\u503c")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.valuesFrom")),(0,p.kt)("p",{parentName:"li"},"\u5b57\u6bb5\u4e3a\u6570\u7ec4\u3002\u5f53\u8981\u8bbe\u5b9a\u7684\u5b57\u6bb5\u504f\u591a\u65f6\uff0c\u6211\u4eec\u4e00\u822c\u5e0c\u671b\u628a ",(0,p.kt)("inlineCode",{parentName:"p"},"values.yaml")," \u5355\u72ec\u62ff\u51fa\u6765\uff0c\u653e\u5728 ",(0,p.kt)("inlineCode",{parentName:"p"},"ConfigMap")," \u6216\u8005 ",(0,p.kt)("inlineCode",{parentName:"p"},"Secret")," \u4e2d\uff0c\u800c\u4e14\u6211\u4eec\u53ef\u80fd\u4f1a\u6709\u5f88\u591a ",(0,p.kt)("inlineCode",{parentName:"p"},"values.yaml")," \u6587\u4ef6\u3002\u5177\u4f53\u683c\u5f0f\u4e3a\uff1a"),(0,p.kt)("ul",{parentName:"li"},(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.valuesFrom[].kind")),(0,p.kt)("p",{parentName:"li"},"\u53ef\u9009\u9879\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"Secret")," \u6216 ",(0,p.kt)("inlineCode",{parentName:"p"},"ConfigMap"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.valuesFrom[].name")),(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"Secret")," \u6216 ",(0,p.kt)("inlineCode",{parentName:"p"},"ConfigMap")," \u7684\u540d\u79f0\uff0c\u4e0d\u9700\u8981 ",(0,p.kt)("inlineCode",{parentName:"p"},"namespace")," \u5b57\u6bb5\uff0c\u56e0\u4e3a\u53ea\u4f1a\u67e5\u627e\u548c\u5f53\u524d ComponentPlan \u540c ",(0,p.kt)("inlineCode",{parentName:"p"},"namespace")," \u7684\u8d44\u6e90\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.valuesFrom[].valuesKey")),(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"Secret")," \u6216 ",(0,p.kt)("inlineCode",{parentName:"p"},"ConfigMap")," \u7684 ",(0,p.kt)("inlineCode",{parentName:"p"},"data")," \u4e2d\u7684 ",(0,p.kt)("inlineCode",{parentName:"p"},"key"),"\uff0c\u9ed8\u8ba4\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"values.yaml")," \u4f1a\u5c1d\u8bd5\u5148\u540e\u67e5\u8be2 ",(0,p.kt)("inlineCode",{parentName:"p"},"ConfigMap")," \u4e2d\u7684 ",(0,p.kt)("inlineCode",{parentName:"p"},"Data")," \u548c ",(0,p.kt)("inlineCode",{parentName:"p"},"BinaryData")," \u5b57\u6bb5\uff0c",(0,p.kt)("inlineCode",{parentName:"p"},"Secret")," \u4e2d\u7684 ",(0,p.kt)("inlineCode",{parentName:"p"},"StringData")," \u548c ",(0,p.kt)("inlineCode",{parentName:"p"},"Data")," \u5b57\u6bb5\u3002")))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.set")),(0,p.kt)("p",{parentName:"li"},"\u6570\u7ec4\uff0c\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm template --set")," \u7684\u53c2\u6570")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.set-string")),(0,p.kt)("p",{parentName:"li"},"\u6570\u7ec4\uff0c\u7c7b\u4f3c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm template --set-string")," \u7684\u53c2\u6570")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.images")),(0,p.kt)("p",{parentName:"li"},"\u6570\u7ec4\u3002\u7c7b\u4f3c ",(0,p.kt)("a",{parentName:"p",href:"https://kubectl.docs.kubernetes.io/references/kustomize/builtins/#_imagetagtransformer_"},(0,p.kt)("inlineCode",{parentName:"a"},"kustomize")," \u7684\u955c\u50cf\u81ea\u5b9a\u4e49\u53c2\u6570")),(0,p.kt)("ul",{parentName:"li"},(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.images[].name")),(0,p.kt)("p",{parentName:"li"},"\u539f\u59cb\u955c\u50cf\u540d\u79f0\uff0c",(0,p.kt)("inlineCode",{parentName:"p"},"tag")," \u53ef\u9009\uff0c\u5982\u679c\u5305\u542b ",(0,p.kt)("inlineCode",{parentName:"p"},"tag"),"\uff0c\u5219\u5339\u914d\u7cbe\u786e\u5230 ",(0,p.kt)("inlineCode",{parentName:"p"},"tag")," \u4e00\u81f4\u624d\u66ff\u6362\uff0c\u6bd4\u5982\uff0c\u5982\u679c\u8be5\u9879\u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"docker.io/bitnami/nginx:v1"),"\uff0c\u90a3\u4e48\u53ea\u5339\u914d tag \u4e3a ",(0,p.kt)("inlineCode",{parentName:"p"},"v1")," \u7684 nginx \u955c\u50cf\uff0c\u5982\u679c\u6709 ",(0,p.kt)("inlineCode",{parentName:"p"},"docker.io/bitnami/nginx:v2")," \u4e0d\u4f1a\u88ab\u66ff\u6362\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.images[].newName")),(0,p.kt)("p",{parentName:"li"},"\u66ff\u4ee3\u539f\u59cb\u955c\u50cf\u540d\u79f0\u7684\u540d\u79f0")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.images[].newTag")),(0,p.kt)("p",{parentName:"li"},"\u66ff\u4ee3\u539f\u59cb ",(0,p.kt)("inlineCode",{parentName:"p"},"tag")," \u7684\u65b0 ",(0,p.kt)("inlineCode",{parentName:"p"},"tag")," \u540d\u79f0")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"spec.override.images[].digest")),(0,p.kt)("p",{parentName:"li"},"\u66ff\u4ee3\u539f\u59cb ",(0,p.kt)("inlineCode",{parentName:"p"},"tag")," \u7684\u65b0 ",(0,p.kt)("inlineCode",{parentName:"p"},"digest"),"\uff0c\u5982\u679c ",(0,p.kt)("inlineCode",{parentName:"p"},"digest")," \u6709\u503c\uff0c\u4f1a\u5ffd\u7565 ",(0,p.kt)("inlineCode",{parentName:"p"},"newTag")," \u7684\u503c\u3002"))))))),(0,p.kt)("h3",{id:"\u72b6\u6001\u63cf\u8ff0"},"\u72b6\u6001\u63cf\u8ff0"),(0,p.kt)("p",null,"\u4e00\u4e2a\u5178\u578b\u7684 ComponentPlan \u72b6\u6001\u793a\u4f8b\u5982\u4e0b\uff1a"),(0,p.kt)("pre",null,(0,p.kt)("code",{parentName:"pre",className:"language-yaml"},'status:\n conditions:\n - lastTransitionTime: "2023-07-25T12:22:12Z"\n reason: ""\n status: "True"\n type: Approved\n - lastTransitionTime: "2023-07-25T12:25:00Z"\n message: timed out waiting for the condition\n reason: UpgradeFailed\n status: "False"\n type: Actioned\n - lastTransitionTime: "2023-07-25T12:25:00Z"\n reason: ""\n status: "False"\n type: Succeeded\n images:\n - docker.io/bitnami/nginx:xxxxx\n installedRevision: 4\n latest: true\n observedGeneration: 1\n resources:\n - NewCreated: true\n apiVersion: v1\n kind: Service\n name: my-nginx\n - NewCreated: true\n apiVersion: apps/v1\n kind: Deployment\n name: my-nginx\n')),(0,p.kt)("ul",null,(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.conditions")),(0,p.kt)("p",{parentName:"li"},"\u6570\u7ec4\uff0cComponentPlan \u7684\u72b6\u6001"),(0,p.kt)("ul",{parentName:"li"},(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.conditions[].lastTransitionTime")),(0,p.kt)("p",{parentName:"li"},"\u4e0a\u6b21\u4ece\u4e00\u79cd\u72b6\u6001\u8f6c\u6362\u5230\u53e6\u4e00\u79cd\u72b6\u6001\u65f6\u7684\u65f6\u95f4\u6233")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.conditions[].reason")),(0,p.kt)("p",{parentName:"li"},"\u673a\u5668\u53ef\u8bfb\u7684\u3001\u9a7c\u5cf0\u7f16\u7801\uff08UpperCamelCase\uff09\u7684\u6587\u5b57\uff0c\u8868\u8ff0\u4e0a\u6b21\u72b6\u51b5\u53d8\u5316\u7684\u539f\u56e0")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.conditions[].message")),(0,p.kt)("p",{parentName:"li"},"\u4eba\u7c7b\u53ef\u8bfb\u7684\u6d88\u606f\uff0c\u7ed9\u51fa\u4e0a\u6b21\u72b6\u6001\u8f6c\u6362\u7684\u8be6\u7ec6\u4fe1\u606f")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.conditions[].status")),(0,p.kt)("p",{parentName:"li"},"\u8868\u660e\u8be5\u72b6\u51b5\u662f\u5426\u9002\u7528\uff0c\u53ef\u80fd\u7684\u53d6\u503c\u6709 ",(0,p.kt)("inlineCode",{parentName:"p"},'True"'),"\u3001",(0,p.kt)("inlineCode",{parentName:"p"},"False")," \u6216 ",(0,p.kt)("inlineCode",{parentName:"p"},"Unknown"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.conditions[].type")),(0,p.kt)("p",{parentName:"li"},"\u72b6\u51b5\u7684\u540d\u79f0"),(0,p.kt)("p",{parentName:"li"},"\u53ef\u80fd\u5305\u542b\u4ee5\u4e0b\u72b6\u6001\uff1a"),(0,p.kt)("ul",{parentName:"li"},(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"Approved")),(0,p.kt)("p",{parentName:"li"},"\u7528\u6237\u5df2\u7ecf\u540c\u610f\u8be5\u7ec4\u4ef6\u5b89\u88c5\u8ba1\u5212\uff08ComponentPlan\uff09\u7684\u5b89\u88c5")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"Actioned")),(0,p.kt)("p",{parentName:"li"},"\u67d0\u4e2a\u64cd\u4f5c\u5df2\u7ecf\u5b8c\u6210")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"Succeeded")),(0,p.kt)("p",{parentName:"li"},"\u7528\u6237\u671f\u5f85\u7684\u64cd\u4f5c\u5df2\u7ecf\u5168\u90e8\u5b8c\u6210")))))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.images")),(0,p.kt)("p",{parentName:"li"},"\u8be5 ComponentPlan \u4f1a\u5f15\u5165\u7684\u955c\u50cf\u5217\u8868")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.installedRevision")),(0,p.kt)("p",{parentName:"li"},"\u8be5 ComponentPlan \u5b89\u88c5\u7684 helm release revision \u7248\u672c\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.latest")),(0,p.kt)("p",{parentName:"li"},"helm release \u7684\u6700\u65b0\u7248\u672c\u662f\u5426\u662f\u8be5 ComponentPlan \u5b89\u88c5\u7684\u3002\u652f\u6301\u591a\u4e2a ComponentPlan \u6309\u90e8\u7f72\u65f6\u95f4\u5b89\u88c5/\u5347\u7ea7\u540c\u4e00\u4e2a helm release\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.observedGeneration")),(0,p.kt)("p",{parentName:"li"},"\u7528\u4e8e\u7a0b\u5e8f\u5185\u90e8\u5904\u7406\u3002\u8868\u793a\u8be5 ComponentPlan \u57fa\u4e8e\u7684 ",(0,p.kt)("inlineCode",{parentName:"p"},".metadata.generation")," \u7684\u8fc7\u671f\u6b21\u6570\u3002 \u4f8b\u5982\uff0c\u5982\u679c ",(0,p.kt)("inlineCode",{parentName:"p"},".metadata.generation")," \u5f53\u524d\u4e3a 12\uff0c\u4f46 ",(0,p.kt)("inlineCode",{parentName:"p"},".status.observedGeneration")," \u4e3a 9\uff0c \u5219\u76f8\u5bf9\u4e8e\u5b9e\u4f8b\u7684\u5f53\u524d\u72b6\u6001\u5df2\u8fc7\u671f\u3002")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.resources")),(0,p.kt)("p",{parentName:"li"},"\u6570\u7ec4\uff0cComponentPlan \u6d89\u53ca\u7684\u8d44\u6e90"),(0,p.kt)("ul",{parentName:"li"},(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.resources[].specDiffwithExist")),(0,p.kt)("p",{parentName:"li"},"\u5c55\u793a\u8be5\u8d44\u6e90\u7684 manifest \u5728\u8be5 ComponentPlan \u5e94\u7528\u524d\u540e\u7684\u5bf9\u6bd4")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.resources[].NewCreated")),(0,p.kt)("p",{parentName:"li"},"\u5e03\u5c14\u503c\uff0c\u8be5\u8d44\u6e90\u662f\u5426\u662f\u65b0\u521b\u5efa\u7684")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.resources[].kind")),(0,p.kt)("p",{parentName:"li"},"\u8be5\u8d44\u6e90\u7684\u7c7b\u578b")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.resources[].name")),(0,p.kt)("p",{parentName:"li"},"\u8be5\u8d44\u6e90\u7684\u540d\u79f0")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("p",{parentName:"li"},(0,p.kt)("inlineCode",{parentName:"p"},"status.resources[].apiVersion")),(0,p.kt)("p",{parentName:"li"},"\u8be5\u8d44\u6e90\u7684 apiVersion \u4fe1\u606f"))))),(0,p.kt)("h2",{id:"\u5de5\u4f5c\u539f\u7406"},"\u5de5\u4f5c\u539f\u7406"),(0,p.kt)("p",null,"\u7ec4\u4ef6\u5b89\u88c5\u4ee5 Kubernetes Operator \u65b9\u5f0f\u5b9e\u73b0, \u5e95\u5c42\u901a\u8fc7\u8c03\u7528 Helm Go SDK \u5b9e\u73b0\u7ec4\u4ef6\u5b89\u88c5\u3001\u5347\u7ea7\u548c\u5378\u8f7d\u3002"),(0,p.kt)("p",null,"\u5728\u8fd0\u884c\u65f6\uff0c\u901a\u8fc7\u76d1\u6d4b\u96c6\u7fa4\u4e2d\u662f\u5426\u6709\u540c\u540d ",(0,p.kt)("inlineCode",{parentName:"p"},"helm release")," \u6765\u667a\u80fd\u4f7f\u7528 ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install")," \u6216\u8005 ",(0,p.kt)("inlineCode",{parentName:"p"},"helm upgrade")," \u76f8\u5173\u51fd\u6570\u8fdb\u884c\u5b89\u88c5\u6216\u5347\u7ea7\u3002"),(0,p.kt)("p",null,"\u5b89\u88c5\u6216\u5347\u7ea7\u65f6\uff0c\u4f1a\u5c06 ComponentPlan \u4e2d\u7684\u914d\u7f6e\u4f20\u9012\u7ed9\u76f8\u5173\u51fd\u6570\uff0c\u529f\u80fd\u548c ",(0,p.kt)("inlineCode",{parentName:"p"},"helm install")," \u6216\u8005 ",(0,p.kt)("inlineCode",{parentName:"p"},"helm upgrade")," \u57fa\u672c\u4e00\u81f4\u3002"),(0,p.kt)("p",null,"\u5f53\u5220\u9664 ComponentPlan \u65f6\uff0c\u5224\u65ad\u5f53\u524d\u96c6\u7fa4\u4e2d\u7684\u540c\u540d\u7684 ",(0,p.kt)("inlineCode",{parentName:"p"},"helm release")," \u7684\u6700\u65b0\u7248\u672c\u662f\u5426\u7531\u5f85\u5220\u9664\u7684 ComponentPlan \u5b89\u88c5\uff0c\u5982\u679c\u662f\uff0c\u5219\u540c\u65f6\u8c03\u7528 ",(0,p.kt)("inlineCode",{parentName:"p"},"helm uninstall")," \u76f8\u5173\u51fd\u6570\u5220\u9664\u8be5 helm release\u3002"),(0,p.kt)("p",null,"\u4e00\u4e9b\u7ec6\u8282\uff1a"),(0,p.kt)("ol",null,(0,p.kt)("li",{parentName:"ol"},"\u521b\u5efa ComponentPlan \u540e\uff0coperator \u4f1a\u5c1d\u8bd5\u81ea\u52a8\u89e3\u6790\u8be5 ComponentPlan \u4e2d\u5f15\u5165\u7684 helm release \u4f1a\u5bf9\u96c6\u7fa4\u4e2d\u73b0\u6709\u8d44\u6e90\u7684\u5f71\u54cd\uff0c\u7ed3\u679c\u4f1a\u5c55\u793a\u5728 ComponentPlan \u7684 status\n\u5b57\u6bb5\u4e2d\uff0c\u7c7b\u4f3c\u4e8e\u5148\u8fdb\u884c ",(0,p.kt)("inlineCode",{parentName:"li"},"helm install/upgrade --dry-run")," \u540e\uff0c\u5c06\u751f\u6210\u7684 manifest \u518d\u8fdb\u884c ",(0,p.kt)("inlineCode",{parentName:"li"},"kubectl diff")," \u64cd\u4f5c\uff0c"),(0,p.kt)("li",{parentName:"ol"},"\u53ea\u6709 ComponentPlan \u4e2d\u7684 ",(0,p.kt)("inlineCode",{parentName:"li"},"spec.approved")," \u4e3a ",(0,p.kt)("inlineCode",{parentName:"li"},"true"),"\uff0c\u5bf9\u5e94\u7684 ",(0,p.kt)("inlineCode",{parentName:"li"},"helm release")," \u624d\u4f1a\u771f\u6b63\u5b89\u88c5\u3002"),(0,p.kt)("li",{parentName:"ol"},"\u5355\u4e2a ComponentPlan \u7684\u955c\u50cf\u66ff\u6362 \uff08\u5373 ",(0,p.kt)("inlineCode",{parentName:"li"},"spec.override.images"),"\n\u5b57\u6bb5\uff09\u7684\u89c4\u5219\u9075\u5faa ",(0,p.kt)("a",{parentName:"li",href:"https://kubectl.docs.kubernetes.io/references/kustomize/builtins/#_imagetagtransformer_"},"kustomize:ImageTagTransformer"),"\n\u89c4\u8303\uff0c\u4ee3\u7801\u5b9e\u73b0\u4e5f\u662f\u76f4\u63a5\u8c03\u7528\u4e86 kustomize \u7684\u8fd9\u90e8\u5206\u4ee3\u7801\uff0c\u964d\u4f4e\u4e86\u7528\u6237\u5b66\u4e60\u6210\u672c\uff0c\u4fdd\u8bc1\u4e86\u4ee3\u7801\u7684\u517c\u5bb9\u6027\u548c\u6709\u6548\u6027\u3002"),(0,p.kt)("li",{parentName:"ol"},"\u5355\u4e2a ComponentPlan \u7684\u955c\u50cf\u66ff\u6362\u548c\u6574\u4e2a Repository \u7684\u955c\u50cf\u66ff\u6362\uff0c\u90fd\u662f\u901a\u8fc7 ",(0,p.kt)("a",{parentName:"li",href:"https://helm.sh/docs/topics/advanced/#post-rendering"},"Helm:post-rendering")," \u6280\u672f\u5b9e\u73b0\u7684\u3002")),(0,p.kt)("h3",{id:"\u955c\u50cf\u8986\u76d6\u7b56\u7565"},"\u955c\u50cf\u8986\u76d6\u7b56\u7565"),(0,p.kt)("p",null,(0,p.kt)("img",{alt:"image-changed",src:t(2250).Z,width:"1180",height:"834"})),(0,p.kt)("h3",{id:"componentplan-\u548c-helm-release-\u7684\u5173\u7cfb"},"ComponentPlan \u548c Helm release \u7684\u5173\u7cfb"),(0,p.kt)("p",null,(0,p.kt)("img",{alt:"componentplan",src:t(7873).Z,width:"4155",height:"1740"})))}d.isMDXComponent=!0},7873:(e,n,t)=>{t.d(n,{Z:()=>a});const a=t.p+"assets/images/componentplan-helm-release-48f97a6244dca22b6b69f6467ae141f3.png"},2250:(e,n,t)=>{t.d(n,{Z:()=>a});const a=t.p+"assets/images/image-changed-6cc1cd7373beaa44065302ebf7479fc7.png"}}]); \ No newline at end of file diff --git a/assets/js/ead696ea.424695b2.js b/assets/js/ead696ea.424695b2.js deleted file mode 100644 index b234f48ec..000000000 --- a/assets/js/ead696ea.424695b2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[406],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>c});var a=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function p(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var o=a.createContext({}),k=function(e){var n=a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):p(p({},n),e)),t},s=function(e){var n=k(e.components);return a.createElement(o.Provider,{value:n},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},b=a.forwardRef((function(e,n){var t=e.components,i=e.mdxType,l=e.originalType,o=e.parentName,s=r(e,["components","mdxType","originalType","parentName"]),m=k(t),b=i,c=m["".concat(o,".").concat(b)]||m[b]||u[b]||l;return t?a.createElement(c,p(p({ref:n},s),{},{components:t})):a.createElement(c,p({ref:n},s))}));function c(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var l=t.length,p=new Array(l);p[0]=b;var r={};for(var o in n)hasOwnProperty.call(n,o)&&(r[o]=n[o]);r.originalType=e,r[m]="string"==typeof e?e:i,p[1]=r;for(var k=2;k{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>p,default:()=>u,frontMatter:()=>l,metadata:()=>r,toc:()=>k});var a=t(7462),i=(t(7294),t(3905));const l={sidebar_position:6},p="\u7ec4\u4ef6\u8bc4\u6d4b",r={unversionedId:"core/concepts/rating",id:"core/concepts/rating",title:"\u7ec4\u4ef6\u8bc4\u6d4b",description:"\u7ec4\u4ef6\u8bc4\u6d4b \u76ee\u7684\u662f\u901a\u8fc7\u5c3d\u53ef\u80fd\u591a\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\uff0c\u4ece\u591a\u4e2a\u7eac\u5ea6\u8bc4\u4f30\u4e00\u4e2a\u7ec4\u4ef6\u3002\u8bc4\u4f30\u4e00\u4e2a\u7ec4\u4ef6\u5206\u4e09\u4e2a\u90e8\u5206\u7684\u5185\u5bb9\uff1a",source:"@site/docs/core/concepts/rating.md",sourceDirName:"core/concepts",slug:"/core/concepts/rating",permalink:"/website/docs/core/concepts/rating",draft:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"\u6269\u5c55\u8d44\u6e90(\u5e95\u5ea7)",permalink:"/website/docs/core/concepts/buildingbase_resources"},next:{title:"\u7528\u6237\u6307\u5357",permalink:"/website/docs/category/\u7528\u6237\u6307\u5357"}},o={},k=[{value:"\u4f9d\u8d56",id:"\u4f9d\u8d56",level:2},{value:"Tekton",id:"tekton",level:3},{value:"Arcadia\u4e91\u539f\u751fAI",id:"arcadia\u4e91\u539f\u751fai",level:3},{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49",level:2},{value:"\u5de5\u4f5c\u539f\u7406",id:"\u5de5\u4f5c\u539f\u7406",level:2},{value:"\u8fd0\u884c\u65f6\u6240\u9700\u8d44\u6e90",id:"\u8fd0\u884c\u65f6\u6240\u9700\u8d44\u6e90",level:3},{value:"\u6838\u5fc3\u903b\u8f91",id:"\u6838\u5fc3\u903b\u8f91",level:3},{value:"\u4f7f\u7528",id:"\u4f7f\u7528",level:2}],s={toc:k},m="wrapper";function u(e){let{components:n,...t}=e;return(0,i.kt)(m,(0,a.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"\u7ec4\u4ef6\u8bc4\u6d4b"},"\u7ec4\u4ef6\u8bc4\u6d4b"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"\u7ec4\u4ef6\u8bc4\u6d4b")," \u76ee\u7684\u662f\u901a\u8fc7\u5c3d\u53ef\u80fd\u591a\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\uff0c\u4ece\u591a\u4e2a\u7eac\u5ea6\u8bc4\u4f30\u4e00\u4e2a\u7ec4\u4ef6\u3002\u8bc4\u4f30\u4e00\u4e2a\u7ec4\u4ef6\u5206\u4e09\u4e2a\u90e8\u5206\u7684\u5185\u5bb9\uff1a"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"\u5b9a\u4e49\u5e76\u5b8c\u6210\u7ec4\u4ef6\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5"),(0,i.kt)("li",{parentName:"ol"},"\u6536\u96c6\u5904\u7406\u6d4b\u8bd5\u6570\u636e"),(0,i.kt)("li",{parentName:"ol"},"\u8bc4\u4f30\u83b7\u53d6\u7ec4\u4ef6\u7b49\u7ea7")),(0,i.kt)("p",null,"\u5b9a\u4e49 CRD ",(0,i.kt)("inlineCode",{parentName:"p"},"Rating"),", \u652f\u6301\u540c\u65f6\u8bbe\u7f6e\u591a\u4e2a pipeline\uff0c \u7ba1\u7406\u4ed6\u4eec\u7684\u751f\u547d\u5468\u671f\uff0c\u7edf\u4e00\u5c55\u793a ",(0,i.kt)("inlineCode",{parentName:"p"},"PipelineRun"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"TaskRun")," \u7684\u8fd0\u884c\u8fc7\u7a0b\u3002"),(0,i.kt)("h2",{id:"\u4f9d\u8d56"},"\u4f9d\u8d56"),(0,i.kt)("h3",{id:"tekton"},(0,i.kt)("a",{parentName:"h3",href:"https://tekton.dev/docs/operator/"},"Tekton")),(0,i.kt)("p",null,"\u4e3b\u8981\u7528\u5230 4 \u4e2a CRD\uff1a"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://tekton.dev/docs/pipelines/tasks/"},"Task"))),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"Task")," \u662f\u4f60\u5b9a\u4e49\u5e76\u6309\u7279\u5b9a\u6267\u884c\u987a\u5e8f\u6392\u5217\u7684\u6b65\u9aa4\u7684\u96c6\u5408\uff0c\u662f\u6301\u7eed\u96c6\u6210\u6d41\u7a0b\u7684\u4e00\u90e8\u5206\u3002",(0,i.kt)("inlineCode",{parentName:"p"},"Task")," \u4f5c\u4e3a Kubernetes \u96c6\u7fa4\u4e0a\u7684 Pod \u6267\u884c\u3002 ",(0,i.kt)("inlineCode",{parentName:"p"},"Task")," \u5728\u7279\u5b9a\u547d\u540d\u7a7a\u95f4\u5185\u53ef\u7528\u3002"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://tekton.dev/docs/pipelines/taskruns/"},"TaskRun"))),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"TaskRun")," \u5141\u8bb8\u4f60\u5728\u96c6\u7fa4\u4e0a\u5b9e\u4f8b\u5316\u5e76\u6267\u884c\u4efb\u52a1\u3002\u4efb\u52a1\u6307\u5b9a\u6267\u884c\u5bb9\u5668\u6620\u50cf\u7684\u4e00\u4e2a\u6216\u591a\u4e2a\u6b65\u9aa4\uff0c\u6bcf\u4e2a\u5bb9\u5668\u6620\u50cf\u6267\u884c\u4e00\u9879\u7279\u5b9a\u7684\u6784\u5efa\u5de5\u4f5c\u3002 ",(0,i.kt)("inlineCode",{parentName:"p"},"TaskRun")," \u6309\u7167\u6307\u5b9a\u7684\u987a\u5e8f\u6267\u884c\u4efb\u52a1\u4e2d\u7684\u6b65\u9aa4\uff0c\u76f4\u5230\u6240\u6709\u6b65\u9aa4\u90fd\u6210\u529f\u6267\u884c\u6216\u53d1\u751f\u5931\u8d25\u3002"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://tekton.dev/docs/pipelines/pipelines/"},"Pipeline"))),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"Pipeline")," \u662f\u4f60\u5b9a\u4e49\u5e76\u6309\u7279\u5b9a\u6267\u884c\u987a\u5e8f\u6392\u5217\u7684\u4efb\u52a1\u96c6\u5408\uff0c\u662f\u6301\u7eed\u96c6\u6210\u6d41\u7a0b\u7684\u4e00\u90e8\u5206\u3002",(0,i.kt)("inlineCode",{parentName:"p"},"Pipeline")," \u4e2d\u7684\u6bcf\u4e2a\u4efb\u52a1\u90fd\u5728 Kubernetes \u96c6\u7fa4\u4e0a\u4f5c\u4e3a\u4e00\u4e2a Pod \u6267\u884c\u3002\u4f60\u53ef\u4ee5\u914d\u7f6e\u5404\u79cd\u6267\u884c\u6761\u4ef6\uff0c\u4ee5\u6ee1\u8db3\u4f60\u7684\u4e1a\u52a1\u9700\u6c42\u3002"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://tekton.dev/docs/pipelines/pipelineruns/"},"PipelineRun"))),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"PipelineRun")," \u5141\u8bb8\u4f60\u5728\u96c6\u7fa4\u4e0a\u5b9e\u4f8b\u5316\u548c\u6267\u884c\u7ba1\u9053\u3002\u7ba1\u9053\u6309\u7167\u6240\u9700\u7684\u6267\u884c\u987a\u5e8f\u6307\u5b9a\u4e00\u4e2a\u6216\u591a\u4e2a\u4efb\u52a1\u3002",(0,i.kt)("inlineCode",{parentName:"p"},"PipelineRun")," \u4f1a\u6309\u7167\u6307\u5b9a\u7684\u987a\u5e8f\u6267\u884c\u7ba1\u9053\u4e2d\u7684\u4efb\u52a1\uff0c\u76f4\u5230\u6240\u6709\u4efb\u52a1\u90fd\u6210\u529f\u6267\u884c\u6216\u51fa\u73b0\u6545\u969c\u3002"),(0,i.kt)("h3",{id:"arcadia\u4e91\u539f\u751fai"},(0,i.kt)("a",{parentName:"h3",href:"https://github.com/kubeagi/arcadia"},"Arcadia\u4e91\u539f\u751fAI")),(0,i.kt)("p",null,"\u4e3b\u8981\u7528\u52302\u4e2aCRD:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/kubeagi/arcadia/blob/main/api/v1alpha1/llm_types.go"},"LLM"),",\u5305\u542bAI\u5927\u6a21\u578b\u670d\u52a1\u7684\u8bbf\u95ee\u914d\u7f6e\u4fe1\u606f"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/kubeagi/arcadia/blob/main/api/v1alpha1/prompt_types.go"},"Prompt"),",\u5305\u542b\u9488\u5bf9LLM\u670d\u52a1\u7684\u8bf7\u6c42\u63d0\u793a\u8bcd\u548c\u63a7\u5236\u53c2\u6570")),(0,i.kt)("h2",{id:"\u5b9a\u4e49"},"\u5b9a\u4e49"),(0,i.kt)("p",null,"CRD \u7684\u4ee3\u7801\u5b9a\u4e49\u4f4d\u4e8e ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/kubebb/core/blob/main/api/v1alpha1/rating_types.go"},"RatingTypes"),"\u3002\u63a5\u4e0b\u6765\u4f1a\u8be6\u7ec6\u4ecb\u7ecd\u6bcf\u4e2a\u5b57\u6bb5\u7684\u542b\u4e49\u53ca\u5176\u4f5c\u7528\u3002"),(0,i.kt)("admonition",{type:"tip"},(0,i.kt)("p",{parentName:"admonition"},"\u8bf4\u660e \u5bf9\u4e8e\u4e0b\u9762\u7684 yaml\uff0c\u6211\u4eec\u60f3\u8981\u8bbf\u95ee bar \u5b57\u6bb5\uff0c\u4e66\u5199\u683c\u5f0f\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"spec.foo.bar")),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},"spec:\n foo:\n bar: xx\n"))),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.componentName")),(0,i.kt)("p",{parentName:"li"},"\u8be5\u5b57\u6bb5\u5b9a\u4e49\u4e86\u5173\u8054\u7684 Component\uff0c\u662f",(0,i.kt)("strong",{parentName:"p"},"\u5fc5\u586b\u5b57\u6bb5"),"\u3002")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.pipelineParams")),(0,i.kt)("p",{parentName:"li"}," \u8be5\u5b57\u6bb5\u662f\u6570\u7ec4\uff0c\u6bcf\u4e00\u9879\u90fd\u5305\u542b ",(0,i.kt)("inlineCode",{parentName:"p"},"Pipeline")," \u7684\u540d\u5b57\u53ca\u5176\u9700\u8981\u7684\u53c2\u6570\uff0c\u8be5\u5b57\u6bb5\u662f",(0,i.kt)("strong",{parentName:"p"},"\u5fc5\u586b\u5b57\u6bb5"),"\u3002\u6570\u7ec4\u7684\u6bcf\u4e00\u9879\u4ecb\u7ecd"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.pipelineParams[index].pipelineName")," \u5b9a\u4e49\u4e86 ",(0,i.kt)("inlineCode",{parentName:"p"},"Pipeline")," \u7684\u540d\u5b57\uff0c\u8be5\u5b57\u6bb5\u662f",(0,i.kt)("strong",{parentName:"p"},"\u5fc5\u586b\u5b57\u6bb5"),"\u3002")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.pipelineParams[index].params")," \u8fd9\u4e2a\u5b57\u6bb5\u4e5f\u662f\u6570\u7ec4\uff0c\u91cc\u9762\u7684\u6bcf\u4e00\u9879\u5206\u522b\u662f\u3002"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.pipelineParams[index].params[idx].name")," \u5b9a\u4e49\u7684\u53c2\u6570\u7684\u540d\u5b57\uff0c\u662f",(0,i.kt)("strong",{parentName:"li"},"\u5fc5\u586b\u5b57\u6bb5"),"\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.pipelineParams[index].params[idx].value.type")," \u8be5\u5b57\u6bb5\u6307\u660e\u53c2\u6570\u7684\u7c7b\u578b\uff0c",(0,i.kt)("strong",{parentName:"li"},"\u662f\u5fc5\u586b\u5b57\u6bb5"),"\uff0c\u6709\u4e09\u4e2a\u53ef\u9009\u503c ",(0,i.kt)("inlineCode",{parentName:"li"},"string"),", ",(0,i.kt)("inlineCode",{parentName:"li"},"array"),", ",(0,i.kt)("inlineCode",{parentName:"li"},"object"),"\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.pipelineParams[index].params[idx].value.stringVal")," \u5f53 ",(0,i.kt)("inlineCode",{parentName:"li"},"type=string")," \u7684\u65f6\u5019\uff0c\u586b\u5199\u8be5\u5b57\u6bb5\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.pipelineParams[index].params[idx].value.arrayVal")," \u5f53 ",(0,i.kt)("inlineCode",{parentName:"li"},"type=array")," \u7684\u65f6\u5019\uff0c\u586b\u5199\u8be5\u5b57\u6bb5\uff0c\u6570\u7ec4\u91cc\u7684\u6bcf\u4e00\u9879\u90fd\u662f\u5b57\u7b26\u4e32\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.pipelineParams[index].params[idx].value.objectVal")," \u5f53 ",(0,i.kt)("inlineCode",{parentName:"li"},"type=object")," \u7684\u65f6\u5019\uff0c\u586b\u5199\u8be5\u5b57\u6bb5\u3002")))))),(0,i.kt)("h2",{id:"\u5de5\u4f5c\u539f\u7406"},"\u5de5\u4f5c\u539f\u7406"),(0,i.kt)("h3",{id:"\u8fd0\u884c\u65f6\u6240\u9700\u8d44\u6e90"},"\u8fd0\u884c\u65f6\u6240\u9700\u8d44\u6e90"),(0,i.kt)("p",null,"\u901a\u8fc7 ",(0,i.kt)("inlineCode",{parentName:"p"},"helm")," \u5c06 operator \u90e8\u7f72\u5728 ",(0,i.kt)("inlineCode",{parentName:"p"},"kubebb-system")," namespace\u540e\uff0c\u4f1a\u770b\u5230\u4ee5\u4e0b\u51e0\u4e2a\u8d44\u6e90( \u8fd9\u91cc release \u7684\u540d\u5b57\u662f ",(0,i.kt)("inlineCode",{parentName:"p"},"kubebb"),")"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"ClusterRole")),(0,i.kt)("p",null,"\u540d\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"kubebb-system.kubebb-rating"),"\uff0c\u91cc\u9762\u4ec5\u5305\u542b\u4e86\u64cd\u4f5c configmap \u8d44\u6e90\u7684\u6743\u9650\u3002\n",(0,i.kt)("inlineCode",{parentName:"p"},"ClusterRole")," \u5b9a\u4e49\u4e86\u6240\u6709\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"Task")," \u5728\u8fd0\u884c\u65f6\u9700\u8981\u7684\u6743\u9650\uff0c\u6709\u65b0\u7684\u6743\u9650\u9700\u6c42\uff0c\u76f4\u63a5\u66f4\u65b0\u8fd9\u4e2a ",(0,i.kt)("inlineCode",{parentName:"p"},"ClusterRole")," \u5373\u53ef\u3002"),(0,i.kt)("ol",{start:2},(0,i.kt)("li",{parentName:"ol"},"ServiceAccount")),(0,i.kt)("p",null,"\u540d\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"kubebb-system.kubebb-rating"),"\u3002\u8fd9\u4e2a serviceaccount \u4f1a\u5728\u6bcf\u4e2a ",(0,i.kt)("inlineCode",{parentName:"p"},"Repository")," \u7684 namespace \u4e0b\u90fd\u521b\u5efa\u4e00\u4e2a\u3002"),(0,i.kt)("ol",{start:3},(0,i.kt)("li",{parentName:"ol"},"ClusterRoleBinding")),(0,i.kt)("p",null,"\u540d\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"kubebb-system.kubebb-rating"),"\uff0c\u5c06 serviceaccount ",(0,i.kt)("inlineCode",{parentName:"p"},"kubebb-system.kubebb-rating")," \u4e0e clusterrole ",(0,i.kt)("inlineCode",{parentName:"p"},"kubebb-system.kubebb-rating")," \u7ed1\u5b9a\u3002"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get clusterrole,clusterrolebinding kubebb-system.kubebb-rating \nNAME CREATED AT\nclusterrole.rbac.authorization.k8s.io/kubebb-system.kubebb-rating 2023-08-21T09:24:12Z\n\nNAME ROLE AGE\nclusterrolebinding.rbac.authorization.k8s.io/kubebb-system.kubebb-rating ClusterRole/kubebb-system.kubebb-rating 8m8s\n")),(0,i.kt)("ol",{start:4},(0,i.kt)("li",{parentName:"ol"},"Pipeline, Task")),(0,i.kt)("p",null,"\u4e00\u4e2a\u540d\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"kubebb")," \u7684 pipeline \u548c \u540d\u5b57\u5206\u522b\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"kubebb-rback"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"kubebb-helm-lint")," \u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"Task"),"\u3002\n",(0,i.kt)("inlineCode",{parentName:"p"},"Task")," \u5b9a\u4e49\u4e86\u8981\u6267\u884c\u7684\u4efb\u52a1\u7684\u5177\u4f53\u52a8\u4f5c\uff0c\u800c ",(0,i.kt)("inlineCode",{parentName:"p"},"Pipeline")," \u5219\u662f\u5b9a\u4e49\u4e86\u8981\u6267\u884c\u54ea\u4e9b ",(0,i.kt)("inlineCode",{parentName:"p"},"Task")," \u4ee5\u53ca\u8fd9\u4e9b ",(0,i.kt)("inlineCode",{parentName:"p"},"Task")," \u4e4b\u95f4\u7684\u6267\u884c\u987a\u5e8f\u7b49\u3002"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get pipeline -nkubebb-system\nNAME AGE\nkubebb 4m19s\n\nkubectl get task -nkubebb-system\nNAME AGE\nkubebb-helm-lint 4m25s\nkubebb-rback 4m25s\n")),(0,i.kt)("p",null,"\u652f\u6301\u7528\u6237\u81ea\u5df1\u5b9a\u4e49 ",(0,i.kt)("inlineCode",{parentName:"p"},"Task")," \u548c ",(0,i.kt)("inlineCode",{parentName:"p"},"Pipeline"),", \u4f46\u662f\u9700\u8981\u8bb2\u8fd9\u4e9b\u8d44\u6e90\u653e\u5230\u4e0e operator \u76f8\u540c\u7684 ",(0,i.kt)("strong",{parentName:"p"},"namespace")," \u4e0b\u3002\n",(0,i.kt)("inlineCode",{parentName:"p"},"ClusterRole"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"ClusterRoleBinding"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"ServiceAccount")," \u662f\u7ed9 pipelinerun \u5728\u6267\u884c ",(0,i.kt)("inlineCode",{parentName:"p"},"Task")," \u7528\u7684\uff0c\u907f\u514d ",(0,i.kt)("inlineCode",{parentName:"p"},"Task")," \u56e0\u4e3a\u6743\u9650\u4e0d\u8db3\u800c\u5931\u8d25\u3002"),(0,i.kt)("h3",{id:"\u6838\u5fc3\u903b\u8f91"},"\u6838\u5fc3\u903b\u8f91"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"\u5f53 ",(0,i.kt)("inlineCode",{parentName:"li"},"Rating")," \u521b\u5efa\u65f6")),(0,i.kt)("p",null,"\u7ed9 ",(0,i.kt)("inlineCode",{parentName:"p"},"Rating")," \u6dfb\u52a0\u4e24\u4e2a\u6807\u7b7e ",(0,i.kt)("inlineCode",{parentName:"p"},"rating.component="),", ",(0,i.kt)("inlineCode",{parentName:"p"},"rating.repository=")," \u7528\u6765\u8bb0\u5f55\u4e0e\u5f53\u524d ",(0,i.kt)("inlineCode",{parentName:"p"},"Rating")," \u5173\u8054\u7684\u7ec4\u4ef6\u548c\u4ed3\u5e93\u7684\u540d\u5b57\u3002"),(0,i.kt)("ol",{start:2},(0,i.kt)("li",{parentName:"ol"},"\u5f53 ",(0,i.kt)("inlineCode",{parentName:"li"},"Rating")," \u66f4\u65b0\u65f6")),(0,i.kt)("p",null,"\u76ee\u524d\u5bf9\u4e8e ",(0,i.kt)("inlineCode",{parentName:"p"},"spec"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"status")," \u7684\u66f4\u65b0\u4e0d\u505a\u5904\u7406\uff0c\u53ea\u6709\u5f53 ",(0,i.kt)("inlineCode",{parentName:"p"},"metadata")," \u53d1\u751f\u53d8\u5316\u7684\u65f6\u5019\uff0c\u624d\u4f1a\u8fdb\u5165\u5904\u7406\u903b\u8f91\u3002"),(0,i.kt)("p",null,"\u6839\u636e ",(0,i.kt)("inlineCode",{parentName:"p"},"spec")," \u5b9a\u4e49\u7684 pipeline \u5217\u8868\uff0c\u5f00\u59cb\u521b\u5efa ",(0,i.kt)("inlineCode",{parentName:"p"},"PipelineRun"),", \u540c\u65f6 ",(0,i.kt)("inlineCode",{parentName:"p"},"watch")," ",(0,i.kt)("inlineCode",{parentName:"p"},"PipelineRun")," \u7684\u53d8\u5316\uff0c\u5c06\u5176\u72b6\u6001\uff0c\u4ee5\u53ca ",(0,i.kt)("inlineCode",{parentName:"p"},"Task"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"TaskRun")," \u7684\u4fe1\u606f\u540c\u6b65\u5230 ",(0,i.kt)("inlineCode",{parentName:"p"},"Rating"),"\u3002"),(0,i.kt)("ol",{start:3},(0,i.kt)("li",{parentName:"ol"},"\u5f53 ",(0,i.kt)("inlineCode",{parentName:"li"},"Rating")," \u5220\u9664\u65f6")),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"Rating")," \u88ab\u5220\u9664\uff0c\u4ed6\u6240\u521b\u5efa\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"PipelineRun")," \u540c\u6837\u4f1a\u88ab\u5220\u9664\u3002"),(0,i.kt)("h2",{id:"\u4f7f\u7528"},"\u4f7f\u7528"),(0,i.kt)("p",null,"\u4e00\u4e2a rating CR \u7684\u4f8b\u5b50:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},"# rating.yaml\napiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: Rating\nmetadata:\n name: rating\n namespace: kubebb-system\nspec:\n componentName: kubebb.kubebb-core\n pipelineParams:\n - pipelineName: kubebb\n params:\n - name: URL\n value: \n type: string\n stringVal: https://github.com/kubebb/components/releases/download/kubebb-core-v0.1.10/kubebb-core-v0.1.10.tgz\n arrayVal: []\n objectVal: {}\n - name: COMPONENT_NAME\n value: \n stringVal: kubebb-core\n type: string\n - name: VERSION\n value: \n stringVal: v0.1.10\n type: string\n - name: REPOSITORY_NAME\n value: \n stringVal: kubebb\n type: string\n")),(0,i.kt)("p",null,"\u4e0a\u8ff0 yaml \u6240\u5b9a\u4e49\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"Rating")," \u5305\u542b\u4e00\u4e2a\u9ed8\u8ba4\u7684 pipeline\uff0c\u5e76\u4e14\u5c06 pipeline \u9700\u8981\u7684\u53c2\u6570\u4f20\u9012\u8fdb\u53bb\u3002 \u6267\u884c\u4e0a\u9762\u7684 yaml"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl apply -f rating.yaml\n")),(0,i.kt)("p",null,"\u53ef\u4ee5\u6301\u7eed\u89c2\u5bdf Rating \u7684\u53d8\u5316"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl -nkubebb-system get rating -oyaml -w\n")),(0,i.kt)("p",null,"\u5982\u679c\u8fd0\u884c\u4e0d\u6210\u529f\uff0c\u4f1a\u5728 status \u4e2d\u7ed9\u51fa\u9519\u8bef\u539f\u56e0\u3002 \u8fd0\u884c\u6210\u529f\u4f1a\u5f97\u5230\u5982\u4e0b\u7684 status"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'status:\n pipelineRuns:\n rating.kubebb:\n actualWeight: 2\n conditions:\n - lastTransitionTime: "2023-08-23T05:39:53Z"\n message: \'Tasks Completed: 2 (Failed: 0, Cancelled 0), Skipped: 0\'\n reason: Succeeded\n status: "True"\n type: Succeeded\n expectWeight: 2\n pipelineName: kubebb\n tasks:\n - conditions:\n - lastTransitionTime: "2023-08-23T05:39:53Z"\n message: All Steps have completed executing\n reason: Succeeded\n status: "True"\n type: Succeeded\n name: kubebb-rback\n taskRunName: rating.kubebb-kubebb-rback\n - conditions:\n - lastTransitionTime: "2023-08-23T05:39:53Z"\n message: All Steps have completed executing\n reason: Succeeded\n status: "True"\n type: Succeeded\n name: kubebb-helm-lint\n taskRunName: rating.kubebb-kubebb-helm-lint\n')),(0,i.kt)("p",null,"\u5982\u679c\u60f3\u8981\u77e5\u9053\u6bcf\u4e2a task \u8fd0\u884c\u7684\u8f93\u51fa\u65e5\u5fd7\uff0c\u53ef\u4ee5\u5148\u5f97\u5230 pod \u5217\u8868\uff0c\u7136\u540e\u67e5\u770bpod\u65e5\u5fd7\u5373\u53ef\u3002"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get po -nkubebb-system\nNAME READY STATUS RESTARTS AGE\nkubebb-5dbf45964c-26jpp 1/1 Running 0 3m53s\nrating.kubebb-kubebb-helm-lint-pod 0/1 Completed 0 2m9s\nrating.kubebb-kubebb-rback-pod 0/1 Completed 0 2m9s\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f03e9ca9.ba07b6ac.js b/assets/js/f03e9ca9.ba07b6ac.js deleted file mode 100644 index 1fd07758c..000000000 --- a/assets/js/f03e9ca9.ba07b6ac.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7133],{3905:(e,t,n)=>{n.d(t,{Zo:()=>k,kt:()=>c});var a=n(7294);function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(l[n]=e[n]);return l}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n])}return l}var p=a.createContext({}),m=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},k=function(e){var t=m(e.components);return a.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},s=a.forwardRef((function(e,t){var n=e.components,l=e.mdxType,r=e.originalType,p=e.parentName,k=o(e,["components","mdxType","originalType","parentName"]),u=m(n),s=l,c=u["".concat(p,".").concat(s)]||u[s]||d[s]||r;return n?a.createElement(c,i(i({ref:t},k),{},{components:n})):a.createElement(c,i({ref:t},k))}));function c(e,t){var n=arguments,l=t&&t.mdxType;if("string"==typeof e||l){var r=n.length,i=new Array(r);i[0]=s;var o={};for(var p in t)hasOwnProperty.call(t,p)&&(o[p]=t[p]);o.originalType=e,o[u]="string"==typeof e?e:l,i[1]=o;for(var m=2;m{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>o,toc:()=>m});var a=n(7462),l=(n(7294),n(3905));const r={sidebar_position:4},i="\u53d1\u5e03\u7ec4\u4ef6",o={unversionedId:"lowcode-development/development/develop-hello-world",id:"lowcode-development/development/develop-hello-world",title:"\u53d1\u5e03\u7ec4\u4ef6",description:"\u672c\u7ae0\u8282\u4e3b\u8981\u4ecb\u7ecd\u53d1\u5e03\u7ba1\u7406\uff0c\u5373\u5728\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\u53d1\u5e03\u4e00\u4e2a\u5e94\u7528\u5230 Kubebb \u7ec4\u4ef6\u4ed3\u5e93\u3002\u53d1\u5e03\u6210\u529f\u540e\uff0c\u53ef\u8fdb\u5165 Kubebb \u7ec4\u4ef6\u5e02\u573a\u9875\u9762\uff0c\u67e5\u770b\u5e94\u7528\u6216\u5b89\u88c5\u4f7f\u7528\u3002",source:"@site/docs/lowcode-development/development/develop-hello-world.md",sourceDirName:"lowcode-development/development",slug:"/lowcode-development/development/develop-hello-world",permalink:"/website/docs/lowcode-development/development/develop-hello-world",draft:!1,tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"BFF \u5c42 API \u5f00\u53d1",permalink:"/website/docs/lowcode-development/development/bff-apis"},next:{title:"\u7ec4\u4ef6\u5e02\u573a",permalink:"/website/docs/category/\u7ec4\u4ef6\u5e02\u573a"}},p={},m=[{value:"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406",id:"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406",level:2},{value:"\u5e94\u7528\u53d1\u5e03",id:"\u5e94\u7528\u53d1\u5e03",level:2}],k={toc:m},u="wrapper";function d(e){let{components:t,...r}=e;return(0,l.kt)(u,(0,a.Z)({},k,r,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"\u53d1\u5e03\u7ec4\u4ef6"},"\u53d1\u5e03\u7ec4\u4ef6"),(0,l.kt)("p",null,"\u672c\u7ae0\u8282\u4e3b\u8981\u4ecb\u7ecd\u53d1\u5e03\u7ba1\u7406\uff0c\u5373\u5728\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\u53d1\u5e03\u4e00\u4e2a\u5e94\u7528\u5230 Kubebb \u7ec4\u4ef6\u4ed3\u5e93\u3002\u53d1\u5e03\u6210\u529f\u540e\uff0c\u53ef\u8fdb\u5165 Kubebb \u7ec4\u4ef6\u5e02\u573a\u9875\u9762\uff0c\u67e5\u770b\u5e94\u7528\u6216\u5b89\u88c5\u4f7f\u7528\u3002"),(0,l.kt)("p",null,"\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\u53d1\u5e03\u4e00\u4e2a\u5e94\u7528\u7684\u5b8c\u6574\u6d41\u7a0b\uff1a\u65b0\u589e\u5e94\u7528 -> \u521b\u5efa\u5206\u652f -> \u65b0\u589e\u9875\u9762 -> \u8bbe\u8ba1\u9875\u9762 -> git \u63d0\u4ea4 -> \u53d1\u5e03\u5e94\u7528\u3002 \u53d1\u5e03\u4e4b\u524d\u5148\u8bbe\u8ba1\u4e00\u4e2a\u5e94\u7528\uff0c\u8bf7\u53c2\u89c1",(0,l.kt)("a",{parentName:"p",href:"/website/docs/lowcode-development/development/frontend-low-code"},"\u524d\u7aef\u5c42\u57fa\u4e8e\u4f4e\u7801 Kit \u7684\u5f00\u53d1"),"\u3002 \u53d1\u5e03\u7ba1\u7406\u5305\u62ec\u4e24\u90e8\u5206\uff0c\u5e94\u7528\u53d1\u5e03\u548c\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406\u3002"),(0,l.kt)("h2",{id:"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406"},"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406"),(0,l.kt)("admonition",{type:"tip"},(0,l.kt)("ul",{parentName:"admonition"},(0,l.kt)("li",{parentName:"ul"},"\u53d1\u5e03\u5e94\u7528\u7684\u524d\u63d0\uff0c\u81f3\u5c11\u6709\u4e00\u4e2a\u7ec4\u4ef6\u4ed3\u5e93\u3002\u90e8\u7f72\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\u540e\uff0c\u4f1a\u9ed8\u8ba4\u90e8\u7f72\u4e00\u4e2a\u7ec4\u4ef6\u4ed3\u5e93\uff0c\u6b64\u4ed3\u5e93\u9002\u7528\u4e8e\u5e73\u53f0\u6240\u6709\u5e94\u7528\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u540c\u65f6\u6b64\u4ed3\u5e93\u4e5f\u9ed8\u8ba4\u6dfb\u52a0\u5230 Kubebb \u7684",(0,l.kt)("inlineCode",{parentName:"li"},"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406"),"\u4e2d\uff0c\u4f4e\u7801\u5e94\u7528\u53d1\u5e03\u540e\uff0c\u76f4\u63a5\u53ef\u8fdb\u5165 Kubebb \u7684",(0,l.kt)("inlineCode",{parentName:"li"},"\u7ec4\u4ef6\u5e02\u573a"),"\u9875\u9762\uff0c\u67e5\u770b\u5e94\u7528\u6216\u5b89\u88c5\u4f7f\u7528\u3002\u8be6\u7ec6\u53c2\u89c1",(0,l.kt)("a",{parentName:"li",href:"/website/docs/user-guid/component_market"},(0,l.kt)("strong",{parentName:"a"},"\u7ec4\u4ef6\u5e02\u573a")),"\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u5e94\u7528\u7684\u7ef4\u62a4\u8005\u3001\u62e5\u6709\u8005\u6709\u6743\u9650\u7ba1\u7406\u4ed3\u5e93\u3002"))),(0,l.kt)("p",null,"\u7ba1\u7406\u7ec4\u4ef6\u4ed3\u5e93\u64cd\u4f5c\u5982\u4e0b:"),(0,l.kt)("ol",null,(0,l.kt)("li",{parentName:"ol"},"\u767b\u5f55\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\uff0c\u8fdb\u5165",(0,l.kt)("inlineCode",{parentName:"li"},"\u5e94\u7528\u7ba1\u7406"),"\u9875\u9762\uff0c\u627e\u5230\u76ee\u6807\u5e94\u7528\uff0c\u70b9\u51fb",(0,l.kt)("strong",{parentName:"li"},"\u5e94\u7528\u540d\u79f0"),"\u8fdb\u5165\u8be6\u60c5\u9875\u9762\u3002"),(0,l.kt)("li",{parentName:"ol"},"\u5207\u6362\u9876\u90e8\u5bfc\u822a\u5230",(0,l.kt)("strong",{parentName:"li"},"\u53d1\u5e03\u7ba1\u7406"),"\uff0c\u9ed8\u8ba4\u8fdb\u5165",(0,l.kt)("inlineCode",{parentName:"li"},"\u53d1\u5e03\u8bb0\u5f55"),"\u9875\u9762\uff0c\u5207\u6362\u5230",(0,l.kt)("strong",{parentName:"li"},"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406"),"\u9875\u9762\u3002\u70b9\u51fb",(0,l.kt)("strong",{parentName:"li"},"\u6dfb\u52a0\u7ec4\u4ef6\u4ed3\u5e93"),"\uff0c\u5f39\u6846\u914d\u7f6e\u53c2\u6570\u8bf4\u660e\u5982\u4e0b\uff1a")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"\u7ec4\u4ef6\u4ed3\u5e93\u540d\u79f0\uff1a",(0,l.kt)("inlineCode",{parentName:"li"},"\u75313~63\u4f4d\u5b57\u7b26\u3001\u4e0b\u5212\u7ebf\u201c_\u201d\u3001\u4e2d\u5212\u7ebf\u201c-\u201d\u6216\u70b9\u201c.\u201d\u7ec4\u6210\uff0c\u5e76\u4ee5\u5b57\u7b26\u5f00\u5934\u6216\u7ed3\u5c3e"),"\uff0c\u5e94\u7528\u5185\u552f\u4e00\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u52fe\u9009\u5185\u7f6e\u4ed3\u5e93\uff0c\u9ed8\u8ba4\u4e0d\u52fe\u9009\u3002\u4ec5\u7cfb\u7edf\u7ba1\u7406\u5458\u6709\u6743\u52fe\u9009\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u4ed3\u5e93\u5730\u5740\uff1a\u8f93\u5165http://ip(host):port/xxx\u3002 \u793a\u4f8b",(0,l.kt)("inlineCode",{parentName:"li"},"http://192.168.1.1:80/repository")),(0,l.kt)("li",{parentName:"ul"},"\u7528\u6237\u540d\u3001\u5bc6\u7801\uff1a\u975e\u5fc5\u586b\u3002\u9ed8\u8ba4\u662fBasic Auth\u8ba4\u8bc1\u65b9\u5f0f\u3002")),(0,l.kt)("ol",{start:3},(0,l.kt)("li",{parentName:"ol"},"\u70b9\u51fb",(0,l.kt)("strong",{parentName:"li"},"\u786e\u5b9a"),"\uff0c\u6dfb\u52a0\u4ed3\u5e93\u6210\u529f\u540e\uff0c\u5c55\u793a\u5df2\u6dfb\u52a0\u7684\u4ed3\u5e93\u4fe1\u606f\uff0c\u5305\u62ec\u7ec4\u4ef6\u4ed3\u5e93\u540d\u79f0\u3001\u5f53\u524d\u72b6\u6001\u3001\u7ec4\u4ef6\u4ed3\u5e93\u5730\u5740\u3001\u66f4\u65b0\u8005\u3001\u66f4\u65b0\u65f6\u95f4\u3002")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"\u4ed3\u5e93\u72b6\u6001\uff1a\u5065\u5eb7\u6216\u5f02\u5e38\uff0c\u5f02\u5e38\u4e00\u822c\u6307\u5f53\u4ed3\u5e93\u81ea\u8eab\u6570\u636e\u83b7\u53d6\u66f4\u65b0\u5931\u8d25\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u66f4\u65b0\u8005\uff1a\u6700\u8fd1\u4e00\u6b21\u4fee\u6539\u4ed3\u5e93\u4fe1\u606f\u8005")),(0,l.kt)("ol",{start:4},(0,l.kt)("li",{parentName:"ol"},"\u7f16\u8f91\u4ed3\u5e93\u65f6\uff0c\u4ed3\u5e93\u540d\u79f0\u3001\u662f\u5426\u5185\u7f6e\u4e0d\u5141\u8bb8\u4fee\u6539\uff0c\u5176\u4ed6\u53ef\u6309\u9700\u8c03\u6574\u3002"),(0,l.kt)("li",{parentName:"ol"},"\u5220\u9664\u4ed3\u5e93\u65f6\uff0c\u4e8c\u6b21\u5f39\u6846\u63d0\u793a\u662f\u5426\u201c\u540c\u6b65\u5220\u9664\u5f53\u524d\u4ed3\u5e93\u7684\u6240\u6709\u53d1\u5e03\u8bb0\u5f55\u201d\uff0c\u52fe\u9009\u540e\uff0c\u70b9\u51fb",(0,l.kt)("strong",{parentName:"li"},"\u786e\u5b9a"),"\uff0c\u5373\u5220\u9664\u4ed3\u5e93\u548c\u5176\u4e2d\u6240\u6709\u5e94\u7528\u7684\u53d1\u5e03\u8bb0\u5f55\uff1b\u53cd\u4e4b\uff0c\u5219\u4ec5\u5220\u9664\u4ed3\u5e93\u3002")),(0,l.kt)("admonition",{type:"note"},(0,l.kt)("ul",{parentName:"admonition"},(0,l.kt)("li",{parentName:"ul"},"\u7ec4\u4ef6\u4ed3\u5e93\u76ee\u524d\u652f\u6301\u6dfb\u52a0 Chart Museum \u7c7b\u578b\u7684 helm \u4ed3\u5e93\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u90e8\u7f72\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\u540e\uff0c\u9ed8\u8ba4\u90e8\u7f72\u7684\u7ec4\u4ef6\u4ed3\u5e93\u5373\u4e3a",(0,l.kt)("inlineCode",{parentName:"li"},"\u5185\u7f6e\u4ed3\u5e93"),"\u7c7b\u578b\uff0c\u6240\u6709\u5e94\u7528\u7684",(0,l.kt)("inlineCode",{parentName:"li"},"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406"),"\u4e2d\u53ef\u89c1\u53ef\u53d1\u5e03\u81f3\u6b64\u4ed3\u5e93\u3002"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"\u5185\u7f6e\u4ed3\u5e93"),"\u4ec5\u7cfb\u7edf\u7ba1\u7406\u5458\u6709\u6743\u521b\u5efa\u3001\u5220\u9664\u3002\u53ef\u521b\u5efa\u591a\u4e2a\u5185\u7f6e\u4ed3\u5e93\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u7528\u6237\u81ea\u884c\u6dfb\u52a0\u7684\u7ec4\u4ef6\u4ed3\u5e93\uff0c\u9700\u81ea\u884c\u5230 Kubebb \u7684",(0,l.kt)("inlineCode",{parentName:"li"},"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406"),"\u4e2d\u6dfb\u52a0\u3002\u540e\u7eed\u4f4e\u7801\u5e94\u7528\u53d1\u5e03\u81f3\u6b64\u4ed3\u5e93\u540e\uff0c\u624d\u652f\u6301\u67e5\u770b\u6216\u5b89\u88c5\u3002"))),(0,l.kt)("h2",{id:"\u5e94\u7528\u53d1\u5e03"},"\u5e94\u7528\u53d1\u5e03"),(0,l.kt)("admonition",{type:"tip"},(0,l.kt)("ul",{parentName:"admonition"},(0,l.kt)("li",{parentName:"ul"},"\u53d1\u5e03\u5e94\u7528\u7684\u524d\u63d0\uff0c\u81f3\u5c11\u6709\u4e00\u4e2a\u7ec4\u4ef6\u4ed3\u5e93\u3002\u53c2\u89c1",(0,l.kt)("a",{parentName:"li",href:"#%E7%BB%84%E4%BB%B6%E4%BB%93%E5%BA%93%E7%AE%A1%E7%90%86"},(0,l.kt)("strong",{parentName:"a"},"\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406")),"\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u5e94\u7528\u7684\u7ef4\u62a4\u8005\u3001\u62e5\u6709\u8005\u624d\u6709\u53d1\u5e03\u5e94\u7528\u7684\u6743\u9650\u3002"))),(0,l.kt)("p",null,"\u672c\u7ae0\u8282\u4e3b\u8981\u4ecb\u7ecd\u5e94\u7528\u53d1\u5e03\u6d41\u7a0b\uff0c\u64cd\u4f5c\u6b65\u9aa4\u5982\u4e0b\uff1a"),(0,l.kt)("ol",null,(0,l.kt)("li",{parentName:"ol"},"\u767b\u5f55\u4e91\u68af\u4f4e\u7801\u5e73\u53f0\uff0c\u8fdb\u5165",(0,l.kt)("inlineCode",{parentName:"li"},"\u5e94\u7528\u7ba1\u7406"),"\u9875\u9762\uff0c\u627e\u5230\u76ee\u6807\u5e94\u7528\uff0c\u70b9\u51fb",(0,l.kt)("strong",{parentName:"li"},"\u5e94\u7528\u540d\u79f0"),"\u8fdb\u5165\u8be6\u60c5\u9875\u9762\u3002"),(0,l.kt)("li",{parentName:"ol"},"\u53d1\u5e03\u524d\u68c0\u67e5\uff1a\u53d1\u5e03\u5e94\u7528\u65f6\u4e0d\u4f1a\u5305\u542b\u672a\u63d0\u4ea4\u7684\u4fee\u6539\uff0c\u8bf7\u5728",(0,l.kt)("inlineCode",{parentName:"li"},"Git \u9762\u677f"),"\u4e2d\u6309\u9700\u63d0\u4ea4\u4fee\u6539\u3002")),(0,l.kt)("p",null,(0,l.kt)("img",{alt:"overview",src:n(8565).Z,width:"1919",height:"895"})),(0,l.kt)("ol",{start:3},(0,l.kt)("li",{parentName:"ol"},"\u63d0\u4ea4\u5b8c\u6210\u540e\uff0c\u5207\u6362\u9876\u90e8\u5bfc\u822a\u5230",(0,l.kt)("strong",{parentName:"li"},"\u53d1\u5e03\u7ba1\u7406"),"\uff0c\u9ed8\u8ba4\u8fdb\u5165",(0,l.kt)("inlineCode",{parentName:"li"},"\u53d1\u5e03\u8bb0\u5f55"),"\u9875\u9762\uff0c\u70b9\u51fb",(0,l.kt)("strong",{parentName:"li"},"\u53d1\u5e03\u5e94\u7528"),"\u6309\u94ae\uff0c\u914d\u7f6e\u53c2\u6570\u8bf4\u660e\u5982\u4e0b\uff1a")),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u53d1\u5e03\u540d\u79f0\uff1a\u53ea\u8bfb\u5c55\u793a\u5e94\u7528\u540d\u79f0\uff08\u547d\u540d\u7a7a\u95f4\uff09\uff0c\u5176\u4e2d\u5e94\u7528\u540d\u79f0\u5373\u53d1\u5e03\u5230\u7ec4\u4ef6\u4ed3\u5e93\u540e\u7684\u7ec4\u4ef6\u540d\u79f0")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u53d1\u5e03\u57fa\u7ebf\uff1a\u53ef\u9009Branch\uff08\u5373\u5206\u652f\u540d\u79f0\uff09\u3001CommitId\u3002"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"\u9ed8\u8ba4\u9009\u4e2dBranch\uff0c\u5148\u9009\u62e9\u5206\u652f\u540d\u79f0\uff0c\u518d\u7ea7\u8054\u9009\u62e9 CommitId\u3002\u9009\u62e9 CommitId \u65f6\uff0c\u540c\u6b65\u5c55\u793a\u63d0\u4ea4\u5185\u5bb9\u548c\u65f6\u95f4\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u9009\u62e9 CommitId\uff0c\u624b\u52a8\u8f93\u5165 CommitId\u3002"))),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u53d1\u5e03\u81f3\u4ed3\u5e93\uff1a\u9ed8\u8ba4\u586b\u5145\u5217\u8868\u4e2d\u7b2c\u4e00\u4e2a\u4ed3\u5e93\uff0c\u6309\u9700\u9009\u62e9\u3002")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u53d1\u5e03\u7248\u672c\uff1a\u586b\u5199\u7248\u672c\u53f7\uff0c\u4f8b0.0.1\u3002",(0,l.kt)("inlineCode",{parentName:"p"},'\u753150\u4f4d\u5b57\u6bcd\u3001\u6570\u5b57\u3001\u70b9"."\u3001\u4e2d\u5212\u7ebf"-"\u6216\u52a0\u53f7"+" \u7ec4\u6210\uff0c\u4e14\u5fc5\u987b\u4ee5\u6570\u5b57\u5f00\u5934\uff0c\u4ee5\u6570\u5b57\u6216\u5b57\u6bcd\u7ed3\u5c3e'),"\u3002\u4ec5\u652f\u6301 a.b.c \u683c\u5f0f\u3002"))),(0,l.kt)("ol",{start:4},(0,l.kt)("li",{parentName:"ol"},"\u70b9\u51fb",(0,l.kt)("strong",{parentName:"li"},"\u786e\u5b9a"),"\uff0c\u5f00\u59cb\u53d1\u5e03\u3002\u5217\u8868\u4e2d\u5c55\u793a\u6b64\u6761\u53d1\u5e03\u8bb0\u5f55\u3002\u5305\u62ec\u53d1\u5e03\u540d\u79f0\u3001\u53d1\u5e03\u57fa\u7ebf\u3001\u53d1\u5e03\u72b6\u6001\u3001\u53d1\u5e03\u7248\u672c\u3001\u7ec4\u4ef6\u4ed3\u5e93\u7ba1\u7406\u3001\u7ec4\u4ef6\u4ed3\u5e93\u72b6\u6001\u3001\u7ec4\u4ef6\u4ed3\u5e93\u5730\u5740\u3001\u53d1\u5e03\u8005\u3001\u53d1\u5e03\u65f6\u95f4\u3001\u64cd\u4f5c\uff1a\u5220\u9664\u3002")),(0,l.kt)("p",null,(0,l.kt)("img",{alt:"overview",src:n(9871).Z,width:"1901",height:"542"})),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u53d1\u5e03\u540d\u79f0\uff1a\u5e94\u7528\u540d\u79f0\uff08\u547d\u540d\u7a7a\u95f4\u540d\u79f0\uff09\u3002")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u53d1\u5e03\u57fa\u7ebf\uff1a\u5c55\u793a\u5206\u652f\u540d\u79f0\uff08CommitId\uff09\u6216\u8005 CommitId\u3002hover\u5c55\u793a\u8be6\u7ec6\u4fe1\u606f\uff0c\u5305\u62ec\u63d0\u4ea4\u4eba\u3001\u63d0\u4ea4\u65f6\u95f4\u3001\u63d0\u4ea4\u4fe1\u606f\u3002")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u53d1\u5e03\u72b6\u6001\uff1a\u53d1\u5e03\u4e2d\u3001\u53d1\u5e03\u6210\u529f\u3001\u53d1\u5e03\u5931\u8d25\u3002"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"\u53d1\u5e03\u4e2d\uff1a\u5c55\u793a\u53d1\u5e03\u8fdb\u5ea6\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u53d1\u5e03\u6210\u529f\uff1a\u5373\u53ef\u8fdb\u5165 Kubebb ",(0,l.kt)("a",{parentName:"li",href:"/website/docs/user-guid/component_market"},(0,l.kt)("strong",{parentName:"a"},"\u7ec4\u4ef6\u5e02\u573a")),"\uff0c\u67e5\u770b\u5e94\u7528\u6216\u5b89\u88c5\u4f7f\u7528\u3002"),(0,l.kt)("li",{parentName:"ul"},"\u53d1\u5e03\u5931\u8d25\uff1ahover\u53ef\u5c55\u793a\u6d41\u6c34\u7ebfID\u548c\u5931\u8d25\u539f\u56e0\uff0c\u4fbf\u4e8e\u7528\u6237\u5feb\u901f\u5b9a\u4f4d\u95ee\u9898\u3002"))),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u53d1\u5e03\u7248\u672c\uff1a\u672c\u6b21\u53d1\u5e03\u7684\u5e94\u7528\u7248\u672c\u3002")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u7ec4\u4ef6\u4ed3\u5e93\u540d\u79f0\u3001\u7ec4\u4ef6\u4ed3\u5e93\u72b6\u6001\u3001\u7ec4\u4ef6\u4ed3\u5e93\u5730\u5740\uff1a\u672c\u6b21\u53d1\u5e03\u6240\u9009\u4ed3\u5e93\u7684\u4fe1\u606f\u3002")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u53d1\u5e03\u8005\uff1a\u672c\u6b21\u53d1\u5e03\u7684\u53d1\u5e03\u4eba\u5458\u3002")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"\u53d1\u5e03\u65f6\u95f4\uff1a\u9ed8\u8ba4\u964d\u5e8f\u6392\u5217\u3002"))),(0,l.kt)("ol",{start:4},(0,l.kt)("li",{parentName:"ol"},"\u70b9\u51fb",(0,l.kt)("strong",{parentName:"li"},"\u5220\u9664"),"\uff0c\u4ec5\u5220\u9664\u4f4e\u7801\u5e73\u53f0\u4fa7\u7684\u76f8\u5173\u53d1\u5e03\u6570\u636e\uff0c\u4e0d\u5f71\u54cd\u5176\u5728 Kubebb ",(0,l.kt)("inlineCode",{parentName:"li"},"\u7ec4\u4ef6\u5e02\u573a"),"\u7684\u4f7f\u7528\u3002")),(0,l.kt)("admonition",{type:"note"},(0,l.kt)("p",{parentName:"admonition"},"\u540c\u4e00\u7ec4\u4ef6\u4ed3\u5e93\u4e2d\uff0c\u540c\u4e00\u5e94\u7528\u6bcf\u6b21\u53d1\u5e03\u65f6\uff0c\u7248\u672c\u53f7\u4e0d\u80fd\u76f8\u540c\u3002")))}d.isMDXComponent=!0},9871:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/app-publish-2ddf3fc037790e7694e7dba09a4638a5.png"},8565:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/git-commit-aced21892dc6997b555e3c1b13e28df6.png"}}]); \ No newline at end of file diff --git a/assets/js/f1f0d3d7.297b928b.js b/assets/js/f1f0d3d7.297b928b.js deleted file mode 100644 index 165302c6b..000000000 --- a/assets/js/f1f0d3d7.297b928b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9889],{3905:(e,t,i)=>{i.d(t,{Zo:()=>u,kt:()=>m});var n=i(7294);function o(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function r(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function a(e){for(var t=1;t=0||(o[i]=e[i]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i])}return o}var c=n.createContext({}),s=function(e){var t=n.useContext(c),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},u=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},k=n.forwardRef((function(e,t){var i=e.components,o=e.mdxType,r=e.originalType,c=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),p=s(i),k=o,m=p["".concat(c,".").concat(k)]||p[k]||d[k]||r;return i?n.createElement(m,a(a({ref:t},u),{},{components:i})):n.createElement(m,a({ref:t},u))}));function m(e,t){var i=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=i.length,a=new Array(r);a[0]=k;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[p]="string"==typeof e?e:o,a[1]=l;for(var s=2;s{i.r(t),i.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>l,toc:()=>s});var n=i(7462),o=(i(7294),i(3905));const r={sidebar_position:5},a="\u4f7f\u7528 kubelogin \u5de5\u5177",l={unversionedId:"component-market/kubelogin",id:"component-market/kubelogin",title:"\u4f7f\u7528 kubelogin \u5de5\u5177",description:"Here is the steps about how to install kubelogin to integrate with OIDC server for kubectl tool, so you can do authentication with Kubernetes.",source:"@site/docs/component-market/kubelogin.md",sourceDirName:"component-market",slug:"/component-market/kubelogin",permalink:"/website/docs/component-market/kubelogin",draft:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"\u533a\u5757\u94fe - \u8054\u76df\u94fe",permalink:"/website/docs/component-market/blockchain"},next:{title:"\u6700\u65b0\u52a8\u6001",permalink:"/website/docs/user-guid/version"}},c={},s=[{value:"Install kubelogin",id:"install-kubelogin",level:3},{value:"Prepare kubeconfig file",id:"prepare-kubeconfig-file",level:3},{value:"Get id token from cached file",id:"get-id-token-from-cached-file",level:3},{value:"Get id token using username/password",id:"get-id-token-using-usernamepassword",level:3},{value:"Logout",id:"logout",level:3}],u={toc:s},p="wrapper";function d(e){let{components:t,...i}=e;return(0,o.kt)(p,(0,n.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"\u4f7f\u7528-kubelogin-\u5de5\u5177"},"\u4f7f\u7528 kubelogin \u5de5\u5177"),(0,o.kt)("p",null,"Here is the steps about how to install kubelogin to integrate with OIDC server for kubectl tool, so you can do authentication with Kubernetes."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Refer to ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/int128/kubelogin"},"kubelogin")," for details."),(0,o.kt)("li",{parentName:"ul"},"Prerequisite\nInstall u4a-component and it'll provide the account, authentication, authorization and audit funcationality built on Kubernetes.")),(0,o.kt)("h3",{id:"install-kubelogin"},"Install kubelogin"),(0,o.kt)("p",null,"Get the binary here ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/int128/kubelogin/releases"},"download")," and download the one matching your OS."),(0,o.kt)("p",null,"Then you need to put the kubelogin binary on your path under the name kubectl-oidc_login so that the kubectl plugin mechanism can find it when you invoke kubectl oidc-login."),(0,o.kt)("h3",{id:"prepare-kubeconfig-file"},"Prepare kubeconfig file"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Backup your original config file under ~/.kube/config and create a new one.")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"$ cd ~/.kube\n$ cp config config_backup\n$ kubectl config set-credentials oidc \\\n --exec-api-version=client.authentication.k8s.io/v1beta1 \\\n --exec-command=kubectl \\\n --exec-arg=oidc-login \\\n --exec-arg=get-token \\\n --exec-arg=--oidc-extra-scope=email \\\n --exec-arg=--oidc-extra-scope=profile \\\n --exec-arg=--oidc-issuer-url=https://portal.172.22.96.209.nip.io/oidc \\\n --exec-arg=--oidc-client-id=bff-client \\\n --exec-arg=--oidc-client-secret=61324af0-1234-4f61-b110-ef57013267d6 \\\n --exec-arg=--insecure-skip-tls-verify\n")),(0,o.kt)("ol",{start:2},(0,o.kt)("li",{parentName:"ol"},"Point the cluster to kube-oidc-server or k8s-apiserver if oidc is enabled.")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"- cluster:\n certificate-authority-data: ....\n server: https://172.22.96.133 # Update this value\n name: cluster-name\n")),(0,o.kt)("ol",{start:3},(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Add ",(0,o.kt)("inlineCode",{parentName:"p"},"http://localhost:8000")," as a valid redirect URL of your OIDC server, so it can redirect to local server after successful login.")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Switch current context to oidc"))),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"$ kubectl config set-context --current --user=oidc\n")),(0,o.kt)("p",null,"Run ",(0,o.kt)("inlineCode",{parentName:"p"},"kubectl get nodes"),", kubectl executes kubelogin before calling the Kubernetes APIs. Kubelogin automatically opens the browser, and you can log in to the provider."),(0,o.kt)("p",null,"After successful login, you'll get a ",(0,o.kt)("inlineCode",{parentName:"p"},"Authenticated")," response."),(0,o.kt)("ol",{start:5},(0,o.kt)("li",{parentName:"ol"},"If you get ",(0,o.kt)("inlineCode",{parentName:"li"},"Unable to connect to the server: x509: certificate signed by unknown authority")," error after ",(0,o.kt)("inlineCode",{parentName:"li"},"kubectl get nodes"),". Remove certificate-authority-data, and add insecure-skip-tls-verify as true.")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"- cluster:\n # certificate-authority-data: ....\n server: https://172.22.96.133\n insecure-skip-tls-verify: true # Add it here\n name: cluster-name\n")),(0,o.kt)("p",null,"You can also use a valid certificate data, for example:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"export CLUSTER_CA=$(kubectl get secret -n u4a-system oidc-proxy-cert-tls -o jsonpath='{.data.ca\\.crt}')\n# Use the data from CLUSTER_CA and set to certificate-authority-data\n")),(0,o.kt)("p",null,"Then you can run any kubectl using the logged in user, Kubernetes RBAC and audit will take effect for the user."),(0,o.kt)("h3",{id:"get-id-token-from-cached-file"},"Get id token from cached file"),(0,o.kt)("p",null,"The id_token will be cached in ~/.kube/cache/oidc-login/\\",", you can use ",(0,o.kt)("inlineCode",{parentName:"p"},"cat")," to get the content and token from this file. For example:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},'{"id_token":"eyJhbGciOiJSUzI1NiIsImtpZCI6IjBkMzEyM2U1MWIxN2IzZTNlNDYzNjgxZTMzZTFkOTNkM2RiY2IwZDkifQ.eyJpc3MiOiJodHRwczovL3BvcnRhbC4xNzIuMjIuOTYuMjA5Lm5pcC5pby9vaWRjIiwic3ViIjoiQ2dWaFpHMXBiaElHYXpoelkzSmsiLCJhdWQiOiJiZmYtY2xpZW50IiwiZXhwIjoxNjc0MzU3OTU0LCJpYXQiOjE2NzQyNzE1NTQsIm5vbmNlIjoiVHhJVlE4VlFINW9PTGtLeGV1ekk3VWp3VVU0WUYyOEQ1N18xLWVpVWEtVSIsImF0X2hhc2giOiJOamZKZWJ1Ry1uUlVlWDJNY2dfZzVRIiwiY19oYXNoIjoiQWVQdUtsTmN5RjgyTy1xWFFqUzEwdyIsImVtYWlsIjoiYWRtaW5AdGVueGNsb3VkLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlLCJuYW1lIjoiYWRtaW4iLCJwcmVmZXJyZWRfdXNlcm5hbWUiOiJhZG1pbiIsInBob25lIjoiIiwidXNlcmlkIjoiYWRtaW4ifQ.YtmRZbS7-B0s0vVh9myH1FYcWuKoKNNYkPZQ5asbrQE2n8eC7w74n8D7pvM6v44kvBnp27hNOeo06EK4leNR2Inb2UJtd2QBS1L9i4A3V_vm06o4DkvqfyNcbD7-hL6ES0XkzIKimG3WMMJIznvuA71W_88t77U7jC7wvtKbT7k1KZWgOV6VappWlz7uecuBSQahoCku5AO-s25H1O-FbodOYtL8-ju0sqiHrgmbNaV-f6Wuvvk9XkquAe_dztqWCJ0axfUW7u4J-M947mlR1JlWwbhm-nQXgvugyMVh3FjFOjwi7jR3BA3Me-iuS_XPNSWx-DB0dfsCfErCJ9DvBA"}\n')),(0,o.kt)("h3",{id:"get-id-token-using-usernamepassword"},"Get id token using username/password"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Enable passwordConnector in the oidc-server configuration")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},"# kubectl edit cm oidc-server -n u4a-system\n oauth2:\n # Enable this one\n passwordConnector: k8scrd\n skipApprovalScreen: true\n")),(0,o.kt)("ol",{start:2},(0,o.kt)("li",{parentName:"ol"},"Get id token using kubelogin or curl")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"kubelogin")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},'kubelogin get-token --oidc-issuer-url=https://portal.172.22.96.209.nip.io/oidc --oidc-client-id=bff-client --oidc-client-secret=61324af0-1234-4f61-b110-ef57013267d6 --insecure-skip-tls-verify --grant-type=password --username=admin --password=admiN\\$123\n\n# here is the response, get the token from the json\n{"kind":"ExecCredential","apiVersion":"client.authentication.k8s.io/v1beta1","spec":{"interactive":false},"status":{"expirationTimestamp":"2023-02-11T04:37:32Z","token":"eyJhbGciOiJSUzI1NiIsImtpZCI6ImY2ZjFjMjFkNzFhOGEyYmU3ZTg2YjQyYWIwOTYwY2MxNzU3NjdiM2MifQ.eyJpc3MiOiJodHRwczovL3BvcnRhbC4xNzIuMjIuOTYuMjA5Lm5pcC5pby9vaWRjIiwic3ViIjoiQ2dWaFpHMXBiaElHYXpoelkzSmsiLCJhdWQiOiJiZmYtY2xpZW50IiwiZXhwIjoxNjc2MDkwMjUyLCJpYXQiOjE2NzYwMDM4NTIsImF0X2hhc2giOiJyLWtsUnBQcEd3U0I5TFQyelVQSWtRIiwicGhvbmUiOiIifQ.tFOmGN1w79I_s5pWZZK4zEEHwCyuJRwkNtacmxVcCY-Jms-JOzXUJTxnNm8XzIBC3cZqt5U6oNXMuk68MHq0v3g2tQKJeAwV1aojJrIIp5QHefXMUjl_hTaFe1tRgwsvZqBWhExLi1yaTSUfjmP_SZEb23A0R_AWvc7ClO7sbuKQlkPG_gi2TPCBOeTx0UmlQ14w6U3dIJhR57hXfttdSr2nRqKma8bp_jAiUiWaKLSWSyc3tQsxWl7LeAAbRM3URx-3winVIEPEpUgwIBXnrr-ba9BZwZoD5NGytOGw4xA80eGDmmMIG8U2QarJKsZErpzS7EWbiPBLgS2_Wg1eBA"}}\n')),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"curl")),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre"},'curl -k -XPOST https://portal.172.22.96.209.nip.io/oidc/token -H "Authorization: Basic " -H "Content-Type: application/x-www-form-urlencoded" --data \'grant_type=password&password=password&scope=openid&username=username\'\n\n# here is the response, and get id_token from the json\n{"access_token":"eyJhbGciOiJSUzI1NiIsImtpZCI6ImY2ZjFjMjFkNzFhOGEyYmU3ZTg2YjQyYWIwOTYwY2MxNzU3NjdiM2MifQ.eyJpc3MiOiJodHRwczovL3BvcnRhbC4xNzIuMjIuOTYuMjA5Lm5pcC5pby9vaWRjIiwic3ViIjoiQ2dWaFpHMXBiaElHYXpoelkzSmsiLCJhdWQiOiJiZmYtY2xpZW50IiwiZXhwIjoxNjc2MDkyOTk0LCJpYXQiOjE2NzYwMDY1OTQsImF0X2hhc2giOiJtM2xsQWprUXdlQnhJbUJlQkgxRG1RIiwicGhvbmUiOiIifQ.iel5l_mzlVf2LjbMqzqXb3sqb7L195a-fY4Aaon2_CVn1lBMzOf2qDYbtVF3KhGHxNlaKRxig63uCDfyts84BMD5-Uaz_x4_mq5QaMVYVYEUw9NWsLP-jQ0bTSZE7MZKlxz_a3AGW_fXwW0Y02dqemugBfC3IagBhroYI2PSTKcNCCQz2aao-ZSQ5-rysKSyo0VPDtcY_K8ikpDChLM9GhUKzbdIvctO6mGBOOKHRkiCAbRegOCFhJ6-0O4k6b-m3rXyJkQAIBfesOPIAFxhQQhg3y9wDEVxbBTZ99fwfvfIuSxN_vsITKCsqpRr7t-30jqReIKsYktyzZ15jiJhKg","token_type":"bearer","expires_in":86399,"id_token":"eyJhbGciOiJSUzI1NiIsImtpZCI6ImY2ZjFjMjFkNzFhOGEyYmU3ZTg2YjQyYWIwOTYwY2MxNzU3NjdiM2MifQ.eyJpc3MiOiJodHRwczovL3BvcnRhbC4xNzIuMjIuOTYuMjA5Lm5pcC5pby9vaWRjIiwic3ViIjoiQ2dWaFpHMXBiaElHYXpoelkzSmsiLCJhdWQiOiJiZmYtY2xpZW50IiwiZXhwIjoxNjc2MDkyOTk0LCJpYXQiOjE2NzYwMDY1OTQsImF0X2hhc2giOiJRT3NNWGdSeDRYaUJJTVZwSElXeUlRIiwicGhvbmUiOiIifQ.ZDU7AouftfpLAs2SDE3Kb86ggVyDEwrgA3jtUxitKUQwKqosjWiaEEGc3w824FAC3eDZhFr1w5uXT6R30O2s0DPzPb0nesDN8wa2ZscU9ESjZrKAAgpgM7uE1vU41mi7GfdZEUHabx83XFvu69KvmA9OKnqaSdyi3-aPYHyBP5GfNYoQ-mteCBsAbRF8l6fe1VREIYV3sQrBC8b9s1Ony4F8YFWgFE4G_1gxV-0qz8IxgzhLGUgehuwsHTUjMLvyGgTiFrFvrPsftEuEGtOQbKswngWQGlYWSsUIWb79Fdk_-wD08fyM9YUGJyb0Bg_HO2M95CFsSASB4HDO4QHOXw"}\n')),(0,o.kt)("h3",{id:"logout"},"Logout"),(0,o.kt)("p",null,"You can remove the local cache files under ",(0,o.kt)("inlineCode",{parentName:"p"},"~/.kube/cache/oidc-login/")," to logout current user."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f345e2d0.7d7c7b04.js b/assets/js/f345e2d0.7d7c7b04.js deleted file mode 100644 index ca969a0c3..000000000 --- a/assets/js/f345e2d0.7d7c7b04.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7527],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>b});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function p(e){for(var n=1;n=0||(r[t]=e[t]);return r}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var s=a.createContext({}),l=function(e){var n=a.useContext(s),t=n;return e&&(t="function"==typeof e?e(n):p(p({},n),e)),t},c=function(e){var n=l(e.components);return a.createElement(s.Provider,{value:n},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,c=i(e,["components","mdxType","originalType","parentName"]),m=l(t),d=r,b=m["".concat(s,".").concat(d)]||m[d]||u[d]||o;return t?a.createElement(b,p(p({ref:n},c),{},{components:t})):a.createElement(b,p({ref:n},c))}));function b(e,n){var t=arguments,r=n&&n.mdxType;if("string"==typeof e||r){var o=t.length,p=new Array(o);p[0]=d;var i={};for(var s in n)hasOwnProperty.call(n,s)&&(i[s]=n[s]);i.originalType=e,i[m]="string"==typeof e?e:r,p[1]=i;for(var l=2;l{t.r(n),t.d(n,{assets:()=>s,contentTitle:()=>p,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>l});var a=t(7462),r=(t(7294),t(3905));const o={sidebar_position:3},p="\u7ec4\u4ef6\u8ba2\u9605",i={unversionedId:"core/concepts/subscription",id:"core/concepts/subscription",title:"\u7ec4\u4ef6\u8ba2\u9605",description:"\u521b\u5efa\u4e00\u4e2a\u8ba2\u9605\uff0c\u8868\u793a\u7528\u6237\u5c06\u8ffd\u8e2a\u4e00\u4e2a\u7ec4\u4ef6\uff08Component\uff09\u5728 \u4ed3\u5e93\uff08Repository\uff09\u4e2d\u7684\u66f4\u65b0\uff0c\u5f53\u7ec4\u4ef6\u66f4\u65b0\u65f6\uff0c\u8be5\u7ec4\u4ef6\u4f1a\u6839\u636e\u8ba2\u9605\u4e2d\u7684\u914d\u7f6e\u81ea\u52a8\u6216\u5f85\u6279\u51c6\u540e\u5b89\u88c5\u5230\u96c6\u7fa4\u4e2d\u3002",source:"@site/docs/core/concepts/subscription.md",sourceDirName:"core/concepts",slug:"/core/concepts/subscription",permalink:"/website/docs/core/concepts/subscription",draft:!1,tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"\u7ec4\u4ef6\u90e8\u7f72",permalink:"/website/docs/core/concepts/componentplan"},next:{title:"\u6269\u5c55\u8d44\u6e90(\u5e95\u5ea7)",permalink:"/website/docs/core/concepts/buildingbase_resources"}},s={},l=[{value:"\u4f7f\u7528",id:"\u4f7f\u7528",level:2},{value:"CRD \u5b9a\u4e49\u8bf4\u660e",id:"crd-\u5b9a\u4e49\u8bf4\u660e",level:2},{value:"\u5de5\u4f5c\u539f\u7406",id:"\u5de5\u4f5c\u539f\u7406",level:2}],c={toc:l},m="wrapper";function u(e){let{components:n,...t}=e;return(0,r.kt)(m,(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"\u7ec4\u4ef6\u8ba2\u9605"},"\u7ec4\u4ef6\u8ba2\u9605"),(0,r.kt)("p",null,"\u521b\u5efa\u4e00\u4e2a\u8ba2\u9605\uff0c\u8868\u793a\u7528\u6237\u5c06\u8ffd\u8e2a\u4e00\u4e2a\u7ec4\u4ef6\uff08Component\uff09\u5728 \u4ed3\u5e93\uff08Repository\uff09\u4e2d\u7684\u66f4\u65b0\uff0c\u5f53\u7ec4\u4ef6\u66f4\u65b0\u65f6\uff0c\u8be5\u7ec4\u4ef6\u4f1a\u6839\u636e\u8ba2\u9605\u4e2d\u7684\u914d\u7f6e\u81ea\u52a8\u6216\u5f85\u6279\u51c6\u540e\u5b89\u88c5\u5230\u96c6\u7fa4\u4e2d\u3002"),(0,r.kt)("h2",{id:"\u4f7f\u7528"},"\u4f7f\u7528"),(0,r.kt)("p",null,"\u4e0b\u9762\u662f\u4e00\u4e2a\u8ba2\u9605\u7684\u793a\u4f8b\uff1a"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: Subscription\nmetadata:\n name: wordpress-sample\n namespace: kubebb-system\nspec:\n component:\n name: repository-bitnami-sample.wordpress\n namespace: kubebb-system\n repository:\n name: repository-bitnami-sample\n namespace: kubebb-system\n componentPlanInstallMethod: auto\n name: my-wordpress\n#status:\n# conditions:\n# - lastTransitionTime: "2023-06-07T13:32:26Z"\n# reason: ReconcileSuccess\n# status: "True"\n# type: SourceSynced\n# - lastTransitionTime: "2023-06-07T13:34:35Z"\n# reason: Available\n# status: "True"\n# type: Ready\n# - lastTransitionTime: "2023-06-07T13:34:34Z"\n# reason: ReconcileSuccess\n# status: "True"\n# type: PlanSynced\n# installed:\n# - componentPlan:\n# name: sub-wordpress-sample-16.1.13\n# namespace: kubebb-system\n# installedTime: "2023-06-07T13:34:34Z"\n# installedVersion:\n# appVersion: 6.2.2\n# createdAt: "2023-06-06T19:08:58Z"\n# deprecated: false\n# digest: 47096ed3f0a385e5830e90c75f443b7be107d7fa6df6aa869e7deb60b6cb6f8f\n# updatedAt: "2023-06-07T13:34:31Z"\n# version: 16.1.13\n# repositoryHealth:\n# healthy: true\n# lastUpdated: "2023-06-07T13:34:35Z"\n# repository:\n# name: repository-bitnami-sample\n# namespace: kubebb-system\n')),(0,r.kt)("p",null,"\u4e0a\u8ff0\u8ba2\u9605\u5b9a\u4e49\u4e86\u76d1\u63a7\u7684\u7ec4\u4ef6\u662f ",(0,r.kt)("inlineCode",{parentName:"p"},"kubebb-system")," \u547d\u540d\u7a7a\u95f4\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"repository-bitnami-sample.wordpress"),"\u3002\n\u5f53\u7ec4\u4ef6\u6709\u65b0\u7248\u672c\u53d1\u5e03\u65f6\uff0c\u5b89\u88c5\u65b9\u5f0f\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"auto")," \uff0c\u5373\u81ea\u52a8\u5b89\u88c5\u3002\n\u8be5\u7ec4\u4ef6\u4f1a\u88ab\u5b89\u88c5\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"my-wordpress")," \u3002\n\u67e5\u770b\u8be5\u8ba2\u9605\u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"status")," \u53ef\u4ee5\u770b\u5230\u8be5\u8ba2\u9605\u4f1a\u663e\u793a\u7531\u8be5\u8ba2\u9605\u521b\u5efa\u7684\u7ec4\u4ef6\u5b89\u88c5\u8ba1\u5212\uff08ComponentPlan\uff09\uff0c\u4ee5\u53ca\u8be5\u8ba2\u9605\u5bf9\u5e94\u7684\u7ec4\u4ef6\u7684\u4ed3\u5e93\u7684\u5065\u5eb7\u72b6\u6001\u3002"),(0,r.kt)("h2",{id:"crd-\u5b9a\u4e49\u8bf4\u660e"},"CRD \u5b9a\u4e49\u8bf4\u660e"),(0,r.kt)("p",null,"CRD \u7684\u4ee3\u7801\u5b9a\u4e49\u4f4d\u4e8e ",(0,r.kt)("a",{parentName:"p",href:"https://github.com/kubebb/core/blob/main/api/v1alpha1/subscription_types.go"},"subscription_types.go"),"\u3002\u63a5\u4e0b\u6765\u4f1a\u8be6\u7ec6\u4ecb\u7ecd\u6bcf\u4e2a\u5b57\u6bb5\u7684\u542b\u4e49\u53ca\u5176\u4f5c\u7528\u3002"),(0,r.kt)("admonition",{type:"tip"},(0,r.kt)("p",{parentName:"admonition"},"\u8bf4\u660e \u5bf9\u4e8e\u4e0b\u9762\u7684 yaml\uff0c\u6211\u4eec\u60f3\u8981\u8bbf\u95ee bar \u5b57\u6bb5\uff0c\u4e66\u5199\u683c\u5f0f\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"spec.foo.bar")),(0,r.kt)("pre",{parentName:"admonition"},(0,r.kt)("code",{parentName:"pre",className:"language-yaml"},"spec:\n foo:\n bar: xx\n"))),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"spec.componet"),"\n\u8be5\u5b57\u6bb5\u7528\u6765\u6307\u660e\u8981\u76d1\u63a7\u7684\u7ec4\u4ef6\u5b9e\u4f8b\uff0c\u4e00\u822c\u4f7f\u7528 ",(0,r.kt)("inlineCode",{parentName:"p"},"namespace")," \u548c ",(0,r.kt)("inlineCode",{parentName:"p"},"name")," \u6765\u552f\u4e00\u786e\u5b9a")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"spec.repository")," ",(0,r.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5"),"\n\u8be5\u5b57\u6bb5\u7528\u6765\u6307\u660e\u8981\u76d1\u63a7\u7684\u7ec4\u4ef6\u6240\u5728\u7684\u4ed3\u5e93\u5b9e\u4f8b\uff0c\u4e00\u822c\u4f7f\u7528 ",(0,r.kt)("inlineCode",{parentName:"p"},"namespace")," \u548c ",(0,r.kt)("inlineCode",{parentName:"p"},"name")," \u6765\u552f\u4e00\u786e\u5b9a\uff0c\u4e00\u822c\u7531\u63a7\u5236\u5668\u81ea\u52a8\u586b\u5145\uff0c\u4e0d\u9700\u8981\u7528\u6237\u586b\u5199\u3002")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"spec.componentPlanInstallMethod")," ",(0,r.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5"),"\n\u7ec4\u4ef6\u5b89\u88c5\u8ba1\u5212\u7684\u5b89\u88c5\u65b9\u5f0f\uff0c\u9ed8\u8ba4\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"auto"),"\uff0c\u53ef\u9009\u9879\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"auto")," \u6216 ",(0,r.kt)("inlineCode",{parentName:"p"},"manual"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"spec.schedule")," ",(0,r.kt)("em",{parentName:"p"},"\u53ef\u9009\u5b57\u6bb5"),"\n\u7ec4\u4ef6\u5b89\u88c5\u8ba1\u5212\u7684\u5b89\u88c5\u65f6\u95f4\uff0c\u9ed8\u8ba4\u4e3a\u7a7a\uff0c\u53ea\u6709 ",(0,r.kt)("inlineCode",{parentName:"p"},"spec.componentPlanInstallMethod")," \u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"auto"),"\uff0c\u4e14\u4e0a\u6e38\u53d1\u5e03\u4e86\u65b0\u7248\u672c\u65f6\u624d\u6709\u751f\u6548\uff0c",(0,r.kt)("a",{parentName:"p",href:"https://en.wikipedia.org/wiki/Cron"},"Cron \u683c\u5f0f"),"\uff0c\u4f8b\u5982 ",(0,r.kt)("inlineCode",{parentName:"p"},"45 20 * * *"),"\uff0c\u4ee3\u8868\u6bcf\u5929 20:45 \u540e\u518d\u8fdb\u884c\u65b0\u7248\u672c\u5b89\u88c5\u3002"),(0,r.kt)("pre",{parentName:"li"},(0,r.kt)("code",{parentName:"pre"},"# \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u5206 (0 - 59)\n# \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u65f6 (0 - 23)\n# \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u6708\u7684\u7b2c\u51e0\u5929 (1 - 31)\n# \u2502 \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u6708\u4efd (1 - 12)\n# \u2502 \u2502 \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 \u5468\u7684\u7b2c\u51e0\u5929 (0 - 6) (\u5468\u65e5\u5230\u5468\u516d)\n# \u2502 \u2502 \u2502 \u2502 \u2502 \n# \u2502 \u2502 \u2502 \u2502 \u2502\n# \u2502 \u2502 \u2502 \u2502 \u2502\n# * * * * * \n"))),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("p",{parentName:"li"},(0,r.kt)("inlineCode",{parentName:"p"},"spec.\u5176\u4ed6"),"\n\u8ba2\u9605\u4e2d\u5b8c\u6574\u7684\u5305\u542b\u4e86\u7ec4\u4ef6\u5b89\u88c5\u8ba1\u5212\u4e2d\u7684\u81ea\u5b9a\u4e49\u914d\u7f6e\u5b57\u6bb5\u3002\u8be6\u7ec6\u5185\u5bb9\u89c1\u7ec4\u4ef6\u5b89\u88c5\u8ba1\u5212\u7684\u6587\u6863\u3002"))),(0,r.kt)("h2",{id:"\u5de5\u4f5c\u539f\u7406"},"\u5de5\u4f5c\u539f\u7406"),(0,r.kt)("p",null,"\u8ba2\u9605\u4ee5 Kubernetes Operator \u65b9\u5f0f\u5b9e\u73b0\u3002\u5f53\u8ba2\u9605\u63a7\u5236\u5668\u76d1\u89c6\u53d1\u73b0\u96c6\u7fa4\u4e2d\u8ba2\u9605\u5bf9\u5e94\u7684\u7ec4\u4ef6\u521b\u5efa\u6216\u66f4\u65b0\u65f6\uff0c\u5224\u65ad\u8ba2\u9605\u672a\u5904\u7406\u8be5\u66f4\u65b0\u4e8b\u4ef6\u65f6\uff0c\u7528\u8ba2\u9605\u4e2d\u7684\u7ec4\u4ef6\u5b89\u88c5\u8ba1\u5212\u914d\u7f6e\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a ",(0,r.kt)("inlineCode",{parentName:"p"},"sub-<\u8ba2\u9605\u540d>-<\u5b89\u88c5\u7248\u672c>")," \u7684 ",(0,r.kt)("inlineCode",{parentName:"p"},"ComponentPlan"),"\uff0c\u89e6\u53d1\u540e\u7eed\u7684\u7ec4\u4ef6\u5b89\u88c5\u6b65\u9aa4\u3002"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f3fd7201.9986def3.js b/assets/js/f3fd7201.9986def3.js new file mode 100644 index 000000000..a6fa0431f --- /dev/null +++ b/assets/js/f3fd7201.9986def3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1624],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>f});var o=t(7294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);n&&(o=o.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,o)}return t}function l(e){for(var n=1;n=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var p=o.createContext({}),c=function(e){var n=o.useContext(p),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},s=function(e){var n=c(e.components);return o.createElement(p.Provider,{value:n},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return o.createElement(o.Fragment,{},n)}},g=o.forwardRef((function(e,n){var t=e.components,a=e.mdxType,r=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),m=c(t),g=a,f=m["".concat(p,".").concat(g)]||m[g]||u[g]||r;return t?o.createElement(f,l(l({ref:n},s),{},{components:t})):o.createElement(f,l({ref:n},s))}));function f(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var r=t.length,l=new Array(r);l[0]=g;var i={};for(var p in n)hasOwnProperty.call(n,p)&&(i[p]=n[p]);i.originalType=e,i[m]="string"==typeof e?e:a,l[1]=i;for(var c=2;c{t.r(n),t.d(n,{assets:()=>p,contentTitle:()=>l,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>c});var o=t(7462),a=(t(7294),t(3905));const r={sidebar_position:1},l="\u81ea\u5b9a\u4e49\u95e8\u6237",i={unversionedId:"develop-guid/building-base/configuration/customize-portal",id:"develop-guid/building-base/configuration/customize-portal",title:"\u81ea\u5b9a\u4e49\u95e8\u6237",description:"\u81ea\u5b9a\u4e49 logo",source:"@site/docs/develop-guid/building-base/configuration/customize-portal.md",sourceDirName:"develop-guid/building-base/configuration",slug:"/develop-guid/building-base/configuration/customize-portal",permalink:"/website/docs/develop-guid/building-base/configuration/customize-portal",draft:!1,tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"\u81ea\u5b9a\u4e49\u914d\u7f6e",permalink:"/website/docs/category/\u81ea\u5b9a\u4e49\u914d\u7f6e"},next:{title:"\u81ea\u5b9a\u4e49\u83dc\u5355",permalink:"/website/docs/develop-guid/building-base/configuration/customize-menu"}},p={},c=[{value:"\u81ea\u5b9a\u4e49 logo",id:"\u81ea\u5b9a\u4e49-logo",level:2},{value:"\u81ea\u5b9a\u4e49\u4e3b\u8272\u8c03",id:"\u81ea\u5b9a\u4e49\u4e3b\u8272\u8c03",level:2}],s={toc:c},m="wrapper";function u(e){let{components:n,...t}=e;return(0,a.kt)(m,(0,o.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u81ea\u5b9a\u4e49\u95e8\u6237"},"\u81ea\u5b9a\u4e49\u95e8\u6237"),(0,a.kt)("h2",{id:"\u81ea\u5b9a\u4e49-logo"},"\u81ea\u5b9a\u4e49 logo"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"\u51c6\u5907\u597d\u9700\u8981\u66ff\u6362\u7684 logo\uff0c\u6bd4\u5982 logo-white.png\u3001favicon.png\uff0c\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u521b\u5efa\u5bf9\u5e94\u7684 configmap")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre"},"kubectl create configmap portal-logos -n u4a-system \\\n --from-file=logo-white.png=./logo-white.png \\\n --from-file=favicon.ico=./favicon.png\n")),(0,a.kt)("ol",{start:2},(0,a.kt)("li",{parentName:"ol"},"\u4fee\u6539 bff-server \u7684 deployment \u5c06 configmap \u6302\u8f7d\u8fdb\u53bb")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: bff-server\n namespace: u4a-system\nspec:\n template:\n spec:\n volumes:\n - hostPath:\n path: /etc/localtime\n type: ""\n name: time-localtime\n # \u5b58\u50a8\u5377\u4e2d\u589e\u52a0\u521a\u521a\u521b\u5efa\u7684 configmap portal-logos\n - configMap:\n name: portal-logos\n name: logos\n containers:\n volumeMounts:\n - mountPath: /etc/localtime\n name: time-localtime\n readOnly: true\n # \u5c06\u4e0a\u9762\u7684\u5b58\u50a8\u5377 logos \u6302\u8f7d\u5230\u5bf9\u5e94 logo \u76ee\u5f55\n - mountPath: /usr/src/app/public/profile/img\n name: logos\n')),(0,a.kt)("h2",{id:"\u81ea\u5b9a\u4e49\u4e3b\u8272\u8c03"},"\u81ea\u5b9a\u4e49\u4e3b\u8272\u8c03"),(0,a.kt)("p",null,"\u901a\u8fc7\u521b\u5efa portal-global-configs \u7684 configmap\uff0c\u5373\u53ef\u81ea\u5b9a\u4e49\u95e8\u6237\u4e3b\u8272\u8c03\uff0c\u793a\u610f\u5982\u4e0b\uff1a"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: v1\nkind: ConfigMap\nmetadata:\n name: portal-global-configs\n namespace: u4a-system\ndata:\n global-configs: |\n {"theme": {"primaryColor": "#008F35"}}\n')),(0,a.kt)("p",null,"\u521b\u5efa configMap\uff0c\u5237\u65b0\u95e8\u6237\u540e\u5373\u53ef\u751f\u6548"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl create cm portal-global-configs -n u4a-system\n")),(0,a.kt)("ol",{start:2},(0,a.kt)("li",{parentName:"ol"},"\u4fee\u6539 bff-server \u7684 deployment \u5c06 configmap \u6302\u8f7d\u8fdb\u53bb")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'apiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: bff-server\n namespace: u4a-system\nspec:\n template:\n spec:\n volumes:\n - hostPath:\n path: /etc/localtime\n type: ""\n name: time-localtime\n # \u5b58\u50a8\u5377\u4e2d\u589e\u52a0\u521a\u521a\u521b\u5efa\u7684 configmap portal-global-configs\n - configMap:\n name: portal-global-configs\n name: portal-global-configs\n containers:\n volumeMounts:\n - mountPath: /etc/localtime\n name: time-localtime\n readOnly: true\n # \u5c06\u4e0a\u9762\u7684\u5b58\u50a8\u5377 logos \u6302\u8f7d\u5230\u5bf9\u5e94 logo \u76ee\u5f55\uff1a\n - mountPath: /usr/src/app/configs\n name: portal-global-configs\n')))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f665e660.0cff09bd.js b/assets/js/f665e660.0cff09bd.js deleted file mode 100644 index 6102565e1..000000000 --- a/assets/js/f665e660.0cff09bd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2437],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>b});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),p=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),u=p(n),d=a,b=u["".concat(c,".").concat(d)]||u[d]||m[d]||o;return n?r.createElement(b,i(i({ref:t},s),{},{components:n})):r.createElement(b,i({ref:t},s))}));function b(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l[u]="string"==typeof e?e:a,i[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>l,toc:()=>p});var r=n(7462),a=(n(7294),n(3905));const o={sidebar_position:5},i="\u7ec4\u4ef6\u5f00\u53d1",l={unversionedId:"core/userguide/component-dev",id:"core/userguide/component-dev",title:"\u7ec4\u4ef6\u5f00\u53d1",description:"Kubebb\u7684\u7ec4\u4ef6\u5b89\u88c5\u5305\u91c7\u7528Helm\u6a21\u5f0f\uff0c\u9075\u5faaHelm charts\u5f00\u53d1\u89c4\u5219\u3002\u9664\u6b64\u4e4b\u5916\uff0c\u6211\u4eec\u989d\u5916\u5b9a\u4e49\u6dfb\u52a0\u4e86\u4e00\u4e9b\u7279\u6b8a\u5b57\u6bb5\u6765\u6ee1\u8db3\u4e00\u4e9b\u7ec4\u4ef6\u7684\u7279\u6b8a\u6027\u3002",source:"@site/docs/core/userguide/component-dev.md",sourceDirName:"core/userguide",slug:"/core/userguide/component-dev",permalink:"/website/docs/core/userguide/component-dev",draft:!1,tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"\u4ece Helm \u547d\u4ee4\u8fc1\u79fb",permalink:"/website/docs/core/userguide/helmtofuture"},next:{title:"\u7ec4\u4ef6\u8bc4\u6d4b",permalink:"/website/docs/core/rating"}},c={},p=[{value:"\u7ec4\u4ef6\u7c7b\u578b",id:"\u7ec4\u4ef6\u7c7b\u578b",level:2},{value:"\u901a\u7528\u914d\u7f6e",id:"\u901a\u7528\u914d\u7f6e",level:2},{value:"\u7ec4\u4ef6\u9ad8\u7ea7\u914d\u7f6e",id:"\u7ec4\u4ef6\u9ad8\u7ea7\u914d\u7f6e",level:2},{value:"Chart.yaml",id:"chartyaml",level:3}],s={toc:p},u="wrapper";function m(e){let{components:t,...n}=e;return(0,a.kt)(u,(0,r.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"\u7ec4\u4ef6\u5f00\u53d1"},"\u7ec4\u4ef6\u5f00\u53d1"),(0,a.kt)("p",null,"Kubebb\u7684\u7ec4\u4ef6\u5b89\u88c5\u5305\u91c7\u7528",(0,a.kt)("inlineCode",{parentName:"p"},"Helm"),"\u6a21\u5f0f\uff0c\u9075\u5faaHelm charts\u5f00\u53d1\u89c4\u5219\u3002\u9664\u6b64\u4e4b\u5916\uff0c\u6211\u4eec\u989d\u5916\u5b9a\u4e49\u6dfb\u52a0\u4e86\u4e00\u4e9b\u7279\u6b8a\u5b57\u6bb5\u6765\u6ee1\u8db3\u4e00\u4e9b\u7ec4\u4ef6\u7684\u7279\u6b8a\u6027\u3002"),(0,a.kt)("h2",{id:"\u7ec4\u4ef6\u7c7b\u578b"},"\u7ec4\u4ef6\u7c7b\u578b"),(0,a.kt)("p",null,"\u4ece\u529f\u80fd\u89d2\u5ea6\uff0c\u6211\u4eec\u5c06\u7ec4\u4ef6\u5212\u5206\u4e3a\u4e24\u7c7b:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u7cfb\u7edf\u7ec4\u4ef6,\u5982U4A\u3001TMF\u7b49,\u7ec4\u4ef6\u7684\u8fd0\u884c\u9700\u8981\u7cfb\u7edf\u7ba1\u7406\u6743\u9650")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("p",{parentName:"li"},"\u666e\u901a\u529f\u80fd\u7ec4\u4ef6\uff0c\u5982minio\u3001weaviate\u7b49\uff0c\u7ec4\u4ef6\u53ef\u8fd0\u884c\u5728\u4efb\u4f55",(0,a.kt)("inlineCode",{parentName:"p"},"\u79df\u6237-\u9879\u76ee"),"\u4e2d\uff0c\u6ca1\u6709\u7279\u6b8a\u9650\u5236"))),(0,a.kt)("h2",{id:"\u901a\u7528\u914d\u7f6e"},"\u901a\u7528\u914d\u7f6e"),(0,a.kt)("p",null,"\u53c2\u8003",(0,a.kt)("a",{parentName:"p",href:"https://helm.sh/docs/"},"Helm\u5b98\u65b9\u6587\u6863")),(0,a.kt)("h2",{id:"\u7ec4\u4ef6\u9ad8\u7ea7\u914d\u7f6e"},"\u7ec4\u4ef6\u9ad8\u7ea7\u914d\u7f6e"),(0,a.kt)("p",null,"\u4e3a\u652f\u6301\u4e0d\u540c\u7ec4\u4ef6\u5bf9\u5b89\u88c5\u4f4d\u7f6e\u3001\u6743\u9650\u7684\u53ef\u63a7\uff0c\u7279\u6b64\u989d\u5916\u7ea6\u5b9a\u4e86\u591a\u4e2a\u914d\u7f6e\u5b57\u6bb5"),(0,a.kt)("h3",{id:"chartyaml"},"Chart.yaml"),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"Chart.yaml"),"\u4e2d\u5305\u542b\u7ec4\u4ef6\u7684\u6838\u5fc3\u5b9a\u4e49\u3001\u7248\u672c\u3001\u7ef4\u62a4\u8005\u7b49\u4fe1\u606f\uff0c\u5c5e\u4e8e",(0,a.kt)("inlineCode",{parentName:"p"},"Helm"),"\u9884\u5b9a\u4e49\u7684\u5185\u5bb9\u3002\u4e3a\u4e86\u652f\u6301\u989d\u5916\u7684\u7279\u6b8a\u9700\u6c42\uff0c\u6211\u4eec\u51b3\u5b9a\u901a\u8fc7",(0,a.kt)("inlineCode",{parentName:"p"},"annotations"),"\u6765\u81ea\u7531\u5b9a\u4e49\u3002\u5982\u4e0b\u6240\u793a:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'annotations:\n core.kubebb.k8s.com.cn/displayname: "\u5185\u6838"\n core.kubebb.k8s.com.cn/restricted-tenants: "system-tenant"\n core.kubebb.k8s.com.cn/restricted-namespaces: "msa-system"\n')),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"core.kubebb.k8s.com.cn/displayname"),": \u7528\u4e8e\u586b\u5145\u7ec4\u4ef6\u7684\u5c55\u793a\u540d\uff0c\u652f\u6301\u4e2d\u82f1\u6587"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"core.kubebb.k8s.com.cn/restrict-tenants"),": \u7528\u4e8e\u8bbe\u7f6e\u7ec4\u4ef6\u5b89\u88c5\u4f4d\u7f6e\u7684\u9650\u5236\u79df\u6237\uff0c\u591a\u4e2a\u79df\u6237\u9700\u8981\u901a\u8fc7",(0,a.kt)("inlineCode",{parentName:"li"},","),"\u9694\u5f00"),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"ore.kubebb.k8s.com.cn/restricted-namespaces"),": \u7528\u4e8e\u8bbe\u7f6e\u7ec4\u4ef6\u5b89\u88c5\u4f4d\u7f6e\u7684\u9650\u5236\u9879\u76ee/\u547d\u540d\u7a7a\u95f4\uff0c\u591a\u4e2a\u547d\u540d\u7a7a\u95f4\u901a\u8fc7",(0,a.kt)("inlineCode",{parentName:"li"},","),"\u9694\u5f00")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/feed9613.b3382d26.js b/assets/js/feed9613.b3382d26.js new file mode 100644 index 000000000..5e6c4d25d --- /dev/null +++ b/assets/js/feed9613.b3382d26.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1224],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>d});var a=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function l(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function p(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var o=a.createContext({}),k=function(e){var n=a.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):p(p({},n),e)),t},s=function(e){var n=k(e.components);return a.createElement(o.Provider,{value:n},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},b=a.forwardRef((function(e,n){var t=e.components,i=e.mdxType,l=e.originalType,o=e.parentName,s=r(e,["components","mdxType","originalType","parentName"]),m=k(t),b=i,d=m["".concat(o,".").concat(b)]||m[b]||u[b]||l;return t?a.createElement(d,p(p({ref:n},s),{},{components:t})):a.createElement(d,p({ref:n},s))}));function d(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var l=t.length,p=new Array(l);p[0]=b;var r={};for(var o in n)hasOwnProperty.call(n,o)&&(r[o]=n[o]);r.originalType=e,r[m]="string"==typeof e?e:i,p[1]=r;for(var k=2;k{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>p,default:()=>u,frontMatter:()=>l,metadata:()=>r,toc:()=>k});var a=t(7462),i=(t(7294),t(3905));const l={sidebar_position:6},p="\u7ec4\u4ef6\u8bc4\u6d4b",r={unversionedId:"develop-guid/core/concepts/rating",id:"develop-guid/core/concepts/rating",title:"\u7ec4\u4ef6\u8bc4\u6d4b",description:"\u7ec4\u4ef6\u8bc4\u6d4b \u76ee\u7684\u662f\u901a\u8fc7\u5c3d\u53ef\u80fd\u591a\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\uff0c\u4ece\u591a\u4e2a\u7eac\u5ea6\u8bc4\u4f30\u4e00\u4e2a\u7ec4\u4ef6\u3002\u8bc4\u4f30\u4e00\u4e2a\u7ec4\u4ef6\u5206\u4e09\u4e2a\u90e8\u5206\u7684\u5185\u5bb9\uff1a",source:"@site/docs/develop-guid/core/concepts/rating.md",sourceDirName:"develop-guid/core/concepts",slug:"/develop-guid/core/concepts/rating",permalink:"/website/docs/develop-guid/core/concepts/rating",draft:!1,tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"\u6269\u5c55\u8d44\u6e90(\u5e95\u5ea7)",permalink:"/website/docs/develop-guid/core/concepts/buildingbase_resources"},next:{title:"\u7ec4\u4ef6\u8bc4\u6d4b",permalink:"/website/docs/category/\u7ec4\u4ef6\u8bc4\u6d4b"}},o={},k=[{value:"\u4f9d\u8d56",id:"\u4f9d\u8d56",level:2},{value:"Tekton",id:"tekton",level:3},{value:"Arcadia\u4e91\u539f\u751fAI",id:"arcadia\u4e91\u539f\u751fai",level:3},{value:"\u5b9a\u4e49",id:"\u5b9a\u4e49",level:2},{value:"\u5de5\u4f5c\u539f\u7406",id:"\u5de5\u4f5c\u539f\u7406",level:2},{value:"\u8fd0\u884c\u65f6\u6240\u9700\u8d44\u6e90",id:"\u8fd0\u884c\u65f6\u6240\u9700\u8d44\u6e90",level:3},{value:"\u6838\u5fc3\u903b\u8f91",id:"\u6838\u5fc3\u903b\u8f91",level:3},{value:"\u4f7f\u7528",id:"\u4f7f\u7528",level:2}],s={toc:k},m="wrapper";function u(e){let{components:n,...t}=e;return(0,i.kt)(m,(0,a.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"\u7ec4\u4ef6\u8bc4\u6d4b"},"\u7ec4\u4ef6\u8bc4\u6d4b"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},"\u7ec4\u4ef6\u8bc4\u6d4b")," \u76ee\u7684\u662f\u901a\u8fc7\u5c3d\u53ef\u80fd\u591a\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\uff0c\u4ece\u591a\u4e2a\u7eac\u5ea6\u8bc4\u4f30\u4e00\u4e2a\u7ec4\u4ef6\u3002\u8bc4\u4f30\u4e00\u4e2a\u7ec4\u4ef6\u5206\u4e09\u4e2a\u90e8\u5206\u7684\u5185\u5bb9\uff1a"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"\u5b9a\u4e49\u5e76\u5b8c\u6210\u7ec4\u4ef6\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5"),(0,i.kt)("li",{parentName:"ol"},"\u6536\u96c6\u5904\u7406\u6d4b\u8bd5\u6570\u636e"),(0,i.kt)("li",{parentName:"ol"},"\u8bc4\u4f30\u83b7\u53d6\u7ec4\u4ef6\u7b49\u7ea7")),(0,i.kt)("p",null,"\u5b9a\u4e49 CRD ",(0,i.kt)("inlineCode",{parentName:"p"},"Rating"),", \u652f\u6301\u540c\u65f6\u8bbe\u7f6e\u591a\u4e2a pipeline\uff0c \u7ba1\u7406\u4ed6\u4eec\u7684\u751f\u547d\u5468\u671f\uff0c\u7edf\u4e00\u5c55\u793a ",(0,i.kt)("inlineCode",{parentName:"p"},"PipelineRun"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"TaskRun")," \u7684\u8fd0\u884c\u8fc7\u7a0b\u3002"),(0,i.kt)("h2",{id:"\u4f9d\u8d56"},"\u4f9d\u8d56"),(0,i.kt)("h3",{id:"tekton"},(0,i.kt)("a",{parentName:"h3",href:"https://tekton.dev/docs/operator/"},"Tekton")),(0,i.kt)("p",null,"\u4e3b\u8981\u7528\u5230 4 \u4e2a CRD\uff1a"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://tekton.dev/docs/pipelines/tasks/"},"Task"))),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"Task")," \u662f\u4f60\u5b9a\u4e49\u5e76\u6309\u7279\u5b9a\u6267\u884c\u987a\u5e8f\u6392\u5217\u7684\u6b65\u9aa4\u7684\u96c6\u5408\uff0c\u662f\u6301\u7eed\u96c6\u6210\u6d41\u7a0b\u7684\u4e00\u90e8\u5206\u3002",(0,i.kt)("inlineCode",{parentName:"p"},"Task")," \u4f5c\u4e3a Kubernetes \u96c6\u7fa4\u4e0a\u7684 Pod \u6267\u884c\u3002 ",(0,i.kt)("inlineCode",{parentName:"p"},"Task")," \u5728\u7279\u5b9a\u547d\u540d\u7a7a\u95f4\u5185\u53ef\u7528\u3002"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://tekton.dev/docs/pipelines/taskruns/"},"TaskRun"))),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"TaskRun")," \u5141\u8bb8\u4f60\u5728\u96c6\u7fa4\u4e0a\u5b9e\u4f8b\u5316\u5e76\u6267\u884c\u4efb\u52a1\u3002\u4efb\u52a1\u6307\u5b9a\u6267\u884c\u5bb9\u5668\u6620\u50cf\u7684\u4e00\u4e2a\u6216\u591a\u4e2a\u6b65\u9aa4\uff0c\u6bcf\u4e2a\u5bb9\u5668\u6620\u50cf\u6267\u884c\u4e00\u9879\u7279\u5b9a\u7684\u6784\u5efa\u5de5\u4f5c\u3002 ",(0,i.kt)("inlineCode",{parentName:"p"},"TaskRun")," \u6309\u7167\u6307\u5b9a\u7684\u987a\u5e8f\u6267\u884c\u4efb\u52a1\u4e2d\u7684\u6b65\u9aa4\uff0c\u76f4\u5230\u6240\u6709\u6b65\u9aa4\u90fd\u6210\u529f\u6267\u884c\u6216\u53d1\u751f\u5931\u8d25\u3002"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://tekton.dev/docs/pipelines/pipelines/"},"Pipeline"))),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"Pipeline")," \u662f\u4f60\u5b9a\u4e49\u5e76\u6309\u7279\u5b9a\u6267\u884c\u987a\u5e8f\u6392\u5217\u7684\u4efb\u52a1\u96c6\u5408\uff0c\u662f\u6301\u7eed\u96c6\u6210\u6d41\u7a0b\u7684\u4e00\u90e8\u5206\u3002",(0,i.kt)("inlineCode",{parentName:"p"},"Pipeline")," \u4e2d\u7684\u6bcf\u4e2a\u4efb\u52a1\u90fd\u5728 Kubernetes \u96c6\u7fa4\u4e0a\u4f5c\u4e3a\u4e00\u4e2a Pod \u6267\u884c\u3002\u4f60\u53ef\u4ee5\u914d\u7f6e\u5404\u79cd\u6267\u884c\u6761\u4ef6\uff0c\u4ee5\u6ee1\u8db3\u4f60\u7684\u4e1a\u52a1\u9700\u6c42\u3002"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://tekton.dev/docs/pipelines/pipelineruns/"},"PipelineRun"))),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"PipelineRun")," \u5141\u8bb8\u4f60\u5728\u96c6\u7fa4\u4e0a\u5b9e\u4f8b\u5316\u548c\u6267\u884c\u7ba1\u9053\u3002\u7ba1\u9053\u6309\u7167\u6240\u9700\u7684\u6267\u884c\u987a\u5e8f\u6307\u5b9a\u4e00\u4e2a\u6216\u591a\u4e2a\u4efb\u52a1\u3002",(0,i.kt)("inlineCode",{parentName:"p"},"PipelineRun")," \u4f1a\u6309\u7167\u6307\u5b9a\u7684\u987a\u5e8f\u6267\u884c\u7ba1\u9053\u4e2d\u7684\u4efb\u52a1\uff0c\u76f4\u5230\u6240\u6709\u4efb\u52a1\u90fd\u6210\u529f\u6267\u884c\u6216\u51fa\u73b0\u6545\u969c\u3002"),(0,i.kt)("h3",{id:"arcadia\u4e91\u539f\u751fai"},(0,i.kt)("a",{parentName:"h3",href:"https://github.com/kubeagi/arcadia"},"Arcadia\u4e91\u539f\u751fAI")),(0,i.kt)("p",null,"\u4e3b\u8981\u7528\u52302\u4e2aCRD:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/kubeagi/arcadia/blob/main/api/v1alpha1/llm_types.go"},"LLM"),",\u5305\u542bAI\u5927\u6a21\u578b\u670d\u52a1\u7684\u8bbf\u95ee\u914d\u7f6e\u4fe1\u606f"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/kubeagi/arcadia/blob/main/api/v1alpha1/prompt_types.go"},"Prompt"),",\u5305\u542b\u9488\u5bf9LLM\u670d\u52a1\u7684\u8bf7\u6c42\u63d0\u793a\u8bcd\u548c\u63a7\u5236\u53c2\u6570")),(0,i.kt)("h2",{id:"\u5b9a\u4e49"},"\u5b9a\u4e49"),(0,i.kt)("p",null,"CRD \u7684\u4ee3\u7801\u5b9a\u4e49\u4f4d\u4e8e ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/kubebb/core/blob/main/api/v1alpha1/rating_types.go"},"RatingTypes"),"\u3002\u63a5\u4e0b\u6765\u4f1a\u8be6\u7ec6\u4ecb\u7ecd\u6bcf\u4e2a\u5b57\u6bb5\u7684\u542b\u4e49\u53ca\u5176\u4f5c\u7528\u3002"),(0,i.kt)("admonition",{type:"tip"},(0,i.kt)("p",{parentName:"admonition"},"\u8bf4\u660e \u5bf9\u4e8e\u4e0b\u9762\u7684 yaml\uff0c\u6211\u4eec\u60f3\u8981\u8bbf\u95ee bar \u5b57\u6bb5\uff0c\u4e66\u5199\u683c\u5f0f\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"spec.foo.bar")),(0,i.kt)("pre",{parentName:"admonition"},(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},"spec:\n foo:\n bar: xx\n"))),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.componentName")),(0,i.kt)("p",{parentName:"li"},"\u8be5\u5b57\u6bb5\u5b9a\u4e49\u4e86\u5173\u8054\u7684 Component\uff0c\u662f",(0,i.kt)("strong",{parentName:"p"},"\u5fc5\u586b\u5b57\u6bb5"),"\u3002")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.pipelineParams")),(0,i.kt)("p",{parentName:"li"}," \u8be5\u5b57\u6bb5\u662f\u6570\u7ec4\uff0c\u6bcf\u4e00\u9879\u90fd\u5305\u542b ",(0,i.kt)("inlineCode",{parentName:"p"},"Pipeline")," \u7684\u540d\u5b57\u53ca\u5176\u9700\u8981\u7684\u53c2\u6570\uff0c\u8be5\u5b57\u6bb5\u662f",(0,i.kt)("strong",{parentName:"p"},"\u5fc5\u586b\u5b57\u6bb5"),"\u3002\u6570\u7ec4\u7684\u6bcf\u4e00\u9879\u4ecb\u7ecd"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.pipelineParams[index].pipelineName")," \u5b9a\u4e49\u4e86 ",(0,i.kt)("inlineCode",{parentName:"p"},"Pipeline")," \u7684\u540d\u5b57\uff0c\u8be5\u5b57\u6bb5\u662f",(0,i.kt)("strong",{parentName:"p"},"\u5fc5\u586b\u5b57\u6bb5"),"\u3002")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("p",{parentName:"li"},(0,i.kt)("inlineCode",{parentName:"p"},"spec.pipelineParams[index].params")," \u8fd9\u4e2a\u5b57\u6bb5\u4e5f\u662f\u6570\u7ec4\uff0c\u91cc\u9762\u7684\u6bcf\u4e00\u9879\u5206\u522b\u662f\u3002"),(0,i.kt)("ul",{parentName:"li"},(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.pipelineParams[index].params[idx].name")," \u5b9a\u4e49\u7684\u53c2\u6570\u7684\u540d\u5b57\uff0c\u662f",(0,i.kt)("strong",{parentName:"li"},"\u5fc5\u586b\u5b57\u6bb5"),"\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.pipelineParams[index].params[idx].value.type")," \u8be5\u5b57\u6bb5\u6307\u660e\u53c2\u6570\u7684\u7c7b\u578b\uff0c",(0,i.kt)("strong",{parentName:"li"},"\u662f\u5fc5\u586b\u5b57\u6bb5"),"\uff0c\u6709\u4e09\u4e2a\u53ef\u9009\u503c ",(0,i.kt)("inlineCode",{parentName:"li"},"string"),", ",(0,i.kt)("inlineCode",{parentName:"li"},"array"),", ",(0,i.kt)("inlineCode",{parentName:"li"},"object"),"\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.pipelineParams[index].params[idx].value.stringVal")," \u5f53 ",(0,i.kt)("inlineCode",{parentName:"li"},"type=string")," \u7684\u65f6\u5019\uff0c\u586b\u5199\u8be5\u5b57\u6bb5\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.pipelineParams[index].params[idx].value.arrayVal")," \u5f53 ",(0,i.kt)("inlineCode",{parentName:"li"},"type=array")," \u7684\u65f6\u5019\uff0c\u586b\u5199\u8be5\u5b57\u6bb5\uff0c\u6570\u7ec4\u91cc\u7684\u6bcf\u4e00\u9879\u90fd\u662f\u5b57\u7b26\u4e32\u3002"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"spec.pipelineParams[index].params[idx].value.objectVal")," \u5f53 ",(0,i.kt)("inlineCode",{parentName:"li"},"type=object")," \u7684\u65f6\u5019\uff0c\u586b\u5199\u8be5\u5b57\u6bb5\u3002")))))),(0,i.kt)("h2",{id:"\u5de5\u4f5c\u539f\u7406"},"\u5de5\u4f5c\u539f\u7406"),(0,i.kt)("h3",{id:"\u8fd0\u884c\u65f6\u6240\u9700\u8d44\u6e90"},"\u8fd0\u884c\u65f6\u6240\u9700\u8d44\u6e90"),(0,i.kt)("p",null,"\u901a\u8fc7 ",(0,i.kt)("inlineCode",{parentName:"p"},"helm")," \u5c06 operator \u90e8\u7f72\u5728 ",(0,i.kt)("inlineCode",{parentName:"p"},"kubebb-system")," namespace\u540e\uff0c\u4f1a\u770b\u5230\u4ee5\u4e0b\u51e0\u4e2a\u8d44\u6e90( \u8fd9\u91cc release \u7684\u540d\u5b57\u662f ",(0,i.kt)("inlineCode",{parentName:"p"},"kubebb"),")"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"ClusterRole")),(0,i.kt)("p",null,"\u540d\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"kubebb-system.kubebb-rating"),"\uff0c\u91cc\u9762\u4ec5\u5305\u542b\u4e86\u64cd\u4f5c configmap \u8d44\u6e90\u7684\u6743\u9650\u3002\n",(0,i.kt)("inlineCode",{parentName:"p"},"ClusterRole")," \u5b9a\u4e49\u4e86\u6240\u6709\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"Task")," \u5728\u8fd0\u884c\u65f6\u9700\u8981\u7684\u6743\u9650\uff0c\u6709\u65b0\u7684\u6743\u9650\u9700\u6c42\uff0c\u76f4\u63a5\u66f4\u65b0\u8fd9\u4e2a ",(0,i.kt)("inlineCode",{parentName:"p"},"ClusterRole")," \u5373\u53ef\u3002"),(0,i.kt)("ol",{start:2},(0,i.kt)("li",{parentName:"ol"},"ServiceAccount")),(0,i.kt)("p",null,"\u540d\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"kubebb-system.kubebb-rating"),"\u3002\u8fd9\u4e2a serviceaccount \u4f1a\u5728\u6bcf\u4e2a ",(0,i.kt)("inlineCode",{parentName:"p"},"Repository")," \u7684 namespace \u4e0b\u90fd\u521b\u5efa\u4e00\u4e2a\u3002"),(0,i.kt)("ol",{start:3},(0,i.kt)("li",{parentName:"ol"},"ClusterRoleBinding")),(0,i.kt)("p",null,"\u540d\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"kubebb-system.kubebb-rating"),"\uff0c\u5c06 serviceaccount ",(0,i.kt)("inlineCode",{parentName:"p"},"kubebb-system.kubebb-rating")," \u4e0e clusterrole ",(0,i.kt)("inlineCode",{parentName:"p"},"kubebb-system.kubebb-rating")," \u7ed1\u5b9a\u3002"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get clusterrole,clusterrolebinding kubebb-system.kubebb-rating \nNAME CREATED AT\nclusterrole.rbac.authorization.k8s.io/kubebb-system.kubebb-rating 2023-08-21T09:24:12Z\n\nNAME ROLE AGE\nclusterrolebinding.rbac.authorization.k8s.io/kubebb-system.kubebb-rating ClusterRole/kubebb-system.kubebb-rating 8m8s\n")),(0,i.kt)("ol",{start:4},(0,i.kt)("li",{parentName:"ol"},"Pipeline, Task")),(0,i.kt)("p",null,"\u4e00\u4e2a\u540d\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"kubebb")," \u7684 pipeline \u548c \u540d\u5b57\u5206\u522b\u4e3a ",(0,i.kt)("inlineCode",{parentName:"p"},"kubebb-rback"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"kubebb-helm-lint")," \u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"Task"),"\u3002\n",(0,i.kt)("inlineCode",{parentName:"p"},"Task")," \u5b9a\u4e49\u4e86\u8981\u6267\u884c\u7684\u4efb\u52a1\u7684\u5177\u4f53\u52a8\u4f5c\uff0c\u800c ",(0,i.kt)("inlineCode",{parentName:"p"},"Pipeline")," \u5219\u662f\u5b9a\u4e49\u4e86\u8981\u6267\u884c\u54ea\u4e9b ",(0,i.kt)("inlineCode",{parentName:"p"},"Task")," \u4ee5\u53ca\u8fd9\u4e9b ",(0,i.kt)("inlineCode",{parentName:"p"},"Task")," \u4e4b\u95f4\u7684\u6267\u884c\u987a\u5e8f\u7b49\u3002"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get pipeline -nkubebb-system\nNAME AGE\nkubebb 4m19s\n\nkubectl get task -nkubebb-system\nNAME AGE\nkubebb-helm-lint 4m25s\nkubebb-rback 4m25s\n")),(0,i.kt)("p",null,"\u652f\u6301\u7528\u6237\u81ea\u5df1\u5b9a\u4e49 ",(0,i.kt)("inlineCode",{parentName:"p"},"Task")," \u548c ",(0,i.kt)("inlineCode",{parentName:"p"},"Pipeline"),", \u4f46\u662f\u9700\u8981\u8bb2\u8fd9\u4e9b\u8d44\u6e90\u653e\u5230\u4e0e operator \u76f8\u540c\u7684 ",(0,i.kt)("strong",{parentName:"p"},"namespace")," \u4e0b\u3002\n",(0,i.kt)("inlineCode",{parentName:"p"},"ClusterRole"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"ClusterRoleBinding"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"ServiceAccount")," \u662f\u7ed9 pipelinerun \u5728\u6267\u884c ",(0,i.kt)("inlineCode",{parentName:"p"},"Task")," \u7528\u7684\uff0c\u907f\u514d ",(0,i.kt)("inlineCode",{parentName:"p"},"Task")," \u56e0\u4e3a\u6743\u9650\u4e0d\u8db3\u800c\u5931\u8d25\u3002"),(0,i.kt)("h3",{id:"\u6838\u5fc3\u903b\u8f91"},"\u6838\u5fc3\u903b\u8f91"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"\u5f53 ",(0,i.kt)("inlineCode",{parentName:"li"},"Rating")," \u521b\u5efa\u65f6")),(0,i.kt)("p",null,"\u7ed9 ",(0,i.kt)("inlineCode",{parentName:"p"},"Rating")," \u6dfb\u52a0\u4e24\u4e2a\u6807\u7b7e ",(0,i.kt)("inlineCode",{parentName:"p"},"rating.component="),", ",(0,i.kt)("inlineCode",{parentName:"p"},"rating.repository=")," \u7528\u6765\u8bb0\u5f55\u4e0e\u5f53\u524d ",(0,i.kt)("inlineCode",{parentName:"p"},"Rating")," \u5173\u8054\u7684\u7ec4\u4ef6\u548c\u4ed3\u5e93\u7684\u540d\u5b57\u3002"),(0,i.kt)("ol",{start:2},(0,i.kt)("li",{parentName:"ol"},"\u5f53 ",(0,i.kt)("inlineCode",{parentName:"li"},"Rating")," \u66f4\u65b0\u65f6")),(0,i.kt)("p",null,"\u76ee\u524d\u5bf9\u4e8e ",(0,i.kt)("inlineCode",{parentName:"p"},"spec"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"status")," \u7684\u66f4\u65b0\u4e0d\u505a\u5904\u7406\uff0c\u53ea\u6709\u5f53 ",(0,i.kt)("inlineCode",{parentName:"p"},"metadata")," \u53d1\u751f\u53d8\u5316\u7684\u65f6\u5019\uff0c\u624d\u4f1a\u8fdb\u5165\u5904\u7406\u903b\u8f91\u3002"),(0,i.kt)("p",null,"\u6839\u636e ",(0,i.kt)("inlineCode",{parentName:"p"},"spec")," \u5b9a\u4e49\u7684 pipeline \u5217\u8868\uff0c\u5f00\u59cb\u521b\u5efa ",(0,i.kt)("inlineCode",{parentName:"p"},"PipelineRun"),", \u540c\u65f6 ",(0,i.kt)("inlineCode",{parentName:"p"},"watch")," ",(0,i.kt)("inlineCode",{parentName:"p"},"PipelineRun")," \u7684\u53d8\u5316\uff0c\u5c06\u5176\u72b6\u6001\uff0c\u4ee5\u53ca ",(0,i.kt)("inlineCode",{parentName:"p"},"Task"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"TaskRun")," \u7684\u4fe1\u606f\u540c\u6b65\u5230 ",(0,i.kt)("inlineCode",{parentName:"p"},"Rating"),"\u3002"),(0,i.kt)("ol",{start:3},(0,i.kt)("li",{parentName:"ol"},"\u5f53 ",(0,i.kt)("inlineCode",{parentName:"li"},"Rating")," \u5220\u9664\u65f6")),(0,i.kt)("p",null,(0,i.kt)("inlineCode",{parentName:"p"},"Rating")," \u88ab\u5220\u9664\uff0c\u4ed6\u6240\u521b\u5efa\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"PipelineRun")," \u540c\u6837\u4f1a\u88ab\u5220\u9664\u3002"),(0,i.kt)("h2",{id:"\u4f7f\u7528"},"\u4f7f\u7528"),(0,i.kt)("p",null,"\u4e00\u4e2a rating CR \u7684\u4f8b\u5b50:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},"# rating.yaml\napiVersion: core.kubebb.k8s.com.cn/v1alpha1\nkind: Rating\nmetadata:\n name: rating\n namespace: kubebb-system\nspec:\n componentName: kubebb.kubebb-core\n pipelineParams:\n - pipelineName: kubebb\n params:\n - name: URL\n value: \n type: string\n stringVal: https://github.com/kubebb/components/releases/download/kubebb-core-v0.1.10/kubebb-core-v0.1.10.tgz\n arrayVal: []\n objectVal: {}\n - name: COMPONENT_NAME\n value: \n stringVal: kubebb-core\n type: string\n - name: VERSION\n value: \n stringVal: v0.1.10\n type: string\n - name: REPOSITORY_NAME\n value: \n stringVal: kubebb\n type: string\n")),(0,i.kt)("p",null,"\u4e0a\u8ff0 yaml \u6240\u5b9a\u4e49\u7684 ",(0,i.kt)("inlineCode",{parentName:"p"},"Rating")," \u5305\u542b\u4e00\u4e2a\u9ed8\u8ba4\u7684 pipeline\uff0c\u5e76\u4e14\u5c06 pipeline \u9700\u8981\u7684\u53c2\u6570\u4f20\u9012\u8fdb\u53bb\u3002 \u6267\u884c\u4e0a\u9762\u7684 yaml"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl apply -f rating.yaml\n")),(0,i.kt)("p",null,"\u53ef\u4ee5\u6301\u7eed\u89c2\u5bdf Rating \u7684\u53d8\u5316"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl -nkubebb-system get rating -oyaml -w\n")),(0,i.kt)("p",null,"\u5982\u679c\u8fd0\u884c\u4e0d\u6210\u529f\uff0c\u4f1a\u5728 status \u4e2d\u7ed9\u51fa\u9519\u8bef\u539f\u56e0\u3002 \u8fd0\u884c\u6210\u529f\u4f1a\u5f97\u5230\u5982\u4e0b\u7684 status"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'status:\n pipelineRuns:\n rating.kubebb:\n actualWeight: 2\n conditions:\n - lastTransitionTime: "2023-08-23T05:39:53Z"\n message: \'Tasks Completed: 2 (Failed: 0, Cancelled 0), Skipped: 0\'\n reason: Succeeded\n status: "True"\n type: Succeeded\n expectWeight: 2\n pipelineName: kubebb\n tasks:\n - conditions:\n - lastTransitionTime: "2023-08-23T05:39:53Z"\n message: All Steps have completed executing\n reason: Succeeded\n status: "True"\n type: Succeeded\n name: kubebb-rback\n taskRunName: rating.kubebb-kubebb-rback\n - conditions:\n - lastTransitionTime: "2023-08-23T05:39:53Z"\n message: All Steps have completed executing\n reason: Succeeded\n status: "True"\n type: Succeeded\n name: kubebb-helm-lint\n taskRunName: rating.kubebb-kubebb-helm-lint\n')),(0,i.kt)("p",null,"\u5982\u679c\u60f3\u8981\u77e5\u9053\u6bcf\u4e2a task \u8fd0\u884c\u7684\u8f93\u51fa\u65e5\u5fd7\uff0c\u53ef\u4ee5\u5148\u5f97\u5230 pod \u5217\u8868\uff0c\u7136\u540e\u67e5\u770bpod\u65e5\u5fd7\u5373\u53ef\u3002"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"kubectl get po -nkubebb-system\nNAME READY STATUS RESTARTS AGE\nkubebb-5dbf45964c-26jpp 1/1 Running 0 3m53s\nrating.kubebb-kubebb-helm-lint-pod 0/1 Completed 0 2m9s\nrating.kubebb-kubebb-rback-pod 0/1 Completed 0 2m9s\n")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/main.04bb8b9c.js b/assets/js/main.04bb8b9c.js new file mode 100644 index 000000000..8c3259ba7 --- /dev/null +++ b/assets/js/main.04bb8b9c.js @@ -0,0 +1,2 @@ +/*! For license information please see main.04bb8b9c.js.LICENSE.txt */ +(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),o=n(7462),a=n(8356),i=n.n(a),l=n(6887);const s={"01a85c17":[()=>Promise.all([n.e(532),n.e(4013)]).then(n.bind(n,1223)),"@theme/BlogTagsListPage",1223],"04569e49":[()=>Promise.all([n.e(532),n.e(8516)]).then(n.bind(n,5331)),"@site/src/pages/market/index.js",5331],"07c7815c":[()=>n.e(5822).then(n.t.bind(n,8040,19)),"~docs/default/category-websitedocs-tutorialsidebar-category-\u7ec4\u4ef6\u5e02\u573a-4ba.json",8040],"0b2479c4":[()=>n.e(6900).then(n.t.bind(n,2758,19)),"~docs/default/category-websitedocs-tutorialsidebar-category-\u81ea\u5b9a\u4e49\u914d\u7f6e-9fe.json",2758],"0bd7f289":[()=>n.e(3891).then(n.bind(n,5340)),"@site/docs/develop-guid/core/intro.md",5340],"0e384e19":[()=>n.e(9671).then(n.bind(n,9881)),"@site/docs/intro.md",9881],"0f745343":[()=>n.e(1399).then(n.bind(n,7492)),"@site/docs/version.md",7492],"11551e33":[()=>n.e(550).then(n.bind(n,8006)),"@site/docs/develop-guid/component-market/blockchain.md",8006],"124d10f2":[()=>n.e(1916).then(n.bind(n,1209)),"@site/docs/user-guid/component_rating.md",1209],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,4228)),"@theme/DocCategoryGeneratedIndexPage",4228],17896441:[()=>Promise.all([n.e(532),n.e(210),n.e(7918)]).then(n.bind(n,5154)),"@theme/DocItem",5154],"181fac9d":[()=>n.e(297).then(n.bind(n,2252)),"@site/docs/develop-guid/component-market/kubedashboard.md",2252],"18874b20":[()=>n.e(1075).then(n.t.bind(n,1229,19)),"~blog/default/website-blog-archive-354.json",1229],"1b16f8d8":[()=>n.e(5658).then(n.bind(n,1324)),"@site/docs/user-guid/repository_anagement.md",1324],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,9963)),"@theme/DocPage",9963],"1c59ea81":[()=>n.e(8221).then(n.t.bind(n,987,19)),"~blog/default/website-blog-tags-docusaurus-ae6.json",987],"1f391b9e":[()=>Promise.all([n.e(532),n.e(210),n.e(3085)]).then(n.bind(n,4247)),"@theme/MDXPage",4247],"23822d86":[()=>n.e(8989).then(n.t.bind(n,3915,19)),"~blog/default/website-blog-tags-facebook-63d-list.json",3915],"24eaa24b":[()=>n.e(5240).then(n.bind(n,7334)),"@site/docs/user-guid/component_market.md",7334],"2661f043":[()=>n.e(4535).then(n.bind(n,8551)),"@site/docs/develop-guid/intro.md",8551],"2be451b9":[()=>n.e(638).then(n.t.bind(n,3091,19)),"~docs/default/category-websitedocs-tutorialsidebar-category-\u7ec4\u4ef6\u5f00\u53d1-3b5.json",3091],"300d3bf9":[()=>n.e(4154).then(n.t.bind(n,3534,19)),"~blog/default/website-blog-tags-hola-0ac-list.json",3534],"35308eea":[()=>n.e(8480).then(n.bind(n,9870)),"@site/docs/develop-guid/core/rating/rating.md",9870],"35bdf1fa":[()=>n.e(7070).then(n.bind(n,6945)),"@site/docs/develop-guid/privatecluster.md",6945],"393be207":[()=>n.e(7414).then(n.bind(n,3123)),"@site/src/pages/markdown-page.md",3123],"422f8ca8":[()=>n.e(9541).then(n.t.bind(n,2325,19)),"~blog/default/website-blog-tags-hello-fcd.json",2325],"45240dc4":[()=>n.e(2071).then(n.bind(n,1964)),"@site/docs/develop-guid/core/concepts/imageoverride.md",1964],"473a5afa":[()=>n.e(8013).then(n.bind(n,6395)),"@site/docs/develop-guid/core/concepts/buildingbase_resources.md",6395],"476857ee":[()=>n.e(3484).then(n.t.bind(n,422,19)),"~docs/default/category-websitedocs-tutorialsidebar-category-\u4f4e\u7801-kit-f60.json",422],"4ba7e5a3":[()=>n.e(9735).then(n.bind(n,5380)),"@site/docs/contribute.md",5380],59362658:[()=>n.e(2267).then(n.bind(n,8642)),"@site/blog/2021-08-01-mdx-blog-post.mdx",8642],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"67b8aae2":[()=>n.e(8135).then(n.bind(n,9919)),"@site/docs/develop-guid/lowcode-development/development/frontend-low-code.md",9919],"67d2fccd":[()=>n.e(9060).then(n.bind(n,3891)),"@site/docs/develop-guid/core/concepts/componentplan.md",3891],"6875c492":[()=>Promise.all([n.e(532),n.e(210),n.e(2529),n.e(8610)]).then(n.bind(n,1714)),"@theme/BlogTagsPostsPage",1714],"69369ae2":[()=>n.e(5062).then(n.t.bind(n,3769,19)),"/home/runner/work/website/website/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"6b8ed726":[()=>n.e(6674).then(n.bind(n,9252)),"@site/docs/user-guid/component_anagement.md",9252],"6d8d5af3":[()=>n.e(3589).then(n.t.bind(n,9300,19)),"~blog/default/website-blog-e99.json",9300],"710d6d2e":[()=>n.e(6846).then(n.t.bind(n,4948,19)),"~blog/default/website-blog-tags-tags-c86.json",4948],"73664a40":[()=>n.e(3514).then(n.bind(n,1976)),"@site/blog/2019-05-29-long-blog-post.md",1976],"74f3aee8":[()=>n.e(2275).then(n.bind(n,5265)),"@site/docs/develop-guid/building-base/configuration/audit-config.md",5265],"7661071f":[()=>n.e(9642).then(n.bind(n,6911)),"@site/blog/2021-08-26-welcome/index.md?truncated=true",6911],"7b0c2381":[()=>n.e(8101).then(n.bind(n,5267)),"@site/docs/develop-guid/component-market/kubelogin.md",5267],"7c27091d":[()=>n.e(2250).then(n.bind(n,6973)),"@site/docs/develop-guid/building-base/intro.md",6973],"7c2ff145":[()=>n.e(1505).then(n.t.bind(n,4469,19)),"/home/runner/work/website/website/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json",4469],"7d3a95df":[()=>n.e(7215).then(n.bind(n,6901)),"@site/docs/quick-start/quick-experience.md",6901],"7dec8a7a":[()=>n.e(1323).then(n.bind(n,3401)),"@site/docs/develop-guid/building-base/add-cluster.md",3401],"807573a4":[()=>n.e(8428).then(n.t.bind(n,8938,19)),"~blog/default/website-blog-tags-hola-0ac.json",8938],"814f3328":[()=>n.e(2535).then(n.t.bind(n,5641,19)),"~blog/default/blog-post-list-prop-default.json",5641],"836d4174":[()=>n.e(774).then(n.bind(n,8600)),"@site/docs/develop-guid/core/rating/enablerating.md",8600],"86efa878":[()=>n.e(8407).then(n.bind(n,5569)),"@site/docs/develop-guid/lowcode-development/intro.md",5569],"8717b14a":[()=>n.e(948).then(n.bind(n,3352)),"@site/blog/2019-05-29-long-blog-post.md?truncated=true",3352],"8b32ec56":[()=>n.e(9292).then(n.t.bind(n,6587,19)),"~docs/default/category-websitedocs-tutorialsidebar-category-\u7ec4\u4ef6\u8bc4\u6d4b-191.json",6587],"8ec7214f":[()=>n.e(4046).then(n.bind(n,4420)),"@site/docs/develop-guid/building-base/configuration/customize-menu.md",4420],"9048d586":[()=>n.e(8088).then(n.bind(n,5333)),"@site/docs/develop-guid/core/concepts/subscription.md",5333],"925b3f96":[()=>n.e(9003).then(n.bind(n,8856)),"@site/blog/2019-05-28-first-blog-post.md?truncated=true",8856],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"94743b49":[()=>n.e(1277).then(n.bind(n,1351)),"@site/docs/develop-guid/core/concepts/component.md",1351],"956d2487":[()=>n.e(8776).then(n.bind(n,7698)),"@site/docs/develop-guid/building-base/configuration/3rd-party-account.md",7698],"9e4087bc":[()=>n.e(3608).then(n.bind(n,3169)),"@theme/BlogArchivePage",3169],a35a66a7:[()=>n.e(7943).then(n.t.bind(n,4838,19)),"~docs/default/category-websitedocs-tutorialsidebar-category-\u6982\u5ff5-2f0.json",4838],a6aa9e1f:[()=>Promise.all([n.e(532),n.e(210),n.e(2529),n.e(3089)]).then(n.bind(n,46)),"@theme/BlogListPage",46],ab5e4632:[()=>n.e(8034).then(n.bind(n,714)),"@site/docs/develop-guid/building-base/configuration/oidc-integration.md",714],abe5e8bf:[()=>n.e(7658).then(n.bind(n,2486)),"@site/docs/develop-guid/core/concepts/repository.md",2486],ac63f98d:[()=>n.e(7521).then(n.t.bind(n,5817,19)),"~blog/default/website-blog-tags-hello-fcd-list.json",5817],ad895e75:[()=>n.e(4288).then(n.bind(n,3581)),"@site/docs/FAQ.md",3581],b09d49d3:[()=>n.e(3549).then(n.bind(n,4226)),"@site/docs/develop-guid/building-base/configuration/issue-oidc-proxy-certs.md",4226],b0d91792:[()=>n.e(3222).then(n.bind(n,4197)),"@site/docs/quick-start/quick-install.md",4197],b4e8507e:[()=>n.e(6355).then(n.bind(n,614)),"@site/docs/develop-guid/component-market/logging.md",614],b81173c6:[()=>n.e(1500).then(n.t.bind(n,1535,19)),"~blog/default/website-blog-tags-docusaurus-ae6-list.json",1535],c00468a4:[()=>n.e(6353).then(n.t.bind(n,1423,19)),"~blog/default/website-blog-tags-facebook-63d.json",1423],c2c9b4b3:[()=>n.e(1129).then(n.t.bind(n,3601,19)),"~docs/default/category-websitedocs-tutorialsidebar-category-\u5feb\u901f\u5f00\u59cb-2e9.json",3601],c4348237:[()=>n.e(277).then(n.t.bind(n,5745,19)),"/home/runner/work/website/website/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(4195)]).then(n.bind(n,8506)),"@site/src/pages/index.js",8506],c64e4644:[()=>n.e(1669).then(n.t.bind(n,1645,19)),"~docs/default/category-websitedocs-tutorialsidebar-category-\u5185\u6838kit-1e8.json",1645],cc6abd7b:[()=>n.e(622).then(n.bind(n,6054)),"@site/docs/develop-guid/lowcode-development/development/bff-apis.md",6054],ccc49370:[()=>Promise.all([n.e(532),n.e(210),n.e(2529),n.e(6103)]).then(n.bind(n,5203)),"@theme/BlogPostPage",5203],cd9d77a0:[()=>n.e(4011).then(n.bind(n,8313)),"@site/docs/develop-guid/lowcode-development/development/develop-hello-world.md",8313],d54d1d36:[()=>n.e(4094).then(n.t.bind(n,8771,19)),"~docs/default/category-websitedocs-tutorialsidebar-category-\u5e95\u5ea7kit-ccc.json",8771],d5dd9a2d:[()=>n.e(5011).then(n.bind(n,1191)),"@site/docs/develop-guid/component-market/monitoring.md",1191],d9f32620:[()=>n.e(1914).then(n.bind(n,2900)),"@site/blog/2021-08-26-welcome/index.md",2900],db569f15:[()=>n.e(1341).then(n.bind(n,8815)),"@site/docs/develop-guid/lowcode-development/development_pattern.md",8815],e273c56f:[()=>n.e(2362).then(n.bind(n,1947)),"@site/blog/2019-05-28-first-blog-post.md",1947],e61d63f6:[()=>n.e(4385).then(n.bind(n,7753)),"@site/docs/develop-guid/lowcode-development/development/frontend.md",7753],f3fd7201:[()=>n.e(1624).then(n.bind(n,220)),"@site/docs/develop-guid/building-base/configuration/customize-portal.md",220],f4f34a3a:[()=>n.e(8636).then(n.bind(n,5145)),"@site/blog/2021-08-01-mdx-blog-post.mdx?truncated=true",5145],feed9613:[()=>n.e(1224).then(n.bind(n,3869)),"@site/docs/develop-guid/core/concepts/rating.md",3869]};function u(e){let{error:t,retry:n,pastDelay:o}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):o?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(9670),d=n(226);function p(e,t){if("*"===e)return i()({loading:u,loader:()=>n.e(4972).then(n.bind(n,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const a=l[`${e}-${t}`],p={},f=[],m=[],g=(0,c.Z)(a);return Object.entries(g).forEach((e=>{let[t,n]=e;const r=s[n];r&&(p[t]=r[0],f.push(r[1]),m.push(r[2]))})),i().Map({loading:u,loader:p,modules:f,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(a));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let a=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{a=a[e]})),a[l[l.length-1]]=o}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,o.Z)({},i,n)))}})}const f=[{path:"/website/blog",component:p("/website/blog","d82"),exact:!0},{path:"/website/blog/archive",component:p("/website/blog/archive","7b2"),exact:!0},{path:"/website/blog/first-blog-post",component:p("/website/blog/first-blog-post","d95"),exact:!0},{path:"/website/blog/long-blog-post",component:p("/website/blog/long-blog-post","6bf"),exact:!0},{path:"/website/blog/mdx-blog-post",component:p("/website/blog/mdx-blog-post","326"),exact:!0},{path:"/website/blog/tags",component:p("/website/blog/tags","d53"),exact:!0},{path:"/website/blog/tags/docusaurus",component:p("/website/blog/tags/docusaurus","a47"),exact:!0},{path:"/website/blog/tags/facebook",component:p("/website/blog/tags/facebook","128"),exact:!0},{path:"/website/blog/tags/hello",component:p("/website/blog/tags/hello","a5f"),exact:!0},{path:"/website/blog/tags/hola",component:p("/website/blog/tags/hola","2f3"),exact:!0},{path:"/website/blog/welcome",component:p("/website/blog/welcome","153"),exact:!0},{path:"/website/markdown-page",component:p("/website/markdown-page","5d1"),exact:!0},{path:"/website/market/",component:p("/website/market/","b07"),exact:!0},{path:"/website/docs",component:p("/website/docs","a55"),routes:[{path:"/website/docs/category/\u4f4e\u7801-kit",component:p("/website/docs/category/\u4f4e\u7801-kit","577"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/category/\u5185\u6838kit",component:p("/website/docs/category/\u5185\u6838kit","da7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/category/\u5e95\u5ea7kit",component:p("/website/docs/category/\u5e95\u5ea7kit","da7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/category/\u5feb\u901f\u5f00\u59cb",component:p("/website/docs/category/\u5feb\u901f\u5f00\u59cb","b61"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/category/\u6982\u5ff5",component:p("/website/docs/category/\u6982\u5ff5","f55"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/category/\u7ec4\u4ef6\u5e02\u573a",component:p("/website/docs/category/\u7ec4\u4ef6\u5e02\u573a","f22"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/category/\u7ec4\u4ef6\u5f00\u53d1",component:p("/website/docs/category/\u7ec4\u4ef6\u5f00\u53d1","4fc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/category/\u7ec4\u4ef6\u8bc4\u6d4b",component:p("/website/docs/category/\u7ec4\u4ef6\u8bc4\u6d4b","f2c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/category/\u81ea\u5b9a\u4e49\u914d\u7f6e",component:p("/website/docs/category/\u81ea\u5b9a\u4e49\u914d\u7f6e","f59"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/contribute",component:p("/website/docs/contribute","de7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/building-base/add-cluster",component:p("/website/docs/develop-guid/building-base/add-cluster","c29"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/building-base/configuration/3rd-party-account",component:p("/website/docs/develop-guid/building-base/configuration/3rd-party-account","989"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/building-base/configuration/audit-config",component:p("/website/docs/develop-guid/building-base/configuration/audit-config","8e3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/building-base/configuration/customize-menu",component:p("/website/docs/develop-guid/building-base/configuration/customize-menu","0e3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/building-base/configuration/customize-portal",component:p("/website/docs/develop-guid/building-base/configuration/customize-portal","947"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/building-base/configuration/issue-oidc-proxy-certs",component:p("/website/docs/develop-guid/building-base/configuration/issue-oidc-proxy-certs","534"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/building-base/configuration/oidc-integration",component:p("/website/docs/develop-guid/building-base/configuration/oidc-integration","130"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/building-base/intro",component:p("/website/docs/develop-guid/building-base/intro","1f1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/component-market/blockchain",component:p("/website/docs/develop-guid/component-market/blockchain","f7d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/component-market/kubedashboard",component:p("/website/docs/develop-guid/component-market/kubedashboard","237"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/component-market/kubelogin",component:p("/website/docs/develop-guid/component-market/kubelogin","be8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/component-market/logging",component:p("/website/docs/develop-guid/component-market/logging","c11"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/component-market/monitoring",component:p("/website/docs/develop-guid/component-market/monitoring","2a7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/core/concepts/buildingbase_resources",component:p("/website/docs/develop-guid/core/concepts/buildingbase_resources","f47"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/core/concepts/component",component:p("/website/docs/develop-guid/core/concepts/component","782"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/core/concepts/componentplan",component:p("/website/docs/develop-guid/core/concepts/componentplan","c92"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/core/concepts/imageoverride",component:p("/website/docs/develop-guid/core/concepts/imageoverride","fe5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/core/concepts/rating",component:p("/website/docs/develop-guid/core/concepts/rating","028"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/core/concepts/repository",component:p("/website/docs/develop-guid/core/concepts/repository","3da"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/core/concepts/subscription",component:p("/website/docs/develop-guid/core/concepts/subscription","b77"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/core/intro",component:p("/website/docs/develop-guid/core/intro","00d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/core/rating/",component:p("/website/docs/develop-guid/core/rating/","111"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/core/rating/enablerating",component:p("/website/docs/develop-guid/core/rating/enablerating","5c8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/intro",component:p("/website/docs/develop-guid/intro","3fc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/lowcode-development/development_pattern",component:p("/website/docs/develop-guid/lowcode-development/development_pattern","4fe"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/lowcode-development/development/bff-apis",component:p("/website/docs/develop-guid/lowcode-development/development/bff-apis","afd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/lowcode-development/development/develop-hello-world",component:p("/website/docs/develop-guid/lowcode-development/development/develop-hello-world","3d9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/lowcode-development/development/frontend",component:p("/website/docs/develop-guid/lowcode-development/development/frontend","fea"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/lowcode-development/development/frontend-low-code",component:p("/website/docs/develop-guid/lowcode-development/development/frontend-low-code","62d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/lowcode-development/intro",component:p("/website/docs/develop-guid/lowcode-development/intro","a0c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/develop-guid/privatecluster",component:p("/website/docs/develop-guid/privatecluster","e18"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/FAQ",component:p("/website/docs/FAQ","81d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/intro",component:p("/website/docs/intro","345"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/quick-start/quick-experience",component:p("/website/docs/quick-start/quick-experience","1a8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/quick-start/quick-install",component:p("/website/docs/quick-start/quick-install","bce"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/user-guid/component_anagement",component:p("/website/docs/user-guid/component_anagement","51b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/user-guid/component_market",component:p("/website/docs/user-guid/component_market","923"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/user-guid/component_rating",component:p("/website/docs/user-guid/component_rating","abb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/user-guid/repository_anagement",component:p("/website/docs/user-guid/repository_anagement","23d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/website/docs/version",component:p("/website/docs/version","3b8"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/website/",component:p("/website/","e12"),exact:!0},{path:"*",component:p("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>a});var r=n(7294);const o=r.createContext(!1);function a(e){let{children:t}=e;const[n,a]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{a(!0)}),[]),r.createElement(o.Provider,{value:n},t)}},9383:(e,t,n)=>{"use strict";var r=n(7294),o=n(3935),a=n(3727),i=n(405),l=n(412);const s=[n(2497),n(3310),n(8320),n(2295)];var u=n(723),c=n(6550),d=n(8790);function p(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var f=n(7462),m=n(5742),g=n(2263),h=n(4996),b=n(6668),v=n(1944),y=n(4711),w=n(9727),k=n(3320),E=n(197);function S(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,g.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:o}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:o})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,g.Z)(),o=function(){const{siteConfig:{url:e}}=(0,g.Z)(),{pathname:t}=(0,c.TH)();return e+(0,h.Z)(t)}(),a=t?`${n}${t}`:o;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:a}),r.createElement("link",{rel:"canonical",href:a}))}function _(){const{i18n:{currentLocale:e}}=(0,g.Z)(),{metadata:t,image:n}=(0,b.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(v.d,{image:n}),r.createElement(x,null),r.createElement(S,null),r.createElement(E.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,f.Z)({key:t},e))))))}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var L=n(8934),A=n(8940);function P(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>o.forEach((e=>e?.()))}const N=function(e){let{children:t,location:n,previousLocation:o}=e;return(0,r.useLayoutEffect)((()=>{o!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,o=t.hash===n.hash,a=t.search===n.search;if(r&&o&&!a)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:o}),P("onRouteDidUpdate",{previousLocation:o,location:n}))}),[o,n]),t};function R(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class O extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?P("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=P("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),R(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(N,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const I=O,D="docusaurus-base-url-issue-banner-container",M="docusaurus-base-url-issue-banner",F="docusaurus-base-url-issue-banner-suggestion-container",B="__DOCUSAURUS_INSERT_BASEURL_BANNER";function j(e){return`\nwindow['${B}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${B}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${D}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{window[B]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,j(e))),r.createElement("div",{id:D}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,g.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(z,null):null}function $(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:o,localeConfigs:a}}=(0,g.Z)(),i=(0,h.Z)(e),{htmlLang:l,direction:s}=a[o];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var q=n(4763);function H(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(q.Z,null,r.createElement(A.M,null,r.createElement(L.t,null,r.createElement(p,null,r.createElement($,null),r.createElement(_,null),r.createElement(U,null),r.createElement(I,{location:T(t)},e)))))}var G=n(6887);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const o=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;o?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var V=n(9670);const W=new Set,K=new Set,Y=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,Q={prefetch(e){if(!(e=>!Y()&&!K.has(e)&&!W.has(e))(e))return!1;W.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(G).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!Y()&&!K.has(e))(e)&&(K.add(e),R(e))},X=Object.freeze(Q);if(l.Z.canUseDOM){window.docusaurus=X;const e=o.hydrate;R(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(a.VK,null,r.createElement(H,null))),document.getElementById("__docusaurus"))}))}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(7294),o=n(6809);const a=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/website/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/website/docs","mainDocId":"intro","docs":[{"id":"contribute","path":"/website/docs/contribute","sidebar":"tutorialSidebar"},{"id":"develop-guid/building-base/add-cluster","path":"/website/docs/develop-guid/building-base/add-cluster","sidebar":"tutorialSidebar"},{"id":"develop-guid/building-base/configuration/3rd-party-account","path":"/website/docs/develop-guid/building-base/configuration/3rd-party-account","sidebar":"tutorialSidebar"},{"id":"develop-guid/building-base/configuration/audit-config","path":"/website/docs/develop-guid/building-base/configuration/audit-config","sidebar":"tutorialSidebar"},{"id":"develop-guid/building-base/configuration/customize-menu","path":"/website/docs/develop-guid/building-base/configuration/customize-menu","sidebar":"tutorialSidebar"},{"id":"develop-guid/building-base/configuration/customize-portal","path":"/website/docs/develop-guid/building-base/configuration/customize-portal","sidebar":"tutorialSidebar"},{"id":"develop-guid/building-base/configuration/issue-oidc-proxy-certs","path":"/website/docs/develop-guid/building-base/configuration/issue-oidc-proxy-certs","sidebar":"tutorialSidebar"},{"id":"develop-guid/building-base/configuration/oidc-integration","path":"/website/docs/develop-guid/building-base/configuration/oidc-integration","sidebar":"tutorialSidebar"},{"id":"develop-guid/building-base/intro","path":"/website/docs/develop-guid/building-base/intro","sidebar":"tutorialSidebar"},{"id":"develop-guid/component-market/blockchain","path":"/website/docs/develop-guid/component-market/blockchain","sidebar":"tutorialSidebar"},{"id":"develop-guid/component-market/kubedashboard","path":"/website/docs/develop-guid/component-market/kubedashboard","sidebar":"tutorialSidebar"},{"id":"develop-guid/component-market/kubelogin","path":"/website/docs/develop-guid/component-market/kubelogin","sidebar":"tutorialSidebar"},{"id":"develop-guid/component-market/logging","path":"/website/docs/develop-guid/component-market/logging","sidebar":"tutorialSidebar"},{"id":"develop-guid/component-market/monitoring","path":"/website/docs/develop-guid/component-market/monitoring","sidebar":"tutorialSidebar"},{"id":"develop-guid/core/concepts/buildingbase_resources","path":"/website/docs/develop-guid/core/concepts/buildingbase_resources","sidebar":"tutorialSidebar"},{"id":"develop-guid/core/concepts/component","path":"/website/docs/develop-guid/core/concepts/component","sidebar":"tutorialSidebar"},{"id":"develop-guid/core/concepts/componentplan","path":"/website/docs/develop-guid/core/concepts/componentplan","sidebar":"tutorialSidebar"},{"id":"develop-guid/core/concepts/imageoverride","path":"/website/docs/develop-guid/core/concepts/imageoverride","sidebar":"tutorialSidebar"},{"id":"develop-guid/core/concepts/rating","path":"/website/docs/develop-guid/core/concepts/rating","sidebar":"tutorialSidebar"},{"id":"develop-guid/core/concepts/repository","path":"/website/docs/develop-guid/core/concepts/repository","sidebar":"tutorialSidebar"},{"id":"develop-guid/core/concepts/subscription","path":"/website/docs/develop-guid/core/concepts/subscription","sidebar":"tutorialSidebar"},{"id":"develop-guid/core/intro","path":"/website/docs/develop-guid/core/intro","sidebar":"tutorialSidebar"},{"id":"develop-guid/core/rating/enablerating","path":"/website/docs/develop-guid/core/rating/enablerating","sidebar":"tutorialSidebar"},{"id":"develop-guid/core/rating/rating","path":"/website/docs/develop-guid/core/rating/","sidebar":"tutorialSidebar"},{"id":"develop-guid/intro","path":"/website/docs/develop-guid/intro","sidebar":"tutorialSidebar"},{"id":"develop-guid/lowcode-development/development_pattern","path":"/website/docs/develop-guid/lowcode-development/development_pattern","sidebar":"tutorialSidebar"},{"id":"develop-guid/lowcode-development/development/bff-apis","path":"/website/docs/develop-guid/lowcode-development/development/bff-apis","sidebar":"tutorialSidebar"},{"id":"develop-guid/lowcode-development/development/develop-hello-world","path":"/website/docs/develop-guid/lowcode-development/development/develop-hello-world","sidebar":"tutorialSidebar"},{"id":"develop-guid/lowcode-development/development/frontend","path":"/website/docs/develop-guid/lowcode-development/development/frontend","sidebar":"tutorialSidebar"},{"id":"develop-guid/lowcode-development/development/frontend-low-code","path":"/website/docs/develop-guid/lowcode-development/development/frontend-low-code","sidebar":"tutorialSidebar"},{"id":"develop-guid/lowcode-development/intro","path":"/website/docs/develop-guid/lowcode-development/intro","sidebar":"tutorialSidebar"},{"id":"develop-guid/privatecluster","path":"/website/docs/develop-guid/privatecluster","sidebar":"tutorialSidebar"},{"id":"FAQ","path":"/website/docs/FAQ","sidebar":"tutorialSidebar"},{"id":"intro","path":"/website/docs/intro","sidebar":"tutorialSidebar"},{"id":"quick-start/quick-experience","path":"/website/docs/quick-start/quick-experience","sidebar":"tutorialSidebar"},{"id":"quick-start/quick-install","path":"/website/docs/quick-start/quick-install","sidebar":"tutorialSidebar"},{"id":"user-guid/component_anagement","path":"/website/docs/user-guid/component_anagement","sidebar":"tutorialSidebar"},{"id":"user-guid/component_market","path":"/website/docs/user-guid/component_market","sidebar":"tutorialSidebar"},{"id":"user-guid/component_rating","path":"/website/docs/user-guid/component_rating","sidebar":"tutorialSidebar"},{"id":"user-guid/repository_anagement","path":"/website/docs/user-guid/repository_anagement","sidebar":"tutorialSidebar"},{"id":"version","path":"/website/docs/version","sidebar":"tutorialSidebar"},{"id":"/category/\u5feb\u901f\u5f00\u59cb","path":"/website/docs/category/\u5feb\u901f\u5f00\u59cb","sidebar":"tutorialSidebar"},{"id":"/category/\u5185\u6838kit","path":"/website/docs/category/\u5185\u6838kit","sidebar":"tutorialSidebar"},{"id":"/category/\u6982\u5ff5","path":"/website/docs/category/\u6982\u5ff5","sidebar":"tutorialSidebar"},{"id":"/category/\u7ec4\u4ef6\u8bc4\u6d4b","path":"/website/docs/category/\u7ec4\u4ef6\u8bc4\u6d4b","sidebar":"tutorialSidebar"},{"id":"/category/\u5e95\u5ea7kit","path":"/website/docs/category/\u5e95\u5ea7kit","sidebar":"tutorialSidebar"},{"id":"/category/\u81ea\u5b9a\u4e49\u914d\u7f6e","path":"/website/docs/category/\u81ea\u5b9a\u4e49\u914d\u7f6e","sidebar":"tutorialSidebar"},{"id":"/category/\u4f4e\u7801-kit","path":"/website/docs/category/\u4f4e\u7801-kit","sidebar":"tutorialSidebar"},{"id":"/category/\u7ec4\u4ef6\u5f00\u53d1","path":"/website/docs/category/\u7ec4\u4ef6\u5f00\u53d1","sidebar":"tutorialSidebar"},{"id":"/category/\u7ec4\u4ef6\u5e02\u573a","path":"/website/docs/category/\u7ec4\u4ef6\u5e02\u573a","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/website/docs/intro","label":"\u4ea7\u54c1\u4ecb\u7ecd"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"zh-Hans","locales":["zh-Hans","en"],"path":"i18n","currentLocale":"zh-Hans","localeConfigs":{"zh-Hans":{"label":"\u4e2d\u6587","direction":"ltr","htmlLang":"zh-Hans","calendar":"gregory","path":"zh-Hans"},"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"2.4.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.0"},"custom-docusaurus-plugin":{"type":"project"}}}'),u={siteConfig:o.default,siteMetadata:s,globalData:a,i18n:i,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),o=n(412),a=n(5742),i=n(8780),l=n(7961);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(p,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(a.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class p extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294),o=n(405);function a(e){return r.createElement(o.ql,e)}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7462),o=n(7294),a=n(3727),i=n(8780),l=n(2263),s=n(3919),u=n(412);const c=o.createContext({collectLink:()=>{}});var d=n(4996);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:g,"data-noBrokenLinkCheck":h,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,l.Z)(),{withBaseUrl:k}=(0,d.C)(),E=(0,o.useContext)(c),S=(0,o.useRef)(null);(0,o.useImperativeHandle)(t,(()=>S.current));const x=p||f;const _=(0,s.Z)(x),C=x?.replace("pathname://","");let T=void 0!==C?(L=C,b&&(e=>e.startsWith("/"))(L)?k(L):L):void 0;var L;T&&_&&(T=(0,i.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:w}));const A=(0,o.useRef)(!1),P=n?a.OL:a.rU,N=u.Z.canUseIntersectionObserver,R=(0,o.useRef)(),O=()=>{A.current||null==T||(window.docusaurus.preload(T),A.current=!0)};(0,o.useEffect)((()=>(!N&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{N&&R.current&&R.current.disconnect()})),[R,T,N,_]);const I=T?.startsWith("#")??!1,D=!T||!_||I;return D||h||E.collectLink(T),D?o.createElement("a",(0,r.Z)({ref:S,href:T},x&&!_&&{target:"_blank",rel:"noopener noreferrer"},v)):o.createElement(P,(0,r.Z)({},v,{onMouseEnter:O,onTouchStart:O,innerRef:e=>{S.current=e,N&&e&&_&&(R.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(R.current.unobserve(e),R.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),R.current.observe(e))},to:T},n&&{isActive:g,activeClassName:m}))}const f=o.forwardRef(p)},1875:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});const r=()=>null},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(7294);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var a=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return a[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return o(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:a}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,o(l,a))}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>o,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),o=n(2263),a=n(3919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,o.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:o=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,a.b)(n))return n;if(o)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294),o=n(8940);function a(){return(0,r.useContext)(o._)}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294),o=n(8934);function a(){return(0,r.useContext)(o._)}},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function o(e){const t={};return function e(n,o){Object.entries(n).forEach((n=>{let[a,i]=n;const l=o?`${o}.${a}`:a;r(i)?e(i,l):t[l]=i}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>a});var r=n(7294);const o=r.createContext(null);function a(e){let{children:t,value:n}=e;const a=r.useContext(o),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:a,value:n})),[a,n]);return r.createElement(o.Provider,{value:i},t)}},143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>g,gA:()=>p,_r:()=>c,Jo:()=>h,zh:()=>d,yW:()=>m,gB:()=>f});var r=n(6550),o=n(2263),a=n(9935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,o.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=function(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}(e,t),o=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const u={},c=()=>i("docusaurus-plugin-content-docs")??u,d=e=>function(e,t,n){void 0===t&&(t=a.m),void 0===n&&(n={});const r=i(e),o=r?.[t];if(!o&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return o}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=c(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function f(e){return d(e).versions}function m(e){const t=d(e);return l(t)}function g(e){const t=d(e),{pathname:n}=(0,r.TH)();return s(t,n)}function h(e){const t=d(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:s(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(4865),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),o=n(6809);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294);const o={iconExternalLink:"iconExternalLink_nPIU"};function a(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:o.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},7961:(e,t,n)=>{"use strict";n.d(t,{Z:()=>dt});var r=n(7294),o=n(6010),a=n(4763),i=n(1944),l=n(7462),s=n(6550),u=n(5999),c=n(5936);const d="docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,u.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function g(e){const t=e.children??m,{containerRef:n,onClick:o}=f();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,l.Z)({},e,{href:`#${d}`,onClick:o}),t))}var h=n(5281),b=n(9727);const v={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(g,{className:v.skipToContent})}var w=n(6668),k=n(9689);function E(e){let{width:t=21,height:n=21,color:o="currentColor",strokeWidth:a=1.2,className:i,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:o,strokeWidth:a},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const S={closeButton:"closeButton_CVFx"};function x(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,u.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,o.Z)("clean-btn close",S.closeButton,e.className)}),r.createElement(E,{width:14,height:14,strokeWidth:3.1}))}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,o.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function L(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:o,textColor:a,isCloseable:i}=e;return r.createElement("div",{className:T.announcementBar,style:{backgroundColor:o,color:a},role:"banner"},i&&r.createElement("div",{className:T.announcementBarPlaceholder}),r.createElement(C,{className:T.announcementBarContent}),i&&r.createElement(x,{onClick:n,className:T.announcementBarClose}))}var A=n(2961),P=n(2466);var N=n(902),R=n(3102);const O=r.createContext(null);function I(e){let{children:t}=e;const n=function(){const e=(0,A.e)(),t=(0,R.HY)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,N.D9)(a);return(0,r.useEffect)((()=>{a&&!i&&o(!0)}),[a,i]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return r.createElement(O.Provider,{value:n},t)}function D(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function M(){const e=(0,r.useContext)(O);if(!e)throw new N.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,R.HY)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:D(a)})),[o,a,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:a}=e;const{shown:i}=M();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,o.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},a)))}var B=n(2949),j=n(2389);function z(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function U(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:a,onChange:i}=e;const l=(0,j.Z)(),s=(0,u.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===a?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,o.Z)($.toggle,t)},r.createElement("button",{className:(0,o.Z)("clean-btn",$.toggleButton,!l&&$.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===a?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(z,{className:(0,o.Z)($.toggleIcon,$.lightToggleIcon)}),r.createElement(U,{className:(0,o.Z)($.toggleIcon,$.darkToggleIcon)})))}const H=r.memo(q),G={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Z(e){let{className:t}=e;const n=(0,w.L)().navbar.style,o=(0,w.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:i}=(0,B.I)();return o?null:r.createElement(H,{className:t,buttonClassName:"dark"===n?G.darkNavbarColorModeToggle:void 0,value:a,onChange:i})}var V=n(1327);function W(){return r.createElement(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,A.e)();return r.createElement("button",{type:"button","aria-label":(0,u.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(E,{color:"var(--ifm-color-emphasis-600)"}))}function Y(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(W,null),r.createElement(Z,{className:"margin-right--md"}),r.createElement(K,null))}var Q=n(9960),X=n(4996),J=n(3919);function ee(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var te=n(9471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:o,href:a,label:i,html:s,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const p=(0,X.Z)(o),f=(0,X.Z)(t),m=(0,X.Z)(a,{forcePrependBaseUrl:!0}),g=i&&a&&!(0,J.Z)(a),h=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,g&&r.createElement(te.Z,u&&{width:12,height:12}))};return a?r.createElement(Q.Z,(0,l.Z)({href:c?m:a},d,h)):r.createElement(Q.Z,(0,l.Z)({to:p,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?ee(n,t.pathname):t.pathname.startsWith(f)},d,h))}function re(e){let{className:t,isDropdownItem:n=!1,...a}=e;const i=r.createElement(ne,(0,l.Z)({className:(0,o.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},a));return n?r.createElement("li",null,i):i}function oe(e){let{className:t,isDropdownItem:n,...a}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,l.Z)({className:(0,o.Z)("menu__link",t)},a)))}function ae(e){let{mobile:t=!1,position:n,...o}=e;const a=t?oe:re;return r.createElement(a,(0,l.Z)({},o,{activeClassName:o.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ie=n(6043),le=n(8596),se=n(2263);function ue(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!ee(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ce(e){let{items:t,position:n,className:a,onClick:i,...s}=e;const u=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[u]),r.createElement("div",{ref:u,className:(0,o.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c})},r.createElement(ne,(0,l.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,o.Z)("navbar__link",a)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(xe,(0,l.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:a,onClick:i,...u}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),r.createElement("li",{className:(0,o.Z)("menu__list-item",{"menu__list-item--collapsed":p})},r.createElement(ne,(0,l.Z)({role:"button",className:(0,o.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},u,{onClick:e=>{e.preventDefault(),f()}}),u.children??u.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p},t.map(((e,t)=>r.createElement(xe,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function pe(e){let{mobile:t=!1,...n}=e;const o=t?de:ce;return r.createElement(o,n)}var fe=n(4711);function me(e){let{width:t=20,height:n=20,...o}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},o),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const ge="iconLanguage_nlXk";var he=n(1875);const be={searchBox:"searchBox_ZlJk"};function ve(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,o.Z)(n,be.searchBox)},t)}var ye=n(143),we=n(2802);var ke=n(373);const Ee=e=>e.docs.find((t=>t.id===e.mainDocId));const Se={default:ae,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:o,...a}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,se.Z)(),p=(0,fe.l)(),{search:f,hash:m}=(0,s.TH)(),g=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...o],h=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(pe,(0,l.Z)({},a,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:ge}),h),items:g}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(ve,{className:n},r.createElement(he.Z,null))},dropdown:pe,html:function(e){let{value:t,className:n,mobile:a=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,o.Z)({navbar__item:!a&&!i,"menu__list-item":a},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:o,...a}=e;const{activeDoc:i}=(0,ye.Iw)(o),s=(0,we.vY)(t,o);return null===s?null:r.createElement(ae,(0,l.Z)({exact:!0},a,{isActive:()=>i?.path===s.path||!!i?.sidebar&&i.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:o,...a}=e;const{activeDoc:i}=(0,ye.Iw)(o),s=(0,we.oz)(t,o).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(ae,(0,l.Z)({exact:!0},a,{isActive:()=>i?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:o,...a}=e;const i=(0,we.lO)(o)[0],s=t??i.label,u=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(ae,(0,l.Z)({},a,{label:s,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:o,dropdownItemsBefore:a,dropdownItemsAfter:i,...c}=e;const{search:d,hash:p}=(0,s.TH)(),f=(0,ye.Iw)(n),m=(0,ye.gB)(n),{savePreferredVersionName:g}=(0,ke.J)(n),h=[...a,...m.map((e=>{const t=f.alternateDocVersions[e.name]??Ee(e);return{label:e.label,to:`${t.path}${d}${p}`,isActive:()=>e===f.activeVersion,onClick:()=>g(e.name)}})),...i],b=(0,we.lO)(n)[0],v=t&&h.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):b.label,y=t&&h.length>1?void 0:Ee(b).path;return h.length<=1?r.createElement(ae,(0,l.Z)({},c,{mobile:t,label:v,to:y,isActive:o?()=>!1:void 0})):r.createElement(pe,(0,l.Z)({},c,{mobile:t,label:v,to:y,items:h,isActive:o?()=>!1:void 0}))}};function xe(e){let{type:t,...n}=e;const o=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=Se[o];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(a,n)}function _e(){const e=(0,A.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(xe,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Ce(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Te(){const e=0===(0,w.L)().navbar.items.length,t=M();return r.createElement(r.Fragment,null,!e&&r.createElement(Ce,{onClick:()=>t.hide()}),t.content)}function Le(){const e=(0,A.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(F,{header:r.createElement(Y,null),primaryMenu:r.createElement(_e,null),secondaryMenu:r.createElement(Te,null)}):null}const Ae={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Pe(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,o.Z)("navbar-sidebar__backdrop",e.className)}))}function Ne(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,w.L)(),i=(0,A.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,P.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=l?n(!1):i+u{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return o.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,"aria-label":(0,u.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,o.Z)("navbar","navbar--fixed-top",n&&[Ae.navbarHideable,!s&&Ae.navbarHidden],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown})},t,r.createElement(Pe,{onClick:i.toggle}),r.createElement(Le,null))}var Re=n(8780);const Oe={errorBoundaryError:"errorBoundaryError_a6uf"};function Ie(e){return r.createElement("button",(0,l.Z)({type:"button"},e),r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function De(e){let{error:t}=e;const n=(0,Re.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:Oe.errorBoundaryError},n)}class Me extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const Fe="right";function Be(e){let{width:t=30,height:n=30,className:o,...a}=e;return r.createElement("svg",(0,l.Z)({className:o,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},a),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function je(){const{toggle:e,shown:t}=(0,A.e)();return r.createElement("button",{onClick:e,"aria-label":(0,u.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(Be,null))}const ze={colorModeToggle:"colorModeToggle_DEke"};function Ue(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(Me,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(xe,e)))))}function $e(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function qe(){const e=(0,A.e)(),t=(0,w.L)().navbar.items,[n,o]=function(e){function t(e){return"left"===(e.position??Fe)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return r.createElement($e,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(je,null),r.createElement(W,null),r.createElement(Ue,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(Ue,{items:o}),r.createElement(Z,{className:ze.colorModeToggle}),!a&&r.createElement(ve,null,r.createElement(he.Z,null)))})}function He(){return r.createElement(Ne,null,r.createElement(qe,null))}function Ge(e){let{item:t}=e;const{to:n,href:o,label:a,prependBaseUrlToHref:i,...s}=t,u=(0,X.Z)(n),c=(0,X.Z)(o,{forcePrependBaseUrl:!0});return r.createElement(Q.Z,(0,l.Z)({className:"footer__link-item"},o?{href:i?c:o}:{to:u},s),a,o&&!(0,J.Z)(o)&&r.createElement(te.Z,null))}function Ze(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(Ge,{item:t}))}function Ve(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(Ze,{key:t,item:e})))))}function We(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(Ve,{key:t,column:e}))))}function Ke(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function Ye(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(Ge,{item:t})}function Qe(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(Ye,{item:e}),t.length!==n+1&&r.createElement(Ke,null))))))}function Xe(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(We,{columns:t}):r.createElement(Qe,{links:t})}var Je=n(941);const et={footerLogoLink:"footerLogoLink_BH7S"};function tt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),a={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(Je.Z,{className:(0,o.Z)("footer__logo",t.className),alt:t.alt,sources:a,width:t.width,height:t.height,style:t.style})}function nt(e){let{logo:t}=e;return t.href?r.createElement(Q.Z,{href:t.href,className:et.footerLogoLink,target:t.target},r.createElement(tt,{logo:t})):r.createElement(tt,{logo:t})}function rt(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function ot(e){let{style:t,links:n,logo:a,copyright:i}=e;return r.createElement("footer",{className:(0,o.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(a||i)&&r.createElement("div",{className:"footer__bottom text--center"},a&&r.createElement("div",{className:"margin-bottom--sm"},a),i)))}function at(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:o,style:a}=e;return r.createElement(ot,{style:a,links:n&&n.length>0&&r.createElement(Xe,{links:n}),logo:o&&r.createElement(nt,{logo:o}),copyright:t&&r.createElement(rt,{copyright:t})})}const it=r.memo(at),lt=(0,N.Qc)([B.S,k.pl,P.OC,ke.L5,i.VC,function(e){let{children:t}=e;return r.createElement(R.n2,null,r.createElement(A.M,null,r.createElement(I,null,t)))}]);function st(e){let{children:t}=e;return r.createElement(lt,null,t)}function ut(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(Ie,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(De,{error:t})))))}const ct={mainWrapper:"mainWrapper_z2l0"};function dt(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:u}=e;return(0,b.t)(),r.createElement(st,null,r.createElement(i.d,{title:s,description:u}),r.createElement(y,null),r.createElement(L,null),r.createElement(He,null),r.createElement("div",{id:d,className:(0,o.Z)(h.k.wrapper.main,ct.mainWrapper,l)},r.createElement(a.Z,{fallback:e=>r.createElement(ut,e)},t)),!n&&r.createElement(it,null))}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),o=n(7294),a=n(9960),i=n(4996),l=n(2263),s=n(6668),u=n(941);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},l=o.createElement(u.Z,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?o.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:u}}=(0,s.L)(),{imageClassName:d,titleClassName:p,...f}=e,m=(0,i.Z)(u?.href||"/"),g=n?"":t,h=u?.alt??g;return o.createElement(a.Z,(0,r.Z)({to:m},f,u?.target&&{target:u.target}),u&&o.createElement(c,{logo:u,alt:h,imageClassName:d}),null!=n&&o.createElement("b",{className:p},n))}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294),o=n(5742);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return r.createElement(o.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),a&&r.createElement("meta",{name:"docusaurus_tag",content:a}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),a&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:a}))}},941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7462),o=n(7294),a=n(6010),i=n(2389),l=n(2949);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,i.Z)(),{colorMode:n}=(0,l.I)(),{sources:u,className:c,alt:d,...p}=e,f=t?"dark"===n?["dark"]:["light"]:["light","dark"];return o.createElement(o.Fragment,null,f.map((e=>o.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,a.Z)(s.themedImage,s[`themedImage--${e}`],c)},p)))))}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>l,z:()=>h});var r=n(7462),o=n(7294),a=n(412);const i="ease-in-out";function l(e){let{initialState:t}=e;const[n,r]=(0,o.useState)(t??!1),a=(0,o.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:a}}const s={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function c(e,t){const n=t?s:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d(e){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return 0;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}function p(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const a=(0,o.useRef)(!1);(0,o.useEffect)((()=>{const e=t.current;function o(){const t=function(){const t=e.scrollHeight;return{transition:`height ${r?.duration??d(t)}ms ${r?.easing??i}`,height:`${t}px`}}();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return c(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(o(),requestAnimationFrame((()=>{e.style.height=s.height,e.style.overflow=s.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{o()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function f(e){if(!a.Z.canUseDOM)return e?s:u}function m(e){let{as:t="div",collapsed:n,children:r,animation:a,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const u=(0,o.useRef)(null);return p({collapsibleRef:u,collapsed:n,animation:a}),o.createElement(t,{ref:u,style:s?void 0:f(n),onTransitionEnd:e=>{"height"===e.propertyName&&(c(u.current,n),i?.(n))},className:l},r)}function g(e){let{collapsed:t,...n}=e;const[a,i]=(0,o.useState)(!t),[l,s]=(0,o.useState)(t);return(0,o.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,o.useLayoutEffect)((()=>{a&&s(t)}),[a,t]),a?o.createElement(m,(0,r.Z)({},n,{collapsed:l})):null}function h(e){let{lazy:t,...n}=e;const r=t?g:m;return o.createElement(r,n)}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>f});var r=n(7294),o=n(2389),a=n(12),i=n(902),l=n(6668);const s=(0,a.WA)("docusaurus.announcement.dismiss"),u=(0,a.WA)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),p=r.createContext(null);function f(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,o.Z)(),[n,a]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{a(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(p.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(p);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>h,S:()=>g});var r=n(7294),o=n(412),a=n(902),i=n(12),l=n(6668);const s=r.createContext(void 0),u="theme",c=(0,i.WA)(u),d={light:"light",dark:"dark"},p=e=>e===d.dark?d.dark:d.light,f=e=>o.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e),m=e=>{c.set(p(e))};function g(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[o,a]=(0,r.useState)(f(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(a(t),o&&m(t)):(a(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(o))}),[o]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&i(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:o,setColorMode:i,get isDarkTheme(){return o===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[o,i])}();return r.createElement(s.Provider,{value:n},t)}function h(){const e=(0,r.useContext)(s);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>v,L5:()=>h});var r=n(7294),o=n(143),a=n(9935),i=n(6668),l=n(2802),s=n(902),u=n(12);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()}},p=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const f=r.createContext(null);function m(){const e=(0,o._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,l]=(0,r.useState)((()=>p(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=m();return r.createElement(f.Provider,{value:n},t)}function h(e){let{children:t}=e;return l.cE?r.createElement(g,null,t):r.createElement(r.Fragment,null,t)}function b(){const e=(0,r.useContext)(f);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function v(e){void 0===e&&(e=a.m);const t=(0,o.zh)(e),[n,i]=b(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(7294),o=n(902);const a=Symbol("EmptyContext"),i=r.createContext(a);function l(e){let{children:t,name:n,items:o}=e;const a=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return r.createElement(i.Provider,{value:a},t)}function s(){const e=(0,r.useContext)(i);if(e===a)throw new o.i6("DocsSidebarProvider");return e}},4477:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>i});var r=n(7294),o=n(902);const a=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(a.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(a);if(null===e)throw new o.i6("DocsVersionProvider");return e}},2961:(e,t,n)=>{"use strict";n.d(t,{M:()=>p,e:()=>f});var r=n(7294),o=n(3102),a=n(7524),i=n(6550),l=(n(1688),n(902));function s(e){!function(e){const t=(0,i.k6)(),n=(0,l.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var u=n(6668);const c=r.createContext(void 0);function d(){const e=function(){const e=(0,o.HY)(),{items:t}=(0,u.L)().navbar;return 0===t.length&&!e.component}(),t=(0,a.i)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1);s((()=>{if(i)return l(!1),!1}));const c=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:i})),[e,n,c,i])}function p(e){let{children:t}=e;const n=d();return r.createElement(c.Provider,{value:n},t)}function f(){const e=r.useContext(c);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(7294),o=n(902);const a=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(a.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(a);if(!e)throw new o.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(a);if(!i)throw new o.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,o.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>o,t:()=>a});var r=n(7294);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(7294),o=n(412);const a={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return o.Z.canUseDOM?window.innerWidth>i?a.desktop:a.mobile:a.ssr}const s=!1;function u(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},2802:(e,t,n)=>{"use strict";n.d(t,{MN:()=>_,Wl:()=>m,_F:()=>v,cE:()=>p,jA:()=>g,xz:()=>f,hI:()=>x,lO:()=>k,vY:()=>S,oz:()=>E,s1:()=>w});var r=n(7294),o=n(6550),a=n(8790),i=n(143),l=n(373),s=n(4477),u=n(1116);function c(e){return Array.from(new Set(e))}var d=n(8596);const p=!!i._r;function f(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=m(t);if(e)return e}}}function g(){const{pathname:e}=(0,o.TH)(),t=(0,u.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=y({sidebarItems:t.items,pathname:e,onlyCategories:!0}).slice(-1)[0];if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const h=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),b=(e,t)=>e.some((e=>v(e,t)));function v(e,t){return"link"===e.type?h(e.href,t):"category"===e.type&&(h(e.href,t)||b(e.items,t))}function y(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const o=[];return function e(t){for(const a of t)if("category"===a.type&&((0,d.Mg)(a.href,n)||e(a.items))||"link"===a.type&&(0,d.Mg)(a.href,n)){return r&&"category"!==a.type||o.unshift(a),!0}return!1}(t),o}function w(){const e=(0,u.V)(),{pathname:t}=(0,o.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?y({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),o=(0,i.yW)(e);return(0,r.useMemo)((()=>c([t,n,o].filter(Boolean))),[t,n,o])}function E(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${Object.keys(t).join("\n- ")}`);return r[1]}),[e,n])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${c(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function x(e){let{route:t,versionMetadata:n}=e;const r=(0,o.TH)(),i=t.routes,l=i.find((e=>(0,o.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,a.H)(i),sidebarName:s,sidebarItems:u}}function _(e){return e.filter((e=>"category"!==e.type||!!m(e)))}},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>p,d:()=>c,VC:()=>f});var r=n(7294),o=n(6010),a=n(5742),i=n(226);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(4996),u=n(2263);function c(e){let{title:t,description:n,keywords:o,image:i,children:l}=e;const c=function(e){const{siteConfig:t}=(0,u.Z)(),{title:n,titleDelimiter:r}=t;return e?.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.C)(),p=i?d(i,{absolute:!0}):void 0;return r.createElement(a.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),o&&r.createElement("meta",{name:"keywords",content:Array.isArray(o)?o.join(","):o}),p&&r.createElement("meta",{property:"og:image",content:p}),p&&r.createElement("meta",{name:"twitter:image",content:p}),l)}const d=r.createContext(void 0);function p(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,o.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(a.Z,null,r.createElement("html",{className:l})),n)}function f(e){let{children:t}=e;const n=l(),a=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(p,{className:(0,o.Z)(a,i)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>a});var r=n(7294);const o=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function a(e){const t=(0,r.useRef)(e);return o((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return o((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),o=n(723),a=n(2263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,a.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>p,OC:()=>s,RF:()=>d});var r=n(7294),o=n(412),a=n(2389),i=n(902);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const c=()=>o.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),o=(0,r.useRef)(c()),a=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function p(){const e=(0,r.useRef)(null),t=(0,a.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&ot&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>r,os:()=>o});n(2263);const r="default";function o(e,t){return`docs-${e}-${t}`}},12:(e,t,n)=>{"use strict";n.d(t,{WA:()=>s});n(7294),n(1688);const r="localStorage";function o(e){let{key:t,oldValue:n,newValue:r,storage:o}=e;if(n===r)return;const a=document.createEvent("StorageEvent");a.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,o),window.dispatchEvent(a)}function a(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=a(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),o({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),o({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>a});var r=n(2263),o=n(6550);function a(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:a}}=(0,r.Z)(),{pathname:i}=(0,o.TH)(),l=a===n?e:e.replace(`/${a}/`,"/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:o}=e;return`${o?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),o=n(6550),a=n(902);function i(e){const t=(0,o.TH)(),n=(0,a.D9)(t),i=(0,a.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var r=n(2263);function o(){return(0,r.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(o,a)}},4143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="post-content";var o=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}});var a=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return a.getErrorCausalChain}})},6010:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;to});const o=function(){for(var e,t,n=0,o="";n{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>f,PP:()=>L,Ep:()=>p});var r=n(7462);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r=0;p--){var f=i[p];"."===f?a(i,p):".."===f?(a(i,p),d++):d&&(a(i,p),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8776);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function f(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,g(),w.location);c.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(9864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=f(n);o&&o!==m&&e(t,o,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),g=s(n),h=0;h{"use strict";e.exports=function(e,t,n,r,o,a,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,o,a,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},2497:(e,t,n)=>{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),u=a.querySelector(r.barSelector),c=r.speed,d=r.easing;return a.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){s(a,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),l=e?"-100":a(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&f(o),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function u(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=p(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,o){for(var a,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s{var r=n(5826);e.exports=f,e.exports.parse=a,e.exports.compile=function(e,t){return l(a(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=p;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],p=n[1],f=n.index;if(l+=e.slice(i,f),i=f+d.length,p)l+=p[1];else{var m=e[i],g=n[2],h=n[3],b=n[4],v=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=g&&null!=m&&m!==g,E="+"===y||"*"===y,S="?"===y||"*"===y,x=n[2]||c,_=b||v;r.push({name:h||a++,prefix:g||"",delimiter:x,optional:S,repeat:E,partial:k,asterisk:!!w,pattern:_?u(_):w?".*":"[^"+s(x)+"]+?"})}}return i{"use strict";n.d(t,{Z:()=>a});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=d.reach);S+=E.value.length,E=E.next){var x=E.value;if(t.length>e.length)return;if(!(x instanceof o)){var _,C=1;if(v){if(!(_=a(k,S,e,b))||_.index>=e.length)break;var T=_.index,L=_.index+_[0].length,A=S;for(A+=E.value.length;T>=A;)A+=(E=E.next).value.length;if(S=A-=E.value.length,E.value instanceof o)continue;for(var P=E;P!==t.tail&&(Ad.reach&&(d.reach=I);var D=E.prev;if(R&&(D=s(t,D,R),S+=R.length),u(t,D,C),E=s(t,D,new o(p,h?r.tokenize(N,h):N,y,N)),O&&s(t,E,O),C>1){var M={cause:p+","+m,reach:I};i(e,t,n,E.prev,S,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function u(e,t,n){for(var r=t.next,o=0;o"+a.content+""},r}(),o=r;r.default=r,o.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},o.languages.markup.tag.inside["attr-value"].inside.entity=o.languages.markup.entity,o.languages.markup.doctype.inside["internal-subset"].inside=o.languages.markup,o.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(o.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:o.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:o.languages[t]};var a={};a[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},o.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(o.languages.markup.tag,"addAttribute",{value:function(e,t){o.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:o.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),o.languages.html=o.languages.markup,o.languages.mathml=o.languages.markup,o.languages.svg=o.languages.markup,o.languages.xml=o.languages.extend("markup",{}),o.languages.ssml=o.languages.xml,o.languages.atom=o.languages.xml,o.languages.rss=o.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,i=0;i]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},o.languages.c=o.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),o.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),o.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},o.languages.c.string],char:o.languages.c.char,comment:o.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:o.languages.c}}}}),o.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete o.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(o),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(o),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},o={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:o,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:o})}(o),o.languages.javascript=o.languages.extend("clike",{"class-name":[o.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),o.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,o.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:o.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:o.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:o.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:o.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:o.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),o.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:o.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),o.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),o.languages.markup&&(o.languages.markup.tag.addInlined("script","javascript"),o.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),o.languages.js=o.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(o),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+o+"|"+a+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(a),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(o),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(o),o.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:o.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},o.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var l=p(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s=0&&f(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,o=r.inside["interpolation-punctuation"],a=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var o={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",o),o.tokens=e.tokenize(o.code,o.grammar),e.hooks.run("after-tokenize",o),o.tokens}function u(t){var n={};n["interpolation-punctuation"]=o;var a=e.tokenize(t,n);if(3===a.length){var i=[1,1];i.push.apply(i,s(a[1],e.languages.javascript,"javascript")),a.splice.apply(a,i)}return new e.Token("interpolation",a,r.alias,t)}function c(t,n,r){var o=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),i=0,c={},d=s(o.map((function(e){if("string"==typeof e)return e;for(var n,o=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=o,n})).join(""),n,r),p=Object.keys(c);return i=0,function e(t){for(var n=0;n=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var o=p[i],a="string"==typeof r?r:r.content,l=a.indexOf(o);if(-1!==l){++i;var s=a.substring(0,l),d=u(c[o]),f=a.substring(l+o.length),m=[];if(s&&m.push(s),m.push(d),f){var g=[f];e(g),m.push.apply(m,g)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var h=r.content;Array.isArray(h)?e(h):e([h])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,o=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(o),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function a(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return o})),RegExp(e,t)}o=a(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:a(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===i(o.content[0].content[1])&&n.pop():"/>"===o.content[o.content.length-1].content||n.push({tagName:i(o.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof o)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(o);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}o.content&&"string"!=typeof o.content&&l(o.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(o),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],o=[];/^\w+$/.test(n)||o.push(/\w+/.exec(n)[0]),"diff"===n&&o.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:o,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(o),o.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},o.languages.go=o.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),o.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete o.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,l=i.length;-1!==n.code.indexOf(o=t(r,l));)++l;return i[l]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(l){for(var s=0;s=a.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=a[o],d=n.tokenStack[c],p="string"==typeof u?u:u.content,f=t(r,c),m=p.indexOf(f);if(m>-1){++o;var g=p.substring(0,m),h=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];g&&v.push.apply(v,i([g])),v.push(h),b&&v.push.apply(v,i([b])),"string"==typeof u?l.splice.apply(l,[s,1].concat(v)):u.content=v}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(o),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(o),o.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},o.languages.webmanifest=o.languages.json,o.languages.less=o.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),o.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),o.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},o.languages.objectivec=o.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete o.languages.objectivec["class-name"],o.languages.objc=o.languages.objectivec,o.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},o.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},o.languages.python["string-interpolation"].inside.interpolation.inside.rest=o.languages.python,o.languages.py=o.languages.python,o.languages.reason=o.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),o.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete o.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(o),o.languages.scss=o.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),o.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),o.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),o.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),o.languages.scss.atrule.inside.rest=o.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(o),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(o),o.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const a=o},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),o=n(9642),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),a.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=6726},6500:(e,t,n)=>{var r={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in o(t,a),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var p,f=r(s),m=c;o(m);){for(var g in p={},m){var h=s[g];t(h&&h.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in c))for(var v in f(b))if(v in c){p[b]=!0;break}for(var y in m=p)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var o,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)o=r(e);else{var p=i(c.map((function(e){var t=u(e);return delete s[e],t})));a?o=a(p,(function(){return r(e)})):r(e)}return l[e]=o}for(var c in n)u(c);var d=[];for(var p in s)d.push(l[p]);return i(d)}(f,c,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),o=n(7418),a=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n