PageSourceSearch

https://docs-spectrocloud.netlify.app/assets/js/acb4feff.aef33541.js

js docs-spectrocloud.netlify.app collected 2026-10-03 10:41:33 UTC 23,411 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkspectro_cloud_docs=self.webpackChunkspectro_cloud_docs||[]).push([["12587"],{193692:function(e,t,s){s.r(t),s.d(t,{frontMatter:()=>r,toc:()=>d,default:()=>h,metadata:()=>n,assets:()=>a,contentTitle:()=>o});var n=JSON.parse('{"id":"tutorials/getting-started/palette-edge/local-management/deploy-edge-cluster","title":"Deploy Edge Cluster","description":"Get started with Kubernetes at the edge. Learn how to deploy an Edge cluster with Palette.","source":"@site/docs/docs-content/tutorials/getting-started/palette-edge/local-management/deploy-edge-cluster.md","sourceDirName":"tutorials/getting-started/palette-edge/local-management","slug":"/tutorials/getting-started/palette-edge/local-management/deploy-edge-cluster","permalink":"/tutorials/getting-started/palette-edge/local-management/deploy-edge-cluster","draft":false,"unlisted":false,"editUrl":"https://github.com/spectrocloud/librarium/blob/master/docs/docs-content/tutorials/getting-started/palette-edge/local-management/deploy-edge-cluster.md","tags":[{"inline":true,"label":"getting-started","permalink":"/tags/getting-started"},{"inline":true,"label":"tutorial","permalink":"/tags/tutorial"},{"inline":true,"label":"locally-managed","permalink":"/tags/locally-managed"},{"inline":true,"label":"edge","permalink":"/tags/edge"}],"version":"current","lastUpdatedAt":1777826507000,"sidebarPosition":60,"frontMatter":{"sidebar_label":"Deploy Edge Cluster","title":"Deploy Edge Cluster","description":"Get started with Kubernetes at the edge. Learn how to deploy an Edge cluster with Palette.","icon":"","hide_table_of_contents":false,"sidebar_position":60,"tags":["getting-started","tutorial","locally-managed","edge"]},"sidebar":"tutorialSidebar","previous":{"title":"Build Cluster Definition","permalink":"/tutorials/getting-started/palette-edge/local-management/build-cluster-definition"},"next":{"title":"Additional Capabilities","permalink":"/tutorials/getting-started/additional-capabilities/"}}'),i=s(474848),l=s(884429);let r={sidebar_label:"Deploy Edge Cluster",title:"Deploy Edge Cluster",description:"Get started with Kubernetes at the edge. Learn how to deploy an Edge cluster with Palette.",icon:"",hide_table_of_contents:!1,sidebar_position:60,tags:["getting-started","tutorial","locally-managed","edge"]},o,a={},d=[{value:"Prerequisites",id:"prerequisites",level:2},{value:"Deploy Edge Cluster",id:"deploy-edge-cluster",level:2},{value:"Validate",id:"validate",level:2},{value:"Clean Up",id:"clean-up",level:2},{value:"Cluster and Cluster Profile",id:"cluster-and-cluster-profile",level:3},{value:"Edge Host",id:"edge-host",level:3},{value:"Edge Artifacts",id:"edge-artifacts",level:3},{value:"Wrap-up",id:"wrap-up",level:2},{value:"\u{1F9D1}\u200D\u{1F680} Catch up with Spacetastic",id:"-catch-up-with-spacetastic",level:2}];function c(e){let t={a:"a",admonition:"admonition",blockquote:"blockquote",code:"code",h2:"h2",h3:"h3",img:"img",li:"li",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,l.R)(),...e.components},{TabItem:n,Tabs:r}=t;return n||g("TabItem",!0),r||g("Tabs",!0),(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"This is the final tutorial in the Local Palette Edge Management series. It teaches you how to deploy an Edge Kubernetes\ncluster to a locally managed Edge device using the provider images, Edge host, cluster profile, and cluster definition\ncreated in the previous tutorials."}),"\n",(0,i.jsxs)(t.p,{children:["You will learn how to select the desired cluster definition, assign the registered Edge host to the cluster, and verify\nthe deployment was successful by accessing the demo application included in the cluster profile,\n",(0,i.jsx)(t.a,{href:"https://github.com/spectrocloud/hello-universe",children:"Hello Universe"}),"."]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Palette Edge architecture diagram",src:s(363408).A+"",width:"1920",height:"1080"})}),"\n",(0,i.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["You have completed the ",(0,i.jsx)(t.a,{href:"/tutorials/getting-started/palette-edge/local-management/build-edge-artifacts",children:"Build E
1dge Artifacts"})," tutorial and pushed the provider images to a\nregistry."]}),"\n",(0,i.jsxs)(t.li,{children:["You have completed the ",(0,i.jsx)(t.a,{href:"/tutorials/getting-started/palette-edge/local-management/prepare-edge-host",children:"Prepare Edge Host"})," tutorial and have a registered Edge host in\nPalette."]}),"\n",(0,i.jsxs)(t.li,{children:["You have completed the ",(0,i.jsx)(t.a,{href:"/tutorials/getting-started/palette-edge/local-management/edge-cluster-profile",children:"Create Edge Cluster Profile"})," tutorial and have an Edge cluster\nprofile created in Palette."]}),"\n",(0,i.jsxs)(t.li,{children:["You have completed the ",(0,i.jsx)(t.a,{href:"/tutorials/getting-started/palette-edge/local-management/build-cluster-definition",children:"Build Cluster Definition"})," tutorial and have a cluster\ndefinition downloaded and accessible."]}),"\n",(0,i.jsx)(t.li,{children:"You have a DHCP-enabled network with one available IP address on the same network as the Edge host. You will use this\nIP as the cluster's Virtual IP (VIP) address."}),"\n"]}),"\n",(0,i.jsx)(t.h2,{id:"deploy-edge-cluster",children:"Deploy Edge Cluster"}),"\n",(0,i.jsxs)(t.p,{children:["Log in to Local UI (",(0,i.jsx)(t.code,{children:"https://<ip-of-edge:5080"}),") with the username and password you defined in the\n",(0,i.jsx)(t.a,{href:"/tutorials/getting-started/palette-edge/local-management/prepare-user-data",children:"Prepare User Data"})," tutorial."]}),"\n",(0,i.jsxs)(t.p,{children:["From the left main menu, select ",(0,i.jsx)(t.strong,{children:"Cluster"}),", then click ",(0,i.jsx)(t.strong,{children:"Create Cluster"}),"."]}),"\n",(0,i.jsxs)(t.p,{children:["Enter ",(0,i.jsx)(t.code,{children:"local-edge-cluster"})," in the ",(0,i.jsx)(t.strong,{children:"Cluster name"})," field, and click ",(0,i.jsx)(t.strong,{children:"Next"})," to proceed."]}),"\n",(0,i.jsxs)(t.p,{children:["On the ",(0,i.jsx)(t.strong,{children:"Cluster Profile"})," page, click the upload button to browse and upload the cluster definition TGZ file."]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Screenshot of the Upload button on the cluster config page",src:s(225549).A+"",width:"1906",height:"948"})}),"\n",(0,i.jsxs)(t.p,{children:["Verify that the ",(0,i.jsx)(t.strong,{children:"Imported Applications preview"})," matches the list of packs selected when completing the\n",(0,i.jsx)(t.a,{href:"/tutorials/getting-started/palette-edge/local-management/edge-cluster-profile",children:"Edge Cluster Profile"})," tutorial."]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Screenshot of imported cluster definition",src:s(296064).A+"",width:"1907",height:"951"})}),"\n",(0,i.jsxs)(t.p,{children:["Click ",(0,i.jsx)(t.strong,{children:"Next"})," to proceed."]}),"\n",(0,i.jsx)(t.admonition,{type:"tip",children:(0,i.jsxs)(t.p,{children:["We recommend enabling the overlay network configuration when using DHCP-enabled networks to ensure stable IP addresses\nfor the cluster. However, for education purposes, this tutorial does not use the overlay network. For production use or\ndetailed configuration instructions, refer to the\n",(0,i.jsx)(t.a,{href:"/clusters/edge/networking/vxlan-overlay",children:"Enable Overlay Network"})," guide."]})}),"\n",(0,i.jsxs)(t.p,{children:["On the ",(0,i.jsx)(t.strong,{children:"Cluster Config"})," page, enter the ",(0,i.jsx)(t.strong,{children:"Virtual IP Address (VIP)"})," value . The following image displays the\n",(0,i.jsx)(t.strong,{children:"Cluster Config"})," page with the ",(0,i.jsx)(t.strong,{children:"Network Time Protocol (NTP)"})," and ",(0,i.jsx)(t.strong,{children:"Virtual IP Address"})," values provided."]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"Screenshot of Cluster Config page",src:s(732288).A+"",width:"1908",height:"951"})}),"\n",(0,i.jsxs)(t.admonition,{type:"tip",children:[(0,i.jsxs)(t.p,{children:["You can use the ",(0,i.jsx)(t.a,{href:"https://nmap.org/book/man.html",children:"nmap"})," tool to scan your network and check which IP addresses are in\nuse. Issue the following command in your terminal, replacing the example CIDR ",(0,i.jsx)(t.code,{children:"192.168.0.0/24"})," with your network's CIDR."]}),(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"sudo nmap -sn 192.168.0.0/24\n"})}),(0,i.jsx)(t.p,{children:"The output displays the IP addresses that are currently in use on your network."})]}),"\n",(0,i.jsxs)(t.p,{children:["Optionally, you can also select an SSH key to access the cluster's nodes and specify a Network Time Protocol (NTP)\nOptionally, you can also select the ",(0,i.jsx)(t.strong,{children:"SSH keys"})," to access the cluster's nodes and specify the ",(0,i.jsx)(t.strong,{children:"Network Time Protocol\n(NTP)"})," server list."]}),"\n",(0,i.jsxs)(t.p,{children:["Click ",(0,i.jsx)(t.strong,{children:"Next"})," to continue."]}),"\n",(0,i.jsxs)(t.p,{children:["In the ",(0,i.jsx)(t.strong,{children:"Node Config"})," section, provide the following details for the control plane pool. This tutorial deploys a\nsingle-node Edge cluster with no worker pool."]}
1),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{children:(0,i.jsx)(t.strong,{children:"Field"})}),(0,i.jsx)(t.th,{children:(0,i.jsx)(t.strong,{children:"Value"})})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"Node pool name"})}),(0,i.jsx)(t.td,{children:(0,i.jsx)(t.code,{children:"control-plane-pool"})})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"Allow worker capability"})}),(0,i.jsx)(t.td,{children:"Yes"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"Additional Labels (Optional)"})}),(0,i.jsx)(t.td,{children:"None"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{children:(0,i.jsx)(t.strong,{children:"Taints (Optional)"})}),(0,i.jsx)(t.td,{children:"None"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsxs)(t.td,{children:[(0,i.jsx)(t.strong,{children:"Pool Configuration"})," > ",(0,i.jsx)(t.strong,{children:"Add Edge Hosts"})]}),(0,i.jsxs)(t.td,{children:["Select the Edge host configured in the ",(0,i.jsx)(t.a,{href:"/tutorials/getting-started/palette-edge/local-management/prepare-edge-host",children:"Prepare Edge Host"})," tutorial to become the node of your cluster."]})]})]})]}),"\n",(0,i.jsx)(t.p,{children:"The following image shows the Edge host selection in the control plane pool."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"A screenshot of the nodes config during cluster deployment.",src:s(152205).A+"",width:"1903",height:"951"})}),"\n",(0,i.jsxs)(t.p,{children:["Optionally, you can specify which Network Interface Card (NIC) to use for the Edge device by selecting ",(0,i.jsx)(t.strong,{children:"Auto"})," under\n",(0,i.jsx)(t.strong,{children:"NIC Name"})," and choosing the NIC."]}),"\n",(0,i.jsxs)(t.p,{children:["Next, select ",(0,i.jsx)(t.strong,{children:"Remove"})," to delete the worker pool and click ",(0,i.jsx)(t.strong,{children:"Review"})," to proceed with the deployment."]}),"\n",(0,i.jsxs)(t.p,{children:["The ",(0,i.jsx)(t.strong,{children:"Review"})," section allows you to review the cluster configuration. If everything looks correct, select ",(0,i.jsx)(t.strong,{children:"Deploy\nCluster"}),"."]}),"\n",(0,i.jsxs)(t.p,{children:["After you create the cluster, the Palette Edge host agent pulls the provider images you built in the\n",(0,i.jsx)(t.a,{href:"/tutorials/getting-started/palette-edge/local-management/build-edge-artifacts",children:"Build Edge Artifacts"})," tutorial and starts the installation process."]}),"\n",(0,i.jsx)(t.p,{children:"The cluster deployment may take 15 to 30 minutes, depending on the host and cluster configuration. The Edge Host will\nalso reboot multiple times, which will require you to log in and refresh the screen to display the latest info."}),"\n",(0,i.jsxs)(t.p,{children:["You can track the installation progress in Edge Local UI. From the left menu, select ",(0,i.jsx)(t.strong,{children:"Cluster"})," to monitor the process\non the Overview page. The ",(0,i.jsx)(t.strong,{children:"Events"})," tab provides detailed logs."]}),"\n",(0,i.jsx)(t.h2,{id:"validate",children:"Validate"}),"\n",(0,i.jsxs)(t.p,{children:["Log in to the Local UI, and select ",(0,i.jsx)(t.strong,{children:"Cluster"})," to open its ",(0,i.jsx)(t.strong,{children:"Overview"})," tab."]}),"\n",(0,i.jsxs)(t.p,{children:["Confirm that your cluster displays a ",(0,i.jsx)(t.strong,{children:"Running"})," status and is listed as ",(0,i.jsx)(t.strong,{children:"Healthy"}),"."]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"A screenshot showing running and healthy status of cluster",src:s(348312).A+"",width:"1897",height:"958"})}),"\n",(0,i.jsxs)(t.p,{children:["When the Hello Universe application is deployed and ready for network traffic, the Edge Local UI exposes the service URL\nin the ",(0,i.jsx)(t.strong,{children:"Services"})," section. Click the URL on port ",(0,i.jsx)(t.strong,{children:":8080"})," to access the application's landing page."]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"A screenshot of the cluster&#39;s service ports",src:s(555053).A+"",width:"1900",height:"957"})}),"\n",(0,i.jsx)(t.p,{children:"Welcome to the Spacetastic astronomy education platform. Feel free to explore the pages to learn more about space. The\nstatistics page offers information on visitor counts for your deployed cluster."}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"A screenshot of the Hello Universe application.",src:s(223979).A+"",width:"2009",height:"1756"})}),"\n",(0,i.jsxs)(t.p,{children:["When the Harbor application is deployed and ready for network traffic, the Edge Local UI exposes the service URL in the\n",(0,i.jsx)(t.strong,{children:"Services"})," section. Click the URL on port ",(0,i.jsx)(t.strong,{children:":30003"})," to access the application's landing page. You can log in to\nHarbor using the user ",(0,i.jsx)(t.code,{children:"admin"})," and the password you set in the ",(0,i.jsx)(t.a,{href:"/tutorials/getting-started/palette-edge/local-management/edge-cluster-profile",children:"Create Edge Profile"}),"."]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"A screenshot of the Harbor Native Edge Config",src:s(399030).A+"",width:"1905",height:"952"})}),"\n",(0,i.jsx)(t.h2,{id:"clean-up",children:"Clean Up"}),"\n",(0,i.jsx)(t.p,{children:"You have successfully provisioned an Edge cluster with a three-tier demo application and Harbor registry. Use the\nfollowing steps to remove the resources created during this tutorial series."}),"\n",(0,i.jsx)(t.h3,{id:"cluster-and-cluster-profile",children:"Cluster and Cluster Profile"}),"\n",(0,i.jsxs)(t.p,{children:["To remove the Edge cluster, log in to Edge Local UI and select ",(0,i.jsx)(t.strong,{children:"Cluster"})," from the left main menu. Select ",(0,i.jsx)(t.strong,{children:"Delete\nCluster"})," from the ",(0,i.jsx)(t.strong,{children:"Actions"})," drop-down."]}),"\n",(0,i.jsx)(t.p,{children:(0,i.jsx)(t.img,{alt:"A screenshot of the Actions menu options",src:s(536366).A+"",width:"1901",height:"956"})}),"\n",(0,i.jsxs)(t.p,{children:["Select ",(0,i.jsx)(t.strong,{children:"Confirm"})," on the confirmation window. This process may take several minutes to complete and will reboot the\nEdge device multiple times."]}),"\n",(0,i.jsxs)(t.p,{children:["Once complete, log in to the Edge Local UI to verify the cluster and cluster profile are removed by navigating to\n",(0,i.jsx)(t.strong,{children:"Cluster"})," from the left main menu."]}),"\n",(0,i.jsx)(t.h3,{id:"edge-host",children:"Edge Host"}),"\n",(0,i.jsxs)(r,{groupId:"host",children:[(0,i.jsxs)(n,{label:"VM Host",value:"VM Host",children:[(0,i.jsxs)(t.p,{children:["If you used a VirtualBox VM as the Edge host, open the ",(0,i.jsx)(t.strong,{children:"VirtualBox"})," application on your host machine to delete the VM."]}),(0,i.jsxs)(t.p,{children:["Right-click the ",(0,i.jsx)(t.code,{children:"edge-vm"})," VM and select ",(0,i.jsx)(t.strong,{children:"Stop"}),". Then, click ",(0,i.jsx)(t.strong,{children:"Power Off"})," to turn the machine off."]}),(0,i.jsxs)(t.p,{children:["Next, right-click the VM again and select ",(0,i.jsx)(t.strong,{children:"Remove"}),". Select ",(0,i.jsx)(t.strong,{children:"Delete the virtual machine and virtual hard disks"})," to\ndelete the VM and its hard disk, and click ",(0,i.jsx)(t.strong,{children:"Remove"}),"."]})]}),(0,i.jsxs)(n,{label:"Bare Metal Host",value:"Bare Metal Host",children:[(0,i.jsx)(t.p,{children:"If you used a physical device as the Edge host, you can reset it to its post-initial setup state. This removes all\nworkloads, content, and cluster definitions from the Edge host."}),(0,i.jsx)(t.p,{children:"To reset the Edge host, SSH into it and issue the following command."}),(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-shell",children:"grub2-editenv /oem/grubenv set next_entry=statereset\n"})}),(0,i.jsx)(t.p,{children:"Next, reboot the host."}),(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-shell",children:"sudo reboot\n"})}),(0,i.jsxs)(t.p,{children:["Refer to ",(0,i.jsx)(t.a,{href:"/clusters/edge/cluster-management/reset-host",children:"Reset Host via Terminal"})," for more information\nabout Edge host resetting."]})]})]}),"\n",(0,i.jsx)(t.h3,{id:"edge-artifacts",children:"Edge Artifacts"}),"\n",(0,i.jsxs)(t.p,{children:["Open a terminal window on the machine you used to build the artifacts in the\n",(0,i.jsx)(t.a,{href:"/tutorials/getting-started/palette-edge/local-management/build-edge-artifacts",children:"Build E
1dge Artifacts"})," tutorial and navigate to the ",(0,i.jsx)(t.code,{children:"CanvOS"})," repository."]}),"\n",(0,i.jsx)(t.p,{children:"Delete the Edge Installer ISO image and its checksum by issuing the following commands."}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"rm build/palette-local-edge-installer.iso\nrm build/palette-local-edge-installer.iso.sha256\n"})}),"\n",(0,i.jsxs)(t.p,{children:["Next, delete the provider images both locally and from the registry where you pushed them. Issue the following command\nto delete them locally, replacing ",(0,i.jsx)(t.code,{children:"<registry-name>"})," with the name of your registry."]}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-bash",children:"docker rmi <registry-name>/ubuntu:k3s-1.32.3-v4.8.8-local-edge\ndocker rmi <registry-name>/ubuntu:k3s-1.32.3-v4.8.8-local-edge_linux_amd64\n"})}),"\n",(0,i.jsx)(t.h2,{id:"wrap-up",children:"Wrap-up"}),"\n",(0,i.jsx)(t.p,{children:"In this tutorial, you learned how to deploy a single-node Edge cluster along with a demo application, using the Edge\nhost, cluster profile, and artifacts prepared in earlier tutorials from this series. This deployment completes the Local\nPalette Edge Getting Started tutorial series."}),"\n",(0,i.jsxs)(t.p,{children:["We encourage you to check out the ",(0,i.jsx)(t.a,{href:"/tutorials/getting-started/additional-capabilities/",children:"Additional Capabilities"}),"\nsection to explore other Palette functionalities, and the ",(0,i.jsx)(t.a,{href:"/clusters/edge/",children:"Edge"})," documentation\nsection to learn more about Palette Edge."]}),"\n",(0,i.jsx)(t.h2,{id:"-catch-up-with-spacetastic",children:"\u{1F9D1}\u200D\u{1F680} Catch up with Spacetastic"}),"\n",(0,i.jsx)(t.p,{children:"After going through the steps in the tutorial, Kai is confident in locally managed Palette Edge's capabilities."}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsx)(t.p,{children:'"What have you found out, Kai?" says Meera walking over to Kai\'s desk.'}),"\n",(0,i.jsx)(t.p,{children:'"It was surprisingly simple to deploy and connect these Edge devices remotely, even if they are not managed directly\nby Palette," says Kai with a enthusiastic nod. "In fact, it feels no different than when we deployed our clusters to\nthe cloud. Even our security is covered through pack updates and scanning capabilities. Relying on this kind of\ntooling is invaluable to security-conscious engineers like us."'}),"\n",(0,i.jsx)(t.p,{children:'"Excellent! These capabilities will be great for expanding our existing systems at Spacetastic," says Meera with a big\ngrin.'}),"\n",(0,i.jsx)(t.p,{children:'"I\'m so glad that we found a platform that can support everyone!" says Kai. "There is so much more to explore though.\nI will keep reading through the Getting Started section and find out what additional capabilities Palette provides."'}),"\n"]}),"\n",(0,i.jsxs)(t.blockquote,{children:["\n",(0,i.jsx)(t.p,{children:'"Good thinking, Kai," says Meera, nodding. "We should maximize all of Palette\'s features now that we have implemented\nit in production. We\'ve got big ideas and goals on our company roadmap, so let\'s find out how Palette can help us\ndeliver them."'}),"\n"]})]})}function h(e={}){let{wrapper:t}={...(0,l.R)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}function g(e,t){throw Error("Expected "+(t?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},223979:function(e,t,s){s.d(t,{A:()=>n});let n=s.p+"assets/images/getting-started_introduction-edge_deploy-edge-cluster_hello-universe-cca7a1963e575d24d7a98cd909fd5ae6.webp"},363408:function(e,t,s){s.d(t,{A:()=>n});let n=s.p+"assets/images/deploy-edge-cluster_architecture-cluster_4-8-e26346132de82024e96ba582db3f2163.webp"},732288:function(e,t,s){s.d(t,{A:()=>n});let n=s.p+"assets/images/deploy-edge-cluster_cluster-config-network_4-8-dd3dd27443ead35aea3212b0cd5d8fd5.webp"},536366:function(e,t,s){s.d(t,{A:()=>n});let n=s.p+"assets/images/deploy-edge-cluster_cluster-delete_4-8-ee13d642a3fd96389f78614a7611733f.webp"},399030:function(e,t,s){s.d(t,{A:()=>n});let n=s.p+"assets/images/deploy-edge-cluster_cluster-habor-logged-in_4-8-9e2a7f836555d946a2f916f29817d6ee.webp"},348312:function(e,t,s){s.d(t,{A:()=>n});let n=s.p+"assets/images/deploy-edge-cluster_cluster-running_4-8-d6d5ac90ca45aa5fd8ee81026e2c0258.webp"},555053:function(e,t,s){s.d(t,{A:()=>n});let n=s.p+"assets/images/deploy-edge-cluster_cluster-service-ports_4-8-2722077b7cce6b0b548ac7725ed12a02.webp"},296064:function(e,t,s){s.d(t,{A:()=>n});let n=s.p+"assets/images/deploy-edge-cluster_import-cluster-preview_4.8-4f340e5f35c6215b7e00dc581da7f0f0.webp"},225549:function(e,t,s){s.d(t,{A:()=>n});let n=s.p+"assets/images/deploy-edge-cluster_import-cluster_4.8-c67d47067df580c8da29a8ebfcbe3a3f.webp"},152205:function(e,t,s){s.d(t,{A:()=>n});let n=s.p+"assets/images/deploy-edge-cluster_node-config_4-8-0e78cc768a0a00b29d2c39b06dec0083.webp"},884429:function(e,t,s){s.d(t,{R:()=>r,x:()=>o});var n=s(296540);let i={},l=n.createContext(i);function r(e){let t=n.useContext(l);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),n.createElement(l.Provider,{value:t},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.