diff --git a/404.html b/404.html index bf4576633..9a6a96567 100644 --- a/404.html +++ b/404.html @@ -10,7 +10,7 @@ - + diff --git a/assets/js/a40f2921.2502b760.js b/assets/js/a40f2921.2502b760.js deleted file mode 100644 index 48e974c66..000000000 --- a/assets/js/a40f2921.2502b760.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkredkubes_github_io=self.webpackChunkredkubes_github_io||[]).push([[1177],{2411:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>d});var s=n(5893),o=n(1151);const i={slug:"akamai-connected-cloud",title:"Akamai Connected Cloud",sidebar_label:"Akamai Connected Cloud"},a="Get started with the App Platform for LKE",r={id:"get-started/installation/akamai-connected-cloud",title:"Akamai Connected Cloud",description:"Create a Kubernetes cluster with the App Platform for LKE",source:"@site/docs/get-started/installation/akamai-connected-cloud.md",sourceDirName:"get-started/installation",slug:"/get-started/installation/akamai-connected-cloud",permalink:"/docs/get-started/installation/akamai-connected-cloud",draft:!1,unlisted:!1,editUrl:"https://github.com/linode/linode.github.io/tree/main/docs/get-started/installation/akamai-connected-cloud.md",tags:[],version:"current",frontMatter:{slug:"akamai-connected-cloud",title:"Akamai Connected Cloud",sidebar_label:"Akamai Connected Cloud"},sidebar:"mainSidebar",previous:{title:"Overview",permalink:"/docs/get-started/installation/overview"},next:{title:"Linode Kubernetes Engine",permalink:"/docs/get-started/installation/linode"}},l={},d=[{value:"Create a Kubernetes cluster with the App Platform for LKE",id:"create-a-kubernetes-cluster-with-the-app-platform-for-lke",level:2},{value:"Access and download your Kubeconfig",id:"access-and-download-your-kubeconfig",level:2},{value:"Obtain the initial access credentials and sign in",id:"obtain-the-initial-access-credentials-and-sign-in",level:2},{value:"Provision Object Storage for the App Platform",id:"provision-object-storage-for-the-app-platform",level:2},{value:"Onboard Teams and Users",id:"onboard-teams-and-users",level:2},{value:"Known issues",id:"known-issues",level:2},{value:"Installation gets stuck because of a quota exceeded exception",id:"installation-gets-stuck-because-of-a-quota-exceeded-exception",level:3},{value:"The Let\u2019s Encrypt secret request was not successful",id:"the-lets-encrypt-secret-request-was-not-successful",level:3}];function c(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",mdxAdmonitionTitle:"mdxAdmonitionTitle",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h1,{id:"get-started-with-the-app-platform-for-lke",children:"Get started with the App Platform for LKE"}),"\n",(0,s.jsx)(t.h2,{id:"create-a-kubernetes-cluster-with-the-app-platform-for-lke",children:"Create a Kubernetes cluster with the App Platform for LKE"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Log into your Cloud Manager account."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Select Kubernetes from the left navigation menu and then click Create Cluster."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"The Create a Kubernetes Cluster page appears. At the top of the page, you are required to select the following options"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"In the Cluster Label field, provide a name for your cluster. The name must be unique between all of the clusters on your account. This name is how you identify your cluster in Cloud Manager\u2019s Dashboard."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"From the Region dropdown menu, select the Region where you would like your cluster to reside."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"From the Version dropdown menu, select a Kubernetes version to deploy to your cluster."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(t.ol,{start:"4",children:["\n",(0,s.jsx)(t.li,{children:"In the App Platform for LKE section, select \u201cYes, enable App Platform for LKE\u201d"}),"\n"]}),"\n",(0,s.jsxs)(t.admonition,{type:"note",children:[(0,s.jsx)(t.mdxAdmonitionTitle,{}),(0,s.jsx)(t.p,{children:"The App Platform for LKE requires HA control plane to be enabled. When App Platform for LKE is enabled, HA control plane will automatically be enabled."})]}),"\n",(0,s.jsxs)(t.ol,{start:"5",children:["\n",(0,s.jsx)(t.li,{children:"In the Add Node Pools section, select the hardware resources for the Linode worker node(s) that make up your LKE cluster. To the right of each plan, select the plus + and minus - to add or remove a Linode to a node pool one at time."}),"\n"]}),"\n",(0,s.jsxs)(t.admonition,{type:"note",children:[(0,s.jsx)(t.mdxAdmonitionTitle,{}),(0,s.jsxs)(t.p,{children:["The App Platform for LKE requires a node pool with at least ",(0,s.jsx)(t.strong,{children:"3 worker"})," nodes with a minimum of ",(0,s.jsx)(t.strong,{children:"16 GB memory"})," and ",(0,s.jsx)(t.strong,{children:"4 CPUs"})," per node. Make sure to select the required Linode plan."]})]}),"\n",(0,s.jsx)(t.admonition,{type:"note",children:(0,s.jsx)(t.p,{children:"The App Platform for LKE is not supported in combination with Shared CPU."})}),"\n",(0,s.jsxs)(t.ol,{start:"6",children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Select Add to include the node pool in your configuration. If you decide that you need more hardware resources after you deploy your cluster, you can always ",(0,s.jsx)(t.a,{href:"https://techdocs.akamai.com/cloud-computing/docs/manage-nodes-and-node-pools",children:"edit your Node Pool"}),"."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Once a pool has been added to your configuration, it is listed in the Cluster Summary on the right-hand side of Cloud Manager detailing your cluster's hardware resources and monthly cost. Additional pools can be added before finalizing the cluster creation process by repeating the previous step for each additional pool."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"When you are satisfied with the configuration of your cluster, click the Create Cluster button on the right hand side of the screen. Your cluster's detail page appears, and your Node Pools are listed on this page. First the LKE cluster will be created and once ready the App Platform for LKE will be installed. The installation of the App Platform for LKE takes around 10 until 15 minutes. When the installation is finished, the URL of the Portal Endpoint will appear in the App Platform for LKE section. The progress of the installation will be checked every 60 seconds. When the installation is still in progress, the URL of the Portal Endpoint will not be displayed. Instead the message \u201cInstallation in progress\u201d will appear."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"When the installation of both the LKE cluster and the App Platform is ready, click on the provided URL of the Portal Endpoint:"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"details-page",src:n(7223).Z+"",width:"2212",height:"1302"})}),"\n",(0,s.jsx)(t.p,{children:"You will then see the following sign-in page:"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.img,{alt:"sign-in",src:n(4583).Z+"",width:"2674",height:"1636"})}),"\n",(0,s.jsxs)(t.ol,{start:"10",children:["\n",(0,s.jsx)(t.li,{children:"Continue with the next steps to get the initial credentials needed to sign in."}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"access-and-download-your-kubeconfig",children:"Access and download your Kubeconfig"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"To access your cluster's Kubeconfig, log in to your Cloud Manager account and navigate to the Kubernetes section."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"From the Kubernetes listing page, click on your cluster's more options ellipsis and select Download Kubeconfig. The file is saved to your computer's Downloads folder."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Open a terminal shell and save your Kubeconfig file's path to the $KUBECONFIG environment variable. In the example command, the Kubeconfig file is located in the Downloads folder, but you should alter this line with this folder's location on your computer:"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-bash",children:"export KUBECONFIG=~/Downloads/kubeconfig.yaml\n"})}),"\n",(0,s.jsx)(t.h2,{id:"obtain-the-initial-access-credentials-and-sign-in",children:"Obtain the initial access credentials and sign in"}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsx)(t.li,{children:"Perform the following command to obtain the user name:"}),"\n"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-bash",children:"kubectl get secret platform-admin-initial-credentials -n keycloak --template={{.data.username}} | base64 -d\n"})}),"\n",(0,s.jsxs)(t.ol,{start:"2",children:["\n",(0,s.jsx)(t.li,{children:"Perform the following command to obtain the initial password:"}),"\n"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-bash",children:"kubectl get secret platform-admin-initial-credentials -n keycloak --template={{.data.password}} | base64 -d\n"})}),"\n",(0,s.jsxs)(t.ol,{start:"3",children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Copy the username and password to your clipboard."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Sign in to the Console with the provided username and initial password."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Change the initial password"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"provision-object-storage-for-the-app-platform",children:"Provision Object Storage for the App Platform"}),"\n",(0,s.jsxs)(t.p,{children:["When signed in to the Console (the web UI of the App Platform), the first thing you\u2019ll need to do is configure Object Storage. A wizard will be displayed asking you if the App Platform should provision all the required Buckets and access key for you. This is not required, but strongly recommended as this will prevent ",(0,s.jsx)(t.code,{children:"out of disk space errors"})," when using Storage Volumes for integrated applications. Using Object Storage also has the advantage to create backups of all databases used by the platform."]}),"\n",(0,s.jsxs)(t.ol,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"When asked to create all the required Buckets and access key, click Yes. If you don\u2019t want the platform to create all the required buckets, then click Skip. Note that in this case some features like creating backups of databases will not be available. You can start the Wizard at any time in the Console (Platform View: Maintenance, Show Object Storage Wizard)."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsxs)(t.p,{children:["Follow the instructions to ",(0,s.jsx)(t.a,{href:"https://techdocs.akamai.com/linode-api/reference/get-started#personal-access-tokens",children:"create a Personal Access Token"})," and make sure to select ",(0,s.jsx)(t.strong,{children:"Read/Write"})," for the Object Storage category and ",(0,s.jsx)(t.strong,{children:"Read"})," for the Kubernetes category. Copy the Access Token."]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Now paste the Access Token into the wizard and click Submit."}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["All the required Buckets and Access Key will now be created in your account and the platform will be configured to use Object Storage to store persistent data and backups. The provided Personal Access Token will not be stored. The created buckets will have the ",(0,s.jsx)(t.code,{children:""})," prefix`"]}),"\n",(0,s.jsx)(t.h2,{id:"onboard-teams-and-users",children:"Onboard Teams and Users"}),"\n",(0,s.jsxs)(t.p,{children:["You can now start enabling Applications, onboarding ",(0,s.jsx)(t.a,{href:"../../for-ops/console/teams",children:"Teams"})," and create ",(0,s.jsx)(t.a,{href:"../../for-ops/console/user-management",children:"Users"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["We recommend to go through the ",(0,s.jsx)(t.a,{href:"../labs/overview",children:"Hands-on Labs"})," to learn how to take advantage of the App Platform for LKE."]}),"\n",(0,s.jsx)(t.h2,{id:"known-issues",children:"Known issues"}),"\n",(0,s.jsx)(t.p,{children:"If the URL of the Portal Endpoint does not appear in the App Platform for LKE section after 30 minutes, then the following may be the issue:"}),"\n",(0,s.jsx)(t.h3,{id:"installation-gets-stuck-because-of-a-quota-exceeded-exception",children:"Installation gets stuck because of a quota exceeded exception"}),"\n",(0,s.jsx)(t.p,{children:"Next to the resources required for LKE, the App Platform also uses a NodeBalancer and a minimum of 11 Storage Volumes. This might result in a quota exceeding exception. Linode currently does not provide quota limits in your account details at this time."}),"\n",(0,s.jsx)(t.p,{children:"The following issue might be related to quota exceeding exception:"}),"\n",(0,s.jsx)(t.p,{children:"Pods that require a Storage Volume get stuck in a pending state with the following message:"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.code,{children:"pod has unbound immediate PersistentVolumeClaims. preemption: 0/3 nodes are available: 3 Preemption is not helpful for scheduling."})}),"\n",(0,s.jsx)(t.p,{children:"Resolution:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"Remove any Storage Volumes that are Unattached."}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["\n",(0,s.jsx)(t.p,{children:"If you would like to know your account's limits or want to increase the number of entities you can create, the best way is to get that information through a support ticket."}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"the-lets-encrypt-secret-request-was-not-successful",children:"The Let\u2019s Encrypt secret request was not successful"}),"\n",(0,s.jsx)(t.p,{children:"For each cluster with the App Platform for LKE enabled, a Let\u2019s Encrypt certificate will be requested. If the certificate is not ready within 30 minutes, the installation of the App Platform will fail. Run the following command to see if the certificate is created:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-bash",children:"kubectl get secret -n istio-system\n"})}),"\n",(0,s.jsxs)(t.p,{children:["There should be a secret called: ",(0,s.jsx)(t.code,{children:"apl--wildcard-cert"})]}),"\n",(0,s.jsx)(t.p,{children:"If this secret is not present, then the request failed."}),"\n",(0,s.jsx)(t.p,{children:"Resolution:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Delete the LKE cluster with App Platform for LKE enabled and create a new cluster with App Platform for LKE enabled"}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},7223:(e,t,n)=>{n.d(t,{Z:()=>s});const s=n.p+"assets/images/cluster-details-page-a92472aeaf27114cfa3712874dd46765.png"},4583:(e,t,n)=>{n.d(t,{Z:()=>s});const s=n.p+"assets/images/sign-in-page-72473e012cb16ab3690fcb872be4e5f8.png"},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var s=n(7294);const o={},i=s.createContext(o);function a(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a40f2921.a75c7188.js b/assets/js/a40f2921.a75c7188.js new file mode 100644 index 000000000..74fdab2f8 --- /dev/null +++ b/assets/js/a40f2921.a75c7188.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkredkubes_github_io=self.webpackChunkredkubes_github_io||[]).push([[1177],{2411:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>d});var o=n(5893),s=n(1151);const i={slug:"akamai-connected-cloud",title:"Akamai Connected Cloud",sidebar_label:"Akamai Connected Cloud"},a="Get started with the App Platform for LKE",r={id:"get-started/installation/akamai-connected-cloud",title:"Akamai Connected Cloud",description:"Create a Kubernetes cluster with the App Platform for LKE",source:"@site/docs/get-started/installation/akamai-connected-cloud.md",sourceDirName:"get-started/installation",slug:"/get-started/installation/akamai-connected-cloud",permalink:"/docs/get-started/installation/akamai-connected-cloud",draft:!1,unlisted:!1,editUrl:"https://github.com/linode/linode.github.io/tree/main/docs/get-started/installation/akamai-connected-cloud.md",tags:[],version:"current",frontMatter:{slug:"akamai-connected-cloud",title:"Akamai Connected Cloud",sidebar_label:"Akamai Connected Cloud"},sidebar:"mainSidebar",previous:{title:"Overview",permalink:"/docs/get-started/installation/overview"},next:{title:"Linode Kubernetes Engine",permalink:"/docs/get-started/installation/linode"}},l={},d=[{value:"Create a Kubernetes cluster with the App Platform for LKE",id:"create-a-kubernetes-cluster-with-the-app-platform-for-lke",level:2},{value:"Access and download your Kubeconfig",id:"access-and-download-your-kubeconfig",level:2},{value:"Obtain the initial access credentials and sign in",id:"obtain-the-initial-access-credentials-and-sign-in",level:2},{value:"Provision Object Storage for the App Platform (Expected to be available on November 12)",id:"provision-object-storage-for-the-app-platform-expected-to-be-available-on-november-12",level:2},{value:"Onboard Teams and Users",id:"onboard-teams-and-users",level:2},{value:"Known issues",id:"known-issues",level:2},{value:"Installation gets stuck because of a quota exceeded exception",id:"installation-gets-stuck-because-of-a-quota-exceeded-exception",level:3},{value:"The Let\u2019s Encrypt secret request was not successful",id:"the-lets-encrypt-secret-request-was-not-successful",level:3}];function c(e){const t={a:"a",admonition:"admonition",code:"code",h1:"h1",h2:"h2",h3:"h3",img:"img",li:"li",mdxAdmonitionTitle:"mdxAdmonitionTitle",ol:"ol",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h1,{id:"get-started-with-the-app-platform-for-lke",children:"Get started with the App Platform for LKE"}),"\n",(0,o.jsx)(t.h2,{id:"create-a-kubernetes-cluster-with-the-app-platform-for-lke",children:"Create a Kubernetes cluster with the App Platform for LKE"}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Log into your Cloud Manager account."}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Select Kubernetes from the left navigation menu and then click Create Cluster."}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"The Create a Kubernetes Cluster page appears. At the top of the page, you are required to select the following options"}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"In the Cluster Label field, provide a name for your cluster. The name must be unique between all of the clusters on your account. This name is how you identify your cluster in Cloud Manager\u2019s Dashboard."}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"From the Region dropdown menu, select the Region where you would like your cluster to reside."}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"From the Version dropdown menu, select a Kubernetes version to deploy to your cluster."}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(t.ol,{start:"4",children:["\n",(0,o.jsx)(t.li,{children:"In the App Platform for LKE section, select \u201cYes, enable App Platform for LKE\u201d"}),"\n"]}),"\n",(0,o.jsxs)(t.admonition,{type:"note",children:[(0,o.jsx)(t.mdxAdmonitionTitle,{}),(0,o.jsx)(t.p,{children:"The App Platform for LKE requires HA control plane to be enabled. When App Platform for LKE is enabled, HA control plane will automatically be enabled."})]}),"\n",(0,o.jsxs)(t.ol,{start:"5",children:["\n",(0,o.jsx)(t.li,{children:"In the Add Node Pools section, select the hardware resources for the Linode worker node(s) that make up your LKE cluster. To the right of each plan, select the plus + and minus - to add or remove a Linode to a node pool one at time."}),"\n"]}),"\n",(0,o.jsxs)(t.admonition,{type:"note",children:[(0,o.jsx)(t.mdxAdmonitionTitle,{}),(0,o.jsxs)(t.p,{children:["The App Platform for LKE requires a node pool with at least ",(0,o.jsx)(t.strong,{children:"3 worker"})," nodes with a minimum of ",(0,o.jsx)(t.strong,{children:"16 GB memory"})," and ",(0,o.jsx)(t.strong,{children:"4 CPUs"})," per node. Make sure to select the required Linode plan."]})]}),"\n",(0,o.jsx)(t.admonition,{type:"note",children:(0,o.jsx)(t.p,{children:"The App Platform for LKE is not supported in combination with Shared CPU."})}),"\n",(0,o.jsxs)(t.ol,{start:"6",children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsxs)(t.p,{children:["Select Add to include the node pool in your configuration. If you decide that you need more hardware resources after you deploy your cluster, you can always ",(0,o.jsx)(t.a,{href:"https://techdocs.akamai.com/cloud-computing/docs/manage-nodes-and-node-pools",children:"edit your Node Pool"}),"."]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Once a pool has been added to your configuration, it is listed in the Cluster Summary on the right-hand side of Cloud Manager detailing your cluster's hardware resources and monthly cost. Additional pools can be added before finalizing the cluster creation process by repeating the previous step for each additional pool."}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"When you are satisfied with the configuration of your cluster, click the Create Cluster button on the right hand side of the screen. Your cluster's detail page appears, and your Node Pools are listed on this page. First the LKE cluster will be created and once ready the App Platform for LKE will be installed. The installation of the App Platform for LKE takes around 10 until 15 minutes. When the installation is finished, the URL of the Portal Endpoint will appear in the App Platform for LKE section. The progress of the installation will be checked every 60 seconds. When the installation is still in progress, the URL of the Portal Endpoint will not be displayed. Instead the message \u201cInstallation in progress\u201d will appear."}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"When the installation of both the LKE cluster and the App Platform is ready, click on the provided URL of the Portal Endpoint:"}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"details-page",src:n(7223).Z+"",width:"2212",height:"1302"})}),"\n",(0,o.jsx)(t.p,{children:"You will then see the following sign-in page:"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.img,{alt:"sign-in",src:n(4583).Z+"",width:"2674",height:"1636"})}),"\n",(0,o.jsxs)(t.ol,{start:"10",children:["\n",(0,o.jsx)(t.li,{children:"Continue with the next steps to get the initial credentials needed to sign in."}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"access-and-download-your-kubeconfig",children:"Access and download your Kubeconfig"}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"To access your cluster's Kubeconfig, log in to your Cloud Manager account and navigate to the Kubernetes section."}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"From the Kubernetes listing page, click on your cluster's more options ellipsis and select Download Kubeconfig. The file is saved to your computer's Downloads folder."}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Open a terminal shell and save your Kubeconfig file's path to the $KUBECONFIG environment variable. In the example command, the Kubeconfig file is located in the Downloads folder, but you should alter this line with this folder's location on your computer:"}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"export KUBECONFIG=~/Downloads/kubeconfig.yaml\n"})}),"\n",(0,o.jsx)(t.h2,{id:"obtain-the-initial-access-credentials-and-sign-in",children:"Obtain the initial access credentials and sign in"}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsx)(t.li,{children:"Perform the following command to obtain the user name:"}),"\n"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"kubectl get secret platform-admin-initial-credentials -n keycloak --template={{.data.username}} | base64 -d\n"})}),"\n",(0,o.jsxs)(t.ol,{start:"2",children:["\n",(0,o.jsx)(t.li,{children:"Perform the following command to obtain the initial password:"}),"\n"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"kubectl get secret platform-admin-initial-credentials -n keycloak --template={{.data.password}} | base64 -d\n"})}),"\n",(0,o.jsxs)(t.ol,{start:"3",children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Copy the username and password to your clipboard."}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Sign in to the Console with the provided username and initial password."}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Change the initial password"}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.h2,{id:"provision-object-storage-for-the-app-platform-expected-to-be-available-on-november-12",children:"Provision Object Storage for the App Platform (Expected to be available on November 12)"}),"\n",(0,o.jsxs)(t.p,{children:["When signed in to the Console (the web UI of the App Platform), the first thing you\u2019ll need to do is configure Object Storage. A wizard will be displayed asking you if the App Platform should provision all the required Buckets and access key for you. This is not required, but strongly recommended as this will prevent ",(0,o.jsx)(t.code,{children:"out of disk space errors"})," when using Storage Volumes for integrated applications. Using Object Storage also has the advantage to create backups of all databases used by the platform."]}),"\n",(0,o.jsxs)(t.ol,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"When asked to create all the required Buckets and access key, click Yes. If you don\u2019t want the platform to create all the required buckets, then click Skip. Note that in this case some features like creating backups of databases will not be available. You can start the Wizard at any time in the Console (Platform View: Maintenance, Show Object Storage Wizard)."}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsxs)(t.p,{children:["Follow the instructions to ",(0,o.jsx)(t.a,{href:"https://techdocs.akamai.com/linode-api/reference/get-started#personal-access-tokens",children:"create a Personal Access Token"})," and make sure to select ",(0,o.jsx)(t.strong,{children:"Read/Write"})," for the Object Storage category and ",(0,o.jsx)(t.strong,{children:"Read"})," for the Kubernetes category. Copy the Access Token."]}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Now paste the Access Token into the wizard and click Submit."}),"\n"]}),"\n"]}),"\n",(0,o.jsxs)(t.p,{children:["All the required Buckets and Access Key will now be created in your account and the platform will be configured to use Object Storage to store persistent data and backups. The provided Personal Access Token will not be stored. The created buckets will have the ",(0,o.jsx)(t.code,{children:""})," prefix`"]}),"\n",(0,o.jsx)(t.h2,{id:"onboard-teams-and-users",children:"Onboard Teams and Users"}),"\n",(0,o.jsxs)(t.p,{children:["You can now start enabling Applications, onboarding ",(0,o.jsx)(t.a,{href:"../../for-ops/console/teams",children:"Teams"})," and create ",(0,o.jsx)(t.a,{href:"../../for-ops/console/user-management",children:"Users"}),"."]}),"\n",(0,o.jsxs)(t.p,{children:["We recommend to go through the ",(0,o.jsx)(t.a,{href:"../labs/overview",children:"Hands-on Labs"})," to learn how to take advantage of the App Platform for LKE."]}),"\n",(0,o.jsx)(t.h2,{id:"known-issues",children:"Known issues"}),"\n",(0,o.jsx)(t.p,{children:"If the URL of the Portal Endpoint does not appear in the App Platform for LKE section after 30 minutes, then the following may be the issue:"}),"\n",(0,o.jsx)(t.h3,{id:"installation-gets-stuck-because-of-a-quota-exceeded-exception",children:"Installation gets stuck because of a quota exceeded exception"}),"\n",(0,o.jsx)(t.p,{children:"Next to the resources required for LKE, the App Platform also uses a NodeBalancer and a minimum of 11 Storage Volumes. This might result in a quota exceeding exception. Linode currently does not provide quota limits in your account details at this time."}),"\n",(0,o.jsx)(t.p,{children:"The following issue might be related to quota exceeding exception:"}),"\n",(0,o.jsx)(t.p,{children:"Pods that require a Storage Volume get stuck in a pending state with the following message:"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.code,{children:"pod has unbound immediate PersistentVolumeClaims. preemption: 0/3 nodes are available: 3 Preemption is not helpful for scheduling."})}),"\n",(0,o.jsx)(t.p,{children:"Resolution:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"Remove any Storage Volumes that are Unattached."}),"\n"]}),"\n",(0,o.jsxs)(t.li,{children:["\n",(0,o.jsx)(t.p,{children:"If you would like to know your account's limits or want to increase the number of entities you can create, the best way is to get that information through a support ticket."}),"\n"]}),"\n"]}),"\n",(0,o.jsx)(t.h3,{id:"the-lets-encrypt-secret-request-was-not-successful",children:"The Let\u2019s Encrypt secret request was not successful"}),"\n",(0,o.jsx)(t.p,{children:"For each cluster with the App Platform for LKE enabled, a Let\u2019s Encrypt certificate will be requested. If the certificate is not ready within 30 minutes, the installation of the App Platform will fail. Run the following command to see if the certificate is created:"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-bash",children:"kubectl get secret -n istio-system\n"})}),"\n",(0,o.jsxs)(t.p,{children:["There should be a secret called: ",(0,o.jsx)(t.code,{children:"apl--wildcard-cert"})]}),"\n",(0,o.jsx)(t.p,{children:"If this secret is not present, then the request failed."}),"\n",(0,o.jsx)(t.p,{children:"Resolution:"}),"\n",(0,o.jsxs)(t.ul,{children:["\n",(0,o.jsx)(t.li,{children:"Delete the LKE cluster with App Platform for LKE enabled and create a new cluster with App Platform for LKE enabled"}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},7223:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/cluster-details-page-a92472aeaf27114cfa3712874dd46765.png"},4583:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/sign-in-page-72473e012cb16ab3690fcb872be4e5f8.png"},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var o=n(7294);const s={},i=o.createContext(s);function a(e){const t=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),o.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/runtime~main.7faa7401.js b/assets/js/runtime~main.687bee06.js similarity index 99% rename from assets/js/runtime~main.7faa7401.js rename to assets/js/runtime~main.687bee06.js index 71b5f231c..a80306ca5 100644 --- a/assets/js/runtime~main.7faa7401.js +++ b/assets/js/runtime~main.687bee06.js @@ -1 +1 @@ -(()=>{"use strict";var e,f,a,d,c,b={},t={};function r(e){var f=t[e];if(void 0!==f)return f.exports;var a=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=b,r.c=t,e=[],r.O=(f,a,d,c)=>{if(!a){var b=1/0;for(i=0;i=c)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[a,d,c]},r.n=e=>{var f=e&&e.__esModule?()=>e.default:()=>e;return r.d(f,{a:f}),f},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var b={};f=f||[null,a({}),a([]),a(a)];for(var t=2&d&&e;"object"==typeof t&&!~f.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((f=>b[f]=()=>e[f]));return b.default=()=>e,r.d(c,b),c},r.d=(e,f)=>{for(var a in f)r.o(f,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:f[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((f,a)=>(r.f[a](e,f),f)),[])),r.u=e=>"assets/js/"+({48:"98c047c6",53:"935f2afb",117:"62e5798c",256:"bd8a3d8f",263:"8dc82fcd",411:"80cc8fc2",439:"db2fd2f7",443:"9824b3d7",537:"c9644b78",634:"0d519d5d",670:"31647fbf",681:"ca2bccd7",725:"fd458deb",767:"df2434c5",912:"1d911987",965:"d53aaf7f",1020:"ffd636c4",1113:"4380e181",1164:"6ef6f599",1177:"a40f2921",1195:"1830c2e3",1241:"e2cc03cb",1254:"443e3a65",1280:"58e1910b",1313:"bf0e2243",1390:"96d3f3ac",1391:"9cb4274e",1470:"f9528352",1515:"f34c6cc5",1573:"a722ee7a",1576:"c3a9c637",1591:"09735fc0",1730:"69fd0b9a",1809:"04608aca",1854:"be94a9c8",1872:"c42226db",1902:"8ef33b61",1913:"c9ff9b08",2020:"7f5d7fca",2036:"54cc2d4c",2098:"00210a32",2115:"abc5e328",2144:"aa3203ff",2237:"1f668492",2280:"5ce65c80",2370:"afd24866",2430:"188da18d",2477:"80f670fe",2615:"d8a040d1",2668:"d9893b92",2704:"10959509",2717:"397109c3",2722:"14bc3799",2780:"3c110fea",2930:"2b4f9f78",3063:"cba11a7e",3126:"17a7c5fe",3237:"1df93b7f",3272:"052260a8",3418:"3fd50427",3544:"cd151fd5",3576:"13689ae4",3599:"80b07506",3611:"d1409995",3635:"1f918bbd",3942:"5f4e8093",4011:"feda9f98",4019:"090174e7",4234:"1a23fb22",4247:"43db5d1f",4321:"6d553b82",4368:"a94703ab",4385:"8afa6453",4473:"1d3542c3",4559:"5c5eecab",4576:"612b9100",4584:"8b7dda8f",4655:"2a3fc902",4717:"d76c6a89",4722:"e7ee1f4e",4778:"399357cc",4791:"a3cca685",4986:"219ad9fa",5018:"871ddaf7",5033:"ca4242f5",5112:"b3921f18",5195:"3379d6c0",5290:"98242336",5616:"c5c74bfd",5720:"646a49d4",5775:"46a4fdf9",5786:"2e429803",5824:"81e06d7e",5827:"20b057c1",5920:"b04270fa",5935:"2f447487",5940:"385dd0a0",5949:"6a5c8ca2",5996:"9a6fbba2",6096:"0c3fdeeb",6128:"83b70ecd",6299:"48f8b5b9",6306:"e65ca800",6535:"9184e37b",6576:"bcbdbf75",6781:"6340fb34",6866:"a6a14297",6888:"af9df136",6907:"f4935766",6932:"5bcba466",6935:"a1e5de72",7159:"d1254c3d",7282:"1dcded0d",7360:"b4e198bf",7376:"a375f470",7386:"28c78037",7444:"af8b4e82",7578:"1db000ad",7638:"c0f9889b",7674:"270f6692",7702:"7e13be3f",7787:"d248c736",7878:"386e030b",7896:"9ed16ae1",7918:"17896441",7920:"1a4e3797",7973:"46be4bcd",7984:"a47e2810",8028:"c4d36760",8036:"490175b0",8129:"30f4d83c",8344:"1afc8419",8383:"246b758f",8392:"0be2dc55",8506:"9899ea6d",8518:"a7bd4aaa",8607:"2df7e88d",8696:"541249eb",8760:"88cad7e1",8852:"9b2db8ea",8897:"af477ebb",9063:"11153061",9091:"6ebb893e",9153:"ed3faf6d",9216:"5cb822a3",9237:"bde17074",9661:"5e95c892",9683:"7ea98ab3",9717:"2548183b",9742:"c3394322",9832:"0097d0fa",9836:"dc5f95d0"}[e]||e)+"."+{48:"57409454",53:"830cfdc0",117:"dc20ac70",256:"d210cd9c",263:"aec43c6f",411:"c867d2c5",439:"b28f5f13",443:"d514fedc",537:"899eeb3a",634:"7b757be2",670:"8ff72611",681:"f4f3f019",725:"bd5ea6ac",767:"4ebfc7f2",912:"3c470e49",965:"0767a5b4",1020:"9fc69dd5",1113:"b81e78ce",1164:"c4798feb",1177:"2502b760",1195:"d70a4c78",1241:"579eebb9",1254:"53108c0f",1280:"784f2607",1313:"8b72d533",1390:"a3b90106",1391:"5c063f04",1426:"707aef92",1470:"20ca772b",1515:"43eaeb40",1573:"b2cc64d6",1576:"d0cdcfe6",1591:"5416ccfd",1730:"b480ea2a",1772:"a30dfd8b",1809:"098d20f1",1854:"6b4ad9b2",1872:"202182e1",1902:"f1d400a3",1913:"539b3b7b",2020:"87d1ba37",2036:"ba5c0abe",2098:"b72a3ef6",2115:"80c4ff65",2144:"aeee67d9",2237:"b7ea2058",2280:"24fb8fa7",2370:"f1feb680",2430:"1f928026",2477:"c1abcbab",2615:"42c42e4d",2668:"bc6abf89",2704:"432c28a3",2717:"9f850d24",2722:"1b1256ea",2780:"1bd9c4cd",2930:"9a047a8e",3063:"b991afbe",3126:"617de7ad",3237:"bce1c66c",3272:"f40f2de8",3418:"a5098121",3544:"29a2287a",3576:"cd96fab9",3599:"f3cc872e",3611:"cd7954f0",3635:"adcf53f4",3942:"2dabe2c9",4011:"a9a61aa3",4019:"573e5eca",4234:"68b4c56c",4247:"679e6dbe",4321:"3745d4a5",4368:"e58383c9",4385:"269f12ee",4473:"bcc95119",4559:"a45fe330",4576:"21c1299d",4584:"29560a5d",4655:"92856cb7",4717:"fe41aa5b",4722:"bd2e6ad9",4778:"99555cf3",4791:"314bc0e3",4986:"69fb53e7",5018:"6a938ed7",5033:"a9676278",5112:"8b8a1b7f",5195:"7c82b839",5290:"7ef7031f",5616:"c67da531",5720:"f6beac8d",5775:"f93a791b",5786:"96bf2866",5824:"f664eaae",5827:"6d9de8bf",5920:"7329cd3a",5935:"40eaf98c",5940:"944d6278",5949:"6b8c5711",5996:"8b3f342b",6096:"6571ccc6",6128:"f5b32dda",6299:"7f2d0e72",6306:"ade2adf7",6535:"68f1898f",6576:"dc287203",6781:"8c5bc192",6866:"4c2e22cc",6888:"2b585b44",6907:"ad258e6f",6932:"13ce2cdd",6935:"837a5e5f",6945:"bfc572ea",7159:"67d03583",7282:"c7ef1626",7360:"e4d6eabc",7376:"20082051",7386:"ff0b2b0a",7444:"494e5744",7578:"efacfd20",7638:"2144e89a",7674:"5c2cdf73",7702:"398946f7",7787:"e9e87892",7878:"19a189b5",7896:"e1b49827",7918:"723e23a3",7920:"3ce85a9e",7973:"61fa8068",7984:"0896103b",8028:"e67117c5",8036:"a62c642b",8129:"574c795b",8344:"d5e97690",8383:"1650d1b0",8392:"9080d564",8506:"4d17247f",8518:"e964aaea",8607:"25958a3b",8696:"89c82b02",8760:"a2e818ed",8852:"b4bde40b",8894:"ced69189",8897:"d3937ba5",9063:"1e2d95c4",9091:"98b73abc",9153:"90d2345f",9216:"41f9b8c7",9237:"b41b1f82",9661:"ad7630aa",9683:"6a7963f0",9717:"90e507a6",9742:"fb014f32",9832:"dae2702e",9836:"33206c54"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),d={},c="redkubes-github-io:",r.l=(e,f,a,b)=>{if(d[e])d[e].push(f);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var c=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach((e=>e(a))),f)return f(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={10959509:"2704",11153061:"9063",17896441:"7918",98242336:"5290","98c047c6":"48","935f2afb":"53","62e5798c":"117",bd8a3d8f:"256","8dc82fcd":"263","80cc8fc2":"411",db2fd2f7:"439","9824b3d7":"443",c9644b78:"537","0d519d5d":"634","31647fbf":"670",ca2bccd7:"681",fd458deb:"725",df2434c5:"767","1d911987":"912",d53aaf7f:"965",ffd636c4:"1020","4380e181":"1113","6ef6f599":"1164",a40f2921:"1177","1830c2e3":"1195",e2cc03cb:"1241","443e3a65":"1254","58e1910b":"1280",bf0e2243:"1313","96d3f3ac":"1390","9cb4274e":"1391",f9528352:"1470",f34c6cc5:"1515",a722ee7a:"1573",c3a9c637:"1576","09735fc0":"1591","69fd0b9a":"1730","04608aca":"1809",be94a9c8:"1854",c42226db:"1872","8ef33b61":"1902",c9ff9b08:"1913","7f5d7fca":"2020","54cc2d4c":"2036","00210a32":"2098",abc5e328:"2115",aa3203ff:"2144","1f668492":"2237","5ce65c80":"2280",afd24866:"2370","188da18d":"2430","80f670fe":"2477",d8a040d1:"2615",d9893b92:"2668","397109c3":"2717","14bc3799":"2722","3c110fea":"2780","2b4f9f78":"2930",cba11a7e:"3063","17a7c5fe":"3126","1df93b7f":"3237","052260a8":"3272","3fd50427":"3418",cd151fd5:"3544","13689ae4":"3576","80b07506":"3599",d1409995:"3611","1f918bbd":"3635","5f4e8093":"3942",feda9f98:"4011","090174e7":"4019","1a23fb22":"4234","43db5d1f":"4247","6d553b82":"4321",a94703ab:"4368","8afa6453":"4385","1d3542c3":"4473","5c5eecab":"4559","612b9100":"4576","8b7dda8f":"4584","2a3fc902":"4655",d76c6a89:"4717",e7ee1f4e:"4722","399357cc":"4778",a3cca685:"4791","219ad9fa":"4986","871ddaf7":"5018",ca4242f5:"5033",b3921f18:"5112","3379d6c0":"5195",c5c74bfd:"5616","646a49d4":"5720","46a4fdf9":"5775","2e429803":"5786","81e06d7e":"5824","20b057c1":"5827",b04270fa:"5920","2f447487":"5935","385dd0a0":"5940","6a5c8ca2":"5949","9a6fbba2":"5996","0c3fdeeb":"6096","83b70ecd":"6128","48f8b5b9":"6299",e65ca800:"6306","9184e37b":"6535",bcbdbf75:"6576","6340fb34":"6781",a6a14297:"6866",af9df136:"6888",f4935766:"6907","5bcba466":"6932",a1e5de72:"6935",d1254c3d:"7159","1dcded0d":"7282",b4e198bf:"7360",a375f470:"7376","28c78037":"7386",af8b4e82:"7444","1db000ad":"7578",c0f9889b:"7638","270f6692":"7674","7e13be3f":"7702",d248c736:"7787","386e030b":"7878","9ed16ae1":"7896","1a4e3797":"7920","46be4bcd":"7973",a47e2810:"7984",c4d36760:"8028","490175b0":"8036","30f4d83c":"8129","1afc8419":"8344","246b758f":"8383","0be2dc55":"8392","9899ea6d":"8506",a7bd4aaa:"8518","2df7e88d":"8607","541249eb":"8696","88cad7e1":"8760","9b2db8ea":"8852",af477ebb:"8897","6ebb893e":"9091",ed3faf6d:"9153","5cb822a3":"9216",bde17074:"9237","5e95c892":"9661","7ea98ab3":"9683","2548183b":"9717",c3394322:"9742","0097d0fa":"9832",dc5f95d0:"9836"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(f,a)=>{var d=r.o(e,f)?e[f]:void 0;if(0!==d)if(d)a.push(d[2]);else if(/^(1303|532)$/.test(f))e[f]=0;else{var c=new Promise(((a,c)=>d=e[f]=[a,c]));a.push(d[2]=c);var b=r.p+r.u(f),t=new Error;r.l(b,(a=>{if(r.o(e,f)&&(0!==(d=e[f])&&(e[f]=void 0),d)){var c=a&&("load"===a.type?"missing":a.type),b=a&&a.target&&a.target.src;t.message="Loading chunk "+f+" failed.\n("+c+": "+b+")",t.name="ChunkLoadError",t.type=c,t.request=b,d[1](t)}}),"chunk-"+f,f)}},r.O.j=f=>0===e[f];var f=(f,a)=>{var d,c,b=a[0],t=a[1],o=a[2],n=0;if(b.some((f=>0!==e[f]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(f&&f(a);n{"use strict";var e,f,a,d,c,b={},t={};function r(e){var f=t[e];if(void 0!==f)return f.exports;var a=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=b,r.c=t,e=[],r.O=(f,a,d,c)=>{if(!a){var b=1/0;for(i=0;i=c)&&Object.keys(r.O).every((e=>r.O[e](a[o])))?a.splice(o--,1):(t=!1,c0&&e[i-1][2]>c;i--)e[i]=e[i-1];e[i]=[a,d,c]},r.n=e=>{var f=e&&e.__esModule?()=>e.default:()=>e;return r.d(f,{a:f}),f},a=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,d){if(1&d&&(e=this(e)),8&d)return e;if("object"==typeof e&&e){if(4&d&&e.__esModule)return e;if(16&d&&"function"==typeof e.then)return e}var c=Object.create(null);r.r(c);var b={};f=f||[null,a({}),a([]),a(a)];for(var t=2&d&&e;"object"==typeof t&&!~f.indexOf(t);t=a(t))Object.getOwnPropertyNames(t).forEach((f=>b[f]=()=>e[f]));return b.default=()=>e,r.d(c,b),c},r.d=(e,f)=>{for(var a in f)r.o(f,a)&&!r.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:f[a]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((f,a)=>(r.f[a](e,f),f)),[])),r.u=e=>"assets/js/"+({48:"98c047c6",53:"935f2afb",117:"62e5798c",256:"bd8a3d8f",263:"8dc82fcd",411:"80cc8fc2",439:"db2fd2f7",443:"9824b3d7",537:"c9644b78",634:"0d519d5d",670:"31647fbf",681:"ca2bccd7",725:"fd458deb",767:"df2434c5",912:"1d911987",965:"d53aaf7f",1020:"ffd636c4",1113:"4380e181",1164:"6ef6f599",1177:"a40f2921",1195:"1830c2e3",1241:"e2cc03cb",1254:"443e3a65",1280:"58e1910b",1313:"bf0e2243",1390:"96d3f3ac",1391:"9cb4274e",1470:"f9528352",1515:"f34c6cc5",1573:"a722ee7a",1576:"c3a9c637",1591:"09735fc0",1730:"69fd0b9a",1809:"04608aca",1854:"be94a9c8",1872:"c42226db",1902:"8ef33b61",1913:"c9ff9b08",2020:"7f5d7fca",2036:"54cc2d4c",2098:"00210a32",2115:"abc5e328",2144:"aa3203ff",2237:"1f668492",2280:"5ce65c80",2370:"afd24866",2430:"188da18d",2477:"80f670fe",2615:"d8a040d1",2668:"d9893b92",2704:"10959509",2717:"397109c3",2722:"14bc3799",2780:"3c110fea",2930:"2b4f9f78",3063:"cba11a7e",3126:"17a7c5fe",3237:"1df93b7f",3272:"052260a8",3418:"3fd50427",3544:"cd151fd5",3576:"13689ae4",3599:"80b07506",3611:"d1409995",3635:"1f918bbd",3942:"5f4e8093",4011:"feda9f98",4019:"090174e7",4234:"1a23fb22",4247:"43db5d1f",4321:"6d553b82",4368:"a94703ab",4385:"8afa6453",4473:"1d3542c3",4559:"5c5eecab",4576:"612b9100",4584:"8b7dda8f",4655:"2a3fc902",4717:"d76c6a89",4722:"e7ee1f4e",4778:"399357cc",4791:"a3cca685",4986:"219ad9fa",5018:"871ddaf7",5033:"ca4242f5",5112:"b3921f18",5195:"3379d6c0",5290:"98242336",5616:"c5c74bfd",5720:"646a49d4",5775:"46a4fdf9",5786:"2e429803",5824:"81e06d7e",5827:"20b057c1",5920:"b04270fa",5935:"2f447487",5940:"385dd0a0",5949:"6a5c8ca2",5996:"9a6fbba2",6096:"0c3fdeeb",6128:"83b70ecd",6299:"48f8b5b9",6306:"e65ca800",6535:"9184e37b",6576:"bcbdbf75",6781:"6340fb34",6866:"a6a14297",6888:"af9df136",6907:"f4935766",6932:"5bcba466",6935:"a1e5de72",7159:"d1254c3d",7282:"1dcded0d",7360:"b4e198bf",7376:"a375f470",7386:"28c78037",7444:"af8b4e82",7578:"1db000ad",7638:"c0f9889b",7674:"270f6692",7702:"7e13be3f",7787:"d248c736",7878:"386e030b",7896:"9ed16ae1",7918:"17896441",7920:"1a4e3797",7973:"46be4bcd",7984:"a47e2810",8028:"c4d36760",8036:"490175b0",8129:"30f4d83c",8344:"1afc8419",8383:"246b758f",8392:"0be2dc55",8506:"9899ea6d",8518:"a7bd4aaa",8607:"2df7e88d",8696:"541249eb",8760:"88cad7e1",8852:"9b2db8ea",8897:"af477ebb",9063:"11153061",9091:"6ebb893e",9153:"ed3faf6d",9216:"5cb822a3",9237:"bde17074",9661:"5e95c892",9683:"7ea98ab3",9717:"2548183b",9742:"c3394322",9832:"0097d0fa",9836:"dc5f95d0"}[e]||e)+"."+{48:"57409454",53:"830cfdc0",117:"dc20ac70",256:"d210cd9c",263:"aec43c6f",411:"c867d2c5",439:"b28f5f13",443:"d514fedc",537:"899eeb3a",634:"7b757be2",670:"8ff72611",681:"f4f3f019",725:"bd5ea6ac",767:"4ebfc7f2",912:"3c470e49",965:"0767a5b4",1020:"9fc69dd5",1113:"b81e78ce",1164:"c4798feb",1177:"a75c7188",1195:"d70a4c78",1241:"579eebb9",1254:"53108c0f",1280:"784f2607",1313:"8b72d533",1390:"a3b90106",1391:"5c063f04",1426:"707aef92",1470:"20ca772b",1515:"43eaeb40",1573:"b2cc64d6",1576:"d0cdcfe6",1591:"5416ccfd",1730:"b480ea2a",1772:"a30dfd8b",1809:"098d20f1",1854:"6b4ad9b2",1872:"202182e1",1902:"f1d400a3",1913:"539b3b7b",2020:"87d1ba37",2036:"ba5c0abe",2098:"b72a3ef6",2115:"80c4ff65",2144:"aeee67d9",2237:"b7ea2058",2280:"24fb8fa7",2370:"f1feb680",2430:"1f928026",2477:"c1abcbab",2615:"42c42e4d",2668:"bc6abf89",2704:"432c28a3",2717:"9f850d24",2722:"1b1256ea",2780:"1bd9c4cd",2930:"9a047a8e",3063:"b991afbe",3126:"617de7ad",3237:"bce1c66c",3272:"f40f2de8",3418:"a5098121",3544:"29a2287a",3576:"cd96fab9",3599:"f3cc872e",3611:"cd7954f0",3635:"adcf53f4",3942:"2dabe2c9",4011:"a9a61aa3",4019:"573e5eca",4234:"68b4c56c",4247:"679e6dbe",4321:"3745d4a5",4368:"e58383c9",4385:"269f12ee",4473:"bcc95119",4559:"a45fe330",4576:"21c1299d",4584:"29560a5d",4655:"92856cb7",4717:"fe41aa5b",4722:"bd2e6ad9",4778:"99555cf3",4791:"314bc0e3",4986:"69fb53e7",5018:"6a938ed7",5033:"a9676278",5112:"8b8a1b7f",5195:"7c82b839",5290:"7ef7031f",5616:"c67da531",5720:"f6beac8d",5775:"f93a791b",5786:"96bf2866",5824:"f664eaae",5827:"6d9de8bf",5920:"7329cd3a",5935:"40eaf98c",5940:"944d6278",5949:"6b8c5711",5996:"8b3f342b",6096:"6571ccc6",6128:"f5b32dda",6299:"7f2d0e72",6306:"ade2adf7",6535:"68f1898f",6576:"dc287203",6781:"8c5bc192",6866:"4c2e22cc",6888:"2b585b44",6907:"ad258e6f",6932:"13ce2cdd",6935:"837a5e5f",6945:"bfc572ea",7159:"67d03583",7282:"c7ef1626",7360:"e4d6eabc",7376:"20082051",7386:"ff0b2b0a",7444:"494e5744",7578:"efacfd20",7638:"2144e89a",7674:"5c2cdf73",7702:"398946f7",7787:"e9e87892",7878:"19a189b5",7896:"e1b49827",7918:"723e23a3",7920:"3ce85a9e",7973:"61fa8068",7984:"0896103b",8028:"e67117c5",8036:"a62c642b",8129:"574c795b",8344:"d5e97690",8383:"1650d1b0",8392:"9080d564",8506:"4d17247f",8518:"e964aaea",8607:"25958a3b",8696:"89c82b02",8760:"a2e818ed",8852:"b4bde40b",8894:"ced69189",8897:"d3937ba5",9063:"1e2d95c4",9091:"98b73abc",9153:"90d2345f",9216:"41f9b8c7",9237:"b41b1f82",9661:"ad7630aa",9683:"6a7963f0",9717:"90e507a6",9742:"fb014f32",9832:"dae2702e",9836:"33206c54"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),d={},c="redkubes-github-io:",r.l=(e,f,a,b)=>{if(d[e])d[e].push(f);else{var t,o;if(void 0!==a)for(var n=document.getElementsByTagName("script"),i=0;i{t.onerror=t.onload=null,clearTimeout(s);var c=d[e];if(delete d[e],t.parentNode&&t.parentNode.removeChild(t),c&&c.forEach((e=>e(a))),f)return f(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/",r.gca=function(e){return e={10959509:"2704",11153061:"9063",17896441:"7918",98242336:"5290","98c047c6":"48","935f2afb":"53","62e5798c":"117",bd8a3d8f:"256","8dc82fcd":"263","80cc8fc2":"411",db2fd2f7:"439","9824b3d7":"443",c9644b78:"537","0d519d5d":"634","31647fbf":"670",ca2bccd7:"681",fd458deb:"725",df2434c5:"767","1d911987":"912",d53aaf7f:"965",ffd636c4:"1020","4380e181":"1113","6ef6f599":"1164",a40f2921:"1177","1830c2e3":"1195",e2cc03cb:"1241","443e3a65":"1254","58e1910b":"1280",bf0e2243:"1313","96d3f3ac":"1390","9cb4274e":"1391",f9528352:"1470",f34c6cc5:"1515",a722ee7a:"1573",c3a9c637:"1576","09735fc0":"1591","69fd0b9a":"1730","04608aca":"1809",be94a9c8:"1854",c42226db:"1872","8ef33b61":"1902",c9ff9b08:"1913","7f5d7fca":"2020","54cc2d4c":"2036","00210a32":"2098",abc5e328:"2115",aa3203ff:"2144","1f668492":"2237","5ce65c80":"2280",afd24866:"2370","188da18d":"2430","80f670fe":"2477",d8a040d1:"2615",d9893b92:"2668","397109c3":"2717","14bc3799":"2722","3c110fea":"2780","2b4f9f78":"2930",cba11a7e:"3063","17a7c5fe":"3126","1df93b7f":"3237","052260a8":"3272","3fd50427":"3418",cd151fd5:"3544","13689ae4":"3576","80b07506":"3599",d1409995:"3611","1f918bbd":"3635","5f4e8093":"3942",feda9f98:"4011","090174e7":"4019","1a23fb22":"4234","43db5d1f":"4247","6d553b82":"4321",a94703ab:"4368","8afa6453":"4385","1d3542c3":"4473","5c5eecab":"4559","612b9100":"4576","8b7dda8f":"4584","2a3fc902":"4655",d76c6a89:"4717",e7ee1f4e:"4722","399357cc":"4778",a3cca685:"4791","219ad9fa":"4986","871ddaf7":"5018",ca4242f5:"5033",b3921f18:"5112","3379d6c0":"5195",c5c74bfd:"5616","646a49d4":"5720","46a4fdf9":"5775","2e429803":"5786","81e06d7e":"5824","20b057c1":"5827",b04270fa:"5920","2f447487":"5935","385dd0a0":"5940","6a5c8ca2":"5949","9a6fbba2":"5996","0c3fdeeb":"6096","83b70ecd":"6128","48f8b5b9":"6299",e65ca800:"6306","9184e37b":"6535",bcbdbf75:"6576","6340fb34":"6781",a6a14297:"6866",af9df136:"6888",f4935766:"6907","5bcba466":"6932",a1e5de72:"6935",d1254c3d:"7159","1dcded0d":"7282",b4e198bf:"7360",a375f470:"7376","28c78037":"7386",af8b4e82:"7444","1db000ad":"7578",c0f9889b:"7638","270f6692":"7674","7e13be3f":"7702",d248c736:"7787","386e030b":"7878","9ed16ae1":"7896","1a4e3797":"7920","46be4bcd":"7973",a47e2810:"7984",c4d36760:"8028","490175b0":"8036","30f4d83c":"8129","1afc8419":"8344","246b758f":"8383","0be2dc55":"8392","9899ea6d":"8506",a7bd4aaa:"8518","2df7e88d":"8607","541249eb":"8696","88cad7e1":"8760","9b2db8ea":"8852",af477ebb:"8897","6ebb893e":"9091",ed3faf6d:"9153","5cb822a3":"9216",bde17074:"9237","5e95c892":"9661","7ea98ab3":"9683","2548183b":"9717",c3394322:"9742","0097d0fa":"9832",dc5f95d0:"9836"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(f,a)=>{var d=r.o(e,f)?e[f]:void 0;if(0!==d)if(d)a.push(d[2]);else if(/^(1303|532)$/.test(f))e[f]=0;else{var c=new Promise(((a,c)=>d=e[f]=[a,c]));a.push(d[2]=c);var b=r.p+r.u(f),t=new Error;r.l(b,(a=>{if(r.o(e,f)&&(0!==(d=e[f])&&(e[f]=void 0),d)){var c=a&&("load"===a.type?"missing":a.type),b=a&&a.target&&a.target.src;t.message="Loading chunk "+f+" failed.\n("+c+": "+b+")",t.name="ChunkLoadError",t.type=c,t.request=b,d[1](t)}}),"chunk-"+f,f)}},r.O.j=f=>0===e[f];var f=(f,a)=>{var d,c,b=a[0],t=a[1],o=a[2],n=0;if(b.some((f=>0!==e[f]))){for(d in t)r.o(t,d)&&(r.m[d]=t[d]);if(o)var i=o(r)}for(f&&f(a);n